(George Source)
Macros used: BITDEFS, CHNUMCOD, COMBRKIN, COMERR, ENDCOM, FIELDDEF, FREECORE, HUNTW, JBC, JENVNOT, LF, LINECTRL, MHUNT, MHUNTW, OUTPARAM, PARABEG, PARANOTX, PARSORT, PARUNACC, SAWCEJX, SEGENTRY, STF, ZERRORX, ZERRORY
22FL #OPT K0LINECTRL=0 22^= ...#LIS K0LINECTRL>K0ALLGEO>K0GREATGEO>K0COMMAND 23DW ...#SEG LINECTRL 23YG ... 8HLINECTRL 24D6 ...[ THE ENTRY POINT 24XQ ... SEGENTRY K1LINECTRL,X1LINECTRL 25CB ...[ 25X2 ...[ 26BL ...[ THIS SEGMENT IMPLEMENTS THE LINECONTROL COMMAND TO CHANGE THE 26W= ...[ STATE OF A MULTIPLEXER LINE ON A DME SYSTEM 27*W ...[ 27TG ...[ DEFN OF BITS IN ACC OF LINE CONTROL EXTRACODE 28*6 ... BITDEFS AWORK1,0,NOTACC [REPLIES FROM EXEC 28SQ ... FIELDDEF REPMODCONT,3,0,2 [MODEM CONTROL FIELD IN REP FROM... 29#B ...[ [...EXEC WHEN ASKING ABOUT PREV COMMAND 29S2 ... FIELDDEF SETMODCONT,3,0,23 [MODEM CTRL FIELD IN REQUEST TO EXEC 29W9 ...[ NOW PORT,COUPLER AND PROTOCOL IN REQUEST 29YD ... FIELDDEF PORT,6,0,14 2=2M ... FIELDDEF SCOUPLER,6,0,8 2=4W ... FIELDDEF PROT,4,0,20 2=75 ...#DEF C03=3 2=9# ...#DEF TRANSBIT=#200 2=?L ...#DEF RACTION=#40000000 2=R= ...#DEF RCONNECT=#20000000 2?=W ...#DEF RFOUR=4 2?QG ...#DEF RSLOW=2 2#=6 ...#DEF RNORMAL=1 2#PQ ...[ TABLE FOR PARAMETER ANALYS :- 2*9B ...[ PARAM HOLDS MIN NUMBER OF CHARS IN PARAM 2*P2 ...[ NEXT 3 WORDS HOLD TEXT OF PARAM 2B8L ...[ PARASET HOLDS MASK OF BITS TO BE SET IF PARAM PRESENT 2BN= ...[ PARASWITCH HOLDS MASK OF BITS IN LINECONTROL OPERATION WHICH ARE 2C7W ...[ TO BE INVERTED IF PARAM IS PRESENT 2CMG ...[ 2CSN ...MAXVAL 2C^W ... +16 2D76 ...PARAM 2DLQ ... +2 2F6B ... 12HSTANDBY [MUST BE TESTED BEFORE SLOW 2FL2 ...PARASET 2G5L ... +RNORMAL 2GK= ...PARASWITCH 2H4W ... +RNORMAL 2HJG ...#DEF PARATABLEN=0?-PARAM 2HL9 ... +2 2HMY ... 12HTRANSPARENT 2HPM ... +TRANSBIT 2HRB ... +0 2HT5 ... +3 2HWS ... 12HC03 2HYH ... +TRANSBIT 2J2= ... +TRANSBIT 2J46 ... +1 2JHQ ... 12HSLOW 2K3B ... +RSLOW 2KH2 ... +0 2L2L ... +1 2LG= ... 12HDISCONNECT 2L^W ... +RCONNECT 2MFG ... +RCONNECT 2M^6 ... +1 2NDQ ... 12H2-WIRE 2NYB ... +RFOUR 2PD2 ... +RFOUR 2PXL ... +1 2QC= ... 12HNORMAL 2QWW ... +RNORMAL 2RBG ... +0 2RW6 ... +1 2S*Q ... 12HFAST 2STB ... +RSLOW 2T*2 ... +RSLOW 2TSL ... +1 2W#= ... 12H4-WIRE 2WRW ... +RFOUR 2X?G ... +0 2XR6 ... +1 2Y=Q ... 12HCONNECT 2YQB ... +RCONNECT 2^=2 ... +0 2^PL ... -1 [END OF TABLE 2^RT ...PARPROG 2^W4 ... +4 2^Y? ... 4HPROG 322G ...TRANNA 324P ... +4 326Y ... 4HTRAN 329= ...[ [ 32NW ...SDEFAULTS [SETTING FOR DEFAULT PARAMETERS 338G ... +RACTION+RCONNECT 33N6 ...[ 347Q ...[ 348B ...PARGIN [SUB TO CALL PARABEG 3492 ... SBX 5 FX1 349L ... PARABEG 1,0(3),1(3),,0 34== ... ADX 5 FX1 34=W ... MHUNT 3,CPB,CUNI 34?G ... EXIT 5 0 34#6 ...PARAG [SUB TO GET PORT OR COUPLER 34#Q ... LDX 3 7 34*B ... SBX 7 FX1 34B2 ... CALL 5 PARGIN 34BL ... LDX 5 ANUM(3) 34C= ... BNG 5 ZEX2 [EXIT IF PAR NOT PRESENT 34CW ... ANDN 5 #7777 [OR IF NULL 34DG ... BZE 5 ZEX2 34F6 ... CHNUMCOD ,3 [CONVERT TO DEC 34FQ ... ADX 7 FX1 34GB ... TESTREPN OK,XCHER [J IF NOT VALID NUMBER 34H2 ... LDX 5 ACOMMUNE1(2) 34HL ... MHUNT 3,CPB,CUNI 34J= ... TXL 5 MAXVAL(1) 34JW ... BCC TOOLARGE [J IF OUT OF RANGE 34KG ... EXIT 7 4 34L6 ...ZEX2 ADX 7 FX1 34LQ ... EXIT 7 3 34MB ...SOUTUNIT [SUB TO OUTPARAM PERI DESC 3572 ... MHUNTW 3,CPAR,JSCE 35LL ... SBX 7 FX1 366= ... LDX 5 JSCEQ(3) 36KW ... SRL 5 12 [PARAM NUMBER 375G ... PARANOTX 5 37K6 ... MHUNT 3,CPB,CUNI 384Q ... LDX 6 ANUM(3) 38JB ... ANDN 6 #7777 [NUMBER OF CHARS IN PERI DESC 3942 ... OUTPARAM 6,APARA,CPB,CUNI [CUNI CREATED SO COM PROC KNOWS PAR N 39HL ... ADX 7 FX1 3=3= ... EXIT 7 0 3=GW ...[ 3?2G ...X1LINECTRL 3?G6 ... JENVNOT WRONGENV,DME 3?^Q ... STOZ AWORK3(2) 3#FB ... LDX 0 SDEFAULTS(1) 3#^2 ... STO 0 AWORK1(2) [PRESET DEFAULT ACTION 3*DL ... PARSORT ZBREAKIN [ANALYSE PERI DESC 3*Y= ... HUNTW 3,CPAR,JSCE 3BCW ... BNG 3 PARSORTERR [J IF PARSORT FOUND ERROR 3BXG ... SAWCEJX JSCEB(3),NOTMX,NOTMX [J IF NOT MX 3CC6 ... LDX 4 JSCEB(3) 3CWQ ... SRL 4 9 3DBB ... ANDN 4 #77 [ISOLATE LINE NUM 3DW2 ... STO 4 AWORK2(2) [SAVE LINE NUM 3F*L ... LDN 5 0 3FD9 ... LDX 2 JSCEP(3) 3FGS ... ANDX 2 BITS22LS 3FKC ... SMO FX2 3FN2 ... STO 2 AWORK4 3FQK ... LINECTRL 4,2 [ASK EXEC VALUES FOR LAST COMMAND 3FT8 ... LDX 2 FX2 3FXT ... BNG 5 ZPRCON [J IF UNDER PROG CONTROL 3G2D ... LDX 5 4 3G53 ... SLL 5 6 3G7L ... SRL 5 3 3G=9 ... ORS 5 AWORK1(2) 3G#W ... LDN 6 4 3GSG ... LF 6,REPMODCONT,7 [GET LAST MODEM CONT VALUE 3H#6 ... LDN 6 AWORK1(2) 3HRQ ... STF 6,SETMODCONT,7 [AND STORE IN AW1 3HS? ... CALL 7 PARAG 3HSS ... +4 3HT* ... 8HPORT [GET PORT PARAM 3HTW ... BRN NOPORT [J IF NONE 3HWC ... LDN 6 AWORK1(2) 3HWY ... STF 6,PORT,5 3HXF ...NOPORT 3HY2 ... FREECORE 3 [GET RID OF CUNI 3HYH ... CALL 7 PARAG [NOW FIND COUPLER 3H^4 ... +7 3H^K ... 8HCOUPLER 3J26 ... BRN NOCOUP 3J2M ... LDN 6 AWORK1(2) 3J38 ... STF 6,SCOUPLER,5 3J3P ...NOCOUP 3J4= ... FREECORE 3 3J4R ...NOTRAN 3J5# ... LDN 5 C03 3J5T ... STF 6,PROT,5 3J6B ... LDN 3 PARPROG(1) 3J6X ... CALL 5 PARGIN 3J7D ... LDX 0 ANUM(3) 3J7^ ... BNG 0 NOPROG [J IF NOT PROGRAM CONTROL 3J8G ... LDCT 0 #400 3J93 ... ORS 0 AWORK2(2) 3J9J ...NOPROG 3J=5 ... FREECORE 3 3J?B ... LDN 7 0 3JR2 ...[ 3K=L ...[ NOW CHECK FOR EACH POSSIBLE PARAMETER 3KQ= ...TLOOP 3L9W ... SMO 7 3LPG ... LDN 1 PARAM(1) 3M96 ... LDX 0 0(1) 3MNQ ... BNG 0 ZENDPARS [J IF END OF PARAM TABLE 3N8B ... PARABEG 1,0(1),1(1),,0 [FIND FIRST UNACCESSED PARAM WHICH 3NN2 ...[ STARTS WITH CORRECT CHARS 3P7L ... SMO 7 3PM= ... LDN 2 PARAM+1(1) 3Q6W ... SLC 2 2 3QLG ... SMO 7 3R66 ... ADX 2 PARAM(1) [POINT AT FIRST CHAR AFTER PARABEG 3RKQ ... SRC 2 2 3S5B ... MHUNT 3,CPB,CUNI 3SK2 ... LDX 6 ANUM(3) 3T4L ... BNG 6 NOTPRES [J IF PARAM NOT FOUND 3TJ= ... ANDN 6 #7777 3W3W ... BZE 6 PARNULL [J IF NULL 3WHG ... LDN 1 APARA(3) 3X36 ...TELOOP 3XGQ ... LDCH 0 0(1) 3Y2B ... LDCH 5 0(2) 3YG2 ... TXU 0 5 3Y^L ... BCS PARFORMERR [J IF PARAM CONTINUES INCORRECTLY 3^F= ... BCHX 1 £ 3^YW ... BCHX 2 £ 42DG ... BCT 6 TELOOP [J FOR NEXT CHAR 42Y6 ...PARNULL 43CQ ... LDX 1 FX1 43XB ... LDX 2 FX2 44C2 ... SMO 7 44WL ... LDX 0 PARASET(1) 45B= ... ANDX 0 AWORK3(2) 45TW ... BZE 0 ZCOMPAT [J UNLESS INCOMPATIBLE PARAM GIVEN 46*G ... ZERRORX JILLPAR 46T6 ...ZCOMPAT 47#Q ... SMO 7 47SB ... LDX 0 PARASET(1) 48#2 ... ORS 0 AWORK3(2) [RECORD TYPE OF PARAM 48RL ... ORS 0 AWORK1(2) [SET VALUE FOR EXEC 49?= ... SMO 7 49QW ... LDX 0 PARASWITCH(1) 4==G ... ERS 0 AWORK1(2) [INVERT BIT(S) FOR THIS PARAM 4=Q6 ...NOTPRES 4?9Q ... FREECORE 3 4?PB ... ADN 7 PARATABLEN [POINT AT NEXT PARAM 4#92 ... BRN TLOOP 4#NL ...ZENDPARS [PARAMS ANALYSED. NOW PERFORM COMM 4*8= ... PARUNACC [SEE IF ANY MORE PARAMS 4*MW ... MHUNT 3,CPB,CUNI 4B7G ... LDX 0 ANUM(3) 4BM6 ... BPZ 0 PARFORMERR [ANY MORE PARAMS MUST BE ERRORS 4C6Q ... FREECORE 3 4CLB ... LDX 4 AWORK2(2) [RECOVER LINE NUM 4D62 ... LDX 5 AWORK1(2) [COMMAND FOR EXEC 4DDC ... LDX 3 AWORK4(2) 4DQS ... LINECTRL 4,3 [TELL EXEC TO DO IT 4F5= ... STO 4 AWORK1(2) [STORE REPLY 4FJW ... JBC ZOK,2,NOTACC [J IF ACCEPTED 4G4G ... CALL 7 SOUTUNIT 4GJ6 ...[ ERROR IF LINE ALREADY DOING LC 4H3Q ...ZINPROG 4HHB ... ZERRORX JALREALC 4J32 ...[ 4JGL ...PARFORMERR 4K2= ... LDX 6 ATYPE(3) 4KFW ... ANDN 6 #7777 [PARAMETER NUMBER 4K^G ... FREECORE 3 4LF6 ... PARANOTX 6 4LYQ ... ZERRORX APFERR [PARAM FORMAT ERROR 4MDB ...WRONGENV 4MY2 ... COMERR JENVMUSTBE,JENVDME 4NCL ...ZBREAKIN 4NX= ... COMBRKIN 4P74 ...XCHER 4PBW ...PARSORTERR 4PWG ...ZOK 4QB6 ... ENDCOM 4QDP ...ZPRCON 4QH# ... CALL 7 SOUTUNIT 4QKX ... ZERRORX ALIPRCON 4QNG ...TOOLARGE 4QR5 ... ZERRORX ERANGE 4QTQ ...NOTMX 4R*B ... CALL 7 SOUTUNIT 4RT2 ... ZERRORX JUNITERR 4S#L ... ZERRORY 4SS= ...#END ^^^^ ...1020723700200000000