disasm: softswitches and string wrapping
This commit is contained in:
parent
e255e65dec
commit
7a7a3ffa33
118
clock.system.s
118
clock.system.s
|
@ -6,7 +6,20 @@
|
||||||
.org $2000
|
.org $2000
|
||||||
.setcpu "6502"
|
.setcpu "6502"
|
||||||
|
|
||||||
LC300 := $C300
|
SLOT3_FIRMWARE := $C300
|
||||||
|
|
||||||
|
PORT2_ACIA_STATUS := $C0A9
|
||||||
|
PORT2_ACIA_COMMAND := $C0AA
|
||||||
|
PORT2_ACIA_CONTROL := $C0AB
|
||||||
|
|
||||||
|
DISXY := $C058
|
||||||
|
ENBXY := $C059
|
||||||
|
DISVBL := $C05A
|
||||||
|
ENVBL := $C05B
|
||||||
|
X0EDGE1 := $C05C
|
||||||
|
X0EDGE2 := $C05D
|
||||||
|
|
||||||
|
MOUSE_BTN := $C063
|
||||||
|
|
||||||
L2000:
|
L2000:
|
||||||
L2001 := * + 1
|
L2001 := * + 1
|
||||||
|
@ -48,18 +61,24 @@ L2041: sty $07
|
||||||
lsr a
|
lsr a
|
||||||
sta $09
|
sta $09
|
||||||
bne L206B
|
bne L206B
|
||||||
|
|
||||||
lda #$8D
|
lda #$8D
|
||||||
sta $2624 ; TODO: modifying string resource?
|
|
||||||
sta $26E3 ; ???
|
;; Convert spaces to newlines if 40 Columns
|
||||||
sta $2700 ; ???
|
sta chain + (wrap1 - L1000)
|
||||||
sta $2716 ; ???
|
sta chain + (wrap4 - L1000)
|
||||||
sta $2684 ; ???
|
sta chain + (wrap5 - L1000)
|
||||||
|
sta chain + (wrap3 - L1000)
|
||||||
|
sta chain + (wrap2 - L1000)
|
||||||
|
|
||||||
inc L2095
|
inc L2095
|
||||||
inc L2099
|
inc L2099
|
||||||
bne L206E
|
bne L206E
|
||||||
L206B: jsr LC300
|
|
||||||
|
L206B: jsr SLOT3_FIRMWARE
|
||||||
|
|
||||||
|
|
||||||
|
;; --------------------------------------------------
|
||||||
|
|
||||||
;; Copy to $1000
|
;; Copy to $1000
|
||||||
|
|
||||||
|
@ -117,10 +136,12 @@ L20C2: asl a
|
||||||
asl a
|
asl a
|
||||||
asl a
|
asl a
|
||||||
bne L20CB
|
bne L20CB
|
||||||
|
|
||||||
|
|
||||||
L20C8: lda DEVLST,x
|
L20C8: lda DEVLST,x
|
||||||
L20CB: and #$70
|
L20CB: and #%01110000 ; slot
|
||||||
ora #$80
|
ora #$80
|
||||||
sta L22E3
|
sta L22E3 ; Set $C0nn address
|
||||||
lda $11FE
|
lda $11FE
|
||||||
and #$03
|
and #$03
|
||||||
beq L20E3
|
beq L20E3
|
||||||
|
@ -187,7 +208,7 @@ L2156: lda #OPC_JMP_abs
|
||||||
lda MACHID
|
lda MACHID
|
||||||
ora #%00000001 ; has clock
|
ora #%00000001 ; has clock
|
||||||
sta MACHID
|
sta MACHID
|
||||||
bit $C000
|
bit KBD
|
||||||
bmi L218C
|
bmi L218C
|
||||||
lda $0A
|
lda $0A
|
||||||
cmp #$0B
|
cmp #$0B
|
||||||
|
@ -204,7 +225,7 @@ L2176: lda $1204
|
||||||
lda DATELO+1
|
lda DATELO+1
|
||||||
sbc $1204
|
sbc $1204
|
||||||
bcs L21DF
|
bcs L21DF
|
||||||
L218C: bit $C010
|
L218C: bit KBDSTRB
|
||||||
rol $11FE
|
rol $11FE
|
||||||
lda #$03
|
lda #$03
|
||||||
cmp $0A
|
cmp $0A
|
||||||
|
@ -239,8 +260,8 @@ L21D3: lda $1204
|
||||||
jsr L2210
|
jsr L2210
|
||||||
jsr L238A
|
jsr L238A
|
||||||
jsr L111A
|
jsr L111A
|
||||||
L21DF: lda $C08B
|
L21DF: lda RWRAM1
|
||||||
lda $C08B
|
lda RWRAM1
|
||||||
lda DATETIME+1
|
lda DATETIME+1
|
||||||
sta L2202
|
sta L2202
|
||||||
clc
|
clc
|
||||||
|
@ -250,6 +271,9 @@ L21DF: lda $C08B
|
||||||
sta L2203
|
sta L2203
|
||||||
adc #$00
|
adc #$00
|
||||||
sta L22B2
|
sta L22B2
|
||||||
|
|
||||||
|
;; Relocate clock driver
|
||||||
|
|
||||||
ldy #$7C
|
ldy #$7C
|
||||||
L21FE: lda L2265,y
|
L21FE: lda L2265,y
|
||||||
L2202 := * + 1
|
L2202 := * + 1
|
||||||
|
@ -316,20 +340,24 @@ L223F: jsr L238A
|
||||||
cmp #$3C
|
cmp #$3C
|
||||||
L2264: rts
|
L2264: rts
|
||||||
|
|
||||||
|
;;; ============================================================
|
||||||
|
;;; Clock Driver (Relocatable)
|
||||||
|
;;; ============================================================
|
||||||
|
|
||||||
L2265: cld
|
L2265: cld
|
||||||
cld
|
cld
|
||||||
php
|
php
|
||||||
sei
|
sei
|
||||||
L2269:
|
L2269:
|
||||||
L226A := * + 1
|
L226A := * + 1
|
||||||
lda $C0AA
|
lda PORT2_ACIA_COMMAND
|
||||||
pha
|
pha
|
||||||
ldy #$03
|
ldy #$03
|
||||||
ldx #$16
|
ldx #$16
|
||||||
lda #$08
|
lda #$08
|
||||||
L2273:
|
L2273:
|
||||||
L2274 := * + 1
|
L2274 := * + 1
|
||||||
sta $C0AA
|
sta PORT2_ACIA_COMMAND
|
||||||
L2276: dex
|
L2276: dex
|
||||||
bne L2276
|
bne L2276
|
||||||
eor #$0A
|
eor #$0A
|
||||||
|
@ -345,7 +373,7 @@ L2286: .byte $3A
|
||||||
bne L2286
|
bne L2286
|
||||||
L2289:
|
L2289:
|
||||||
L228A := * + 1
|
L228A := * + 1
|
||||||
lda $C0A9
|
lda PORT2_ACIA_STATUS
|
||||||
rol a
|
rol a
|
||||||
rol a
|
rol a
|
||||||
rol a
|
rol a
|
||||||
|
@ -358,7 +386,7 @@ L228A := * + 1
|
||||||
bpl L2284
|
bpl L2284
|
||||||
pla
|
pla
|
||||||
L229F := * + 1
|
L229F := * + 1
|
||||||
sta $C0AA
|
sta PORT2_ACIA_COMMAND
|
||||||
ldx #$06
|
ldx #$06
|
||||||
L22A3: lda $0201,x
|
L22A3: lda $0201,x
|
||||||
L22A6: dec $0200,x
|
L22A6: dec $0200,x
|
||||||
|
@ -401,13 +429,13 @@ L22DB := * + 1
|
||||||
.byte $62
|
.byte $62
|
||||||
L22E2:
|
L22E2:
|
||||||
L22E3 := * + 1
|
L22E3 := * + 1
|
||||||
lda $C0E0
|
lda $C0E0 ; Set to $C0x0, n=slot+8
|
||||||
lda $C05A
|
lda DISVBL
|
||||||
ldy #$01
|
ldy #$01
|
||||||
ldx #$16
|
ldx #$16
|
||||||
L22EC: dex
|
L22EC: dex
|
||||||
bne L22EC
|
bne L22EC
|
||||||
lda $C05A,y
|
lda DISVBL,y
|
||||||
ldx #$0B
|
ldx #$0B
|
||||||
dey
|
dey
|
||||||
bpl L22EC
|
bpl L22EC
|
||||||
|
@ -420,7 +448,7 @@ L2300: lda #$5D
|
||||||
sec
|
sec
|
||||||
L2303: sbc #$01
|
L2303: sbc #$01
|
||||||
bne L2303
|
bne L2303
|
||||||
L2307: lda $C063
|
L2307: lda MOUSE_BTN
|
||||||
rol a
|
rol a
|
||||||
ror $0200,x
|
ror $0200,x
|
||||||
lsr $0201,x
|
lsr $0201,x
|
||||||
|
@ -430,12 +458,12 @@ L2307: lda $C063
|
||||||
ldy #$04
|
ldy #$04
|
||||||
dex
|
dex
|
||||||
bpl L2300
|
bpl L2300
|
||||||
lda $C0AA
|
lda PORT2_ACIA_COMMAND
|
||||||
nop
|
nop
|
||||||
ldy #$03
|
ldy #$03
|
||||||
ldx #$16
|
ldx #$16
|
||||||
lda #$02
|
lda #$02
|
||||||
L2324: sta $C0AA
|
L2324: sta PORT2_ACIA_COMMAND
|
||||||
L2327: dex
|
L2327: dex
|
||||||
bne L2327
|
bne L2327
|
||||||
eor #$0A
|
eor #$0A
|
||||||
|
@ -449,7 +477,7 @@ L2336 := * + 1
|
||||||
lda #$5D
|
lda #$5D
|
||||||
L2337: .byte $3A
|
L2337: .byte $3A
|
||||||
bne L2337
|
bne L2337
|
||||||
L233A: lda $C0A9
|
L233A: lda PORT2_ACIA_STATUS
|
||||||
eor #$20
|
eor #$20
|
||||||
rol a
|
rol a
|
||||||
rol a
|
rol a
|
||||||
|
@ -463,36 +491,36 @@ L233A: lda $C0A9
|
||||||
bpl L2335
|
bpl L2335
|
||||||
nop
|
nop
|
||||||
nop
|
nop
|
||||||
lda $C05B
|
lda ENVBL
|
||||||
sta $C059
|
sta ENBXY
|
||||||
sta $C05C
|
sta X0EDGE1
|
||||||
nop
|
nop
|
||||||
nop
|
nop
|
||||||
nop
|
nop
|
||||||
nop
|
nop
|
||||||
lda $C058
|
lda DISXY
|
||||||
ldx #$15
|
ldx #$15
|
||||||
L2364: dex
|
L2364: dex
|
||||||
bne L2364
|
bne L2364
|
||||||
ldx #$09
|
ldx #$09
|
||||||
L2369: ldy #$04
|
L2369: ldy #$04
|
||||||
L236B: lda $C063
|
L236B: lda MOUSE_BTN
|
||||||
rol a
|
rol a
|
||||||
ror $0200,x
|
ror $0200,x
|
||||||
lsr $0201,x
|
lsr $0201,x
|
||||||
sta $C05D
|
sta X0EDGE2
|
||||||
nop
|
nop
|
||||||
nop
|
nop
|
||||||
nop
|
nop
|
||||||
nop
|
nop
|
||||||
nop
|
nop
|
||||||
nop
|
nop
|
||||||
sta $C05C
|
sta X0EDGE1
|
||||||
dey
|
dey
|
||||||
bne L236B
|
bne L236B
|
||||||
dex
|
dex
|
||||||
bpl L2369
|
bpl L2369
|
||||||
lda $C05A
|
lda DISVBL
|
||||||
L238A: jsr L2265
|
L238A: jsr L2265
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
@ -507,7 +535,7 @@ L239C: .byte $DF
|
||||||
.byte $FF
|
.byte $FF
|
||||||
|
|
||||||
|
|
||||||
|
chain:
|
||||||
L239E:
|
L239E:
|
||||||
;; Relocated to $1000
|
;; Relocated to $1000
|
||||||
|
|
||||||
|
@ -732,10 +760,10 @@ L11C3: lda #$20
|
||||||
sta $0C
|
sta $0C
|
||||||
L11C7: lda #$02
|
L11C7: lda #$02
|
||||||
jsr WAIT
|
jsr WAIT
|
||||||
sta $C030
|
sta SPKR
|
||||||
lda #$24
|
lda #$24
|
||||||
jsr WAIT
|
jsr WAIT
|
||||||
sta $C030
|
sta SPKR
|
||||||
dec $0C
|
dec $0C
|
||||||
bne L11C7
|
bne L11C7
|
||||||
rts
|
rts
|
||||||
|
@ -765,15 +793,27 @@ L11C7: lda #$02
|
||||||
|
|
||||||
L1272: .byte $A0
|
L1272: .byte $A0
|
||||||
|
|
||||||
HIASCIIZ "\rCopyright (c) 1986 Creative Peripherals Unlimited, Inc."
|
HIASCII "\rCopyright (c) 1986 "
|
||||||
|
wrap1 := *-1
|
||||||
|
HIASCIIZ "Creative Peripherals Unlimited, Inc."
|
||||||
|
|
||||||
HIASCIIZ "Unable to find a '.SYSTEM' file!"
|
HIASCIIZ "Unable to find a '.SYSTEM' file!"
|
||||||
HIASCIIZ "Remove Write-Protect tab, Replace disk, and Press a key..."
|
|
||||||
|
HIASCII "Remove Write-Protect tab, "
|
||||||
|
wrap2 := *-1
|
||||||
|
HIASCIIZ "Replace disk, and Press a key..."
|
||||||
|
|
||||||
HIASCIIZ "Disk error! Unable to continue!!!"
|
HIASCIIZ "Disk error! Unable to continue!!!"
|
||||||
HIASCIIZ "Seiko //c driver installed. "
|
HIASCIIZ "Seiko //c driver installed. "
|
||||||
|
wrap4 := *-2
|
||||||
|
|
||||||
HIASCIIZ "Seiko //e driver installed. "
|
HIASCIIZ "Seiko //e driver installed. "
|
||||||
|
wrap5 := *-2
|
||||||
|
|
||||||
HIASCII "Current year is 19"
|
HIASCII "Current year is 19"
|
||||||
.byte 0
|
.byte 0, $AE
|
||||||
HIASCIIZ ". OK? (Y/N) "
|
wrap3 := *
|
||||||
|
HIASCIIZ " OK? (Y/N) "
|
||||||
HIASCIIZ "No clock! Driver not installed...\r"
|
HIASCIIZ "No clock! Driver not installed...\r"
|
||||||
HIASCIIZ "Running "
|
HIASCIIZ "Running "
|
||||||
|
|
||||||
|
|
|
@ -15,6 +15,7 @@ MAX_DW := $FFFF
|
||||||
;;; Softswitches
|
;;; Softswitches
|
||||||
|
|
||||||
CLR80VID := $C00C ; 40 Columns
|
CLR80VID := $C00C ; 40 Columns
|
||||||
|
SPKR := $C030 ; Toggle speaker
|
||||||
ROMIN2 := $C082 ; Read ROM; no write
|
ROMIN2 := $C082 ; Read ROM; no write
|
||||||
RWRAM1 := $C08B ; Read/write RAM bank 1
|
RWRAM1 := $C08B ; Read/write RAM bank 1
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue