DataMuseum.dkPresents historical artifacts from the history of: CR80 Hard and Floppy Disks |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CR80 Hard and Floppy Disks Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 3170 (0xc62) Types: TextFile Names: »T2TEST.SRC«
└─⟦519079be6⟧ Bits:30005500 8" CR80 Floppy CR80FD_0029 ( WBOOTL.SYS W.D bootload program 81 10 01 ??? ) └─⟦519079be6⟧ Intel_ISIS_II └─ ⟦this⟧ »T2TEST.SRC«
PUBLIC START,OK,ERROR,T1RAM,T2RAM\r PUBLIC RAM1,RAM2\r ;:*****************************************************************************\r ;******* MULTI RAM TEST *******************************************\r ;******************************************************************************\r START LD SP,400H\r LD DE,RAM1 ;BEGIN\r LD HL,RAM1+RAMSIZE-1\r LD A,55H\r CALL T1RAM\r JR NZ,ERROR ; RAM1 TEST\r NOP ;END\r LD DE,RAM2 ;BEGIN\r LD HL,RAM2+RAMSIZE-1\r LD A,33H\r CALL T1RAM\r AND A ; RAM2 TEST\r JR NZ,ERROR ;END\r NOP ;BEGIN\r LD DE,RAM1\r LD HL,RAM1+RAMSIZE-1\r LD A,55H\r CALL T2RAM ; RAM1/RAM2 REFLECTION ERROR TEST\r AND A\r JR NZ,ERROR ;END\r NOP\r OK JP START\r ERROR NOP\r JP START\r ;\r ;-------RAM WRITE READ TEST-------------------------------T1RAM----------\r ;DESCRIP: THE ROUTINE CHECK THE RAM FOR WRITE/READ\r ; AND REFLECTION ERROR.\r ; THE RAM IS LEFT WITH THE COMPLEMENTED TEST PATTERN\r ; INTO THE FIRST RAM ADDRESS,THE TEST PATTERN INTO\r ; SECOND AND SO ON.\r ;ENTRY: A - TEST PATTERN\r ; DE - FIRST RAM ADDRESS\r ; HL - LAST RAM ADDRESS\r ;EXIT: A = 0 TEST COMPLETED\r ; A <> 0 : HL - ERROR ADDRESS.\r ;DESTROY: F,DE,HL,(RAM)\r ;TIME: 154+104+BYTE COUNT TCYCLES\r T1RAM PUSH AF ;SAVE ENTRY DATA\r PUSH DE\r PUSH HL\r AND A\r SBC HL,DE ;BYTE COUNT = START ADDR. - END ADDR.\r EX DE,HL ;FOR ADDR. = START TO END\r INC E\r INC D\r DEC HL\r T11LOOP INC HL\r LD (HL),A ; WRITE TEST PATTERN\r CP (HL)\r JR NZ,T11ERROR ; JUMP IF WRITE/READ ERROR\r CPL ; COMPLEMENT TEST PATTERN\r DEC E\r JP NZ,T11LOOP\r DEC D\r JP NZ,T11LOOP ;NEXT ADDR.\r T11NEXT POP HL ;RESTORE ENTRY DATA\r POP DE\r POP AF\r AND A\r SBC HL,DE ;BYTE COUNT = START ADDR. - END ADDR.\r EX DE,HL ;FOR ADR. = START TO END\r INC E\r INC D\r DEC HL\r T12LOOP INC HL\r CP (HL) ; JUMP IF REFLECTION ERROR\r JR NZ,T12ERROR\r CPL ; COMPLEMENT TEST PATTERN\r LD (HL),A ; WRITE TEST PATTERN\r CP (HL)\r JR NZ,T12ERROR ; JUMP IF WRITE/READ ERROR\r DEC E\r JP NZ,T12LOOP\r DEC D\r JP NZ,T12LOOP ;NEXT ADR.\r T12NEXT LD A,0 ;TEST COMPLET\r RET ;RETURN\r T11ERROR POP DE ;ADJUST STACK POINTER\r POP DE\r POP DE\r T12ERROR LD A,0FFH ;ERROR EXIT\r RET\r ;\r ;\r ;-------RAM READ TEST-------------------------------------T2RAM----------\r ;DESCRIP: THE ROUTINE CHECK THE RAM FOR REFLECTION ERROR.\r ; THE ROUTINE IS USED IN CONJUNCTION WITH\r ; THE T1RAM ROUTINE FOR MULTI RAM TEST\r ;ENTRY: (FIRST RAM ADDR.) - COMPLEMENTED TEST PATTERN\r ; (SECOND RAM ADDRESS) - TEST PATTERN\r ; ..\r ; .\r ; A - TEST PATTERN\r ; DE - FIRST RAM ADDRESS\r ; HL - LAST RAM ADDRESS\r ;EXIT: A = 0 TEST COMPLETED\r ; A <> 0 : HL - ERROR ADDRESS.\r ;DESTROY: F,C,DE,HL\r ;TIME: 58+38*BYTE COUNT TCYCLES\r T2RAM CPL\r AND A\r SBC HL,DE ;BYTE COUNT = START ADDR. - END ADDR.\r EX DE,HL ;FOR ADR. = START TO END\r INC E\r INC D\r DEC HL\r T22LOOP INC HL\r CP (HL) ; JUMP IF REFLECTION ERROR\r JR NZ,T22ERROR\r CPL ; COMPLEMENT TEST PATTERN\r DEC E\r JP NZ,T22LOOP\r DEC D\r JP NZ,T22LOOP ;NEXT ADR.\r T22NEXT LD A,0 ;TEST COMPLET\r RET ;RETURN\r T22ERROR LD A,0FFH ;ERROR EXIT\r RET\r ;\r RAMSIZE EQU 20H\r ;\r DSEG\r RAM1 DS 20H\r DS 20H\r RAM2 DS 20H\r