TITLE 'APLINP-B00,08/20/73,DWG702985' SYSTEM SIG7F SYSTEM BPM * * REF'S: REF BCONTOFF DOES CONTINUE EXIT REF B4CLOSE DOES FORCED CLOSE REF BLANKS X'40404040' REF BREAKFLG BREAK FLAG REF BSPFLAG BACKSPACE VALIDITY FLAG REF CALWROUT APL WRITE OUTPUT RECORD REF CS1 CODESTRING GENERATOR REF CX CODESTRING EXECUTION REF DUMPLINP DUMP IMAGE-PROBABLY AS PROMPT REF ENDIMAGE END OF IMAGE IN USE REF ERRORCHR ERROR-EVAL INP PROMPT-CHARACTERS REF ERXEQ ERROR RETURN FOR 'EXECUTE' 12-00010 REF FIHANDLR FUNCTION INPUT HANDLER REF HICOL REF IMAGE APL 'IMAGE' I/O BUFFER REF INBUF APL INPUT-OUTPUT BUFFER REF INTRANS REF MAXCOL MAX COL POS FOR INPUT REF MERGECOL MERGE COLUMN REF MODE MODE FLAG REF OBSFLAG OBSERVE FLAG. REF ON%OFF ON-OFF LINE FLAG REF OUTSIZ SIZE OF OUTPUT RECORD(5) REF RDAPL READ APL INPUT RECORD REF RELEASER REF RESQQUAD RESUME QUOTE-QUAD PROCESSING. REF TABPNTR TAB INDICATOR REF TABVALS TAB VALUES REF TERMTYPE TERMINAL TYPE REF WROUT APL WRITE OUTPUT RECORD REF WROUTWB WRITE-WORD BOUND REF RESXTEND,CMDERRH,EDUMPLIN REF IDBADCH,IDOPENQT,IDTRUNC * DEF'S: DEF APLINP@ START OF PROCEDURE DEF APLINP0 START OF CONTEXT DEF APLINPUT DEF BCX BREF TO CX-CODESTRING EXEC. DEF DWSIZIM IMAGE DW SIZE DEF EDITCK EDIT CHECK COL. NO. DEF INPDIR DIRECT INPUT HANDLER DEF INPEVAL DEF INPF INPUT FUNCTION LINE DEF INPFAPND INPUT FUN.LINE, APPEND. DEF INP4MERG INPUT LINE FOR MERGE DEF INPLSCER ENTRY TO INPUT FROM LINE-SCAN ERROR DEF INPQQUAD DEF INPRET DEF INPXEQ 'INPUT' FOR 'EXECUTE' 12-00012 DEF INPXTEND INPUT LINE EXTENSION DEF LETTERS DW 'A','Z' DEF MNEMT1 MNEMONIC TABLE 1-CHAR DEF MNEMT2 MNEMONIC TABLE 2-CHAR DEF MNEMT3 MNEMONIC TABLE 3-CHAR DEF OUTFLAG O-U-T FLAG DEF OVHWTABL OVERSTRIKE CHAR TABLE DEF PRMTIMAG PROMPT WITH CONTENTS OF IMAGE DEF QCNT QUOTE COUNT DEF SAVE312 SAVE AREA FOR APLINPUT DEF SQUEEZER ENTRY TO APLINPUT-SQUEEZE MNEM'S * STANDARD EQU'S R0 EQU 0 R1 EQU 1 R2 EQU 2 R3 EQU 3 R4 EQU 4 R5 EQU 5 R6 EQU 6 R7 EQU 7 R8 EQU 8 R9 EQU 9 R10 EQU 10 R11 EQU 11 R12 EQU 12 R13 EQU 13 R14 EQU 14 R15 EQU 15 NBIO EQU 3 NO. OF BLIND I/O CHANNELS+1 BLANK EQU X'40' IDLE EQU X'16' BYSIZIM EQU MAXCOL HIGH END OF IMAGE TO BE BYTE-BLANKED DWSIZIM EQU 17 NO OF DW'S IN IMAGE TO BE BLANKED PAGE * * MODULE DESCRIPTION: * * THIS MODULE INCLUDES THE INPUT ROUTINES AND PROCESSES FOR * APL,EXCEPT APL FILE I/O AND WORKSPACE MANAGEMENT I/O * * INPUT OPERATIONS INCLUDED:BLIND INPUT HANDLER * :QUOTE-QUAD INPUT HANDLER * :EVALUATED INPUT HANDLER * :DIRECT INPUT HANDLER * :FUNCTION EDIT INPUT HANDLER * THE COMMON INPUT ROUTINE, APLINPUT, IS USED BY ALL EXCEPT * THE BLIND INPUT HANDLER * * THE DIRECT INPUT HANDLER MAY ALSO BE CONSIDERED THE * DRIVER FOR APL-IT PERFORMS-VIA OTHER MODULES-NECESSARY * MEMORY MANAGEMENT PROCESSES PRIOR TO CALLING FOR INPUT * * THIS MODULE INTERFACES WITH:THE CODESTRING GENERATION MODULE, * THE MONITOR INTERFACE MODULE(APLUTSI), * THE OUTPUT MODULE (APLOUT) * THE CODESTRING EXECUTION MODULE * THE FUNCTION DEF & EDIT MODULE * THE WORKSPACE MANAGEMENT MODULE * PAGE APLINP0 CSECT 0 * * FLAGS AND TEMPS IN APLINP * BOUND 8 EDITCK DATA 0,0 EDIT CHECK FLAG U12-0004 OUTFLAG EQU EDITCK+1 O-U-T FLAG QCNT RES 1 QUOTE COUNT SAVE312 RES 10 SAVE R3-R12 COMMON INPUT ROUTINE BCHAR RES 1 BAD CHAR FLAG MNEMFLG RES 1 MNEMONIC '%' FLAG-INPUT ROUTINE INSWITCH DATA INPREAL INPUT FETCH SWITCH PAGE APLINP@ CSECT 1 * * INPUT MNEMONIC TABLES * 1. MNEMT3 - TABLE OF 3 CHARACTER MNEMONICS-4TH CHARACTER IS * THE CHARACTER REPRESENTED. * * TABLE IS ORDERED. INSERTIONS MUST BE IN ORDER * MNEMT3SZ IS TABLE SIZE * * 2. MNEMT2 - HALFWORD TABLE OF 2 CHARACTER MNEMONICS. * * TABLE IS ORDERED. INSERTIONS MUST BE IN ORDER * MNEMT2SZ IS TABLE SIZE * * 2.1 MNEMC2 - BYTE TABLE OF CHARARACTERS REPRESENTED BY THE * MNEMONICS IN MNEMT2. ENTRIES MUST BE ORDERED TO * PAIR PROPERLY WITH MNEMT2 ENTRIES * * 3. MNEMT1 - BYTE TABLE OF SINGLE CHARACTER MNEMONICS * * TABLE IS ORDERED * MNEMT1SZ IS SIZE * * 3.1 MNEMC1 - IS CORRESPONDING CHARACTER TABLE, ENTRIES * PAIRED WITH MNEMT1 * * * ** * * NOTE:IF THIS TABLE IS CHANGED,THE OUTMNEMT AND OUTRANST TABLES * ** MUST ALSO BE CHANGED * MNEMT3 DATA X'C1C2E24F' ABS ABSOLUTE DATA X'C3C1D750' CAP DATA X'C3D6D459' COM COMMENT DATA X'C3D7D34A' CPL CUP-LEFT DATA X'C3D7D967' CPR CUP-RIGHT DATA X'C3E4D75B' CUP DATA X'C4C3C442' DCD DECODE DATA X'C4C5D37F' DEL DATA X'C4D3E348' DLT DELTA DATA X'C4D9D764' DRP DROP DATA X'C4D9E271' DRS DIERESIS DATA X'C5C3C455' ECD ENCODE DATA X'C6C3E341' FCT FACTORIAL DATA X'D3D6C757' LOG DATA X'D3D6D275' LOK LOCKED FUNCT DATA X'D4C1E762' MAX MAXIMUM DATA X'D4C4E5FE' MDV MATRIX DIVIDE DATA X'D4C9D544' MIN MINIMUM DATA X'D5D5C477' NND NAND DATA X'D5D6D978' NOR DATA X'D5D6E35F' NOT DATA X'D6E4E300' OUT DATA X'D9C4F163' RD1 REDUCTION-1ST COORD DATA X'D9C5E558' REV REVERSE DATA X'D9D5C46F' RND RANDOM DATA X'D9E5F168' RV1 REVERSE-1ST COORD DATA X'E3C1C205' TAB HORIZONTAL TAB DATA X'E3C1D26A' TAK TAKE DATA X'E3C2D954' TBR T-BAR DATA X'E3D7E2B2' TPS TRANSPOSE DATA X'E4C4D347' UDL UNDERSCORED DELTA DATA X'E7D7C4B1' XPD EXPAND DATA X'E7D7F1B0' XP1 EXPAND-1ST COORD * MNEMT3X RES 0 MNEMT3SZ EQU MNEMT3X-MNEMT3 * * ** * * NOTE:IF THIS TABLE IS CHANGED,THE OUTMNEMT AND OUTRANST TABLES * ** MUST ALSO BE CHANGED * * OVHWTABL. OVBYTABL IS NOT ORDERED IN ITSELF! BOUND 4 MNEMT2 DATA,2 0 OFFSET HALFWORD FOR BDR LOOP DATA,2 X'C2E2' BS BACKSPACE DATA,2 X'C7C4' GD GRADE DOWN DATA,2 X'C7C5' GE GREATER THAN OR EQUAL DATA,2 X'C7D6' GO BRANCH DATA,2 X'C7E3' GT GREATER THAN DATA,2 X'C7E4' GU GRADE UP DATA,2 X'C9C2' IB I-BEAM DATA,2 X'C9E2' IS ASSIGNMENT DATA,2 X'D3C5' LE LESS THAN OR EQUAL DATA,2 X'D3E3' LT LESS THAN DATA,2 X'D5C5' NE NOT EQUAL DATA,2 X'D6D9' OR DATA,2 X'D8D8' QQ QUOTE QUAD Q1 WHILE Q1TABLSIZ) PWR2 SET I FIN FIN * * *NEGHWTBL-TABLE OF HALFWORDS WHICH 'CH' TREATS AS NEGATIVE * USED FOR OVERSTRIKE VALIDITY TEST BOUND 4 NEGHWTBL DATA,2 0 OFFSET FOR BDR LOOP DATA,2 X'B0B1' *MEXPAND EXPAND MEXPAND3 DATA,2 X'B1B2' *EXPAND TRANSPOSE TRANSPOSE3 L3 WHILE L3