151 lines
2.5 KiB
Plaintext
151 lines
2.5 KiB
Plaintext
NLS
|
|
TTL "S:CALTAIL"
|
|
ORG = $7800
|
|
;
|
|
; Routine that sits at $5D00
|
|
;
|
|
; Loads $5D00.63FF from disk or
|
|
; AUX memory, depending on 128k
|
|
; sectors 9-F
|
|
;
|
|
HAS128K = $27F
|
|
;
|
|
VOLUME = $B7EB
|
|
TRACK = $B7EC
|
|
SECTOR = $B7ED
|
|
BUFLO = $B7F0
|
|
BUFHI = $B7F1
|
|
;-----------
|
|
ORG ORG
|
|
OBJ $800
|
|
;-----------
|
|
;
|
|
; Enter here when loading from disk
|
|
;
|
|
CLC
|
|
HEX B0
|
|
;
|
|
; Enter here when data is already
|
|
; in AUX memory (at $1800)
|
|
;
|
|
SEC
|
|
;
|
|
LDY #0
|
|
^0 LDA $5D00,Y
|
|
STA ORG,Y
|
|
INY
|
|
BNE <0
|
|
JMP *+3
|
|
;---
|
|
BCS FROMAUX
|
|
;---
|
|
;
|
|
; Load from disk track 0
|
|
; sector 09-0F
|
|
;
|
|
STY BUFLO
|
|
STY VOLUME
|
|
STY TRACK
|
|
LDX #$0F
|
|
LDY #$63
|
|
;
|
|
^2 STX SECTOR
|
|
STY BUFHI
|
|
^3 JSR $3E3
|
|
JSR $3D9
|
|
BCS <3
|
|
LDX SECTOR
|
|
LDY BUFHI
|
|
DEY
|
|
DEX
|
|
CPX #9
|
|
BGE <2
|
|
;
|
|
; 128k?
|
|
;
|
|
BIT HAS128K
|
|
BPL EXECUTE
|
|
;
|
|
; YES
|
|
;
|
|
; Move $5D00.63FF to AUX mem $1800
|
|
;
|
|
LDY #0
|
|
STA $C005
|
|
^0 LDA $5D00,Y
|
|
STA $1800,Y
|
|
LDA $5E00,Y
|
|
STA $1900,Y
|
|
LDA $5F00,Y
|
|
STA $1A00,Y
|
|
LDA $6000,Y
|
|
STA $1B00,Y
|
|
LDA $6100,Y
|
|
STA $1C00,Y
|
|
LDA $6200,Y
|
|
STA $1D00,Y
|
|
LDA $6300,Y
|
|
STA $1E00,Y
|
|
INY
|
|
BNE <0
|
|
STA $C004
|
|
;
|
|
; Patch so it won't go to disk
|
|
; next time (4000: JMP $5D02)
|
|
;
|
|
STA $C009
|
|
LDA #2
|
|
STA $E001
|
|
STA $C008
|
|
BNE EXECUTE
|
|
;-----------
|
|
;
|
|
; Move 1/1800 to $5D00.63FF
|
|
;
|
|
FROMAUX STA $C009
|
|
LDY #MOVERLEN-1
|
|
^0 LDA MOVER,Y
|
|
STA $100,Y
|
|
DEY
|
|
BPL <0
|
|
JSR $100
|
|
STA $C008
|
|
;---
|
|
;
|
|
; Jump to CALENDAR
|
|
;
|
|
EXECUTE JMP $4003
|
|
;-----------
|
|
;
|
|
; MOVER routine sits on AUX stack
|
|
; switches in AUX and moves it to
|
|
; MAIN $5D00.63FF
|
|
;
|
|
MOVER STA $C003
|
|
LDY #0
|
|
^0 LDA $1800,Y
|
|
STA $5D00,Y
|
|
LDA $1900,Y
|
|
STA $5E00,Y
|
|
LDA $1A00,Y
|
|
STA $5F00,Y
|
|
LDA $1B00,Y
|
|
STA $6000,Y
|
|
LDA $1C00,Y
|
|
STA $6100,Y
|
|
LDA $1D00,Y
|
|
STA $6200,Y
|
|
LDA $1E00,Y
|
|
STA $6300,Y
|
|
INY
|
|
BNE <0
|
|
STA $C002
|
|
RTS
|
|
MOVERLEN = *-MOVER
|
|
;-----------
|
|
;
|
|
;
|
|
;
|
|
USR "O:CALTAIL",ORG
|
|
END
|