Files
erkyrath.infocom-zcode-terps/64/zip/cold.src
Andrew Plotkin b642da811e Initial commit.
2023-11-16 18:19:54 -05:00

104 lines
1.8 KiB
Plaintext

PAGE
SBTTL "--- MACHINE COLDSTART: CBM64 ---"
ORG ZIP
; ---------
; COLDSTART
; ---------
COLD: LDA R6510
AND #%11111110 ; SWITCH OUT BASIC ROM
STA R6510 ; KERNAL ROM & I/O ENABLED
LDA #1 ; WHITE
STA COLOR ; TEXT
LDA #12 ; GRAY
STA EXTCOL ; BORDER
STA BGCOLO ; AND BACKGROUND
LDA #$0E
JSR CHROUT ; USE UPPER/LOWER CHARS
LDA #$80 ; PROHIBIT FURTHER
STA MODE ; CHARSET CHANGES
LDA #0
STA MSGFLG ; DISABLE KERNAL MESSAGES
STA SFLAG ; NO PREVIOUS SCRIPTING (BM 5/14/85)
; INITIALIZE THE SOUND SYSTEM
LDX #$1C ; CLEAR
LDA #0 ; ALL
CLD0: STA FRELO1,X ; SID REGISTERS
DEX
BPL CLD0
LDA #2 ; SET VOICE #1
STA PWLO1 ; PULSE WIDTH
LDA #8 ; FOR A
STA PWHI1 ; 50% DUTY CYCLE
LDA #%10000000 ; DISABLE OUTPUT
STA SIGVOL ; FROM VOICE #3
LDA #$EE
STA FRELO3 ; SET VOICE #3 TO
STA FREHI3 ; AN AMUSING FREQUENCY
LDA #%10000000 ; SPECIFY NOISY WAVEFORM
STA VCREG3 ; FOR RANDOMNESS
; INITIALIZE THE SPRITE CURSOR
LDX #63 ; CLEAR SPRITE #13 RAM
LDA #0
CN0: STA CURSOR,X
DEX
BPL CN0
STA XXPAND ; NORMAL HORIZONTAL
STA YXPAND ; AND VERTICAL SPRITE SIZE
STA SPBGPR ; MAXIMUM SPRITE PRIORITY
STA SPMC ; HI-RES SPRITES
STA SP0COL ; BLACK CURSOR
JMP WARM1
; ---------------
; WARMSTART ENTRY
; ---------------
SLOAD: DB "The story is loading ..."
DB EOL
SLOADL EQU $-SLOAD
WARM1: CLD
LDX #$FF
TXS ; RESET MACHINE STACK
JSR CLALL ; CLOSE EVERYTHING
JSR CLS ; CLEAR SCREEN, ETC.
LDY #8 ; POSITION "STORY LOADING" MESSAGE
LDX #11 ; AT (8,11)
CLC
JSR PLOT
LDX #LOW SLOAD
LDA #HIGH SLOAD
LDY #SLOADL
JSR DLINE ; "THE STORY IS LOADING ..."
LDA #8 ; MAKE BOOT DRIVE
JSR DOPEN ; AND OPEN IT
LDA FAST ; FAST DISK?
BEQ WARM2 ; NO, CONTINUE
JSR FINIT ; ELSE INIT FAST DISK
; FALL THROUGH TO ZIP WARMSTART AT "WARM2"
END