|
|
|
@ -908,6 +908,34 @@ FILL_MEM: |
|
|
|
|
|
|
|
DORAMTEST: |
|
|
|
|
|
|
|
; VERIFY DATA BUS FUNCTIONALITY BEFORE STARTING MEMORY TEST |
|
|
|
LD A,$80 ; FIRST 32KB PAGE ONLY |
|
|
|
LD (PAGE_NUM),A ; STORE WORKING PAGE NUMBER |
|
|
|
OUT (MPCL_ROM),A ; SWITCH OUT LOWER 32KB ROM PAGE |
|
|
|
OUT (MPCL_RAM),A ; SWITCH IN LOWER 32KB RAM PAGE |
|
|
|
LD A,$00 ; INITIALIZE A TO 0 |
|
|
|
|
|
|
|
DATABUSCHECK: |
|
|
|
LD ($0000),A ; WRITE TO LOWEST RAM ADDRESS |
|
|
|
LD C,($0000) ; READ VALUE FROM LOWEST RAM ADDRESS |
|
|
|
CP C ; IS IT SAME AS WRITTEN? |
|
|
|
JP NZ,DATABUSFAIL ; NO? DATA BUS FAIL HANDLER ROUTINE |
|
|
|
INC A ; YES, GET NEXT VALUE |
|
|
|
JP NZ,DATABUSCHECK ; REPEAT FOR ALL 256 VALUES |
|
|
|
LD HL,TXT_DATA_BUS_PASS ; POINT AT DATA BUS PASS TEXT |
|
|
|
CALL MSG ; PRINT DATA BUS PASS LABEL |
|
|
|
JP MEMSIZELOOP ; CONTINUE WITH REST OF RAM TEST |
|
|
|
|
|
|
|
DATABUSFAIL: |
|
|
|
PUSH A ; STORE FAILED VALUE |
|
|
|
LD HL,TXT_DATA_BUS_FAIL ; POINT AT DATA BUS FAIL TEXT |
|
|
|
CALL MSG ; PRINT DATA BUS FAIL LABEL |
|
|
|
POP A ; RETRIEVE FAILED VALUE |
|
|
|
CALL HXOUT ; SHOW VALUE THAT FAILED |
|
|
|
LD HL,TCRLF ; CR & LF |
|
|
|
CALL MSG ; DISPLAY IT |
|
|
|
JP SERIALCMDLOOP ; AND BACK TO COMMAND LOOP |
|
|
|
|
|
|
|
MEMSIZELOOP: |
|
|
|
LD HL,TXT_RAM_TEST_MAIN ; POINT AT RAM TEST MAIN MENU TEXT |
|
|
|
CALL MSG ; PRINT MENU TEXT LABEL |
|
|
|
@ -1139,6 +1167,16 @@ TXT_RAM_FAIL: |
|
|
|
.DB "RAM FAIL, 32KB PAGE NUMBER: " |
|
|
|
.DB CR,LF,ENDT |
|
|
|
|
|
|
|
TXT_DATA_BUS_FAIL: |
|
|
|
.DB CR,LF |
|
|
|
.DB "DATA BUS FAIL, VALUE =" |
|
|
|
.DB ENDT |
|
|
|
|
|
|
|
TXT_DATA_BUS_PASS: |
|
|
|
.DB CR,LF |
|
|
|
.DB "DATA BUS PASS " |
|
|
|
.DB CR,LF,ENDT |
|
|
|
|
|
|
|
TXT_SKIP_16: |
|
|
|
.DB CR,LF |
|
|
|
.DB "SKIPPING PAGE 0F " |
|
|
|
|