mirror of
https://github.com/digarok/MiniMemoryTester.git
synced 2024-06-20 12:29:28 +00:00
adding more menu types and clen up SOME functions
This commit is contained in:
parent
6a4133d6cc
commit
91bc3fd7d6
177
src/mt.s
177
src/mt.s
|
@ -364,7 +364,7 @@ PrintTestCurrent pha
|
||||||
inc _stash ; \
|
inc _stash ; \
|
||||||
beq :noroll ; |- INX
|
beq :noroll ; |- INX
|
||||||
inc _stash+1 ; /
|
inc _stash+1 ; /
|
||||||
:nocorrupt cmp #"p"A ; check lower p
|
:nocorrupt cmp #"p" ; check lower p
|
||||||
* @TODO make tolower for the comparisons
|
* @TODO make tolower for the comparisons
|
||||||
bne :nopause
|
bne :nopause
|
||||||
sta STROBE
|
sta STROBE
|
||||||
|
@ -475,6 +475,8 @@ Menu_DrawOptions sta $0
|
||||||
beq :hexItem
|
beq :hexItem
|
||||||
cmp #2
|
cmp #2
|
||||||
beq :jsrItem
|
beq :jsrItem
|
||||||
|
cmp #3
|
||||||
|
beq :listItem
|
||||||
:charItem
|
:charItem
|
||||||
:hexItem iny
|
:hexItem iny
|
||||||
lda ($0),y ; get len
|
lda ($0),y ; get len
|
||||||
|
@ -492,6 +494,7 @@ Menu_DrawOptions sta $0
|
||||||
cpy _menuHexIdx
|
cpy _menuHexIdx
|
||||||
bne :prloop
|
bne :prloop
|
||||||
bra :nextMenuItem
|
bra :nextMenuItem
|
||||||
|
:listItem bra :nextMenuItem
|
||||||
:jsrItem
|
:jsrItem
|
||||||
iny
|
iny
|
||||||
iny
|
iny
|
||||||
|
@ -561,7 +564,7 @@ Menu_UndrawSelected
|
||||||
bra :rightBracket
|
bra :rightBracket
|
||||||
|
|
||||||
:notHex cmp #2
|
:notHex cmp #2
|
||||||
bne :wtf
|
bne :notAction
|
||||||
iny
|
iny
|
||||||
lda ($0),y
|
lda ($0),y
|
||||||
|
|
||||||
|
@ -572,6 +575,18 @@ Menu_UndrawSelected
|
||||||
bra :rightBracket
|
bra :rightBracket
|
||||||
|
|
||||||
|
|
||||||
|
:notAction
|
||||||
|
cmp #3
|
||||||
|
bne :wtf
|
||||||
|
iny
|
||||||
|
lda ($0),y
|
||||||
|
|
||||||
|
inc
|
||||||
|
clc
|
||||||
|
adc _menuSelectedX1
|
||||||
|
tax
|
||||||
|
bra :rightBracket
|
||||||
|
|
||||||
:wtf
|
:wtf
|
||||||
|
|
||||||
:rightBracket
|
:rightBracket
|
||||||
|
@ -634,7 +649,7 @@ Menu_DrawSelected
|
||||||
bra :rightBracket
|
bra :rightBracket
|
||||||
|
|
||||||
:notHex cmp #2
|
:notHex cmp #2
|
||||||
bne :wtf
|
bne :notAction
|
||||||
iny
|
iny
|
||||||
lda ($0),y
|
lda ($0),y
|
||||||
|
|
||||||
|
@ -645,6 +660,18 @@ Menu_DrawSelected
|
||||||
bra :rightBracket
|
bra :rightBracket
|
||||||
|
|
||||||
|
|
||||||
|
:notAction
|
||||||
|
cmp #3
|
||||||
|
bne :wtf
|
||||||
|
iny
|
||||||
|
lda ($0),y
|
||||||
|
|
||||||
|
inc
|
||||||
|
clc
|
||||||
|
adc _menuSelectedX1
|
||||||
|
tax
|
||||||
|
bra :rightBracket
|
||||||
|
|
||||||
:wtf
|
:wtf
|
||||||
|
|
||||||
:rightBracket
|
:rightBracket
|
||||||
|
@ -659,22 +686,47 @@ Menu_DrawSelected
|
||||||
jsr COUT
|
jsr COUT
|
||||||
|
|
||||||
rts
|
rts
|
||||||
_menuSelectedX1 db 0 ; no x2 cuz we be addin'
|
_menuSelectedX1 db 0 ; no x2 cuz we be addin' dat offset
|
||||||
_menuSelectedY db 0
|
_menuSelectedY db 0
|
||||||
|
|
||||||
|
MenuOption_Char equ #0
|
||||||
|
MenuOption_Hex equ #1
|
||||||
|
MenuOption_Action equ #2
|
||||||
|
MenuOption_List equ #3
|
||||||
|
MenuOption_Bool equ #4
|
||||||
|
Menu_TypeTable da Menu_TypeChar,Menu_TypeHex,Menu_TypeAction,Menu_TypeList,Menu_TypeBool
|
||||||
|
|
||||||
|
* $0 = ptr->MenuDefs
|
||||||
Menu_HandleSelection
|
Menu_HandleSelection
|
||||||
lda #MainMenuDefs
|
lda #MainMenuDefs
|
||||||
ldy #>MainMenuDefs
|
ldy #>MainMenuDefs
|
||||||
sta $0
|
sta $0
|
||||||
sty $1
|
sty $1
|
||||||
lda #0
|
lda #0
|
||||||
ldx Menu_ItemSelected
|
ldx Menu_ItemSelected ; odd choice to load again, but preps flags (z) how i likes it
|
||||||
:check beq :foundIdx
|
:check beq :foundIdx ; <- a=struct offset
|
||||||
clc
|
clc
|
||||||
adc #6 ; "struct" size
|
adc #6 ; "struct" size
|
||||||
dex
|
dex
|
||||||
bra :check
|
bra :check
|
||||||
:foundIdx sta _stash
|
|
||||||
|
:foundIdx pha
|
||||||
|
tay
|
||||||
|
iny ;\
|
||||||
|
iny ; \
|
||||||
|
lda ($0),y ; > get MenuOption_Type, set up for jmp table
|
||||||
|
asl ; /
|
||||||
|
tax ;/
|
||||||
|
pla
|
||||||
|
jmp (Menu_TypeTable,x)
|
||||||
|
|
||||||
|
Menu_TypeChar rts
|
||||||
|
Menu_TypeList rts
|
||||||
|
Menu_TypeBool rts
|
||||||
|
|
||||||
|
|
||||||
|
Menu_TypeHex
|
||||||
|
pha
|
||||||
tay
|
tay
|
||||||
lda ($0),y
|
lda ($0),y
|
||||||
tax
|
tax
|
||||||
|
@ -682,17 +734,10 @@ Menu_HandleSelection
|
||||||
lda ($0),y
|
lda ($0),y
|
||||||
tay
|
tay
|
||||||
jsr GoXY
|
jsr GoXY
|
||||||
*** HERE
|
pla
|
||||||
ldy _stash
|
clc
|
||||||
iny
|
adc #3 ; ->memory size
|
||||||
iny
|
tay
|
||||||
lda ($0),y
|
|
||||||
bne :notChar
|
|
||||||
|
|
||||||
*TODO
|
|
||||||
:notChar cmp #1
|
|
||||||
bne :notHex
|
|
||||||
iny
|
|
||||||
lda ($0),y
|
lda ($0),y
|
||||||
asl ;*2
|
asl ;*2
|
||||||
pha
|
pha
|
||||||
|
@ -707,10 +752,7 @@ Menu_HandleSelection
|
||||||
jsr GetHex
|
jsr GetHex
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
Menu_TypeAction iny ; skip len byte
|
||||||
:notHex cmp #2
|
|
||||||
bne :wtf
|
|
||||||
iny ; skip len byte
|
|
||||||
iny
|
iny
|
||||||
lda ($0),y
|
lda ($0),y
|
||||||
sta :ACTION+1
|
sta :ACTION+1
|
||||||
|
@ -735,9 +777,6 @@ Menu_HandleSelection
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
:wtf
|
|
||||||
rts
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -751,8 +790,7 @@ Menu_PrevItem dec Menu_ItemSelected
|
||||||
:noflip rts
|
:noflip rts
|
||||||
|
|
||||||
|
|
||||||
Menu_NextItem
|
Menu_NextItem inc Menu_ItemSelected
|
||||||
inc Menu_ItemSelected
|
|
||||||
lda Menu_ItemSelected
|
lda Menu_ItemSelected
|
||||||
cmp #MainMenuItems
|
cmp #MainMenuItems
|
||||||
bcc :noflip
|
bcc :noflip
|
||||||
|
@ -762,32 +800,36 @@ Menu_NextItem
|
||||||
|
|
||||||
|
|
||||||
MainMenuDefs
|
MainMenuDefs
|
||||||
:StartBank hex 13,07 ; x,y
|
:StartBank hex 13,06 ; x,y
|
||||||
db 01 ; 0=char/1=hex input 2=Menu JSR
|
db MenuOption_Hex ; 1=hex input
|
||||||
db 01 ; memory size (bytes), 0=char/1=hex input
|
db 01 ; memory size (bytes)
|
||||||
da StartBank ; variable storage
|
da StartBank ; variable storage
|
||||||
:EndBank hex 13,08 ; x,y
|
:EndBank hex 13,07 ; x,y
|
||||||
db 01 ; 0=char/1=hex input 2=Menu JSR
|
db MenuOption_Hex ; 1=hex input
|
||||||
db 01 ; memory size (bytes), 0=char/1=hex input
|
db 01 ; memory size (bytes)
|
||||||
da EndBank ; variable storage
|
da EndBank ; variable storage
|
||||||
:StartAddr hex 13,0A ; x,y
|
:StartAddr hex 13,09 ; x,y
|
||||||
db 01 ; 0=char/1=hex input 2=Menu JSR
|
db MenuOption_Hex ; 1=hex input
|
||||||
db 02 ; memory size (bytes), 0=char/1=hex input
|
db 02 ; memory size (bytes)
|
||||||
da StartAddr ; variable storage
|
da StartAddr ; variable storage
|
||||||
:EndAddr hex 13,0B ; x,y
|
:EndAddr hex 13,0A ; x,y
|
||||||
db 01 ; 0=char/1=hex input 2=Menu JSR
|
db MenuOption_Hex ; 1=hex input
|
||||||
db 02 ; memory size (bytes), 0=char/1=hex input
|
db 02 ; memory size (bytes)
|
||||||
da EndAddr ; variable storage
|
da EndAddr ; variable storage
|
||||||
|
:TestType hex 13,0C ; x,y
|
||||||
|
db MenuOption_List ; 3=list input
|
||||||
|
db 08 ; max len size (bytes), 3=option list
|
||||||
|
da TestType ; params definition & storage
|
||||||
:TestByte hex 13,0D ; x,y
|
:TestByte hex 13,0D ; x,y
|
||||||
db 01 ; 0=char/1=hex input 2=Menu JSR
|
db MenuOption_Hex ; 1=hex input
|
||||||
db 01 ; memory size (bytes), 0=char/1=hex input
|
db 01 ; memory size (bytes)
|
||||||
da TestValue ; variable storage
|
da TestValue ; variable storage
|
||||||
:TestDelay hex 13,0E ; x,y
|
:TestDelay hex 13,0E ; x,y
|
||||||
db 01 ; 0=char/1=hex input 2=Menu JSR
|
db MenuOption_Hex ; 1=hex input
|
||||||
db 01 ; memory size (bytes), 0=char/1=hex input
|
db 01 ; memory size (bytes)
|
||||||
da TestDelay ; variable storage
|
da TestDelay ; variable storage
|
||||||
:BeginTest hex 13,11 ; x,y
|
:BeginTest hex 0B,12 ; x,y
|
||||||
db 02 ; 0=char/1=hex input 2=Menu JSR
|
db MenuOption_Action ; 2=action
|
||||||
db MenuStr_BeginTestL ; menu string length
|
db MenuStr_BeginTestL ; menu string length
|
||||||
da MenuStr_BeginTest ; string storage
|
da MenuStr_BeginTest ; string storage
|
||||||
MainMenuLen equ *-MainMenuDefs
|
MainMenuLen equ *-MainMenuDefs
|
||||||
|
@ -795,7 +837,14 @@ MainMenuItems equ MainMenuLen/6
|
||||||
MainMenuEnd dw 0000
|
MainMenuEnd dw 0000
|
||||||
Menu_ItemSelected db 0
|
Menu_ItemSelected db 0
|
||||||
|
|
||||||
|
TestType db 00 ; actual CONST val
|
||||||
|
da _TestTypes
|
||||||
|
_TestTypes asc "BYTE",$00
|
||||||
|
asc "WORD",$00
|
||||||
|
asc "RANDBYTE",$00
|
||||||
|
asc "RANDBYTE",$00
|
||||||
|
asc "CHECKERS",$00
|
||||||
|
asc "BANK",$00
|
||||||
|
|
||||||
MenuStr_JSR da BeginTest ; MUST PRECEDE MENU STRING! Yes, it's magicly inferred. (-2)
|
MenuStr_JSR da BeginTest ; MUST PRECEDE MENU STRING! Yes, it's magicly inferred. (-2)
|
||||||
MenuStr_BeginTest asc "BEGIN TEST"
|
MenuStr_BeginTest asc "BEGIN TEST"
|
||||||
|
@ -806,25 +855,27 @@ MainMenuStrs
|
||||||
asc " ",$1B,'ZGGGGGGGGGGGGGGGGGGGGGGGGGGG\'," Mini Memory Tester ",'\GGGGGGGGGGGGG\'," ALPHA ",'\GGGGG_',$18,$8D,$00
|
asc " ",$1B,'ZGGGGGGGGGGGGGGGGGGGGGGGGGGG\'," Mini Memory Tester ",'\GGGGGGGGGGGGG\'," ALPHA ",'\GGGGG_',$18,$8D,$00
|
||||||
asc " ",$1B,'ZWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVW'," ReactiveMicro ",'VW_',$18,$8D,00
|
asc " ",$1B,'ZWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVWVW'," ReactiveMicro ",'VW_',$18,$8D,00
|
||||||
asc " ",$1B,'ZLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL_',$18,$8D,00
|
asc " ",$1B,'ZLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL_',$18,$8D,00
|
||||||
asc " ",$1B,'Z'," ",'_',$18,$8D,00
|
asc " ",$1B,'Z'," ",' \GGG_',"Test Settings",'ZGGG\ '," ABCDEFGHIZKLMNOPQRSTUVWXYZ ",'_',$18,$8D,00
|
||||||
asc " ",$1B,'Z'," ",' \G_',"Test Settings",'ZG\ '," ",'_',$18,$8D,00
|
asc " ",$1B,'Z'," ",'_'," ",'Z'," ",'ABCDEFGHIZKLMNOPQRSTUVWXYZ'," ",'_',$18,$8D,00
|
||||||
asc " ",$1B,'Z'," ",'_',$18,$8D,00
|
asc " ",$1B,'Z'," ",'_'," Start BANK: ",'Z'," ",'_',$18,$8D,00
|
||||||
asc " ",$1B,'Z'," Start BANK: ",'_',$18,$8D,00
|
asc " ",$1B,'Z'," ",'_'," End BANK: ",'Z'," ",'_',$18,$8D,00
|
||||||
asc " ",$1B,'Z'," End BANK: ",'_',$18,$8D,00
|
asc " ",$1B,'Z'," ",'_'," ",'Z'," ",'_',$18,$8D,00
|
||||||
asc " ",$1B,'Z'," ",'_',$18,$8D,00
|
asc " ",$1B,'Z'," ",'_'," Start ADDR: ",'Z'," ",'_',$18,$8D,00
|
||||||
asc " ",$1B,'Z'," Start ADDR: ",'_',$18,$8D,00
|
asc " ",$1B,'Z'," ",'_'," End ADDR: ",'Z'," ",'_',$18,$8D,00
|
||||||
asc " ",$1B,'Z'," End ADDR: ",'_',$18,$8D,00
|
asc " ",$1B,'Z'," ",'_'," ",'Z'," ",'_',$18,$8D,00
|
||||||
asc " ",$1B,'Z'," ",'_',$18,$8D,00
|
asc " ",$1B,'Z'," ",'_'," Test Type: ",'Z'," ",'_',$18,$8D,00
|
||||||
asc " ",$1B,'Z'," Test Byte: ",'_',$18,$8D,00
|
asc " ",$1B,'Z'," ",'_'," Test Byte: ",'Z'," ",'_',$18,$8D,00
|
||||||
asc " ",$1B,'Z'," Test Delay: ",'_',$18,$8D,00
|
asc " ",$1B,'Z'," ",'_'," Test Delay: ",'Z'," ",'_',$18,$8D,00
|
||||||
asc " ",$1B,'Z'," ",'_',$18,$8D,00
|
asc " ",$1B,'Z'," ",'_'," ",'Z'," ",'_',$18,$8D,00
|
||||||
asc " ",$1B,'Z'," ",'_',$18,$8D,00
|
asc " ",$1B,'Z'," ",'_'," ",'Z'," ",'_',$18,$8D,00
|
||||||
asc " ",$1B,'Z'," ",'_',$18,$8D,00
|
asc " ",$1B,'Z'," ",'_'," ",'Z'," ",'_',$18,$8D,00
|
||||||
asc " ",$1B,'Z'," ",'_',$18,$8D,00
|
asc " ",$1B,'Z'," ",'_'," ",'Z'," ",'_',$18,$8D,00
|
||||||
asc " ",$1B,'Z'," ",'_',$18,$8D,00
|
asc " ",$1B,'Z'," ",'_'," ",'Z'," ",'_',$18,$8D,00
|
||||||
asc " ",$1B,'Z'," USE ARROW KEYS TO MOVE - USE ENTER TO SELECT/EDIT ",'_',$18,$8D,00
|
asc " ",$1B,'Z'," ",'_'," ",'Z'," ",'_',$18,$8D,00
|
||||||
|
asc " ",$1B,'Z'," ",'LLLLLLLLLLLLLLLLLLLLLLLLL'," ",'_',$18,$8D,00
|
||||||
asc " ",$1B,'Z',"____________________________________________________________________________",'_',$18,$8D,00
|
asc " ",$1B,'Z',"____________________________________________________________________________",'_',$18,$8D,00
|
||||||
|
|
||||||
|
* asc " ",$1B,'Z'," USE ARROW KEYS TO MOVE - USE ENTER TO SELECT/EDIT ",'_',$18,$8D,00
|
||||||
* asc " ABCDEFGHIZKLMNOPQRSTUVWXYZ ",$8D,$00
|
* asc " ABCDEFGHIZKLMNOPQRSTUVWXYZ ",$8D,$00
|
||||||
* asc $1B,' ABCDEFGHIZKLMNOPQRSTUVWXYZ ',$1B,$8D,$00
|
* asc $1B,' ABCDEFGHIZKLMNOPQRSTUVWXYZ ',$1B,$8D,$00
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user