2018-01-17 00:52:31 +00:00
|
|
|
rel
|
|
|
|
typ $B3
|
|
|
|
dsk main.l
|
2018-01-15 15:58:58 +00:00
|
|
|
|
2018-01-27 02:25:23 +00:00
|
|
|
; ensure 16-bit mode (unnecessary?)
|
2018-01-18 22:01:26 +00:00
|
|
|
clc
|
|
|
|
xce
|
|
|
|
rep #$30
|
|
|
|
|
2018-01-17 00:52:31 +00:00
|
|
|
phk
|
|
|
|
plb
|
2018-01-27 02:25:23 +00:00
|
|
|
;;;;;
|
2018-01-15 15:58:58 +00:00
|
|
|
|
2018-01-27 02:25:23 +00:00
|
|
|
; we're going to need this
|
|
|
|
entrydp dw
|
|
|
|
|
|
|
|
phd
|
|
|
|
pla
|
|
|
|
sta entrydp
|
|
|
|
|
|
|
|
;;;;;;;;;
|
2018-01-17 06:07:57 +00:00
|
|
|
|
2018-01-18 22:01:26 +00:00
|
|
|
sep #$30 ; a, m, x half bank
|
2018-01-17 06:07:57 +00:00
|
|
|
|
2018-01-18 22:01:26 +00:00
|
|
|
lda #$00
|
|
|
|
pha
|
|
|
|
plb
|
2018-01-17 06:07:57 +00:00
|
|
|
|
2018-01-27 02:25:23 +00:00
|
|
|
; slide direct page up
|
|
|
|
|
2018-01-18 22:01:26 +00:00
|
|
|
lda #$0000
|
2018-01-17 00:52:31 +00:00
|
|
|
pha
|
2018-01-17 06:07:57 +00:00
|
|
|
pld
|
2018-01-15 15:58:58 +00:00
|
|
|
|
2018-01-18 22:01:26 +00:00
|
|
|
|
2018-01-27 02:25:23 +00:00
|
|
|
; toggle the softswitches; they don't take any values. some are only triggered
|
|
|
|
; by writes, $C054 can be triggered by a read
|
2018-01-18 22:01:26 +00:00
|
|
|
|
2018-01-17 06:07:57 +00:00
|
|
|
sta $C000 ; disable 80 column store?
|
2018-01-18 22:01:26 +00:00
|
|
|
|
2018-01-17 06:07:57 +00:00
|
|
|
sta $C00C ; disable 80 column hardware?!
|
2018-01-18 22:01:26 +00:00
|
|
|
sta $C050 ; set standard apple ii gfx mode
|
2018-01-17 06:07:57 +00:00
|
|
|
sta $C051 ; select text mode only. "only"?
|
|
|
|
lda $C054 ; select text page 1 (there are 2)
|
2018-01-18 22:01:26 +00:00
|
|
|
lda $C056 ; select "low res" graphics
|
2018-01-17 06:07:57 +00:00
|
|
|
|
2018-01-27 02:25:23 +00:00
|
|
|
; ok, we are done toggling switches, let's go make a string
|
|
|
|
|
|
|
|
rep #$30
|
|
|
|
|
|
|
|
phk
|
|
|
|
plb
|
|
|
|
lda entrydp
|
|
|
|
pha
|
|
|
|
pld
|
|
|
|
|
|
|
|
; the first byte of the str is its length, we'll use that for cmp
|
|
|
|
ldx #1
|
|
|
|
|
|
|
|
atxt str "O SHIT"
|
|
|
|
loopy nop
|
|
|
|
clc
|
|
|
|
cpx #4 ; compare with length, bail if too long
|
|
|
|
bcs outbrk
|
|
|
|
ldy atxt,x
|
|
|
|
|
|
|
|
lda #$00
|
|
|
|
pha
|
|
|
|
plb
|
|
|
|
|
|
|
|
lda #$0000
|
|
|
|
pha
|
|
|
|
pld
|
|
|
|
|
|
|
|
sty $04,x
|
|
|
|
|
|
|
|
phk
|
|
|
|
plb
|
|
|
|
lda entrydp
|
|
|
|
pha
|
|
|
|
pld
|
|
|
|
|
|
|
|
inx
|
|
|
|
|
|
|
|
jmp loopy
|
|
|
|
|
|
|
|
outbrk lda #37
|
|
|
|
brk
|
|
|
|
|
|
|
|
* lda #"H"
|
|
|
|
* sta $0400
|
|
|
|
* lda #"e"
|
|
|
|
* sta $0401
|
|
|
|
* lda #"l"
|
|
|
|
* sta $0402
|
|
|
|
* lda #"l"
|
|
|
|
* sta $0403
|
|
|
|
* lda #"o"
|
|
|
|
* sta $0404
|
|
|
|
* lda #" "
|
|
|
|
* sta $0405
|
|
|
|
* lda #"W"
|
|
|
|
* sta $0406
|
|
|
|
* lda #"o"
|
|
|
|
* sta $0407
|
|
|
|
* lda #"r"
|
|
|
|
* sta $0408
|
|
|
|
* lda #"l"
|
|
|
|
* sta $0409
|
|
|
|
* lda #"d"
|
|
|
|
* sta $040A
|
2018-01-18 22:01:26 +00:00
|
|
|
brk
|
2018-01-17 06:07:57 +00:00
|
|
|
|
|
|
|
|
2018-01-15 15:58:58 +00:00
|
|
|
|
2018-01-17 00:52:31 +00:00
|
|
|
; Important locations
|
|
|
|
SPEAKER equ $E0C030
|
|
|
|
PRODOS16 equ $E100A8
|
2018-01-15 15:58:58 +00:00
|
|
|
|
2018-01-17 00:52:31 +00:00
|
|
|
jsl PRODOS16
|
2018-01-15 15:58:58 +00:00
|
|
|
; This exit code is "device busy", why is it the only one
|
|
|
|
; that works?!
|
2018-01-17 00:52:31 +00:00
|
|
|
da $29
|
|
|
|
adrl QP
|
2018-01-15 15:58:58 +00:00
|
|
|
bcs ERROR
|
|
|
|
|
2018-01-17 00:52:31 +00:00
|
|
|
ERROR brk
|
2018-01-15 15:58:58 +00:00
|
|
|
|
|
|
|
QP adrl $0000
|
2018-01-17 00:52:31 +00:00
|
|
|
da $00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-17 06:07:57 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-18 22:01:26 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-17 00:52:31 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-01-15 15:58:58 +00:00
|
|
|
|
2018-01-14 22:53:06 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|