|
|
|
@ -924,7 +924,7 @@ DATABUSCHECK: |
|
|
|
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 |
|
|
|
JP ADDRBUSCHECK ; CONTINUE WITH ADDRESS BUS TEST |
|
|
|
|
|
|
|
DATABUSFAIL: |
|
|
|
PUSH AF ; STORE FAILED VALUE |
|
|
|
@ -936,6 +936,45 @@ DATABUSFAIL: |
|
|
|
CALL MSG ; DISPLAY IT |
|
|
|
JP SERIALCMDLOOP ; AND BACK TO COMMAND LOOP |
|
|
|
|
|
|
|
; VERIFY ADDRESS 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 |
|
|
|
LD ($0000),A ; WRITE TO LOWEST RAM ADDRESS |
|
|
|
LD HL,$0001 ; INITIALIZE HL TO CHECK A0 |
|
|
|
|
|
|
|
ADDRBUSCHECK: |
|
|
|
LD (HL),$FF ; WRITE ALL ONES INTO HL ADDRESS |
|
|
|
LD C,($0000) ; READ VALUE FROM LOWEST RAM ADDRESS |
|
|
|
CP C ; IS IT SAME AS WRITTEN? SHOULD BE 0 |
|
|
|
JP NZ,ADDRBUSFAIL ; NO? ADDR BUS FAIL HANDLER ROUTINE |
|
|
|
PUSH HL ; STORE HL, FOR COPY TO BC |
|
|
|
POP BC ; RETRIEVE BC (SAME AS HL) |
|
|
|
ADD HL,BC ; INCREMENT TO NEXT ADDR LINE |
|
|
|
LD A,H ; WHICH ADDRESS LINE ARE WE AT |
|
|
|
CP $80 ; ARE WE AT A15? |
|
|
|
JP NZ,ADDRBUSCHECK ; NO? REPEAT FOR ALL 15 VALUES |
|
|
|
LD HL,TXT_ADDR_BUS_PASS ; YES? POINT AT ADDR BUS PASS TEXT |
|
|
|
CALL MSG ; PRINT ADDR BUS PASS LABEL |
|
|
|
JP MEMSIZELOOP ; CONTINUE WITH REST OF RAM TEST |
|
|
|
|
|
|
|
ADDRBUSFAIL: |
|
|
|
PUSH HL ; STORE FAILED ADDR LINE VALUE |
|
|
|
LD HL,TXT_ADDR_BUS_FAIL ; POINT AT ADDR BUS FAIL TEXT |
|
|
|
CALL MSG ; PRINT ADDR BUS FAIL LABEL |
|
|
|
POP HL ; RETRIEVE FAILED ADDR LINE VALUE |
|
|
|
LD A,H ; PRINT UPPER HALF OF ADDRESS |
|
|
|
PUSH HL ; STORE FAILED ADDR LINE VALUE |
|
|
|
CALL HXOUT ; PRINT HIGH ADDR HALF THAT FAILED |
|
|
|
POP LH ; RETRIEVE FAILED ADDR LINE VALUE |
|
|
|
LD A,L ; PRINT LOWER HALF OF ADDRESS |
|
|
|
CALL HXOUT ; PRINT LOW ADDR HALF 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 |
|
|
|
@ -1177,6 +1216,16 @@ TXT_DATA_BUS_PASS: |
|
|
|
.DB "DATA BUS PASS " |
|
|
|
.DB CR,LF,ENDT |
|
|
|
|
|
|
|
TXT_ADDR_BUS_FAIL: |
|
|
|
.DB CR,LF |
|
|
|
.DB "ADDR BUS FAIL, VALUE =" |
|
|
|
.DB ENDT |
|
|
|
|
|
|
|
TXT_ADDR_BUS_PASS: |
|
|
|
.DB CR,LF |
|
|
|
.DB "ADDR BUS PASS " |
|
|
|
.DB CR,LF,ENDT |
|
|
|
|
|
|
|
TXT_SKIP_16: |
|
|
|
.DB CR,LF |
|
|
|
.DB "SKIPPING PAGE 0F " |
|
|
|
|