ASMB,L,C HED RTE DRIVER FOR <91200> VIDEO GENERATOR A-91200-16001-2 * * NAME: RTE-II DRIVER FOR 91200 VIDEO GENERATOR * SOURCE: 91200-18001 * BINARY: 91200-16001 * PGMR: R.M.C. REV.C(1648) MADE BY DENTON ANDERSON * * NAM DVA13,0 91200-16001 REV 1648 -- 761124 SPC 1 ENT IA13,CA13 SUP PRESS EXTRANEOUS LISTING SPC 1 * THIS DRIVER IS RESPONSIBLE FOR PROCESSING EXEC I/O CALLS FOR * THE <91200> VIDEO DISPLAY GENERATOR. IT RECOGNIZES WRITE AND * CONTROL REQUESTS. * * WRITE REQUESTS WILL INITIATE A DMA TRANSFER OF YX * COORDINATES OF POINTS TO BE WRITTEN ON OR ERASED FROM * THE VIDEO MONITOR SCREEN BY THE <91200>. * Y=BITS 15-8, X=BITS 7-0. * * CONTROL REQUESTS ARE USED TO:- * SET COLOR (BLACK FOR SELECTIVE ERASE) * SET SENSE (VIDEO POLARITY) * PERFORM A BULK ERASE. * INDICATE A POWER FAIL. * * THE FUNCTION BITS FOR CONTROL REQUESTS ARE DEFINED AS FOLLOWS:- * * BITS 10, 9, & 6 SELECT COLOR AS FOLLOWS: * * 00 XX0 WHITE * 00 XX1 BLACK (SELECTIVE ERASE) * 01 XX0 RED -----\ * 01 XX1 GREEN \ * 10 XX0 BLUE \ NOT FOR 1 CARD * 10 XX1 YELLOW (RED & GREEN / SYSTEMS * 11 XX0 MAGENTA (RED & BLUE) / * 11 XX1 CYAN (BLUE & GREEN) -----/ * * BIT 7 IS THE SENSE BIT, IF SET TO 1 IT CAUSES THE VIDEO * OUTPUT OF THE CARD TO INVERT. * * BIT 8 SET TO 1 CAUSES BULK ERASE (TO SENSE PREVIOUSLY SET). * IF BIT 7 IS ALSO SET THEN BIT 0 OF EQT5 IS SET TO SHOW THE * USER THAT A POWER FAIL HAS OCCURRED. * * WHEN BIT 8 OF THE CONTROL WORD IS SET (TO ERASE), BITS * 6, 9, & 10 OF THE CONTROL WORD ARE IGNORED. * * THE DRIVER PROCESSES TIMEOUT SO THAT THE SYSTEM WILL NOT * ISSUE A CLC FOLLOWING A TIMEOUT INTERRUPT. SKP * INITIATION SECTION SPC 1 I.XY NOP STA TVSC SAVE THE SELECT CODE LDA EQT5,I IS THE EQT SSA BUSY? JMP PFAIL YES - MUST BE AUTO RESTART LDA EQT4,I SHOW RTE THAT TIMEOUT AND IOR PS PWR FAIL WILL BE HANDLED HERE. STA EQT4,I LDA EQT6,I REQUEST CODE WITH EXEC CALL AND B3 TYPE IN LOW BITS. CPA B3 JMP CNTRL B10 SLA IF A=1,RETURN CODE IS RIGHT JMP I.XY,I TO SHOW ILLEGAL READ. SPC 1 LDA CHAN CONFIGURE DMA IOR OTA0 102606/7 STA DMAO XOR B4 102602/3 STA DMAO1 STA DMAO2 IOR B300 102702/3 STA DMAS IOR B1200 103702/3 ADA B4 103706/7 STA DMASC XOR B5000 106706/7 STA DMAC1 XOR B4 106702/3 STA DMAC END DMA CONFIGURATION SPC 1 LDA TVSC ASSIGN TV CARD TO DMA AND IOR BIT15 ASK STC AFTER EACH TRANSFER, DMAO OTA DMA BUT NO FINAL CLC. IOR STF0 CONFGR STF FOR TV STA STF1 LDA EQT7,I SEND BUFFER ADDRESS DIRECTLY DMAC CLC DMA-4 DMAO1 OTA DMA-4 TO ADDRESS REGISTER. LDA EQT8,I SEND TWO'S COMPLEMENT OF CMA,INA BUFFER LENGTH TO DMAS STC DMA-4 WORD COUNT REGISTER. DMAO2 OTA DMA-4 STF1 STF TVGEN READY TV CARD DMASC STC DMA,C TURN ON DMA, BUT DMAC1 CLC DMA PREVENT INTERRUPT FROM IT. CLA JMP I.XY,I SKP CNTRL DLD INTBA,I FIND DMA CHANNEL CPA EQT1 AND RELEASE IT. CLA CPB EQT1 CLB DST INTBA,I SPC 1 LDA TVSC CONFIGURE I/O INSTRUCTIONS IOR STF0 1021SC STA STFTV ADA B300 1024SC STA MIATV IOR B1200 1036SC STA OTATV IOR B100 1037SC STA STCTV XOR B5000 1067SC STA CLCTV XOR B5600 1031SC STA ERASE END I/O CONFIGURATION SPC 1 LDB EQT6,I GET CONTROL WORD BLF,BLF CHECK BIT 8 SLB JMP ERASE DO BULK 'ERASE' SPC 1 LDA EQT4,I AND MASK CHECK FOR SZA,RSS NON-ZERO SUB-CHANNEL JMP GO.ON IS ZERO - SO COLOR LDA B NOT ZERO - KILL COLOR RAR,ERA IS COLOR NOT SEZ,SLA,RSS WHITE OR BLACK? JMP GO.ON YES - SO OK! LDA B NO - SO KILL COLOR TO AND MASK2 WHITE ONLY STA B SPC 1 GO.ON CLE,ELB CALL IS TO SET OR CHANGE BRS,BRS COLOR AND/OR SENSE. CLA POSITION ELA,RAL CONTROL BITS RBR,ERB 6, 9, & 10 RBL,RBL FOR TESTING SSB,SLB,RSS CYAN OR GREEN? JMP *+3 NEITHER IOR B1 IT IS CYAN OR GREEN JMP *+4 WHICH? SLB,RSS MAGENTA OR RED? JMP *+5 NEITHER IOR B4 IT IS CYAN/MAGENTA OR GREEN/RED SEZ,RSS CYAN/MAGENTA OR GREEN/RED? IOR B10 IT IS GREEN OR RED JMP STFTV DONE SKP SSB,RSS YELLOW OR BLACK? JMP *+5 NEITHER (IT IS BLUE OR WHITE) IOR B10 IT IS YELLOW OR BLACK SEZ,RSS YELLOW OR BLACK? IOR B5 IT IS BLACK JMP STFTV DONE SEZ BLUE OR WHITE? IOR B5 IT IS BLUE SPC 1 STFTV STF TVGEN BECAUSE RTE DID CLF. CLCTV CLC TVGEN SWITCH MODE FF OTATV OTA TVGEN,C TO STEER OUTPUT TO MODE PFAIL LDA B4 REGISTER AND DO IMMEDIATE JMP I.XY,I COMPLETION SPC 4 ERASE CLF TVGEN CLEAR ANY PRESET STATE OF CARD CLA,INA SET STATUS BIT (PWR FAIL BIT) IOR EQT5,I ON EQT5 WORD SSB,RSS IS BIT 7 OF CNTRL WORD SET? AND EQ5 NO - SO CLEAR PWR FAIL BIT STA EQT5,I MIATV MIA TVGEN ANY INPUT WILL BULK ERASE STCTV STC TVGEN,C INTERRUPT NEEDED TO COMPLETE. CLA JMP I.XY,I SPC 3 TVSC NOP STORE CURRENT IO SELECT CODE. BIT15 OCT 100000 PS OCT 30000 EQ5 OCT 177400 OTA0 OTA 0 STF0 STF 0 B1 OCT 1 B3 OCT 3 B4 OCT 4 B5 OCT 5 B100 OCT 100 B300 OCT 300 B1200 OCT 1200 B5000 OCT 5000 B5600 OCT 5600 BIT11 OCT 4000 MASK OCT 2700 MASK2 OCT 137771 SKP * CONTINUATOR SECTION. SPC 1 C.XY NOP LDB EQT1,I SZB,RSS JMP EXTRA SPURIOUS INTERRUPT. LDA EQT4,I EXAMINE BIT 11 FOR A AND BIT11 TIME-OUT ENTRY. SZA JMP TMOUT LDB EQT8,I GET TRANSMISSION LOG JMP C.XY,I A ALREADY CLEAR. SPC 1 TMOUT XOR EQT4,I BIT 11 IS SET, SO CLEAR STA EQT4,I IT AND STORE BACK. CLA HANDLE TIME-OUT HERE TO JMP C.XY,I PREVENT A CLC BY SYSTEM, SPC 1 AND DOWNED DEVICE. EXTRA STB EQT15,I IGNORE INTERRUPT AND ISZ C.XY PREVENT TIMEOUT FROM IT. JMP C.XY,I SPC 3 B EQU 1 CA13 EQU C.XY IA13 EQU I.XY TVGEN EQU 0 DMA EQU 6 NOMINAL DMA CHANNEL TBL EQU 1650B CHAN EQU TBL+23B INTBA EQU TBL+4 EQTBL EQU TBL+7 EQT1 EQU EQTBL+1 EQT4 EQU EQTBL+4 EQT5 EQU EQTBL+5 EQT6 EQU EQTBL+6 EQT7 EQU EQTBL+7 EQT8 EQU EQTBL+8 EQT15 EQU 1774B SPC 2 END