mirror of
https://github.com/zellyn/a2audit.git
synced 2025-02-20 21:29:09 +00:00
audit: change string printing, work on LC test
This commit is contained in:
parent
9661f76aa7
commit
0aa9ee4f20
198
audit/audit.asm
198
audit/audit.asm
@ -9,67 +9,103 @@
|
||||
COUT = $FDED
|
||||
PRBYTE = $FDDA
|
||||
|
||||
STRINGS = $7000
|
||||
!set LASTSTRING = $7000
|
||||
|
||||
!macro print {
|
||||
lda #<LASTSTRING
|
||||
sta getch2+1
|
||||
lda #>LASTSTRING
|
||||
sta getch2+2
|
||||
jsr print2
|
||||
!set TEMP = *
|
||||
* = LASTSTRING
|
||||
}
|
||||
!macro printed {
|
||||
!byte 0
|
||||
!set LASTSTRING=*
|
||||
* = TEMP
|
||||
}
|
||||
|
||||
!macro prerr NUM {
|
||||
+print
|
||||
}
|
||||
!macro prerred {
|
||||
!byte $8D
|
||||
+printed
|
||||
}
|
||||
main:
|
||||
jsr HOME
|
||||
jsr print
|
||||
!text "APPLE II AUDIT",$8D,$8D,0
|
||||
|
||||
+print
|
||||
!text "APPLE II AUDIT",$8D,$8D
|
||||
+printed
|
||||
!zone detect {
|
||||
jsr IDENTIFY
|
||||
lda $C082 ; Put ROM back in place.
|
||||
|
||||
jsr print
|
||||
!text "MEMORY:",0
|
||||
+print
|
||||
!text "MEMORY:"
|
||||
+printed
|
||||
lda MEMORY
|
||||
bpl +
|
||||
jsr print
|
||||
!text "128K",$8D,0
|
||||
+print
|
||||
!text "128K",$8D
|
||||
+printed
|
||||
beq +++
|
||||
+ cmp #64
|
||||
bcc +
|
||||
jsr print
|
||||
!text "64K",$8D,0
|
||||
+print
|
||||
!text "64K",$8D
|
||||
+printed
|
||||
beq +++
|
||||
+ jsr print
|
||||
!text "48K",$8D,0
|
||||
+ +print
|
||||
!text "48K",$8D
|
||||
+printed
|
||||
+++
|
||||
lda MACHINE
|
||||
bne .known
|
||||
;; MACHINE=0 - unknown machine
|
||||
jsr print
|
||||
!text "UNABLE TO IDENTIFY",$8D,0
|
||||
+prerr $0001 ;; E0001: The machine identification routines from http://www.1000bit.it/support/manuali/apple/technotes/misc/tn.misc.02.html failed to identify the model.
|
||||
!text "UNABLE TO IDENTIFY"
|
||||
+prerred
|
||||
jmp end
|
||||
.known
|
||||
cmp #IIeCard
|
||||
bcc .leiic
|
||||
bne .gs
|
||||
;IIeCard
|
||||
jsr print
|
||||
!text "IIE EMULATION CARD",0
|
||||
+print
|
||||
!text "IIE EMULATION CARD"
|
||||
+printed
|
||||
beq .notsupported
|
||||
.gs ;PLUGH
|
||||
jsr print
|
||||
!text "APPLE IIGS",0
|
||||
+print
|
||||
!text "APPLE IIGS"
|
||||
+printed
|
||||
.notsupported
|
||||
jsr print
|
||||
!text " NOT SUPPORTED",$8D,0
|
||||
+prerr $0002 ;; E0002: The current version of the audit program doesn't support the identified machine.
|
||||
!text " NOT SUPPORTED"
|
||||
+prerred
|
||||
jmp end
|
||||
.leiic
|
||||
cmp #IIe
|
||||
bcc .leiii
|
||||
beq .iie
|
||||
;IIc
|
||||
jsr print
|
||||
!text "IIC",0
|
||||
+print
|
||||
!text "IIC"
|
||||
+printed
|
||||
beq .notsupported
|
||||
.iie
|
||||
jsr print
|
||||
!text "APPLE IIE",0
|
||||
+print
|
||||
!text "APPLE IIE"
|
||||
+printed
|
||||
lda ROMLEVEL
|
||||
cmp #1
|
||||
beq +
|
||||
jsr print
|
||||
!text " (ENHANCED)",0
|
||||
+print
|
||||
!text " (ENHANCED)"
|
||||
+printed
|
||||
+ lda #$8D
|
||||
jsr COUT
|
||||
beq .done
|
||||
@ -78,16 +114,19 @@ main:
|
||||
bcc .iiplain
|
||||
beq .iiplus
|
||||
;iiiem
|
||||
jsr print
|
||||
!text "APPLE III IN EMULATION MODE",0
|
||||
+print
|
||||
!text "APPLE III IN EMULATION MODE"
|
||||
+printed
|
||||
beq .notsupported
|
||||
.iiplain
|
||||
jsr print
|
||||
!text "PLAIN APPLE II",$8D,0
|
||||
+print
|
||||
!text "PLAIN APPLE II",$8D
|
||||
+printed
|
||||
beq .done
|
||||
.iiplus
|
||||
jsr print
|
||||
!text "APPLE II PLUS",$8D,0
|
||||
+print
|
||||
!text "APPLE II PLUS",$8D
|
||||
+printed
|
||||
.done
|
||||
} ;detect
|
||||
|
||||
@ -95,34 +134,87 @@ main:
|
||||
lda MEMORY
|
||||
cmp #49
|
||||
bcs +
|
||||
jsr print
|
||||
!text "48K:SKIPPING LANGUAGE CARD TEST",$8D,0
|
||||
+print
|
||||
!text "48K:SKIPPING LANGUAGE CARD TEST",$8D
|
||||
+printed
|
||||
beq .done2
|
||||
;; Setup - store differing values in bank first and second banked areas.
|
||||
+ lda $C08B ; Read and write First 4K bank
|
||||
lda $C08B
|
||||
lda #$55
|
||||
sta $D17B ; D17B is $53 in Apple II/plus/e/enhanced
|
||||
cmp $D17B
|
||||
beq +
|
||||
+prerr $0003 ;; E0003: We tried to put the language card into read bank 1, write bank 1, but failed to write.
|
||||
!text "CANNOT WRITE TO LC BANK 1 RAM"
|
||||
+prerred
|
||||
beq .done2
|
||||
+ sta $FE1F ; FE1F is $60 in Apple II/plus/e/enhanced
|
||||
cmp $FE1F
|
||||
beq +
|
||||
+prerr $0004 ;; E0004: We tried to put the language card into read RAM, write RAM, but failed to write.
|
||||
!text "CANNOT WRITE TO LC RAM"
|
||||
+prerred
|
||||
beq .done
|
||||
+
|
||||
+ lda $C083 ; Read and write Second 4K bank
|
||||
lda $C083
|
||||
lda #$AA
|
||||
sta $D17B
|
||||
cmp $D17B
|
||||
beq +
|
||||
+prerr $0005 ;; E0005: We tried to put the language card into read bank 2, write bank 2, but failed to write.
|
||||
!text "CANNOT WRITE TO LC BANK 2 RAM"
|
||||
+prerred
|
||||
beq .done
|
||||
+ lda $C088 ; RAM read, bank 1
|
||||
lda $D17B
|
||||
cmp #$55
|
||||
beq +++
|
||||
cmp #$AA
|
||||
bne +
|
||||
+prerr $0006 ;; E0006: Read $C088 (read bank 1), but the language card is still reading bank 2.
|
||||
!text "$C088: BANK 1 ACTIVE"
|
||||
+prerred
|
||||
.done2 beq .done
|
||||
+ cmp #$53
|
||||
bne +
|
||||
+prerr $0007 ;; E0007: Read $C088 (read bank 1), but the language card is reading ROM.
|
||||
!text "$C088: ROM ACTIVE"
|
||||
+prerred
|
||||
beq .done
|
||||
+ +prerr $0007 ;; E0007: Read $C088 (read bank 1), but the check byte ($D17B) is an unknown value.
|
||||
!text "$C088: UNKNOWN BYTE"
|
||||
+prerred
|
||||
beq .done
|
||||
+++
|
||||
;; Test
|
||||
;; Success
|
||||
+print
|
||||
!text "LANGUAGE CARD TESTS SUCCEEDED",$8D
|
||||
+printed
|
||||
.done
|
||||
} ;langcard
|
||||
|
||||
end: jmp *
|
||||
|
||||
;;; print prints a null-terminated string from the address after the
|
||||
;;; JSR that called it, returning to the address following the null.
|
||||
print:
|
||||
pla
|
||||
sta getch+1
|
||||
pla
|
||||
sta getch+2
|
||||
- inc getch+1
|
||||
bne getch
|
||||
inc getch+2
|
||||
getch lda $FEED ; $FEED gets modified
|
||||
!src "technote2.asm"
|
||||
|
||||
print2
|
||||
lda $C081
|
||||
lda $C081
|
||||
getch2 lda $FEED
|
||||
beq +
|
||||
jsr COUT
|
||||
jmp -
|
||||
+ lda getch+2
|
||||
pha
|
||||
lda getch+1
|
||||
pha
|
||||
lda #0 ; so we can always beq after print-ing
|
||||
rts
|
||||
inc getch2+1
|
||||
bne getch2
|
||||
inc getch2+2
|
||||
jmp getch2
|
||||
+ rts
|
||||
|
||||
!src "technote2.asm"
|
||||
; !if * != STRINGS {
|
||||
; !error "Expected STRINGS to be ", *
|
||||
; }
|
||||
|
||||
!if * > STRINGS {
|
||||
!error "End of compilation passed STRINGS:", *
|
||||
}
|
||||
|
BIN
audit/audit.dsk
BIN
audit/audit.dsk
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user