added remaining 8-bit modes. that was surprisingly easy

This commit is contained in:
Dagen Brock 2015-10-07 16:22:03 -05:00
parent 77db105415
commit f194080aea
1 changed files with 123 additions and 19 deletions

142
src/mmt.s
View File

@ -414,10 +414,86 @@ TestMemoryLocation
bne :test16 bne :test16
:test8 lda TestType :test8 lda TestType
cmp #TT_BITPATTERN cmp #TT_BITPATTERN
bne :checkrand
jmp Test_8BitPatternRW
:checkrand cmp #TT_RANDOM
bne :checkwalk0
jmp Test_8RandomRW
:checkwalk0 cmp #TT_BITWALK0
bne :checkwalk1
jmp Test_BitWalk0RW
:checkwalk1 cmp #TT_BITWALK1
bne :UNHANDLED bne :UNHANDLED
jmp Test_BitWalk1RW
:test16
:UNHANDLED
rts
Test_BitWalk1RW rts
TestMemoryLocationTwoPass rts
Test_BitWalk0RW
lda #%01111111
sta HexPattern
jsr Test_8BitPatternRW
lda #%10111111
sta HexPattern
jsr Test_8BitPatternRW
lda #%11011111
sta HexPattern
jsr Test_8BitPatternRW
lda #%11101111
sta HexPattern
jsr Test_8BitPatternRW
lda #%11110111
sta HexPattern
jsr Test_8BitPatternRW
lda #%11111011
sta HexPattern
jsr Test_8BitPatternRW
lda #%11111101
sta HexPattern
jsr Test_8BitPatternRW
lda #%11111110
sta HexPattern
jmp Test_8BitPatternRW
Test_BitWalk1RW
lda #%10000000
sta HexPattern
jsr Test_8BitPatternRW
lda #%01000000
sta HexPattern
jsr Test_8BitPatternRW
lda #%00100000
sta HexPattern
jsr Test_8BitPatternRW
lda #%00010000
sta HexPattern
jsr Test_8BitPatternRW
lda #%00001000
sta HexPattern
jsr Test_8BitPatternRW
lda #%00000100
sta HexPattern
jsr Test_8BitPatternRW
lda #%00000010
sta HexPattern
jsr Test_8BitPatternRW
lda #%00000001
sta HexPattern
jmp Test_8BitPatternRW
Test_8RandomRW
jsr GetRandByte
sta HexPattern
jmp Test_8BitPatternRW
Test_8BitPatternRW
ldy TestWriteRepeat ldy TestWriteRepeat
:test8bitpattern lda HexPattern :writeloop lda HexPattern
stal $020000,x stal $020000,x
BANKPATCH01 = *-1 BANKPATCH01 = *-1
lda TestAdjacentWrite lda TestAdjacentWrite
@ -427,35 +503,24 @@ BANKPATCH02 = *-1
stal $020001,x ;+1 stal $020001,x ;+1
BANKPATCH03 = *-1 BANKPATCH03 = *-1
:noAdjacentWrite
dey
bne :test8bitpattern
lda $C000 :noAdjacentWrite dey
bpl _nokey bne :writeloop
sta $C010
cmp #"c"
bne _nokey
lda #$55
stal $020000,x
BANKPATCHXX = *-1
_nokey nop
jsr CORRUPTOR
ldy TestReadRepeat ldy TestReadRepeat
:test8bitpatternrdlp ldal $020000,x :readloop ldal $020000,x
BANKPATCH04 = *-1 BANKPATCH04 = *-1
cmp HexPattern cmp HexPattern
bne :READERR8BP bne :READERR8BP
dey dey
bne :test8bitpatternrdlp bne :readloop
rts rts
:READERR8BP jsr TestLogError :READERR8BP jsr TestLogError
:test16
:UNHANDLED
rts rts
TestMemoryLocationTwoPass rts
@ -542,6 +607,19 @@ TestPatchBanks lda CurBank
sta BANKPATCH04 sta BANKPATCH04
sta BANKPATCHXX sta BANKPATCHXX
rts rts
CORRUPTOR
lda $C000
bpl _nokey
sta $C010
cmp #"c"
bne _nokey
lda #$55
stal $020000,x
BANKPATCHXX = *-1
_nokey nop
rts
mx %11 mx %11
@ -887,6 +965,32 @@ PrintTimerVal
jsr PRBYTE jsr PRBYTE
rts rts
* possible EOR values
*$1d (29)
*$2b (43)
*$2d (45)
*$4d (77)
*$5f (95)
*$63 (99)
*$65 (101)
*$69 (105)
*$71 (113)
*$87 (135)
*$8d (141)
*$a9 (169)
*$c3 (195)
*$cf (207)
*$e7 (231)
*$f5 (245)
GetRandByte ; USE ONLY WITH CORRUPTOR
lda _seed
beq :doEor
asl
bcc :noEor
:doEor eor #$2b
:noEor sta _seed
rts
_seed db 0
GetRandTrash ; USE ONLY WITH CORRUPTOR GetRandTrash ; USE ONLY WITH CORRUPTOR
lda _randomTrashByte lda _randomTrashByte
beq :doEor beq :doEor
@ -934,7 +1038,7 @@ TestType_BitWalk0 asc " bit walk 0",$00
TestType_Random asc " random ",$00 TestType_Random asc " random ",$00
TT_BITPATTERN = 0 TT_BITPATTERN = 0
TT_BITWALK1 = 1 TT_BITWALK1 = 1
TT_BITWALK2 = 2 TT_BITWALK0 = 2
TT_RANDOM = 3 TT_RANDOM = 3
TestDirectionTbl TestDirectionTbl