partially working two pass of 8-bit pattern

This commit is contained in:
Dagen Brock 2015-10-13 20:38:32 -05:00
parent 149d7f758e
commit 37356175ea

211
src/mmt.s
View File

@ -161,10 +161,6 @@ TestMasterLoop clc
ldx EndAddr ldx EndAddr
stz CurBank stz CurBank
lda _updateInterval ;@todo ?
sta _updateTick ;this hack makes bank loops consistent. might not be the best thing
jsr TestForceUpdateStatus
jsr TestPrintIteration jsr TestPrintIteration
jsr TestPrintErrors ;just to get it drawn jsr TestPrintErrors ;just to get it drawn
:NextBank jsr TestSetState ;sets read/write/both :NextBank jsr TestSetState ;sets read/write/both
@ -254,7 +250,7 @@ TestPrintState PushAll
bra :done bra :done
:check3 cmp #3 :check3 cmp #3
bne :done bne :done
PRINTXY #53;#12;Mesg_RW PRINTXY #53;#12;Mesg_WR
:done clc :done clc
xce xce
rep #$10 rep #$10
@ -410,16 +406,18 @@ TestRollBack
TestForceUpdateStatus PushAll TestForceUpdateStatus PushAll
stx _stash stx _stash
bra :print bra :print
TestUpdateStatus PushAll TestUpdateStatus ldy _updateTick
stx _stash ; save real X iny
ldy _updateTick
dey
sty _updateTick sty _updateTick
cpy #_updateInterval
bne :noprint bne :noprint
ldy #_updateInterval PushAll
stx _stash ; save real X
ldy #$0000
sty _updateTick sty _updateTick
:print sep #$10 ;in case? there was a sec xce combo here :print sep #$10 ;in case? there was a sec xce combo here
GOXY #66;#12 GOXY #66;#12
lda CurBank lda CurBank
@ -432,11 +430,11 @@ TestUpdateStatus PushAll
clc clc
xce xce
rep #$10 rep #$10
:noprint PopAll PopAll
rts :noprint rts
_updateTick dw #_updateInterval _updateTick dw #0
_updateInterval = #$0100 _updateInterval = #$0327
@ -457,16 +455,16 @@ TestMemoryLocation
:test8 lda TestType :test8 lda TestType
cmp #TT_BITPATTERN cmp #TT_BITPATTERN
bne :checkrand bne :checkrand
jmp Test_8BitPatternRW jmp Test_8BitPatternWR
:checkrand cmp #TT_RANDOM :checkrand cmp #TT_RANDOM
bne :checkwalk0 bne :checkwalk0
jmp Test_8RandomRW jmp Test_8RandomWR
:checkwalk0 cmp #TT_BITWALK0 :checkwalk0 cmp #TT_BITWALK0
bne :checkwalk1 bne :checkwalk1
jmp Test_8BitWalk0RW jmp Test_8BitWalk0WR
:checkwalk1 cmp #TT_BITWALK1 :checkwalk1 cmp #TT_BITWALK1
bne :UNHANDLED bne :UNHANDLED
jmp Test_8BitWalk1RW jmp Test_8BitWalk1WR
:test16 rep #$30 ;full 16-bit for long M :test16 rep #$30 ;full 16-bit for long M
@ -474,85 +472,181 @@ TestMemoryLocation
and #$00ff and #$00ff
cmp #TT_BITPATTERN cmp #TT_BITPATTERN
bne :check16rand bne :check16rand
jmp Test_16BitPatternRW jmp Test_16BitPatternWR
:check16rand cmp #TT_RANDOM :check16rand cmp #TT_RANDOM
bne :check16walk0 bne :check16walk0
jmp Test_16RandomRW jmp Test_16RandomWR
:check16walk0 cmp #TT_BITWALK0 :check16walk0 cmp #TT_BITWALK0
bne :check16walk1 bne :check16walk1
jmp Test_16BitWalk0RW jmp Test_16BitWalk0WR
:check16walk1 cmp #TT_BITWALK1 :check16walk1 cmp #TT_BITWALK1
bne :UNHANDLED bne :UNHANDLED
jmp Test_16BitWalk1RW jmp Test_16BitWalk1WR
:UNHANDLED sep #$30 :UNHANDLED sep #$30
rep #$10 rep #$10
rts rts
TestMemoryLocationTwoPass rts
***********************
************************* TWO PASS !!
****************************
********************************
************************************
*****************************************
TestMemoryLocationTwoPass
lda TestSize16Bit
bne :test16
:test8 lda TestType
cmp #TT_BITPATTERN
bne :checkrand
jmp Test_8BitPatternTP
:checkrand cmp #TT_RANDOM
bne :checkwalk0
jmp Test_8RandomTP
:checkwalk0 cmp #TT_BITWALK0
bne :checkwalk1
jmp Test_8BitWalk0TP
:checkwalk1 cmp #TT_BITWALK1
bne :UNHANDLED
jmp Test_8BitWalk1TP
:test16 rep #$30 ;full 16-bit for long M
lda TestType
and #$00ff
cmp #TT_BITPATTERN
bne :check16rand
jmp Test_16BitPatternTP
:check16rand cmp #TT_RANDOM
bne :check16walk0
jmp Test_16RandomTP
:check16walk0 cmp #TT_BITWALK0
bne :check16walk1
jmp Test_16BitWalk0TP
:check16walk1 cmp #TT_BITWALK1
bne :UNHANDLED
jmp Test_16BitWalk1TP
:UNHANDLED sep #$30
rep #$10
rts
* TWO PASS TESTS
mx %10
Test_8BitWalk1TP
Test_8BitWalk0TP
Test_8RandomTP
Test_16RandomTP
Test_16BitWalk1TP
Test_16BitWalk0TP
Test_16BitPatternTP
rts
Test_8BitPatternTP lda _testState
cmp #TESTSTATE_READ
beq :read
:write ldy TestWriteRepeat
_writeloop2 lda HexPattern
stal $020000,x
BANKPATCH10 = *-1
dey
bne _writeloop2
jsr CORRUPTOR
rts
:read
ldy TestReadRepeat
_readloop ldal $020000,x
BANKPATCH11 = *-1
cmp HexPattern
bne :readerror
dey
bne _readloop
rts
:readerror jsr TestLogError
jsr TestPrintErrors
jsr TestPauseError
rts
mx %10 ;still shortM longX mx %10 ;still shortM longX
* 8-bit R/W TESTS * 8-bit R/W TESTS
Test_8BitWalk0RW Test_8BitWalk0WR
lda #%01111111 lda #%01111111
sta HexPattern sta HexPattern
jsr Test_8BitPatternRW jsr Test_8BitPatternWR
lda #%10111111 lda #%10111111
sta HexPattern sta HexPattern
jsr Test_8BitPatternRW jsr Test_8BitPatternWR
lda #%11011111 lda #%11011111
sta HexPattern sta HexPattern
jsr Test_8BitPatternRW jsr Test_8BitPatternWR
lda #%11101111 lda #%11101111
sta HexPattern sta HexPattern
jsr Test_8BitPatternRW jsr Test_8BitPatternWR
lda #%11110111 lda #%11110111
sta HexPattern sta HexPattern
jsr Test_8BitPatternRW jsr Test_8BitPatternWR
lda #%11111011 lda #%11111011
sta HexPattern sta HexPattern
jsr Test_8BitPatternRW jsr Test_8BitPatternWR
lda #%11111101 lda #%11111101
sta HexPattern sta HexPattern
jsr Test_8BitPatternRW jsr Test_8BitPatternWR
lda #%11111110 lda #%11111110
sta HexPattern sta HexPattern
jmp Test_8BitPatternRW jmp Test_8BitPatternWR
Test_8BitWalk1RW Test_8BitWalk1WR
lda #%10000000 lda #%10000000
sta HexPattern sta HexPattern
jsr Test_8BitPatternRW jsr Test_8BitPatternWR
lda #%01000000 lda #%01000000
sta HexPattern sta HexPattern
jsr Test_8BitPatternRW jsr Test_8BitPatternWR
lda #%00100000 lda #%00100000
sta HexPattern sta HexPattern
jsr Test_8BitPatternRW jsr Test_8BitPatternWR
lda #%00010000 lda #%00010000
sta HexPattern sta HexPattern
jsr Test_8BitPatternRW jsr Test_8BitPatternWR
lda #%00001000 lda #%00001000
sta HexPattern sta HexPattern
jsr Test_8BitPatternRW jsr Test_8BitPatternWR
lda #%00000100 lda #%00000100
sta HexPattern sta HexPattern
jsr Test_8BitPatternRW jsr Test_8BitPatternWR
lda #%00000010 lda #%00000010
sta HexPattern sta HexPattern
jsr Test_8BitPatternRW jsr Test_8BitPatternWR
lda #%00000001 lda #%00000001
sta HexPattern sta HexPattern
jmp Test_8BitPatternRW jmp Test_8BitPatternWR
Test_8RandomRW Test_8RandomWR
jsr GetRandByte jsr GetRandByte
sta HexPattern sta HexPattern
jmp Test_8BitPatternRW jmp Test_8BitPatternWR
Test_8BitPatternRW Test_8BitPatternWR
ldy TestWriteRepeat ldy TestWriteRepeat
_writeloop lda HexPattern _writeloop lda HexPattern
stal $020000,x stal $020000,x
@ -570,14 +664,14 @@ _noAdjacentWrite dey
jsr CORRUPTOR jsr CORRUPTOR
ldy TestReadRepeat ldy TestReadRepeat
_readloop ldal $020000,x _readloop2 ldal $020000,x
BANKPATCH04 = *-1 BANKPATCH04 = *-1
cmp HexPattern cmp HexPattern
bne _readerror bne :readerror
dey dey
bne _readloop bne _readloop2
rts rts
_readerror jsr TestLogError :readerror jsr TestLogError
jsr TestPrintErrors jsr TestPrintErrors
jsr TestPauseError jsr TestPauseError
rts rts
@ -585,7 +679,7 @@ _readerror jsr TestLogError
* 16-bit R/W TESTS * 16-bit R/W TESTS
mx %00 mx %00
Test_16BitWalk0RW Test_16BitWalk0WR
lda #%0111111111111111 lda #%0111111111111111
sta HexPattern sta HexPattern
jsr Test_16Bit jsr Test_16Bit
@ -639,7 +733,7 @@ Test_16BitWalk0RW
rts rts
mx %00 mx %00
Test_16BitWalk1RW Test_16BitWalk1WR
lda #%1000000000000000 lda #%1000000000000000
sta HexPattern sta HexPattern
jsr Test_16Bit jsr Test_16Bit
@ -695,7 +789,7 @@ Test_16BitWalk1RW
mx %00 mx %00
Test_16RandomRW jsr GetRandByte16 Test_16RandomWR jsr GetRandByte16
sta HexPattern sta HexPattern
jsr Test_16Bit jsr Test_16Bit
sep #$20 sep #$20
@ -703,7 +797,7 @@ Test_16RandomRW jsr GetRandByte16
mx %00 mx %00
Test_16BitPatternRW jsr Test_16Bit Test_16BitPatternWR jsr Test_16Bit
sep #$20 sep #$20
rts rts
mx %00 mx %00
@ -728,6 +822,13 @@ _noAdjacentWrite16 dey
xce xce
rep #$30 ;???????????????????? rep #$30 ;????????????????????
ldy TestRefreshPause
beq :nopause
:outer dey
bne :outer
:nopause
ldy TestReadRepeat ldy TestReadRepeat
_readloop16 ldal $020000,x _readloop16 ldal $020000,x
BANKPATCH08 = *-1 BANKPATCH08 = *-1
@ -842,6 +943,9 @@ TestPatchBanks lda CurBank
sta BANKPATCH06 sta BANKPATCH06
sta BANKPATCH07 sta BANKPATCH07
sta BANKPATCH08 sta BANKPATCH08
sta BANKPATCH10 ;two pass start here
sta BANKPATCH11
rts rts
@ -881,7 +985,7 @@ Mesg_Starting asc $8D,"Starting Test",$8D,"Press P to paus
Mesg_Waiting asc " Waiting: ",00 Mesg_Waiting asc " Waiting: ",00
Mesg_Writing asc " Writing: ",00 Mesg_Writing asc " Writing: ",00
Mesg_Reading asc " Reading: ",00 Mesg_Reading asc " Reading: ",00
Mesg_RW asc "Read&Write: ",00 Mesg_WR asc "Write&Read: ",00
Mesg_Errors asc " Errors: ",$00 Mesg_Errors asc " Errors: ",$00
Mesg_TestPass asc " Test Pass: ",00 Mesg_TestPass asc " Test Pass: ",00
Mesg_Blank asc " ",00 Mesg_Blank asc " ",00
@ -1564,4 +1668,3 @@ BankExpansionHighest ds 1
BankMap ds 256 ;page-align maps just to make them easier to see BankMap ds 256 ;page-align maps just to make them easier to see
_stash ds 256 _stash ds 256
ds \ ds \