mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-11-01 01:06:33 +00:00
b1238af49d
this will probably upset people
277 lines
3.9 KiB
ArmAsm
277 lines
3.9 KiB
ArmAsm
test_entry:
|
|
|
|
|
|
load_new = $119D
|
|
load_address=$11C0
|
|
load_track=load_address+1
|
|
load_sector=load_address+2
|
|
load_length=load_address+3
|
|
|
|
; make sure we are in 40col mode
|
|
; with monitor I/O working
|
|
|
|
jsr $FE89 ; SETKBD (simulate keypress?)
|
|
jsr $FE93 ; SETVID (simulate video output?)
|
|
jsr $FB2F ; INIT (clear screen/etc)
|
|
jsr $FE84 ; SETNORM (set normal video)
|
|
jsr $FC58 ; HOME (clear screen)
|
|
|
|
|
|
;=============================
|
|
; print title
|
|
;=============================
|
|
lda #<message1
|
|
sta print_smc+1
|
|
lda #>message1
|
|
sta print_smc+2
|
|
jsr print_message
|
|
|
|
; wait for keypress
|
|
|
|
jsr $fd0c ; RDKEY
|
|
|
|
|
|
;=============================
|
|
; print reading disk1 message
|
|
;=============================
|
|
lda #<message2
|
|
sta print_smc+1
|
|
lda #>message2
|
|
sta print_smc+2
|
|
jsr print_message
|
|
|
|
; wait for keypress
|
|
|
|
; jsr $fd0c ; RDKEY
|
|
|
|
;================================
|
|
; read t0/s0 into c0
|
|
;================================
|
|
|
|
lda #$c
|
|
sta load_address
|
|
lda #$00
|
|
sta load_track
|
|
lda #$00
|
|
sta load_sector
|
|
lda #$1
|
|
sta load_length
|
|
|
|
jsr load_new
|
|
|
|
|
|
lda $c00
|
|
and #$f
|
|
clc
|
|
adc #'0'
|
|
sta message3+15
|
|
|
|
lda $c00
|
|
lsr
|
|
lsr
|
|
lsr
|
|
lsr
|
|
and #$f
|
|
clc
|
|
adc #'0'
|
|
sta message3+14
|
|
|
|
|
|
|
|
;=============================
|
|
; print read1 result message
|
|
;=============================
|
|
lda #<message3
|
|
sta print_smc+1
|
|
lda #>message3
|
|
sta print_smc+2
|
|
jsr print_message
|
|
|
|
; wait for keypress
|
|
|
|
jsr $fd0c ; RDKEY
|
|
|
|
;=============================
|
|
; print insert disk2 message
|
|
;=============================
|
|
lda #<message4
|
|
sta print_smc+1
|
|
lda #>message4
|
|
sta print_smc+2
|
|
jsr print_message
|
|
|
|
; wait for keypress
|
|
|
|
jsr $fd0c ; RDKEY
|
|
|
|
;===============================
|
|
; print read disk2 try1 message
|
|
;===============================
|
|
lda #<message5
|
|
sta print_smc+1
|
|
lda #>message5
|
|
sta print_smc+2
|
|
jsr print_message
|
|
|
|
|
|
lda #$c
|
|
sta load_address
|
|
lda #$00
|
|
sta load_track
|
|
lda #$00
|
|
sta load_sector
|
|
lda #$1
|
|
sta load_length
|
|
|
|
jsr load_new
|
|
|
|
|
|
lda $c00
|
|
and #$f
|
|
clc
|
|
adc #'0'
|
|
sta message6+15
|
|
|
|
lda $c00
|
|
lsr
|
|
lsr
|
|
lsr
|
|
lsr
|
|
and #$f
|
|
clc
|
|
adc #'0'
|
|
sta message6+14
|
|
|
|
|
|
;=============================
|
|
; print result2 message
|
|
;=============================
|
|
lda #<message6
|
|
sta print_smc+1
|
|
lda #>message6
|
|
sta print_smc+2
|
|
jsr print_message
|
|
|
|
lda $c00
|
|
cmp #$20
|
|
beq no_bug_found
|
|
|
|
;=============================
|
|
; print bug found
|
|
;=============================
|
|
lda #<message9
|
|
sta print_smc+1
|
|
lda #>message9
|
|
sta print_smc+2
|
|
jsr print_message
|
|
|
|
no_bug_found:
|
|
|
|
|
|
; wait for keypress
|
|
|
|
jsr $fd0c ; RDKEY
|
|
|
|
;===============================
|
|
; print read disk2 try2 message
|
|
;===============================
|
|
lda #<message7
|
|
sta print_smc+1
|
|
lda #>message7
|
|
sta print_smc+2
|
|
jsr print_message
|
|
|
|
|
|
lda #$c
|
|
sta load_address
|
|
lda #$00
|
|
sta load_track
|
|
lda #$00
|
|
sta load_sector
|
|
lda #$1
|
|
sta load_length
|
|
|
|
jsr load_new
|
|
|
|
|
|
lda $c00
|
|
and #$f
|
|
clc
|
|
adc #'0'
|
|
sta message8+15
|
|
|
|
lda $c00
|
|
lsr
|
|
lsr
|
|
lsr
|
|
lsr
|
|
and #$f
|
|
clc
|
|
adc #'0'
|
|
sta message8+14
|
|
|
|
|
|
;=============================
|
|
; print result3 message
|
|
;=============================
|
|
lda #<message8
|
|
sta print_smc+1
|
|
lda #>message8
|
|
sta print_smc+2
|
|
jsr print_message
|
|
|
|
|
|
|
|
;============================
|
|
; forever
|
|
;============================
|
|
forever:
|
|
jmp forever
|
|
|
|
;============================
|
|
; print message
|
|
;============================
|
|
|
|
print_message:
|
|
|
|
ldx #$00 ; loop either 256 chars or until hit zero
|
|
loop1:
|
|
print_smc:
|
|
lda message1,X
|
|
beq done1
|
|
ora #$80
|
|
jsr $FDED ; COUT
|
|
inx
|
|
bne loop1
|
|
done1:
|
|
rts
|
|
|
|
|
|
message1:
|
|
.byte "TESTING DISK-SWITCH BUG",$0d
|
|
.byte "=======================",$0d,$0d,0
|
|
|
|
message2:
|
|
.byte "READING DISK1 T0:S0 TO $C00",$0d,$0d,0
|
|
|
|
message3:
|
|
.byte " BYTE 0 WAS $GG (EXPECTED $01)",$0d,$0d,0
|
|
|
|
message4:
|
|
.byte "PLEASE PUT IN DISK2",$0d,$0d,0
|
|
|
|
message5:
|
|
.byte "READING DISK2 T0:S0 TO $C00",$0d,$0d,0
|
|
|
|
message6:
|
|
.byte " BYTE 0 WAS $GG (EXPECTED $20)",$0d,$0d,0
|
|
|
|
message7:
|
|
.byte "READING DISK2 T0:S0 TO $C00 AGAIN",$0d,$0d,0
|
|
|
|
message8:
|
|
.byte " BYTE 0 WAS $GG (EXPECTED $20)",$0d,$0d,0
|
|
|
|
message9:
|
|
.byte "*** BUG FOUND ***",$0d,$0d,0
|