2019-04-20 23:58:58 +00:00
|
|
|
.include "opcodes.inc"
|
|
|
|
.include "apple2.inc"
|
2019-04-20 23:08:35 +00:00
|
|
|
.include "common.inc"
|
2019-04-20 23:33:27 +00:00
|
|
|
.feature string_escapes
|
2019-04-20 23:58:58 +00:00
|
|
|
|
2019-04-20 22:54:40 +00:00
|
|
|
.org $2000
|
|
|
|
.setcpu "6502"
|
|
|
|
|
2019-04-21 04:13:24 +00:00
|
|
|
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
|
2019-04-20 23:58:58 +00:00
|
|
|
|
2019-04-20 22:54:40 +00:00
|
|
|
L2000:
|
|
|
|
L2001 := * + 1
|
|
|
|
lda #$06
|
|
|
|
L2003 := * + 1
|
|
|
|
lda #$A0
|
|
|
|
cmp #$CC
|
|
|
|
bne L2013
|
2019-04-21 03:33:26 +00:00
|
|
|
sta L239E + (L1272 - L1000) ; In relocated code
|
2019-04-20 22:54:40 +00:00
|
|
|
lda #$5C
|
|
|
|
sta L2285
|
|
|
|
sta L2336
|
|
|
|
L2013: ldx #$FF
|
|
|
|
txs
|
|
|
|
lda #$00
|
2019-04-21 00:38:31 +00:00
|
|
|
sta IBAKVER
|
|
|
|
sta IVERSION
|
2019-04-20 23:58:58 +00:00
|
|
|
sta ROMIN2
|
2019-04-20 22:54:40 +00:00
|
|
|
lda $03F3
|
|
|
|
eor #$FF
|
|
|
|
sta $03F4
|
|
|
|
ldy #$00
|
|
|
|
ldx #$00
|
2019-04-21 00:38:31 +00:00
|
|
|
lda MACHID
|
|
|
|
and #%10001000 ; IIe or later, modifier
|
2019-04-20 22:54:40 +00:00
|
|
|
beq L2035
|
|
|
|
inx
|
|
|
|
L2035: cmp #$88
|
|
|
|
beq L2041
|
|
|
|
lda L2003
|
|
|
|
cmp #$CC
|
|
|
|
beq L2041
|
|
|
|
iny
|
|
|
|
L2041: sty $07
|
|
|
|
lda L239C,x
|
|
|
|
sta $08
|
2019-04-21 00:38:31 +00:00
|
|
|
lda MACHID
|
|
|
|
and #%00000010 ; 80 Column card?
|
2019-04-20 22:54:40 +00:00
|
|
|
lsr a
|
|
|
|
sta $09
|
|
|
|
bne L206B
|
2019-04-21 04:13:24 +00:00
|
|
|
|
2019-04-20 22:54:40 +00:00
|
|
|
lda #$8D
|
2019-04-21 04:13:24 +00:00
|
|
|
|
|
|
|
;; Convert spaces to newlines if 40 Columns
|
|
|
|
sta chain + (wrap1 - L1000)
|
|
|
|
sta chain + (wrap4 - L1000)
|
|
|
|
sta chain + (wrap5 - L1000)
|
|
|
|
sta chain + (wrap3 - L1000)
|
|
|
|
sta chain + (wrap2 - L1000)
|
|
|
|
|
2019-04-20 22:54:40 +00:00
|
|
|
inc L2095
|
|
|
|
inc L2099
|
|
|
|
bne L206E
|
2019-04-21 04:13:24 +00:00
|
|
|
|
|
|
|
L206B: jsr SLOT3_FIRMWARE
|
2019-04-21 03:33:26 +00:00
|
|
|
|
|
|
|
|
2019-04-21 04:13:24 +00:00
|
|
|
;; --------------------------------------------------
|
2019-04-21 03:33:26 +00:00
|
|
|
|
|
|
|
;; Copy to $1000
|
|
|
|
|
|
|
|
L206E: ldy #0
|
|
|
|
|
|
|
|
;; End signature is two adjacent $FFs
|
2019-04-20 22:54:40 +00:00
|
|
|
L2070:
|
|
|
|
L2072 := * + 2
|
|
|
|
lda L239E,y
|
|
|
|
cmp #$FF
|
|
|
|
bne L207E
|
2019-04-21 03:33:26 +00:00
|
|
|
|
2019-04-20 22:54:40 +00:00
|
|
|
L2079 := * + 2
|
2019-04-21 03:33:26 +00:00
|
|
|
ldx L239E+1,y
|
2019-04-20 22:54:40 +00:00
|
|
|
cpx #$FF
|
|
|
|
beq L208F
|
|
|
|
L207E:
|
|
|
|
L2080 := * + 2
|
|
|
|
sta L1000,y
|
|
|
|
iny
|
|
|
|
bne L2070
|
2019-04-21 03:33:26 +00:00
|
|
|
|
2019-04-20 22:54:40 +00:00
|
|
|
inc L2072
|
|
|
|
inc L2079
|
|
|
|
inc L2080
|
2019-04-21 03:33:26 +00:00
|
|
|
|
|
|
|
bne L2070 ; always
|
|
|
|
|
2019-04-20 22:54:40 +00:00
|
|
|
L208F: ldy #$00
|
|
|
|
jsr L10EF
|
|
|
|
L2095 := * + 1
|
|
|
|
ldy #$03
|
|
|
|
sty $22
|
|
|
|
L2099 := * + 1
|
|
|
|
ldy #$05
|
|
|
|
sty $23
|
|
|
|
jsr L116E
|
|
|
|
lda $1204
|
|
|
|
lsr a
|
|
|
|
sta L22C7
|
|
|
|
jsr L222B
|
|
|
|
sta $11FF
|
2019-04-21 00:38:31 +00:00
|
|
|
ldx DEVCNT
|
|
|
|
L20AF: lda DEVLST,x
|
2019-04-20 22:54:40 +00:00
|
|
|
and #$0F
|
|
|
|
beq L20C8
|
|
|
|
dex
|
|
|
|
bpl L20AF
|
|
|
|
lda L2001
|
|
|
|
and #$07
|
|
|
|
bne L20C2
|
|
|
|
lda #$06
|
|
|
|
L20C2: asl a
|
|
|
|
asl a
|
|
|
|
asl a
|
|
|
|
asl a
|
|
|
|
bne L20CB
|
2019-04-21 04:13:24 +00:00
|
|
|
|
|
|
|
|
2019-04-21 00:38:31 +00:00
|
|
|
L20C8: lda DEVLST,x
|
2019-04-21 04:13:24 +00:00
|
|
|
L20CB: and #%01110000 ; slot
|
2019-04-20 22:54:40 +00:00
|
|
|
ora #$80
|
2019-04-21 04:13:24 +00:00
|
|
|
sta L22E3 ; Set $C0nn address
|
2019-04-20 22:54:40 +00:00
|
|
|
lda $11FE
|
|
|
|
and #$03
|
|
|
|
beq L20E3
|
|
|
|
cmp #$02
|
|
|
|
bcs L20FE
|
|
|
|
lda $07
|
|
|
|
bne L20EE
|
|
|
|
beq L20FE
|
|
|
|
L20E3: ldy #$38
|
|
|
|
lda $07
|
|
|
|
beq L20F0
|
|
|
|
ldy #$00
|
|
|
|
jmp L20F0
|
|
|
|
|
|
|
|
L20EE: ldy #$70
|
|
|
|
L20F0: ldx #$00
|
|
|
|
L20F2: lda L22E2,y
|
|
|
|
sta L2269,x
|
|
|
|
iny
|
|
|
|
inx
|
|
|
|
cpx #$38
|
|
|
|
bne L20F2
|
|
|
|
L20FE: lda #$02
|
|
|
|
sta L210F
|
|
|
|
L2103: jsr L223F
|
|
|
|
bcs L2111
|
|
|
|
dec L210F
|
|
|
|
bpl L2103
|
|
|
|
bmi L2156
|
|
|
|
L210F: brk
|
|
|
|
L2110: brk
|
|
|
|
L2111: lda $07
|
|
|
|
bne L2135
|
|
|
|
lda L2110
|
|
|
|
bne L2135
|
|
|
|
inc L2110
|
|
|
|
ldy #$99
|
|
|
|
sty L228A
|
|
|
|
iny
|
|
|
|
sty L226A
|
|
|
|
sty L2274
|
|
|
|
lda $11FE
|
|
|
|
and #$03
|
|
|
|
beq L20FE
|
|
|
|
sty L229F
|
|
|
|
bne L20FE
|
|
|
|
L2135: ldy #$07
|
|
|
|
sty $0B
|
2019-04-21 00:38:31 +00:00
|
|
|
lda MACHID
|
2019-04-20 22:54:40 +00:00
|
|
|
ror a
|
|
|
|
bcc L2145
|
2019-04-20 23:58:58 +00:00
|
|
|
jsr MON_HOME
|
2019-04-20 22:54:40 +00:00
|
|
|
jmp L1000
|
|
|
|
|
|
|
|
L2145: lda #$00
|
2019-04-21 00:38:31 +00:00
|
|
|
sta DATELO
|
|
|
|
sta DATELO+1
|
|
|
|
sta TIMELO
|
|
|
|
sta TIMELO+1
|
2019-04-20 22:54:40 +00:00
|
|
|
jmp L11AA
|
|
|
|
|
2019-04-20 23:58:58 +00:00
|
|
|
L2156: lda #OPC_JMP_abs
|
|
|
|
sta DATETIME
|
2019-04-21 00:38:31 +00:00
|
|
|
lda MACHID
|
|
|
|
ora #%00000001 ; has clock
|
|
|
|
sta MACHID
|
2019-04-21 04:13:24 +00:00
|
|
|
bit KBD
|
2019-04-20 22:54:40 +00:00
|
|
|
bmi L218C
|
|
|
|
lda $0A
|
|
|
|
cmp #$0B
|
|
|
|
bcc L2176
|
|
|
|
bit $11FE
|
|
|
|
bpl L2176
|
|
|
|
sta $1204
|
|
|
|
L2176: lda $1204
|
|
|
|
lsr a
|
|
|
|
cmp #$56
|
|
|
|
bcc L218C
|
2019-04-21 00:38:31 +00:00
|
|
|
lda DATELO
|
2019-04-20 22:54:40 +00:00
|
|
|
cmp $1203
|
2019-04-21 00:38:31 +00:00
|
|
|
lda DATELO+1
|
2019-04-20 22:54:40 +00:00
|
|
|
sbc $1204
|
|
|
|
bcs L21DF
|
2019-04-21 04:13:24 +00:00
|
|
|
L218C: bit KBDSTRB
|
2019-04-20 22:54:40 +00:00
|
|
|
rol $11FE
|
|
|
|
lda #$03
|
|
|
|
cmp $0A
|
|
|
|
ror $11FE
|
|
|
|
L2199: ldy #$05
|
|
|
|
jsr L10EF
|
|
|
|
lda $11FF
|
2019-04-20 23:58:58 +00:00
|
|
|
jsr PRBYTE
|
2019-04-20 22:54:40 +00:00
|
|
|
ldy #$06
|
|
|
|
jsr L10EF
|
2019-04-20 23:58:58 +00:00
|
|
|
L21A9: jsr RDKEY
|
2019-04-20 22:54:40 +00:00
|
|
|
and #$DF
|
|
|
|
cmp #$D9
|
|
|
|
beq L21D3
|
|
|
|
cmp #$CE
|
|
|
|
bne L21A9
|
|
|
|
ldy #$05
|
|
|
|
jsr L10EF
|
|
|
|
jsr L238E
|
|
|
|
asl a
|
|
|
|
asl a
|
|
|
|
asl a
|
|
|
|
asl a
|
|
|
|
sta $11FF
|
|
|
|
jsr L238E
|
|
|
|
and #$0F
|
|
|
|
ora $11FF
|
|
|
|
sta $11FF
|
|
|
|
jmp L2199
|
|
|
|
|
|
|
|
L21D3: lda $1204
|
|
|
|
jsr L2210
|
|
|
|
jsr L238A
|
|
|
|
jsr L111A
|
2019-04-21 04:13:24 +00:00
|
|
|
L21DF: lda RWRAM1
|
|
|
|
lda RWRAM1
|
2019-04-21 00:38:31 +00:00
|
|
|
lda DATETIME+1
|
2019-04-20 22:54:40 +00:00
|
|
|
sta L2202
|
|
|
|
clc
|
|
|
|
adc #$76
|
|
|
|
sta L22B1
|
2019-04-21 00:38:31 +00:00
|
|
|
lda DATETIME+2
|
2019-04-20 22:54:40 +00:00
|
|
|
sta L2203
|
|
|
|
adc #$00
|
|
|
|
sta L22B2
|
2019-04-21 04:13:24 +00:00
|
|
|
|
|
|
|
;; Relocate clock driver
|
|
|
|
|
2019-04-20 22:54:40 +00:00
|
|
|
ldy #$7C
|
|
|
|
L21FE: lda L2265,y
|
|
|
|
L2202 := * + 1
|
|
|
|
L2203 := * + 2
|
|
|
|
sta $F000,y
|
|
|
|
dey
|
|
|
|
bpl L21FE
|
2019-04-20 23:58:58 +00:00
|
|
|
jsr DATETIME
|
|
|
|
lda ROMIN2
|
2019-04-20 22:54:40 +00:00
|
|
|
jmp L1000
|
|
|
|
|
|
|
|
L2210: lda $11FF
|
|
|
|
pha
|
|
|
|
lsr a
|
|
|
|
lsr a
|
|
|
|
lsr a
|
|
|
|
lsr a
|
|
|
|
sta $06
|
|
|
|
asl a
|
|
|
|
asl a
|
|
|
|
adc $06
|
|
|
|
asl a
|
|
|
|
sta $06
|
|
|
|
pla
|
|
|
|
and #$0F
|
|
|
|
clc
|
|
|
|
adc $06
|
|
|
|
sta L22C7
|
|
|
|
rts
|
|
|
|
|
|
|
|
L222B: ldx #$FF
|
|
|
|
L222D: inx
|
|
|
|
sec
|
|
|
|
sbc #$0A
|
|
|
|
bcs L222D
|
|
|
|
adc #$0A
|
|
|
|
sta $06
|
|
|
|
txa
|
|
|
|
asl a
|
|
|
|
asl a
|
|
|
|
asl a
|
|
|
|
asl a
|
|
|
|
ora $06
|
|
|
|
rts
|
|
|
|
|
|
|
|
L223F: jsr L238A
|
2019-04-21 00:38:31 +00:00
|
|
|
lda DATELO+1
|
2019-04-20 22:54:40 +00:00
|
|
|
ror a
|
2019-04-21 00:38:31 +00:00
|
|
|
lda DATELO
|
2019-04-20 22:54:40 +00:00
|
|
|
rol a
|
|
|
|
rol a
|
|
|
|
rol a
|
|
|
|
rol a
|
|
|
|
and #$0F
|
|
|
|
sec
|
|
|
|
beq L2264
|
|
|
|
cmp #$0D
|
|
|
|
bcs L2264
|
|
|
|
sta $0A
|
2019-04-21 00:38:31 +00:00
|
|
|
lda TIMELO+1
|
2019-04-20 22:54:40 +00:00
|
|
|
cmp #$18
|
|
|
|
bcs L2264
|
2019-04-21 00:38:31 +00:00
|
|
|
lda TIMELO
|
2019-04-20 22:54:40 +00:00
|
|
|
cmp #$3C
|
|
|
|
L2264: rts
|
|
|
|
|
2019-04-21 04:13:24 +00:00
|
|
|
;;; ============================================================
|
|
|
|
;;; Clock Driver (Relocatable)
|
|
|
|
;;; ============================================================
|
|
|
|
|
2019-04-20 22:54:40 +00:00
|
|
|
L2265: cld
|
|
|
|
cld
|
|
|
|
php
|
|
|
|
sei
|
|
|
|
L2269:
|
|
|
|
L226A := * + 1
|
2019-04-21 04:13:24 +00:00
|
|
|
lda PORT2_ACIA_COMMAND
|
2019-04-20 22:54:40 +00:00
|
|
|
pha
|
|
|
|
ldy #$03
|
|
|
|
ldx #$16
|
|
|
|
lda #$08
|
|
|
|
L2273:
|
|
|
|
L2274 := * + 1
|
2019-04-21 04:13:24 +00:00
|
|
|
sta PORT2_ACIA_COMMAND
|
2019-04-20 22:54:40 +00:00
|
|
|
L2276: dex
|
|
|
|
bne L2276
|
|
|
|
eor #$0A
|
|
|
|
ldx #$09
|
|
|
|
dey
|
|
|
|
bne L2273
|
|
|
|
ldy #$04
|
|
|
|
bne L2289
|
|
|
|
L2284:
|
|
|
|
L2285 := * + 1
|
|
|
|
lda #$5D
|
|
|
|
L2286: .byte $3A
|
|
|
|
bne L2286
|
|
|
|
L2289:
|
|
|
|
L228A := * + 1
|
2019-04-21 04:13:24 +00:00
|
|
|
lda PORT2_ACIA_STATUS
|
2019-04-20 22:54:40 +00:00
|
|
|
rol a
|
|
|
|
rol a
|
|
|
|
rol a
|
|
|
|
ror $0200,x
|
|
|
|
lsr $0201,x
|
|
|
|
dey
|
|
|
|
bne L2284
|
|
|
|
ldy #$04
|
|
|
|
dex
|
|
|
|
bpl L2284
|
|
|
|
pla
|
|
|
|
L229F := * + 1
|
2019-04-21 04:13:24 +00:00
|
|
|
sta PORT2_ACIA_COMMAND
|
2019-04-20 22:54:40 +00:00
|
|
|
ldx #$06
|
|
|
|
L22A3: lda $0201,x
|
|
|
|
L22A6: dec $0200,x
|
|
|
|
bmi L22B0
|
|
|
|
clc
|
|
|
|
adc #$0A
|
|
|
|
bcc L22A6
|
|
|
|
L22B0:
|
|
|
|
L22B1 := * + 1
|
|
|
|
L22B2 := * + 2
|
|
|
|
ldy L22DB,x
|
2019-04-21 00:38:31 +00:00
|
|
|
sta $BF30,y ; Modifying DEVLST ???
|
2019-04-20 22:54:40 +00:00
|
|
|
dex
|
|
|
|
dex
|
|
|
|
bne L22A3
|
|
|
|
L22BA: lda $0200
|
|
|
|
asl a
|
|
|
|
and #$E0
|
2019-04-21 00:38:31 +00:00
|
|
|
ora DATELO
|
|
|
|
sta DATELO
|
2019-04-20 22:54:40 +00:00
|
|
|
L22C7 := * + 1
|
|
|
|
lda #$56
|
|
|
|
rol a
|
2019-04-21 00:38:31 +00:00
|
|
|
sta DATELO+1
|
2019-04-20 22:54:40 +00:00
|
|
|
ldy #$01
|
|
|
|
L22CE: lda $0208,y
|
|
|
|
ora #$B0
|
|
|
|
sta $020F,y
|
|
|
|
dey
|
|
|
|
bpl L22CE
|
|
|
|
dex
|
|
|
|
L22DB := * + 1
|
|
|
|
bne L22BA
|
|
|
|
plp
|
|
|
|
rts
|
|
|
|
|
|
|
|
.byte $FF
|
|
|
|
.byte $63
|
|
|
|
.byte $FF
|
|
|
|
.byte $62
|
|
|
|
L22E2:
|
|
|
|
L22E3 := * + 1
|
2019-04-21 04:13:24 +00:00
|
|
|
lda $C0E0 ; Set to $C0x0, n=slot+8
|
|
|
|
lda DISVBL
|
2019-04-20 22:54:40 +00:00
|
|
|
ldy #$01
|
|
|
|
ldx #$16
|
|
|
|
L22EC: dex
|
|
|
|
bne L22EC
|
2019-04-21 04:13:24 +00:00
|
|
|
lda DISVBL,y
|
2019-04-20 22:54:40 +00:00
|
|
|
ldx #$0B
|
|
|
|
dey
|
|
|
|
bpl L22EC
|
|
|
|
L22F7: dex
|
|
|
|
bne L22F7
|
|
|
|
ldx #$09
|
|
|
|
ldy #$04
|
|
|
|
bne L2307
|
|
|
|
L2300: lda #$5D
|
|
|
|
sec
|
|
|
|
L2303: sbc #$01
|
|
|
|
bne L2303
|
2019-04-21 04:13:24 +00:00
|
|
|
L2307: lda MOUSE_BTN
|
2019-04-20 22:54:40 +00:00
|
|
|
rol a
|
|
|
|
ror $0200,x
|
|
|
|
lsr $0201,x
|
|
|
|
nop
|
|
|
|
dey
|
|
|
|
bne L2300
|
|
|
|
ldy #$04
|
|
|
|
dex
|
|
|
|
bpl L2300
|
2019-04-21 04:13:24 +00:00
|
|
|
lda PORT2_ACIA_COMMAND
|
2019-04-20 22:54:40 +00:00
|
|
|
nop
|
|
|
|
ldy #$03
|
|
|
|
ldx #$16
|
|
|
|
lda #$02
|
2019-04-21 04:13:24 +00:00
|
|
|
L2324: sta PORT2_ACIA_COMMAND
|
2019-04-20 22:54:40 +00:00
|
|
|
L2327: dex
|
|
|
|
bne L2327
|
|
|
|
eor #$0A
|
|
|
|
ldx #$09
|
|
|
|
dey
|
|
|
|
bne L2324
|
|
|
|
ldy #$04
|
|
|
|
bne L233A
|
|
|
|
L2335:
|
|
|
|
L2336 := * + 1
|
|
|
|
lda #$5D
|
|
|
|
L2337: .byte $3A
|
|
|
|
bne L2337
|
2019-04-21 04:13:24 +00:00
|
|
|
L233A: lda PORT2_ACIA_STATUS
|
2019-04-20 22:54:40 +00:00
|
|
|
eor #$20
|
|
|
|
rol a
|
|
|
|
rol a
|
|
|
|
rol a
|
|
|
|
ror $0200,x
|
|
|
|
lsr $0201,x
|
|
|
|
dey
|
|
|
|
bne L2335
|
|
|
|
ldy #$04
|
|
|
|
dex
|
|
|
|
bpl L2335
|
|
|
|
nop
|
|
|
|
nop
|
2019-04-21 04:13:24 +00:00
|
|
|
lda ENVBL
|
|
|
|
sta ENBXY
|
|
|
|
sta X0EDGE1
|
2019-04-20 22:54:40 +00:00
|
|
|
nop
|
|
|
|
nop
|
|
|
|
nop
|
|
|
|
nop
|
2019-04-21 04:13:24 +00:00
|
|
|
lda DISXY
|
2019-04-20 22:54:40 +00:00
|
|
|
ldx #$15
|
|
|
|
L2364: dex
|
|
|
|
bne L2364
|
|
|
|
ldx #$09
|
|
|
|
L2369: ldy #$04
|
2019-04-21 04:13:24 +00:00
|
|
|
L236B: lda MOUSE_BTN
|
2019-04-20 22:54:40 +00:00
|
|
|
rol a
|
|
|
|
ror $0200,x
|
|
|
|
lsr $0201,x
|
2019-04-21 04:13:24 +00:00
|
|
|
sta X0EDGE2
|
2019-04-20 22:54:40 +00:00
|
|
|
nop
|
|
|
|
nop
|
|
|
|
nop
|
|
|
|
nop
|
|
|
|
nop
|
|
|
|
nop
|
2019-04-21 04:13:24 +00:00
|
|
|
sta X0EDGE1
|
2019-04-20 22:54:40 +00:00
|
|
|
dey
|
|
|
|
bne L236B
|
|
|
|
dex
|
|
|
|
bpl L2369
|
2019-04-21 04:13:24 +00:00
|
|
|
lda DISVBL
|
2019-04-20 22:54:40 +00:00
|
|
|
L238A: jsr L2265
|
|
|
|
rts
|
|
|
|
|
2019-04-20 23:58:58 +00:00
|
|
|
L238E: jsr RDKEY
|
2019-04-20 22:54:40 +00:00
|
|
|
cmp #$B0
|
|
|
|
bcc L238E
|
|
|
|
cmp #$BA
|
|
|
|
bcs L238E
|
2019-04-20 23:58:58 +00:00
|
|
|
jmp COUT
|
2019-04-20 22:54:40 +00:00
|
|
|
|
|
|
|
L239C: .byte $DF
|
|
|
|
.byte $FF
|
2019-04-21 03:33:26 +00:00
|
|
|
|
|
|
|
|
2019-04-21 04:13:24 +00:00
|
|
|
chain:
|
2019-04-20 22:54:40 +00:00
|
|
|
L239E:
|
2019-04-21 03:33:26 +00:00
|
|
|
;; Relocated to $1000
|
|
|
|
|
|
|
|
;;; ============================================================
|
|
|
|
;;; Chaining code???
|
|
|
|
;;; ============================================================
|
|
|
|
|
|
|
|
.org $1000
|
|
|
|
|
|
|
|
L1000:
|
2019-04-20 22:54:40 +00:00
|
|
|
ldy #$00
|
|
|
|
sty $11E8
|
|
|
|
iny
|
|
|
|
sty $04
|
|
|
|
iny
|
|
|
|
sty $11E7
|
|
|
|
jsr L119F
|
|
|
|
lda $1C23
|
|
|
|
sta $02
|
|
|
|
lda $1C24
|
|
|
|
sta $03
|
|
|
|
lda #$2B
|
|
|
|
sta $00
|
|
|
|
lda #$1C
|
|
|
|
sta $01
|
2019-04-21 03:33:26 +00:00
|
|
|
L1021: ldy #$10
|
2019-04-20 22:54:40 +00:00
|
|
|
lda ($00),y
|
|
|
|
cmp #$FF
|
2019-04-21 03:33:26 +00:00
|
|
|
bne L10A8
|
2019-04-20 22:54:40 +00:00
|
|
|
ldy #$00
|
|
|
|
lda ($00),y
|
|
|
|
and #$30
|
2019-04-21 03:33:26 +00:00
|
|
|
beq L10A8
|
2019-04-20 22:54:40 +00:00
|
|
|
lda ($00),y
|
|
|
|
and #$0F
|
|
|
|
sta $05
|
|
|
|
tay
|
|
|
|
ldx #$06
|
2019-04-21 03:33:26 +00:00
|
|
|
L103A: lda ($00),y
|
2019-04-20 22:54:40 +00:00
|
|
|
cmp $122E,x
|
2019-04-21 03:33:26 +00:00
|
|
|
bne L10A8
|
2019-04-20 22:54:40 +00:00
|
|
|
dey
|
|
|
|
dex
|
2019-04-21 03:33:26 +00:00
|
|
|
bpl L103A
|
2019-04-20 22:54:40 +00:00
|
|
|
ldy #$0C
|
2019-04-21 03:33:26 +00:00
|
|
|
L1047: lda ($00),y
|
2019-04-20 22:54:40 +00:00
|
|
|
cmp $1235,y
|
2019-04-21 03:33:26 +00:00
|
|
|
bne L1053
|
2019-04-20 22:54:40 +00:00
|
|
|
dey
|
2019-04-21 03:33:26 +00:00
|
|
|
bne L1047
|
|
|
|
beq L10A8
|
|
|
|
L1053: lda $05
|
2019-04-20 22:54:40 +00:00
|
|
|
sta $121D
|
|
|
|
sta $0280
|
|
|
|
inc $05
|
|
|
|
lda $0B
|
|
|
|
cmp #$07
|
2019-04-21 03:33:26 +00:00
|
|
|
beq L1070
|
2019-04-20 22:54:40 +00:00
|
|
|
ldy #$03
|
|
|
|
jsr L10E5
|
|
|
|
lda $07
|
2019-04-21 03:33:26 +00:00
|
|
|
beq L106D
|
2019-04-20 22:54:40 +00:00
|
|
|
iny
|
2019-04-21 03:33:26 +00:00
|
|
|
L106D: jsr L10EF
|
|
|
|
L1070: ldy #$08
|
2019-04-20 22:54:40 +00:00
|
|
|
jsr L10EF
|
|
|
|
ldy #$01
|
2019-04-21 03:33:26 +00:00
|
|
|
L1077: lda ($00),y
|
2019-04-20 22:54:40 +00:00
|
|
|
sta $121D,y
|
|
|
|
sta $0280,y
|
|
|
|
ora #$80
|
2019-04-20 23:58:58 +00:00
|
|
|
jsr COUT
|
2019-04-20 22:54:40 +00:00
|
|
|
iny
|
|
|
|
cpy $05
|
2019-04-21 03:33:26 +00:00
|
|
|
bne L1077
|
2019-04-20 22:54:40 +00:00
|
|
|
jsr L114F
|
|
|
|
lda #$00
|
2019-04-21 00:38:31 +00:00
|
|
|
sta WNDTOP
|
2019-04-20 22:54:40 +00:00
|
|
|
lda #$18
|
2019-04-21 00:38:31 +00:00
|
|
|
sta WNDBTM
|
2019-04-20 23:58:58 +00:00
|
|
|
jsr MON_HOME
|
2019-04-20 22:54:40 +00:00
|
|
|
lda $09
|
2019-04-21 03:33:26 +00:00
|
|
|
beq L10A5
|
2019-04-20 22:54:40 +00:00
|
|
|
lda #$15
|
2019-04-20 23:58:58 +00:00
|
|
|
jsr COUT
|
2019-04-20 22:54:40 +00:00
|
|
|
lda #$8D
|
2019-04-20 23:58:58 +00:00
|
|
|
jsr COUT
|
2019-04-21 03:33:26 +00:00
|
|
|
L10A5: jmp L2000
|
2019-04-20 22:54:40 +00:00
|
|
|
|
2019-04-21 03:33:26 +00:00
|
|
|
L10A8: clc
|
2019-04-20 22:54:40 +00:00
|
|
|
lda $00
|
|
|
|
adc $02
|
|
|
|
sta $00
|
|
|
|
lda $01
|
|
|
|
adc #$00
|
|
|
|
sta $01
|
|
|
|
inc $04
|
|
|
|
lda $04
|
|
|
|
cmp $03
|
2019-04-21 03:33:26 +00:00
|
|
|
bne L10E2
|
2019-04-20 22:54:40 +00:00
|
|
|
ldy $1C02
|
|
|
|
sty $11E7
|
|
|
|
lda $1C03
|
|
|
|
sta $11E8
|
2019-04-21 03:33:26 +00:00
|
|
|
bne L10D3
|
2019-04-20 22:54:40 +00:00
|
|
|
tya
|
2019-04-21 03:33:26 +00:00
|
|
|
bne L10D3
|
2019-04-20 22:54:40 +00:00
|
|
|
ldy #$01
|
|
|
|
jmp L11AA
|
|
|
|
|
2019-04-21 03:33:26 +00:00
|
|
|
L10D3: jsr L119F
|
2019-04-20 22:54:40 +00:00
|
|
|
lda #$00
|
|
|
|
sta $04
|
|
|
|
lda #$04
|
|
|
|
sta $00
|
|
|
|
lda #$1C
|
|
|
|
sta $01
|
2019-04-21 03:33:26 +00:00
|
|
|
L10E2: jmp L1021
|
2019-04-20 22:54:40 +00:00
|
|
|
|
2019-04-21 03:33:26 +00:00
|
|
|
L10E5: lda $11FE
|
2019-04-20 22:54:40 +00:00
|
|
|
and #$03
|
2019-04-21 03:33:26 +00:00
|
|
|
bne L10EE
|
2019-04-20 22:54:40 +00:00
|
|
|
ldy #$09
|
2019-04-21 03:33:26 +00:00
|
|
|
L10EE: rts
|
2019-04-20 22:54:40 +00:00
|
|
|
|
2019-04-21 03:33:26 +00:00
|
|
|
L10EF: lda $1242,y
|
2019-04-20 22:54:40 +00:00
|
|
|
sta $1109
|
|
|
|
lda $124E,y
|
|
|
|
sta $110A
|
|
|
|
cpy #$06
|
2019-04-21 03:33:26 +00:00
|
|
|
beq L1106
|
2019-04-20 22:54:40 +00:00
|
|
|
cpy #$08
|
2019-04-21 03:33:26 +00:00
|
|
|
beq L1106
|
2019-04-20 23:58:58 +00:00
|
|
|
jsr MON_HOME
|
2019-04-21 03:33:26 +00:00
|
|
|
L1106: ldy #$00
|
|
|
|
L1108: lda $F000,y
|
|
|
|
beq L1119
|
2019-04-20 22:54:40 +00:00
|
|
|
cmp #$E0
|
2019-04-21 03:33:26 +00:00
|
|
|
bcc L1113
|
2019-04-20 22:54:40 +00:00
|
|
|
and $08
|
2019-04-21 03:33:26 +00:00
|
|
|
L1113: jsr COUT
|
2019-04-20 22:54:40 +00:00
|
|
|
iny
|
2019-04-21 03:33:26 +00:00
|
|
|
bne L1108
|
|
|
|
L1119: rts
|
2019-04-20 22:54:40 +00:00
|
|
|
|
2019-04-21 03:33:26 +00:00
|
|
|
L111A: lda #$07
|
2019-04-20 22:54:40 +00:00
|
|
|
sta $11F9
|
|
|
|
ldy #$03
|
2019-04-21 03:33:26 +00:00
|
|
|
L1121: lda DATELO,y
|
2019-04-20 22:54:40 +00:00
|
|
|
sta $1203,y
|
|
|
|
dey
|
2019-04-21 03:33:26 +00:00
|
|
|
bpl L1121
|
2019-04-20 23:58:58 +00:00
|
|
|
lda #OPC_RTS
|
|
|
|
sta DATETIME
|
2019-04-21 00:38:31 +00:00
|
|
|
PRODOS_CALL MLI_SET_FILE_INFO, $11F9
|
|
|
|
bne :+
|
2019-04-20 22:54:40 +00:00
|
|
|
|
2019-04-21 00:38:31 +00:00
|
|
|
lda #OPC_JMP_abs
|
|
|
|
sta DATETIME
|
2019-04-20 22:54:40 +00:00
|
|
|
rts
|
|
|
|
|
2019-04-21 00:38:31 +00:00
|
|
|
: cmp #$2B
|
2019-04-21 03:33:26 +00:00
|
|
|
bne L11A8
|
2019-04-20 22:54:40 +00:00
|
|
|
ldy #$0B
|
|
|
|
jsr L10EF
|
|
|
|
jsr L11C3
|
2019-04-20 23:58:58 +00:00
|
|
|
jsr RDKEY
|
2019-04-20 22:54:40 +00:00
|
|
|
jmp L111A
|
|
|
|
|
2019-04-21 03:33:26 +00:00
|
|
|
L114F: PRODOS_CALL MLI_OPEN, $11E9
|
|
|
|
bne L11A8
|
2019-04-20 22:54:40 +00:00
|
|
|
lda $11EE
|
|
|
|
sta $11F0
|
2019-04-21 00:03:10 +00:00
|
|
|
|
2019-04-21 00:38:31 +00:00
|
|
|
PRODOS_CALL MLI_READ, $11EF
|
2019-04-21 03:33:26 +00:00
|
|
|
bne L11A8
|
2019-04-21 00:03:10 +00:00
|
|
|
|
2019-04-21 00:38:31 +00:00
|
|
|
PRODOS_CALL MLI_CLOSE, $11F7
|
2019-04-21 03:33:26 +00:00
|
|
|
bne L11A8
|
2019-04-20 22:54:40 +00:00
|
|
|
rts
|
|
|
|
|
2019-04-21 03:33:26 +00:00
|
|
|
L116E: lda DEVNUM
|
2019-04-20 22:54:40 +00:00
|
|
|
sta $11DD
|
|
|
|
sta $11E4
|
2019-04-21 00:03:10 +00:00
|
|
|
|
2019-04-21 00:38:31 +00:00
|
|
|
PRODOS_CALL MLI_ON_LINE, $11DC
|
2019-04-21 03:33:26 +00:00
|
|
|
bne L11A8
|
2019-04-21 00:38:31 +00:00
|
|
|
|
|
|
|
lda $120C
|
2019-04-20 22:54:40 +00:00
|
|
|
and #$0F
|
|
|
|
tay
|
|
|
|
iny
|
|
|
|
sty $120B
|
2019-04-21 00:38:31 +00:00
|
|
|
lda #'/'
|
2019-04-20 22:54:40 +00:00
|
|
|
sta $120C
|
2019-04-21 00:03:10 +00:00
|
|
|
|
2019-04-21 00:38:31 +00:00
|
|
|
PRODOS_CALL MLI_SET_PREFIX, $11E0
|
2019-04-21 03:33:26 +00:00
|
|
|
bne L11A8
|
2019-04-21 00:03:10 +00:00
|
|
|
|
2019-04-21 00:38:31 +00:00
|
|
|
PRODOS_CALL MLI_GET_FILE_INFO, $11F9
|
2019-04-21 03:33:26 +00:00
|
|
|
bne L11A8
|
2019-04-21 00:38:31 +00:00
|
|
|
rts
|
|
|
|
|
2019-04-21 03:33:26 +00:00
|
|
|
L119F: PRODOS_CALL MLI_READ_BLOCK, $11E3
|
|
|
|
bne L11A8
|
2019-04-20 22:54:40 +00:00
|
|
|
rts
|
|
|
|
|
2019-04-21 03:33:26 +00:00
|
|
|
L11A8: ldy #$02
|
|
|
|
L11AA: sty $0B
|
2019-04-20 22:54:40 +00:00
|
|
|
jsr L10EF
|
|
|
|
jsr L11C3
|
|
|
|
lda $0B
|
|
|
|
cmp #$07
|
2019-04-21 03:33:26 +00:00
|
|
|
bne L11C0
|
2019-04-20 23:58:58 +00:00
|
|
|
lda #OPC_RTS
|
|
|
|
sta DATETIME
|
2019-04-20 22:54:40 +00:00
|
|
|
jmp L1000
|
|
|
|
|
2019-04-21 03:33:26 +00:00
|
|
|
L11C0: jmp L11C0
|
2019-04-20 22:54:40 +00:00
|
|
|
|
2019-04-21 03:33:26 +00:00
|
|
|
L11C3: lda #$20
|
2019-04-20 22:54:40 +00:00
|
|
|
sta $0C
|
2019-04-21 03:33:26 +00:00
|
|
|
L11C7: lda #$02
|
2019-04-20 23:58:58 +00:00
|
|
|
jsr WAIT
|
2019-04-21 04:13:24 +00:00
|
|
|
sta SPKR
|
2019-04-20 22:54:40 +00:00
|
|
|
lda #$24
|
2019-04-20 23:58:58 +00:00
|
|
|
jsr WAIT
|
2019-04-21 04:13:24 +00:00
|
|
|
sta SPKR
|
2019-04-20 22:54:40 +00:00
|
|
|
dec $0C
|
2019-04-21 03:33:26 +00:00
|
|
|
bne L11C7
|
2019-04-20 22:54:40 +00:00
|
|
|
rts
|
|
|
|
|
|
|
|
.byte $02
|
|
|
|
rts
|
|
|
|
|
|
|
|
.byte $0C
|
|
|
|
.byte $12
|
|
|
|
ora ($0B,x)
|
2019-04-20 23:33:27 +00:00
|
|
|
.byte $12,$03,$60,$00,$1C,$00,$00,$03
|
|
|
|
.byte $1D,$12,$00,$1C,$00,$04,$00,$00
|
|
|
|
.byte $20,$00,$9F,$00,$00,$01,$00,$0A
|
|
|
|
.byte $35,$12
|
2019-04-20 22:54:40 +00:00
|
|
|
|
2019-04-20 23:08:35 +00:00
|
|
|
.res 50, 0
|
|
|
|
|
|
|
|
.byte ".SYSTEM"
|
|
|
|
|
2019-04-20 23:33:27 +00:00
|
|
|
PASCAL_STRING "CLOCK.SYSTEM"
|
2019-04-20 23:08:35 +00:00
|
|
|
|
2019-04-20 23:33:27 +00:00
|
|
|
.byte $5A,$AC,$08,$30,$4D,$64,$77,$87
|
|
|
|
.byte $AA,$2A,$47,$CD,$12,$12,$13,$13
|
|
|
|
.byte $13,$13,$13,$13,$13,$13,$13,$12
|
|
|
|
|
|
|
|
HIASCII "Install Clock Driver 1.5"
|
|
|
|
|
2019-04-21 03:33:26 +00:00
|
|
|
L1272: .byte $A0
|
|
|
|
|
2019-04-21 04:13:24 +00:00
|
|
|
HIASCII "\rCopyright (c) 1986 "
|
|
|
|
wrap1 := *-1
|
|
|
|
HIASCIIZ "Creative Peripherals Unlimited, Inc."
|
|
|
|
|
2019-04-20 23:33:27 +00:00
|
|
|
HIASCIIZ "Unable to find a '.SYSTEM' file!"
|
2019-04-21 04:13:24 +00:00
|
|
|
|
|
|
|
HIASCII "Remove Write-Protect tab, "
|
|
|
|
wrap2 := *-1
|
|
|
|
HIASCIIZ "Replace disk, and Press a key..."
|
|
|
|
|
2019-04-20 23:33:27 +00:00
|
|
|
HIASCIIZ "Disk error! Unable to continue!!!"
|
|
|
|
HIASCIIZ "Seiko //c driver installed. "
|
2019-04-21 04:13:24 +00:00
|
|
|
wrap4 := *-2
|
|
|
|
|
2019-04-20 23:33:27 +00:00
|
|
|
HIASCIIZ "Seiko //e driver installed. "
|
2019-04-21 04:13:24 +00:00
|
|
|
wrap5 := *-2
|
|
|
|
|
2019-04-20 23:33:27 +00:00
|
|
|
HIASCII "Current year is 19"
|
2019-04-21 04:13:24 +00:00
|
|
|
.byte 0, $AE
|
|
|
|
wrap3 := *
|
|
|
|
HIASCIIZ " OK? (Y/N) "
|
2019-04-20 23:33:27 +00:00
|
|
|
HIASCIIZ "No clock! Driver not installed...\r"
|
|
|
|
HIASCIIZ "Running "
|
|
|
|
|
2019-04-21 03:33:26 +00:00
|
|
|
;; Signature for end of range to copy to $1000
|
|
|
|
.byte $FF,$FF
|
|
|
|
|
|
|
|
;;; ============================================================
|
|
|
|
|
|
|
|
|
|
|
|
.byte $00,$04,$00
|
2019-04-20 23:33:27 +00:00
|
|
|
.byte $FF,$00,$FF,$00,$FF,$00,$00,$00
|
|
|
|
.byte $FF,$00,$FF,$00,$FF,$00,$FF,$00
|
|
|
|
.byte $FF,$00,$FF,$00,$FF,$00,$FF,$00
|
|
|
|
.byte $FF,$00,$FF,$00,$FF,$00,$FF,$00
|
|
|
|
.byte $FF,$00,$FF,$00,$FF,$00,$FF,$00
|
|
|
|
.byte $FF,$00,$FF,$00,$FF,$00,$FF,$00
|
|
|
|
.byte $FF,$00,$FF,$00,$FF,$00,$FF,$00
|
|
|
|
.byte $FF,$00,$FF,$00,$FF,$00,$FF,$00
|
|
|
|
.byte $FF,$00,$FF,$00,$FF,$00,$FF,$00
|
|
|
|
.byte $FF,$00,$FF,$00,$FF,$00,$FF,$00
|
|
|
|
.byte $FF,$00,$FF,$00,$FF,$00,$FF,$00
|
|
|
|
.byte $FF,$00,$FF,$00,$FF,$00,$FF,$00
|
|
|
|
.byte $FF,$00,$FF,$00,$FF,$00,$FF,$00
|
|
|
|
.byte $FF,$00,$FF,$00,$FF,$00,$FF,$00
|
|
|
|
.byte $FF,$00,$FF,$00,$FF,$00,$FF,$00
|
|
|
|
.byte $FF,$00,$FF,$00,$FF,$00,$FF,$00
|
|
|
|
.byte $FF,$00,$FF,$00,$FF,$00,$FF,$00
|
|
|
|
.byte $FF,$00,$FF,$00,$FF,$00,$FF,$65
|
|
|
|
.byte $00,$FF,$00,$FF,$00,$FF,$00,$FF
|
|
|
|
.byte $00,$FF,$00,$FF,$00,$FF,$00,$FF
|
|
|
|
.byte $00,$FF,$00,$FF,$00,$FF,$00,$FF
|
|
|
|
.byte $00
|