mirror of
https://github.com/erkyrath/infocom-zcode-terps.git
synced 2026-01-27 04:12:54 +00:00
104 lines
1.8 KiB
Plaintext
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
|
|
|