/ I/O/U-H COMMANDS FOR LAB-FOCAL (V5E) -JVZ- / THIS OVERLAY ADDS THE 'I H', 'O H' AND 'U H' COMMANDS / TO LAB-FOCAL. THESE COMMANDS ALLOW A PROGRAM TO COM- / MUNICATE WITH A HOST COMPUTER VIA A SERIAL PORT. THE / 'U H' COMMAND CONNECTS THE TERMINAL TO THE REMOTE CPU / FOR INTERACTIVE USE, WHILE 'I H' AND 'O H' SELECT THE / HOST FOR NON-INTERACTIVE OPERATIONS. ALL I/O IS DONE / VIA INTERRUPTS, HENCE THESE COMMANDS WILL NOT WORK IN / BATCH MODE. IFNDEF IDVC /DEVICE CODES: 40/41 IFNDEF ODVC KKSF=IDVC^10+IOT 1/KL8E INSTRUCTIONS KKIE=IDVC^10+IOT 5 KKRB=IDVC^10+IOT 6 TTSF=ODVC^10+IOT 1 TTCF=ODVC^10+IOT 2 TTLS=ODVC^10+IOT 6 CDI=CDF CIF ESC="[&77 EXIT=31 /FIELD 0 GOSW=36 K177=54 CHAR=66 EKODEV=126 PCHK=5227 IOCMDS=6614 INTJMP=6670 INJMP=6675 FORLVL=25 /FIELD 1 OUTDEV=57 CRTEST=2235 KINT=3247 TINT=3275 *4417 CLA CMA /ENABLE INTERRUPTS KKIE CLA CLL *1544 /AFTER ERROR MESSAGES PFLVL, FORLVL KINTX, KINT+3 TINTX, TINT PCHKX, PCHK HINTX, CDI 10 /CHECK KB FLAG (PATCH) KSF JMP I TINTX KRS JMP I KINTX IHCMD, TAD PIN /DUMP BUFFER CONTENTS DCA POUT TAD OHCMD+4 JMP I 163 /[SETIDV OHCMD, DCA POUT /DISABLE BUFFER CONTROL JMS I 167 /GTNAME JMS I 170 /SETODV HECHOP HOSTIO UHCMD, CLA STL RTL /FIX UP STACKS CDF 10 ISZ I PFLVL /DROP FORLVL STL RAL JMS I PCHKX /DUMP TEXTP CDF 10 TAD EKODEV DCA I 153 /USE 'O E' DEVICE TAD PIN DCA POUT /CLEAR RING BUFFER / PAGE BOUNDARY DCA SYNCSW /CLEAR SYNC SWITCH TAD DC3-1 DCA I (KINT+7 /DISABLE CTRL/C DCA I (777 /DISABLE KEYPAD UHLUP, CDF 10 /CHECK KEYBOARD TAD I KBP KBP, AND K177 /REMOVE PARITY SNA JMP CKHST TAD KM5 /CTRL/E? SNA CLA JMP UHXIT /YES: EXIT TAD I KBP JMS HOUT /XMIT CHAR DCA I KBP CKHST, JMS HIN /CHECK HOST JMP UHLUP CDI 10 JMP I (OH /PRINT CHAR KM21, -2^10-1 /LOCATED AT 'PAGE+23' KM33, -ESC KM5, -5 HINT, HINTX /HOST INTERRUPT SERVICE KKSF JMP OINT KKRB AND K177 TAD 146 /[-23 SNA JMP DC3 /XOFF IAC IAC SNA JMP DC1 /XON TAD 150 /[20 STL IAC DCA I PIN /L=0 IF AC=0 RAL /IGNORE NULLS TAD PIN K223, AND KM21 /CLEAR NEXT POSITION DCA PIN DCA I PIN TAD SYNCSW /TRANSMITTER BUSY? SNA CLA JMP SYNCSW+1 /NO - CHECK BUFFER OINT, TTSF /TRANSMITTER DONE? JMP I HINT TTCF SYNCSW, 0 /JMP I HINT TAD POUT /COMPARE (IN,OUT) CLL CIA SNL /IGNORE OVERFLOW? TAD PIN SNL SZA TAD 150 /[20 = BUFFER LENGTH TAD 165 /[6-20 SNL SZA CLA TAD K223 /XOFF IF NEARLY FULL SZA TTLS /HOSTSYNC SKP DC3, TAD OINT+1 /TTSYNC DC1, DCA SYNCSW JMP I HINT HBUF, ZBLOCK 20 /HOST INPUT BUFFER IFNZRO HBUF&37 ///// HIO, 0 /HOST I/O ROUTINES SNA JMP I (IH /INPUT HAS ZERO AC JMS HOUT TAD CHAR /ECHO? CDI 10 JMP I HIO HIN, 0 CDF 0 TAD I POUT /CHECK BUFFER SNA JMP HINX /NOTHING THERE DCA HOUT TAD POUT K21, CML IAC /BUMP POINTER AND KM21 DCA POUT TAD HOUT ISZ HIN /SECOND RETURN JMP I HIN HINX, TAD K21 /SEND XON JMS HOUT JMP I HIN /FIRST RETURN ///// HOUT, 0 DCA CHAR /SAVE TAD CHAR TAD 165 /[-LF SNA CLA JMP I HOUT /OMIT LF ION TAD SYNCSW SZA CLA JMP .-2 TAD CHAR ISZ SYNCSW TTLS CLA JMP I HOUT ///// UHXIT, DCA I KBP /REMOVE CTRL/E TAD HIO+1 DCA I (KINT+7 /REPAIR CTRL/C TAD KM33 DCA I (777 /RESTORE KEYPAD JMP EXIT ///// PAGE *104 PIN, HBUF POUT, HBUF *144 UH, UHCMD *360 IH, TAD HTIME /SET TIMEOUT COUNTER DCA GOSW JMS I HINP /RETN CHAR IN THE AC SKP JMP IHX ISZ GOSW /TIMEOUT? JMP IH+2 TAD 166 /[32]=[EOF] IHX, CDI 10 JMP I .+1 HECHOP-2 HINP, HIN HTIME, -2000 /1 SEC AT 9600 BAUD *IOCMDS+1 JMP I UH *INJMP IHCMD *INTJMP OHCMD FIELD 1 *KINT CDI 0 /CHECK S.L. FLAGS JMP I .+1 HINT+1 *6354 OH, JMS I OUTDEV CIF 0 JMP I .+1 UHLUP HOSTIO, 0 /I/O TO THE HOST CDI 0 JMS I .+3 JMS I HECHOP JMP I HOSTIO /VIA INDEV OR OUTDEV HIO HECHOP, CRTEST /OUTPUT ECHO ROUTINE $