Browse Source

Added Address Bus verification

Verify Address Bus functionality prior to starting individual RAM memory location test
patch
lynchaj 5 years ago
committed by GitHub
parent
commit
6739422b9a
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 49
      Source/Apps/ramtest/dbgmon.asm

49
Source/Apps/ramtest/dbgmon.asm

@ -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 "

Loading…
Cancel
Save