mirror of
https://github.com/erkyrath/infocom-zcode-terps.git
synced 2026-01-26 20:02:43 +00:00
Initial commit.
This commit is contained in:
125
atari/cold.src
Normal file
125
atari/cold.src
Normal file
@@ -0,0 +1,125 @@
|
||||
PAGE
|
||||
SBTTL "--- MACHINE COLDSTART: ATARI ---"
|
||||
|
||||
ORG ZIP
|
||||
|
||||
; -----------------
|
||||
; ATARI BOOT HEADER
|
||||
; -----------------
|
||||
|
||||
DB 0 ; FLAG BYTE (IGNORED)
|
||||
DB 56 ; LOAD 7K OF CODE
|
||||
DW ZIP ; WHERE TO LOAD THE SECTORS
|
||||
DW DUMMY ; POINT TO INIT SUBROUTINE
|
||||
|
||||
; --------------
|
||||
; BOOT COLDSTART
|
||||
; --------------
|
||||
|
||||
LDA #LOW COLD ; POINT [DOSVEC] TO
|
||||
STA DOSVEC+LO ; THE COLDSTART ROUTINE
|
||||
LDA #HIGH COLD
|
||||
STA DOSVEC+HI
|
||||
|
||||
DUMMY: LDA #$FF ; DISABLE BASIC ROM
|
||||
STA PORTB ; IN XL-SERIES MACHINES
|
||||
CLC ; SUCCESS FLAG
|
||||
RTS
|
||||
|
||||
; -------------------
|
||||
; CUSTOM DISPLAY LIST
|
||||
; -------------------
|
||||
|
||||
DLIST: DB $70,$70,$50 ; 22 BLANK LINES
|
||||
DB $42 ; 1 TEXT LINE W/LMS
|
||||
DW SCREEN ; ADDR OF SCREEN RAM
|
||||
DB $10 ; 2 BLANK LINES
|
||||
DB $02,$02,$02,$02,$02,$02,$02 ; 7 TEXT LINES
|
||||
DB $02,$02,$02,$02,$02,$02,$02,$02 ; 8 TEXT LINES
|
||||
DB $02,$02,$02,$02,$02,$02,$02,$02 ; 8 TEXT LINES
|
||||
DB $41 ; JVB
|
||||
DW DLIST ; ADDR OF D-LIST
|
||||
|
||||
SLD: DB "The story is loading ..."
|
||||
DB EOL
|
||||
SLDL EQU $-SLD
|
||||
|
||||
; ---------
|
||||
; COLDSTART
|
||||
; ---------
|
||||
|
||||
COLD: CLD
|
||||
LDX #$FF ; RESET THE
|
||||
TXS ; HARDWARE STACK
|
||||
STX CH ; AND KEYBOARD REGISTER
|
||||
STX PORTB ; REMOVE BASIC ROM IN XL MACHINES
|
||||
INX ; = 0
|
||||
STX COLDST ; COLDSTART OKAY
|
||||
STX AUDCTL ; CLEAR SOUND
|
||||
STX LMARGN ; NO LEFT MARGIN
|
||||
STX SCRIPT ; DISABLE SCRIPTING
|
||||
STX SFLAG ; DISABLE PREVIOS SCRIPT (BM 5/14/85)
|
||||
INX ; = 1
|
||||
STX BOOT ; BOOT SUCCESSFUL
|
||||
STX GPRIOR ; MAXIMUM PMG PRIORITY
|
||||
STX CRSINH ; INHIBIT OS CURSOR
|
||||
|
||||
LDA #3
|
||||
STA SKCTL ; RESET SOUND
|
||||
STA GRACTL ; ENABLE PLAYERS & MISSILES
|
||||
|
||||
LDA #$70
|
||||
STA POKMSK ; DISABLE
|
||||
STA IRQEN ; THE BREAK KEY
|
||||
|
||||
LDA #12 ; WHITE
|
||||
STA COLOR1 ; TEXT
|
||||
LDA #148
|
||||
STA COLOR4 ; BLUE BORDER
|
||||
|
||||
LDX #$11 ; CLEAR ALL PMG REGISTERS
|
||||
LDA #0
|
||||
PMG0: STA HPOSP0,X
|
||||
DEX
|
||||
BPL PMG0
|
||||
|
||||
TAX ; [X] & [A] = 0
|
||||
PMG1: STA MISSL,X ; CLEAR CURSOR RAM
|
||||
INX
|
||||
BNE PMG1
|
||||
|
||||
LDA #1 ; DOUBLE-WIDTH FOR
|
||||
STA SIZEM ; MISSILE #0
|
||||
LDA #HIGH PLMRAM ; POINT TO LOCATION
|
||||
STA PMBASE ; OF PMG RAM
|
||||
|
||||
LDA #LOW DLIST ; ENABLE
|
||||
STA SDLSTL+LO ; CUSTOM
|
||||
LDA #HIGH DLIST ; DISPLAY
|
||||
STA SDLSTL+HI ; LIST
|
||||
|
||||
; FALL THROUGH ...
|
||||
|
||||
; ---------------
|
||||
; WARMSTART ENTRY
|
||||
; ---------------
|
||||
|
||||
WARM: JSR CLS ; CLEAR SCREEN
|
||||
|
||||
LDA #8 ; POSITION CURSOR
|
||||
STA COLCRS+LO ; AT (8,0)
|
||||
LDA #0
|
||||
STA ROWCRS
|
||||
|
||||
LDX #LOW SLD
|
||||
LDA #HIGH SLD
|
||||
LDY #SLDL
|
||||
JSR SROOM ; "THE STORY IS LOADING ..."
|
||||
|
||||
LDA #%00111110 ; ENABLE 1-LINE PMG, STANDARD FIELD
|
||||
STA SDMCTL ; RESTORE ANTIC
|
||||
|
||||
; FALL THROUGH TO ZIP WARMSTART ...
|
||||
|
||||
END
|
||||
|
||||
Reference in New Issue
Block a user