OctetView
0x00000…00080 UnusedSector ┆d d ░░░░░░░░ @ d d i S d ~ H H i S d Y O \ a B O O T E ┆
0x00080…00100 UnusedSector ┆ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░┆
0x00100…00180 UnusedSector ┆░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ┆
0x00180…001c0 DirEnt {filename=»«, kind=0x0600, de04=0x0000, de05=0x0000, de06=0x0000, de07=0x0000, cluster=0x0005, de09=0x0000, de0a=0x0000, de0b=0x0001, nsect=0x0004, de0d=0x0000, cluster2=0x0005, de0f=0x0009, de10=0xffff, de11=0xffff, de12=0xffff, de13=0xffff, de14=0xffff, de15=0xffff, de16=0xffff, de17=0xffff, de18=0xffff, de19=0x0000, de1a=0x0000, de1b=0x0000, de1c=0x0000, de1d=0x0000, de1e=0x0000, de1f=0x0000}
0x001c0…001e0 04 69 04 53 00 00 04 64 03 7e 04 48 04 48 04 69 04 53 00 00 04 64 00 00 00 00 03 59 04 4f 04 5c ┆ i S d ~ H H i S d Y O \┆
0x001e0…00200 00 01 04 61 00 00 00 01 00 04 00 20 00 00 00 01 00 49 00 4e 00 49 00 54 00 20 00 20 00 20 05 45 ┆ a I N I T E┆
0x00200…00280 UnusedSector ┆ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ┆
0x00280…00300 UnusedSector ┆ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░┆
0x00300…00380 UnusedSector ┆ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ┆
0x00380…00400 UnusedSector ┆ ┆
0x00400…00440 DirEnt {filename=»░░«, kind=0x0600, de04=0x0000, de05=0x0000, de06=0x0000, de07=0x0000, cluster=0x0005, de09=0x0000, de0a=0x0000, de0b=0x0001, nsect=0x0004, de0d=0x0000, cluster2=0x0005, de0f=0x0009, de10=0xffff, de11=0xffff, de12=0xffff, de13=0xffff, de14=0xffff, de15=0xffff, de16=0xffff, de17=0xffff, de18=0xffff, de19=0x0000, de1a=0x0000, de1b=0x0000, de1c=0x0000, de1d=0x0000, de1e=0x0000, de1f=0x0000}
0x00440…00480 DirEnt {filename=»░░S«, kind=0x0464, de04=0x037e, de05=0x0448, de06=0x0448, de07=0x0469, cluster=0x0453, de09=0x0000, de0a=0x0464, de0b=0x0000, nsect=0x0000, de0d=0x0359, cluster2=0x044f, de0f=0x045c, de10=0x0001, de11=0x0461, de12=0x0000, de13=0x0001, de14=0x0004, de15=0x0020, de16=0x0000, de17=0x0001, de18=0x0049, de19=0x004e, de1a=0x0049, de1b=0x0054, de1c=0x0020, de1d=0x0020, de1e=0x0020, de1f=0x0545}
0x00480…004c0 DirEnt {filename=»░░«, kind=0x0600, de04=0x0000, de05=0x0000, de06=0x0000, de07=0x0000, cluster=0x0005, de09=0x0000, de0a=0x0000, de0b=0x0001, nsect=0x0004, de0d=0x0000, cluster2=0x0005, de0f=0x0009, de10=0xffff, de11=0xffff, de12=0xffff, de13=0xffff, de14=0xffff, de15=0xffff, de16=0xffff, de17=0xffff, de18=0xffff, de19=0x0000, de1a=0x0000, de1b=0x0000, de1c=0x0000, de1d=0x0000, de1e=0x0000, de1f=0x0000}
0x004c0…00500 DirEnt {filename=»░░S«, kind=0x0464, de04=0x037e, de05=0x0448, de06=0x0448, de07=0x0469, cluster=0x0453, de09=0x0000, de0a=0x0464, de0b=0x0000, nsect=0x0000, de0d=0x0359, cluster2=0x044f, de0f=0x045c, de10=0x0001, de11=0x0461, de12=0x0000, de13=0x0001, de14=0x0004, de15=0x0020, de16=0x0000, de17=0x0001, de18=0x0049, de19=0x004e, de1a=0x0049, de1b=0x0054, de1c=0x0020, de1d=0x0020, de1e=0x0020, de1f=0x0545}
0x00500…00540 DirEnt {filename=»░░«, kind=0x0600, de04=0x0000, de05=0x0000, de06=0x0000, de07=0x0000, cluster=0x0005, de09=0x0000, de0a=0x0000, de0b=0x0001, nsect=0x0004, de0d=0x0000, cluster2=0x0005, de0f=0x0009, de10=0xffff, de11=0xffff, de12=0xffff, de13=0xffff, de14=0xffff, de15=0xffff, de16=0xffff, de17=0xffff, de18=0xffff, de19=0x0000, de1a=0x0000, de1b=0x0000, de1c=0x0000, de1d=0x0000, de1e=0x0000, de1f=0x0000}
0x00540…00580 DirEnt {filename=»░░S«, kind=0x0464, de04=0x037e, de05=0x0448, de06=0x0448, de07=0x0469, cluster=0x0453, de09=0x0000, de0a=0x0464, de0b=0x0000, nsect=0x0000, de0d=0x0359, cluster2=0x044f, de0f=0x045c, de10=0x0001, de11=0x0461, de12=0x0000, de13=0x0001, de14=0x0004, de15=0x0020, de16=0x0000, de17=0x0001, de18=0x0049, de19=0x004e, de1a=0x0049, de1b=0x0054, de1c=0x0020, de1d=0x0020, de1e=0x0020, de1f=0x0545}
0x00580…005c0 DirEnt {filename=»░░«, kind=0x0600, de04=0x0000, de05=0x0000, de06=0x0000, de07=0x0000, cluster=0x0005, de09=0x0000, de0a=0x0000, de0b=0x0001, nsect=0x0004, de0d=0x0000, cluster2=0x0005, de0f=0x0009, de10=0xffff, de11=0xffff, de12=0xffff, de13=0xffff, de14=0xffff, de15=0xffff, de16=0xffff, de17=0xffff, de18=0xffff, de19=0x0000, de1a=0x0000, de1b=0x0000, de1c=0x0000, de1d=0x0000, de1e=0x0000, de1f=0x0000}
0x005c0…00600 DirEnt {filename=»░░S«, kind=0x0464, de04=0x037e, de05=0x0448, de06=0x0448, de07=0x0469, cluster=0x0453, de09=0x0000, de0a=0x0464, de0b=0x0000, nsect=0x0000, de0d=0x0359, cluster2=0x044f, de0f=0x045c, de10=0x0001, de11=0x0461, de12=0x0000, de13=0x0001, de14=0x0004, de15=0x0020, de16=0x0000, de17=0x0001, de18=0x0049, de19=0x004e, de1a=0x0049, de1b=0x0054, de1c=0x0020, de1d=0x0020, de1e=0x0020, de1f=0x0545}
0x00600…00640 DirEnt {filename=»░░«, kind=0x0600, de04=0x0000, de05=0x0000, de06=0x0000, de07=0x0000, cluster=0x0005, de09=0x0000, de0a=0x0000, de0b=0x0001, nsect=0x0004, de0d=0x0000, cluster2=0x0005, de0f=0x0009, de10=0xffff, de11=0xffff, de12=0xffff, de13=0xffff, de14=0xffff, de15=0xffff, de16=0xffff, de17=0xffff, de18=0xffff, de19=0x0000, de1a=0x0000, de1b=0x0000, de1c=0x0000, de1d=0x0000, de1e=0x0000, de1f=0x0000}
0x00640…00680 DirEnt {filename=»BOOT«, kind=0x0000, de04=0x0000, de05=0x0000, de06=0x0000, de07=0x0000, cluster=0x0064, de09=0x0000, de0a=0x0000, de0b=0x0001, nsect=0x0210, de0d=0x0000, cluster2=0x0064, de0f=0x000e, de10=0x040a, de11=0x0806, de12=0x0c02, de13=0x0f18, de14=0x1314, de15=0xffff, de16=0xffff, de17=0xffff, de18=0xffff, de19=0x0000, de1a=0x0000, de1b=0x0000, de1c=0x0029, de1d=0x0000, de1e=0x0000, de1f=0x0000}
0x00680…00700 DataSector[»BOOT«]
[…0x210…]
0x10f00…10f80 UnusedSector ┆ KEPT " R5; "ADDRESS OF FIRST CB ADDRESS OF FOUND CB " R4) "LINK ┆
0x10f80…11000 UnusedSector ┆" SPECIFICATIONS: X " AUTHOR/DATE: OH/810617 " " DELIVERABLE: YES " SOURCE LANGUAGE: SWELL ┆
[…0x1…]
0x11080…11100 UnusedSector ┆------------------------------------ " " CHANGE RECORD " " VERSION AUTHOR/DATE DESCRIPTION OF CHANGE " ------- ------┆
0x11100…11180 UnusedSector ┆ R6=> R5; GOTO RETURN; "LAST CB FOUND" END; R6@TERMCB.NETERMADDR=> R6; R0+1; UNTIL R┆
0x11180…11200 UnusedSector ┆0=MAXTERMS; "ERROR, LAST CB NOT FOUND" RETURN: SV21=> R6; SV1=> R1; SV27=> R0; E┆
0x11200…11280 UnusedSector ┆XIT(R4); END "FINDLCB"; "***********************************************************************" PROCEDURE CHECK_CB1 "THIS P┆
0x11280…11300 UnusedSector ┆ROCEDURE CHECKS ALL CONTROL BLOCKS FOR ONE SPECIFIED CB WITH A " "MEMBER SPECIFIED BY THE CONTENTS OF R5. ┆
0x11300…11380 UnusedSector ┆ " (R3; "POSITION NUMBER KEPT " R5; "CB IDENT ┆
0x11380…11400 UnusedSector ┆ ADDRESS OF FOUND CB " R4) "LINK DEST " :ERROR_DONE; ┆
0x11400…11480 UnusedSector ┆ "0= NOT FOUND " "1= FOUND ┆
0x11480…11500 UnusedSector ┆ " LABEL RETURN; BEGIN R0=> SV27; R2=> SV26; ADDRESS(CBAR)=> R0; MAXTERMS=> R2; R0+R3; REPEAT ┆
0x11500…11580 UnusedSector ┆ IF R0@INTEGER= R5 THEN BEGIN R0-R3=> R5; R4+1; GOTO RETURN; "CB FOUND" END; ┆
0x11580…11600 UnusedSector ┆R0+SIZE(TERMCB); R2-1; UNTIL R2=0; "ERROR, CB NOT FOUND" RETURN: SV26=> R2; SV┆
0x11600…11680 UnusedSector ┆27=> R0; EXIT(R4); END "CHECK_CB1"; "-----------------------------------------------------------------------" " ┆
0x11680…11700 UnusedSector ┆ " " PROCEDURES USED BY THE IFCOROUTINE ┆
0x11700…11780 UnusedSector ┆ " " " "-----------------------------------------------┆
0x11780…11800 UnusedSector ┆------------------------" EXPORT PROCEDURE LTUASSIGN "THIS PROCEDURE CHECKS WHETHER THE LTU ALREADY IS ASSIGNED AND OK. "┆
0x11800…11880 UnusedSector ┆ "IF OK AND NOT ASSIGNED, IT SETS THE LTU CONTROL BLOCK STATE TO ASSIGNED" (R1; "-- COMPLET┆
0x11880…11900 UnusedSector ┆ION CODE " R4) "LINK DEST " :ERROR_DONE; ┆
0x11900…11980 UnusedSector ┆ "0= ERROR " "1= OK ┆
0x11980…11a00 UnusedSector ┆ DEST " :0..1;"0= FOUND " ┆
0x11a00…11a80 UnusedSector ┆ "1= NOT FOUND " LABEL RETURN; BEGIN R6=> SV27; R5=>R6; REPEAT┆
0x11a80…11b00 UnusedSector ┆ R6+R1; IF R6@INTEGER=R2 THEN BEGIN R6-R1=> R5; GOTO RETURN; "CB FOUND" END; ┆
0x11b00…11b80 UnusedSector ┆ R6-R1; R6@TERMCB.NETERMADDR => R6; UNTIL R6=R5; R4+1; RETURN: SV27=> R6; EXIT(R4); END "FINDIDCB"; "************┆
0x11b80…11c00 UnusedSector ┆***********************************************************" PROCEDURE FINDLCB "THIS PROCEDURE SEARCHES THE CHAIN OF CONTROL B┆
0x11c00…11c80 UnusedSector ┆LOCKS FOR THE LAST CB " (R5; "ADDRESS OF FIRST CB ADDRESS OF LAST CB" R4) "LINK ┆
0x11c80…11d00 UnusedSector ┆ DEST " :ERROR_DONE; "0= FAULT ┆
0x11d00…11d80 UnusedSector ┆ " "1= DONE " LABEL RETURN; VAR SV1:INTEGER; BEGIN R1=> ┆
0x11d80…11e00 UnusedSector ┆SV1; R6=> SV21; R0=> SV27; 1=> R0; R5=> R6; REPEAT IF R6@TERMCB.NETERMADDR=> R1 = R5 THEN BEGIN R4+1; ┆
0x11e00…11e80 UnusedSector ┆ BEGIN LTNAS=> R1; EXIT(R4,ERR); END; IF R5@LTUCB.NOLINAS <>0 THEN BEGIN LISAS=> R1; ┆
0x11e80…11f00 UnusedSector ┆ "AT LEAST ONE LINE ON THE LTU" EXIT(R4,ERR); "IS STILL ASSIGNED" END; 0=> R1=> R5@LTUCB.STATE; ┆
0x11f00…11f80 UnusedSector ┆ "STATE= 0, LTU DEASSIGNED" NOP; R4=> R5; RELS_INTRPT(R4); R5=> R4; SV25=> R5; EXIT(R4,DONE); ┆
0x11f80…12000 UnusedSector ┆ "LTU IS DEASSIGNED" END "LTUDEASSIGN"; "COMPLETION CODE:" "R1=14 LTU WAS NOT ASSIGN┆
0x12000…12080 UnusedSector ┆ED" "R1=20 ONE LINE IS STILL ASSIGNED" "******************************************************┆
0x12080…12100 UnusedSector ┆*****************" EXPORT PROCEDURE LINASSIGN "THIS PROCEDURECHECKS WHETHER THE LTU IS OK AND IF THE LINE ALREADY IS " "ASSIGN┆
0x12100…12180 UnusedSector ┆ED. IF THE LTU IS OK AND THE LINE IS NOT ASSIGNED, THE LINE CON-" "TROL BLOCK STATE IS CHANGED TO ASSIGNED, AND THE LINE ATTRIBU┆
0x12180…12200 UnusedSector ┆TES ARE " "READ INTO THE CONTROL BLOCK. " (R1; "-- ┆
0x12200…12280 UnusedSector ┆ COMPLETION CODE " R4) "LINK DEST " :ERROR_DONE; ┆
0x12280…12300 UnusedSector ┆ "0= ERROR " "1= OK ┆
0x12300…12380 UnusedSector ┆ " BEGIN R2=> SV22; R5=> SV25; R6=> SV26; ADDRESS(ASGD)=> R6; R6@LINE_ASGN_DESC.ASGNLTLINO=> R5; LINT┆
0x12380…12400 UnusedSector ┆ " BEGIN R2=> SV22; R5=> SV25; ADDRESS(LTU_CB)=> R5; IF R5@LTUCB.STATUS <>0 THEN BEGIN LTUER=> R1; ┆
0x12400…12480 UnusedSector ┆ "LTU ERROR, STATUS=1" EXIT(R4,ERR); END; IF R5@LTUCB.STATE <>0 THEN BEGIN LTUAS=> R1; ┆
0x12480…12500 UnusedSector ┆ "LTU WAS ALREADY ASSIGNED" EXIT(R4,ERR); END; 1=> R1=> R5@LTUCB.STATE; "STATE=1, ASSIGNED" 0=>┆
0x12500…12580 UnusedSector ┆ R1=> R5@LTUCB.STATUS; "STATUS=0, OK" "LTU GETS ASSIGN DESC:" SIZE(LTU_ASG┆
0x12580…12600 UnusedSector ┆N_DESC)=> R2; ADDRESS(ASGD)=> R1; "START ADDRESS TO ASSIGN DESC" REPEAT R1+1; R2-1; R1@INTEGE┆
0x12600…12680 UnusedSector ┆R=> R5@INTEGER; R5+1; UNTIL R2=1; ADDRESS(LTU_CB)=> R5; R5@LTUCB.DEVADDR=>R2=> LTU_ADDR_PRIO; R2 SHIFTRL 2 => R5@LT┆
0x12680…12700 UnusedSector ┆UCB.DEVADDR; R2=> LTU_ADDR; NOP; R4=> R2; SWITCH RESV_INTRPT(R4) TO ERR: BEGIN INTRERR=> R1; ┆
0x12700…12780 UnusedSector ┆ "INTERRUPT NOT RESERVED" EXIT(R2=> R4,ERR); END; DONE: NOP; END "SWITCH RESV_INTRPT"; R┆
0x12780…12800 UnusedSector ┆2=> R4; NOP; SV22=> R2; SV25=> R5; SV26=> R6; EXIT(R4,DONE); END "LTUASSIGN"; "COMPLETION CODE:" "R1┆
0x12800…12880 UnusedSector ┆=12 ERROR IN LTU, STATUS=1 " "R1=13 LTU ALREADY ASSIGNED " ┆
0x12880…12900 UnusedSector ┆ "***********************************************************************" EXPORT PROCEDURE LTUDEASSIGN "THIS PROCEDURE DEASSI┆
0x12900…12980 UnusedSector ┆GNES THE LTU IF IT WAS ASSIGNED. IF JUST ONE LINE" "STILL IS ASSIGNED THE LTU CANNOT BE DEASSIGNED. " ┆
0x12980…12a00 UnusedSector ┆ (R1; "-- COMPLETION CODE " R4) "LINK DEST ┆
0x12a00…12a80 UnusedSector ┆ " :ERROR_DONE; "0= ERROR " "1= ┆
0x12a80…12b00 UnusedSector ┆OK " BEGIN R5=> SV25; ADDRESS(LTU_CB)=> R5; IF R5@LTUCB.STATE =0 THEN┆
0x12b00…12b80 UnusedSector ┆EDURE CONCREATE "THIS PROCEDURE CHECKS WHETHER THE SPECIFIED CONNECTION ALREADY IS " "CREATED. IF NOT AND IF THE LTU IS OK┆
0x12b80…12c00 UnusedSector ┆, IT CREATES A TERMINAL CONTROL " "BLOCK AND RETURNS A CON_ID. " (R1; "--┆
0x12c00…12c80 UnusedSector ┆ COMPLETION CODE " R6; "-- CON_ID ┆
0x12c80…12d00 UnusedSector ┆ " R4) "LINK DEST " :0..2;"0= ERROR ┆
0x12d00…12d80 UnusedSector ┆ " "1= OK " "2= TERM ALREADY┆
0x12d80…12e00 UnusedSector ┆B[R5]=> R5=> LINPTR; "ADDRESS TO LINCB INTO R5" IF R5@LINCB.STATUS=> R2=1 THEN BEGIN LTUER=> R1; EXIT(R┆
0x12e00…12e80 UnusedSector ┆4,ERR); "ERROR IN LTU, STATUS=1" END; ADDRESS(LTU_CB)=> R5; IF R5@LTUCB.STATE => R1 <> 1 THEN BEGI┆
0x12e80…12f00 UnusedSector ┆N LTNAS => R1; "LTU IS NOT ASSIGNED" EXIT(R4,ERR); END; LINPTR => R5; IF R5@LINCB.STATE=> R2┆
0x12f00…12f80 UnusedSector ┆ =1 THEN BEGIN LINAS=> R1; "LINE ALREADY ASSIGNED" EXIT(R4,ERR); END; ┆
0x12f80…13000 UnusedSector ┆ "LINE GETS ASSIGN DESCRIPTION:" SIZE(LINE_ASGN_DESC)=> R2; ADDRESS(ASGD)=>R1; "START AD┆
0x13000…13080 UnusedSector ┆DRESS TO ASSIGN LINE" "DESCRIPTION" REPEAT R1+1; R2-1; R1@INTEGER=> R5@INT┆
0x13080…13100 UnusedSector ┆EGER; R5+1; UNTIL R2=1; ADDRESS(LTU_CB)=> R6; INC(R6@LTUCB.NOLINAS); LINPTR=> R5; R6=> R5@LINCB.LTUCBADDR; 1=> ┆
0x13100…13180 UnusedSector ┆R2=> R5@LINCB.STATE; R5@LINCB.LTLINO=> R6; NOP; SV22=> R2; SV25=> R5; SV26=> R6; EXIT(R4,DONE); END "LINASSIGN"; "C┆
0x13180…13200 UnusedSector ┆OMPLETION CODE:" "R1=12 ERROR IN LTU, STATUS=1" "R1=21 LINE AL┆
0x13200…13280 UnusedSector ┆READY ASSIGNED" "***********************************************************************" EXPORT PROCEDURE LINDEASSIGN "THIS ┆
0x13280…13300 UnusedSector ┆PROCEDURE SETS THE LINE CONTROL BLOCK STATE TO DEASSIGNED,AND DE-" "CREMENTS THE LTUCB, NUMBER OF LINES ASSIGNED. ┆
0x13300…13380 UnusedSector ┆ " (R1; "-- COMPLETION CODE " R2; "LTU LINE NUMBER ┆
0x13380…13400 UnusedSector ┆ KEPT " R4) "LINK DEST " :ERROR_DONE; ┆
0x13400…13480 UnusedSector ┆ "0= ERROR " "1= OK ┆
0x13480…13500 UnusedSector ┆ " BEGIN R5=> SV25; R6=> SV26; R2=> R6; LINTB[R6]=> R5; "ADDRESS TO LINCB INTO R5┆
0x13500…13580 UnusedSector ┆" IF R5@LINCB.STATE =0 THEN BEGIN LNOAS=> R1; EXIT(R4,ERR); "LINE WAS NOT ASSIGNED" END; I┆
0x13580…13600 UnusedSector ┆F R5@LINCB.FITERADDR <> 0 THEN BEGIN TERAS=> R1; EXIT(R4,ERR); "AT LEAST ONE CREATED TERMINAL" ┆
0x13600…13680 UnusedSector ┆ END; "CONTROL BLOCK ON THIS LINE" 0=> R6=> R5@LINCB.STATE; "LINCB IS DEASSIGNED┆
0x13680…13700 UnusedSector ┆, STATE=0" ADDRESS(LTU_CB)=> R5; DEC(R5@LTUCB.NOLINAS); NOP; SV25=> R5; SV26=> R6; EXIT(R4,DONE); END "LINDEASSIGN";┆
0x13700…13780 UnusedSector ┆ "COMPLETION CODE:" "R1= 22 LINE WAS NOT ASSIGNED " "R1= 28 ┆
0x13780…13800 UnusedSector ┆ AT LEAST ONE TERMCB ON THIS LINE" "***********************************************************************" EXPORT PROC┆
0x13800…13880 UnusedSector ┆RESS(CRTT)=> R6; R6@CON_CR_ATT.CRLTLINO=> R4; "LTU LINE NUMBER INTO R2" LINTB[R4]=> R5=> LINPTR; IF R5@LINCB.STAT┆
0x13880…13900 UnusedSector ┆E =0 THEN BEGIN LNOAS=> R1; "LINE IS NOT ASSIGNED" EXIT(SV24); END; IF R5@LINCB.STATUS=> R┆
0x13900…13980 UnusedSector ┆1=1 THEN BEGIN LTUER=> R1; EXIT(SV24); "ERROR IN LTU, STATUS=1" END; IF R5@LINCB.FITERADDR┆
0x13980…13a00 UnusedSector ┆=> R5 <>0 THEN BEGIN 2=> R1; "AT LEAST ONE CONNECTION ON THAT" ┆
0x13a00…13a80 UnusedSector ┆ "LINE IS CREATED" R6@CON_CR_ATT.CRADDR=> R2; SWITCH FINDIDCB(R1,R2,R5,R4) TO 0: BEGIN ┆
0x13a80…13b00 UnusedSector ┆ "CONNECTION ALREADY CREATED" R5@TERMCB.CONID=> R6; "CON_ID=> R6" INC(R5@TERMCB.FIOPNO);┆
0x13b00…13b80 UnusedSector ┆ "NUMBER OF FILES OPEN+1" SV22=> R2; EXIT(SV24=> R4+2); END; 1: NOP; ┆
0x13b80…13c00 UnusedSector ┆ "CONNECTION NOT CREATED" END; END; STATENO=> R3; 0=> R5; SWITCH CHECK_CB1(R3,R5,R4) TO ERR: BEGIN ┆
0x13c00…13c80 UnusedSector ┆ NOCBF=> R1; EXIT(SV24); "NO FREE CB FOUND" END; DONE: NOP; "F┆
0x13c80…13d00 UnusedSector ┆REE CB FOUND, ADDR IN R5" END; R5=> CONPTR; "CON GETS CREATE ATTRIBUTES:" SIZE(CON_CR_ATT)=> R2;┆
0x13d00…13d80 UnusedSector ┆ ADDRESS(CRTT)=> R1; REPEAT R1+1; R5+1; R2-1; R1@INTEGER=> R5@INTEGER; UNTIL R2=1; 1=> (R5+1)@INTEGER; ┆
0x13d80…13e00 UnusedSector ┆ "NO OF FILES OPEN=1" LINPTR=> R6; CONPTR=> R5; IF R6@LINCB.FITERADDR=> R4=0 THEN BEGIN ┆
0x13e00…13e80 UnusedSector ┆ "FIRST TERM ADDR IN LINCB IS 0" R5=> R6@LINCB.FITERADDR; "ADDR TO FIRST TERMCB INTO LINCB" R┆
0x13e80…13f00 UnusedSector ┆5=> R5@TERMCB.NETERMADDR; "ADDR TO NEXT CB INTO CURRENT CB" END ELSE BEGIN R4=> R5; ┆
0x13f00…13f80 UnusedSector ┆ "FIRST TERMINAL ADDRESS=> R5" SWITCH FINDLCB(R5,R4) TO ERR: BEGIN CBCER=> R1; EXIT(SV24)┆
0x13f80…14000 UnusedSector ┆; "ERROR, LAST CB NOT FOUND" END; DONE: NOP; "OK, CB FOUND" END; ┆
0x14000…14080 UnusedSector ┆ CONPTR=> R6; R5@TERMCB.NETERMADDR=> R4=> R6@TERMCB.NETERMADDR; R6=> R5@TERMCB.NETERMADDR; "NEW CB INTO CHAIN"┆
0x14080…14100 UnusedSector ┆ END; LINPTR=> R7; CONPTR=> R6; R7@LINCB.PROT=> R4; "LINCB PROTOCOL=> R4" SEMAR[R4]=> R2=> R6@TERMCB┆
0x14100…14180 UnusedSector ┆.PROSEMADDR;"PROTOCOL SEMAPHORE ADDR INTO CB" R7=> R6@TERMCB.LINCBADDR; "LINCB ADDR INTO TERMCB" 1=> R4=> R6@TER┆
0x14180…14200 UnusedSector ┆MCB.STATE; "STATE=1, CREATED" R4=> R6@TERMCB.FIOPNO; "NO OF LINES OPEN =1" WHILE TERMTB[R4] <>0 ┆
0x14200…14280 UnusedSector ┆DO R4+1; R4=> R6@TERMCB.CONID; "CON_ID INTO CB" R6=> TERMTB[R4]; "ADDRESS TO TERMCB INT┆
0x14280…14300 UnusedSector ┆O TERMTB" XFER_ADDR[R4] => R2=> R6@TERMCB.XFERBUF; R4=> R6; "CON_ID=R4=> R6" NOP; SV22=> R┆
0x14300…14380 UnusedSector ┆2; SV25=> R5; SV7=> R7; EXIT(SV24=> R4+1); END "CONCREATE"; "COMPLETION CODE:" "R1=11 NO┆
0x14380…14400 UnusedSector ┆ FREE CB FOUND " "R1=12 ERROR IN LTU, STATUS=1 " "R1=1┆
0x14400…14480 UnusedSector ┆9 ERROR IN CB CHAIN " "R1=22 LINE IS NOT ASSIGNED " "┆
0x14480…14500 UnusedSector ┆ CREATED " VAR SV7:INTEGER; BEGIN R2=> SV22; R4=> SV24; R5=> SV25; R7=> SV7; ADD┆
0x14500…14580 UnusedSector ┆ TNOCR=> R1; EXIT(SV24); "TERMCB WAS NOT CREATED" END; DEC(R6@TERMCB.FIOPNO); "NO┆
0x14580…14600 UnusedSector ┆ OF FILES OPEN-1" IF R6@TERMCB.FIOPNO <> 0 THEN BEGIN EXIT(SV24=> R4+2); "MORE THAN ONE FILE WAS OPEN" ┆
0x14600…14680 UnusedSector ┆ END; 0=> R2=> TERMTB[R4]; "0 INTO TERMTABLE" R2=> R6@TERMCB.STATE; "CON STATE=0,DISMANTLE┆
0x14680…14700 UnusedSector ┆D" R6@TERMCB.LINCBADDR=> R4; R4@LINCB.FITERADDR=> R1; "FIRST TERM ADDR INTO R1" IF R1=CONPTR=> R6 THEN ┆
0x14700…14780 UnusedSector ┆ "FIRST TERM ADDRESS IN LINCB" BEGIN "IS THE DISMANTLED TERMCB" IF R6@TERMCB.NETER┆
0x14780…14800 UnusedSector ┆MADDR=> R1=R6 THEN"ONLY ONE TERM ON THIS LINE" BEGIN R2=> R4@LINCB.FITERADDR; "FIRST TERM ADDR IN LINCB=0" ┆
0x14800…14880 UnusedSector ┆ GOTO CONDISMOK; END; R6@TERMCB.NETERMADDR=> R2=> R4@LINCB.FITERADDR; "NEXT T┆
0x14880…14900 UnusedSector ┆ERM ADDR INTO FIRST TERM" END; "ADDR IN LINCB" R6=> R5=> R2; NCBADNO=> R1; SWITCH FINDI┆
0x14900…14980 UnusedSector ┆DCB(R1,R2,R5,R4) TO 1: BEGIN CBCER=> R1; EXIT(SV24); "ERROR IN CB CHAIN" END; ┆
0x14980…14a00 UnusedSector ┆0: NOP; "CB FOUND" END; R6@TERMCB.NETERMADDR=> R2=> R5@TERMCB.NETERMADDR; ┆
0x14a00…14a80 UnusedSector ┆ "CB IS DISMANTLED AND REMOVED" "FROM CHAIN" CONDISMOK: NOP; SV2┆
0x14a80…14b00 UnusedSector ┆2=> R2; SV25=> R5; SV6=> R6; EXIT(SV24=> R4+1); END "CONDISMANTLE"; "COMPLETION CODE:" "R1=19 ┆
0x14b00…14b80 UnusedSector ┆ ERROR IN CB CHAIN " "R1=32 TERMINAL WAS NOT CREATED " "************┆
0x14b80…14c00 UnusedSector ┆***********************************************************" EXPORT PROCEDURE CREATEBOOT "THIS PROCEDURE CHECKS WHETHER THE LT┆
0x14c00…14c80 UnusedSector ┆U IS ASSIGNED, AND THAT NO LINES " "ARE ASSIGNED. THE RETURN IS A BOOT FILE ID. " (R1; "--┆
0x14c80…14d00 UnusedSector ┆ COMPLETION CODE " R6; "-- BOOT FILE ID ┆
0x14d00…14d80 UnusedSector ┆ " R4) "LINK DEST " :ERROR_DONE; "0= ERROR ┆
0x14d80…14e00 UnusedSector ┆ " "1= OK " BEGIN R┆
0x14e00…14e80 UnusedSector ┆5=> SV25; ADDRESS(LTU_CB)=> R5; IF R5@LTUCB.STATE = 0 THEN BEGIN LTNAS=> R1; EXIT(R4,ERR); "┆
0x14e80…14f00 UnusedSector ┆***********************************************************************" EXPORT PROCEDURE CONDISMANTLE "THIS PROCEDURE REMOVES┆
0x14f00…14f80 UnusedSector ┆ THE CONTROL BLOCK FOR THE SPECIFIED CONNECTION " "FROM THE CHAIN OF CB`S. " ┆
0x14f80…15000 UnusedSector ┆ (R1; "-- COMPLETION CODE " R2; "CON_ID KEPT ┆
0x15000…15080 UnusedSector ┆ " R4) "LINK DEST " :0..2;"0= ERROR ┆
0x15080…15100 UnusedSector ┆ " "1= OK " "2=┆
0x15100…15180 UnusedSector ┆ TERM STILL CREATED, COUNT-1 " LABEL CONDISMOK; VAR SV6:INTEGER; BEGIN R2=> SV22; R4=> SV24;┆
0x15180…15200 UnusedSector ┆ R5=> SV25; R6=> SV6; R2=> R4; TERMTB[R4]=> R6=> CONPTR; "POINTER TO TERMCB=> R6" IF R6=0 THEN BEGIN ┆
0x15200…15280 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
[…0x6…]
0x15580…15600 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x15600…15680 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
[…0x2…]
0x15780…15800 UnusedSector ┆ BFD M ░ H ░░ | ░ ░ ░ ░ ░ ░BM ░ ░ ░ ░ ░ LT ░GRAF ░ ░ ░ ░ ┆
0x15800…15880 UnusedSector ┆ ░U_DR ░ER ░ ░ ░ ░LTU_ ░.SS ░ ░ ░ ░ CB ░ROC. ░ ░ ░ ░ ░ ░ ░ ░ ░ ┆
0x15880…15900 UnusedSector ┆THE LTU IS NOT ASSIGNED" END ELSE BEGIN IF R5@LTUCB.NOLINAS <>0 THEN BEGIN LISAS=> R1; EXIT(R4,ERR); ┆
0x15900…15980 UnusedSector ┆ "AT LEAST ONE LINE IS ASSIGNED" END ELSE BEGIN ADDRESS(CRTT)=> R6; R6@CON_CR_ATT.CRLT┆
0x15980…15a00 UnusedSector ┆LINO=> R5; NCB=> R6-R5; "NCB-LTU LINE NO=BOOT ID=>R6" LINTB[R5]=> R1=> LINTB[R6]; 1=> R1@┆
0x15a00…15a80 UnusedSector ┆INTEGER; "PROTOCOL INDEX=1" SV25=> R5; EXIT(R4,DONE); END; END; END "CREATEBOOT"; "COMPLETI┆
0x15a80…15b00 UnusedSector ┆ON CODE:" "R1=14 LTU NOT ASSIGNED " "R1=21 AT L┆
0x15b00…15b80 UnusedSector ┆EAST ONE LINE IS ASSIGNED " "***********************************************************************" ENDMODULE Z Z Z Z Z Z ┆
0x15b80…15c00 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
[…0x6…]
0x15f00…15f80 UnusedSector ┆ " "2= MORE " IMPORT┆
0x15f80…16000 UnusedSector ┆ PROCEDURE GETBYTE "THIS PROCEDURE CHECKS THAT THE CURRENT XFER LIST ELEMENT CONTAINS A " "REFERENCE TO AN OUTPUT BUFFER. IF┆
0x16000…16080 UnusedSector ┆ NOT RETURN IS MADE TO NONE. IF THE " "BUFFER IS EMPTY, THE NEXT XFER ELEMENT IS FETCHED. THE XFER LIST " "ELEMENT IS PR┆
0x16080…16100 UnusedSector ┆OCESSED AS THE PREVIOUS. IF THE BUFFER IS NON EMPTY, THE " "NEXT BYTE IS DELIVERED AND RETURN IS MADE TO MORE. ┆
0x16100…16180 UnusedSector ┆ " (R3; "-- BYTE " R4) "LINK DE┆
0x16180…16200 UnusedSector ┆ST " :ERROR_DONE; "0= NONE " ┆
0x16200…16280 UnusedSector ┆ "1= MORE " IMPORT PROCEDURE GETWORD "SIMILAR TO GET BYTE, EXCEPT THE NE┆
0x16280…16300 UnusedSector ┆ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░┆
0x16300…16380 UnusedSector ┆ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░░░ ┆
0x16380…16400 UnusedSector ┆SUBMODULE DRIVER_PROCEDURES; " " PROJECT: X " " MODULE NAME: DRIVER PROCEDURES " MODULE ID NMB: ┆
0x16400…16480 UnusedSector ┆ 0010 " MODULE VERSION: 0001 " MODULE TYPE: SUBMODULE " MODULE FILES: X " MERGE FILES: ┆
0x16480…16500 UnusedSector ┆ LTU_DRIV_PREFX.C " @**GENS.D*SWELLPREFIX.D*GENERALPARAMS.S " ┆
0x16500…16580 UnusedSector ┆ *MONITORNAMES.S " *COMONPARAMS.S " ┆
0x16580…16600 UnusedSector ┆ *DRIVERPARAMS.S " " SPECIFICATIONS: X " AUTHOR/DATE: OH 81:06:17 " " DELIVERABLE: YES " SOU┆
0x16600…16680 UnusedSector ┆RCE LANGUAGE: SWELL " COMPILE COMPUTER: CR80 " TARGET COMPUTER: CR80 " OPERATING SYSTEM: AMOS " "------┆
0x16680…16700 UnusedSector ┆-------------------------------------------------------------- " " CHANGE RECORD " " VERSION AUTHOR/DATE DESCRIPTION OF C┆
0x16700…16780 UnusedSector ┆HANGE " ------- ----------- --------------------- " "-------------------------------------------------------------------- ┆
0x16780…16800 UnusedSector ┆" %SOURCE @**GENS.D*SWELLPREFIX.D*GENERALPARAMS.S %SOURCE @**GENS.D*SWELLPREFIX.D*MONITORNAMES.S %SOURCE @**GENS.D*SWELLPREFIX┆
0x16800…16880 UnusedSector ┆.D*COMONPARAMS.S %SOURCE @**GENS.D*SWELLPREFIX.D*DRIVERPARAMS.S %SOURCE LTU_DRIV_PREFX.C %PRINT IMPORT PROCEDURE NEXT_XFER_EL┆
0x16880…16900 UnusedSector ┆EM "THE NEXT XFER ELEMENT IF ANY IS FETCHED INTO CXFER. " (R4) "LINK DEST┆
0x16900…16980 UnusedSector ┆ " :ERROR_DONE; "0= NONE " ┆
0x16980…16a00 UnusedSector ┆ "1= OK " IMPORT PROCEDURE PUTBYTE "THIS PROCEDURE CHECKS THAT THE CUR┆
0x16a00…16a80 UnusedSector ┆RENT XFER LIST ELEMENT CONTAINS A " "REFERENCE TO A NON EMPTY INPUT BUFFER. IF NOT, RETURN IS MADE TO ERROR." "PUTS THE BYTE ┆
0x16a80…16b00 UnusedSector ┆AT THE NEXT BYTE POSITION IN THE INPUT BUFFER. IF NOT " "ROOM FOR ANY MORE BYTES, RETURN IS MADE TO LAST. ┆
0x16b00…16b80 UnusedSector ┆ " (R3; "BYTE KEPT " R4) "LINK DES┆
0x16b80…16c00 UnusedSector ┆T " :0..2;"0= ERROR " "1= LAST ┆
0x16c00…16c80 UnusedSector ┆_ELEM; LINTB:LINETABLE; TERMTB:TERMTABLE; BK_BUF:BREAK_BUF; SEM_OPIF:SEMAPHORE; UNKNOWN, BUSY, FROM:BREAK_ANSWER; ┆
0x16c80…16d00 UnusedSector ┆XT WORD IF ANY IS FETCHED " (R3; "-- WORD " R4) "┆
0x16d00…16d80 UnusedSector ┆LINK DEST " :ERROR_DONE; "0= NONE ┆
0x16d80…16e00 UnusedSector ┆ " "1= OK " IMPORT PROCEDURE PUTWORD "┆
0x16e00…16e80 UnusedSector ┆SIMILAR TO PUTBYTE, EXCEPT A WORD IS PUT INTO BUFFER " (R3; "WORD KEPT ┆
0x16e80…16f00 UnusedSector ┆ " R4) "LINK DEST " :0..2;"0= ERROR ┆
0x16f00…16f80 UnusedSector ┆ " "1= LAST " "2┆
0x16f80…17000 UnusedSector ┆= MORE " IMPORT PROCEDURE PROCESS_BREAK "THIS PROCEDURE RECIEVES THE BREAK C┆
0x17000…17080 UnusedSector ┆OMMAND FROM A TERMINAL. IF THE LINE " "IS IDLE A (TO:) IS WRITTEN TO THE TERMINAL, IF THE LINE IS BUSY THE " "CURRENT COMMAND┆
0x17080…17100 UnusedSector ┆ IS SAVED BEFORE THE WRITING TO THE TERMINAL. " (R7; "REF(LINCB) KEPT ┆
0x17100…17180 UnusedSector ┆ " R4); "LINK DEST " " IMPORT PROCEDURE DEQUEUE_OPERATION " "THIS PRO┆
0x17180…17200 UnusedSector ┆CEDURE DEQUEUES THE TRANSFER QUEUE. IF ANY QUEUED OPERATION " "THE FIRST OPERATION IS WRITTEN INTO THE LINCB AND THE STATE IS┆
0x17200…17280 UnusedSector ┆ SET " "ACCORDING TO THR OPERATION. " " (R0; "OPERATION PCB INDEX ┆
0x17280…17300 UnusedSector ┆ KEPT " R7; "REF(LINCB) KEPT " R6) "LINK ┆
0x17300…17380 UnusedSector ┆ DEST " :ERROR_DONE; "0= NOT FOUND ┆
0x17380…17400 UnusedSector ┆ " "1= FOUND " " IMPORT PROCEDURE FIND_INT_OP" "┆
0x17400…17480 UnusedSector ┆THIS PROCEDURE CHEARCHES THE INTERNAL OPERATION BUFFER FOR AN EMPTY " "OPERATION. WHEN FOUND IT DELIVERES A REFERENCE TO THIS┆
0x17480…17500 UnusedSector ┆ OPERATION AS " "AN OUTPUT PARAMETER. " " (R6; "-- ┆
0x17500…17580 UnusedSector ┆ REF TO INT OP " R4) "LINK DEST " :ERROR┆
0x17580…17600 UnusedSector ┆_DONE;" "0= NOT FOUND " "1= FOUND ┆
0x17600…17680 UnusedSector ┆ " IMPORT PROCEDURE GENERATE_ANSWER_OPERATION "THIS PROCEDURE GENERATES AN ANSWER TO THE APPLICATION ┆
0x17680…17700 UnusedSector ┆AND SENDS IT TO " "THE ANSWER COROUTINE WHICH RETURNS THE ANSWER TO THRXE APPLICATION. " (R0; "COMPLETION CODE ┆
0x17700…17780 UnusedSector ┆ DEST " R1; "RESULT DEST " R2; "┆
0x17780…17800 UnusedSector ┆BYTECOUNT KEPT " R4; "OPERATION ADDRESS KEPT ┆
0x17800…17880 UnusedSector ┆ " R6); "LINK DEST " IMPORT VAR LTU_COM:LTU_COM_TABLE; I_F_ADDR┆
0x17880…17900 UnusedSector ┆:I_F_TAB_ADDR; I_F_TAB:I_F_TABLE; LTU_CB:LTUCB; MONVAR:COMON_VAR; LTU_ADDR:INTEGER; LTU_ADDR_PRIO:INTEGER; CFER:XFER┆
0x17900…17980 UnusedSector ┆ KEPT " R5; "ADDRESS OF LTU KEPT " R4); "LINK┆
0x17980…17a00 UnusedSector ┆ DEST " VAR SV5:INTEGER; BEGIN R5=> SV5; R5+SBPCMD; WIO(R1,R5); SV5=> ┆
0x17a00…17a80 UnusedSector ┆R5; EXIT(R4); END "SET_POINTER"; "----------------------------------------------------------------------" PROCEDURE READ_WO┆
0x17a80…17b00 UnusedSector ┆RD "THIS PROCEDURE READS ONE WORD FROM THE SPECIFIED ADDRESS IN THE LTU. " (R1; "POINTER KEPT ┆
0x17b00…17b80 UnusedSector ┆ " R3; "-- WORD " R4); "LINK ┆
0x17b80…17c00 UnusedSector ┆ DEST " VAR SV4,SV5:INTEGER; BEGIN R4=> SV4; R5=> SV5; LTU_ADDR=> R5; ┆
0x17c00…17c80 UnusedSector ┆ "LTU ADDR INTO R5" SET_POINTER(R1,R5,R4); "SET POINTER IN LTU RAM" R5=> R4+RDCMD; RIO(R3,R4); ┆
0x17c80…17d00 UnusedSector ┆SV5=> R5; EXIT(SV4); END "READ_WORD"; "----------------------------------------------------------------------" "PAGE EXPOR┆
0x17d00…17d80 UnusedSector ┆T PROCEDURE READ_WORDS "THIS PROCEDURE READS WORDS FROM THE LTU RAM STARTING AT THE SPECIFIED " "ADDRESS, TO THE SPECIFIED BUFFE┆
0x17d80…17e00 UnusedSector ┆R. " (R1; "POINTER KEPT " R2; ┆
0x17e00…17e80 UnusedSector ┆ "WORD COUNT DEST " R5; "REF(BUFFER) KEPT ┆
0x17e80…17f00 UnusedSector ┆ " R4); "LINK DEST " VAR SV1,SV4,SV5:INTEGER; BEGIN R1=> SV1; R┆
0x17f00…17f80 UnusedSector ┆4=> SV4; R5=> SV5; LTU_ADDR=> R5; "LTU ADDR INTO R5" SET_POINTER(R1,R5,R4); R5=> R4+RDICMD; ┆
0x17f80…18000 UnusedSector ┆ SV5=> R5; REPEAT RIO(R5@INTEGER,R4); R5+1; R2-1; UNTIL R2=0; SV1=> R1; SV5=> R5; EXIT(SV4); END "READ_WO┆
0x18000…18080 UnusedSector ┆RDS"; "PAGE "----------------------------------------------------------------------" PROCEDURE WRITE_BYTE "THIS PROCEDURE WR┆
0x18080…18100 UnusedSector ┆ITES ONE BYTE TO THE SPECIFIED ADDRESS IN THE LTU. " (R1; "POINTER DEST "┆
0x18100…18180 UnusedSector ┆ R5; "WORD KEPT " R4); "LINK DEST ┆
0x18180…18200 UnusedSector ┆ " VAR SV4,SV5:INTEGER; BEGIN R4=> SV4; R5=> SV5; LTU_ADDR=> R5; SET_POINTER(R1,R5,R4); R5=> R4+WR┆
0x18200…18280 UnusedSector ┆LCMD; WIO(SV5=> R5,R4); SV5=> R5; EXIT(SV4); END "WRITE_BYTE"; "---------------------------------------------------------┆
0x18280…18300 UnusedSector ┆-------------" PROCEDURE WRITE_WORD "THIS PROCEDURE WRITES ONE WORD TO THE SPECIFIED ADDRESS IN THE LTU. " (R1; "P┆
0x18300…18380 UnusedSector ┆OINTER KEPT " R5; "WORD KEPT ┆
0x18380…18400 UnusedSector ┆ SV20,SV21,SV22, SV23,SV24,SV25, SV26,SV27:INTEGER; OP_EXT_INTRPT:EXT_OP; VAR LOOP_CNT:INTEGER; INTRPT_CNT:INTEGER; ┆
0x18400…18480 UnusedSector ┆ BTCNT:INTEGER; PRC_NAME:ARRAY[0..3] OF INTEGER; INTRPT_RESV:INTEGER; LTU_STATUS:INTEGER; LTU_BTCNT:INTEGER; TERMDIS:┆
0x18480…18500 UnusedSector ┆ARRAY[1..30] OF BYTE; CONST AMON=ADDRESS(MONVAR); CXFER=ADDRESS(CFER); INIT INTRPT_CNT=0; PRC_NAME[3]=CRLF; TERMDIS ┆
0x18500…18580 UnusedSector ┆= 'TERMINAL IS DISCONNECTED !',CR,LF; " PAGE "----------------------------------------------------------------------" PROCE┆
0x18580…18600 UnusedSector ┆DURE SET_POINTER "THIS PROCEDURE SETS THE RAM POINTER IN THE LTU. " (R1; "POINTER ┆
0x18600…18680 UnusedSector ┆CB) KEPT " R4); "LINK DEST " VAR┆
0x18680…18700 UnusedSector ┆ SV1,SV4,SV5:INTEGER; BEGIN R1=> SV1; R4=> SV4; R5=> SV5; R7@LINCB.CH_I_F_ADDR=> R1; 0=> R5; WRITE_BYTE(R1,R5,R4)┆
0x18700…18780 UnusedSector ┆; SV1=> R1; SV5=> R5; EXIT(SV4); END "CLEAR_TS1"; "----------------------------------------------------------------------┆
0x18780…18800 UnusedSector ┆" PROCEDURE CLEAR_RS1 "THIS PROCEDURE WRITES A STATUS BYTE TO THE LTU WHICH CLEARS THE RS1- " "STATUS BIT. ┆
0x18800…18880 UnusedSector ┆ " (R7; "REF(LINCB) KEPT " R4);┆
0x18880…18900 UnusedSector ┆ "LINK DEST " VAR SV1,SV4,SV5:INTEGER; BEGIN R1=> SV1; R4=> SV4; R5=> S┆
0x18900…18980 UnusedSector ┆V5; R7@LINCB.CH_I_F_ADDR=> R1+8; "ADDRESS TO RS1 INTO R1" 0=> R5; WRITE_BYTE(R1,R5,R4); SV1=> R1; SV5=> R5┆
0x18980…18a00 UnusedSector ┆; EXIT(SV4); END "CLEAR_RS1"; "----------------------------------------------------------------------" "PAGE PROCEDURE CLEA┆
0x18a00…18a80 UnusedSector ┆R_TS2 "THIS PROCEDURE WRITES THE POINTER TO THE LTU BUFFER INTO BYTE 6 AND 7 " "IN THE CHANNEL I_F-TABLE AND WRITES A STATUS BYT┆
0x18a80…18b00 UnusedSector ┆E TO THIS TABLE WHICH " "CLEARS THE TS2-STATUS BYTE. " (R7; "REF(LINCB) ┆
0x18b00…18b80 UnusedSector ┆ KEPT " R4); "LINK DEST " VAR SV1,S┆
0x18b80…18c00 UnusedSector ┆V3,SV4,SV5:INTEGER; BEGIN R1=> SV1; R3=> SV3; R4=> SV4; R5=> SV5; R7@LINCB.CH_I_F_ADDR => R1+4; REPEAT READ_WOR┆
0x18c00…18c80 UnusedSector ┆D(R1,R3,R4); UNTIL R3[BN_SET]; R7@LINCB.CH_I_F_ADDR=> R1+6; "ADDRESS TO FULL BUF POINTER" ADDRESS(I_F_TAB)=> R5┆
0x18c80…18d00 UnusedSector ┆; R5@I_F_TABLE.TX_BUF_ADDR=> R5; "BUF ADDRESS INTO R5" WRITE_WORD(R1,R5,R4); R1-2; ┆
0x18d00…18d80 UnusedSector ┆ "ADDRESS TO TS2" 0=> R5; WRITE_BYTE(R1,R5,R4); SV1=> R1; SV3=> R3; SV5=> R5; EXIT(SV4); END "CLEAR_TS2"; "-----┆
0x18d80…18e00 UnusedSector ┆" R4); "LINK DEST " VAR SV4,SV5:INTEGER; BEGIN R4=> SV4; R5=> SV5┆
0x18e00…18e80 UnusedSector ┆; LTU_ADDR=> R5; "LTU ADDR INTO R5" SET_POINTER(R1,R5,R4); R5=> R4+WRCMD; WIO(SV5=>R5,R4); EX┆
0x18e80…18f00 UnusedSector ┆IT(SV4); END "WRITE_WORD"; "----------------------------------------------------------------------" "PAGE PROCEDURE WRITE_W┆
0x18f00…18f80 UnusedSector ┆ORDS "THIS PROCEDURE WRITES WORDS TO THE SPECIFIED ADDRESS IN THE LTU FROM " "THE SPECIFIED ADDRESS. ┆
0x18f80…19000 UnusedSector ┆ " (R1; "POINTER KEPT " R2; "WORD COUNT ┆
0x19000…19080 UnusedSector ┆ DEST " R5; "REF(BUFFER) KEPT " R4); ┆
0x19080…19100 UnusedSector ┆ "LINK DEST " VAR SV1,SV4,SV5:INTEGER; BEGIN R1=> SV1; R4=> SV4; R5=> SV┆
0x19100…19180 UnusedSector ┆5; LTU_ADDR=> R5; "LTU ADDR INTO R5" SET_POINTER(R1,R5,R4); R5=> R4+WRICMD; SV5=> R5; REPEAT ┆
0x19180…19200 UnusedSector ┆ WIO(R5@INTEGER,R4); R5+1; R2-1; UNTIL R2=0; SV1=> R1; SV5=> R5; EXIT(SV4); END "WRITE_WORDS"; "---------------┆
0x19200…19280 UnusedSector ┆-------------------------------------------------------" "PAGE PROCEDURE CLEAR_TS1 "THIS PROCEDURE WRITES A STATUS BYTE TO T┆
0x19280…19300 UnusedSector ┆HE LTU WHICH CLEARS THE TS1- " "STATUS BIT. " (R7; "REF(LIN┆
0x19300…19380 UnusedSector ┆R; INCD(R4,R5); UNTIL R2=SIZE(XFER_ELEM); SV2=> R2; SV5=> R5; EXIT(SV4); END "RESTORE_XFER_ELEM"; "----------------┆
0x19380…19400 UnusedSector ┆------------------------------------------------------" PROCEDURE WRITE_BTCNT_STATUS "THIS PROCEDURE WRITES THE TX BYTE COUNT A┆
0x19400…19480 UnusedSector ┆ND THE TX STATUS BYTE. " (R0; "BYTE COUNT KEPT " R1; "-- ┆
0x19480…19500 UnusedSector ┆ DEST " R2; "PACKET STATUS KEPT " ┆
0x19500…19580 UnusedSector ┆ R7; "REF(LINCB) KEPT " R4); "LINK DEST ┆
0x19580…19600 UnusedSector ┆ " VAR SV4,SV5:INTEGER; BEGIN R4=> SV4; R5=> SV5; ADDRESS(I_F_TAB)=> R5; R5@I_F_TABLE.TX_BUF_ADDR=> R1+2; ┆
0x19600…19680 UnusedSector ┆ R0=> R5+(LTU_BTCNT=> R4); WRITE_WORD(R1,R5,R4); "WRITE BYTE COUNT TO LTU" R1+5; R2=> R5; WRITE_BYTE(┆
0x19680…19700 UnusedSector ┆R1,R5,R4); "WRITE TX STATUS BYTE" CLEAR_TS2(R7,R4); 0=> R5=> LTU_BTCNT; SV5=> R5; EXIT(SV4); END "WRI┆
0x19700…19780 UnusedSector ┆TE_BTCNT_STATUS"; "--------------------------------------------------------------------" EXPORT PROCEDURE OUTPUT_TEXT "THIS PRO┆
0x19780…19800 UnusedSector ┆-----------------------------------------------------------------" "PAGE PROCEDURE CLEAR_RS2 "THIS PROCEDURE WRITES THE POI┆
0x19800…19880 UnusedSector ┆NTER TO THE LTU BUFFER INTO BYTE 6 AND 7 " "IN THE CHANNEL I_F-TABLE AND WRITES A STATUS BYTE TO THIS TABLE WHICH " "CLEARS RHE ┆
0x19880…19900 UnusedSector ┆TS2-STATUS BYTE. " (R7; "REF(LINCB) KEPT ┆
0x19900…19980 UnusedSector ┆ " R4); "LINK DEST " VAR SV1,SV3,SV4,SV5:INTEGER; BEGIN R1=> SV┆
0x19980…19a00 UnusedSector ┆1; R3=> SV3; R4=> SV4; R5=> SV5; R7@LINCB.CH_I_F_ADDR => R1+12; REPEAT READ_WORD(R1,R3,R4); UNTIL R3[BN_SET]; ┆
0x19a00…19a80 UnusedSector ┆ R7@LINCB.CH_I_F_ADDR=> R1+14; "ADDRESS TO EMPTY BUF POINTER" ADDRESS(I_F_TAB)=> R5; R5@I_F_TABLE.RX_BUF_ADDR=> R5┆
0x19a80…19b00 UnusedSector ┆; "BUF ADDRESS INTO R5" WRITE_WORD(R1,R5,R4); R1-2; "ADDRESS TO RS2" 0=> R5; ┆
0x19b00…19b80 UnusedSector ┆WRITE_BYTE(R1,R5,R4); SV1=> R1; SV3=> R3; SV5=> R5; EXIT(SV4); END "CLEAR_RS2"; "--------------------------------------┆
0x19b80…19c00 UnusedSector ┆--------------------------------" PROCEDURE SAVE_XFER_ELEM "THIS PROCEDURE COPIES THE CURRENT XFER_ELEM INTO A TERMCB RELATED B┆
0x19c00…19c80 UnusedSector ┆UF" (R7; "REF(LINCB) KEPT " R4); "LINK DEST ┆
0x19c80…19d00 UnusedSector ┆ " VAR SV2,SV4,SV5:INTEGER; BEGIN R2=> SV2; R4=> SV4; R5=> SV5; R7@LINCB.MESS_CONID => R4; TER┆
0x19d00…19d80 UnusedSector ┆MTB[R4] => R4; R4@TERMCB.XFERBUF => R5; CXFER => R4; 0 => R2; REPEAT R2+1; R4@INTEGER => R5@INTEGER; INCD(R4┆
0x19d80…19e00 UnusedSector ┆,R5); UNTIL R2 = SIZE(XFER_ELEM); SV2 => R2; SV5 => R5; EXIT(SV4); END "SAVE_XFER_ELEM"; "-----------------------------┆
0x19e00…19e80 UnusedSector ┆-----------------------------------------" PROCEDURE RESTORE_XFER_ELEM "THIS PROCEDURE COPIES THE SAVED XFER ELEM INTO CXFER. ┆
0x19e80…19f00 UnusedSector ┆ " (R7; "REF(LINCB) KEPT " R4); "LINK ┆
0x19f00…19f80 UnusedSector ┆ DEST " VAR SV2,SV4,SV5:INTEGER; BEGIN R2=> SV2; R4=> SV4; R5=> SV5; R7@LINCB.MESS_CONI┆
0x19f80…1a000 UnusedSector ┆D => R4; TERMTB[R4] => R4; R4@TERMCB.XFERBUF => R5; CXFER => R4; 0 => R2; REPEAT R2+1; R5@INTEGER => R4@INTEGE┆
0x1a000…1a080 UnusedSector ┆0; R0=> R4@XFER_ELEM.XFERPSW; R7@LINCB.MESS_TLST=> R1=> R4@XFER_ELEM.LINK; SWITCH NEXT_XFER_ELEM(R4) TO ERR, DONE: ┆
0x1a080…1a100 UnusedSector ┆NOP; END "NEXT_XFER_ELEM"; SWITCH NEXT_XFER_ELEM(R4) TO ERR: BEGIN 1 SHIFTLL BN_ERROR => R1; XF┆
0x1a100…1a180 UnusedSector ┆LI0=> R6; "ERROR,LINK=0" GOTO RETURN_ERROR; END; DONE: NOP; ┆
0x1a180…1a200 UnusedSector ┆CEDURE OUTPUTS A STRING OF TEXT SPECIFIED IN THE LTU DRIVER " "PROCESS TO THE SHARED RAM IN THE LTU. ┆
0x1a200…1a280 UnusedSector ┆ " (R7; "REF(LINCB) KEPT " R4); "LINK DEST ┆
0x1a280…1a300 UnusedSector ┆ " VAR SV1,SV2,SV4,SV5:INTEGER; BEGIN R1=> SV1; R2=> SV2; R4=> SV4; R5=> SV5; CLEAR_TS1(R7,R4); ┆
0x1a300…1a380 UnusedSector ┆ 2=> R2; ADDRESS(I_F_TAB)=> R5; R5@I_F_TABLE.TX_BUF_ADDR=> R1+2; ADDRESS(LTU_COM)=> R5; READ_WORDS(R1,R2,R5,R4); R7@LI┆
0x1a380…1a400 UnusedSector ┆NCB_BREAK.OUT_BTCNT=> R4=> BTCNT; (R4+1) SHIFTRL 1 => R2; "WORDCNT=(BTCNT+1)/2" R5@LTU_COM_TABLE.TX_ADDR=> ┆
0x1a400…1a480 UnusedSector ┆R1; 0 => R5=> R7@LINCB.CUR_BTCNT; R7@LINCB_BREAK.OUT_ADDR=> R5; WRITE_WORDS(R1,R2,R5,R4); CH_IDLE=> R5=> R7@LINCB.CH_STA┆
0x1a480…1a500 UnusedSector ┆TE; ADDRESS(I_F_TAB)=> R5; R5@I_F_TABLE.TX_BUF_ADDR=> R1+2; BTCNT=> R5; WRITE_WORD(R1,R5,R4); "WRITE ┆
0x1a500…1a580 UnusedSector ┆TX BYTE COUNT" R1+5; 0=> R5; "BUF IS A SINGLE PACKET" WRITE_BYTE(R1,R5,R4); ┆
0x1a580…1a600 UnusedSector ┆ "WRITE TX STATUS BYTE" R0=> R4; R7=> R5; BMDELAY=> R2; 2=> R0; MON(WAITEVENT,R0,R1,R2,R7); R4=> R0; R5=> R7┆
0x1a600…1a680 UnusedSector ┆; CLEAR_TS2(R7,R4); SV1=> R1; SV2=> R2; SV5=> R5; EXIT(SV4); END "OUTPUT_TEXT"; "------------------------------------┆
0x1a680…1a700 UnusedSector ┆---------------------------------" EXPORT PROCEDURE UPDATE_LINCB "THIS PROCEDURE UPDATES THE SPECIFIED LINE CONTROL BLOCK WITH T┆
0x1a700…1a780 UnusedSector ┆HE DATA" "IN THE SPECIFIED INTERNAL OPERATION. " (R4; "REF(INT_OP) KEP┆
0x1a780…1a800 UnusedSector ┆T " R7; "REF(LINCB) KEPT " R6); "LINK ┆
0x1a800…1a880 UnusedSector ┆ DEST " VAR SV6:INTEGER; BEGIN R6=> SV6; R4@MES_OP.MOHEAD=> R6=> R7@LINCB.MESS_HEAD; ┆
0x1a880…1a900 UnusedSector ┆ R4@MES_OP.MOTLST=> R6=> R7@LINCB.MESS_TLST; R4@MES_OP.MOEVENT=> R6=>R7@LINCB.MESS_EVNT; R4@MES_OP.MOCOUNT=> R6=> R7@LINCB.M┆
0x1a900…1a980 UnusedSector ┆ESS_COUNT; R4@MES_OP.MOCONID=> R6=> R7@LINCB.MESS_CONID; 0=> R6=> R7@LINCB.CUR_BTCNT; EXIT(SV6); END "UPDATE_LINCB"; "---┆
0x1a980…1aa00 UnusedSector ┆------------------------------------------------------------------" PROCEDURE INPUT_BLOCK "THIS PROCEDURE INPUTS A BLOCK OF DAT┆
0x1aa00…1aa80 UnusedSector ┆A FROM THE SHARED RAM IN THE LTU " "TO THE APPLICATION. THE SIZE OF THE BLOCK IS EQUAL TO THE SIZE OF THE" "BUFFER WHICH THE LTU┆
0x1aa80…1ab00 UnusedSector ┆ HANDS OVER. IF MORE DATA FROM THE LTU AND IF A " "NEW BUFFER IS SEND FROM THE LTU DURING THE READING THIS BUFFER ALSO " "IS R┆
0x1ab00…1ab80 UnusedSector ┆EAD. " (R5; "REF(LTU_COM_BUFFER) KEPT ┆
0x1ab80…1ac00 UnusedSector ┆ " R7; "REF(LINCB) KEPT " R4); "LINK D┆
0x1ac00…1ac80 UnusedSector ┆EST " LABEL RETURN_ERROR; VAR SV0,SV1,SV2,SV3,SV4,SV5,SV6:INTEGER; BEGIN R0=> SV0; R1=> SV1; R2┆
0x1ac80…1ad00 UnusedSector ┆=> SV2; R3=> SV3; R4=> SV4; R5=> SV5; R6=> SV6; CXFER=> R4; R7@LINCB.MESS_HEAD=> R0 EXTRACT 2 SHIFTLL XFER_SCP +#E80┆
0x1ad00…1ad80 UnusedSector ┆N_ERROR; END; IF R1 =1 THEN REGRET=> R6 ELSE RELEASE=> R6; 1 SHIFTLL BN_ERROR => R1; G┆
0x1ad80…1ae00 UnusedSector ┆OTO RETURN_ERROR; END ELSE BEGIN R7@LINCB.CUR_BTCNT=> R0+ R5@LTU_COM_TABLE.RX_BTCNT; R7@LINCB.MESS_COUNT┆
0x1ae00…1ae80 UnusedSector ┆=> R2; IF R2<R0 THEN BEGIN OVRFL=> R6; 1 SHIFTLL BN_ERROR => R1; GOTO RETURN_ERROR; EN┆
0x1ae80…1af00 UnusedSector ┆D; 0=> R0; R5@LTU_COM_TABLE.RX_BTCNT=> R2; R5@LTU_COM_TABLE.RX_ADDR=> R1; IF R2[0] THEN BEGIN ┆
0x1af00…1af80 UnusedSector ┆ READ_WORD(R1,R3,R4); "LTU BYTE COUNT IS ODD" SWITCH PUTBYTE(R3,R4) TO 0: BEGI┆
0x1af80…1b000 UnusedSector ┆N FOMER=> R6; "FORMAT ERROR" 1 SHIFTLL BN_ERROR => R1; END; ┆
0x1b000…1b080 UnusedSector ┆ 1,2: NOP; "LAST,MORE" END "SWITCH PUTWORD"; INCD(R0,R1); "INCREMEN┆
0x1b080…1b100 UnusedSector ┆T R0,R1" END; WHILE R0<> R2 DO BEGIN READ_WORD(R1,R3,R4); SWITCH PUTWORD(R3,R4) TO ┆
0x1b100…1b180 UnusedSector ┆ 0: BEGIN FOMER=> R6; 1 SHIFTLL BN_ERROR => R1; GOTO RETURN_ERROR; ┆
0x1b180…1b200 UnusedSector ┆ END; 1: BEGIN "LAST TRANSFER" IF R0< R2 THEN ┆
0x1b200…1b280 UnusedSector ┆ BEGIN OVRFL=> R6; "OVERFLOW FROM LTU" 1 SHIFTLL BN_ERROR => R1; ┆
0x1b280…1b300 UnusedSector ┆ GOTO RETURN_ERROR; END; END; 2: NOP; "MORE DATA TO BE TRA┆
0x1b300…1b380 UnusedSector ┆NSFERRED" END "SWITCH PUTBYTE"; R1+2; "INCREMENT LTU POINTER" R0+2; ┆
0x1b380…1b400 UnusedSector ┆ "INCREMENT BYTE COUNT" END "WHILE DO"; R7@LINCB.CUR_BTCNT+R0; R5@LTU_COM_TABLE.RX_STATUS=>┆
0x1b400…1b480 UnusedSector ┆ R4 SHIFTRL BYTES; "RX STATUS BYTE=> R4" IF NOT R4[BN_S_PACKET] THEN BEGIN "END OF PAC┆
0x1b480…1b500 UnusedSector ┆KET" 0=> R6; "COMPLETION CODE=OK" 0=> R1; "RESULT=0" RETUR┆
0x1b500…1b580 UnusedSector ┆N_ERROR: R6=> R2; CH_IDLE=> R4=> R7@LINCB.CH_STATE; "SET CHANNEL STATE TO IDLE" SWITCH FIND_INT_OP(R6,R4)┆
0x1b580…1b600 UnusedSector ┆ TO ERR, DONE: END "SWITCH FIND_INT_OP"; R6=> R5; R2=> R6; R7@LINCB.MESS_HEAD=> R2=┆
0x1b600…1b680 UnusedSector ┆> R5@ANS_OP.AOHEAD; R7@LINCB.MESS_TLST=> R2=> R5@ANS_OP.AOTLST; R7@LINCB.MESS_EVNT=> R2=> R5@ANS_OP.AOEVENT; ┆
0x1b680…1b700 UnusedSector ┆ ANS_OPN => R2=> R5@ANS_OP.OPN; R7@LINCB.CUR_BTCNT=> R2; "BYTE COUNT INTO R2" 0=> R0=> R7@LINCB.CUR_BT┆
0x1b700…1b780 UnusedSector ┆CNT; R6=> R0; "COMPLETION CODE INTO R0" R5=> R4; "ADDRESS TO┆
0x1b780…1b800 UnusedSector ┆ INTOP INTO R4" GENERATE_ANSWER_OPERATION(R0,R1,R2,R4,R6); END; END; CLEAR_RS2(R7,R4); IF R7@LINCB.CUR_BTCN┆
0x1b800…1b880 UnusedSector ┆T <> 0 THEN BEGIN 2=> R2; "MORE DATA TO BE TRANSFERRED" R7@LINCB.CH_I_F_ADDR=> R1+8; ┆
0x1b880…1b900 UnusedSector ┆ "NEXT XFER ELEM FETCHED" END "SWITCH NEXT_XFER_ELEM"; R7@LINCB.CUR_BTCNT => R2; IF R2 <>0 THEN RESTORE_XFER_ELEM(R7,R4┆
0x1b900…1b980 UnusedSector ┆); REPEAT R5@LTU_COM_TABLE.RX_STATUS=> R6 SHIFTRL BYTES=> R1 EXTRACT 4; R5@LTU_COM_TABLE.RX_BTCNT=> R2; IF R1 <>┆
0x1b980…1ba00 UnusedSector ┆ 0 LOGOR R2=0 THEN BEGIN IF R2 =0 LOGAND NOT R6 [BN_S_PACKET] THEN BEGIN 0=> R1=> R6; GOTO RETUR┆
0x1ba00…1ba80 UnusedSector ┆1=> SV1; R2=> SV2; R3=> SV3; R4=> SV4; R5=> SV5; R6=> SV6; R7=> SV7; 0=> R5=> ANS; R5=> LTU_BTCNT; R7@LINCB.FI┆
0x1ba80…1bb00 UnusedSector ┆TERADDR=> R5; R7@LINCB.MESS_EVNT=> R2; R5@TERMCB.PROCID=> R3; SWITCH MON(IDENTIFYSENDER,R0,R2,R7):ERROR_DONE TO ERR: ┆
0x1bb00…1bb80 UnusedSector ┆ BEGIN SV7=> R7; 0=> R0=> R2; WRITE_BTCNT_STATUS(R0,R1,R2,R7,R4); 1 SHIFTLL BN_ERROR=> ┆
0x1bb80…1bc00 UnusedSector ┆R1; PCB_ERR=> R6; GOTO RETURN_ERROR; END; DONE: NOP; "R0 CONTAINS THE ┆
0x1bc00…1bc80 UnusedSector ┆PCBINDEX" END "SWITCH MON(IDENTIFYSENDER)"; "PAGE IF R0 <>R3 THEN BEGIN R0=> R5@TERMCB.PROCID; "PCB ┆
0x1bc80…1bd00 UnusedSector ┆INDEX INTO TERMCB" 2=> R2; "WORD COUNT =2" SV5=> R5; R5@LTU_COM_TABLE.TX_ADDR=> R1; ┆
0x1bd00…1bd80 UnusedSector ┆ ADDRESS(FROM)=> R5; "ADDRESS TO LTU BUFFER" WRITE_WORDS(R1,R2,R5,R4); "WRITE (FM:) TO ┆
0x1bd80…1be00 UnusedSector ┆THE TERM" SV5=> R5; R5@LTU_COM_TABLE.TX_BTCNT-(4=> R1); R5@LTU_COM_TABLE.TX_ADDR+(4=> R1); MON(IDENTIFYPROCESS,R┆
0x1be00…1be80 UnusedSector ┆0,R1,R2,R7); R0=> PRC_NAME[0]; "THE NEW PROCESS NAME-" R1=> PRC_NAME[1]; "┆
0x1be80…1bf00 UnusedSector ┆IS WRITTEN TO THE TERM" R2=> PRC_NAME[2]; NOP; 4=> R2; R5@LTU_COM_TABLE.TX_ADDR=> R1; ADDRESS(PRC_NAME)=> R5┆
0x1bf00…1bf80 UnusedSector ┆; WRITE_WORDS(R1,R2,R5,R4); SV5=> R5; R5@LTU_COM_TABLE.TX_BTCNT-(8=> R1); R5@LTU_COM_TABLE.TX_ADDR+(8=> R1); ┆
0x1bf80…1c000 UnusedSector ┆ 12=> R7=> LTU_BTCNT; END; SV7=> R7; CXFER=> R4; R7@LINCB.MESS_HEAD=> R0 EXTRACT 2 SHIFTLL XFER_SCP +#E800; R0=> R4@XF┆
0x1c000…1c080 UnusedSector ┆ER_ELEM.XFERPSW; R7@LINCB.MESS_TLST=> R2=> R4@XFER_ELEM.LINK; SWITCH NEXT_XFER_ELEM(R4) TO ERR, DONE: NOP; END "SWI┆
0x1c080…1c100 UnusedSector ┆TCH NEXT_XFER_ELEM"; SWITCH NEXT_XFER_ELEM(R4) TO ERR: BEGIN 0=> R0; 0=> R2; WRITE_BTCNT┆
0x1c100…1c180 UnusedSector ┆_STATUS(R0,R1,R2,R7,R4); 1 SHIFTLL BN_ERROR => R1; XFLI0=> R6; GOTO RETURN_ERROR; END; DONE┆
0x1c180…1c200 UnusedSector ┆: NOP; "NEXT XFER ELEM FETCHED" END "SWITCH NEXT_XFER_ELEM"; R7@LINCB.CUR_BTCNT => R2; IF R2┆
0x1c200…1c280 UnusedSector ┆ <>0 THEN RESTORE_XFER_ELEM(R7,R4); SV5 => R5; REPEAT R5@LTU_COM_TABLE.TX_BTCNT=> R2; R7@LINCB.MESS_COUNT => R3; ┆
0x1c280…1c300 UnusedSector ┆ ADDRESS(I_F_TAB)=> R5+4; READ_WORDS(R1,R2,R5,R4); R5-4; R5@I_F_TABLE.RS1_STATUS=> R1; IF R1[BN_SET] TH┆
0x1c300…1c380 UnusedSector ┆EN BEGIN CLEAR_RS1(R7,R4); R5@I_F_TABLE.RX_BUF_ADDR=> R1+2; ADDRESS(LTU_COM)=> R5+3; 3=> R2; ┆
0x1c380…1c400 UnusedSector ┆ READ_WORDS(R1,R2,R5,R4); R5-3; INTRPT_CNT=> R4+1=> INTRPT_CNT; 0=> R4; END ELSE SAVE_XF┆
0x1c400…1c480 UnusedSector ┆ER_ELEM(R7,R4); END; UNTIL R4 <>0; SV0=> R0; SV1=> R1; SV2=> R2; SV3=> R3; SV5=> R5; SV6=> R6; EXIT(SV4); END "INPUT_┆
0x1c480…1c500 UnusedSector ┆BLOCK"; "---------------------------------------------------------------------" "PAGE PROCEDURE OUTPUT_BLOCK "THIS PROCEDURE O┆
0x1c500…1c580 UnusedSector ┆UTPUTS A BLOCK OF DATA FROM THE APPLICATION TO THE " "SHARED RAM IN THE LTU. THE SIZE OF THE BLOCK IS LESSER THAN OR EQUAL " "┆
0x1c580…1c600 UnusedSector ┆TO THE SIZE OF THE BUFFER WHICH THE LTU HANDS OVER. " (R5; "REF(LTU_COM_BUFFER) KEPT ┆
0x1c600…1c680 UnusedSector ┆ " R7; "REF(LINCB) KEPT " R4); "LINK ┆
0x1c680…1c700 UnusedSector ┆ DEST " LABEL RETURN_ERROR; VAR SV0,SV1,SV2,SV3,SV4,SV5,SV6,SV7,ANS:INTEGER; BEGIN R0=> SV0; R┆
0x1c700…1c780 UnusedSector ┆ "ADDRESS TO INT OP INTO R4" 0=> R5=> R7@LINCB.CUR_BTCNT; GENERATE_ANSWER_OPERATION(R0,R1,R2,R4,R6)┆
0x1c780…1c800 UnusedSector ┆; END ELSE BEGIN 2=> R2; R7@LINCB.CH_I_F_ADDR=> R1; ADDRESS(I_F_TAB)=> R5; READ_WORDS(R1,R2,┆
0x1c800…1c880 UnusedSector ┆R5,R4); R5@I_F_TABLE.TS1_STATUS=> R1; IF R1[BN_SET] THEN BEGIN CLEAR_TS1(R7,R4); R5@I_F_TABLE┆
0x1c880…1c900 UnusedSector ┆.TX_BUF_ADDR=> R1+2; ADDRESS(LTU_COM)=> R5; 2=> R2; READ_WORDS(R1,R2,R5,R4); INTRPT_CNT=> R4+1=>┆
0x1c900…1c980 UnusedSector ┆ INTRPT_CNT; 0=> R4; END ELSE SAVE_XFER_ELEM(R7,R4); END; UNTIL R4 <> 0; SV1=> R1; SV2=> R2;┆
0x1c980…1ca00 UnusedSector ┆ SV3=> R3; SV5=> R5; SV6=> R6; SV7=> R7; EXIT(SV4); END "OUTPUT_BLOCK"; "--------------------------------------------┆
0x1ca00…1ca80 UnusedSector ┆--------------------------" EXPORT PROCEDURE GET_CHANNEL "THIS PROCEDURE CHECKS THE TWO STATUS WORDS FOR EACH LTU CHANNEL. THE ┆
0x1ca80…1cb00 UnusedSector ┆" "FIRST TIME A CHANGE IN ONE OF THE WORDS IS DETECTED THE PROCEDURE RE- " "TURNS WITH A REFERENCE TO THE LINCB. ┆
0x1cb00…1cb80 UnusedSector ┆ " " (R5; "CHANNEL NO START FOUND CHANNEL NO " R6; "-- ┆
0x1cb80…1cc00 UnusedSector ┆ CHANNEL STATUS " R4) "LINK DEST " :0..2;"┆
0x1cc00…1cc80 UnusedSector ┆ "0= NOT FOUND " "1= FOUND ┆
0x1cc80…1cd00 UnusedSector ┆ R3-R7@LINCB.CUR_BTCNT; IF R3 < R2 THEN R3=> BTCNT ELSE R2=> BTCNT; R5@LTU_COM_TABLE.TX_ADDR=> R1; 0=>┆
0x1cd00…1cd80 UnusedSector ┆ R0; BTCNT => R2; REPEAT SWITCH GETBYTE(R3,R4) TO ERR: BEGIN 0=> R0=> R2; ┆
0x1cd80…1ce00 UnusedSector ┆ WRITE_BTCNT_STATUS(R0,R1,R2,R7,R4); 1 SHIFTLL BN_ERROR => R1; EMBUF=> R6; GOTO RETU┆
0x1ce00…1ce80 UnusedSector ┆RN_ERROR; END; DONE: NOP; "BYTE GOT" END "SWITCH GETBYTE"; R3=> R5; ┆
0x1ce80…1cf00 UnusedSector ┆ WRITE_BYTE(R1,R5,R4); INCD(R0,R1); UNTIL R0= R2; (R7@LINCB.CUR_BTCNT+(BTCNT=> R5))=> R1; R7@LINCB.MESS_COUN┆
0x1cf00…1cf80 UnusedSector ┆T=> R2-R1; R1-(BTCNT=> R4); IF R2=0 THEN "END OF PACKET" BEGIN 1=> R2=> ANS; ┆
0x1cf80…1d000 UnusedSector ┆IF R1= 0 THEN 0=> R2 "BUF IS A SINGLE PACKET" ELSE P_PACKET=> R2; ┆
0x1d000…1d080 UnusedSector ┆ "BUF IS THE LAST IN PCK" END ELSE BEGIN IF R1= 0 THEN S_PACKET=> R2 "B┆
0x1d080…1d100 UnusedSector ┆UF IS START OF PACKET" ELSE P_PACKET=> R2+S_PACKET; "BUF IS PART OF PACKET" END; WRITE_BTCNT_S┆
0x1d100…1d180 UnusedSector ┆TATUS(R0,R1,R2,R7,R4); IF ANS=> R1=1 THEN BEGIN 0=> R6; "COMPLETION CODE=OK" 0┆
0x1d180…1d200 UnusedSector ┆=> R1; "RESULT=OK" RETURN_ERROR: SV7=> R7; CH_IDLE=> R4=> R7@LINCB.CH_STATE; "SET┆
0x1d200…1d280 UnusedSector ┆ CHAN STATE TO IDLE" R6=> R2; SWITCH FIND_INT_OP(R6,R4) TO ERR, DONE: NOP; END "SWITCH FIND_INT┆
0x1d280…1d300 UnusedSector ┆_OP"; R6=> R5; R2=> R6; R7@LINCB.MESS_HEAD=> R2=> R5@ANS_OP.AOHEAD; R7@LINCB.MESS_TLST=> R2=> R5@ANS_OP.┆
0x1d300…1d380 UnusedSector ┆AOTLST; R7@LINCB.MESS_EVNT=> R2=> R5@ANS_OP.AOEVENT; ANS_OPN=> R2=> R5@ANS_OP.OPN; R7@LINCB.CUR_BTCNT=> R2; ┆
0x1d380…1d400 UnusedSector ┆ "BYTE COUNT INTO R2" R6=> R0; "COMPLETION CODE INTO R0" R5=> R4; ┆
0x1d400…1d480 UnusedSector ┆F)=> R5,R7); END ELSE "PAGE BEGIN IF R7@LINCB.CH_STATE => R1= CH_READ LOGOR R1= CH_IDLE THEN ┆
0x1d480…1d500 UnusedSector ┆ BEGIN IF R1 = CH_IDLE THEN BEGIN R7@LINCB.FITERADDR => R4; R4@TERM┆
0x1d500…1d580 UnusedSector ┆CB.PROCID => R0; SWITCH DEQUEUE_OPERATION(R0,R7,R6) TO ERR: BEGIN ┆
0x1d580…1d600 UnusedSector ┆ CLEAR_RS1(R7,R4); CLEAR_RS2(R7,R4); END; DONE: ┆
0x1d600…1d680 UnusedSector ┆ BEGIN CH_READ=> R6; SV4=> R1+1 => SV4; CHNO => R5; ┆
0x1d680…1d700 UnusedSector ┆ " "2= OUTPUT TEXT EXECUTED " "PAGE VAR SV1,SV2,SV4,SV7,CHNO:┆
0x1d700…1d780 UnusedSector ┆INTEGER; BEGIN R1=> SV1; R2=> SV2; R4=> SV4; R7=> SV7; R5-1 => R4 => CHNO; REPEAT LINTB[R4]=> R7; ┆
0x1d780…1d800 UnusedSector ┆ "REF TO LINCB INTO R7" 6=> R2; "WORD CNT=7" R7@LINCB.CH_I_F_ADDR=> R1; ┆
0x1d800…1d880 UnusedSector ┆ "ADDRESS TO START OF IF TAB" ADDRESS(I_F_TAB)=> R5; READ_WORDS(R1,R2,R5,R4); R5@I_F_TABLE.RS1_STATUS=> R4; ┆
0x1d880…1d900 UnusedSector ┆IF R4[BN_SET] THEN BEGIN R7@LINCB.FITERADDR => R1; IF R1=0 THEN BEGIN CLEAR_RS1(R7,R4); C┆
0x1d900…1d980 UnusedSector ┆LEAR_RS2(R7,R4); ADDRESS(TERMDIS)=> R4=> R7@LINCB_BREAK.OUT_ADDR; 28 => R4=> R7@LINCB_BREAK.OUT_BTCNT; R┆
0x1d980…1da00 UnusedSector ┆EPEAT 2=> R2; R7@LINCB.CH_I_F_ADDR => R1; ADDRESS(I_F_TAB)=> R5; READ_WORDS(R1,R2,R5,R4)┆
0x1da00…1da80 UnusedSector ┆; R5@I_F_TABLE.TS1_STATUS => R2; UNTIL R2[BN_SET]; OUTPUT_TEXT(R7,R4); END ELSE BEGI┆
0x1da80…1db00 UnusedSector ┆N R5@I_F_TABLE.RX_BUF_ADDR=> R1+7; "ADDR TO RX STATUS" READ_WORD(R1,R3,R4); IF R3[BN_BREAK] THEN BEG┆
0x1db00…1db80 UnusedSector ┆IN CLEAR_RS1(R7,R4); CLEAR_RS2(R7,R4); PROCESS_BREAK(R7,R4); END ELSE "PAGE BEGIN ┆
0x1db80…1dc00 UnusedSector ┆ IF R7@LINCB.CH_STATE=> R1= CH_READ_BREAK THEN BEGIN CLEAR_RS1(R7,R4); R5@I_F_TABLE.RX_BUF_ADDR┆
0x1dc00…1dc80 UnusedSector ┆=> R1+2; "ADDR TO COM TABLE BTCNT" ADDRESS(LTU_COM)=> R5+3; 3=> R2; READ_WORDS(R1,R2,R5,R4); ┆
0x1dc80…1dd00 UnusedSector ┆ R5-3; R5@LTU_COM_TABLE.RX_BTCNT=> R1; IF R1=0 THEN BEGIN NULL => R1 => BK_BUF[1=>┆
0x1dd00…1dd80 UnusedSector ┆ R4]; 1=> R1; END; IF R1 >= 7 THEN 6=> R2=> R0 ELSE R1=> R0=> R2; ┆
0x1dd80…1de00 UnusedSector ┆ "BYTE CNT INTO R0" R2+1 SHIFTRL 1; "WORD CNT INTO R2" R5@LTU_COM_TAB┆
0x1de00…1de80 UnusedSector ┆LE.RX_ADDR=> R1; "POINTER TO LTU INPUT BUF" ADDRESS(BK_BUF)=> R5; READ_WORDS(R1,R2,R5,R4); R0=┆
0x1de80…1df00 UnusedSector ┆> R4-1; IF R0<6 THEN "PROCESS NAME WITH LESS -" REPEAT "TH┆
0x1df00…1df80 UnusedSector ┆AN 6 CHAR IS FILLED UP-" R4+1; "WITH NULLS" NULL=>R0=> BK_BUF[R4]; ┆
0x1df80…1e000 UnusedSector ┆UNTIL R4=6; CLEAR_RS2(R7,R4); NOP; SWITCH FIND_INT_OP(R6,R4) TO ERR, DONE:R┆
0x1e000…1e080 UnusedSector ┆6=> R4; "R4 CONTAINS REF TO INT OP" END "SWITCH FIND_INT_OP"; NOP; CH_READ_BRE┆
0x1e080…1e100 UnusedSector ┆AK=> R1=> R4@BREAK_OP.OPN; R7=> R4@BREAK_OP.LCBREF; NOP; MON(COR,AMON,SIGNAL_OP,R4,ADDRESS(SEM_OPI┆
0x1e100…1e180 UnusedSector ┆ ELSE BEGIN CH_READ=> R6; SV4=> R1+1=> SV4; CHNO=> R5; CHAN┆
0x1e180…1e200 UnusedSector ┆NEL_3=> R1=> CHNO; END; END; END; END; END; END ELSE BEGIN R5@I_F_TA┆
0x1e200…1e280 UnusedSector ┆BLE.TS1_STATUS=> R4; IF R4[BN_SET] THEN BEGIN IF R7@LINCB.CH_STATE=> R1= CH_BREAK THEN BEGIN ┆
0x1e280…1e300 UnusedSector ┆ OUTPUT_TEXT(R7,R4); SV4=> R1+2=> SV4; CHNO=> R5; CHANNEL_3=> R1=> CHNO; END; ┆
0x1e300…1e380 UnusedSector ┆IF R7@LINCB.CH_STATE=> R1=CH_WRITE THEN BEGIN CH_WRITE=> R6; SV4=> R1+1=>SV4; CHNO=> R5; ┆
0x1e380…1e400 UnusedSector ┆ CHANNEL_3=> R1=> CHNO; END; END; END; CHNO=> R4+1 => CHNO; UNTIL R4=CHANNEL_4; EXIT(SV4); ┆
0x1e400…1e480 UnusedSector ┆END "GET CHANNEL"; "-----------------------------------------------------------------------" "PAGE EXPORT PROCEDURE INTERR┆
0x1e480…1e500 UnusedSector ┆UPT_HANDLER "THIS PROCEDURE SCANS ALL THE LTU COMMUNICATION TABLES. IF ANY CHANGE " "IN THE STATUS WORD A DATA TRANSFER PROCEDU┆
0x1e500…1e580 UnusedSector ┆RE IS CALLED. " (R4); "LINK DEST " VAR SV4,SV5,SV6,SV7,C┆
0x1e580…1e600 UnusedSector ┆HNO:INTEGER; BEGIN R4=> SV4; R5=> SV5; R6=> SV6; R7=> SV7; CHANNEL_1=> R4=> CHNO; 0=> R4=> LOOP_CNT; IF INTRPT_C┆
0x1e600…1e680 UnusedSector ┆NT=> R4 =0 THEN BEGIN REPEAT CHNO=> R5; SWITCH GET_CHANNEL(R5,R6,R4) TO 0, ┆
0x1e680…1e700 UnusedSector ┆ "CHANNEL NOT FOUND" 2: "OUTPUT TEXT EXECUTED" BEGIN SV5=> R5;┆
0x1e700…1e780 UnusedSector ┆ SV6=> R6; EXIT(SV4); END; 1: NOP; "CHANNEL FOUND" ┆
0x1e780…1e800 UnusedSector ┆END "SWITCH GET CHANNEL"; "PAGE LOOP_CNT=> R4+1=> LOOP_CNT; IF R4>=2 THEN INTRPT_CNT=> R4+1=> INTRPT_CNT; ┆
0x1e800…1e880 UnusedSector ┆ LINTB[R5]=> R7; "REF(LINCB) INTO R7" ADDRESS(LTU_COM)=> R5; "REF(BUFFER) INTO R5" ┆
0x1e880…1e900 UnusedSector ┆ 3=> R2; "WORD COUNT=3" IF R6=CH_READ THEN BEGIN CLEAR_RS1(R7,R4); ADD┆
0x1e900…1e980 UnusedSector ┆RESS(I_F_TAB)=> R6; R6@I_F_TABLE.RX_BUF_ADDR=> R1+2; "ADDR TO COM TAB BYTE COUNT" R5+3; READ_WORDS(R1,R┆
0x1e980…1ea00 UnusedSector ┆2,R5,R4); ADDRESS(LTU_COM)=> R5; INPUT_BLOCK(R5,R7,R4); END ELSE BEGIN CLEAR_TS1(R7,R4┆
0x1ea00…1ea80 UnusedSector ┆); ADDRESS(I_F_TAB)=> R6; R6@I_F_TABLE.TX_BUF_ADDR=> R1+2; R2-1; READ_WORDS(R1,R2,R5,R4); ┆
0x1ea80…1eb00 UnusedSector ┆ OUTPUT_BLOCK(R5,R7,R4); END; CHNO=> R4+1 => CHNO; "INCREMENT CHANNEL NO" UNTIL R4=CHANNEL_5; ┆
0x1eb00…1eb80 UnusedSector ┆END ELSE INTRPT_CNT=> R4-1=> INTRPT_CNT; SV5=> R5; SV6=> R6; SV7=> R7; EXIT(SV4); END "INTERRUPT_HANDLER"; "-------┆
0x1eb80…1ec00 UnusedSector ┆--------------------------------------------------------------" PROCEDURE LTU_ERROR_HANDLER "THIS PROCEDURE SETS THE CONTROL BLO┆
0x1ec00…1ec80 UnusedSector ┆CK STATUS TO 1 (ERROR STATE) IN " "THE LTUCB AND THE LINCB. " (R7; "REF(┆
0x1ec80…1ed00 UnusedSector ┆LINCB) KEPT " R4); "LINK DEST " VA┆
0x1ed00…1ed80 UnusedSector ┆R SV0,SV1,SV2,SV4,SV5,SV6:INTEGER; BEGIN R0=> SV0; R1=> SV1; R2=> SV2; R4=> SV4; R5=> SV5; R6=> SV6; ADDRESS(LT┆
0x1ed80…1ee00 UnusedSector ┆ CHANNEL_3 => R1=> CHNO; END; END "SWITCH DEQUEUE_OPERATION"; END ┆
0x1ee00…1ee80 UnusedSector ┆ " R4); "LINK DEST " VAR SV1,SV2,SV4,SV5:INTEGER; BEGIN R1=> SV1┆
0x1ee80…1ef00 UnusedSector ┆; R2=> SV2; R4=> SV4; R5=> SV5; 0 => R1; LTU_STATUS => R2; READ_WORD(R1,R3,R4); "READ LTU STA┆
0x1ef00…1ef80 UnusedSector ┆TUS WORD" IF R3 = R2 THEN BEGIN READ_WORD(R1,R3,R4); IF R3 = R2 THEN LTU_ERROR_HANDLER(R7,R4) ELSE R3 => LTU┆
0x1ef80…1f000 UnusedSector ┆_STATUS; END ELSE R3=> LTU_STATUS; REPEAT 2=> R2; R7@LINCB.CH_I_F_ADDR=> R1; ADDRESS(I_F_TAB)=> R5; READ┆
0x1f000…1f080 UnusedSector ┆_WORDS(R1,R2,R5,R4); R5@I_F_TABLE.TS1_STATUS=> R2; UNTIL R2[BN_SET]; CLEAR_TS1(R7,R4); R5@I_F_TABLE.TX_BUF_ADDR=> R1+2┆
0x1f080…1f100 UnusedSector ┆; ADDRESS(LTU_COM)=> R5; 2=> R2; READ_WORDS(R1,R2,R5,R4); OUTPUT_BLOCK(R5,R7,R4); SV1=> R1; SV2=> R2; SV5=> R5; ┆
0x1f100…1f180 UnusedSector ┆EXIT(SV4); END "LTU_IF"; "---------------------------------------------------------------------" EXPORT PROCEDURE BOOT_HANDLER ┆
0x1f180…1f200 UnusedSector ┆"THIS PROCEDURE HANDLES THE BOOT LOADING OF THE LTU. AT FIRST THE CR80" "INDICATES THAT IT IS READY BY LOADING THE STATUS WORD I┆
0x1f200…1f280 UnusedSector ┆N THE SHARED " "RAM IN THE LTU WITH #AAAA. IF THE LTU IS READY, THE STATUS WORD WILL " "BE LOADED WITH #0000. THE CR80 LOADS TH┆
0x1f280…1f300 UnusedSector ┆E LTU WITH THE BOOT LOAD DATA." "IT IS CHECKED THAT THE STATUS WORD IS VALID, TELLING THAT THE BOOT " "LOAD HAS BEEN SUCCESFUL┆
0x1f300…1f380 UnusedSector ┆, IF NOT A NEW BOOT LOAD IS PERFORMED. " (R4; "REF(INT_OP) KEPT " ┆
0x1f380…1f400 UnusedSector ┆ R7; "REF(LINCB) KEPT " R6); "LINK DEST ┆
0x1f400…1f480 UnusedSector ┆ " LABEL RETURN; VAR LTU_BOOT_COUNT,LTU_BOOT_ADDR,BOOT_CNT:INTEGER; BEGIN R0=> SV20; R1=> SV21; R2=> SV22; R3┆
0x1f480…1f500 UnusedSector ┆=> SV23; R4=> SV24; R5=> SV25; R6=> SV26; R7=> SV27; IF R7@LINCB.MODEOP => R1 <> BOOT_DISMANTLE THEN BEGIN IF R7┆
0x1f500…1f580 UnusedSector ┆@LINCB.CH_STATE => R1 = CH_IDLE THEN BEGIN 0=> R1=> R6; "START ADDRESS TO LTU RAM" LTU_ADD┆
0x1f580…1f600 UnusedSector ┆R => R5 +MCCMD +BLCMD; WIO(R1,R5); "MASTER CLEAR LTU" 20=> R0; BMDELAY => R2; ┆
0x1f600…1f680 UnusedSector ┆ "WAIT 2 SEC." MON(WAITEVENT,R0,R1,R2,R7); #AAAA=> R5; 0 => R1; WRITE_WORD(R1,R5,R4); ┆
0x1f680…1f700 UnusedSector ┆ "WRITE STATUS #AAAA TO LTU" REPEAT 0=> R1; READ_WORD(R1,R3,R4); "READ STATUS WORD" R┆
0x1f700…1f780 UnusedSector ┆6+1; 2=> R0; BMDELAY=> R2; MON(WAITEVENT,R0,R1,R2,R7); "WAIT 200mS" IF R6= 50 THEN B┆
0x1f780…1f800 UnusedSector ┆U_CB)=> R4; 1=> R1=> R4@LTUCB.STATUS; 0=> R4; REPEAT LINTB[R4] => R5; R1=> R5@LINCB.STATUS; R4+1; UNTIL R4=4┆
0x1f800…1f880 UnusedSector ┆; SWITCH FIND_INT_OP(R6,R4) TO ERR, DONE: NOP; END "SWITCH FIND_INT_OP"; R7@LINCB.MESS_HEAD=> R1=> R6@ANS_OP.AOHEAD┆
0x1f880…1f900 UnusedSector ┆; R7@LINCB.MESS_TLST=> R1=> R6@ANS_OP.AOTLST; R7@LINCB.MESS_EVNT=> R1=> R6@ANS_OP.AOEVENT; ANS_OPN=> R1=> R6@ANS_OP.OPN; ┆
0x1f900…1f980 UnusedSector ┆ LTUER=> R0; 1 SHIFTLL BN_ERROR => R1; 0=> R2; R6=> R4; GENERATE_ANSWER_OPERATION(R0,R1,R2,R4,R6); SV0=> R0; SV1=> R┆
0x1f980…1fa00 UnusedSector ┆1; SV2=> R2; SV5=> R5; SV6=> R6; EXIT(SV4); END "LTU_ERROR_HANDLER"; "-------------------------------------------------┆
0x1fa00…1fa80 UnusedSector ┆--------------------" EXPORT PROCEDURE LTU_IF "THIS PROCEDURE TAKES CARE OF THE FIRST DATA TRANSFER TO ONE OF THE " "LTU CHANN┆
0x1fa80…1fb00 UnusedSector ┆ELS FROM THE APPLICATION . " (R7; "REF(LINCB) KEPT ┆
0x1fb00…1fb80 UnusedSector ┆END "SWITCH GETWORD"; R3 => BOOT_CNT; "BOOT FILE BYTE COUNT" R7@LINCB.FREQ -(2=> R0); END; ┆
0x1fb80…1fc00 UnusedSector ┆ REPEAT SWITCH GETBYTE(R3,R4) TO ERR: BEGIN 0=> R2; 1 SHIFTLL BN_ERROR => R┆
0x1fc00…1fc80 UnusedSector ┆1; EMBUF => R0; GOTO RETURN; END; DONE: NOP; "BYTE GOT" ┆
0x1fc80…1fd00 UnusedSector ┆ END "SWITCH GETBYTE"; R3=> R5; WRITE_BYTE(R1,R5,R4); INCD(R0,R1); UNTIL R0=R2; 0=> R0=> R1; END E┆
0x1fd00…1fd80 UnusedSector ┆LSE BEGIN 2=> R1; R7@LINCB.FREQ => R5; IF R5 <> BOOT_CNT => R6 THEN BEGIN BBCER => R0; 1 SHIFTLL B┆
0x1fd80…1fe00 UnusedSector ┆N_ERROR => R1; GOTO RETURN; END; WRITE_WORD(R1,R5,R4); "WRITE BYTE COUNT TO LTU" 1 SHIFTLL 15 =┆
0x1fe00…1fe80 UnusedSector ┆> R5+(1 SHIFTLL 14); "TOGGLE AND EOT BITS SET" 0=> R1; WRITE_WORD(R1,R5,R4); "WRITE STATUS WORD" 0=┆
0x1fe80…1ff00 UnusedSector ┆> R6; REPEAT IF R6=50 THEN BEGIN 1 SHIFTLL BN_ERROR => R1; LTBER => R0; "LT┆
0x1ff00…1ff80 UnusedSector ┆U BOOT ERROR" GOTO RETURN" END; R6+1; 1=> R0; BMDELAY=> R2; MON(WAITEVENT,R0,R1,R2,R7); ┆
0x1ff80…20000 UnusedSector ┆ "WAIT 100mS" 0=> R1; READ_WORD(R1,R3,R4); R3=> R1 SHIFTRL BYTES; UNTIL R1=0; IF R3 EXTRACT BYTES ┆
0x20000…20080 UnusedSector ┆<> 0 THEN BEGIN 1 SHIFTLL BN_ERROR => R1; CHSER => R0 "LTU CHECK SUM ERROR" END E┆
0x20080…20100 UnusedSector ┆LSE BEGIN LTU_ADDR => R5+ MCCMD; 0=> R1; WIO(R1,R5); "MASTER CLEAR LTU" 0=>R┆
0x20100…20180 UnusedSector ┆1=> R0=> R2; SV27=> R7; 0=> R6=> R7@LINCB.CH_STATE; END; END; RETURN: SV27=> R7; SV24=> R4; R7@LINCB.ME┆
0x20180…20200 UnusedSector ┆EGIN 1 SHIFTLL BN_ERROR => R1; LTBER => R0; "LTU BOOT LOAD ERROR" GOTO RETURN; ┆
0x20200…20280 UnusedSector ┆ END; R3=> R1 SHIFTRL BYTES; UNTIL R1=0; IF R3 <> 0 THEN BEGIN LTUER=> R0; ┆
0x20280…20300 UnusedSector ┆ "HARDWARE ERROR IN LTU" 1 SHIFTLL BN_ERROR => R1; GOTO RETURN; END; 2=> R1; READ_WORD(R1┆
0x20300…20380 UnusedSector ┆,R3,R4); "READ BYTE COUNT" R3=> LTU_BOOT_COUNT; 4=> R1; READ_WORD(R1,R3,R4); "READ S┆
0x20380…20400 UnusedSector ┆TART LOAD ADDRESS" R3=> LTU_BOOT_ADDR; SV27=> R7; BOOT_STARTED => R0=> R7@LINCB.CH_STATE; END; CXFER=>┆
0x20400…20480 UnusedSector ┆ R4; R7@LINCB.MESS_HEAD => R0 EXTRACT 2 SHIFTLL XFER_SCP + #E800; R0=> R4@XFER_ELEM.XFERPSW; R7@LINCB.MESS_TLST=> R1┆
0x20480…20500 UnusedSector ┆=> R4@XFER_ELEM.LINK; SWITCH NEXT_XFER_ELEM(R4) TO ERR, DONE: NOP; END "SWITCH NEXT_XFER_ELEM"; SWITCH NE┆
0x20500…20580 UnusedSector ┆XT_XFER_ELEM(R4) TO ERR: BEGIN 1 SHIFTLL BN_ERROR => R1; XFLI0=> R0; GOTO RETURN┆
0x20580…20600 UnusedSector ┆; END; DONE: NOP; "NEXT XFER ELEM FETCHED" END "SWITCH NEXT_XFER_ELEM"; R7@LINCB.┆
0x20600…20680 UnusedSector ┆MESS_COUNT => R2; R7@LINCB.FREQ => R3; LTU_BOOT_ADDR=> R1+R3; "LINCB.FREQ USED AS BOOT CNT" (R7@LINCB.┆
0x20680…20700 UnusedSector ┆FREQ +R2)=> R0; IF LTU_BOOT_COUNT => R6 < R0 THEN BEGIN 1 SHIFTLL BN_ERROR => R1; "BOOT DATA ERROR" ┆
0x20700…20780 UnusedSector ┆ BODER => R0; GOTO RETURN; END; 0=> R0; IF R3 =0 THEN BEGIN SWITCH GETWORD(R3,R4) TO ERR: ┆
0x20780…20800 UnusedSector ┆ BEGIN 1 SHIFTLL BN_ERROR => R1; EMBUF => R0; GOTO RETURN; END; ┆
0x20800…20880 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
[…0x4…]
0x20a80…20b00 UnusedSector ┆Z Z % Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x20b00…20b80 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x20b80…20c00 UnusedSector ┆SS_HEAD=> R6=> R4@ANS_OP.AOHEAD; R7@LINCB.MESS_TLST=> R6=> R4@ANS_OP.AOTLST; R7@LINCB.MESS_EVNT=> R6=> R4@ANS_OP.AOEVENT; ┆
0x20c00…20c80 UnusedSector ┆ANS_OPN=> R6=> R4@ANS_OP.OPN; GENERATE_ANSWER_OPERATION(R0,R1,R2,R4,R6); SV20=> R0; SV21=> R1; SV22=> R2; SV23=> R3; ┆
0x20c80…20d00 UnusedSector ┆ SV25=> R5; EXIT(SV26); END "BOOT_HANDLER"; "----------------------------------------------------------------------" "PAGE ┆
0x20d00…20d80 UnusedSector ┆ EXPORT PROCEDURE RESV_INTRPT "THIS PROCEDURE RESERVES THE INTERRUPT TO THE LTU COROUTINE. " "IF THE INTERRUPT ALREADY┆
0x20d80…20e00 UnusedSector ┆ IS RESERVED BY ANOTHER PROCESS, THE DRIVER " "PROCESS IS STOPPED AND THE ERROR IS REPORTED TO THE CONSOL. " ┆
0x20e00…20e80 UnusedSector ┆ (R4) "LINK DEST " :ERROR_DONE; "0= INTERRUPT NOT RESERVED ┆
0x20e80…20f00 UnusedSector ┆ " "1= INTERRUPT RESERVED " VAR SV1,SV7:INTEGER;┆
0x20f00…20f80 UnusedSector ┆ BEGIN R1=> SV1; R7=> SV7; LTU_ADDR_PRIO => R1; "LTU ADDRESS INTO R1" MON(RESERVEINTERRUPT,R1,R7); ┆
0x20f80…21000 UnusedSector ┆ R1=> INTRPT_RESV; IF R1=-1 THEN BEGIN SV7=> R7; EXIT(R4,ERR); END; MON(CLEARINTERRUPT,R1,R7); "CLE┆
0x21000…21080 UnusedSector ┆AR INTERRUPT COUNTER" SV1=> R1; SV7=> R7; EXIT(R4,DONE); END "RESV_INTRPT"; "--------------------------------------------┆
0x21080…21100 UnusedSector ┆-------------------------" EXPORT PROCEDURE RELS_INTRPT "THIS PROCEDURE CHECKS IF INTRPT IS VALID AND CORRESPONDS TO AN INTER-" ┆
0x21100…21180 UnusedSector ┆"RUPT RESERVED BY THE CALLING PROCESS. IF SO THE INTERRUPT IS RELEASED" "OTHERWISE NO ACTION IS TAKEN. ┆
0x21180…21200 UnusedSector ┆ " (R4); "LINK DEST " VAR SV1,SV7:INTEGER; BEGIN R1=> S┆
0x21200…21280 UnusedSector ┆V1; R7=> SV7; INTRPT_RESV=> R1; MON(RELEASEINTERRUPT,R1,R7); SV1=> R1; SV7=> R7; EXIT(R4); END "RELS_INTRPT"; "----┆
0x21280…21300 UnusedSector ┆-----------------------------------------------------------------" ENDMODULE Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x21300…21380 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
[…0x3…]
0x21500…21580 UnusedSector ┆M.SEC)" UNS(SIZE(XFER_ELEMTYPE)-1,R7); LDS(R6); "RESTORE PSW" STC(SIZE(XFER_ELEMTYPE)-1,CXFER┆
0x21580…21600 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
[…0x1…]
0x21680…21700 UnusedSector ┆ BFD 8 ░ H ░░ | ░ ░ ░ ░ ░ ░BM ░ ░ ░ ░ ░ LT ░GRAF ░ ░ ░ ░ ┆
0x21700…21780 UnusedSector ┆ ░U_DR ░ER ░ ░ ░ ░LTU_ ░.SS ░ ░ ░ ░ CB ░ROC. ░ ░ ░ ░ ░IV_P ░C.SS ░ ░ ░ ┆
0x21780…21800 UnusedSector ┆ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░┆
0x21800…21880 UnusedSector ┆ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░░░ ┆
0x21880…21900 UnusedSector ┆SUBMODULE XFER_PROCEDURES; "-------------------------------------------------------------------- " " PROJECT: X "┆
0x21900…21980 UnusedSector ┆ " MODULE NAME: XFER_PROCEDURES " MODULE ID NMB: 0010 " MODULE VERSION: 0001 " MODULE TYPE: ┆
0x21980…21a00 UnusedSector ┆ SUBMODULE " MODULE FILES: X " MERGE FILES: LTU_DRIV_PREFX.C " @**GENS.D*SWELLPRE┆
0x21a00…21a80 UnusedSector ┆FIX.D*GENERALPARAMS.S " *DRIVERPARAMS.S " ┆
0x21a80…21b00 UnusedSector ┆ *DMADRVPARAMS.S " *MONITORNAMES.S " ┆
0x21b00…21b80 UnusedSector ┆ *COMONPARAMS.S " SPECIFICATIONS: X " AUTHOR/DATE: OH/810617 " " DELIVERABLE: YES " SOUR┆
0x21b80…21c00 UnusedSector ┆CE LANGUAGE: SWELL " COMPILE COMPUTER: CR80 " TARGET COMPUTER: CR80 " OPERATING SYSTEM: AMOS " "-------┆
0x21c00…21c80 UnusedSector ┆------------------------------------------------------------- " " CHANGE RECORD " " VERSION AUTHOR/DATE DESCRIPTION OF CH┆
0x21c80…21d00 UnusedSector ┆ANGE " ------- ----------- --------------------- " "-------------------------------------------------------------------- "┆
0x21d00…21d80 UnusedSector ┆ %SOURCE @**GENS.D*SWELLPREFIX.D*GENERALPARAMS.S %SOURCE @**GENS.D*SWELLPREFIX.D*DRIVERPARAMS.S %SOURCE @**GENS.D*SWELLPREFIX.┆
0x21d80…21e00 UnusedSector ┆D*MONITORNAMES.S %SOURCE @**GENS.D*SWELLPREFIX.D*COMONPARAMS.S %SOURCE @**GENS.D*SWELLPREFIX.D*DMADRVPARAMS.S %SOURCE LTU_DRIV_P┆
0x21e00…21e80 UnusedSector ┆REFX.C %PRINT VAR SV12, SV14, SV15, SV17, SV33, SV34, SV43, SV44, SV53:INTEGER; "┆
0x21e80…21f00 UnusedSector ┆REGISTER SAVE AREAS" EXPORT VAR CFER:XFER_ELEM; CONST CXFER=ADDRESS(CFER); "---------------------------------------------┆
0x21f00…21f80 UnusedSector ┆-------------------------" EXPORT PROCEDURE NEXT_XFER_ELEM "THE NEXT XFER ELEMENT IF ANY IS FETCHED INTO CXFER. ┆
0x21f80…22000 UnusedSector ┆ " (R4) "LINK DEST " :ERROR_DONE; "0= NONE ┆
0x22000…22080 UnusedSector ┆ " "1= OK " VAR ┆
0x22080…22100 UnusedSector ┆ REGSTACK:ARRAY[0..7] OF INTEGER; SV4:INTEGER; BEGIN R4=> SV4; R7=> REGSTACK[7]; STC(6,ADDRESS(REGSTACK)+7=> R7); CX┆
0x22100…22180 UnusedSector ┆FER=> R4; IF R4@XFER_ELEM.LINK=> R7=0 THEN BEGIN REGSTACK[7]=> R7; EXIT(SV4); "NONE" END;┆
0x22180…22200 UnusedSector ┆ R7-CBASE@INTEGER; SVS(R6); "SAVE PSW" LDS(R4@XFER_ELEM.XFERPSW=> R5); "SWITCH(XFER_ELE┆
0x22200…22280 UnusedSector ┆ " "IF IT CONTAINS A TRANSFER COMMAND THE XFER LIST ELEMENT IS FETCHED " "INTO CXFER. RETURN IS MADE TO XFER. ┆
0x22280…22300 UnusedSector ┆ " (R1; "REF(MSG) KEPT " R2; "-- ┆
0x22300…22380 UnusedSector ┆ EVENT(IF CANCEL) " R4) "LINK DEST " :0┆
0x22380…22400 UnusedSector ┆..2;"0= FAULT " "1= CANCEL ┆
0x22400…22480 UnusedSector ┆ " "2= XFER " LABEL RETURN; BEGIN R4=> SV14; R5=> S┆
0x22480…22500 UnusedSector ┆V15; R1=> R5; "REF(MSG)=> R5" NOP; R5@DMADRV_MESSAGE.OPERATION => R2 SHIFTRL MESS_CMP EXTRACT┆
0x22500…22580 UnusedSector ┆ MESS_CML; IF R2=MESS_CABORT THEN BEGIN "COMMAND= CANCEL" R5@DMADRV_MESSAGE.TRANSFER_LIS┆
0x22580…22600 UnusedSector ┆T => R2; R4+1; GOTO RETURN; END; IF R2<>MESS_CXFER THEN BEGIN "COMMAND<>XFER" ┆
0x22600…22680 UnusedSector ┆GOTO RETURN; "RETURN FAULT" END; R5@DMADRV_MESSAGE.OPERATION => R2 EXTRACT (MESS_SCP+MESS_SCL)+#E800;┆
0x22680…22700 UnusedSector ┆ CXFER=> R4; R2=> R4@XFER_ELEM.XFERPSW; "TRANS. SECTION=>XFERPSW" R5@DMADRV_MESSAGE.TRANSFER_LIST=> R2=> R4@XFE┆
0x22700…22780 UnusedSector ┆R_ELEM.LINK; SWITCH NEXT_XFER_ELEM(R4) TO ERR: SV14=>R4; "NONE" DONE: SV14=> R4+2; ┆
0x22780…22800 UnusedSector ┆ "OK" END; RETURN: SV15=> R5; NOP; EXIT(R4); END "CHECK_OPERATION"; "***********************************************┆
0x22800…22880 UnusedSector ┆************************" EXPORT PROCEDURE PUTBYTE "THIS PROCEDURE CHECKS THAT THE CURRENT XFER LIST ELEMENT CONTAINS A " "┆
0x22880…22900 UnusedSector ┆REFERENCE TO A NON EMPTY INPUT BUFFER. IF NOT, RETURN IS MADE TO ERROR." "PUTS THE BYTE AT THE NEXT BYTE POSITION IN THE INPUT B┆
0x22900…22980 UnusedSector ┆UFFER. IF NOT " "ROOM FOR ANY MORE BYTES, RETURN IS MADE TO LAST. " (R3; "BYTE ┆
0x22980…22a00 UnusedSector ┆ KEPT " R4) "LINK DEST " :0..2;"┆
0x22a00…22a80 UnusedSector ┆0= ERROR " "1= LAST ┆
0x22a80…22b00 UnusedSector ┆ " "2= MORE " LABEL PUTBYTE2; VAR SV1:INTEGER; BEGIN R4┆
0x22b00…22b80 UnusedSector ┆=> SV14; CXFER=> R4; R4@XFER_ELEM.OP=> R4 SHIFTRL XFER_CMP EXTRACT XFER_CML; IF R4<>XFER_CINP THEN BEGIN EXIT(SV14);┆
0x22b80…22c00 UnusedSector ┆ "RETURN(ERROR)" END; CXFER=> R4; IF R4@XFER_ELEM.COUNT=0 THEN BEGIN ┆
0x22c00…22c80 UnusedSector ┆ "BUFFER EMPTY" EXIT(SV14); "RETURN(ERROR)" END; R5=> SV15; R2=> SV12; R1=> SV1; R4@XF┆
0x22c80…22d00 UnusedSector ┆+SIZE(XFER_ELEMTYPE)=> R7); CXFER=> R4; NOP; R0 EXTRACT (XFER_SCP+XFER_SCL)+#E800=> R4@XFER_ELEM.BUFFPSW; R4@XFER_ELEM.C┆
0x22d00…22d80 UnusedSector ┆OUNT=> R0=> R4@XFER_ELEM.XFOCNT; UNS(7,ADDRESS(REGSTACK)=> R7); EXIT(SV4=> R4,DONE); END "NEXT_XFER_ELEM"; "***************┆
0x22d80…22e00 UnusedSector ┆********************************************************" EXPORT PROCEDURE CHECK_OPERATION "THE REFERENCED SYSTEM MSG IS INSPEC┆
0x22e00…22e80 UnusedSector ┆TED. IF IT DOES NOT HAVE A PROPER " "FORMAT, RETURN IS MADE TO FAULT. " "IF IT CONTAINS ┆
0x22e80…22f00 UnusedSector ┆A CANCEL COMMAND, RETURN IS MADE TO CANCEL AND THE " "EVENT TO BE CANCELLED IS PRODUCED. ┆
0x22f00…22f80 UnusedSector ┆ SV1:INTEGER; BEGIN R1=> SV1; R2=> SV12; R4=> SV14; R5=> SV15; R7=> SV17; REPEAT "┆
0x22f80…23000 UnusedSector ┆TILL NOT EMPTY" CXFER=> R4; R4@XFER_ELEM.OP=> R2 SHIFTRL XFER_CMP EXTRACT XFER_CML; IF R2<>XFER_COUT THEN BEGIN ┆
0x23000…23080 UnusedSector ┆ SV12=> R2; EXIT(SV14); "ILLEGAL CMD, RETURN NONE" END; IF R4@XFER_ELEM.COUNT=> R3=0 TH┆
0x23080…23100 UnusedSector ┆EN BEGIN "BUFFER EMPTY" SWITCH NEXT_XFER_ELEM(R4) TO ERR: BEGIN ┆
0x23100…23180 UnusedSector ┆ SV12=> R2; EXIT(SV14); "RETURN NONE" END; DONE: NOP; "D┆
0x23180…23200 UnusedSector ┆ONE" END; END; UNTIL R3<>0; CXFER=> R4; "GET BYTE:" R4@XFER_ELEM.ADDR=┆
0x23200…23280 UnusedSector ┆> R5-CBASE@INTEGER; R4@XFER_ELEM.OFFSET=> R7; SVS(R2); "SAVE PSW" LDS(R4@XFER_ELEM.BUFFPSW=> ┆
0x23280…23300 UnusedSector ┆R1); R5@BYTEARR[R7]=> R3; LDS(R2); "RESTORE PSW" INC(R4@XFER_ELEM.OFFSET); DEC(R4@XFER_ELEM┆
0x23300…23380 UnusedSector ┆.COUNT); SV1=> R1; SV12=> R2; SV14=> R4; SV15=> R5; SV17=> R7; EXIT(R4,DONE); "RETURN(MORE)" ┆
0x23380…23400 UnusedSector ┆END "GETBYTE"; "***********************************************************************" EXPORT PROCEDURE PUTWORD "SIMILAR TO┆
0x23400…23480 UnusedSector ┆ PUTBYTE. " (R3; "WORD KEPT ┆
0x23480…23500 UnusedSector ┆ " R4) "LINK DEST " :0..2;"0= ERROR ┆
0x23500…23580 UnusedSector ┆ " "1= LAST " "2= MORE ┆
0x23580…23600 UnusedSector ┆ " BEGIN R4=> SV44; R3=> SV53; SWITCH PUTBYTE(R3,R4) TO "PUTB┆
0x23600…23680 UnusedSector ┆YTE(WORD LOWER)" 0,1: EXIT(SV44); "0 ERROR,RETURN(ERROR)" "1 LAST┆
0x23680…23700 UnusedSector ┆ER_ELEM.ADDR=> R5-CBASE@INTEGER; R7=> SV17; R4@XFER_ELEM.OFFSET=> R7; SVS(R1); "SAVE PSW" L┆
0x23700…23780 UnusedSector ┆DS(R4@XFER_ELEM.BUFFPSW=> R2); R3=> R5@BYTEARR[R7]; LDS(R1); "RESTORE PSW" INC(R4@XFER_ELEM.O┆
0x23780…23800 UnusedSector ┆FFSET); DEC(R4@XFER_ELEM.COUNT); SV1=> R1; SV12=> R2; SV15=> R5; SV17=> R7; PUTBYTE2: IF R4@XFER_ELEM.COUNT<>0 THEN┆
0x23800…23880 UnusedSector ┆ BEGIN EXIT(SV14=> R4+2); "RETURN(MORE)" END ELSE BEGIN SWITCH NEXT_XFER_ELEM(R4) TO ERR:┆
0x23880…23900 UnusedSector ┆ EXIT(SV14=> R4+1); "RETURN(LAST)" DONE: GOTO PUTBYTE2; END; END; END "PUTBYTE"; "***********************┆
0x23900…23980 UnusedSector ┆************************************************" EXPORT PROCEDURE GETBYTE "THIS PROCEDURE CHECKS THAT THE CURRENT XFER LIST E┆
0x23980…23a00 UnusedSector ┆LEMENT CONTAINS A " "REFERENCE TO AN OUTPUT BUFFER. IF NOT RETURN IS MADE TO NONE. IF THE " "BUFFER IS EMPTY, THE NEXT XFER┆
0x23a00…23a80 UnusedSector ┆ ELEMENT IS FETCHED. THE XFER LIST " "ELEMENT IS PROCESSED AS THE PREVIOUS. IF THE BUFFER IS NON EMPTY, THE " "NEXT BYTE ┆
0x23a80…23b00 UnusedSector ┆IS DELIVERED AND RETURN IS MADE TO MORE. " (R3; "-- BYTE ┆
0x23b00…23b80 UnusedSector ┆ " R4) "LINK DEST " :ERROR_DONE; "0= NONE ┆
0x23b80…23c00 UnusedSector ┆ " "1= MORE " VAR┆
0x23c00…23c80 UnusedSector ┆ " LABEL ERR1; BEGIN R3=> SV33; R4=> SV34; REPEAT SWITCH NEXT_XFER_ELEM(R4) TO ┆
0x23c80…23d00 UnusedSector ┆ ERR: 0=> R3; "NONE,CONTINUE" DONE: 1=> R3; "OK,NEXT_XFER_ELEM" END; UNTIL┆
0x23d00…23d80 UnusedSector ┆ R3<>1; "UNTIL LAST ELEMENT" R0=> R3; NOP; SWITCH PUTWORD(R3,R4) TO "PUTWORD(RESULT,┆
0x23d80…23e00 UnusedSector ┆ 0,1: GOTO ERR1; "FAULT,LAST:GOTO ERR1" 2: NOP; "MORE :CONTINUE" ┆
0x23e00…23e80 UnusedSector ┆END; R1=> R3; NOP; SWITCH PUTWORD(R3,R4) TO "PUTWORD(BYTECNT. LOWER)" 0,1: GOTO ERR1; ┆
0x23e80…23f00 UnusedSector ┆ "FAULT,LAST:GOTO ERR1" 2: NOP; "MORE :CONTINUE" END; R2=> R3; SWITCH PUTWORD(R3,R4┆
0x23f00…23f80 UnusedSector ┆) TO "PUTWORD(BYTECNT. UPPER)" 0: GOTO ERR1; "FAULT:GOTO ERR1" 1,2: NOP; ┆
0x23f80…24000 UnusedSector ┆ "LAST,MORE:CONTINUE" END; SV33=> R3; NOP; EXIT(SV34=> R4,DONE); "RETURN(OK)" ERR1: SV3┆
0x24000…24080 UnusedSector ┆3=> R3; NOP; EXIT(SV34=> R4,ERR); "RETURN(ERROR)" END "TERMINATE_OPERATION"; "****************************┆
0x24080…24100 UnusedSector ┆,RETURN(LAST)" 2: NOP; "2 MORE,CONTINUE" END; NOP; R3 SHIFTRL 8; SWITCH PUTBYTE(R3,R4) ┆
0x24100…24180 UnusedSector ┆TO "PUTBYTE(WORD UPPER" 0: EXIT(SV44); "ERROR, RETURN(ERROR)" 1: SV44=> R4+1; ┆
0x24180…24200 UnusedSector ┆ "LAST, RETURN(LAST)" 2: SV44=> R4+2; "MORE, CONTINUE" END; SV53=> R3; ┆
0x24200…24280 UnusedSector ┆ "RESTORE WORD" EXIT(R4); END "PUTWORD"; "***********************************************************************" ┆
0x24280…24300 UnusedSector ┆EXPORT PROCEDURE GETWORD "SIMILAR TO GETBYTE, EXCEPT THE NEXT WORD IF ANY IS FETCHED. " (R3; "-- ┆
0x24300…24380 UnusedSector ┆ WORD " R4) "LINK DEST " ┆
0x24380…24400 UnusedSector ┆:ERROR_DONE; "0= NONE " "1= OK ┆
0x24400…24480 UnusedSector ┆ " BEGIN R4=> SV44; SWITCH GETBYTE(R3,R4) TO "GETBYTE(WORD LOWER)" ERR: EXIT┆
0x24480…24500 UnusedSector ┆(SV44); "NONE, RETURN(NONE)" DONE: NOP; "OK, CONTINUE" END; R3=> SV53; ┆
0x24500…24580 UnusedSector ┆ "SAVE LOWER BYTE" SWITCH GETBYTE(R3,R4) TO "GETBYTE(WORD UPPER)" ERR: EXIT(SV44); ┆
0x24580…24600 UnusedSector ┆ "NONE, RETURN(NONE)" DONE: NOP; "OK, CONTINUE" END; R3 SHIFTLL 8 +(SV53 => R4);┆
0x24600…24680 UnusedSector ┆ "UPPER/_8 +LOWER=> WORD" EXIT(SV44=> R4,DONE); END "GETWORD"; "***************************************************┆
0x24680…24700 UnusedSector ┆********************" EXPORT PROCEDURE TERMINATE_OPERATION "THIS PROCEDURE SKIPS FORWARD TO THE LAST XFER ELEMENT AND STORES T┆
0x24700…24780 UnusedSector ┆HE " "RESULT AND THE BYTECOUNT(=NUMBER OF TRANSFERRED BYTES). " (R0; "RESULT K┆
0x24780…24800 UnusedSector ┆EPT(COMPLETION CODE) " R1; "BYTECOUNT(LEAST SIGF PART) KEPT " R2; "BYTECOUNT(MO┆
0x24800…24880 UnusedSector ┆ST SIGF KIND) KEPT " R4) "LINK DEST " ┆
0x24880…24900 UnusedSector ┆ :ERROR_DONE; "0= ERROR " "1= OK ┆
0x24900…24980 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
[…0x2…]
0x24a80…24b00 UnusedSector ┆******************************************" EXPORT PROCEDURE NEXT_OPERATION "THE REFERENCED SYSTEM MESSAGE IS INSPECTED. IF IT┆
0x24b00…24b80 UnusedSector ┆ DOES NOT HAVE A " "PROPER FORMAT, RETURN IS MADE TO ERROR. IF IT CONTAINS A CANCEL CMD " "RETURN IS MADE TO CANCEL AND TH┆
0x24b80…24c00 UnusedSector ┆E EVENT TO BE CANCLLED IS DELIVERED. " "IF THE MESSAGE CONTAINS A PROPER I/O COMMAND, RETURN IS MADE TO CMD. " "AND THE OPERA┆
0x24c00…24c80 UnusedSector ┆TION CODE AND BYTECOUNT ARE RETURNED. " (R0; "-- BYTECOUNT(LEAST SIGF PA┆
0x24c80…24d00 UnusedSector ┆RT)" R1; "REF(MSG) BYTECOUNT(MOST SIGF PART) " R2; "-- OPERA┆
0x24d00…24d80 UnusedSector ┆TION/EVENT " R4) "LINK DEST " :0..2;"0= ERROR ┆
0x24d80…24e00 UnusedSector ┆ " "1= CANCEL " "┆
0x24e00…24e80 UnusedSector ┆2= COMMAND " BEGIN R4=> SV34; SWITCH CHECK_OPERATION(R1,R2,R4) TO 0: EXI┆
0x24e80…24f00 UnusedSector ┆T(SV34); "ERROR,RETURN(ERROR)" 1: EXIT(SV34=> R4+1); "CANCEL,RETURN(CANCEL)" 2: NOP; ┆
0x24f00…24f80 UnusedSector ┆ "XFER,CONTINUE" END; R3=> SV33; SWITCH GETWORD(R3,R4) TO ERR: ┆
0x24f80…25000 UnusedSector ┆ "NONE,GOTO ERROR" BEGIN SV33=> R3; EXIT(SV34); END; DONE: NOP; "OK,┆
0x25000…25080 UnusedSector ┆WORD=> OPERATION" END; R3=> R2; 8=> R1; WHILE R1<>1 DO BEGIN R3=> R0; "WORD=> CNT LOWE┆
0x25080…25100 UnusedSector ┆R" SWITCH GETWORD(R3,R4) TO ERR: "NONE;GOTO ERROR" BEGIN SV33=> R3; ┆
0x25100…25180 UnusedSector ┆ EXIT(SV34); END; DONE: NOP; "OK,CONTINUE" END; R1-1; END; R3=> R1; ┆
0x25180…25200 UnusedSector ┆ "WORD=> CNT UPPER" SWITCH NEXT_XFER_ELEM(R4) TO ERR, DONE: NOP; "NON┆
0x25200…25280 UnusedSector ┆E,OK,CONTINUE" END; SV33=> R3; EXIT(SV34=> R4+2); END "NEXT_OPERATION"; ENDMODULE Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x25280…25300 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
[…0x5…]
0x25580…25600 UnusedSector ┆Z Z , 1 6 Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x25600…25680 UnusedSector ┆ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░░░ ┆
0x25680…25700 UnusedSector ┆"-----------------------------------------------------------------------" " ┆
0x25700…25780 UnusedSector ┆ " PROCEDURE DUMMY_COR" "THIS DUMMY COROUTINE RECIEVES ALL THE SYSTEM ANSWERS THAT THE DRIVER " "ITSELF SENDS┆
0x25780…25800 UnusedSector ┆ OUT AS AN ANSWER TO ITS OWN SYSTEM MESSAGES. " (R4); "LINK DEST ┆
0x25800…25880 UnusedSector ┆ " BEGIN ADDRESS(SEM_OPDUMMY)=> R5; REPEAT MON(COR,AMON,WAIT_OP,R4,R5,R7); UNTIL R0<>R0; EXIT(R4); END "DUMMY_C┆
0x25880…25900 UnusedSector ┆OR"; "-----------------------------------------------------------------------" " ┆
0x25900…25980 UnusedSector ┆ " " ANSWER COROUTINE " " ┆
0x25980…25a00 UnusedSector ┆ " "-----------------------------------------------------------------------" PROCEDUR┆
0x25a00…25a80 UnusedSector ┆E ANS_COR "THIS COROUTINE FILLS UP THE SYSTEM STATUS RECORD WITH THE COMPLETION " "CODE AND BYTECOUNT/CON_ID AND IT SENDS THE┆
0x25a80…25b00 UnusedSector ┆ RESULT OF THE SYSTEM MESSAGE" "TO THE SYSTEM. " (R4); "LINK ┆
0x25b00…25b80 UnusedSector ┆ DEST " VAR SV24:INTEGER; BEGIN R4=> SV24; REPEAT MON(COR,AMON,WAIT_OP┆
0x25b80…25c00 UnusedSector ┆,R4,ADDRESS(SEM_OPANS)=> R5,R7); R4=> OPREF; "SAVE OPERATION ADDRESS" NOP; IF R4@ANS_OP.OPN=┆
0x25c00…25c80 UnusedSector ┆> R0=ANS_OPN_ERR THEN BEGIN 1 SHIFTLL BN_ERROR=> R0; "FORMAT ERROR IN CHECK OPR." FOMER => R1 SHIFTLL 8┆
0x25c80…25d00 UnusedSector ┆ => R4@ANS_OP.AOHEAD; END ELSE BEGIN R4@ANS_OP.AOHEAD=> R0 EXTRACT 2 SHIFTLL 2 + #E800; "TRANS SECTION" ┆
0x25d00…25d80 UnusedSector ┆R4@ANS_OP.AOHEAD=> R1 SHIFTRL 2 EXTRACT 2 SHIFTLL 2 + #E800; "BUFFER SECTI┆
0x25d80…25e00 UnusedSector ┆ON" CXFER=> R5; R4@ANS_OP.AOTLST=> R2=> R5@XFER_ELEM.LINK;"ABS TRANS LIST ADDRESS" ┆
0x25e00…25e80 UnusedSector ┆ "INTO TRANSFER LIST" R0=> R5@XFER_ELEM.XFERPSW; R1=> R5@XFER_ELEM.BUFFPSW; R4@ANS_OP.AOCC=> R0;┆
0x25e80…25f00 UnusedSector ┆ "COMPLETION CODE=> R0" R4@ANS_OP.AOCNT=> R1; "BYTE COUNT=> R1" 0=> R2; ┆
0x25f00…25f80 UnusedSector ┆ "EXTEND BYTE COUNT TO LONG" SWITCH TERMINATE_OPERATION(R0,R1,R2,R4) TO ERR: 1 SHIFTLL BN_ERROR=> R0; "ERR┆
0x25f80…26000 UnusedSector ┆OR, RESULT<>0" DONE: 0=> R0; "OK, RESULT=0" END; OPREF=> R4; END; R4@ANS_OP.AOHE┆
0x26000…26080 UnusedSector ┆AD=> R3 SHIFTRL 8; "TAKE RESULT" R3=> OP.BUF[1]; "SET COMPLETION CODE" R0=> OP.BUF[0]; ┆
0x26080…26100 UnusedSector ┆ "SET RESULT" R4@ANS_OP.AOEVENT=> R2=> OP.EVT; 0=> R4@INTEGER; "RELEASE INT OP" ADDRESS┆
0x26100…26180 UnusedSector ┆(OP)=> R4; NOP; MON(COR,AMON,CM_SEND_SYS_ANS,R4,R7); UNTIL R0<>R0; EXIT(SV24); END "ANSCOR"; "---------------------┆
0x26180…26200 UnusedSector ┆ BFD * ░ H ░░ | ░ ░ ░ ░ ░ ░BM ░ ░ ░ ░ ░ LT ░GRAF ░ ░ ░ ░ ┆
0x26200…26280 UnusedSector ┆ ░U_DR ░ER ░ ░ ░ ░LTU_ ░.SS ░ ░ ░ ░ CB ░ROC. ░ ░ ░ ░ ░IV_P ░C.SS ░ ░ ░ ┆
0x26280…26300 UnusedSector ┆ ░XFER ░ROC. ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░┆
0x26300…26380 UnusedSector ┆LE.TS1_STATUS=> R4; IF R4[BN_SET] THEN OUTPUT_TEXT(R7,R4); END; MESS_OP_APPEND: LTU_IF(R7,R4); END "CA┆
0x26380…26400 UnusedSector ┆SE"; UNTIL R0 <> R0; END "LTU_COR"; "--------------------------------------------------------------------" PROCEDURE PDP_COR ┆
0x26400…26480 UnusedSector ┆"THIS COROUTINE CONTROLS THE DATA TRANSFER BETWEEN THE APPLICATION " "AND THE LTU. IT RECIEVES AN INTERNAL OPERATION FROM THE ┆
0x26480…26500 UnusedSector ┆APPLICATION " "INTERFACE COROUTINE AND DEPENDING UPON THE COMMAND(THE OP_TYPE) IT " "HANDLES THE OPERATION, AND IF THE COMMAND ┆
0x26500…26580 UnusedSector ┆IS A BOOT OR A WRITE COM- " "MAND IT SENDS AN INTERNAL OPERATION TO THE LTU COROUTINE. " (R4); "LINK ┆
0x26580…26600 UnusedSector ┆ DEST " BEGIN REPEAT 0=> R3; MON(COR,AMON,WAIT_OP,R4,ADDRESS(SEM_OPPDP)=> R5,R7); ┆
0x26600…26680 UnusedSector ┆ R4@MES_OP.MOLINEREF=> R7; "R7 CONTAINS REF(LINCB)" NOP; IF R7@LINCB.STATUS <>0 THEN BEGIN LTU┆
0x26680…26700 UnusedSector ┆ER => R1; "LTU ERROR, STATUS <> 0" 1 SHIFTLL BN_ERROR => R0; 0=> R2; GENERATE_ANSWER_O┆
0x26700…26780 UnusedSector ┆PERATION(R0,R1,R2,R4,R6); END ELSE BEGIN R4@MES_OP.OPN=> R5; CASE R5 OF MESS_OP_BOOT: BEGIN ┆
0x26780…26800 UnusedSector ┆ UPDATE_LINCB(R4,R7,R6); 1=> R3; END; MESS_OP_APPEND: BEGIN IF R7@LINCB.CH_STATE=> R1= CH_IDLE TH┆
0x26800…26880 UnusedSector ┆EN BEGIN UPDATE_LINCB(R4,R7,R6); 1=> R3; CH_WRITE=> R1=> R7@LINCB.CH_STATE; END ┆
0x26880…26900 UnusedSector ┆ ELSE BEGIN R4@MES_OP.MOEVENT => R2; MON(SAVEEVENT,R2,R7); END; END; MESS_OP_REA┆
0x26900…26980 UnusedSector ┆D: BEGIN QUEUE_OPERATION(R4,R7,R6); END; END "CASE"; IF R3=1 THEN MON(COR,AMON,SIGNAL_OP,┆
0x26980…26a00 UnusedSector ┆R4,ADDRESS(SEM_OPLTU)=> R5,R7); BNSYSTEMMESSAGE=> R2; MON(RECOVEREVENTS,R2,R7); END; UNTIL R0 <> R0; EXIT(R4┆
0x26a00…26a80 UnusedSector ┆); END "PDP_COR"; "--------------------------------------------------------------------" Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x26a80…26b00 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
[…0x1…]
0x26b80…26c00 UnusedSector ┆--------------------------------------------------" PROCEDURE LTU_COR "THIS COROUTINE HANDLES ALL DATA TRANSFER BETWEEN THE APPL┆
0x26c00…26c80 UnusedSector ┆ICATION AND " "THE LTU. FURTHER IT RECIEVES THE INTERRUPTS FROM THE LTU AND SCANS ALL" "THE LTU COMMUNICATION TABLES. ┆
0x26c80…26d00 UnusedSector ┆ " (R4); "LINK DEST " BEGIN REPEAT A┆
0x26d00…26d80 UnusedSector ┆DDRESS(OP_EXT_INTRPT)=> R4; INTRPT=> R1=> R4@EXT_OP.OPN; "EXT OPTYPE=INTRPT" ADDRESS(SEM_OPLTU)=> R5=> R4@EX┆
0x26d80…26e00 UnusedSector ┆T_OP.SEM; MON(COR,AMON,SEM_ALLOC_INT,R4,R7); MON(COR,AMON,WAIT_OP,R4,R5,R7); NOP; R4@EXT_OP.OPN=> R6; IF R6 ┆
0x26e00…26e80 UnusedSector ┆<> INTRPT THEN BEGIN R4@TRANS_OP.TOLINEREF=> R7; "REF(LINCB)=> R7" IF R6 <> MESS_OP_BOOT THEN 0=┆
0x26e80…26f00 UnusedSector ┆>R4@INTEGER; "RELEASE INT OP" END; CASE R6 OF INTRPT: INTERRUPT_HANDLER(R4); MESS_OP_BOOT: ┆
0x26f00…26f80 UnusedSector ┆ BOOT_HANDLER(R4,R7,R6); "INIT_CMD: "INIT_LINE(R7,R4); CH_READ_BREAK: BEGIN 3=> R2; ┆
0x26f80…27000 UnusedSector ┆ "WORD COUNT=3" R7@LINCB.CH_I_F_ADDR=> R1; ADDRESS(I_F_TAB)=> R5; READ_WORDS(R1,R2,R5,R4); R5@I_F_TAB┆
0x27000…27080 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x27080…27100 UnusedSector ┆ BFD 1 ; ░ H ░░ | ░ ░ ░ ░ ░ ░BM ░ ░ ░ ░ ░ LT ░GRAF ░ ░ ░ ░ ┆
0x27100…27180 UnusedSector ┆ ░U_DR ░ER ░ ░ ░ ░LTU_ ░.SS ░ ░ ░ ░ CB ░ROC. ░ ░ ░ ░ ░IV_P ░C.SS ░ ░ ░ ┆
0x27180…27200 UnusedSector ┆ ░XFER ░ROC. ░ ░ ░ ░ SU ░COR. ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░┆
0x27200…27280 UnusedSector ┆ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░░░ ┆
0x27280…27300 UnusedSector ┆EXPORT PROCEDURE GENERATE_ANSWER_OPERATION (R0; "COMPLETION CODE DEST " R┆
0x27300…27380 UnusedSector ┆1; "RESULT DEST " R2; "BYTECOUNT KEPT ┆
0x27380…27400 UnusedSector ┆ " R4; "OPERATION ADDRESS KEPT " R6); "LINK ┆
0x27400…27480 UnusedSector ┆ DEST " VAR SV26,SV27:INTEGER; BEGIN R6=> SV26; R7=> SV27; R0=> R4@ANS_OP.AOCC; ┆
0x27480…27500 UnusedSector ┆ "SET COMPLETION CODE" R2=> R4@ANS_OP.AOCNT; "SET BYTE COUNT/FILE ID" R4@ANS_OP.AOHEAD=> R0 SHIFTLL 8; ┆
0x27500…27580 UnusedSector ┆ "PACK RESULT WITH SECTION BITS" R0+R1; SWP(R0); R0=> R4@ANS_OP.AOHEAD; "SET RESULT" R5=> R0; ┆
0x27580…27600 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
[…0xb…]
0x27b80…27c00 UnusedSector ┆Z Z = B G L Q Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x27c00…27c80 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
[…0x1…]
0x27d00…27d80 UnusedSector ┆SWITCH MON(LOOKUPPROCESS,R0,R7):ERROR_DONE TO ERR: "PROCESS UNKNOWN" BEGIN ┆
0x27d80…27e00 UnusedSector ┆ LCBREF => R7; "REF TO LINCB INTO R7" 10=> R2=> R7@LINCB_BREAK.OUT_BTCNT; ADDRESS(UNKNOWN)┆
0x27e00…27e80 UnusedSector ┆=> R2=> R7@LINCB_BREAK.OUT_ADDR; MON(COR,AMON,SIGNAL_OP,R4,ADDRESS(SEM_OPLTU)=> R5,R7); EXIT(R6,NO_ANSWER); ┆
0x27e80…27f00 UnusedSector ┆ END; DONE: NOP; "PROCESS FOUND" END "SWITCH MON(LOOKUPPROCESS)"; LCBREF => R7; SWITCH┆
0x27f00…27f80 UnusedSector ┆ DEQUEUE_OPERATION(R0,R7,R6) TO ERR: NOP; DONE: BEGIN OPREF => R4; 0 => R4@INTEGER; ┆
0x27f80…28000 UnusedSector ┆ "SAVE R5" MON(COR,AMON,SIGNAL_OP,R4,ADDRESS(SEM_OPANS)=> R5,R7); R0=> R5; "RE┆
0x28000…28080 UnusedSector ┆ESTABLISH R5" SV27 => R7; EXIT(SV26); END "GENERATE_ANSWER_OPERATION"; "---------------------------------------------------┆
0x28080…28100 UnusedSector ┆-------------------" EXPORT PROCEDURE DEQUEUE_OPERATION "THIS PROCEDURE DEQUEUES THE TRANSFER QUEUE. IF ANY QUEUED OPERATION "┆
0x28100…28180 UnusedSector ┆ "THE FIRST OPERATION IS WRITTEN INTO THE LINCB AND THE STATE IS SET " "ACCORDING TO THE OPERATION. ┆
0x28180…28200 UnusedSector ┆ " (R0; "PCB INDEX KEPT " R7; "REF(LINCB) ┆
0x28200…28280 UnusedSector ┆ KEPT " R6) "LINK DEST " :ERROR_DONE; ┆
0x28280…28300 UnusedSector ┆ "0= NOT FOUND " "1= FOUND ┆
0x28300…28380 UnusedSector ┆ " LABEL FOUND,RETURN; VAR SV2,SV4,SV5,SV6:INTEGER; BEGIN R2=> SV2; R4=> SV4; R5=> SV5; R6=> SV6; R7@┆
0x28380…28400 UnusedSector ┆LINCB.TRQUEADDR=> R6=> R5; WHILE R6 <> 0 DO BEGIN REPEAT IF R6@MES_OP.MOPCB => R4=R0 THEN GOTO FOUND E┆
0x28400…28480 UnusedSector ┆LSE R6@INTEGER => R6; UNTIL R6= R7@LINCB.TRQUEADDR; GOTO RETURN; FOUND: IF R6@INTEGER= R6 THEN BEGIN ┆
0x28480…28500 UnusedSector ┆ 0=> R4=> R7@LINCB.TRQUEADDR; R6=> R4; 0=> R2=> R6@INTEGER END ELSE BEGIN R6=> R4; WHILE R4@┆
0x28500…28580 UnusedSector ┆INTEGER <> R6 DO R4@INTEGER => R4; R6@INTEGER=> R2=> R4@INTEGER; 0=> R6@INTEGER; "CLEAR LINK TO┆
0x28580…28600 UnusedSector ┆ NEXT ELEM" R6=> R4; IF R6= R5 THEN R2=> R7@LINCB.TRQUEADDR; "LINCB POITER TO NEXT ELEM" END; ┆
0x28600…28680 UnusedSector ┆ UPDATE_LINCB(R4,R7,R6); CH_READ => R2=> R7@LINCB.CH_STATE; SV6 => R2+1=> SV6; END; RETURN: SV2=> R2; SV4=> R4;┆
0x28680…28700 UnusedSector ┆ SV5=> R5; EXIT(SV6); END "DEQUEUE_OPERATION"; "---------------------------------------------------------------------" PROC┆
0x28700…28780 UnusedSector ┆EDURE FIND_PROCESS "THIS PROCEDURE SENDS A SIGNAL TO THE PROCESS IDENTIFIED IN THE INTER-" "NAL OPERATION, AND WAITS FOR A SYSTE┆
0x28780…28800 UnusedSector ┆M MESSAGE FROM THE PROCESS. " "IF THE PROCESS IS UNKNOWN OR BUSY A COMMAND A COMMAND TO WRITE THIS " "TO THE TERMINAL IS S┆
0x28800…28880 UnusedSector ┆IGNALLED TO THE LTU COROUTINE. IF A SYSTEM MES- " "SAGE IS RECIEVED, THE REFERENCE TO THE EXTERNAL OPERATION CONCERNING " "THE ┆
0x28880…28900 UnusedSector ┆MESSAGE IS AN OUTPUT PARAMETER. " (R4; "REF(INT_OP) REF(EXT_O┆
0x28900…28980 UnusedSector ┆P) " R6) "LINK DEST " : FIND_OUT; VAR SV6,LCBREF:INTEGE┆
0x28980…28a00 UnusedSector ┆R; BEGIN R4=> OPREF; R6=> SV6; ADDRESS(BK_BUF)=> R0; R4@BREAK_OP.LCBREF=> R7=> LCBREF; "REF TO LINCB INTO R7" ┆
0x28a00…28a80 UnusedSector ┆ "SAVE PCB INDEX" ADDRESS(BK_BUF)=> R0; MON(SENDSIGNAL,R0,R7); "SIGNAL TO NEW PROCESS" ┆
0x28a80…28b00 UnusedSector ┆ADDRESS(OP_EXT_LOOK)=> R4; ADDRESS(PROC_NAME)=> R0; "ADDRESS TO OWN PROCESS" ADDRESS(SEM_OPDUMMY)=> R1=> R4@┆
0x28b00…28b80 UnusedSector ┆EXT_OP.SEM; MON(COR,AMON,SEM_SEND_SYS_MES,R0,R4,R7); 0=> R3; ADDRESS(EX_OP)=> R4; ADDRESS(SEM_OPBREAK)=> R5 => R4@EXT_O┆
0x28b80…28c00 UnusedSector ┆P.SEM; REPEAT MON(COR,AMON,SEM_ALLOC_SYS_MES,R4,R7); MON(COR,AMON,WAIT_OP,R4,R5,R7); R4@EXT_OP.EVT=> R2; SWITC┆
0x28c00…28c80 UnusedSector ┆H MON(IDENTIFYSENDER,R0,R2,R7):ERROR_DONE TO ERR, DONE: NOP; END "SWITCH MON(IDENTIFYSENDER)"; NOP; IF R0┆
0x28c80…28d00 UnusedSector ┆=R6 THEN BEGIN LCBREF=> R7; CH_IDLE=> R1=> R7@LINCB.CH_STATE; R7@LINCB.FITERADDR=> R4; R0=> R4@TERMC┆
0x28d00…28d80 UnusedSector ┆B.PROCID; 1=> R3; ADDRESS(OP_EXT_DUMMY)=> R4; ADDRESS(SEM_OPBREAK)=> R5=> R4@EXT_OP.SEM; END ELSE ┆
0x28d80…28e00 UnusedSector ┆BEGIN IF R0<> OWN_PCBINDEX => R1 THEN MON(SAVEEVENT,R2,R7); END; UNTIL R0= OWN_PCBINDEX=>R1; IF R3=0 THEN ┆
0x28e00…28e80 UnusedSector ┆BEGIN LCBREF=> R7; ADDRESS(BUSY)=> R1=> R7@LINCB_BREAK.OUT_ADDR; 6=> R1=> R7@LINCB_BREAK.OUT_BTCNT; OPREF=> R4; ┆
0x28e80…28f00 UnusedSector ┆ NOP; MON(COR,AMON,SIGNAL_OP,R4,ADDRESS(SEM_OPLTU)=> R5,R7); END; ADDRESS(OP_EXT_DUMMY)=>R4; R2=> R4@EXT_OP.EVT; ┆
0x28f00…28f80 UnusedSector ┆MON(COR,AMON,CM_SEND_SYS_ANS,R4,R7); SV6=> R6; BNSYSTEMMESSAGE=> R2; MON(RECOVEREVENTS,R2,R7); IF R3<>0 THEN BEGIN ┆
0x28f80…29000 UnusedSector ┆ OPREF=> R4; 0=> R4@INTEGER; "RELEASE INT OP" ADDRESS(EX_OP)=> R4; "OUTPUT PARA┆
0x29000…29080 UnusedSector ┆METER IS SET" EXIT(R6,PROCESS_ANSWER); END ELSE EXIT(R6,NO_ANSWER); END "FIND_PROCESS"; "--------------------------┆
0x29080…29100 UnusedSector ┆-------------------------------------------" EXPORT PROCEDURE PROCESS_BREAK "THIS PROCEDURE RECIEVES THE BREAK COMMAND FROM A T┆
0x29100…29180 UnusedSector ┆ERMINAL. IF THE LINE" "IS IDLE A (TO:) IS WRITTEN TO THE TERMINAL, IF THE LINE IS BUSY THE " "CURRENT COMMAND IS SAVED BEFORE ┆
0x29180…29200 UnusedSector ┆THE WRITING TO THE TERMINAL. " (R7; "REF(LINCB) KEPT " R4); "┆
0x29200…29280 UnusedSector ┆LINK DEST " VAR SV2,SV4,SV7:INTEGER; BEGIN R2=> SV2; R4=> SV4; R7=> SV7; ┆
0x29280…29300 UnusedSector ┆ BNSYSTEMMESSAGE=> R2; MON(RECOVEREVENTS,R2,R7); SV7=> R7; IF R7@LINCB.CH_STATE=> R2= CH_WRITE LOGOR R2=CH_READ THEN BE┆
0x29300…29380 UnusedSector ┆GIN R7@LINCB.MESS_EVNT=> R2; MON(SAVEEVENT,R2,R7); END; SV7=> R7; CH_BREAK=> R4=> R7@LINCB.CH_STATE; ADDRESS(TO_┆
0x29380…29400 UnusedSector ┆BREAK)=> R4=> R7@LINCB_BREAK.OUT_ADDR; 4=> R4=> R7@LINCB_BREAK.OUT_BTCNT; REPEAT 2 => R2; R7@LINCB.CH_I_F_ADDR => R1┆
0x29400…29480 UnusedSector ┆; ADDRESS(I_F_TAB)=> R5; READ_WORDS(R1,R2,R5,R4); R5@I_F_TABLE.TS1_STATUS => R2; UNTIL R2[BN_SET]; OUTPUT_TEXT(R┆
0x29480…29500 UnusedSector ┆7,R4); CH_READ_BREAK=> R4=> R7@LINCB.CH_STATE; BNSYSTEMMESSAGE=> R2; MON(RECOVEREVENTS,R2,R7); SV2 => R2; SV7 => R7; ┆
0x29500…29580 UnusedSector ┆ EXIT(SV4); END "PROCESS_BREAK"; "---------------------------------------------------------------------" PROCEDURE QUEUE_OPERAT┆
0x29580…29600 UnusedSector ┆ION "THIS PROCEDURE PUTS THE INTERNAL OPERATION INTO THE TRANSFER QUEUE. " (R4; "REF(INT OP) KEPT ┆
0x29600…29680 UnusedSector ┆ " R7; "REF(LINCB) KEPT " R6); "LINK ┆
0x29680…29700 UnusedSector ┆ "RELEASE INT OP" EXIT(SV6 => R6,NO_ANSWER); END; END "SWITCH DEQUEUE_OPERATION"; R0=> R6; ┆
0x29700…29780 UnusedSector ┆O ERR: BEGIN 0 => R2; PCB_ERR => R0; 1 SHIFTLL BN_ERROR => R1; R6=> R7; ┆
0x29780…29800 UnusedSector ┆GENERATE_ANSWER_OPERATION(R0,R1,R2,R4,R6); R7=> R6; END; DONE: NOP; "R0 CONTAINS ┆
0x29800…29880 UnusedSector ┆THE PCB-INDEX" END "SWITCH MON(IDENTIFYSENDER)"; R5=> R4; R0=> (R1+1)@INTEGER; RETURN: 0=> R4@INTEGER; ┆
0x29880…29900 UnusedSector ┆ "RELEASE INT OP" SV0=> R0; SV1=> R1; SV2=> R2; SV5=> R5; SV7=> R7; EXIT(SV6); END "QUEUE_OPERATION"; "------┆
0x29900…29980 UnusedSector ┆---------------------------------------------------------------" EXPORT PROCEDURE FIND_INT_OP "THIS PROCEDURE CHEARCHES THE INT┆
0x29980…29a00 UnusedSector ┆ERNAL OPERATION BUFFER FOR AN EMPTY " "OPERATION. WHEN FOUND IT DELIVERES A REFERENCE TO THIS OPERATION AS " "AN OUTPUT PARA┆
0x29a00…29a80 UnusedSector ┆METER. " (R6; "-- REF TO INT OP ┆
0x29a80…29b00 UnusedSector ┆ " R4) "LINK DEST " :ERROR_DONE; "0= NOT FOUND ┆
0x29b00…29b80 UnusedSector ┆ " "1= FOUND " VAR SV5:INT┆
0x29b80…29c00 UnusedSector ┆EGER; BEGIN R5=> SV5; 0=> R5; REPEAT R5+1; IF (INTO_BUF_DESC[R5]=> R6)@INTEGER=0 THEN BEGIN 1=> R6@INT┆
0x29c00…29c80 UnusedSector ┆EGER; SV5=> R5; EXIT(R4,DONE); "INT OP FOUND" END; UNTIL R5=MAX_INT_OP; SV5=> R5; EXI┆
0x29c80…29d00 UnusedSector ┆T(R4,ERR); "INT OP NOT FOUND" END "FIND_INT_OP"; "---------------------------------------------------┆
0x29d00…29d80 UnusedSector ┆--------------------" PROCEDURE PROCESS_ABORT_REQUEST "THIS PROCEDURE RECOVERS ALL SAVED SYSTEM MESSAGES. THE EVENT QUEUE OF ┆
0x29d80…29e00 UnusedSector ┆" "SYSTEM MESSAGES IS INSPECTED FOR A REQUEST TO BE ABORTED. " (R3; "CANEVENT KEPT ┆
0x29e00…29e80 UnusedSector ┆ " R4); "LINK DEST " LABEL FOUND; VAR SEVENT,SV2┆
0x29e80…29f00 UnusedSector ┆4:INTEGER; BEGIN R4=> SV24; ADDRESS(EX_OP)=> R4; BNSYSTEMMESSAGE=> R2; MON(RECOVEREVENTS,R2,R7); "RECOVER (┆
0x29f00…29f80 UnusedSector ┆SYSTEM MESSAGES)" MSIDENT=> R2=> R4@EXT_OP.EVT; 0=> R1=> R4@EXT_OP.BUF[0]; "RESULT=0, OK" MON(COR,AMON,CM_SEND_┆
0x29f80…2a000 UnusedSector ┆SYS_ANS,R4,R7); 0 => R5; REPEAT LINTB[R5] => R7; R7@LINCB.CH_STATE => R0; R7@LINCB.MESS_EVNT => R6; IF R6 =┆
0x2a000…2a080 UnusedSector ┆R3 LOGAND (R0 =CH_WRITE LOGOR R0 = CH_READ) THEN BEGIN CH_IDLE => R6=> R7@LINCB.CH_STATE; 0 => R6=> R7@LINCB.CUR┆
0x2a080…2a100 UnusedSector ┆ DEST " LABEL FOUND,RETURN; VAR SV0,SV1,SV2,SV5,SV7,SV6:INTEGER; BEGIN R0=> SV0; R1=> SV1;┆
0x2a100…2a180 UnusedSector ┆ R2=> SV2; R5=> SV5; R6=> SV6; R7=> SV7; R7@LINCB.LTLINO=> R6; LQD[R6]=> R0; TRANS_MESS_NO=> R2; REPEAT IF ┆
0x2a180…2a200 UnusedSector ┆R0@INTEGER =0 THEN GOTO FOUND; R0+SIZE(MES_OP); UNTIL R2-1=0; R4@MES_OP.MOEVENT=> R2; MON(SAVEEVENT,R2,R7); GOTO┆
0x2a200…2a280 UnusedSector ┆ RETURN; FOUND: R7@LINCB.TRQUEADDR=> R6=> R5; IF R6 = 0 THEN "QUEUE EMPTY" BEGIN R0=> R0@IN┆
0x2a280…2a300 UnusedSector ┆TEGER; R0=> R7@LINCB.TRQUEADDR; END ELSE BEGIN WHILE R6@INTEGER <> R5 DO R6@INTEGER => R6; R6@INTEGER=> R0@INT┆
0x2a300…2a380 UnusedSector ┆EGER; R0=> R6@INTEGER; END; ADDRESS(R4@MES_OP.INT)=> R5; REPEAT R5+1; R5@INTEGER=> (R0+1)@INTEGER; UNTIL R5 ┆
0x2a380…2a400 UnusedSector ┆=ADDRESS(R4@MES_OP.MOCOUNT); R4=> R5; R0=> R1; R4@MES_OP.MOEVENT => R2; SWITCH MON(IDENTIFYSENDER,R0,R2,R7):ERROR_DONE T┆
0x2a400…2a480 UnusedSector ┆OR,AMON,CM_SEND_SYS_ANS,R4,R7); EXIT(SV24); FOUND: ADDRESS(EX_OP)=> R4; 0=> R6=> R4@EXT_OP.BUF[0]; PABORTED=> R6=> R4@E┆
0x2a480…2a500 UnusedSector ┆XT_OP.BUF[1]; R3=> R4@EXT_OP.EVT; MON(COR,AMON,CM_SEND_SYS_ANS,R4,R7); EXIT(SV24); END "PROCESS_ABORT_REQUEST"; "--------┆
0x2a500…2a580 UnusedSector ┆---------------------------------------------------------------" Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x2a580…2a600 UnusedSector ┆Z Z X ] b g l q Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x2a600…2a680 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
[…0x2…]
0x2a780…2a800 UnusedSector ┆ BFD 9 V ░ H ░░ | ░ ░ ░ ░ ░ ░BM ░ ░ ░ ░ ░ LT ░GRAF ░ ░ ░ ░ ┆
0x2a800…2a880 UnusedSector ┆ ░U_DR ░ER ░ ░ ░ ░LTU_ ░.SS ░ ░ ░ ░ CB ░ROC. ░ ░ ░ ░ ░IV_P ░C.SS ░ ░ ░ ┆
0x2a880…2a900 UnusedSector ┆ ░XFER ░ROC. ░ ░ ░ ░ SU ░COR. ░ ░ ░ ░ ░B_PR ░.SS ░ ░ ░ ░ ░ ░ ░ ░ ░┆
0x2a900…2a980 UnusedSector ┆ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░░░ ┆
0x2a980…2aa00 UnusedSector ┆ "-------------------------------------------------------------------- " " PROJECT: X " " MODULE NAME: ┆
0x2aa00…2aa80 UnusedSector ┆ LTU_DRIV_PREFX.C " MODULE ID NMB: 0010 " MODULE VERSION: 0001 " MODULE TYPE: PREFIX " MODULE FILES┆
0x2aa80…2ab00 UnusedSector ┆_BTCNT; GOTO FOUND; END; R7@LINCB.TRQUEADDR => R6=> R0; IF R6 <> 0 THEN BEGIN REPEAT IF R6@M┆
0x2ab00…2ab80 UnusedSector ┆ES_OP.MOEVENT => R4 =R3 THEN BEGIN IF R6@INTEGER =R6 THEN BEGIN 0 => R4=> R7@LINCB.TRQUE┆
0x2ab80…2ac00 UnusedSector ┆ADDR; R4=> R6@INTEGER; END ELSE BEGIN R6=> R4; WHILE R4@INTEGE┆
0x2ac00…2ac80 UnusedSector ┆R <> R6 DO R4@INTEGER => R4; R6@INTEGER => R2=> R4@INTEGER; 0 => R6@INTEGER; IF R6 =R0 THEN ┆
0x2ac80…2ad00 UnusedSector ┆ R2 => R7@LINCB.TRQUEADDR; END; GOTO FOUND; END; R6@INTEGER => R6; UNTIL R6┆
0x2ad00…2ad80 UnusedSector ┆ =R0; END; R5+1; UNTIL R5 =4; ADDRESS(OP_EXT_LOOK)=> R4; ADDRESS(SEM_OPDUMMY)=> R0=> R4@EXT_OP.SEM; ADDRESS(PROC┆
0x2ad80…2ae00 UnusedSector ┆_NAME)=> R0; "ADDRESS TO OWN PROCESS" MON(COR,AMON,SEM_SEND_SYS_MES,R0,R4,R7); 5 => R6; REPEAT ADDRESS(E┆
0x2ae00…2ae80 UnusedSector ┆X_OP)=> R4; ADDRESS(SEM_OPBREAK)=> R5=> R4@EXT_OP.SEM; MON(COR,AMON,SEM_ALLOC_SYS_MES,R4,R7); MON(COR,AMON,WAIT_OP,R┆
0x2ae80…2af00 UnusedSector ┆4,R5,R7); R4@EXT_OP.EVT=> R2=> SEVENT; SWITCH MON(IDENTIFYSENDER,R0,R2,R7):ERROR_DONE TO ERR,DONE: NOP; END "┆
0x2af00…2af80 UnusedSector ┆SWITCH MON(IDENTIFYSENDER)"; IF R2=R3 THEN "EVENT FOUND" BEGIN ADDRESS(EX_OP)=> R4; 0┆
0x2af80…2b000 UnusedSector ┆=> R6=> R4@EXT_OP.BUF[0]; PABORTED=> R6=> R4@EXT_OP.BUF[1]; R3=> R4@EXT_OP.EVT; MON(COR,AMON,CM_SEND_SYS_ANS,R┆
0x2b000…2b080 UnusedSector ┆4,R7); END ELSE BEGIN IF R0 <> OWN_PCBINDEX => R4 THEN MON(SAVEEVENT,R2,R7); END; UNTIL R0 = OWN_P┆
0x2b080…2b100 UnusedSector ┆CBINDEX=> R2; BNSYSTEMMESSAGE=> R2; MON(RECOVEREVENTS,R2,R7); ADDRESS(EX_OP)=> R4; SEVENT=> R2=> R4@EXT_OP.EVT; MON(C┆
0x2b100…2b180 UnusedSector ┆E ERROR IN LTU" LTUAS= #60C; "LTU IS ALREADY ASSIGNED" LTNAS= #60D; "LTU IS NOT ASSIGNED" ┆
0x2b180…2b200 UnusedSector ┆ BODER= #60E; "BOOT DATA COUNT ERROR" OVRFL= #60F; "OVERFLOW IN DATA FROM LTU" REGRET= #6┆
0x2b200…2b280 UnusedSector ┆10; "TRANSFERRED DATA FROM LTU ARE INVALID" RELEASE= #611; "STOP IN DATA TRANSFER FROM LTU" C┆
0x2b280…2b300 UnusedSector ┆BCER= #612; "ERROR IN CONTROL BLOCK CHAIN" LISAS= #613; "AT LEAST ONE LINE IS STILL ASSIGNED┆
0x2b300…2b380 UnusedSector ┆" LINAS= #614; "LINE IS ALREADY ASSIGNED" LNOAS= #615; "LINE IS NOT ASSIGNED" LLNER= #61┆
0x2b380…2b400 UnusedSector ┆6; "ERROR IN LTU LINE NUMBER" FRQER= #617; "ERROR IN FREQUENCY INDEX" MODER= #618; ┆
0x2b400…2b480 UnusedSector ┆ "MODE OF OPERATION ERROR" PROER= #619; "UNKNOWN PROTOCOL TYPE" NOPRC= #61A; "NO ┆
0x2b480…2b500 UnusedSector ┆: X " MERGE FILES: X " " SPECIFICATIONS: X " AUTHOR/DATE: OH 81:06:17 " " DELIVERABLE: ┆
0x2b500…2b580 UnusedSector ┆ YES " SOURCE LANGUAGE: SWELL " COMPILE COMPUTER: CR80 " TARGET COMPUTER: CR80 " OPERATING SYSTEM: ┆
0x2b580…2b600 UnusedSector ┆ AMOS " "-------------------------------------------------------------------- " " CHANGE RECORD " " VERSION AUTHOR/DATE┆
0x2b600…2b680 UnusedSector ┆ DESCRIPTION OF CHANGE " ------- ----------- --------------------- " "--------------------------------------------------┆
0x2b680…2b700 UnusedSector ┆------------------ " CONST CHNUM=7; "NUMBER OF CHANNELS" BYTES=8; CBASE=8; PABORTED=1; ┆
0x2b700…2b780 UnusedSector ┆ "***********************************************************************" " ┆
0x2b780…2b800 UnusedSector ┆ " " DEVICE DRIVER CONFIGURATION FOR INTERFACING TO " " THE AMOS I/O SYSTE┆
0x2b800…2b880 UnusedSector ┆M. " " " "************┆
0x2b880…2b900 UnusedSector ┆***********************************************************" CONST MESS_CMP= 8; MESS_CML= 8; MESS_SCP= 2; MESS_SCL= 2; ┆
0x2b900…2b980 UnusedSector ┆ TYPE MESS_COMMANDS= (MESS_CABORT,MESS_CXFER); " FORMAT OF XFER LIST ELEMENT" TYPE XFER_ELEMTYPE= RECORD OP:INTEGER; ┆
0x2b980…2ba00 UnusedSector ┆ LINK:INTEGER; COUNT:INTEGER; ADDR:INTEGER; OFFSET:INTEGER; END; "FORMAT OF EXTENDED XFER LIST ELEMENT" TYPE XFE┆
0x2ba00…2ba80 UnusedSector ┆R_ELEM= RECORD OP, LINK, COUNT, ADDR, OFFSET, XFERPSW, BUFFPSW, XFOCNT:INTEGER; END; CONST ┆
0x2ba80…2bb00 UnusedSector ┆ XFER_CMP= 8; XFER_CML= 8; XFER_SCP= 2; XFER_SCL= 2; TYPE XFERLIST_COMMANDS= (XFER_CINP,XFER_COUT); TYPE BYTEARR= ARR┆
0x2bb00…2bb80 UnusedSector ┆AY[0..0] OF BYTE; "BYTE ARRAY QUALIFIER" TYPE ILLOPSTYPE= ARRAY[1..13] OF INTEGER; "ILLEGAL OPERATIONS" TYPE PROCOPSTYPE┆
0x2bb80…2bc00 UnusedSector ┆= ARRAY[1..13] OF INTEGER; "PROCESSABLE OPERATIONS" CONST "COMPLETION CODE:" LTBER= #601; ┆
0x2bc00…2bc80 UnusedSector ┆ "LTU BOOT LOAD ERROR" XFLI0= #603; "XFER ELEM LINK =0" EMBUF= #604; "XFER ELEM BUF┆
0x2bc80…2bd00 UnusedSector ┆ IS EMPTY" CHSER= #605; "LTU CHECK SUM ERROR" NOINT= #606; "NO INTERNAL OPERATION FREE" ┆
0x2bd00…2bd80 UnusedSector ┆ILCOM= #607; "ILLEGAL COMMAND" FOMER= #608; "COMMAND FORMAT ERROR" CMKER= #609; ┆
0x2bd80…2be00 UnusedSector ┆ "ERROR IN COMMAND NUMBER" NOCBF= #60A; "NO FRE CONTROL FOUND" LTUER= #60B; "HARDWAR┆
0x2be00…2be80 UnusedSector ┆*******************************" " " " CONTR┆
0x2be80…2bf00 UnusedSector ┆SUCH PROTOCOL COROUTINE" TERAS= #61B; "AT LEAST ONE TERMINAL IS STILL ASSIGNED" BBCER= #61C; ┆
0x2bf00…2bf80 UnusedSector ┆ "BOOT FILE BYTE COUNT ERROR" NNFND= #61D; "FILE NAME NOT FOUND" ILCON= #61E; "ILLEGAL C┆
0x2bf80…2c000 UnusedSector ┆ON_ID/BOOT FILE ID" TNOCR= #61F; "TERMINAL IS NOT CREATED" PCB_ERR= #620; "ERROR IN PCB_INDE┆
0x2c000…2c080 UnusedSector ┆X FOR SINDING PROCESS" BFDSM= #621; "BOOT FILE IS DISMANTLED" BTTTG= #622; "BYTE COUNT IS ┆
0x2c080…2c100 UnusedSector ┆TO BIG(BTCNT>2**16)" INTRERR= #623; "LTU INTERRUPT CANNOT BE RESERVED" "**************************************┆
0x2c100…2c180 UnusedSector ┆*********************************" " " " INT┆
0x2c180…2c200 UnusedSector ┆ERNAL OPERATIONS " " "┆
0x2c200…2c280 UnusedSector ┆ "***********************************************************************" TYPE MES_OP= "INTERNAL MESSAGE OP┆
0x2c280…2c300 UnusedSector ┆ERATION" RECORD INT:INTERNAL_OPERATION; OPN:OP_TYPE; MOHEAD:INTEGER; "COMMAND, SECTION" MOTLST:INT┆
0x2c300…2c380 UnusedSector ┆EGER; "TRANSFER LIST ADDRESS" MOEVENT:INTEGER; "EVENT IDENTIFICATION" MOLINEREF:INTEGER; ┆
0x2c380…2c400 UnusedSector ┆ "REF(LINCB)" MOCONID:INTEGER; "CON ID" MOCOUNT:INTEGER; "INPUT BYTE COUNT" MOPCB:INTEGER; ┆
0x2c400…2c480 UnusedSector ┆ "OPERATION PCB INDEX" END; TYPE ANS_OP= "INTERNAL ANSWER OPERATION" RECORD INT:INTERNAL_O┆
0x2c480…2c500 UnusedSector ┆PERATION; OPN:OP_TYPE; AOHEAD:INTEGER; "RESULT, SECTION" AOTLST:INTEGER; "TRANSFER LIST ADDR┆
0x2c500…2c580 UnusedSector ┆ESS" AOEVENT:INTEGER; "EVENT IDENTIFICATION" AOCNT:INTEGER; "BYTE COUNT" AOCC:INTEGER; ┆
0x2c580…2c600 UnusedSector ┆ "COMPLETION CODE" END; TYPE TRANS_OP= "INTERNAL TRANSFER OPERATION" RECORD INT:INTERNAL_OPERA┆
0x2c600…2c680 UnusedSector ┆TION; OPN:OP_TYPE; TOHEAD:INTEGER; "COMMAND, SECTION" TOTLST:INTEGER; "TRANSFER LIST ADDRESS┆
0x2c680…2c700 UnusedSector ┆" TOEVENT:INTEGER; "EVENT IDENTIFICATION" TOLINEREF:INTEGER; "REF(LINCB)" TOCONID:INTEGER; ┆
0x2c700…2c780 UnusedSector ┆ "CONNECTION ID" END; TYPE OPN_CODE= "OPERATION OP_TYPE CODES" (CHANNEL_0,CHANNEL_1,CHANNEL_2, CH┆
0x2c780…2c800 UnusedSector ┆ANNEL_3,CHANNEL_4,CHANNEL_5,INTRPT, CH_READ_BREAK,MESS_OP_READ, MESS_OP_APPEND,MESS_OP_BOOT, ANS_OPN,ANS_OPN_ERR,INIT_C┆
0x2c800…2c880 UnusedSector ┆MD, BOOT_DISMANTLE); " PAGE CONST MAX_INT_OP=10; TYPE INT_OP_BUF=ARRAY[1..SIZE(MES_OP)*MAX_INT_OP] OF INTEGER; TYPE ┆
0x2c880…2c900 UnusedSector ┆ INT_OP_BUF_DESC=ARRAY[1..MAX_INT_OP] OF INTEGER; "***********************************************************************" " ┆
0x2c900…2c980 UnusedSector ┆ " " DRIVER CONFIGURATION ┆
0x2c980…2ca00 UnusedSector ┆ " " " "***********************************┆
0x2ca00…2ca80 UnusedSector ┆************************************" CONST MAXLINES= 4; "NUMBER OF LINECB`S" MAXTERMS= 4; ┆
0x2ca80…2cb00 UnusedSector ┆"NUMBER OF TERMCB`S" NCB= MAXLINES+MAXTERMS; "NO OF LINCB AND TERMCB IN POOL" "****************************************┆
0x2cb00…2cb80 UnusedSector ┆TROL BLOCK:" RECORD PROT:INTEGER; "PROTOCOL" MODEOP:INTEGER; "MODE OF OPERATION" LTLINO:┆
0x2cb80…2cc00 UnusedSector ┆INTEGER; "LTU LINE NUMBER" FREQ:INTEGER; "COMMUNICATION RATE" TRQUEADDR:INTEGER; "TRA┆
0x2cc00…2cc80 UnusedSector ┆NSFER QUEUE ADDRESS" STATE:INTEGER; "STATE= 1 WHEN ASSIGNED ELSE 0" STATUS:INTEGER; "STATUS= 0 ┆
0x2cc80…2cd00 UnusedSector ┆WHEN LTU OK ELSE 1" FITERADDR:INTEGER; "FIRST TERMCB ADDRESS" LTUCBADDR:INTEGER; "LTUCB ADDRESS" M┆
0x2cd00…2cd80 UnusedSector ┆ESS_HEAD:INTEGER; "CMD,BUFFSEC,TRANSFERSEC" MESS_TLST:INTEGER; "TRANSFER LIST ADDRESS" MESS_EVNT:INTEG┆
0x2cd80…2ce00 UnusedSector ┆ER; "EVENT IDENTIFICATION" MESS_COUNT:INTEGER; "INPUT BYTE COUNT" MESS_CONID:INTEGER; "CONNECTI┆
0x2ce00…2ce80 UnusedSector ┆ON ID" CH_STATE:INTEGER; "LINE STATE(READ,WRITE BREAK) CH_I_F_ADDR:INTEGER; "ADDRESS TO LTU CH_I_F_TABL┆
0x2ce80…2cf00 UnusedSector ┆E" CUR_BTCNT:INTEGER; "CURRENT BYTE COUNT" END; TYPE TERMCB= "TERMINAL CONTROL BLOCK:" REC┆
0x2cf00…2cf80 UnusedSector ┆ORD CONID:INTEGER; "CONNECTION ID" LTLINO:INTEGER; "LTU LINE NUMBER" TERMADDR:INTEGER; ┆
0x2cf80…2d000 UnusedSector ┆ "TERMINAL ADDRESS" FIOPNO:INTEGER; "NUMBER OF FILES OPEN" CONVDIR:INTEGER; "CONVERSATION DI┆
0x2d000…2d080 UnusedSector ┆RECTION" NETERMADDR:INTEGER; "NEXT TERMINAL ADDRESS" STATE:INTEGER; "STATE= 1 WHEN ASSIGNED ELSE 0"┆
0x2d080…2d100 UnusedSector ┆ STATUS:INTEGER; "STATUS= 0 WHEN LTU OK ELSE 1" PROCID:INTEGER; "PROCES IDENTIFICATION" LINC┆
0x2d100…2d180 UnusedSector ┆BADDR:INTEGER; "LINECB ADDRESS" PROSEMADDR:INTEGER; "PROTOCOL SEMAPHORE ADDRESS" XFERBUF:INTEGER; ┆
0x2d180…2d200 UnusedSector ┆ "XFER_ELEM SAVE BUFFER" END; TYPE LTU_ASGN_DESC= "LTU ASSIGN DESCRIPTION RECORD" RECORD ASGNKIND:INTE┆
0x2d200…2d280 UnusedSector ┆GER; "ASSIGN(LTU)=1" ASGNDEV:INTEGER; "DEVICE KIND" ASGNIOADDR:INTEGER; "DEVICE ADDRESS" ┆
0x2d280…2d300 UnusedSector ┆ ASGNNULI:INTEGER; "NUMBER OF LINES" END; TYPE LINE_ASGN_DESC= "LINE ASSIGN DESCRIPTION RECORD" RECOR┆
0x2d300…2d380 UnusedSector ┆D ASGNKIND:INTEGER; "ASSIGN(LINE)=2" ASGNPROT:INTEGER; "LINE PROTOCOL" ASGNMODE:INTEGER; ┆
0x2d380…2d400 UnusedSector ┆ "MODE OF OPERATION" ASGNLTLINO:INTEGER; "LTU LINE NUMBER" ASGNFREQ:INTEGER; "COMMUNICATION RATE" ┆
0x2d400…2d480 UnusedSector ┆END; TYPE CON_CR_ATT= "CONNECTION ATTRIBUTES RECORD" RECORD CRKIND:INTEGER; "CREATE(CON)=2" ┆
0x2d480…2d500 UnusedSector ┆ CRLTLINO:INTEGER; "LTU LINE NUMBER" CRADDR:INTEGER; "TERMINAL ADDRESS" END; TYPE BOOT_CR_ATT= ┆
0x2d500…2d580 UnusedSector ┆ "BOOT LOAD ATTRIBUTES RECORD" RECORD CRKIND:INTEGER; "CREATE(BOOT LOAD)=1" CRLTLINO:INTEGER; ┆
0x2d580…2d600 UnusedSector ┆OL BLOCKS " " " "┆
0x2d600…2d680 UnusedSector ┆***********************************************************************" TYPE LTUCB= "LTU CONTROL BLOCK:" ┆
0x2d680…2d700 UnusedSector ┆ RECORD DEVKIND:INTEGER; "DEVICE KIND" DEVADDR:INTEGER; "DEVICE ADDRESS" NOLIN:INTEGER; ┆
0x2d700…2d780 UnusedSector ┆ "NUMBER OF LINES" NOLINAS:INTEGER; "NO OF ASSIGNED LINES" STATE:INTEGER; "STATE= 1 WHEN A┆
0x2d780…2d800 UnusedSector ┆SSIGNED ELSE 0" STATUS:INTEGER; "STATUS= 0 WHEN LTU OK ELSE 1" END; TYPE LINCB= "LINE CON┆
0x2d800…2d880 UnusedSector ┆(NO_ANSWER,PROCESS_ANSWER); TYPE EXT_OP=EXTERNAL_OPERATION; TYPE FILE__NAME= ARRAY[0..7] OF INTEGER; TYPE FILE__NAMES= ┆
0x2d880…2d900 UnusedSector ┆ARRAY[1..SIZE(FILE__NAME)*MAXTERMS] OF INTEGER; "----------------------------------------------------------------------" " ┆
0x2d900…2d980 UnusedSector ┆ " " LTU CONFIGURATION ┆
0x2d980…2da00 UnusedSector ┆ " " " "------------------------------------------┆
0x2da00…2da80 UnusedSector ┆----------------------------" CONST "STATUS WORD BIT MASK CONST" BN_REGRET=0; BN_BREAK=┆
0x2da80…2db00 UnusedSector ┆5; BN_S_PACKET=6; BN_P_PACKET=7; BN_SET=7; CRLF=CR SHIFTLL 8 +LF; CONST S_PACKET=1 SHIFTLL BN_S_PACKET; P_PACKET=1 ┆
0x2db00…2db80 UnusedSector ┆SHIFTLL BN_P_PACKET; CONST "FIFO ORINTED I/O INSTR. CODE" MCCMD=1 SHIFTLL 11; ┆
0x2db80…2dc00 UnusedSector ┆ "MASTER CLEAR" BLCMD=1 SHIFTLL 10; "BOOT LOAD LTU" SBPCMD=#3 SHIFTLL 6; "SET┆
0x2dc00…2dc80 UnusedSector ┆ BYTE POINTER" RDCMD=#C SHIFTLL 6; "READ WORD" RDICMD=#4 SHIFTLL 6; "READ WORD AND IN┆
0x2dc80…2dd00 UnusedSector ┆CREMENT" WRLCMD=#9 SHIFTLL 6; "WRITE BYTE FROM LOWER POS" WRCMD=#D SHIFTLL 6; "WRITE ┆
0x2dd00…2dd80 UnusedSector ┆WORD" WRICMD=#8 SHIFTLL 6; "WRITE WORD AND INCREMENT" RSTCMD=#0 SHIFTLL 6; "READ DEVIC┆
0x2dd80…2de00 UnusedSector ┆E STATUS" CONST "LTU ADDRESSES:" LTU_1=#14; TYPE LTU_I_F_TABLE_ADDR= "┆
0x2de00…2de80 UnusedSector ┆ADDRESSES TO LTU AND TO-" RECORD "INTERFACE TABLES" I_F_TABLE0:INTEGER; I_F_TABLE1:IN┆
0x2de80…2df00 UnusedSector ┆TEGER; I_F_TABLE2:INTEGER; I_F_TABLE3:INTEGER; I_F_TABLE4:INTEGER; I_F_TABLE5:INTEGER; I_F_TABLE6:INTEGER; ┆
0x2df00…2df80 UnusedSector ┆ I_F_TABLE7:INTEGER; LTU_ADDR:INTEGER; END; TYPE LTU_COM_TABLE= "LTU COMMUNICATION TABLE" RECOR┆
0x2df80…2e000 UnusedSector ┆ "LTU LINE NUMBER" END; CONST TRANS_MESS_NO= NCB; "MAX NUMBER OF QUEUED TRANSFER MESSAGES" NTEL= TRANS_M┆
0x2e000…2e080 UnusedSector ┆ESS_NO*SIZE(MES_OP); "NUMBER OF TRANSFER QUEUE ELE-" "MENTS PER LINE" NTE= NTEL*MAXLI┆
0x2e080…2e100 UnusedSector ┆NES; "TOTAL NUMBER OF TRANSFER QUEUE ELEMENTS" TYPE CBARR= ARRAY[1..SIZE(TERMCB)*MAXTERMS] OF INTEGER; TYPE SEMA┆
0x2e100…2e180 UnusedSector ┆DDR= ARRAY[0..7] OF INTEGER; "ARRAY OF ADDRESSES TO PRO-" "TOCOL SEMAPHORS" TYP┆
0x2e180…2e200 UnusedSector ┆E TERMTABLE= ARRAY[1..MAXTERMS] OF INTEGER; "ARRAY OF ADDRESSES TO TER-" "MINAL ┆
0x2e200…2e280 UnusedSector ┆CB, INDEX=CON ID" TYPE XFER_ELEM_BUFFERS= ARRAY[1..SIZE(XFER_ELEM)*MAXTERMS] OF INTEGER; TYPE XFER_ELEM_ADDR= TERMTABLE;; ┆
0x2e280…2e300 UnusedSector ┆ TYPE LINETABLE=ARRAY[0..NCB] OF INTEGER; TYPE LINE_CONTROL_BLOCK=ARRAY[1..SIZE(LINCB)*MAXLINES] OF INTEGER; TYPE LINE_Q┆
0x2e300…2e380 UnusedSector ┆UEUE=ARRAY[1..NTEL] OF INTEGER; TYPE TRANSFER_QUEUE= RECORD LINE0_QUE:LINE_QUEUE; LINE1_QUE:LINE_QUEUE; LINE2_Q┆
0x2e380…2e400 UnusedSector ┆UE:LINE_QUEUE; LINE3_QUE:LINE_QUEUE; END; TYPE LINE_QUEUE_DESCRIPTER= ARRAY[0..MAXLINES-1] OF INTEGER; CONST NCBADN┆
0x2e400…2e480 UnusedSector ┆O= 5; "NEXT CB ADDRESS IS NUMBER 5 IN CB" STATENO= 6; "STATE IS NUMBER 6 IN CB" TYPE C┆
0x2e480…2e500 UnusedSector ┆ONTROL_BLOCK_STATE=(CB_FREE,CB_OCCP); TYPE CHANNEL_STATE=(CH_IDLE,CH_READ,CH_WRITE,CH_BREAK,BOOT_STARTED); TYPE FIND_OUT= ┆
0x2e500…2e580 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x2e580…2e600 UnusedSector ┆ BFD fF v ░ H ░░ | ░ ░ ░ ░ ░ ░BM ░ ░ ░ ░ ░ LT ░GRAF ░ ░ ░ ░ ┆
0x2e600…2e680 UnusedSector ┆ ░U_DR ░ER ░ ░ ░ ░LTU_ ░.SS ░ ░ ░ ░ CB ░ROC. ░ ░ ░ ░ ░IV_P ░C.SS ░ ░ ░ ┆
0x2e680…2e700 UnusedSector ┆ ░XFER ░ROC. ░ ░ ░ ░ SU ░COR. ░ ░ ░ ░ ░B_PR ░.SS ░ ░ ░ ░LTU_ ░IV_P ░FX.C ░ ░ ░┆
0x2e700…2e780 UnusedSector ┆ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░░░ ┆
0x2e780…2e800 UnusedSector ┆ ░ o d B A & x3 A ░░ ░░ ! ░░ " ░░ ┆
0x2e800…2e880 UnusedSector ┆# ░░ $ ░░ % ░░ ' , a ` r ┆
0x2e880…2e900 UnusedSector ┆ a p s g A g A f A g A b P \ P ░ i 0 0 ┆
0x2e900…2e980 UnusedSector ┆ b P ` s p r 1 a t 2 a @ u 3 a P v 4 a ` w 5 f ┆
0x2e980…2ea00 UnusedSector ┆D TX_BTCNT:INTEGER; TX_ADDR:INTEGER; TX_STATUS:INTEGER; RX_BTCNT:INTEGER; RX_ADDR:INTEGER; RX_STATUS:INT┆
0x2ea00…2ea80 UnusedSector ┆EGER; END; " PAGE TYPE I_F_TABLE= RECORD TS1_STATUS:INTEGER; TX_BUF_ADDR:INTEGER; TS2_STATUS:INTEGER; SPA┆
0x2ea80…2eb00 UnusedSector ┆RE:INTEGER; RS1_STATUS:INTEGER; RX_BUF_ADDR:INTEGER; RS2_STATUS:INTEGER; END; TYPE I_F_TAB_ADDR=ARRAY[0..8] OF ┆
0x2eb00…2eb80 UnusedSector ┆INTEGER; "ADDRESSES TO LTU I_F TABLES" "----------------------------------------------------------------------" " ┆
0x2eb80…2ec00 UnusedSector ┆ " " BREAK CONFIGURATION ┆
0x2ec00…2ec80 UnusedSector ┆ " " " "-------------------------------------------------┆
0x2ec80…2ed00 UnusedSector ┆---------------------" TYPE BREAK_OP= RECORD INT:INTERNAL_OPERATION; OPN:OP_TYPE; NAME1:INTEGER; NAME2:INTEG┆
0x2ed00…2ed80 UnusedSector ┆ER; NAME3:INTEGER; LCBREF:INTEGER; END; TYPE LINCB_BREAK= RECORD NUD:ARRAY[0..9] OF INTEGER; "NOT USED"┆
0x2ed80…2ee00 UnusedSector ┆ OUT_ADDR:INTEGER; OUT_BTCNT:INTEGER; END; TYPE BREAK_BUF= ARRAY[1..8] OF BYTE; TYPE BREAK_ANSWER= ARRAY[0..5] OF┆
0x2ee00…2ee80 UnusedSector ┆ INTEGER; " PAGE Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x2ee80…2ef00 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
[…0x3…]
0x2f080…2f100 UnusedSector ┆Z Z x } Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x2f100…2f180 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
[…0x1…]
0x2f200…2f280 UnusedSector ┆{ ░ U ^ ` V ` P W A X Y P | ░ Z ` P [ @ \ n a @ o ┆
0x2f280…2f300 UnusedSector ┆ \ 2 @ p \ q ░ r ` g A s \ g A t ░ i 0 0 v \ P w x f Q & ┆
0x2f300…2f380 UnusedSector ┆p y f q z f q ` { ` 0 { } \ ` g ` q ~ \ ` g ` q { f q ` b ` ┆
0x2f380…2f400 UnusedSector ┆q ` b ` P 6 ` { 8 9 f a @ @ : { ; { ░ < d ` ` = ` p | ░ > { ? @ $ ` ┆
0x2f400…2f480 UnusedSector ┆` { B \ @ g @ q C b ` @ D \ E c ` F { H b ` @ I & @ ` d @ @ | ░ J d ` c @ K ^ ` ┆
0x2f480…2f500 UnusedSector ┆L b ` @ M ` P N g q O P ' ░░ ` Q \ g q R ` w a w S | ░' ┆
0x2f500…2f580 UnusedSector ┆T U ` t V ` u @ W ` v P X w Y l a @ # m a ` x n \ V o ┆
0x2f580…2f600 UnusedSector ┆f A p a p y p { q s ` y p t \ g q u \ Z g q v \ P ░ i 0 ┆
0x2f600…2f680 UnusedSector ┆ 0 w ` x { y { ░ z ░ | ░ | ░ { ` y p | { } { ~ ` # @ ^ ┆
0x2f680…2f700 UnusedSector ┆ @ ` x ` ` { ░ ░a ` | ░ | ░ b ` \ V ░ E \ D @ ┆
0x2f700…2f780 UnusedSector ┆ \ $ \ g A ░ i 0 0 \ 0 \ 2 @ \ P g P A ░ ┆
0x2f780…2f800 UnusedSector ┆i 0 0 ░ i 0 0 f A { { ░ ░ | ░ | ░ ` { ┆
0x2f800…2f880 UnusedSector ┆ ` y p \ g q f q @ g A \ 0 \ M @ \ P g P A { ┆
0x2f880…2f900 UnusedSector ┆ ` ( ░ ` ( | ░% 0 { ░ ` y p \ ` g q ┆
0x2f900…2f980 UnusedSector ┆ \ g q ` # @ \ P ░ i 0 0 \ M @ g A ░ i 0 0 ┆
0x2f980…2fa00 UnusedSector ┆ ` x ` \ ░ 0 { ` # @ ^ @ \ 2 @ a { ░ ` ┆
0x2fa00…2fa80 UnusedSector ┆ a z a @ { a p | \ ░ ` | p f q ┆
0x2fa80…2fb00 UnusedSector ┆f q ░ ` | p \ @ g @ q \ f @ g @ q \ @ g @ q \ f ┆
0x2fb00…2fb80 UnusedSector ┆q \ P ' ░░ @ d P | ░ ' ░░ @ \ @ g @ q \ ┆
0x2fb80…2fc00 UnusedSector ┆ ░ ` z ` | p { a } ░ a ~ a ┆
0x2fc00…2fc80 UnusedSector ┆a P a ` a p f q ` f a / \ { ┆
0x2fc80…2fd00 UnusedSector ┆ | ░ f A ░ { f q ` b ` P ` { c g q { & ┆
0x2fd00…2fd80 UnusedSector ┆` P d ` ` | ░ e ` c ` + @ \ P P ! e P " + @ P | ░ # b @ P $ ┆
0x2fd80…2fe00 UnusedSector ┆b % f A & { ' ) \ * \ + \ , b ` p - ' ░ ░ ` . b p ` / { 0 ┆
0x2fe00…2fe80 UnusedSector ┆ { ░ 1 ░ | ░ | ░ 2 b P @ 3 c 4 5 ^ @ 6 ` } 7 ` ~ 8 ` ┆
0x2fe80…2ff00 UnusedSector ┆ 9 ` P : ` p ; < N a P O \ P Q R P S @ f Q ` ` ┆
0x2ff00…2ff80 UnusedSector ┆ \ P g P A ░ i 0 0 ░ i 0 0 f A a { ! { ░ ░ | ┆
0x2ff80…30000 UnusedSector ┆ ░ | ░ 0 { " \ 2 @ \ ` g ` A \ ` g ` A g 0 A ░ i 0 0 { # ┆
0x30000…30080 UnusedSector ┆ ` ( @ @ ░ ` ( | ░) \ ░ \ 2 @ ` ┆
0x30080…30100 UnusedSector ┆g A ░ i 0 0 \ 2 @ \ ` g ` A \ ` g ` A g 0 A ░ i ┆
0x30100…30180 UnusedSector ┆ 0 0 \ P ░ i 0 0 | ░ @ ┆
0x30180…30200 UnusedSector ┆ " a @ $ % \ P ░ i 0 0 & a @ # ' ( f A { $ * \ + \ ┆
0x30200…30280 UnusedSector ┆ g A - { % / f A $ 0 f A $ 2 $ ┆
0x30280…30300 UnusedSector ┆ \ P 3 f A g Q 5 g Q 6 g Q 7 f A 8 f A 9 \ : { & ; \ { ' < \ { ┆
0x30300…30380 UnusedSector ┆ ' = ' ( ░░ ( @ | ░ | ░ ? ` # @ @ B f A 0 0 C a 0 . D a - E f A ┆
0x30380…30400 UnusedSector ┆ a , F ^ @ G \ ) @ H I ░ i 0 0 J | ░@ K L W X \ ; @ ┆
0x30400…30480 UnusedSector ┆Y \ g A Z \ P g P A [ ░ i 0 0 \ ░ i 0 0 ] ^ f A ` _ ` { ░ ┆
0x30480…30500 UnusedSector ┆a f A p b ` c ^ @ d f { ) h i ' * ░░ * @ { + k l ' , ░░ , ` { + q s \ t f ┆
0x30500…30580 UnusedSector ┆q u \ P v ' ░░ @ w d P @ x @ y ' ░░ @ z { + | } ' - ░░ - @ { + ┆
0x30580…30600 UnusedSector ┆~ - ` - ` { ░ + ` ~ ░ | ░ | ░ { ░ | ░ | ░ | ░5 \ 0 \ ┆
0x30600…30680 UnusedSector ┆ P ░ i 0 0 f A p q { . \ \ \ ' ░ ░ ` { ┆
0x30680…30700 UnusedSector ┆/ f A P { 0 ' ░░ ` \ 0 { 1 f q { 2 ' ░░ ` \ ┆
0x30700…30780 UnusedSector ┆0 \ g q { ░ f A ░ { 1 ' ░u ░u ` { 1 - P - P { ┆
0x30780…30800 UnusedSector ┆ ░ + P ~ ░ | ░ | ░ | ░ 0 { ░ \ P ░ i 0 0 \ ░ ┆
0x30800…30880 UnusedSector ┆ | ░9 @ \ P \ ` ` ^ P P ` | ░ ┆
0x30880…30900 UnusedSector ┆\ P \ @ + P \ ] p g p A & P @ @ | ░ \ b P ┆
0x30900…30980 UnusedSector ┆ g Q 3 P P | ░ \ W P \ @ @ g P A % P @ ┆
0x30980…30a00 UnusedSector ┆ | ░ \ @ \ P f A & ` f Q 3 g a @ P @ | ░ \ ┆
0x30a00…30a80 UnusedSector ┆@ \ P P @ g @ Q @ P | ░ \ @ f A , P ░ i 0 0┆
0x30a80…30b00 UnusedSector ┆ ` { f a @ @ 0 { $ ` ` { \ @ g @ q c @ ` { b ` @ & @ ` d @ @ | ░┆
0x30b00…30b80 UnusedSector ┆ d ` c @ ^ ` ` g q { d ` ` ` | ░ P P | ┆
0x30b80…30c00 UnusedSector ┆ ░* \ D @ \ g A \ $ ░ i 0 0 \ ` \ 2 @ ┆
0x30c00…30c80 UnusedSector ┆@ @ | ░ | ░ q { A r b 0 { B s t { B u b 0 P { B v b 0 p { B w a 0 $ { B x a 0 % { B ┆
0x30c80…30d00 UnusedSector ┆ y - - { ░ + ~ ░ | ░ | ░ | ░ | ░ | ░ | ░ | ░ | ░ | ░ z | ┆
0x30d00…30d80 UnusedSector ┆ ░( ~ $ \ @ f A f A ` ` ` ` ` ┆
0x30d80…30e00 UnusedSector ┆ ` ` g a b 0 \ ` a { C $ 0 ` { D \ { ┆
0x30e00…30e80 UnusedSector ┆ > { E $ ! 0 ` { F ` | ░ \ \ \ { : { G ┆
0x30e80…30f00 UnusedSector ┆ { H \ { > { I { I ' J ░░ J @ | ░ | ░ | ░ \ ┆
0x30f00…30f80 UnusedSector ┆` \ { K \ { > { L { L ' @ ░░ @ @ | ░ | ░┆
0x30f80…31000 UnusedSector ┆ c 0 ` ` | ░ ` { M \ { > ┆
0x31000…31080 UnusedSector ┆ { N { O { > { P ' Q ░░ Q @ | ░ | ░ | ░ { R { S { > { ┆
0x31080…31100 UnusedSector ┆ T ' U ░░ U @ | ░ | ░ b ` { V b P \ p p 6 p - { W ┆
0x31100…31180 UnusedSector ┆ \ { > \ 5 { X { Y { > \ b b { : ┆
0x31180…31200 UnusedSector ┆{ Z { Z ' [ ░░ [ @ | ░ | ░ | ░ \ { ░ f Q & p \ g Q & ┆
0x31200…31280 UnusedSector ┆ \ g q d p P f Q & P ` @ \ g A g p A ░ i 0 0 | ░ ┆
0x31280…31300 UnusedSector ┆ { V { \ \ ░ { > { ] { ] ' J ░░ J @ | ░ | ░ | ░ ┆
0x31300…31380 UnusedSector ┆ \ ` \ { ^ \ { > { _ { _ ' @ ░░ @ @ | ┆
0x31380…31400 UnusedSector ┆ ░ | ░ c 0 ` ` | ░ \ ` d ` { ` \ ┆
0x31400…31480 UnusedSector ┆ { > { a { b { > { c ' d ░░ d @ | ░ | ░ ! { e # f a . ┆
0x31480…31500 UnusedSector ┆ @ @ | ░ \ ░ i 0 0 $ ░░3 \ ░░3 \ ░ i 0 0 ┆
0x31500…31580 UnusedSector ┆ $ ░░h \ ░░h \ ░ i 0 0 $ ░░ \ ░░ ! \ ░ i 0 0 " $ ░░┆
0x31580…31600 UnusedSector ┆ \ ░░ # \ ░ i 0 0 1 \ $ 2 { 3 3 { ░ 4 ░ | ░ | ░ 5 a ┆
0x31600…31680 UnusedSector ┆ ( 7 8 9 : \ 2 @ ; \ P g P A < \ g A = ░ i 0 0 > ░ i 0 0 ┆
0x31680…31700 UnusedSector ┆? @ f A A { 4 B { 5 D E { 6 ' ░- ░- ` | ░ | ░ F b @ 0 G f A a ┆
0x31700…31780 UnusedSector ┆ H { 7 I K \ N ` L { 8 M { 8 N ' ░! ░! @ | ░ | ░ O b 0 @ P + @ \ b P Q ┆
0x31780…31800 UnusedSector ┆f Q g a R g a S \ @ g @ a T a ` U { 9 V X \ Y \ b Z \ @ g @ a ┆
0x31800…31880 UnusedSector ┆ [ { : \ { ; ] _ b 0 ` \ c ` a ' ░ ░ @ b | ░> c { ; d { ; e ' < ░░ < @ | ┆
0x31880…31900 UnusedSector ┆ ░ | ░ | ░ f \ g h i { = j l \ m { > n { ? o { ? p ' @ ░░ ┆
0x31900…31980 UnusedSector ┆ | ░ 5 ` { \ { > | ░ 0 b 0 b P f Q ! ┆
0x31980…31a00 UnusedSector ┆@ @ A { V / 0 0 - 0 { ░1 + 0 ~ ░ | ░ { ░- | ░ { ░+ { ░* { ░) { ┆
0x31a00…31a80 UnusedSector ┆ ░( { ░' { ░& { ░% { ░$ { ░# { ░" { ░! | ░ { ░ | ░] { ░ { ░ { ░ { ░ { ░ { ┆
0x31a80…31b00 UnusedSector ┆ ░ { ░ { ░ { ░ { ░ { ░ { ░ { ░ | ░ { ░ | ░ { ░ | ░ { ░ { ░ { ░ { ┆
0x31b00…31b80 UnusedSector ┆ ░ { ░ { ░ { ░ | ░ { ░ | ░ { ░ | ░ \ { > \ \ ┆
0x31b80…31c00 UnusedSector ┆ { ░ b \ ` @ ' ░ ░ ` | ░a @ ┆
0x31c00…31c80 UnusedSector ┆ ┆
0x31c80…31d00 UnusedSector 0x00[128]
[…0x2…]
0x31e00…31e80 UnusedSector ┆ C ┆
0x31e80…31f00 UnusedSector ┆- { f % \ & { > ' ( f a p , p { g * \ + { > , - q & { h / ┆
0x31f00…31f80 UnusedSector ┆ \ 0 { > 1 2 f a , { ░ 3 , { i 5 \ 6 { > 7 8 { j ┆
0x31f80…32000 UnusedSector ┆9 { > : { k ; ' l ░░ l @ | ░ | ░ < = \ > { V @ B b P C D p p { m ┆
0x32000…32080 UnusedSector ┆F \ G { > H I p { n K { o L { > M { p N ' q ░░ q @ | ░ | ░ P { r ┆
0x32080…32100 UnusedSector ┆R { s S { > T { t U ' u ░░ u @ | ░ | ░ V W \ X { V Z ^ \ @ @ _ 6 P @ - P ┆
0x32100…32180 UnusedSector ┆ { v a \ b { > c d ` ` e ` % f ` $ g { w i \ " j { > ┆
0x32180…32200 UnusedSector ┆ k l g a m g P a n \ @ @ 5 P @ { x p f Q ! @ @ { y r \ s { > t u f ┆
0x32200…32280 UnusedSector ┆A P v f A 0 0 { z x \ y { > z { f A @ | 0 { { } \ ~ g a { ░┆
0x32280…32300 UnusedSector ┆ \ g a { | f Q & @ @ { } \ ! { > d @ P f Q & P \ ┆
0x32300…32380 UnusedSector ┆g a g @ a b ` @ ░ i 0 0 | ░ { V b 0 ` { ~ \ ┆
0x32380…32400 UnusedSector ┆ { > { { ' J ░░ J @ | ░ | ░ | ░ 0 { ░ 0 { ┆
0x32400…32480 UnusedSector ┆ \ w { \ P P / P | ░ \ { ┆
0x32480…32500 UnusedSector ┆\ { > { { ' @ ░░ @ @ | ░ | ░ c 0 | ░ ┆
0x32500…32580 UnusedSector ┆ ` { ░ ` { \ b 0 \ w b @ \ b P b P ` ┆
0x32580…32600 UnusedSector ┆ ` ( { { \ 0 b @ b P \ p p 7 0 p ┆
0x32600…32680 UnusedSector ┆ TO : FM : ┆
0x32680…32700 UnusedSector ┆ G + G 3 = ░░h k v y ░░░░ D " ' > A ~ ░░\ ░░f ░░░░y $ $ . 2 N g S ░░\ e ` ░░┆
0x32700…32780 UnusedSector ┆l z ) ░░ ░░ ░░b ░ ░░ + / = H C G ░░l O U Z d h l ░░v | ░░ ░░ ┆
0x32780…32800 UnusedSector ┆ ( READ_WORDS OUTPUT_TEXT UPDATE_LINCB * INTERRUPT_HANDLER - LTU_IF , BOOT_HANDLER ┆
0x32800…32880 UnusedSector ┆ NEXT_XFER_ELEM < CHECK_OPERATION @ GETWORD ( TERMINATE_OPERATION J NEXT_OPERATION d LTUASSIGN q ┆
0x32880…32900 UnusedSector 0x00[128]
[…0x10…]
0x33100…33180 UnusedSector ┆ ┆
0x33180…33200 UnusedSector ┆ F " < . , B @ > 2 4 6 & ( * LT┆
0x33200…33280 UnusedSector ┆ U0 01 ┆
0x33280…33300 UnusedSector ┆ UN KN OW N BU SY ┆
0x33300…33380 UnusedSector ┆ CBAR ^ LCB TERMTB LINTB LQD TRANS_QUE ASGD CRTT LINPTR CONPTR ┆
0x33380…33400 UnusedSector ┆LTU_ADDR LTU_ADDR_PRIO LTU_CB INTOPREF XFER_ADDR MONVAR SEM_OPIF SEM_OPBREAK ┆
0x33400…33480 UnusedSector ┆ SEM_OPPDP SEM_OPLTU SEM_OPANS SEM_OPDUMMY COR_DESC_IF COR_DESC_PDP COR_DESC_LTU CO┆
0x33480…33500 UnusedSector ┆R_DESC_DUMMY COR_DESC_ANS I_F_ADDR I_F_TAB LTU_COM $ PROC_NAME ( OWN_PCBINDEX ) OP 2 ┆
0x33500…33580 UnusedSector ┆ EX_OP ; OP_EXT_INTRPT D OP_EXT_LOOK M OP_EXT_DUMMY V BK_BUF Z UNKNOWN ` BUSY f TO_BREAK l ┆
0x33580…33600 UnusedSector ┆FROM ░░GENERATE_ANSWER_OPERATION ░░DEQUEUE_OPERATION ░░PROCESS_BREAK Q ░░FIND_INT_OP Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x33600…33680 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
[…0x12…]
0x33f80…34000 UnusedSector ┆LTUDEASSIGN l LINASSIGN u LINDEASSIGN Q CONCREATE [ CONDISMANTLE U CREATEBOOT CFER & SEMAR . ┆
0x34000…34080 UnusedSector ┆ LT ░DR.L ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░░░ ┆
0x34080…34100 UnusedSector ┆ ======== LTU_DR.SS 00.00001 MAINMODULE LTU_DRIVER; 00.00002 "---------------------------------------------------------┆
0x34100…34180 UnusedSector ┆----------- 00.00003 " 00.00004 " PROJECT: X 00.00005 " 00.00006 " MODULE NAME: LTU MAIN MODULE 00.000┆
0x34180…34200 UnusedSector ┆07 " MODULE ID NMB: 0010 00.00008 " MODULE VERSION: 0001 00.00009 " MODULE TYPE: MAIN MODULE 00.0001┆
0x34200…34280 UnusedSector ┆0 " MODULE FILES: SUB_COR.SS SUB_PROC.SS 00.00011 " MERGE FILES: GENERALPARAMS.S MONITORNAMES.S 00.00012 "┆
0x34280…34300 UnusedSector ┆ COMONPARAMS.S FMSPARAMS.S DRIVERPARAMS.S 00.00013 " LTU_DRIV_PREFX.C DMADRVPARA┆
0x34300…34380 UnusedSector ┆MS.S 00.00014 " 00.00015 " SPECIFICATIONS: X 00.00016 " AUTHOR/DATE: OH/810415 00.00017 " 00.00018 " DELIVER┆
0x34380…34400 UnusedSector ┆ABLE: NO 00.00019 " SOURCE LANGUAGE: SWELL 00.00020 " COMPILE COMPUTER: CR80 00.00021 " TARGET COMPUTER:┆
0x34400…34480 UnusedSector ┆ CR80 00.00022 " OPERATING SYSTEM: AMOS 00.00023 " 00.00024 "-------------------------------------------------------┆
0x34480…34500 UnusedSector ┆------------- 00.00025 " 00.00026 " CHANGE RECORD 00.00027 " 00.00028 " VERSION AUTHOR/DATE DESCRIPTION OF CHANGE 00.0002┆
0x34500…34580 UnusedSector ┆9 " ------- ----------- --------------------- 00.00030 " 00.00031 "-------------------------------------------------------┆
0x34580…34600 UnusedSector ┆------------- 00.00032 " 00.00033 00.00033 %SOURCE ======== GENERALPARAMS.S ======== LTU_DR.SS 00.00033 00.00034 %┆
0x34600…34680 UnusedSector ┆SOURCE ======== MONITORNAMES.S ======== LTU_DR.SS 00.00034 00.00035 %SOURCE ======== COMONPARAMS.S ======== ┆
0x34680…34700 UnusedSector ┆LTU_DR.SS 00.00035 00.00036 %SOURCE ======== FMSPARAMS.S ======== LTU_DR.SS 00.00036 00.00037 %SOURCE ┆
0x34700…34780 UnusedSector ┆ ======== DRIVERPARAMS.S ======== LTU_DR.SS 00.00037 00.00038 %SOURCE ======== DMADRVPARAMS.S ======== LTU_DR.┆
0x34780…34800 UnusedSector ┆SS 00.00038 00.00039 %LIST 00.00040 %SOURCE ======== LTU_DRIV_PREFX.C 07.00001 07.00002 "---------------------------┆
0x34800…34880 UnusedSector ┆----------------------------------------- 07.00003 " 07.00004 " PROJECT: X 07.00005 " 07.00006 " MODULE NAME: ┆
0x34880…34900 UnusedSector ┆ LTU_DRIV_PREFX.C 07.00007 " MODULE ID NMB: 0010 07.00008 " MODULE VERSION: 0001 07.00009 " MODULE TYPE┆
0x34900…34980 UnusedSector ┆: PREFIX 07.00010 " MODULE FILES: X 07.00011 " MERGE FILES: X 07.00012 " 07.00013 " SPECIFICATIO┆
0x34980…34a00 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
0x34a00…34a80 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
[…0x2…]
0x34b80…34c00 UnusedSector ┆ BFD ░ H ░░ | ░ ░ ░ ░ ░ ░BM ░ ░ ░ ░ ░ LT ░GRAF ░ ░ ░ ░ ┆
0x34c00…34c80 UnusedSector ┆ ░U_DR ░ER ░ ░ ░ ░LTU_ ░.SS ░ ░ ░ ░ CB ░ROC. ░ ░ ░ ░ ░IV_P ░C.SS ░ ░ ░ ┆
0x34c80…34d00 UnusedSector ┆ ░XFER ░ROC. ░ ░ ░ ░ SU ░COR. ░ ░ ░ ░ ░B_PR ░.SS ░ ░ ░ ░LTU_ ░IV_P ░FX.C ░ ░ ░┆
0x34d00…34d80 UnusedSector ┆COUNT:INTEGER; 07.00060 ADDR:INTEGER; 07.00061 OFFSET:INTEGER; 07.00062 END; 07.00063 07.00064 "FORMAT OF EXTENDED XF┆
0x34d80…34e00 UnusedSector ┆ER LIST ELEMENT" 07.00065 TYPE XFER_ELEM= 07.00066 RECORD 07.00067 OP, 07.00068 LINK, 07.00069 COUNT, 07.00070 ┆
0x34e00…34e80 UnusedSector ┆ ADDR, 07.00071 OFFSET, 07.00072 XFERPSW, 07.00073 BUFFPSW, 07.00074 XFOCNT:INTEGER; 07.00075 END; 07.00076 0┆
0x34e80…34f00 UnusedSector ┆7.00077 CONST 07.00078 XFER_CMP= 8; XFER_CML= 8; 07.00079 XFER_SCP= 2; XFER_SCL= 2; 07.00080 07.00081 TYPE 07.00082 XFE┆
0x34f00…34f80 UnusedSector ┆RLIST_COMMANDS= (XFER_CINP,XFER_COUT); 07.00083 07.00084 TYPE 07.00085 BYTEARR= ARRAY[0..0] OF BYTE; "BYTE ARRAY QUALIFIER" 0┆
0x34f80…35000 UnusedSector ┆7.00086 07.00087 07.00088 TYPE 07.00089 ILLOPSTYPE= ARRAY[1..13] OF INTEGER; "ILLEGAL OPERATIONS" 07.00090 07.00091 TYPE 0┆
0x35000…35080 UnusedSector ┆7.00092 PROCOPSTYPE= ARRAY[1..13] OF INTEGER; "PROCESSABLE OPERATIONS" 07.00093 07.00094 CONST "COM┆
0x35080…35100 UnusedSector ┆PLETION CODE:" 07.00095 LTBER= #601; "LTU BOOT LOAD ERROR" 07.00096 XFLI0= #603; "XFER ELE┆
0x35100…35180 UnusedSector ┆M LINK =0" 07.00097 EMBUF= #604; "XFER ELEM BUF IS EMPTY" 07.00098 CHSER= #605; "LTU CHECK┆
0x35180…35200 UnusedSector ┆ SUM ERROR" 07.00099 NOINT= #606; "NO INTERNAL OPERATION FREE" 07.00100 ILCOM= #607; "ILLE┆
0x35200…35280 UnusedSector ┆GAL COMMAND" 07.00101 FOMER= #608; "COMMAND FORMAT ERROR" 07.00102 CMKER= #609; "ERROR IN ┆
0x35280…35300 UnusedSector ┆COMMAND NUMBER" 07.00103 NOCBF= #60A; "NO FRE CONTROL FOUND" 07.00104 LTUER= #60B; "HARDWA┆
0x35300…35380 UnusedSector ┆RE ERROR IN LTU" 07.00105 LTUAS= #60C; "LTU IS ALREADY ASSIGNED" 07.00106 LTNAS= #60D; "LT┆
0x35380…35400 UnusedSector ┆NS: X 07.00014 " AUTHOR/DATE: OH 81:03:31 07.00015 " 07.00016 " DELIVERABLE: NO 07.00017 " SOURCE ┆
0x35400…35480 UnusedSector ┆LANGUAGE: SWELL 07.00018 " COMPILE COMPUTER: CR80 07.00019 " TARGET COMPUTER: CR80 07.00020 " OPERATING SYST┆
0x35480…35500 UnusedSector ┆EM: AMOS 07.00021 " 07.00022 "-------------------------------------------------------------------- 07.00023 " 07.00024 " C┆
0x35500…35580 UnusedSector ┆HANGE RECORD 07.00025 " 07.00026 " VERSION AUTHOR/DATE DESCRIPTION OF CHANGE 07.00027 " ------- ----------- --------┆
0x35580…35600 UnusedSector ┆------------- 07.00028 " 07.00029 "-------------------------------------------------------------------- 07.00030 " 07.00031 07.┆
0x35600…35680 UnusedSector ┆00031 07.00032 CONST 07.00033 CHNUM=7; "NUMBER OF CHANNELS" 07.00034 BYTES=8; 07.00035 CBA┆
0x35680…35700 UnusedSector ┆SE=8; 07.00036 PABORTED=1; 07.00037 07.00038 "***********************************************************************" 07.000┆
0x35700…35780 UnusedSector ┆39 " " 07.00040 " DEVICE DRIVER CONFIGURATION┆
0x35780…35800 UnusedSector ┆ FOR INTERFACING TO " 07.00041 " THE AMOS I/O SYSTEM. " 07.00042 " ┆
0x35800…35880 UnusedSector ┆ " 07.00043 "************************************************┆
0x35880…35900 UnusedSector ┆***********************" 07.00044 07.00045 07.00046 07.00047 CONST 07.00048 MESS_CMP= 8; MESS_CML= 8; 07.00049 MESS_SCP=┆
0x35900…35980 UnusedSector ┆ 2; MESS_SCL= 2; 07.00050 07.00051 TYPE 07.00052 MESS_COMMANDS= (MESS_CABORT,MESS_CXFER); 07.00053 07.00054 " FORMAT OF XFE┆
0x35980…35a00 UnusedSector ┆R LIST ELEMENT" 07.00055 TYPE XFER_ELEMTYPE= 07.00056 RECORD 07.00057 OP:INTEGER; 07.00058 LINK:INTEGER; 07.00059 ┆
0x35a00…35a80 UnusedSector ┆ID:INTEGER; "CON ID" 07.00145 MOCOUNT:INTEGER; "INPUT BYTE COUNT" 07.00146 MOPCB:INTEGER; ┆
0x35a80…35b00 UnusedSector ┆ "OPERATION PCB INDEX" 07.00147 END; 07.00148 07.00149 07.00150 TYPE ANS_OP= "INTERNAL ANSWER OPERATI┆
0x35b00…35b80 UnusedSector ┆ON" 07.00151 RECORD 07.00152 INT:INTERNAL_OPERATION; 07.00153 OPN:OP_TYPE; 07.00154 AOHEAD:INTEGER; "R┆
0x35b80…35c00 UnusedSector ┆ESULT, SECTION" 07.00155 AOTLST:INTEGER; "TRANSFER LIST ADDRESS" 07.00156 AOEVENT:INTEGER; "EVENT┆
0x35c00…35c80 UnusedSector ┆ IDENTIFICATION" 07.00157 AOCNT:INTEGER; "BYTE COUNT" 07.00158 AOCC:INTEGER; "COMPLETION CODE┆
0x35c80…35d00 UnusedSector ┆" 07.00159 END; 07.00160 07.00161 TYPE TRANS_OP= "INTERNAL TRANSFER OPERATION" 07.00162 RECORD 07.00163 ┆
0x35d00…35d80 UnusedSector ┆ INT:INTERNAL_OPERATION; 07.00164 OPN:OP_TYPE; 07.00165 TOHEAD:INTEGER; "COMMAND, SECTION" 07.00166 TOT┆
0x35d80…35e00 UnusedSector ┆U IS NOT ASSIGNED" 07.00107 BODER= #60E; "BOOT DATA COUNT ERROR" 07.00108 OVRFL= #60F; "OV┆
0x35e00…35e80 UnusedSector ┆ERFLOW IN DATA FROM LTU" 07.00109 REGRET= #610; "TRANSFERRED DATA FROM LTU ARE INVALID" 07.00110 RELEASE= #6┆
0x35e80…35f00 UnusedSector ┆11; "STOP IN DATA TRANSFER FROM LTU" 07.00111 CBCER= #612; "ERROR IN CONTROL BLOCK CHAIN" 07.0┆
0x35f00…35f80 UnusedSector ┆0112 LISAS= #613; "AT LEAST ONE LINE IS STILL ASSIGNED" 07.00113 LINAS= #614; "LINE IS ALR┆
0x35f80…36000 UnusedSector ┆EADY ASSIGNED" 07.00114 LNOAS= #615; "LINE IS NOT ASSIGNED" 07.00115 LLNER= #616; "ERROR I┆
0x36000…36080 UnusedSector ┆N LTU LINE NUMBER" 07.00116 FRQER= #617; "ERROR IN FREQUENCY INDEX" 07.00117 MODER= #618; ┆
0x36080…36100 UnusedSector ┆"MODE OF OPERATION ERROR" 07.00118 PROER= #619; "UNKNOWN PROTOCOL TYPE" 07.00119 NOPRC= #61A; ┆
0x36100…36180 UnusedSector ┆ "NO SUCH PROTOCOL COROUTINE" 07.00120 TERAS= #61B; "AT LEAST ONE TERMINAL IS STILL ASSIGNED" 07.00121 B┆
0x36180…36200 UnusedSector ┆BCER= #61C; "BOOT FILE BYTE COUNT ERROR" 07.00122 NNFND= #61D; "FILE NAME NOT FOUND" 07.0012┆
0x36200…36280 UnusedSector ┆3 ILCON= #61E; "ILLEGAL CON_ID/BOOT FILE ID" 07.00124 TNOCR= #61F; "TERMINAL IS NOT CREATE┆
0x36280…36300 UnusedSector ┆D" 07.00125 PCB_ERR= #620; "ERROR IN PCB_INDEX FOR SINDING PROCESS" 07.00126 BFDSM= #621; "B┆
0x36300…36380 UnusedSector ┆OOT FILE IS DISMANTLED" 07.00127 BTTTG= #622; "BYTE COUNT IS TO BIG(BTCNT>2**16)" 07.00128 INTRERR= #623; ┆
0x36380…36400 UnusedSector ┆ "LTU INTERRUPT CANNOT BE RESERVED" 07.00129 07.00130 "***********************************************************┆
0x36400…36480 UnusedSector ┆************" 07.00131 " " 07.00132 " INTERN┆
0x36480…36500 UnusedSector ┆AL OPERATIONS " 07.00133 " ┆
0x36500…36580 UnusedSector ┆ " 07.00134 "***********************************************************************" 07.00135 07.00136 TYPE MES_OP= ┆
0x36580…36600 UnusedSector ┆ "INTERNAL MESSAGE OPERATION" 07.00137 RECORD 07.00138 INT:INTERNAL_OPERATION; 07.00139 OPN:OP_TYPE; 07.00┆
0x36600…36680 UnusedSector ┆140 MOHEAD:INTEGER; "COMMAND, SECTION" 07.00141 MOTLST:INTEGER; "TRANSFER LIST ADDRESS" 07.00142┆
0x36680…36700 UnusedSector ┆ MOEVENT:INTEGER; "EVENT IDENTIFICATION" 07.00143 MOLINEREF:INTEGER; "REF(LINCB)" 07.00144 MOCON┆
0x36700…36780 UnusedSector ┆EVNT:INTEGER; "EVENT IDENTIFICATION" 07.00233 MESS_COUNT:INTEGER; "INPUT BYTE COUNT" 07.00234 MESS_CONI┆
0x36780…36800 UnusedSector ┆LST:INTEGER; "TRANSFER LIST ADDRESS" 07.00167 TOEVENT:INTEGER; "EVENT IDENTIFICATION" 07.00168 TO┆
0x36800…36880 UnusedSector ┆LINEREF:INTEGER; "REF(LINCB)" 07.00169 TOCONID:INTEGER; "CONNECTION ID" 07.00170 END; 07.00171 07.001┆
0x36880…36900 UnusedSector ┆72 07.00173 TYPE OPN_CODE= "OPERATION OP_TYPE CODES" 07.00174 (CHANNEL_0,CHANNEL_1,CHANNEL_2, 07.00175 CH┆
0x36900…36980 UnusedSector ┆ANNEL_3,CHANNEL_4,CHANNEL_5,INTRPT, 07.00176 CH_READ_BREAK,MESS_OP_READ, 07.00177 MESS_OP_APPEND,MESS_OP_BOOT, 07.00178 ┆
0x36980…36a00 UnusedSector ┆ ANS_OPN,ANS_OPN_ERR,INIT_CMD, 07.00179 BOOT_DISMANTLE); 07.00180 " PAGE 07.00181 07.00181 07.00182 CONST 07.00183 MAX_I┆
0x36a00…36a80 UnusedSector ┆NT_OP=10; 07.00184 07.00185 TYPE 07.00186 INT_OP_BUF=ARRAY[1..SIZE(MES_OP)*MAX_INT_OP] OF INTEGER; 07.00187 07.00188 TYPE 07┆
0x36a80…36b00 UnusedSector ┆.00189 INT_OP_BUF_DESC=ARRAY[1..MAX_INT_OP] OF INTEGER; 07.00190 07.00191 "**************************************************┆
0x36b00…36b80 UnusedSector ┆*********************" 07.00192 " " 07.00193 " ┆
0x36b80…36c00 UnusedSector ┆ DRIVER CONFIGURATION " 07.00194 " ┆
0x36c00…36c80 UnusedSector ┆ " 07.00195 "***********************************************************************" 07.00196 07.00197 CONST 07.0┆
0x36c80…36d00 UnusedSector ┆0198 MAXLINES= 4; "NUMBER OF LINECB`S" 07.00199 MAXTERMS= 4; "NUMBER OF TERMCB`S" 07.00200 ┆
0x36d00…36d80 UnusedSector ┆ NCB= MAXLINES+MAXTERMS; "NO OF LINCB AND TERMCB IN POOL" 07.00201 07.00202 07.00203 "***********************************┆
0x36d80…36e00 UnusedSector ┆************************************" 07.00204 " " 07.0020┆
0x36e00…36e80 UnusedSector ┆5 " CONTROL BLOCKS " 07.00206 " ┆
0x36e80…36f00 UnusedSector ┆ " 07.00207 "***********************************************************************" 07.00208 07.0┆
0x36f00…36f80 UnusedSector ┆0209 TYPE LTUCB= "LTU CONTROL BLOCK:" 07.00210 RECORD 07.00211 DEVKIND:INTEGER; "DEVICE KIN┆
0x36f80…37000 UnusedSector ┆D" 07.00212 DEVADDR:INTEGER; "DEVICE ADDRESS" 07.00213 NOLIN:INTEGER; "NUMBER OF LINES" 07.00214┆
0x37000…37080 UnusedSector ┆ NOLINAS:INTEGER; "NO OF ASSIGNED LINES" 07.00215 STATE:INTEGER; "STATE= 1 WHEN ASSIGNED ELSE 0"┆
0x37080…37100 UnusedSector ┆ 07.00216 STATUS:INTEGER; "STATUS= 0 WHEN LTU OK ELSE 1" 07.00217 END; 07.00218 07.00219 TYPE LINCB= ┆
0x37100…37180 UnusedSector ┆ "LINE CONTROL BLOCK:" 07.00220 RECORD 07.00221 PROT:INTEGER; "PROTOCOL" 07.00222 MODEOP:INTE┆
0x37180…37200 UnusedSector ┆GER; "MODE OF OPERATION" 07.00223 LTLINO:INTEGER; "LTU LINE NUMBER" 07.00224 FREQ:INTEGER; ┆
0x37200…37280 UnusedSector ┆ "COMMUNICATION RATE" 07.00225 TRQUEADDR:INTEGER; "TRANSFER QUEUE ADDRESS" 07.00226 STATE:INTEGER; ┆
0x37280…37300 UnusedSector ┆ "STATE= 1 WHEN ASSIGNED ELSE 0" 07.00227 STATUS:INTEGER; "STATUS= 0 WHEN LTU OK ELSE 1" 07.00228 FI┆
0x37300…37380 UnusedSector ┆TERADDR:INTEGER; "FIRST TERMCB ADDRESS" 07.00229 LTUCBADDR:INTEGER; "LTUCB ADDRESS" 07.00230 MESS_HEAD┆
0x37380…37400 UnusedSector ┆:INTEGER; "CMD,BUFFSEC,TRANSFERSEC" 07.00231 MESS_TLST:INTEGER; "TRANSFER LIST ADDRESS" 07.00232 MESS_┆
0x37400…37480 UnusedSector ┆ "CONVERSATION DIRECTION" 07.00248 NETERMADDR:INTEGER; "NEXT TERMINAL ADDRESS" 07.00249 STATE:INTEGER; ┆
0x37480…37500 UnusedSector ┆ "STATE= 1 WHEN ASSIGNED ELSE 0" 07.00250 STATUS:INTEGER; "STATUS= 0 WHEN LTU OK ELSE 1" 07.00251 PROCID:┆
0x37500…37580 UnusedSector ┆INTEGER; "PROCES IDENTIFICATION" 07.00252 LINCBADDR:INTEGER; "LINECB ADDRESS" 07.00253 PROSEMADDR:I┆
0x37580…37600 UnusedSector ┆NTEGER; "PROTOCOL SEMAPHORE ADDRESS" 07.00254 XFERBUF:INTEGER; "XFER_ELEM SAVE BUFFER" 07.00255 END; 07┆
0x37600…37680 UnusedSector ┆.00256 07.00257 TYPE LTU_ASGN_DESC= "LTU ASSIGN DESCRIPTION RECORD" 07.00258 RECORD 07.00259 ASGNKIND:INTEGER┆
0x37680…37700 UnusedSector ┆; "ASSIGN(LTU)=1" 07.00260 ASGNDEV:INTEGER; "DEVICE KIND" 07.00261 ASGNIOADDR:INTEGER; "DEV┆
0x37700…37780 UnusedSector ┆ICE ADDRESS" 07.00262 ASGNNULI:INTEGER; "NUMBER OF LINES" 07.00263 END; 07.00264 07.00265 TYPE LINE_ASGN_DESC= ┆
0x37780…37800 UnusedSector ┆ "LINE ASSIGN DESCRIPTION RECORD" 07.00266 RECORD 07.00267 ASGNKIND:INTEGER; "ASSIGN(LINE)=2" 07.00268┆
0x37800…37880 UnusedSector ┆ ASGNPROT:INTEGER; "LINE PROTOCOL" 07.00269 ASGNMODE:INTEGER; "MODE OF OPERATION" 07.00270 ASGNL┆
0x37880…37900 UnusedSector ┆TLINO:INTEGER; "LTU LINE NUMBER" 07.00271 ASGNFREQ:INTEGER; "COMMUNICATION RATE" 07.00272 END; 07.00273 ┆
0x37900…37980 UnusedSector ┆ 07.00274 TYPE CON_CR_ATT= "CONNECTION ATTRIBUTES RECORD" 07.00275 RECORD 07.00276 CRKIND:INTEGER; ┆
0x37980…37a00 UnusedSector ┆ "CREATE(CON)=2" 07.00277 CRLTLINO:INTEGER; "LTU LINE NUMBER" 07.00278 CRADDR:INTEGER; "TERMINA┆
0x37a00…37a80 UnusedSector ┆L ADDRESS" 07.00279 END; 07.00280 07.00281 TYPE BOOT_CR_ATT= "BOOT LOAD ATTRIBUTES RECORD" 07.00282 RECORD 07┆
0x37a80…37b00 UnusedSector ┆.00283 CRKIND:INTEGER; "CREATE(BOOT LOAD)=1" 07.00284 CRLTLINO:INTEGER; "LTU LINE NUMBER" 07.00285┆
0x37b00…37b80 UnusedSector ┆ END; 07.00286 07.00287 CONST 07.00288 TRANS_MESS_NO= NCB; "MAX NUMBER OF QUEUED TRANSFER MESSAGES" 07.00289 NT┆
0x37b80…37c00 UnusedSector ┆EL= TRANS_MESS_NO*SIZE(MES_OP); "NUMBER OF TRANSFER QUEUE ELE-" 07.00290 "MENTS PER LINE┆
0x37c00…37c80 UnusedSector ┆" 07.00291 07.00292 NTE= NTEL*MAXLINES; "TOTAL NUMBER OF TRANSFER QUEUE ELEMENTS" 07.00293 07.00294 TYPE 07.00295 ┆
0x37c80…37d00 UnusedSector ┆ CBARR= ARRAY[1..SIZE(TERMCB)*MAXTERMS] OF INTEGER; 07.00296 07.00297 TYPE 07.00298 SEMADDR= ARRAY[0..7] OF INTEGER; ┆
0x37d00…37d80 UnusedSector ┆"ARRAY OF ADDRESSES TO PRO-" 07.00299 "TOCOL SEMAPHORS" 07.00300 TYPE 07.00301 TERMT┆
0x37d80…37e00 UnusedSector ┆ABLE= ARRAY[1..MAXTERMS] OF INTEGER; "ARRAY OF ADDRESSES TO TER-" 07.00302 "MINAL ┆
0x37e00…37e80 UnusedSector ┆CB, INDEX=CON ID" 07.00303 07.00304 TYPE 07.00305 XFER_ELEM_BUFFERS= ARRAY[1..SIZE(XFER_ELEM)*MAXTERMS] OF INTEGER; 07.00306 ┆
0x37e80…37f00 UnusedSector ┆D:INTEGER; "CONNECTION ID" 07.00235 CH_STATE:INTEGER; "LINE STATE(READ,WRITE BREAK) 07.00236 CH_I_F_AD┆
0x37f00…37f80 UnusedSector ┆DR:INTEGER; "ADDRESS TO LTU CH_I_F_TABLE" 07.00237 CUR_BTCNT:INTEGER; "CURRENT BYTE COUNT" 07.00238 END; 0┆
0x37f80…38000 UnusedSector ┆7.00239 07.00240 07.00241 TYPE TERMCB= "TERMINAL CONTROL BLOCK:" 07.00242 RECORD 07.00243 CONID:INTEG┆
0x38000…38080 UnusedSector ┆ER; "CONNECTION ID" 07.00244 LTLINO:INTEGER; "LTU LINE NUMBER" 07.00245 TERMADDR:INTEGER; ┆
0x38080…38100 UnusedSector ┆ "TERMINAL ADDRESS" 07.00246 FIOPNO:INTEGER; "NUMBER OF FILES OPEN" 07.00247 CONVDIR:INTEGER; ┆
0x38100…38180 UnusedSector ┆ " 07.00357 " LTU CONFIGURATION " 07.00┆
0x38180…38200 UnusedSector ┆358 " " 07.00359 "-----------------------------------------┆
0x38200…38280 UnusedSector ┆-----------------------------" 07.00360 07.00361 CONST "STATUS WORD BIT MASK CONST" 07.0036┆
0x38280…38300 UnusedSector ┆2 BN_REGRET=0; 07.00363 BN_BREAK=5; 07.00364 BN_S_PACKET=6; 07.00365 BN_P_PACKET=7; 07.00366 BN_SET=7; 07.00367 CRLF┆
0x38300…38380 UnusedSector ┆=CR SHIFTLL 8 +LF; 07.00368 07.00369 CONST 07.00370 S_PACKET=1 SHIFTLL BN_S_PACKET; 07.00371 P_PACKET=1 SHIFTLL BN_P_PACKET┆
0x38380…38400 UnusedSector ┆; 07.00372 07.00373 CONST "FIFO ORINTED I/O INSTR. CODE" 07.00374 MCCMD=1 SHIFTLL 11; ┆
0x38400…38480 UnusedSector ┆ "MASTER CLEAR" 07.00375 BLCMD=1 SHIFTLL 10; "BOOT LOAD LTU" 07.00376 SBPCMD=#3 SHIFTLL ┆
0x38480…38500 UnusedSector ┆6; "SET BYTE POINTER" 07.00377 RDCMD=#C SHIFTLL 6; "READ WORD" 07.00378 RDICMD=#4 SHI┆
0x38500…38580 UnusedSector ┆FTLL 6; "READ WORD AND INCREMENT" 07.00379 WRLCMD=#9 SHIFTLL 6; "WRITE BYTE FROM LOWER P┆
0x38580…38600 UnusedSector ┆OS" 07.00380 WRCMD=#D SHIFTLL 6; "WRITE WORD" 07.00381 WRICMD=#8 SHIFTLL 6; "WRITE WO┆
0x38600…38680 UnusedSector ┆RD AND INCREMENT" 07.00382 RSTCMD=#0 SHIFTLL 6; "READ DEVICE STATUS" 07.00383 07.00384 CONST ┆
0x38680…38700 UnusedSector ┆ "LTU ADDRESSES:" 07.00385 LTU_1=#14; 07.00386 07.00387 07.00388 TYPE LTU_I_F_TABLE_ADDR= ┆
0x38700…38780 UnusedSector ┆ "ADDRESSES TO LTU AND TO-" 07.00389 RECORD "INTERFACE TABLES" 07.00390 I_F_TABLE0:IN┆
0x38780…38800 UnusedSector ┆TEGER; 07.00391 I_F_TABLE1:INTEGER; 07.00392 I_F_TABLE2:INTEGER; 07.00393 I_F_TABLE3:INTEGER; 07.00394 I_F_TABLE┆
0x38800…38880 UnusedSector ┆4:INTEGER; 07.00395 I_F_TABLE5:INTEGER; 07.00396 I_F_TABLE6:INTEGER; 07.00397 I_F_TABLE7:INTEGER; 07.00398 LTU_A┆
0x38880…38900 UnusedSector ┆ 07.00307 TYPE 07.00308 XFER_ELEM_ADDR= TERMTABLE;; 07.00309 07.00310 TYPE 07.00311 LINETABLE=ARRAY[0..NCB] OF INTEGER; 07.┆
0x38900…38980 UnusedSector ┆00312 07.00313 TYPE 07.00314 LINE_CONTROL_BLOCK=ARRAY[1..SIZE(LINCB)*MAXLINES] OF INTEGER; 07.00315 07.00316 TYPE 07.00317 ┆
0x38980…38a00 UnusedSector ┆ LINE_QUEUE=ARRAY[1..NTEL] OF INTEGER; 07.00318 07.00319 TYPE 07.00320 TRANSFER_QUEUE= 07.00321 RECORD 07.00322 LINE0_Q┆
0x38a00…38a80 UnusedSector ┆UE:LINE_QUEUE; 07.00323 LINE1_QUE:LINE_QUEUE; 07.00324 LINE2_QUE:LINE_QUEUE; 07.00325 LINE3_QUE:LINE_QUEUE; 07.00326┆
0x38a80…38b00 UnusedSector ┆ END; 07.00327 07.00328 TYPE 07.00329 LINE_QUEUE_DESCRIPTER= ARRAY[0..MAXLINES-1] OF INTEGER; 07.00330 07.00331 07.00332 ┆
0x38b00…38b80 UnusedSector ┆CONST 07.00333 NCBADNO= 5; "NEXT CB ADDRESS IS NUMBER 5 IN CB" 07.00334 STATENO= 6; "STA┆
0x38b80…38c00 UnusedSector ┆TE IS NUMBER 6 IN CB" 07.00335 07.00336 07.00337 TYPE 07.00338 CONTROL_BLOCK_STATE=(CB_FREE,CB_OCCP); 07.00339 07.00340 TYP┆
0x38c00…38c80 UnusedSector ┆E 07.00341 CHANNEL_STATE=(CH_IDLE,CH_READ,CH_WRITE,CH_BREAK,BOOT_STARTED); 07.00342 07.00343 TYPE 07.00344 FIND_OUT= (NO_AN┆
0x38c80…38d00 UnusedSector ┆SWER,PROCESS_ANSWER); 07.00345 07.00346 TYPE 07.00347 EXT_OP=EXTERNAL_OPERATION; 07.00348 07.00349 TYPE 07.00350 FILE__NAM┆
0x38d00…38d80 UnusedSector ┆E= ARRAY[0..7] OF INTEGER; 07.00351 07.00352 TYPE 07.00353 FILE__NAMES= ARRAY[1..SIZE(FILE__NAME)*MAXTERMS] OF INTEGER; 07.00┆
0x38d80…38e00 UnusedSector ┆354 07.00355 "----------------------------------------------------------------------" 07.00356 " ┆
0x38e00…38e80 UnusedSector ┆2 00.00053 (R1; "POINTER KEPT " 00.00054 R2; "WORD COUNT ┆
0x38e80…38f00 UnusedSector ┆ DEST " 00.00055 R5; "REF(BUFFER) KEPT " 00.0005┆
0x38f00…38f80 UnusedSector ┆6 R4); "LINK DEST " 00.00057 00.00058 IMPORT PROCEDURE OUTPUT_TEXT 00.00┆
0x38f80…39000 UnusedSector ┆059 "THIS PROCEDURE OUTPUTS A STRING OF TEXT SPECIFIED IN THE LTU DRIVER " 00.00060 "PROCESS TO THE SHARED RAM IN THE LTU. ┆
0x39000…39080 UnusedSector ┆ " 00.00061 00.00062 (R7; "REF(LINCB) KEPT " 00.00063 ┆
0x39080…39100 UnusedSector ┆ R4); "LINK DEST " 00.00064 00.00065 IMPORT PROCEDURE UPDATE_LINCB 00.00066 "┆
0x39100…39180 UnusedSector ┆THIS PROCEDURE UPDATES THE SPECIFIED LINE CONTROL BLOCK WITH THE DATA" 00.00067 "IN THE SPECIFIED INTERNAL OPERATION. ┆
0x39180…39200 UnusedSector ┆ " 00.00068 00.00069 (R4; "REF(INT_OP) KEPT " 00.00070 ┆
0x39200…39280 UnusedSector ┆ R7; "REF(LINCB) KEPT " 00.00071 R6); "LINK DEST ┆
0x39280…39300 UnusedSector ┆DDR:INTEGER; 07.00399 END; 07.00400 07.00401 TYPE LTU_COM_TABLE= "LTU COMMUNICATION TABLE" 07.00402 R┆
0x39300…39380 UnusedSector ┆ECORD 07.00403 TX_BTCNT:INTEGER; 07.00404 TX_ADDR:INTEGER; 07.00405 TX_STATUS:INTEGER; 07.00406 RX_BTCNT:INTEGER┆
0x39380…39400 UnusedSector ┆; 07.00407 RX_ADDR:INTEGER; 07.00408 RX_STATUS:INTEGER; 07.00409 END; 07.00410 07.00411 " PAGE 07.00412 07.00412 TY┆
0x39400…39480 UnusedSector ┆PE I_F_TABLE= 07.00413 RECORD 07.00414 TS1_STATUS:INTEGER; 07.00415 TX_BUF_ADDR:INTEGER; 07.00416 TS2_STATUS:INTEG┆
0x39480…39500 UnusedSector ┆ER; 07.00417 SPARE:INTEGER; 07.00418 RS1_STATUS:INTEGER; 07.00419 RX_BUF_ADDR:INTEGER; 07.00420 RS2_STATUS:INTEG┆
0x39500…39580 UnusedSector ┆ER; 07.00421 END; 07.00422 07.00423 TYPE 07.00424 I_F_TAB_ADDR=ARRAY[0..8] OF INTEGER; "ADDRESSES TO LTU I_F TABLES" 07.┆
0x39580…39600 UnusedSector ┆00425 "----------------------------------------------------------------------" 07.00426 " ┆
0x39600…39680 UnusedSector ┆ " 07.00427 " BREAK CONFIGURATION " 07.00428 " ┆
0x39680…39700 UnusedSector ┆ " 07.00429 "-------------------------------------------------┆
0x39700…39780 UnusedSector ┆---------------------" 07.00430 07.00431 07.00432 TYPE BREAK_OP= 07.00433 RECORD 07.00434 INT:INTERNAL_OPERATION; 07.004┆
0x39780…39800 UnusedSector ┆35 OPN:OP_TYPE; 07.00436 NAME1:INTEGER; 07.00437 NAME2:INTEGER; 07.00438 NAME3:INTEGER; 07.00439 LCBREF:INTE┆
0x39800…39880 UnusedSector ┆GER; 07.00440 END; 07.00441 07.00442 TYPE LINCB_BREAK= 07.00443 RECORD 07.00444 NUD:ARRAY[0..9] OF INTEGER; "NO┆
0x39880…39900 UnusedSector ┆T USED" 07.00445 OUT_ADDR:INTEGER; 07.00446 OUT_BTCNT:INTEGER; 07.00447 END; 07.00448 07.00449 TYPE 07.00450 BREAK_┆
0x39900…39980 UnusedSector ┆BUF= ARRAY[1..8] OF BYTE; 07.00451 07.00452 TYPE BREAK_ANSWER= ARRAY[0..5] OF INTEGER; 07.00453 07.00454 " PAGE 07.00455 07┆
0x39980…39a00 UnusedSector ┆.00455 07.00456 ======== LTU_DR.SS 00.00040 00.00041 00.00042 00.00043 LABEL IFCOR,IFCERR,IFCANS,IFCPROP; 00.00044┆
0x39a00…39a80 UnusedSector ┆ %PRINT 00.00045 00.00046 00.00047 00.00048 00.00049 IMPORT PROCEDURE READ_WORDS 00.00050 "THIS PROCEDURE READS WORDS FROM T┆
0x39a80…39b00 UnusedSector ┆HE LTU RAM STARTING AT THE SPECIFIED " 00.00051 "ADDRESS, TO THE SPECIFIED BUFFER. " 00.0005┆
0x39b00…39b80 UnusedSector ┆ " 00.00122 00.00123 00.00124 00.00125 00.00126 IMPORT PROCEDURE GETWORD 00┆
0x39b80…39c00 UnusedSector ┆.00127 00.00128 "SIMILAR TO GETBYTE, EXCEPT THE NEXT WORD IF ANY IS FETCHED. " 00.00129 00.00130 (R3; "-- ┆
0x39c00…39c80 UnusedSector ┆ WORD " 00.00131 R4) "LINK DEST ┆
0x39c80…39d00 UnusedSector ┆ " 00.00072 00.00073 IMPORT PROCEDURE INTERRUPT_HANDLER 00.00074 "THIS PROCEDURE SCANS ALL THE LTU COMMUNICAT┆
0x39d00…39d80 UnusedSector ┆ION TABLES. IF ANY CHANGE " 00.00075 "IN THE STATUS WORD A DATA TRANSFER PROCEDURE IS CALLED. " 00.00076 00.0007┆
0x39d80…39e00 UnusedSector ┆7 (R4); "LINK DEST " 00.00078 00.00079 IMPORT PROCEDURE LTU_IF 00.00080 "┆
0x39e00…39e80 UnusedSector ┆THIS PROCEDURE TAKES CARE OF THE FIRST DATA TRANSFER TO ONE OF THE " 00.00081 "LTU CHANNELS FROM THE APPLICATION . ┆
0x39e80…39f00 UnusedSector ┆ " 00.00082 00.00083 (R7; "REF(LINCB) KEPT " 00.00084 ┆
0x39f00…39f80 UnusedSector ┆ R4); "LINK DEST " 00.00085 00.00086 IMPORT PROCEDURE BOOT_HANDLER 00.00087 "T┆
0x39f80…3a000 UnusedSector ┆HIS PROCEDURE HANDLES THE BOOT LOADING OF THE LTU. AT FIRST THE CR80" 00.00088 "INDICATES THAT IT IS READY BY LOADING THE STATUS┆
0x3a000…3a080 UnusedSector ┆ WORD IN THE SHARED " 00.00089 "RAM IN THE LTU WITH #AAAA. IF THE LTU IS READY, THE STATUS WORD WILL " 00.00090 "BE LOADED WITH┆
0x3a080…3a100 UnusedSector ┆ #0000. THE CR80 LOADS THE LTU WITH THE BOOT LOAD DATA." 00.00091 "IT IS CHECKED THAT THE STATUS WORD IS VALID, TELLING THAT THE┆
0x3a100…3a180 UnusedSector ┆ BOOT " 00.00092 "LOAD HAS BEEN SUCCESFUL, IF NOT A NEW BOOT LOAD IS PERFORMED. " 00.00093 00.00094 (R4; "REF┆
0x3a180…3a200 UnusedSector ┆(INT_OP) KEPT " 00.00095 R7; "REF(LINCB) KEPT ┆
0x3a200…3a280 UnusedSector ┆ " 00.00096 R6); "LINK DEST " 00.00097 00.00098 IMPORT PROCEDURE NEXT┆
0x3a280…3a300 UnusedSector ┆_XFER_ELEM 00.00099 00.00100 "THE NEXT XFER ELEMENT IF ANY IS FETCHED INTO CXFER. " 00.00101 00.00102 ┆
0x3a300…3a380 UnusedSector ┆ (R4) "LINK DEST " 00.00103 :ERROR_DONE; 00.00104 "0= NONE┆
0x3a380…3a400 UnusedSector ┆ " 00.00105 "1= OK ┆
0x3a400…3a480 UnusedSector ┆ " 00.00106 00.00107 IMPORT PROCEDURE CHECK_OPERATION 00.00108 00.00109 "THE REFERENCED SYSTEM MSG IS INSPECTED. IF IT DO┆
0x3a480…3a500 UnusedSector ┆ES NOT HAVE A PROPER " 00.00110 "FORMAT, RETURN IS MADE TO FAULT. " 00.00111 "IF IT CONT┆
0x3a500…3a580 UnusedSector ┆AINS A CANCEL COMMAND, RETURN IS MADE TO CANCEL AND THE " 00.00112 "EVENT TO BE CANCELLED IS PRODUCED. ┆
0x3a580…3a600 UnusedSector ┆ " 00.00113 "IF IT CONTAINS A TRANSFER COMMAND THE XFER LIST ELEMENT IS FETCHED " 00.00114 "INTO CXFER. RETUR┆
0x3a600…3a680 UnusedSector ┆N IS MADE TO XFER. " 00.00115 00.00116 (R1; "REF(MSG) KEPT ┆
0x3a680…3a700 UnusedSector ┆ " 00.00117 R2; "-- EVENT(IF CANCEL) " 00.00118 R4) "L┆
0x3a700…3a780 UnusedSector ┆INK DEST " 00.00119 :0..2;"0= FAULT ┆
0x3a780…3a800 UnusedSector ┆ " 00.00120 "1= CANCEL " 00.00121 "2=XFER ┆
0x3a800…3a880 UnusedSector ┆D THE BYTECOUNT(=NUMBER OF TRANSFERRED BYTES). " 00.00141 00.00142 (R0; "RESULT ┆
0x3a880…3a900 UnusedSector ┆KEPT(COMPLETION CODE) " 00.00143 R1; "BYTECOUNT(LEAST SIGF PART) KEPT " 00.00144 ┆
0x3a900…3a980 UnusedSector ┆ R2; "BYTECOUNT(MOST SIGF KIND) KEPT " 00.00145 R4) "LINK DEST ┆
0x3a980…3aa00 UnusedSector ┆ " 00.00146 :ERROR_DONE; 00.00147 "0= ERROR ┆
0x3aa00…3aa80 UnusedSector ┆ " 00.00148 "1= OK " 00.00149 00.00150 00.00151 IMPORT PRO┆
0x3aa80…3ab00 UnusedSector ┆CEDURE NEXT_OPERATION 00.00152 00.00153 "THE REFERENCED SYSTEM MESSAGE IS INSPECTED. IF IT DOES NOT HAVE A " 00.00154 "PROP┆
0x3ab00…3ab80 UnusedSector ┆ER FORMAT, RETURN IS MADE TO ERROR. IF IT CONTAINS A CANCEL CMD " 00.00155 "RETURN IS MADE TO CANCEL AND THE EVENT TO BE CANCL┆
0x3ab80…3ac00 UnusedSector ┆LED IS DELIVERED. " 00.00156 "IF THE MESSAGE CONTAINS A PROPER I/O COMMAND, RETURN IS MADE TO CMD. " 00.00157 "AND THE OPERAT┆
0x3ac00…3ac80 UnusedSector ┆ION CODE AND BYTECOUNT ARE RETURNED. " 00.00158 00.00159 (R0; "-- BYTECO┆
0x3ac80…3ad00 UnusedSector ┆UNT(LEAST SIGF PART)" 00.00160 R1; "REF(MSG) BYTECOUNT(MOST SIGF PART) " 00.00161 R2; "-┆
0x3ad00…3ad80 UnusedSector ┆- OPERATION/EVENT " 00.00162 R4) "LINK DEST ┆
0x3ad80…3ae00 UnusedSector ┆ " 00.00163 :0..2;"0= ERROR " 00.00164 "1= CANCEL ┆
0x3ae00…3ae80 UnusedSector ┆ " 00.00165 "2= COMMAND ┆
0x3ae80…3af00 UnusedSector ┆" 00.00166 00.00167 IMPORT PROCEDURE LTUASSIGN 00.00168 00.00169 "THIS PROCEDURE CHECKS WHETHER THE LTU ALREADY IS ASSIGNED AN┆
0x3af00…3af80 UnusedSector ┆D OK. " 00.00170 "IF OK AND NOT ASSIGNED, IT SETS THE LTU CONTROL BLOCK STATE TO ASSIGNED" 00.00171 00.00172 (R1; ┆
0x3af80…3b000 UnusedSector ┆"-- COMPLETION CODE " 00.00173 R4) "LINK DEST ┆
0x3b000…3b080 UnusedSector ┆ " 00.00174 :ERROR_DONE; 00.00175 "0= ERROR " ┆
0x3b080…3b100 UnusedSector ┆00.00176 "1= OK " 00.00177 00.00178 00.00179 IMPORT PROCEDURE┆
0x3b100…3b180 UnusedSector ┆ LTUDEASSIGN 00.00180 00.00181 "THIS PROCEDURE DEASSIGNES THE LTU IF IT WAS ASSIGNED. IF JUST ONE LINE" 00.00182 "STILL IS ASSI┆
0x3b180…3b200 UnusedSector ┆GNED THE LTU CANNOT BE DEASSIGNED. " 00.00183 00.00184 (R1; "-- COMPL┆
0x3b200…3b280 UnusedSector ┆ETION CODE " 00.00185 R4) "LINK DEST " 00.00186 :ERRO┆
0x3b280…3b300 UnusedSector ┆R_DONE; 00.00187 "0= ERROR " 00.00188 "1= OK ┆
0x3b300…3b380 UnusedSector ┆ " 00.00189 00.00190 00.00191 IMPORT PROCEDURE LINASSIGN 00.00192 00.00193 "THIS P┆
0x3b380…3b400 UnusedSector ┆ " 00.00132 :ERROR_DONE; 00.00133 "0= NONE " 00.00┆
0x3b400…3b480 UnusedSector ┆134 "1= OK " 00.00135 00.00136 00.00137 IMPORT PROCEDURE TERM┆
0x3b480…3b500 UnusedSector ┆INATE_OPERATION 00.00138 00.00139 "THIS PROCEDURE SKIPS FORWARD TO THE LAST XFER ELEMENT AND STORES THE " 00.00140 "RESULT AN┆
0x3b500…3b580 UnusedSector ┆ " 00.00213 :ERROR_DONE; 00.00214 "0= ERROR ┆
0x3b580…3b600 UnusedSector ┆ " 00.00215 "1= OK " 00.00216 00.00217 00.00218 IMPORT PRO┆
0x3b600…3b680 UnusedSector ┆CEDURE CONCREATE 00.00219 00.00220 "THIS PROCEDURE CHECKS WHETHER THE SPECIFIED CONNECTION ALREADY IS " 00.00221 "CREATED.┆
0x3b680…3b700 UnusedSector ┆ IF NOT AND IF THE LTU IS OK, IT CREATES A TERMINAL CONTROL " 00.00222 "BLOCK AND RETURNS A CON_ID. ┆
0x3b700…3b780 UnusedSector ┆ " 00.00223 00.00224 (R1; "-- COMPLETION CODE " 00.00225 ┆
0x3b780…3b800 UnusedSector ┆ R6; "-- CON_ID " 00.00226 R4) "LINK DEST ┆
0x3b800…3b880 UnusedSector ┆ " 00.00227 :0..2;"0= ERROR " 00.00228 ┆
0x3b880…3b900 UnusedSector ┆ "1= OK " 00.00229 "2= TERM ALREADY CREATED ┆
0x3b900…3b980 UnusedSector ┆ " 00.00230 00.00231 00.00232 IMPORT PROCEDURE CONDISMANTLE 00.00233 00.00234 "THIS PROCEDURE REMOVES THE CONTR┆
0x3b980…3ba00 UnusedSector ┆OL BLOCK FOR THE SPECIFIED CONNECTION " 00.00235 "FROM THE CHAIN OF CB`S. " 00.0┆
0x3ba00…3ba80 UnusedSector ┆0236 00.00237 (R1; "-- COMPLETION CODE " 00.00238 R2; "CON_ID ┆
0x3ba80…3bb00 UnusedSector ┆ KEPT " 00.00239 R4) "LINK DEST " 0┆
0x3bb00…3bb80 UnusedSector ┆0.00240 :0..2;"0= ERROR " 00.00241 "1= OK ┆
0x3bb80…3bc00 UnusedSector ┆ " 00.00242 "2= TERM STILL CREATED, COUNT-1 " 00.00243┆
0x3bc00…3bc80 UnusedSector ┆ 00.00244 00.00245 IMPORT PROCEDURE CREATEBOOT 00.00246 00.00247 "THIS PROCEDURE CHECKS WHETHER THE LTU IS ASSIGNED, AND THAT┆
0x3bc80…3bd00 UnusedSector ┆ NO LINES " 00.00248 "ARE ASSIGNED. THE RETURN IS A BOOT FILE ID. " 00.00249 00.00250 (R1; ┆
0x3bd00…3bd80 UnusedSector ┆ "-- COMPLETION CODE " 00.00251 R6; "-- BOOT FILE ID┆
0x3bd80…3be00 UnusedSector ┆ROCEDURECHECKS WHETHER THE LTU IS OK AND IF THE LINE ALREADY IS " 00.00194 "ASSIGNED. IF THE LTU IS OK AND THE LINE IS NOT ASSIG┆
0x3be00…3be80 UnusedSector ┆NED, THE LINE CON-" 00.00195 "TROL BLOCK STATE IS CHANGED TO ASSIGNED, AND THE LINE ATTRIBUTES ARE " 00.00196 "READ INTO THE CO┆
0x3be80…3bf00 UnusedSector ┆NTROL BLOCK. " 00.00197 00.00198 (R1; "-- COMPLETI┆
0x3bf00…3bf80 UnusedSector ┆ON CODE " 00.00199 R4) "LINK DEST " 00.00200 :ERROR_D┆
0x3bf80…3c000 UnusedSector ┆ONE; 00.00201 "0= ERROR " 00.00202 "1= OK ┆
0x3c000…3c080 UnusedSector ┆ " 00.00203 00.00204 00.00205 IMPORT PROCEDURE LINDEASSIGN 00.00206 00.00207 "THIS PR┆
0x3c080…3c100 UnusedSector ┆OCEDURE SETS THE LINE CONTROL BLOCK STATE TO DEASSIGNED,AND DE-" 00.00208 "CREMENTS THE LTUCB, NUMBER OF LINES ASSIGNED. ┆
0x3c100…3c180 UnusedSector ┆ " 00.00209 00.00210 (R1; "-- COMPLETION CODE " 00.00211 ┆
0x3c180…3c200 UnusedSector ┆ R2; "LTU LINE NUMBER KEPT " 00.00212 R4) "LINK DEST ┆
0x3c200…3c280 UnusedSector ┆0_QUE); 00.00302 LQD[1]=ADDRESS(TRANS_QUE.LINE1_QUE); 00.00303 LQD[2]=ADDRESS(TRANS_QUE.LINE2_QUE); 00.00304 LQD[3]=ADDRES┆
0x3c280…3c300 UnusedSector ┆S(TRANS_QUE.LINE3_QUE); 00.00305 00.00306 VAR 00.00307 INTO_BUF:INT_OP_BUF; 00.00308 INTO_BUF_DESC:INT_OP_BUF_DESC; 00.0030┆
0x3c300…3c380 UnusedSector ┆9 INTO_MES_OP:MES_OP; 00.00310 XFER_BUFFERS:XFER_ELEM_BUFFERS; 00.00311 FILE_NAME: FILE__NAME; 00.00312 FILE_NAMES: FILE┆
0x3c380…3c400 UnusedSector ┆__NAMES; 00.00313 00.00314 "***********************************************************************" 00.00315 " ┆
0x3c400…3c480 UnusedSector ┆ " 00.00316 " COROUTINE CONFIGURATION ┆
0x3c480…3c500 UnusedSector ┆ " 00.00317 " " 00.00318 "***********************┆
0x3c500…3c580 UnusedSector ┆************************************************" 00.00319 00.00320 EXPORT VAR 00.00321 MONVAR:COMON_VAR; 00.00322 SEM_OPIF┆
0x3c580…3c600 UnusedSector ┆:SEMAPHORE; "HOST INTERFACE OPERATION SEMAPHORE" 00.00323 SEM_OPBREAK:SEMAPHORE; "HOST INTERFACE BREAK OPERAT┆
0x3c600…3c680 UnusedSector ┆ION SEM" 00.00324 SEM_OPPDP:SEMAPHORE; "PDP OPERATION SEMAPHORE" 00.00325 SEM_OPLTU:SEMAPHORE; "LTU OPERAT┆
0x3c680…3c700 UnusedSector ┆ION SEMAPHORE" 00.00326 SEM_OPANS:SEMAPHORE; "ANSWER OPERATION SEMAPHORE" 00.00327 SEM_OPDUMMY:SEMAPHORE; "D┆
0x3c700…3c780 UnusedSector ┆UMMY OPERATION SEMAPHORE" 00.00328 COR_DESC_IF, 00.00329 COR_DESC_PDP, 00.00330 COR_DESC_LTU, 00.00331 COR_DESC_DUMMY, 0┆
0x3c780…3c800 UnusedSector ┆ " 00.00252 R4) "LINK DEST " 00.00253 :ERROR_DONE;┆
0x3c800…3c880 UnusedSector ┆ 00.00254 "0= ERROR " 00.00255 "1= OK ┆
0x3c880…3c900 UnusedSector ┆ " 00.00256 00.00257 00.00258 00.00259 VAR 00.00260 OPREF:INTEGER; "REFE┆
0x3c900…3c980 UnusedSector ┆RENCE TO CURRENT OPERATION" 00.00261 APP_BTCNT:LONG; "APPLICATION BYTE COUNT" 00.00262 00.00263 IMPORT VAR 00.0┆
0x3c980…3ca00 UnusedSector ┆0264 CFER:XFER_ELEM; 00.00265 00.00266 CONST 00.00267 CXFER=ADDRESS(CFER); 00.00268 00.00269 "----------------------------┆
0x3ca00…3ca80 UnusedSector ┆------------------------------------------" 00.00270 " " 00┆
0x3ca80…3cb00 UnusedSector ┆.00271 " CONTROL BLOCK CONFIGURATION " 00.00272 " ┆
0x3cb00…3cb80 UnusedSector ┆ " 00.00273 "----------------------------------------------------------------------" 00.00274 EXP┆
0x3cb80…3cc00 UnusedSector ┆ORT VAR 00.00275 SEMAR:SEMADDR; 00.00276 CBAR:CBARR; 00.00277 LCB:LINE_CONTROL_BLOCK; 00.00278 TERMTB:TERMTABLE; 00.0027┆
0x3cc00…3cc80 UnusedSector ┆9 LINTB:LINETABLE; 00.00280 LQD:LINE_QUEUE_DESCRIPTER; 00.00281 TRANS_QUE:TRANSFER_QUEUE; 00.00282 ASGD:LINE_ASGN_DESC; ┆
0x3cc80…3cd00 UnusedSector ┆00.00283 CRTT:CON_CR_ATT; 00.00284 LINPTR:INTEGER; 00.00285 CONPTR:INTEGER; 00.00286 LTU_ADDR:INTEGER; 00.00287 LTU_AD┆
0x3cd00…3cd80 UnusedSector ┆DR_PRIO:INTEGER; 00.00288 LTU_CB:LTUCB; 00.00289 INTOPREF:INTEGER; "REF TO INTERNAL OPERATION" 00.00290 XFER_A┆
0x3cd80…3ce00 UnusedSector ┆DDR:XFER_ELEM_ADDR; 00.00291 00.00292 INIT 00.00293 CBAR[1..SIZE(TERMCB)*MAXTERMS]= 0; 00.00294 TERMTB[1..MAXTERMS]= 0; 00.┆
0x3ce00…3ce80 UnusedSector ┆00295 LINTB[0..NCB]=0; 00.00296 LCB[1..SIZE(LINCB)*MAXLINES]=0; 00.00297 TRANS_QUE.LINE0_QUE[1]=0; 00.00298 TRANS_QUE.LI┆
0x3ce80…3cf00 UnusedSector ┆NE1_QUE[1]=0; 00.00299 TRANS_QUE.LINE2_QUE[1]=0; 00.00300 TRANS_QUE.LINE3_QUE[1]=0; 00.00301 LQD[0]=ADDRESS(TRANS_QUE.LINE┆
0x3cf00…3cf80 UnusedSector ┆2 " " 00.00413 " EXTERNAL OPERATION CONFIGUR┆
0x3cf80…3d000 UnusedSector ┆ATION " 00.00414 " " 00.00415 "****┆
0x3d000…3d080 UnusedSector ┆*******************************************************************" 00.00416 00.00417 EXPORT VAR 00.00418 OP:EXT_OP; 00.0041┆
0x3d080…3d100 UnusedSector ┆9 EX_OP:EXT_OP; 00.00420 OP_EXT_INTRPT:EXT_OP; 00.00421 OP_EXT_LOOK:EXT_OP; 00.00422 OP_EXT_DUMMY:EXT_OP; 00.00423 00.0┆
0x3d100…3d180 UnusedSector ┆0424 INIT 00.00425 OP.BUF[0..4]= 0; 00.00426 EX_OP.BUF[0..4]=0; 00.00427 OP_EXT_INTRPT.BUF[0..4]=0; 00.00428 OP_EXT_LOOK┆
0x3d180…3d200 UnusedSector ┆0.00332 COR_DESC_ANS:COROUTINE_DESCRIPTOR; 00.00333 00.00334 VAR 00.00335 SEM_ADDR:ARRAY[0..6] OF INTEGER; 00.00336 00.003┆
0x3d200…3d280 UnusedSector ┆37 CONST 00.00338 AMON= ADDRESS(MONVAR); 00.00339 00.00340 INIT 00.00341 SEMAR[0..7]= 0; 00.00342 SEMAR[1]= ADDRESS(SEM_O┆
0x3d280…3d300 UnusedSector ┆PPDP); 00.00343 00.00344 INIT 00.00345 SEM_ADDR[0]=ADDRESS(SEM_OPIF); 00.00346 SEM_ADDR[1]=ADDRESS(SEM_OPPDP); 00.00347 S┆
0x3d300…3d380 UnusedSector ┆EM_ADDR[2]=ADDRESS(SEM_OPLTU); 00.00348 SEM_ADDR[3]=ADDRESS(SEM_OPANS); 00.00349 SEM_ADDR[4]=ADDRESS(SEM_OPBREAK); 00.00350 ┆
0x3d380…3d400 UnusedSector ┆ SEM_ADDR[5]=ADDRESS(SEM_OPDUMMY); 00.00351 00.00352 "--------------------------------------------------------------------" 00┆
0x3d400…3d480 UnusedSector ┆.00353 " " 00.00354 " LTU CONFIGURATION ┆
0x3d480…3d500 UnusedSector ┆ " 00.00355 " " 00.00356 "--------┆
0x3d500…3d580 UnusedSector ┆------------------------------------------------------------" 00.00357 00.00358 EXPORT VAR 00.00359 I_F_ADDR:I_F_TAB_ADDR; ┆
0x3d580…3d600 UnusedSector ┆ "ADDRESSES TO LTU I_F TABLES" 00.00360 I_F_TAB:I_F_TABLE; 00.00361 LTU_COM:LTU_COM_TABLE; 00.00362 00.00363 "*********┆
0x3d600…3d680 UnusedSector ┆**************************************************************" 00.00364 " ┆
0x3d680…3d700 UnusedSector ┆ " 00.00365 " HOST INTERFACE COROUTINE CONFIGURATION " 00.00366 " ┆
0x3d700…3d780 UnusedSector ┆ " 00.00367 "*************************************************************┆
0x3d780…3d800 UnusedSector ┆**********" 00.00368 00.00369 00.00370 VAR 00.00371 MSIDENT:INTEGER; "RECEIVED MESSAGE IDENT" 00.00372 ILLOPS┆
0x3d800…3d880 UnusedSector ┆:ILLOPSTYPE; 00.00373 PROCOPS:PROCOPSTYPE; 00.00374 00.00375 EXPORT VAR 00.00376 PROC_NAME:PROCESS_NAME; 00.00377 OWN_PCB┆
0x3d880…3d900 UnusedSector ┆INDEX:INTEGER; 00.00378 00.00379 INIT 00.00380 PROC_NAME.NAME[0..5]='LTU001'; 00.00381 00.00382 INIT 00.00383 ILLOPS= 00.0┆
0x3d900…3d980 UnusedSector ┆0384 ACCEPT_CMD, 00.00385 FORMAT_CMD, 00.00386 MOUNT_CMD, 00.00387 DISMOUNT_CMD, 00.00388 OFFER_CMD, 00.0038┆
0x3d980…3da00 UnusedSector ┆9 PROTECT_CMD, 00.00390 READ_SECTORS_CMD, 00.00391 REMOVE_CMD, 00.00392 RENAME_CMD, 00.00393 WRITE_AND_MARK_┆
0x3da00…3da80 UnusedSector ┆CMD, 00.00394 WRITE_AND_PROTECT_CMD, 00.00395 WRITE_SECTORS_CMD, 00.00396 0; 00.00397 00.00398 INIT 00.00399 PROC┆
0x3da80…3db00 UnusedSector ┆OPS= 00.00400 CREATE_CMD, 00.00401 DISMANTLE_CMD, 00.00402 ASSIGN_CMD, 00.00403 DEASSIGN_CMD, 00.00404 READ_┆
0x3db00…3db80 UnusedSector ┆BYTES_CMD, 00.00405 MODIFY_BYTES_CMD, 00.00406 APPEND_BYTES_CMD, 00.00407 ENTER_CMD, 00.00408 LOOKUP_CMD, 00.004┆
0x3db80…3dc00 UnusedSector ┆09 DESCENT_CMD, 00.00410 0,0; 00.00411 "***********************************************************************" 00.0041┆
0x3dc00…3dc80 UnusedSector ┆0.00433 OP_EXT_INTRPT.OPN=0; 00.00434 OP_EXT_LOOK.OPN=0; 00.00435 00.00436 00.00437 "-------------------------------------┆
0x3dc80…3dd00 UnusedSector ┆---------------------------------" 00.00438 " " 00.00439 " ┆
0x3dd00…3dd80 UnusedSector ┆ BREAK CONFIGURATION " 00.00440 " ┆
0x3dd80…3de00 UnusedSector ┆ " 00.00441 "----------------------------------------------------------------------" 00.00442 EXPORT VAR 0┆
0x3de00…3de80 UnusedSector ┆0.00443 BK_BUF:BREAK_BUF; 00.00444 UNKNOWN:BREAK_ANSWER; 00.00445 BUSY:BREAK_ANSWER; 00.00446 TO_BREAK:BREAK_ANSWER; 00.┆
0x3de80…3df00 UnusedSector ┆00447 FROM:BREAK_ANSWER; 00.00448 00.00449 INIT 00.00450 UNKNOWN[0..4]='UNKNOWN ',CRLF; 00.00451 BUSY='BUSY',CRLF; 00.004┆
0x3df00…3df80 UnusedSector ┆52 TO_BREAK='TO: '; 00.00453 FROM='FM: '; 00.00454 "*********************************************************************" 0┆
0x3df80…3e000 UnusedSector ┆0.00455 00.00456 %SOURCE ======== SUB_PROC.SS 08.00001 EXPORT PROCEDURE GENERATE_ANSWER_OPERATION 08.00002 08.00003 08┆
0x3e000…3e080 UnusedSector ┆.00004 (R0; "COMPLETION CODE DEST " 08.00005 R1; "RESULT ┆
0x3e080…3e100 UnusedSector ┆ DEST " 08.00006 R2; "BYTECOUNT KEPT " 08.00007 ┆
0x3e100…3e180 UnusedSector ┆ R4; "OPERATION ADDRESS KEPT " 08.00008 R6); "LINK ┆
0x3e180…3e200 UnusedSector ┆DEST " 08.00009 08.00010 VAR 08.00011 SV26,SV27:INTEGER; 08.00012 08.00013 BEGIN 08.00014 R6=> SV26;┆
0x3e200…3e280 UnusedSector ┆ 08.00015 R7=> SV27; 08.00016 R0=> R4@ANS_OP.AOCC; "SET COMPLETION CODE" 08.00017 R2=> R4@ANS_OP.AOCNT; ┆
0x3e280…3e300 UnusedSector ┆ "SET BYTE COUNT/FILE ID" 08.00018 R4@ANS_OP.AOHEAD=> R0 SHIFTLL 8; "PACK RESULT WITH SECTION BITS" 08.0001┆
0x3e300…3e380 UnusedSector ┆9 R0+R1; 08.00020 SWP(R0); 08.00021 R0=> R4@ANS_OP.AOHEAD; "SET RESULT" 08.00022 R5=> R0; ┆
0x3e380…3e400 UnusedSector ┆Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z Z ┆
[…0x3…]
0x3e580…3e600 UnusedSector ┆ ░ H ░░ | ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ┆
0x3e600…3e680 UnusedSector ┆ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ┆
0x3e680…3e700 UnusedSector ┆ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░┆
0x3e700…3e780 UnusedSector ┆ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░ ░░░ ┆
0x3e780…3e800 UnusedSector 0x1a[128]
[…0x1…]
0x3e880…3e900 UnusedSector ┆.BUF[0..4]=0; 00.00429 OP_EXT_DUMMY.OPN=0; 00.00430 OP_EXT_DUMMY.BUF[0..4]=0; 00.00431 OP.OPN=0; 00.00432 EX_OP.OPN=0; 0┆