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: 9674 (0x25ca) Types: TextFile Names: »INIT.TEC«
└─⟦b678e5579⟧ Bits:30005502 8" CR80 Floppy CR80FD_0031 ( TELECINE BACKUP ) └─⟦b678e5579⟧ Intel_ISIS_II └─ ⟦this⟧ »INIT.TEC«
NLIST S\r ;=============================================================================;\r ;\r ; THIS MODULE CONTAINS MACROES NEEDED FOR THE\r ; INITIALIZATION OF THE TQM-PROCESS-COMPLEX.\r ;\r ; THE INIT. SEQUENS IS STRUCTURED AS BELOW:\r \r ;; TQMINT 5,1\r ;\r ; TQMPR S,1,5\r ; .....\r ; TQMPR R,5,4000H\r ;\r ; TQMEXI\r ;\r ;\r ; THE MACRO'S INCLUDES ONLY\r \r ; 'DW','DB','DEFL' -STATEMENTS AND PRODUCES\r ; DSEG- AND CSEG SEGMENTS.\r ; IT'S TERMINATED IN THE CSEG-MODE\r ;\r ;\r ;==============================================================================\r \r ;========================== THE T Q M I N T MACRO =======================\r ;\r ; THE TQMINT MACRO PREFORMES THE DATA LAYOUT OF TQM-DATA\r ;\r ; ENTRY: #NUMPR: THE NUMBER OF P/R'S TO\r ; MONITORED BY TQM.\r ; 1 =< #NUMPR >= 127\r ; #SCALE: THE PRESCALE FACTOR ,WHICH\r ; PRESCALES THE CTC GENERATED\r ; INTERRUPT FREQUENCY.\r ; 0=< #SCALE >=255\r ;\r ; EXIT : NO REGISTERS AFFECTED\r ;==============================================================================\r \r TQMINT: MACRO #NUMPR,#SCALE \r \r PUBLIC NUMPR\r PUBLIC FORWAR,BACKWA,RDELAY,DELAY\r PUBLIC PRESCA,PRECOU,NONACK,ONOFF\r PUBLIC INFORM\r \r DSEG\r PRESCA DEFL #SCALE ;-------------------------------------------\r ; PRESCA : PUBLICHED INFORMATION ABOUT THE\r ; PRESCALE FACTOR\r ;-------------------------------------------\r \r NUMPR DEFL #NUMPR ;-------------------------------------------\r ; NUMPR : PUBLICHED INFORMATION ABOUT NUMBER\r ; OF P/R'S TO BE MONITORED BY T Q M\r ;--------------------------------------------\r FORWAR: DS #NUMPR+1 ;-------------------------------------------\r ; FORWAR: ARRAY(NUMB. OF P/R'S) OF BYTE\r ;\r ; TYPE OF FORWAR ::=< 6. - 0.BIT: POINTER\r ; TO THE SUCCESSSOR IN\r ; CHAIN.\r ; FORWAR(0): CHAIN-HEAD.\r ; 7. BIT : ACTIV/PASSIV\r ; >\r ;----------------------------------------------\r BACKWA: DS #NUMPR+1 ;----------------------------------------------\r ; BACKWA: ARRAY(NUMB. OF P/R'S) OF BYTE\r ;\r ; TYPE OF BACKWA ::=< POINTERS TO THE PRE-\r ; DECESSOR IN THE CHAIN >\r ;----------------------------------------------\r RDELAY: DS #NUMPR+1 ;----------------------------------------------\r ; RDELAY: ARRAY(NUMB. OF P/'S) OF BYTE\r ;\r ; TYPE OF RDELAY ::=< THE RELATIV DELAYED\r ; ACTIVATION AFTER\r ; THE PREDECESSOR >\r ;----------------------------------------------\r DELAY: DS #NUMPR+1 ;----------------------------------------------\r ; DELAY: ARRAY(NUMB.OF P/R'S) OF BYTE\r ;\r ; TYPE OF DELAY ::=< THE DELAYED TIME BEFORE\r ; ACTIVATION OF THE P/R\r ; AFTER ESTABLISHED >\r ;----------------------------------------------\r ONOFF: DS 1 ;---------------------------------------------\r ; ONOFF:BYTE\r ;\r ; TYPE OF ONOFF ::=< = 0H : TQM DISABLED\r ; =0FFH: TQM ENABLED\r ;----------------------------------------------\r PRECOU: DS 1 ;----------------------------------------------\r ; PRECOU:BYTE\r ;\r ; TYPE OF PRECOU::=< THE CURRENT NUMBER OF\r ; TQMMON RUNS BEFORE DE-\r ; CREMENTATION OF RDELAY OF\r ; THE FIRST P/R IN CHAIN >\r ;----------------------------------------------\r NONACK: DS 1 ;----------------------------------------------\r ; NONACK:BYTE\r ;\r ; TYPE OF NONACK ::=< NUMBER OF NONACKNOWLEDGED\r ; TQMACT-ACTIVATIONS >\r ;----------------------------------------------\r DSEND2:\r \r CSEG\r \r JP TQMEND\r \r INFORM: DS #NUMPR*3 ;----------------------------------------------\r ;INFORM:RECORD(NUMB.OF P/R'S) OF ACDATA:ADDRESS\r ; ACTION:BYTE\r ;\r ; TYPE OF ACTION::=< =0:CALL OF ROUTINE\r ; =1:ACTIVATION OF S-PROCESS\r ; =2:SIGNAL TO SEMAFOR >\r ;TYPE OF ACDATA::=<ACTION=0:ADDRESS OF ROUTINE\r ; - =1:SYSRAM+200H+N*10H+5\r ; - =2:SYSRAM+200H+N*20H\r ; +S*10H+QHEAD*8 >\r ;----------------------------------------------\r CSEND2:\r \r ENDM\r \r ;========================= THE T Q M P R MACRO ======================\r ;\r ; THE TQMPR MACRO INITIATES THE INFORM-DATA\r ;\r ; ENTRY: #TYPE : R:-ROUTINE , OR\r ; S:-S-PROCESS ACTIVATION , OR\r ; N:-SIGNAL TO SEMAFOR.\r ; #PRNUM: THE P/R NUMBER.\r ; 1=< #PRNUM >=127\r ;\r ; #INDEKS: ROUTINE ADDRESS/ S-PROCESSNO./\r ; SEMAFORNO.\r ;\r ; EXIT : NO REGISTERS ARE AFFECTED\r ;========================================================================\r \r TQMPR: MACRO #TYPE,#PRNUM,#INDEKS \r CSEG\r ORG INFORM+3*(#PRNUM-1)\r PUBLIC AC#$YM\r AC#$YM:\r IF '#TYPE'.EQ.'R'\r DW #INDEKS\r DB 0\r ENDIF\r \r IF '#TYPE'.EQ.'S'\r DW #INDEKS*10H+SYSRAM+200H+5H\r DB 1H\r ENDIF\r \r IF '#TYPE'.EQ.'N'\r DW #INDEKS*8H+SYSRAM+200H+S*10H+N*20H\r DB 2H\r ENDIF\r \r ENDM\r \r ;========================== THE TQMEXI MACRO ==========================\r TQMEXI MACRO\r DSEG\r ORG DSEND2\r CSEG\r ORG CSEND2\r TQMEND:\r ENDM\r LIST S\r ;***********************************************************************\r ;* INITIALIZING PROCESS *\r ;***********************************************************************\r \r PUBLIC SYSRAM\r PUBLIC START\r PUBLIC INISP\r PUBLIC ACTC,ASIO1,ASIO2\r PUBLIC QEMPTY,PQH6,PQH7,PQH9\r PUBLIC BUFF01,BUFF02,BUFF03,BUFF04,BUFF05,BUFF06,BUFF07\r PUBLIC BUFF08,BUFF09,BUFF10,BUFF11,BUFF12,BUFF13,BUFF14\r PUBLIC BUFF15,BUFF16,BUFF17,BUFF18,BUFF19,BUFF20,BUFF21\r PUBLIC BUFF22,BUFF23,BUFF24,BUFF25\r PUBLIC MARK\r \r EXTRN SUBENQ,SUBDEQ\r EXTRN INSPEC,PROJC,MATCHG,STSCAN,STATUS\r EXTRN TQMMON,TQMACT,SCOMMON\r \r \r ACOUNT: DEFL 80H ;ADDRESS OF COUNTER\r ASIO1: DEFL 0E0H ;ADDRESS OF SIO 1.\r ASIO2: DEFL 0F0H ;ADDRESS OF SIO 2.\r ACTC: DEFL 0B0H ;ADDRESS OF CTC CHANNEL 0\r LINK DEFL 0 ;SYSTEM PARAMETER LINK\r \r \r DSEG\r \r SYSRAM DS 300H\r DS 31\r INISP DS 1\r \r ;------------------------------------------------------------------------\r ; QHEADS AND BUFFERS :\r ;------------------------------------------------------------------------\r ORG 1000H\r QEMPTY DS 10H\r PQH6 DS 10H\r PQH7 DS 10H\r PQH9 DS 10H\r DS 0EH\r \r DS 2\r BUFF01 DS 20H\r BUFF02 DS 20H\r BUFF03 DS 20H\r BUFF04 DS 20H\r BUFF05 DS 20H\r BUFF06 DS 20H\r BUFF07 DS 20H\r BUFF08 DS 20H\r BUFF09 DS 20H\r BUFF10 DS 20H\r BUFF11 DS 20H\r BUFF12 DS 20H\r BUFF13 DS 20H\r BUFF14 DS 20H\r BUFF15 DS 20H\r BUFF16 DS 20H\r BUFF17 DS 20H\r BUFF18 DS 20H\r BUFF19 DS 20H\r BUFF20 DS 20H\r BUFF21 DS 20H\r BUFF22 DS 20H\r BUFF23 DS 20H\r BUFF24 DS 20H\r BUFF25 DS 20H\r \r \r CSEG\r \r ;SIO INTERRUPT ADDRESS TABLE\r ISIO1:\r ;CTC INTERRUPT ADDRESS TABLE\r ICTC DW TQMMON ;CH. 0 (S/W TIMER)\r DW 0 ;CH. 0 (DMA)\r DW 0 ;CH. 0\r DW 0 ;CH. 0\r \r CSEG\r START: LD SP,PSTACK\r IM 2\r \r CREATE S,0,TQMACT\r CREATE S,5,INSPEC\r CREATE S,6,PROJC\r CREATE S,7,MATCHG\r CREATE S,8,STSCAN\r CREATE S,9,STATUS\r \r \r ;---------------------------------------------------------------------\r ; H/W INITIALIZING :\r ;---------------------------------------------------------------------\r \r ;1) CPU PIO :\r CPUINI: LD C,0C3H ;PIO COMMAND ADDRESS\r LD A,80H\r OUT (C),A ;PIO OUTPUT MODE\r LD C,0C0H ;PORT A ADDRESS\r LD A,0FCH ;RESET SIO, OPEN FEEED BACK LOOP\r OUT (C),A\r \r ;2) CTC :\r CTCINI: LD A,ISIO1.HIGH.\r LD I,A\r LD A,ICTC.LOW.\r LD BC,ACTC\r OUT (C),A ;LOAD INTERRUPT VECTOR\r \r LD A,0A5H\r OUT (C),A ;LOAD CONTROL WORD CH. 0\r ;NO RESET, LOAD TIME CONSTANT\r ;INT.TRIGGER(INT.CLK 4Mhz.),NEG.SLOPE\r ;TIMER MODE,INTERRUPT ENABLED\r \r LD A,125\r OUT (C),A ;PRESCALE 125 (8msec.)\r \r LD A,0 ;\r INC BC ;\r OUT (C),A ;\r INC BC ;DISABLE INTERRUPTS IN CHANNELS 1-3\r OUT (C),A ;\r INC BC ;\r OUT (C),A ;\r \r \r ;3) COUNTER INITIALIZING :\r ; --------------\r \r ;4) SIO INITIALIZING :\r ; --------------\r \r ;5) PIO'S :\r PIOINI ;INITIALIZE PORT1,PORT4,PORT5\r LD A,80H\r OUT (PORT1+3H),A ;LOAD CONTROL WORD 1\r LD A,80H\r OUT (PORT1+7H),A ;LOAD CONTROL WORD 2\r LD A,0EH\r OUT (PORT1+5H),A ;LOAD CONTROL WORD 3\r \r ;INITIALIZE PORT2,PORT3,PORT6\r LD A,89H\r OUT (PORT6+3H),A ;LOAD CONTROL WORD 1\r LD A,90H\r OUT (PORT6+7H),A ;LOAD CONTROL WORD 2\r LD A,0F6H\r OUT (PORT6+5H),A ;LOAD CONTROL WORD 3\r \r \r ;----------------------------------------------------------------------\r ; TQM INITIALIZING :\r ;----------------------------------------------------------------------\r \r TQMINT 2,1\r TQMPR S,1,5\r TQMPR S,2,8\r TQMEXI\r \r \r LD A,0EFH\r OUT (PORT1),A ;SET THE TELECINE IN STOP MODE\r LD A,40H\r OUT (PORT4),A ;INITIALIZE PORT4\r LD A,40H\r OUT (PORT5),A ;INITIALIZE PORT5\r LD A,33H\r OUT (PORT6),A ;INITIALIZE PORT6\r \r LD A,0 ;\r LD B,20 ;\r LD C,0 ;\r AGAIN: OUT (C),A ;INITIALIZE DA-CONVERTERS\r INC C ;\r DEC B ;\r JP NZ,AGAIN ;\r \r \r ;---------------------------------------------------------------------\r ; LINK BUFFERS IN EMPTY BUFFER QUEUE :\r ;---------------------------------------------------------------------\r BUFLIN: LD A,25\r LD DE,BUFF01\r LD HL,QEMPTY\r LOOP: PUSH AF\r PUSH DE\r PUSH HL\r CALL SUBENQ ;ENQUE BUFFER IN EMPTY BUFFER QUEUE\r POP HL\r POP DE\r POP AF\r DEC A\r JP Z,MARK\r LD BC,20H\r EX DE,HL\r ADD HL,BC\r EX DE,HL\r JP LOOP\r MARK: PASSIVATE S,1\r CALL SCOMMON\r EI\r LD HL,QEMPTY\r CALL SUBDEQ\r PUSH DE\r POP IX\r LD (IX+3),00\r LD (IX+8),0\r LD (IX+9),0\r LD (IX+10),0\r LD (IX+11),0\r LD (IX+12),0\r LD (IX+13),0\r LD (IX+14),0\r PUSH IX\r POP DE\r LD HL,PQH6\r CALL SUBENQ\r ACTIVATE S,6\r JP MARK\r \r DSEG\r DS 31\r PSTACK DS 1\r END\r