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: 3815 (0xee7) Types: TextFile Names: »TTIM.SRC«
└─⟦519079be6⟧ Bits:30005500 8" CR80 Floppy CR80FD_0029 ( WBOOTL.SYS W.D bootload program 81 10 01 ??? ) └─⟦519079be6⟧ Intel_ISIS_II └─ ⟦this⟧ »TTIM.SRC«
NAME TTIM\r PUBLIC TTIM1,TTIM2,T8253\r PUBLIC TTIM3,T1CTC\r EXTRN ERROR\r CSEG\r ;******************************************************************************\r TITLE 'TIMER 1 TEST ROUTINE'\r ;******************************************************************************\r \r ;DESCRIP: THE ROUTINE TEST TIMER 1 (8253-1)\r TTIM1 LD C,ATIM1\r CALL T8253 ;DO TIMER TEST\r AND A\r RET Z ;RETURN IF NO ERRORS\r LD B,10H\r ADD A,B ;LOAD ERROR CODE\r CALL ERROR\r \r \r \r ;******************************************************************************\r TITLE 'TIMER 2 TEST ROUTINE'\r ;******************************************************************************\r \r ;DESCRIP: THE ROUTINE TEST TIMER 2 (8253-2)\r TTIM2 LD C,ATIM2\r CALL T8253 ;DO TIMER TEST\r AND A\r RET Z ;RETURN IF NO ERRORS\r LD B,30H\r ADD A,B ;LOAD ERROR CODE\r CALL ERROR\r \r \r \r ;******************************************************************************\r TITLE 'TIMER 3 (Z80-CTC) TEST ROUTINE'\r ;******************************************************************************\r \r TTIM3 LD HL,RAMSTA\r LD C,ATIM3\r CALL T1CTC ;DO TIMER 3 TEST\r AND A\r RET Z ;RETURN IF TEST COMPLETED\r LD B,60H\r ADD A,B\r CALL ERROR ;JUMP IF ERROR\r \r \r \r ;------- 8253 TIMER TEST ROUTINE-------------------------------T8253----------\r ;DESCRIP: THE ROUTINE TEST THE PROGRAMABLE \r ; INTERVAL TIMER 8253.\r ; THE TIMERS IS LEFT IN MODE 3\r ; AND THE FREQUENCE = 9600.\r ;ENTRY: C - TIMER BASE ADDRESS\r ;EXIT: A = 0 TEST COMPLETED\r ; A = 4 I/O ERROR\r ; A 1-3 COUNTER ERROR\r T8253 INC C\r INC C\r INC C ;LOAD CONTROL WORD ADDRESS\r LD A,10110000B ;DO I/O TEST\r OUT (C),A ; SET COUNTER 2\r DEC C\r LD B,7\r LD HL,80FFH ; FOR BIT = 7 TO 0\r T1LOOP OUT (C),L\r OUT (C),H ; OUTPUT COUNTER\r IN E,(C)\r IN D,(C) ; INPUT COUNTER\r LD A,H\r CP D\r LD A,4\r RET NZ ; RETURN IF MSB NOT EQUAL\r RRC H\r DJNZ T1LOOP ; NEXT BIT\r INC C ;ENDDO\r LD A,36H ;SET ALL COUNTERS TO:\r OUT (C),A ; MODE 3\r LD A,76H ; HEX COUNT\r OUT (C),A ; COUNTER READ/LOAD LSB FIRST THEN MSB\r LD A,0B6H\r OUT (C),A\r LD B,3\r T2LOOP DEC C ;FOR COUNTER = 2 TO 0 \r LD HL,208 ; SET COUNTER TO 9600 HZ\r OUT (C),L\r OUT (C),H\r IN E,(C)\r IN D,(C) ; READ COUNTER\r AND A\r SBC HL,DE\r LD A,B\r RET Z ; RETURN IF NO COUNT\r DJNZ T2LOOP ; NEXT COUNTER\r LD A,0\r RET\r \r \r \r ;------CTC TEST ROUTINE----------------------------------T1CTC---------\r ;DESCRIP: THE ROUTINE TEST THE Z80-CTC\r ; FOR I/O AND VECTORED INTERRUPT ERROR\r ;ENTRY: HL - INTERRUPT TABLE ADDRESS\r ; C - CTC BASE ADDRESS.\r ;EXIT: A = 0 TEST COMPLETED\r ; A = 1 CHANNEL 0 ERROR\r ; A = 2 CHANNEL 1 ERROR\r ; A = 3 CHANNEL 2 ERROR\r ; A = 4 CHANNEL 3 ERROR\r ; A = 5 I/O ERROR\r ;DESTROY: AF,BC,DE,HL\r T1CTC LD A,H\r LD I,A ;LOAD INTERRUPT VECTOR\r OUT (C),L\r IM 2\r LD B,4\r LD DE,TCTCINT\r C1LOOP LD (HL),E ;INIT INTERRUPT TABLE\r INC HL\r LD (HL),D\r INC HL\r DJNZ C1LOOP\r LD B,4\r LD A,C\r ADD A,B\r LD C,A\r DEC C\r C2LOOP LD E,7 ;FOR CHANNEL = 3 TO 0\r LD H,80H\r C21LOOP LD A,3 ; FOR BIT = 7 TO 0\r OUT (C),A ; RESET CHANNEL\r LD A,25H\r OUT (C),A\r OUT (C),H ; WRITE TIME CONSTANT\r IN L,(C) ; READ DOWN COUNTER\r LD A,H\r CP L\r LD A,5\r RET NZ ; RETURN IF I/O ERROR\r RRC H\r DEC E\r JR NZ,C21LOOP ; NEXT BIT\r LD A,3\r OUT (C),A ; RESET CHANNEL\r LD A,85H\r OUT (C),A ; ENABLE CHANNEL INTERRUPT\r LD A,5\r OUT (C),A ; LOAD TIME CONSTANT\r LD A,0\r EI\r PUSH BC\r LD B,5\r C22LOOP DJNZ C22LOOP ; WAIT FOR INTERRUPT\r POP BC\r DI\r AND A\r LD A,1\r OUT (C),A ; RESET CHANNEL INTERRUPT\r LD A,B\r RET Z ; RETURN IF NOT INTERRUPT\r DEC C\r DJNZ C2LOOP ;NEXT CHANNEL\r XOR A\r RET ;RETURN IF TEST COMPLETED\r \r \r \r ;-------CTC INTERRUPT TEST ROUTINE---------------------------TCTCINT------\r TCTCINT INC A\r EI\r RETI\r END\r