mirror of
https://github.com/erkyrath/infocom-zcode-terps.git
synced 2026-04-29 21:37:12 +00:00
Initial commit.
This commit is contained in:
105
ted/cold.src
Normal file
105
ted/cold.src
Normal file
@@ -0,0 +1,105 @@
|
||||
PAGE
|
||||
SBTTL "--- MACHINE COLDSTART: CBM PLUS/4 ---"
|
||||
|
||||
ORG ZIP
|
||||
|
||||
; ---------
|
||||
; COLDSTART
|
||||
; ---------
|
||||
|
||||
COLD: SEI ; DISABLE INTERRUPTS
|
||||
|
||||
LDA #6 ; DISABLE FUNCTION KEYS 7-1
|
||||
STA FKEY ; LEAVE "HELP" (F8) ALONE
|
||||
COLD0: LDA #0
|
||||
JSR FUNCT
|
||||
DEC FKEY
|
||||
LDA FKEY
|
||||
BPL COLD0
|
||||
|
||||
LDA #$C0 ; COPY $C000-$FCFF TO RAM
|
||||
STA I+HI ; SET UP MSB
|
||||
TAX ; INIT PAGE COUNTER
|
||||
|
||||
LDA #0 ; SET UP LSB
|
||||
STA I+LO
|
||||
TAY ; INIT PAGE INDEX
|
||||
|
||||
COLD1: LDA (I),Y ; COPY ROM
|
||||
STA (I),Y ; INTO RAM
|
||||
INY
|
||||
BNE COLD1
|
||||
INC I+HI ; NEXT PAGE
|
||||
INX
|
||||
CPX #$FD
|
||||
BCC COLD1
|
||||
|
||||
LDA #$FF ; COPY $FF40-$FFFF
|
||||
STA I+HI
|
||||
LDY #$40
|
||||
COLD2: LDA (I),Y
|
||||
STA (I),Y
|
||||
INY
|
||||
BNE COLD2
|
||||
|
||||
STA ROMOUT ; DISABLE ROMS
|
||||
LDA #$3F ; PATCH THIS KERNAL ROUTINE
|
||||
STA $07E1 ; TO PREVENT ROM INTERFERENCE
|
||||
|
||||
; LDA #LOW WARM1 ; CHANGE THE HARDWARE RESET VECTOR
|
||||
; STA $FFFC ; TO POINT TO WARMSTART
|
||||
; LDA #HIGH WARM1
|
||||
; STA $FFFD
|
||||
|
||||
CLI ; RE-ENABLE INTERRUPTS
|
||||
|
||||
LDA #%00110001 ; GRAY
|
||||
STA BGCOL0 ; BACKGROUND
|
||||
STA BORDER ; AND BORDER
|
||||
|
||||
LDA #$0E
|
||||
JSR CHROUT ; USE UPPER/LOWER CHARS
|
||||
LDA #$08
|
||||
JSR CHROUT ; DISABLE CHARSET CHANGES
|
||||
|
||||
LDA #0
|
||||
JSR SETMSG ; DISABLE KERNAL MESSAGES
|
||||
|
||||
JMP WARM1 ; BRANCH ALWAYS
|
||||
|
||||
; ---------------
|
||||
; 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-READ AVAILABLE?
|
||||
; BEQ WARM2 ; NO, SKIP AHEAD
|
||||
; JSR FINIT ; ELSE INIT FAST-READ
|
||||
|
||||
; FALL THROUGH TO ZIP WARMSTART AT "WARM2"
|
||||
|
||||
END
|
||||
|
||||
Reference in New Issue
Block a user