mirror of
https://github.com/digarok/MiniMemoryTester.git
synced 2025-01-03 03:29:28 +00:00
trying to strip out helper functions ... also add PrintInt
This commit is contained in:
parent
1b50917523
commit
cf23621175
310
src/mmt.s
310
src/mmt.s
@ -10,10 +10,9 @@
|
|||||||
dsk mtsystem ; tell compiler what name for output file
|
dsk mtsystem ; tell compiler what name for output file
|
||||||
put applerom
|
put applerom
|
||||||
|
|
||||||
MLI equ $bf00
|
Init sei ; disable interrupts
|
||||||
Init
|
clc
|
||||||
|
xce ;enable full 65816
|
||||||
sei ; disable interrupts
|
|
||||||
LDA #$A0 ;USE A BLANK SPACE TO
|
LDA #$A0 ;USE A BLANK SPACE TO
|
||||||
JSR $C300 ;TURN ON THE VIDEO FIRMWARE
|
JSR $C300 ;TURN ON THE VIDEO FIRMWARE
|
||||||
|
|
||||||
@ -29,14 +28,19 @@ Init
|
|||||||
lda #MainMenuDefs
|
lda #MainMenuDefs
|
||||||
ldx #>MainMenuDefs
|
ldx #>MainMenuDefs
|
||||||
jsr Menu_InitMenu
|
jsr Menu_InitMenu
|
||||||
|
ldx #Number
|
||||||
* Main loop begin
|
ldy #>Number
|
||||||
|
jsr PrintInt
|
||||||
|
Me jmp Me
|
||||||
|
Number dw #1234
|
||||||
|
*
|
||||||
|
* Main Menu loop begin
|
||||||
|
*
|
||||||
Main
|
Main
|
||||||
:menuLoop jsr DrawMenuBackground
|
:menuLoop jsr DrawMenuBackground
|
||||||
jsr DrawRomMessage
|
jsr DrawRomMessage
|
||||||
jsr DrawRamMessages
|
jsr DrawRamMessages
|
||||||
|
|
||||||
|
|
||||||
:menuDrawOptionsLoop jsr MenuUpdateWordSize ;always update this before draw in case of change
|
:menuDrawOptionsLoop jsr MenuUpdateWordSize ;always update this before draw in case of change
|
||||||
lda #MainMenuDefs
|
lda #MainMenuDefs
|
||||||
ldy #>MainMenuDefs
|
ldy #>MainMenuDefs
|
||||||
@ -65,76 +69,12 @@ Main
|
|||||||
jsr Menu_UndrawSelectedAll ;hack for blinky cursor
|
jsr Menu_UndrawSelectedAll ;hack for blinky cursor
|
||||||
stz _ticker
|
stz _ticker
|
||||||
bra :menuNoDrawLoop
|
bra :menuNoDrawLoop
|
||||||
* Main loop end ^^^
|
*
|
||||||
|
* Main Menu loop end ^^^
|
||||||
|
*
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ColorizeMenu
|
|
||||||
:loop
|
|
||||||
lda #6
|
|
||||||
jsr WaitSCB
|
|
||||||
lda #$A0 ; green
|
|
||||||
sta $c022
|
|
||||||
|
|
||||||
lda #7
|
|
||||||
jsr WaitSCB
|
|
||||||
lda #$c0 ; green
|
|
||||||
sta $c022
|
|
||||||
|
|
||||||
lda #9
|
|
||||||
jsr WaitSCB
|
|
||||||
lda #$d0 ; yello
|
|
||||||
sta $c022
|
|
||||||
|
|
||||||
lda #10
|
|
||||||
jsr WaitSCB
|
|
||||||
lda #$90 ; orange
|
|
||||||
sta $c022
|
|
||||||
|
|
||||||
|
|
||||||
lda #11
|
|
||||||
jsr WaitSCB
|
|
||||||
lda #$10 ; red
|
|
||||||
sta $c022
|
|
||||||
|
|
||||||
lda #12
|
|
||||||
jsr WaitSCB
|
|
||||||
lda #$30 ; purple
|
|
||||||
sta $c022
|
|
||||||
|
|
||||||
lda #13
|
|
||||||
jsr WaitSCB
|
|
||||||
lda #$70 ; bblue
|
|
||||||
sta $c022
|
|
||||||
|
|
||||||
lda #15
|
|
||||||
jsr WaitSCB
|
|
||||||
lda #$50 ; grey
|
|
||||||
sta $c022
|
|
||||||
|
|
||||||
lda #16
|
|
||||||
jsr WaitSCB
|
|
||||||
lda #$f0 ; white
|
|
||||||
sta $c022
|
|
||||||
rts
|
|
||||||
|
|
||||||
WaitSCB
|
|
||||||
sta :val+1
|
|
||||||
ldx #2 ; to check twice
|
|
||||||
:waitloop lda $c02f
|
|
||||||
asl
|
|
||||||
lda $c02e
|
|
||||||
rol
|
|
||||||
:val cmp #$00
|
|
||||||
bne :waitloop
|
|
||||||
dex
|
|
||||||
bne :waitloop
|
|
||||||
; the problem is we can get the LAST
|
|
||||||
; horizcnt even/odd right as it changes
|
|
||||||
; and start early or something?
|
|
||||||
|
|
||||||
rts
|
|
||||||
MAXSCB db 0
|
|
||||||
|
|
||||||
DrawMenuBackground jsr HOME
|
DrawMenuBackground jsr HOME
|
||||||
lda #MainMenuStrs
|
lda #MainMenuStrs
|
||||||
@ -143,27 +83,28 @@ DrawMenuBackground jsr HOME
|
|||||||
jsr PrintStringsX
|
jsr PrintStringsX
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
* Prints "Apple IIgs ROM 0x"
|
||||||
DrawRomMessage
|
DrawRomMessage
|
||||||
PRINTXY #55;#06;Mesg_Rom
|
PRINTXY #55;#06;Mesg_Rom
|
||||||
lda GSROM
|
lda GSROM
|
||||||
jsr PRBYTE
|
jsr PRBYTE
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
* Prints "Built-In RAM xxxK"
|
||||||
|
* "Expansion RAM yyyyK"
|
||||||
DrawRamMessages
|
DrawRamMessages
|
||||||
|
|
||||||
lda GSROM
|
lda GSROM
|
||||||
cmp #3
|
cmp #3
|
||||||
bne :rom0or1
|
bne :rom0or1
|
||||||
:rom3 PRINTXY #55;#07;Mesg_InternalRam1024
|
:rom3 PRINTXY #55;#07;Mesg_InternalRam1024
|
||||||
bra :drawExpansionMessage
|
bra :drawExpansionMessage
|
||||||
:rom0or1 PRINTXY #55;#07;Mesg_InternalRam256
|
:rom0or1 PRINTXY #55;#07;Mesg_InternalRam256
|
||||||
|
|
||||||
:drawExpansionMessage PRINTXY #55;#08;Mesg_ExpansionRam
|
:drawExpansionMessage PRINTXY #55;#08;Mesg_ExpansionRam
|
||||||
lda BankExpansionRam ;number of banks
|
lda BankExpansionRam ;number of banks
|
||||||
clc
|
clc
|
||||||
xce
|
xce
|
||||||
rep #$30
|
rep #$30
|
||||||
|
mx %00
|
||||||
and #$00FF ;clear artifacts? can't remember state of B
|
and #$00FF ;clear artifacts? can't remember state of B
|
||||||
asl ;*2
|
asl ;*2
|
||||||
asl ;*4
|
asl ;*4
|
||||||
@ -247,22 +188,92 @@ WinFull stz $20
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*
|
||||||
Quit jsr MLI ; first actual command, call ProDOS vector
|
* ####### ### ### ###
|
||||||
dfb $65 ; with "quit" request ($65)
|
* # ###### #### ##### ###### ##### ### ### ###
|
||||||
da QuitParm
|
* # # # # # # # ### ### ###
|
||||||
bcs Error
|
* # ##### #### # ##### # # # # #
|
||||||
brk $00 ; shouldn't ever here!
|
* # # # # # #####
|
||||||
|
* # # # # # # # # ### ### ###
|
||||||
QuitParm dfb 4 ; number of parameters
|
* # ###### #### # ###### # # ### ### ###
|
||||||
dfb 0 ; standard quit type
|
*
|
||||||
da $0000 ; not needed when using standard quit
|
*
|
||||||
dfb 0 ; not used
|
TestInit LOG Mesg_Starting
|
||||||
da $0000 ; not used
|
stz _errorCounter
|
||||||
|
stz _testIteration
|
||||||
|
stz _testIteration+1
|
||||||
|
stz CurBank
|
||||||
|
|
||||||
|
|
||||||
Error brk $00 ; shouldn't be here either
|
|
||||||
|
|
||||||
|
TestMasterLoop
|
||||||
|
jsr TestGetNextBank ;sets initial bank when CurBank = 0
|
||||||
|
jsr TestPastFinalBank
|
||||||
|
bcs :NextIteration
|
||||||
|
|
||||||
|
|
||||||
|
:NextIteration inc _testIteration
|
||||||
|
|
||||||
|
|
||||||
|
TestPastFinalBank lda TestDirection
|
||||||
|
bne :descending
|
||||||
|
:ascending lda EndBank
|
||||||
|
cmp CurBank ;is EndBank < CurBank ?
|
||||||
|
bcc :yes ;past final bank
|
||||||
|
bcs :no
|
||||||
|
:descending lda CurBank
|
||||||
|
cmp StartBank ;is CurBank < StartBank ?
|
||||||
|
bcc :yes
|
||||||
|
bcs :no
|
||||||
|
|
||||||
|
:yes sec
|
||||||
|
rts
|
||||||
|
:no clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
TestGetNextBank lda TestDirection
|
||||||
|
bne :descending
|
||||||
|
:ascending lda CurBank
|
||||||
|
bne :notInitialBank
|
||||||
|
lda StartBank
|
||||||
|
sta CurBank
|
||||||
|
rts
|
||||||
|
:notInitialBank inc CurBank
|
||||||
|
rts
|
||||||
|
:descending lda CurBank
|
||||||
|
bne :notInitialBank2
|
||||||
|
lda EndBank
|
||||||
|
sta CurBank
|
||||||
|
rts
|
||||||
|
:notInitialBank2 dec CurBank
|
||||||
|
rts
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* #####
|
||||||
|
* # # # #####
|
||||||
|
* # # # # #
|
||||||
|
* # # # # #
|
||||||
|
* # # # # #
|
||||||
|
* # # # # #
|
||||||
|
* ##### ###### #####
|
||||||
|
*
|
||||||
|
*
|
||||||
|
|
||||||
BeginTest LOG Mesg_Starting
|
BeginTest LOG Mesg_Starting
|
||||||
stz _errorCounter
|
stz _errorCounter
|
||||||
@ -282,7 +293,8 @@ BeginTestPass
|
|||||||
jsr PRNTAX
|
jsr PRNTAX
|
||||||
PRINTXY #55;#12;Mesg_Writing
|
PRINTXY #55;#12;Mesg_Writing
|
||||||
|
|
||||||
clc ; WRITE START
|
; WRITE START
|
||||||
|
clc
|
||||||
xce
|
xce
|
||||||
rep $10 ; long x, short a
|
rep $10 ; long x, short a
|
||||||
lda StartBank
|
lda StartBank
|
||||||
@ -315,14 +327,14 @@ BeginTestPass
|
|||||||
bcc :noquit2
|
bcc :noquit2
|
||||||
jmp :escpressed
|
jmp :escpressed
|
||||||
:noquit2 sep $10
|
:noquit2 sep $10
|
||||||
sec
|
; WRITE END
|
||||||
xce ; WRITE END
|
|
||||||
|
|
||||||
jsr Pauser ; PAUSE
|
jsr Pauser ; PAUSE
|
||||||
|
|
||||||
PRINTXY #55;#12;Mesg_Reading ; READ PREP
|
PRINTXY #55;#12;Mesg_Reading ; READ PREP
|
||||||
|
|
||||||
clc ; READ START
|
; READ START
|
||||||
|
clc
|
||||||
xce
|
xce
|
||||||
rep $10 ; long x, short a
|
rep $10 ; long x, short a
|
||||||
lda StartBank
|
lda StartBank
|
||||||
@ -359,8 +371,7 @@ BeginTestPass
|
|||||||
dec CurBank ; so many bad hacks
|
dec CurBank ; so many bad hacks
|
||||||
jsr PrintTestCurrent ; print final score ;)
|
jsr PrintTestCurrent ; print final score ;)
|
||||||
sep $10
|
sep $10
|
||||||
sec
|
; WRITE END
|
||||||
xce ; WRITE END
|
|
||||||
|
|
||||||
|
|
||||||
jsr Pauser ; PAUSE
|
jsr Pauser ; PAUSE
|
||||||
@ -368,8 +379,7 @@ BeginTestPass
|
|||||||
sta $C034
|
sta $C034
|
||||||
jmp BeginTestPass
|
jmp BeginTestPass
|
||||||
:escpressed sep $10
|
:escpressed sep $10
|
||||||
sec
|
|
||||||
xce
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
_testIteration ds 8
|
_testIteration ds 8
|
||||||
@ -421,8 +431,7 @@ _prbox_height db 0
|
|||||||
|
|
||||||
* called with short M, long X
|
* called with short M, long X
|
||||||
PrintTestError
|
PrintTestError
|
||||||
sec
|
|
||||||
xce
|
|
||||||
sep $30
|
sep $30
|
||||||
inc _errorCounter
|
inc _errorCounter
|
||||||
bne :noRoll
|
bne :noRoll
|
||||||
@ -487,8 +496,7 @@ Mesg_Arrow asc $1B,'SU',$18,00
|
|||||||
PrintTestCurrent pha
|
PrintTestCurrent pha
|
||||||
phy
|
phy
|
||||||
stx _stash ; save real X
|
stx _stash ; save real X
|
||||||
sec
|
sep #$30 ;in case? there was a sec xce combo here
|
||||||
xce
|
|
||||||
GOXY #65;#12
|
GOXY #65;#12
|
||||||
lda CurBank
|
lda CurBank
|
||||||
sta :corruptme+3
|
sta :corruptme+3
|
||||||
@ -598,9 +606,6 @@ PrintTimerVal
|
|||||||
jsr PRBYTE
|
jsr PRBYTE
|
||||||
rts
|
rts
|
||||||
|
|
||||||
**************************************************
|
|
||||||
* Awesome PRNG thx to White Flame (aka David Holz)
|
|
||||||
**************************************************
|
|
||||||
GetRandTrash ; USE ONLY WITH CORRUPTOR
|
GetRandTrash ; USE ONLY WITH CORRUPTOR
|
||||||
lda _randomTrashByte
|
lda _randomTrashByte
|
||||||
beq :doEor
|
beq :doEor
|
||||||
@ -614,6 +619,18 @@ _randomTrashByte db 0
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
*
|
*
|
||||||
* #### ###### ##### ##### # # # #### ####
|
* #### ###### ##### ##### # # # #### ####
|
||||||
* # # # # # ## # # # #
|
* # # # # # ## # # # #
|
||||||
@ -796,54 +813,12 @@ MainMenuStrs
|
|||||||
asc $1B,'Z'," ",'_',$18,00
|
asc $1B,'Z'," ",'_',$18,00
|
||||||
asc $1B,'Z'," ",'_',$18,00
|
asc $1B,'Z'," ",'_',$18,00
|
||||||
asc $1B,'Z'," _",'_',$18,00
|
asc $1B,'Z'," _",'_',$18,00
|
||||||
asc $1B,'Z',"_____________________________________________________________________________",'_', $18,00
|
asc $1B,'Z',"_____________________________________________________________________________",'_',$18,00
|
||||||
|
|
||||||
* asc " ABCDEFGHIZKLMNOPQRSTUVWXYZ ",$8D,$00
|
|
||||||
* asc $1B,' ABCDEFGHIZKLMNOPQRSTUVWXYZ ',$1B,$8D,$00
|
|
||||||
|
|
||||||
hex 00,00
|
hex 00,00
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
MenuCheckKeyColor jsr ColorizeMenu
|
|
||||||
lda _ticker
|
|
||||||
bne :skipDraw ; we want to avoid updating when nothing is happening... "Save the Cycles!!" ;)
|
|
||||||
jsr Menu_HighlightSelected
|
|
||||||
:skipDraw cmp #12
|
|
||||||
bne :skipUndraw
|
|
||||||
jsr Menu_UndrawSelectedAll
|
|
||||||
:skipUndraw cmp #16
|
|
||||||
bne :noReset
|
|
||||||
stz _ticker
|
|
||||||
jmp CheckKey ; Will RTS from CheckKey
|
|
||||||
:noReset inc _ticker
|
|
||||||
jmp CheckKey ; Will RTS from CheckKey
|
|
||||||
_ticker dw 0
|
|
||||||
|
|
||||||
CheckKey lda KEY
|
|
||||||
bpl :noKey
|
|
||||||
sta STROBE
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
:noKey clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
WaitKey
|
|
||||||
:kloop
|
|
||||||
jsr ColorizeMenu
|
|
||||||
lda KEY
|
|
||||||
bpl :kloop
|
|
||||||
sta STROBE
|
|
||||||
cmp #"b" ; REMOVE DEBUG
|
|
||||||
bne :nobreak
|
|
||||||
brk $75
|
|
||||||
:nobreak
|
|
||||||
rts
|
|
||||||
|
|
||||||
put strings.s
|
|
||||||
put menu.s
|
|
||||||
BorderColor db 0
|
BorderColor db 0
|
||||||
ds \
|
ds \
|
||||||
_stash ds 255
|
_stash ds 255
|
||||||
@ -945,3 +920,42 @@ BankRAMFastBuiltIn = 4
|
|||||||
BankRAMFastExpansion = 5
|
BankRAMFastExpansion = 5
|
||||||
BankNoRAM = 0
|
BankNoRAM = 0
|
||||||
|
|
||||||
|
|
||||||
|
* Takes address in X/Y and prints out Int stored there
|
||||||
|
PrintInt
|
||||||
|
stx :loc+1
|
||||||
|
inx
|
||||||
|
stx :loc2+1
|
||||||
|
sty :loc+2
|
||||||
|
sty :loc2+2
|
||||||
|
|
||||||
|
:loc ldx $2000 ;overwrite
|
||||||
|
:loc2 ldy $2000 ;overwrite
|
||||||
|
jsr BINtoBCD
|
||||||
|
phx
|
||||||
|
tya
|
||||||
|
jsr PRBYTE
|
||||||
|
pla
|
||||||
|
jsr PRBYTE
|
||||||
|
rts
|
||||||
|
|
||||||
|
MLI equ $bf00
|
||||||
|
|
||||||
|
Quit jsr MLI ; first actual command, call ProDOS vector
|
||||||
|
dfb $65 ; with "quit" request ($65)
|
||||||
|
da QuitParm
|
||||||
|
bcs Error
|
||||||
|
brk $00 ; shouldn't ever here!
|
||||||
|
|
||||||
|
QuitParm dfb 4 ; number of parameters
|
||||||
|
dfb 0 ; standard quit type
|
||||||
|
da $0000 ; not needed when using standard quit
|
||||||
|
dfb 0 ; not used
|
||||||
|
da $0000 ; not used
|
||||||
|
|
||||||
|
|
||||||
|
Error brk $00 ; shouldn't be here either
|
||||||
|
|
||||||
|
put misc
|
||||||
|
put strings.s
|
||||||
|
put menu.s
|
||||||
|
Loading…
Reference in New Issue
Block a user