mirror of
https://github.com/zellyn/a2audit.git
synced 2025-02-10 15:30:44 +00:00
auxmem: make sure LC test didn't touch main mem LC
This commit is contained in:
parent
afda89a50d
commit
3fe7aa4e60
@ -11,7 +11,7 @@
|
||||
KSW = $38
|
||||
|
||||
LCRESULT = $10
|
||||
LCRESULT2 = $11
|
||||
LCRESULT1 = $11
|
||||
AUXRESULT = $12
|
||||
|
||||
;; AUXMOVE locations
|
||||
|
BIN
audit/audit.dsk
BIN
audit/audit.dsk
Binary file not shown.
@ -23,12 +23,12 @@ AUXMEMTESTS
|
||||
+print
|
||||
!text "LC FAILED BEFORE:SKIPPING AUXMEM LC",$8D
|
||||
+printed
|
||||
beq .skiplc
|
||||
beq .afterlc
|
||||
|
||||
.auxlc ;; Run langcard tests in auxmem
|
||||
|
||||
lda LCRESULT
|
||||
sta LCRESULT2
|
||||
sta LCRESULT1
|
||||
lda #0
|
||||
sta LCRESULT
|
||||
|
||||
@ -37,11 +37,10 @@ AUXMEMTESTS
|
||||
lda $C08B
|
||||
lda #$44
|
||||
sta $D17B ; $D17B is $53 in Apple II/plus/e/enhanced
|
||||
lda #$55
|
||||
sta $FE1F ; FE1F is $60 in Apple II/plus/e/enhanced
|
||||
lda $C083 ; Read and write bank 2
|
||||
lda $C083
|
||||
lda #$66
|
||||
lda #$44
|
||||
sta $D17B
|
||||
|
||||
jsr .zptoaux
|
||||
@ -51,8 +50,60 @@ AUXMEMTESTS
|
||||
sta ALTZP_OFF_W
|
||||
|
||||
jsr .zpfromaux
|
||||
|
||||
lda LCRESULT
|
||||
bne +
|
||||
|
||||
+prerr $0008 ;; E0008: We tried to run the langcard tests again with auxmem (ALTZP active), and they failed, so we're quitting the auxmem test.
|
||||
!text "QUITTING AUXMEM TEST DUE TO LC FAIL",$8D
|
||||
+prerred
|
||||
sec
|
||||
rts
|
||||
|
||||
.skiplc
|
||||
;; Check that the stuff we stashed in main RAM was unaffected.
|
||||
+
|
||||
lda $C088 ; Read bank 1
|
||||
lda $D17B
|
||||
cmp #$44
|
||||
beq +
|
||||
pha
|
||||
+print
|
||||
!text "WANT BANK1 $D17B"
|
||||
+printed
|
||||
beq .lcerr
|
||||
|
||||
+ lda $C080 ; Read bank 2
|
||||
lda $D17B
|
||||
cmp #$44
|
||||
beq +
|
||||
pha
|
||||
+print
|
||||
!text "WANT BANK2 $D17B"
|
||||
+printed
|
||||
beq .lcerr
|
||||
|
||||
+
|
||||
lda $FE1F
|
||||
cmp #$44
|
||||
beq .afterlc
|
||||
pha
|
||||
+print
|
||||
!text "WANT RAM $FE1F"
|
||||
+printed
|
||||
|
||||
.lcerr
|
||||
+print
|
||||
!text "=$44;GOT $"
|
||||
+printed
|
||||
pla
|
||||
jsr PRBYTE
|
||||
+prerr $0009 ;; E0009: We wrote $44 to main RAM in the three test locations used by the LC test. They should have been unaffected by the LC test while it was using auxmem, but at least one of them was modified.
|
||||
!text ""
|
||||
+prerred
|
||||
sec
|
||||
rts
|
||||
|
||||
.afterlc
|
||||
|
||||
;; Success
|
||||
+print
|
||||
|
@ -27,3 +27,11 @@ We tried to put the language card into read bank 2, write bank 2, but failed to
|
||||
## E0007
|
||||
|
||||
This is a data-driven test of Language Card operation. We initialize $D17B in RAM bank 1 to $11, $D17B in RAM bank 2 to $22, and $FE1F in RAM to $33. Then, we perform a testdata-driven sequence of LDA and STA to the $C08X range. Finally we (try to) increment $D17B and $FE1F. Then we test (a) the current live value in $D17B, (b) the current live value in $FE1F, (c) the RAM bank 1 value of $D17B, (d) the RAM bank 2 value of $D17B, and (e) the RAM value of $FE1F, to see whether they match expected values. $D17B is usually $53 in ROM, and $FE1F is usally $60. For more information on the operation of the language card soft-switches, see Understanding the Apple IIe, by James Fielding Sather, Pg 5-24.
|
||||
|
||||
## E0008
|
||||
|
||||
We tried to run the langcard tests again with auxmem (ALTZP active), and they failed, so we're quitting the auxmem test.
|
||||
|
||||
## E0009
|
||||
|
||||
We wrote $44 to main RAM in the three test locations used by the LC test. They should have been unaffected by the LC test while it was using auxmem, but at least one of them was modified.
|
||||
|
Loading…
x
Reference in New Issue
Block a user