TITLE IOINIT I/O FLAG AND VARIABLE INITIALIZATION REALIO EQU 0 CPM EQU 0 ZILOG EQU 0 OASIS EQU 0 GENRAD EQU 0 R2E EQU 0 CCORP EQU 1 TRSDOS EQU 0 MOD2 EQU 0 LOKHED EQU 0 HDOS EQU 0 TEK EQU 0 ;TEKTRONIX ISIS EQU 0 DTC EQU 0 MITS EQU 0 SORD EQU 0 ISC EQU 0 XTNSYS EQU 0 ;EXTENSYS VERSION CLRDSK SET CPM OR MITS OR ISIS OR DTC OR ZILOG OR TEK OR ISC CLRDSK SET CLRDSK OR XTNSYS OR TRSDOS OR HDOS OR OASIS OR MOD2 CLRDSK SET CLRDSK OR GENRAD OR R2E IF2 .PRINTX/IOINIT/ IFT REALIO .PRINTX/Simulated version/ ENDIF IFT CPM .PRINTX/CPM VERSION/ ENDIF IFT OASIS .PRINTX/OASIS VERSION/ ENDIF IFT GENRAD .PRINTX/GENRAD Version/ ENDIF IFT R2E .PRINTX/R2E Version/ ENDIF IFT CCORP .PRINTX/Compucorp version/ ENDIF IFT TRSDOS .PRINTX/TRSDOS VERSION/ ENDIF IFT MOD2 .PRINTX/TRS-80 Model II version/ ENDIF IFT LOKHED .PRINTX/Lockheed special version/ ENDIF IFT HDOS .PRINTX/HEATH VERSION/ ENDIF IFT ZILOG .PRINTX/ZILOG MCZ VERSION/ ENDIF IFT TEK .PRINTX/TEKTRONIX VERSION/ ENDIF IFT ISIS .PRINTX/ISIS II VERSION/ ENDIF IFT DTC .PRINTX/DTC VERSION/ ENDIF IFT MITS .PRINTX/MITS VERSION/ ENDIF IFT SORD .PRINTX/SORD VERSION/ ENDIF IFT ISC .PRINTX/ISC VERSION/ ENDIF IFT XTNSYS .PRINTX/EXTENSYS VERSION/ ENDIF ENDIF ; ENTRY $IOINI EXT $IOFLG ; IFT HDOS SCALL MACRO ARG RST 7 DB ARG ENDM .CONSL EQU 6 EXT OPEN,$UN ENDIF IFT CPM OR DTC EXT $LNPTR,$CPMBF,$LINBF ENDIF IFT ZILOG EXT $LNPTR,$LINBF,$INLUN,$INCOD,$OTLUN,$OTREQ,$ZNPTR,$ZINBF ENDIF IFT CPM OR MITS OR ISIS OR DTC OR ZILOG EXT $LUNTB,$FLFLG,$DSKER ENDIF IFT ISC OR XTNSYS OR TRSDOS OR HDOS OR OASIS OR MOD2 OR GENRAD OR R2E EXT $LUNTB,$FLFLG ENDIF IFT CCORP EXT $LUNTB,$FLFLG ENDIF IFT TEK EXT $FLFLG,$DSKER ENDIF IFT MITS EXT $TTYLN,$LINBF,$LNPTR,$OUTBL,$TOCHR,$ARGBK ENDIF IFT DTC EXT $COMBF,$COMLN,$COMPT ENDIF IFT CPM OR ISIS EXT $OPNFL ENDIF IFT ISIS OR ISC OR XTNSYS EXT $LNPTR,$LNBUF ENDIF ; IFT TEK EXT $LNPTR $LNBUF EQU 50H ENDIF IFT TRSDOS OR OASIS OR MOD2 OR GENRAD OR R2E OR CCORP EXT $LNPTR,$LINBF ENDIF IFT LOKHED EXT $LINCT ENDIF ; $IOINI: LDA $IOFLG ;SEE IF WE'VE ALREADY BEEN CALLED ORA A RNZ IFT LOKHED STA $LINCT ENDIF INR A STA $IOFLG IFT TEK OR ISC LXI H,$LNBUF SHLD $LNPTR ;INITIALIZE TTY I/O MVI M,13 ;PUT A CR IN BUFFER TO FORCE READ ENDIF IFT TRSDOS OR OASIS OR MOD2 OR GENRAD OR R2E OR CCORP LXI H,$LINBF SHLD $LNPTR MVI M,13 ENDIF IFT XTNSYS LXI H,$LNBUF SHLD $LNPTR MVI M,0 ENDIF IFT HDOS XRA A ;SET CONSOLE TO LINE INPUT W/ECHO MOV B,A MVI C,-1 SCALL .CONSL ENDIF IFT DTC LXI H,$CPMBF ;INITIALIZE TTY I/O MVI M,80 INX H MVI M,0 INX H SHLD $LNPTR MVI M,12Q ENDIF IFT CPM LXI H,$CPMBF MVI M,133 INX H MVI M,0 INX H SHLD $LNPTR MVI M,12Q ENDIF IFT ISIS LXI H,$LNBUF MVI M,12Q SHLD $LNPTR ENDIF IFT ZILOG LXI H,$LINBF MVI M,15Q SHLD $LNPTR LXI H,$ZINBF MVI M,15Q SHLD $ZNPTR MVI A,1 STA $INLUN INR A STA $OTLUN MVI A,0CH STA $INCOD MVI A,10H STA $OTREQ ENDIF IFT MITS LXI H,$TTYLN MVI M,102Q INX H MVI M,0 INX H MVI M,101Q INX H MVI M,2 INX H LXI D,$LINBF MOV M,E INX H MOV M,D INX H MVI M,80 INX H MVI M,0 LXI H,$LINBF MVI M,12Q SHLD $LNPTR LXI H,$OUTBL MVI M,103Q INX H MVI M,0 INX H MVI M,101Q INX H MVI M,0 INX H LXI D,$TOCHR MOV M,E INX H MOV M,D INX H MVI M,1 INX H MVI M,0 XRA A STA $TOCHR ENDIF ; IFT DTC LXI H,$COMBF ;INITIALIZE COM I/O MVI M,80 INX H MVI M,0 INX H MVI M,12Q SHLD $COMPT ENDIF ; IFT CLRDSK IFF TEK LDA $LUNTB ;GET # OF LUN'S DCR A IFT DTC ADD A ENDIF MOV B,A ;SAVE IT ENDIF IFT TEK MVI B,6 ;6 LUN'S FOR TEK DISKDRV ENDIF LXI H,$FLFLG ;INITIALIZE FLAGS FOR DSKDRV XRA A FLGLOP: MOV M,A INX H ;INCREMENT PTR DCR B ;DECREMENT COUNT JNZ FLGLOP ;NEXT IFF ISC OR XTNSYS OR TRSDOS OR HDOS OR OASIS OR MOD2 OR GENRAD OR R2E STA $DSKER ENDIF IFT MITS STA $ARGBK ENDIF ENDIF ; IFT CPM OR ISIS XRA A STA $OPNFL ;FOR LPTDRV ENDIF ; IFT HDOS LDA $UN ;SAVE CURRENT LUN PUSH PSW LXI H,TWO ;POINT TO LUN LXI D,LPNAME ;POINT TO NAME CALL OPEN ;OPEN LP: TO BE LUN 2 POP PSW ;RESTORE LUN STA $UN RET TWO: DW 2 LPNAME: DB "LP: " ENDIF RET END