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: 2255 (0x8cf) Types: TextFile Names: »TTIM.S«
└─⟦f2a3f19b6⟧ Bits:30005203 8" Zilog MCZ/1 Floppy CR80FD_0030 ( BB LTU TEST BACK UP! BB VD1 821220 ) └─ ⟦this⟧ »TTIM.S«
*INCLUDE CONST.S GLOBAL TTIM1,TTIM2,TTIM3 EXTERNAL DETECT TTIM1 LD C,ATIM1 CALL T8253 ;DO TIMER TEST AND A RET Z ;RETURN IF NO ERRORS LD B,10H ADD A,B ;LOAD ERROR CODE CALL DETECT RET TTIM2 LD C,ATIM2 CALL T8253 ;DO TIMER TEST AND A RET Z ;RETURN IF NO ERRORS LD B,30H ADD A,B ;LOAD ERROR CODE CALL DETECT RET TTIM3 LD HL,RAMSTA LD C,ATIM3 CALL T1CTC ;DO TIMER TEST AND A RET Z ;RETURN IF NO ERRORS LD B,60H ADD A,B CALL DETECT RET T8253 INC C INC C INC C ;LOAD CONTROL WORD ADDRESS LD A,10110000B ;DO I/O TEST OUT (C),A ; SET COUNTER 2 DEC C LD B,8 LD HL,80FFH ; FOR BIT = 7 TO 0 T1LOOP OUT (C),L ; OUT (C),H ; OUTPUT COUNTER IN E,(C) ; IN D,(C) ; INPUT COUNTER LD A,H ; CP D ; LD A,4 ; RET NZ ; RETURN IF MSB NOT EQUAL RRC H ; DJNZ T1LOOP ; NEXT BIT INC C ;OD LD A,36H ;SET ALL COUNTERS TO : OUT (C),A ; MODE 3 LD A,76H ; OUT (C),A ; LD A,0B6H OUT (C),A LD B,3 ; T2LOOP DEC C ;FOR COUNTER = 2 TO 0 LD HL,208 ; SET COUNTER TO 9600 HZ OUT (C),L OUT (C),H IN E,(C) IN D,(C) ; READ COUNTER AND A SBC HL,DE LD A,B RET Z ; RETURN IF NO COUNT DJNZ T2LOOP ; NEXT COUNTER LD A,0 RET ;------------------------------------------------------------------------- T1CTC LD A,H LD I,A ;LOAD INTERRUPT VECTOR OUT (C),L IM 2 LD B,4 LD DE,TCTCINT C1LOOP LD (HL),E ;INIT INTERRUPT TABLE INC HL LD (HL),D INC HL DJNZ C1LOOP LD B,4 LD A,C ADD A,B LD C,A DEC C C2LOOP LD E,8 ;FOR CHANNEL = 3 TO 0 LD H,80H C21LOOP LD A,3 ; FOR BIT = 7 TO 0 OUT (C),A ; RESET CHANNEL LD A,25H OUT (C),A OUT (C),H ; WRITE TIME CONSTANT IN L,(C) LD A,H CP L LD A,5 RET NZ ; RETURN IF I/O ERROR RRC H DEC E JR NZ,C21LOOP ; NEXT BIT LD A,3 OUT (C),A ; RESET CHANNEL LD A,85H OUT (C),A ; ENABLE CH«soh»ANNEL INTERRUPT LD A,5 OUT (C),A ; LOAD TIME CONSTANT LD A,0 EI PUSH BC LD B,5 C22LOOP DJNZ C22LOOP ; WAIT FOR INTERRUPT POP BC DI AND A LD A,1 OUT (C),A ; RESET CHANNEL INTERRUPT LD A,B RET Z ; RETURN IF NO INTERRUPT DEC C DJNZ C2LOOP ;NEXT CHANNEL XOR A RET ;RETURN IF TEST COMPLETED ;------------------------------------------------------------------------------ TCTCINT INC A EI RETI ;ECHO \f