* I$AB - I$ABI FEB 4 2006 - VERSION 1 * * READ BINARY RECORD FROM TELETYPE PAPERTAPE READER * * HONEYWELL X16 16 BIT COMPUTER SOFTWARE * * PROGRAM LENGTH: 135 WORDS * * THIS SOURCE IS RECREATED FROM THE EXISTING OBJECT FILE (WHICH ORIGINATES * FROM HONEYWELL) * * THE SOURCE IS RECREATED BY: THEO ENGEL (THEO.ENGEL@HETNET.NL) * * I$ABI INITIALIZES I$AB * CALLING SEQUENCE: * * CALL I$ABI * DAC 60 WORD DATA BUFFER ADDRESS * ... END OF MESSAGE RETURN * ... NORMAL RETURN * * CALL I$AB * DAC 60 WORD DATA BUFFER ADDRESS * ... END OF MESSAGE RETURN * ... NORMAL RETURN * SUBR I$AB SUBR I$ABI,INIT REL * INIT DAC *-* SSM A1=1 STA TEMP TEMP WITH A1=1; SOM FLAG LDA INIT STA I$AB SET RETURN ADDRESS JMP I$AB+1 * I$AB DAC *-* LDA 0 STA XSV SAVE X JST STRD START READER LDA* I$AB GET BUF POINTER ADD INDX + INDEX STA BUFF SET BUFFER POINTER JST CLBF CLEAR BUFFER LDA MBL X=BUFFER LENGTH STA 0 LDA TEMP SNZ JMP I1 A=0 I2 JST GET6 A<>0 NEW BLOCK ERA SOM SOM? SNZ JMP I1 SOM ERA N002 NOT SOM; EOM? SZE JMP I2 NOT EOM JMP EXIT+1 EOM I1 JST GETW STA* BUFF IRS 0 JMP I1 LDA XOFF JST OUT LDA M1 HLT JMP EXIT GETW DAC *-* JST GET6 GET JST GET6 GET JST GET6 GET LGL 1 LRR '012 MAKE 6.6.4 IN A JMP* GETW CLBF DAC *-* CLEAR BUFFER LDA MBL STA 0 CRA STA* BUFF IRS 0 JMP *-2 JMP* CLBF GET6 DAC *-* LGL 1 A1 => C LLR 6 6 BITS TO B(LSB) INA '1004 JMP *-1 CAS XOFF XOFF? JMP *+2 JMP XOF YES XOFF LGL '011 7BIT => A-LEFT C=BIT 8 CAS N177 177000? JMP C1 > 177000 LDA TAB = 177000 => 123 CAS TAB+1 < 177000 ; 176? SOM OCT 041000 LDA TAB+2 =176 => 121 CAS TAB+3 175? OCT 000221 LDA TAB+4 =175 => 112 CAS TAB+5 174? N177 OCT 177000 LDA TAB+6 =174 => 5 C1 SRC CH8? ERA CH6 FLIP CH6 IF CH8 00174 JMP* GET6 XOF JST GET6 ERA SOM SOM? SNZ JMP E1 SOM ERA N002 EOM? SZE JMP E1 NOT EOM SSM EOM SET A1 = 1 STA TEMP TEMP=-0 JMP EXIT+1 E1 STA TEMP TEMP=0 JMP EXIT STRD DAC *-* SRART READER OCP '0104 LDA XON JST OUT SKS '0104 JMP *-1 OCP 4 JMP* STRD OUT DAC *-* OUTPUT BYTE OTA 4 JMP *-1 JMP* OUT EXIT IRS I$AB SET NORMAL RETURN IRS I$AB SET EOM RETURN LDA XSV RESTORE X STA 0 LDA ZERO DELAY RETURN STA TE1 STA TE2 STA TE3 IRS TE1 JMP *-1 IRS TE2 JMP *-1 IRS TE3 JMP *-1 JMP* I$AB TEMP OCT 100000 162 BUFF OCT 0 163 INDEXED BUFFER POINTER XSV OCT 0 TAB OCT 123000 (165) OCT 176000 OCT 121000 OCT 175000 OCT 112000 OCT 174000 OCT 005000 CH6 OCT 040000 CHANNEL 6 TE1 OCT 0 TE2 OCT 0 TE3 OCT 0 ZERO OCT 0 XON OCT 221 M1 OCT 177777 XOFF OCT 223 N002 OCT 002000 MBL OCT 177704 INDX OCT 040074 END