{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: CHANG867)}}
====== CHANG867 ======
(George Source)
**Macros used:** [[george:macro:ALTLEN|ALTLEN]], [[george:macro:ALTLENG|ALTLENG]], [[george:macro:BXE|BXE]], [[george:macro:BXU|BXU]], [[george:macro:CHAIN|CHAIN]], [[george:macro:DOFINDGV|DOFINDGV]], [[george:macro:HUNT|HUNT]], [[george:macro:JBC|JBC]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREE|MFREE]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAME|NAME]], [[george:macro:P|P]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:UP|UP]], [[george:macro:VFREE|VFREE]], [[george:macro:VSKIP|VSKIP]]
22FL SEG CHANG8,867,MULTIPLX HANDLING,,G501,G400
22^= [
23DW [ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982
23YG ...[ THIS EXCLUDES CODE UNDER #SKI G501
24D6 [
24XQ #LIS K0CHANG>K0MULTIPLX>K0ALLGEO>K0GREATGEO
25CB #OPT G501 = 0
25X2 #SKI G501&1
26BL # WITH G3UG EDIT M501 (3-SHIFT INPUT ON MOP)
26W= # ENTRY POINTS
27*W SEGENTRY K1CHANG,Z1CHANG [ MACRO 'CHANG'
27TG SEGENTRY K2CHANG,Z2CHANG [ MACRO 'CHANGVD'
28*6 #UNS ENHOPER
28SQ SEGENTRY K3CHANG,Z3CHANG [ MACRO 'CHANGALL'
29#B MENDAREA 20,K100CHANG
29S2 #
29WK ...#UNS G400
29^8 ...(
2=3R ...# THIS ROUTINE IS MODIFIED FOR G3PLUS-IH MK 2
2=6B ...#
2=8^ ...)
2=?L # THIS ROUTINE CONVERTS THE LINE OF INPUT FROM A MOP CONSOLE
2=R= # FOUND IN A FILE/FRB BLOCK
2?=W # IE A FILESTORE FILE READ BLOCK
2?QG # TO CARD IMAGE FORM,LEAVING IT IN A BLOCK ADATA/CREADL
2#=6 # IE A READLINE BLOCK
2#PQ #
2*9B T13 #13
2*P2 T41 #41
2B8L T67 #67
2BN= #UNS ENHOPER
2C7W T68 #70
2CMG T74 #74
2D76 T76 #76
2DLQ #SKI G501&1
2F6B (
2FL2 T30 #30
2G5L T40 #40
2GK= )
2H4W Z1CHANG
2HJG #UNS ENHOPER
2J46 (
2JHQ STOZ AWORK4(2)
2K3B ZCONVONLY
2KH2 )
2L2L MHUNTW 3,FILE,FRB [INPUT BLOCK
2LG= STO 3 AWORK1(2) [SAVE PTR
2L^W LDN 6 0 [COUNT OF CHS OUTPUT
2MFG LDX 4 A1(3) [INPUT CH COUNT
2M^6 ANDN 4 #7777
2NDQ #SKI G501&1
2NYB (
2PD2 JBC P,2,G501SHIFT [ STANDARD CODE IF NOT SHIFT
2PXL LDX 2 3
2QC= LDN 0 #7400
2QWW STO 0 GEN0 [ INITIAL SHIFT FOR RECORD
2RBG LDN 7 #74 [ CURRENT INPUT SHIFT :=
2RW6 STO 7 GEN1 [ CURRENT OUTPUT SHIFT := ALPHA
2S*Q ZSEL CALL 0 SELEC
2STB TXL 5 T40(1) [ SHIFT NOT REQD FOR CHARS < #40
2T*2 BCS ZSNA
2TSL TXL 5 T74(1) [ IF >= #40 BUT NOT A SHIFT CHAR,
2W#= BCS ZXAB [ MUST BE A SHIFT-SENSITIVE CHAR
2WRW TXU 5 T76(1)
2X?G BCC ZDELT
2XR6 LDX 7 5 [ REMEMBER ALPHA OR BETA
2Y=Q BRN ZSEL [ FOR OUTPUT LATER IF NECESSARY
2YQB ZXAB TXU 7 GEN1
2^=2 BCC ZSNA [ ALREADY IN CORRECT SHIFT
2^PL LDX 0 7
329= STO 7 GEN1
32NW ZPSH DCH 0 CPDATA(2) [ OUTPUT SHIFT CHAR FROM X0,
338G ADN 6 1
33N6 BCHX 2 £
347Q ZSNA CALL 0 SCOP [ THEN OUTPUT CHAR
34MB BRN ZSEL
3572 ZDELT CALL 0 SELEC [ NEED TO CHECK SPECIAL DELTA CHARS
35LL TXU 5 T13(1)
366= BCC PEND
36KW TXU 5 T30(1) [ BACKSPACE CHAR = BACK ARROW
375G BCC ZBSP
37K6 LDN 0 #76
384Q TXU 5 T67(1) [ UNLESS BACK ARROW (DELETE)
38JB BCS ZPSH [ OUTPUT DELTA SHIFT CHAR
3942 #
39HL SMO FX2 [ COPY BACK ARROW CHAR
3=3= TXL 0 AWORK4 [ IF Z3 ENTRY (FX2 > #76
3=GW BCS ZPSH [ AND NO SPARE ACCS - SORRY!)
3?2G #
3?G6 # PROPER BACKSPACE - J.T.T. JUNE 1977
3?^Q ZBSP LDN 0 2
3#FB ZBKSP BZE 6 ZSEL [ CAN'T BKSP IF NO CHARS OUTPUT
3#^2 SLC 2 2 [ AND DON'T NEED TO CHECK SHIFTS
3*DL SBN 2 1 [ IF ONLY ONE CHAR HAS BEEN OUTPUT
3*Y= SBN 6 1
3BCW SRC 2 2
3BXG BCT 0 ZBKSP
3CC6 LDCH 0 CPDATA(2) [ LOOK IF SHIFT BEFORE DELETED CHAR
3CWQ TXU 0 T76(1) [ REMOVE DELTA - NO PROBLEM
3DBB BCC ZSEL
3DW2 TXL 0 T74(1)
3F*L BCC ZDAB
3FT= ADN 6 1
3G#W BCHX 2 ZSEL [ KEEP IF NOT ALPHA OR BETA
3GSG ZDAB ERN 0 1 [ PREVIOUS SHIFT IN OUTPUT BUFFER
3H#6 STO 0 GEN1 [ MUST HAVE BEEN THE OTHER ONE
3HRQ BRN ZSEL
3J?B #
3JR2 P STOZ GEN0 [ NOT SHIFT - USE OLD CODE
3K=L )
3KQ= LDX 2 3
3L9W PSEL CALL 0 SELEC [SELECT CHARACTER
3LPG TXU 5 T76(1)
3M96 BCC PTY76 [BRANCH IF CHARACTER TYPE = #76
3MNQ TXL 5 T74(1)
3N8B BCC PSEL [IGNORE IF > #74
3NN2 PCOPY CALL 0 SCOP [TRANSFER CHARACTER
3P7L BRN PSEL
3PM= #
3Q6W PTY76 CALL 0 SELEC [SELECT CHARACTER AFTER #76
3QLG TXU 5 T13(1)
3R66 BCC PEND [BRN IF #7613 (N/L)
3RKQ #UNS ENHOPER
3S5B (
3SK2 SMO FX2
3T4L LDX 0 AWORK4
3TJ= BNZ 0 PNDEL [TRANSLATE BACK-ARROW FOR 'CHANGALL'
3W3W )
3WHG TXU 5 T67(1)
3X36 BCC PEDIT [BRANCH IF #7667 (BACK-ARROW)
3XGQ #UNS ENHOPER
3Y2B PNDEL
3YG2 #SKI G501&1
3Y^L (
3^F= TXU 5 T30(1) [ BACKSPACE = BACK ARROW
3^YW BCC PEDIT
42DG )
42Y6 TXL 5 T41(1)
43CQ BCS PSEL [IGNORE IF < #7641
43XB TXL 5 T68(1)
44C2 BCC PSEL [IGNORE IF > #7667
44WL ADN 5 8 [CONVERT CHARACTER
45B= BRN PCOPY [COPY ACROSS
45TW #
46*G PEDIT BZE 6 PSEL [J. IF OUTPUT LINE EMPTY.
46T6 SLC 2 2 [DELETE CHARACTER BY TAKING ONE
47#Q SBN 6 1 [OFF COUNT AND STEPPING BACK
47SB SBN 2 1 [THE OUTPUT POINTER.
48#2 SRC 2 2
48RL BRN PSEL
49?= #
49QW PEND SMO FX2 [RETREIVE POINTER TO BLOCK.
4==G LDX 3 AWORK1
4=Q6 SBN 6 2000 [IF >/= 2000,TAKE FIRST 2000 CHARS
4?9Q BNG 6 RESCT [<2000 CHARS
4?PB LDN 6 0
4#92 RESCT ADN 6 2000
4#NL STO 6 A1(3) [STORE CONVERSION COUNT
4*8= ANDN 6 3 [FORM CHARACTER REMAINDER COUNT
4*MW #SKI G501&1
4B7G (
4BM6 LDX 0 6
4C6Q SRC 0 2
4CLB ORN 0 #41 [ FORM 2ND RED TAPE WORD
4D62 ORX 0 GEN0 [ PREVIOUS SHIFT ALPHA IF ALLCHAR
4DKL STO 0 A1+1(3)
4F5= BZE 6 PFIL
4FJW )
4G4G #SKI G501&1$1
4GJ6 (
4H3Q SRC 6 2 [LAST CH POSITION
4HHB ADN 6 #41
4J32 STO 6 A1+1(3)
4JGL SBN 6 #41
4K2= BZE 6 PFIL [BRANCH IF ZERO
4KFW SLC 6 2
4K^G )
4LF6 NGX 7 6
4LYQ ADN 7 4 [FORM SPACE FILL COUNT
4MDB LDN 5 #20 [SPACE CHARACTER
4MY2 PHIL CALL 0 SCOP [TRANSFER SPACE CHARACTER
4NCL BCT 7 PHIL [BRN ON COUNT
4NX= PFIL LDX 6 A1(3)
4PBW ADN 6 CPDATA-A1*4+3 [ROUND UP CHARACTER COUNT
4PWG SRL 6 2 [TO NEARST FOUR
4QB6 STO 6 A1(3) [WORD COUNT
4QTQ TXU 6 ALOGLEN(3) [COMPARE TO BLOCK LENGTH
4R*B BCC PSAL [BRN IF NOT EQUAL
4RT2 ALTLEN 3,6 [DECREASE LENGTH
4S#L PSAL UP [FINISH
4SS= #
4T?W # THIS SUBROUTINE SELECTS NEXT CHARACTER TO
4TRG # BE CONVERTED PUTS IT IN X5
4W?6 #
4WQQ SELEC BZE 4 PEND [BRANCH IF END OF DATA
4X=B LDCH 5 A1+2(3)
4XQ2 SBN 4 1 [DECREASE COUNT BY 1
4Y9L BCHX 3 (0) [UPDATE INPUT POINTER, AND EXIT.
4YP= #
4^8W # THIS SUB INSERTS THE NEXT CHAR IN CONVERSION BLOCK (X2 POINTER)
4^NG # SCOP INSERTS THE CHAR IN X5 IN THE CONVERSION BLOCK
5286 #SKI A1+2-CPDATA
52MQ ! CPDATA > A1+2 WILL CORRUPT THE INPUT MESSAGE DURING CONVERSION !
537B #
53M2 SCOP ADN 6 1 [UPDATE COUNT
546L DCH 5 CPDATA(2) [THIS ASSUMES CPDATA?
5#D= 16H !"£$%&'()*+,-./
5#XW 24H@ABCDEFGHIJKLMNOPQRSTUVW
5*CG #70717273
5*X6 #23757677
5BBQ TIS4 #14
5BWB TNL #32
5CB2 T64 #64
5CTL T70 #70
5D*= Z2CHANG
5DSW MHUNTW 2,FILE,FRB [RENAME INPUT DATA BLOCK
5F#G NAME 2,ADATA,CREADL
5F#T ... SEGENTRY K30CHANG
5F*8 ... BRN X31CHANG
5F*H ...#UNS G400
5F*W ...(
5FB9 ... STOZ 7
5FBJ ... LDCH 0 CPDATA(2) [IS THERE A PID
5FBX ... BCHX 2 £
5FC= ... BXU 0 T76(1),VNOPID [J CANT BE NO SHIFT
5FCK ... LDCH 0 CPDATA(2) [GET QUALIFIER
5FCY ... BXE 0 TIS4(1),VSETUP [PID HERE OTHER CHECKS WILL DO
5FD? ...VNOPID [CHECK TERMINAL FOR SECURITY
5FDL ... VFREE IUSER,BADGE
5FD^ ... LDX 2 FX2
5FF# ... LDN 5 4
5FFM ... LDX 3 JSOURCE2(2)
5FG2 ...VIDENCONV
5FG* ... SRL 34 3 [GET TERM IDEN IN OCTAL
5FGN ... SRL 4 3
5FH3 ... BCT 5 VIDENCONV [ALLOW FOUR CHARS
5FHB ... LDX 3 FX1 [FIND GLOBAL VARIABLE
5FHP ... DOFINDGV XSTRM(3),1
5FJ4 ... BNG 1 VSETUP [J NO VARIABLE
5FJC ... LDX 5 VHEADER(1)
5FJQ ... SBN 5 5
5FK5 ... BZE 5 VSETUP [EMPTY LIST
5FKD ... SMO FX1
5FKR ... LDX 0 VBAST
5FL6 ... BXE 0 VDATA(1),VSETUP [EMPTY LIST
5FLF ...VCHSEC
5FLS ... BXE 4 VDATA(1),VSECONLY
5FM7 ... ADN 1 1 [TERM NOT FOUND
5FMG ... BCT 5 VCHSEC [CHECK NEXT
5FMT ... BRN VSETUP
5FN8 ...VSECONLY
5FNH ... NGN 7 1 [PID MISSING - ERROR
5FNW ...VSETUP
5FP9 ...VBADGE3
5FPJ ... MHUNTW 2,ADATA,CREADL
5FPX ...)
5FQ= ... SEGENTRY K31CHANG
5FQK ...X31CHANG
5FS6 LDX 6 ALOGLEN(2) [SET UP BLOCK FOR CONVERTED DATA
5G?Q SETUPCOR 6,4,FILE,FRB
5GRB STO 4 AWORK4(2) [SAVE ADDRESS OF FILE/FRB
5H?2 MHUNTW 2,ADATA,CREADL [RE-FIND INPUT DATA BLOCK
5HQL SMO FX2
5J== STO 2 AWORK2 [SAVE ADDRESS OF ADATA/CREADL BLOCK
5JPW MHUNTW 3,AMXOR,ADCB
5K9G LDX 0 ICURPOS(3)
5KP6 SMO FX2
5L8Q STO 0 AWORK1 [SAVE CURSOR POSITIONING COUNTS
5LNB LDX 6 A1(2)
5M82 ANDN 6 #7777 [NO OF INPUT CHARS
5MML ADN 4 CPDATA [CONVERTED DATA POINTER
5N7= BZE 6 VFREE [CHAR COUNT ZERO : NO CONVERSION
5NLW ADN 2 CPDATA [INPUT DATA POINTER
5NS4 ... SEGENTRY K32CHANG
5N^= ... BRN X33CHANG
5P6G #
5P9L ...#UNS G400
5P#Q ... BNG 7 VBADY
5PCW ... SEGENTRY K33CHANG
5PH2 ...X33CHANG
5PL6 LDN 7 1 [SET IGNORE BADGE DATA SWITCH TO OFF
5Q5Q V1ST LDCH 0 0(2) [GET FIRST CHAR
5QKB SBN 0 #20
5R52 BNZ 0 VCONV [NOT A SPACE CHAR
5RJL SBN 6 1 [DECREMENT COUNT OF INPUT CHARS
5S4= BRN VCEND [IGNORE THIS SPACE CHAR
5SHW #
5T3G VCONV LDCH 0 0(2) [GET NEXT CHAR
5TH6 SBN 6 1 [DECREMENT COUNT OF INPUT CHARS
5W2Q TXL 0 T74(1)
5WGB BCS VNIFT [NOT A SHIFT CHAR
5X22 TXU 0 T76(1)
5XFL BCS VCEND [NOT DELTA, IGNORE ALPHA AND BETA
5X^= # DELTA SHIFT
5YDW BZE 6 VCEND [INPUT ENDED WITH DELTA CHAR
5YYG BCHX 2 £ [LOOK AT NEXT CHAR OF DELTA PAIR
5^D6 LDCH 0 0(2)
5^XQ SBN 6 1 [DECREMENT COUNT OF INPUT CHARS
62CB TXU 0 TIS4(1)
62X2 BCS VTNL [NOT IS4 CHAR
63BL NGX 7 7 [NEGATE "IGNORE BADGE DATA" SWITCH
63D8 ... SEGENTRY K34CHANG
63FQ ... BRN X35CHANG
63H# ...#UNS G400
63JW ...(
63LD ... BNG 7 VBADGE
63N2 ... BRN XB
63PJ ...)
63R6 ... SEGENTRY K35CHANG
63SN ...X35CHANG
63W= BNG 7 VCEND [FIRST IS4 OF BADGE DATA FIELD
64*W ...XB BZE 6 VCEND [LAST IS4 AND END OF INPUT
64TG BCHX 2 V1ST [LAST IS4 : GET FIRST DATA CHAR
65*6 VTNL BNG 7 VCEND [BADGE DATA : IGNORE
65SQ TXU 0 TNL(1)
66#B BCS VSKIP [NOT N/L CHAR
66S2 #
67?L LDX 1 FX2
67R= LDEX 7 ICHARS(3) [DISPLAY WIDTH
68=W LDEX 0 AWORK1(1) [COLUMN NO (SO FAR)
68QG SBX 7 0 [COUNT OF CHARS TO END OF LINE
69=6 SBX 2 AWORK2(1)
69PQ STO 2 AWORK2(1) [SAVE RELATIVE INPUT DATA POINTER
6=9B LDX 5 AWORK4(1) [ADDR OF CONVERTED DATA BLK(FILE/FRB)
6=P2 SBX 4 AWORK4(1)
6?8L STO 4 AWORK4(1) [SAVE RELATIVE CONVERTED DATA PTR
6?N= LDX 4 7
6#7W ADN 4 3
6#MG SRL 4 2 [NO OF WORDS REQUIRED FOR SPACING
6*76 SMO 5
6*LQ ADX 4 ALOGLEN [NEW BLOCK LENGTH
6B6B ALTLENG 5,4,VREF [LENGTHEN CONVERTED DATA BLOCK(FRB)
6BL2 LDX 1 FX2
6C5L LDX 4 AWORK4(1) [RESET CONVERTED DATA POINTER
6CK= MHUNTW 2,FILE,FRB
6D4W STO 2 AWORK4(1)
6DJG ADX 4 2
6F46 LDX 5 AWORK2(1) [RESET INPUT DATA POINTER
6FHQ MHUNTW 2,ADATA,CREADL
6G3B STO 2 AWORK2(1)
6GH2 ADX 2 5
6H2L MHUNTW 3,AMXOR,ADCB [RE-FIND DCB
6HG= #
6H^W LDN 0 #20 [SPACEFILL TO COMPLETE THE CURR. LINE
6JFG VFILL STO 4 1
6J^6 DCH 0 0(1)
6KDQ BCHX 4 £
6KYB BCT 7 VFILL
6LD2 BRN VLINE
6LXL #
6MC= VSKIP TXL 0 T64(1)
6MWW BCS VCEND [<#64,IGNORE
6NBG TXL 0 T70(1)
6NW6 BCC VNAT [>/=#70 : NATIONAL CHARACTER
6P*Q ADN 0 8
6PTB BRN VNIFT
6Q*2 VNAT ADN 0 4
6QSL BRN VSTOC [SKIP FURTHER CONVERSION
6R#= #
6RRW VNIFT BNG 7 VCEND [BADGE DATA : IGNORE
6S?G LDXC 7 ICONTU(3)
6SR6 BCS VSTOC [CODE 2 VDU : SKIP CONVERSION
6T=Q VCODE SRC 0 2 [GET CHAR EQUIVALENT
6TQB STO 0 1
6W=2 SMO FX1
6WPL LDCH 0 VCHARIN(1)
6X9= VSTOC STO 4 1 [STORE CONVERTED CHAR
6XNW DCH 0 0(1)
6Y8G BCHX 4 £ [UPDATE CONVERTED DATA POINTER
6YN6 SMO FX2
6^7Q LDEX 0 AWORK1 [COLUMN NO (SO FAR)
6^MB ADN 0 1
7272 LDEX 7 ICHARS(3) [DISPLAY WIDTH
72LL TXU 0 7
736= BCS VCOLM [NOT END OF LINE
73KW VLINE LDCT 0 #010
745G SMO FX2
74K6 ADS 0 AWORK1 [UPDATE LINE NO
754Q VCOLM SMO FX2
75JB DEX 0 AWORK1 [UPDATE COLUMN NO
7642 VCEND BCHX 2 £ [UPDATE INPUT DATA POINTER
76HL LDX 1 FX1 [RESET X1
773= BNZ 6 VCONV [NOT END OF INPUT
77GW #
782G LDX 5 4
78G6 LDN 7 #20
78^Q VSFW TXL 5 BITS22LS [COMPLETE LAST WORD WITH SPACES
79FB BCS VFREE [COMPLETED
79^2 STO 5 1
7=DL DCH 7 0(1)
7=Y= BCHX 5 VSFW
7?CW VFREE MFREEW ADATA,CREADL [FREE INPUT DATA BLOCK
7?XG LDX 2 AWORK4(2) [ADDR OF CONVERTED DATA BLK(FILE/FRB)
7#C6 SBX 4 2 [RELATIVISE CONVERTED DATA POINTER
7#WQ SBN 4 CPDATA [- RED TAPE
7*BB SLC 4 2 [NO OF CONVERTED DATA CHARS
7*W2 SBN 4 2000 [IF >/=2000,TAKE FIRST 2000 CHARS
7B*L BNG 4 VDCT [< 2000 CHARS
7BT= LDN 4 0
7C#W VDCT ADN 4 2000
7CSG LDX 7 4
7D#6 ANDN 7 3
7DRQ SRC 7 2 [CHAR POSITION OF LAST CHAR + 1
7F?B ADN 7 #41 [PFCC
7FR2 STO 7 A1+1(2) [STORE SECOND WORD OF RED TAPE
7G=L ADN 4 CPDATA-A1*4+3 [ROUND UP CHAR CT TO NEAREST FOUR
7GQ= SRL 4 2 [WORD COUNT
7H9W STO 4 A1(2) [STORE NO OF CONVERTED WORDS
7HPG TXU 4 ALOGLEN(2)
7J96 BCC VEB [BLOCK ALREADY CORRECT LENGTH
7JNQ ALTLENG 2,4 [DECREASE LENGTH
7K8B VEB LDX 2 FX2
7KN2 LDCT 6 #010
7L7L LDX 0 IWAIT(3)
7LM= ANDX 0 BIT9
7M6W ERS 0 IWAIT(3) [UNSET BIT9 IF SET
7MLG BNZ 0 VUCCS [NEWLINE SUPPRESSION ON INPUT REQUEST
7N66 LDEX 0 AWORK1(2) [CURRENT COLUMN NO OF CURSOR
7NKQ BZE 0 VSCOL [CURSOR ON COLUMN 0:STOR CURR LINE NO
7P5B ADS 6 AWORK1(2) [STORE NEXT LINE NO
7PK2 VSCOL DEX 6 AWORK1(2) [STORE COLUMN NO 0
7Q4L VUCCS ANDX 6 IWAIT(3)
7QJ= BNZ 6 VUP [G3 BREAK-IN:DON'T UPD CURSOR COUNTS
7R3W BCHX 3 £ [-> CHAR 1
7RHG LDCH 0 ICHARS(3) [DISPLAY LENGTH
7S36 ANDX 3 BITS22LS
7SGQ LDCH 6 AWORK1(2) [CURRENT LINE NO
7T2B TXL 6 0
7TG2 BCS VUPC [CURRENT LINE NO < DISPLAY LENGTH
7T^L DCH 0 AWORK1(2) [WRAP ROUND : RESET LINE NO TO DISPLAY LENGTH
7WF= VUPC LDX 0 AWORK1(2)
7WYW STO 0 ICURPOS(3) [UPDATE CURSOR POSITIONING COUNTS
7XDG #SKI K6IPB>100-100
7XY6 STO 0 ACOMMUNE6(2)
7YCQ VUP UP
7YXB #UNS ENHOPER
7^C2 (
7^WL [
82B= [
82TW [ WW WW WWWWW
83*G [ WW WW WW WW
83T6 [ WW WW WW
84#Q [ WWWW WWWW
84SB [ WWWW WW
85#2 [ WW WW WW
85RL [ WW WW WW WW
86?= [ WW WW WWWWW
86QW [
87=G [
87Q6 Z3CHANG
889Q STO 2 AWORK4(2) [TO DISTINGUISH FROM K1 ENTRY
88PB BRN ZCONVONLY
8992 )
8995 ...#UNS G400
8998 ...(
899? ...VBADGE
899B ... HUNT 1,IUSER,BADGE
899F ... BNG 1 VBADGE2
899J ... LDX 7 1
899M ... LDN 5 0
899Q ... STO 5 ANUM(1)
899T ... BCHX 2 £
899Y ...VBADGE1
89=3 ... BNZ 6 VBAD1 [END OF TEXT TEST
89=6 ... LDX 1 FX1 [TIDY UP
89=9 ... LDX 5 4
89=# ... LDN 7 #20
89=C ... BRN VSFW [AND EXIT
89=G ...VBAD1
89=K ... LDCH 0 0(2) [GET NEXT CH
89=N ...VBAD4
89=R ... BNG 5 VBAD6 [J IF BADGE TOO LONG
89=W ... DCH 0 APARA(1) [STORE IT
89=^ ... BCHX 1 £ [STEP POINTERS
89?4 ...VBAD6
89?7 ... BCHX 2 £
89?= ... SBN 6 1 [AND IP COUNT
89?* ... SMO FX1
89?D ... TXU 0 T76 [TEST IF DELTA
89?H ... BCC VBAD2 [J IF SO
89?L ...VBAD3
89?P ... BNG 5 VBADGE1 [J NO MORE BADGE ROOM
89?S ... ADN 5 1
89?X ... SMO 7
89#2 ... STO 5 ANUM [UPDATE BADGE COUNT
89#5 ... SMO FX1
89#8 ... TXL 5 T14
89#? ... BCS VBADGE1 [J IF BADGE NOT FULL
89#B ... NGN 5 1 [MARK FULL
89#F ... BRN VBADGE1 [DO NEXT CH
89#J ...VBAD2
89#M ... BZE 6 VBAD3
89#Q ... LDCH 0 0(2) [LOAD POST-DELTA CH
89#T ... SMO FX1
89#Y ... TXU 0 TIS4 [TEST IF END OF BADGE
89*3 ... BCC VBAD5 [J IF SO
89*6 ... BRN VBAD3
89*9 ...VBAD5
89*# ... BCHX 2 £ [STEP IP POINTER
89*C ... SBN 6 1
89*G ...#
89*K ...# IF BADGE IN CO2/3 CODE ,CONVERT TO DECIMAL
89*N ...#
89*R ... STO 2 GEN0 [SAVE X2
89*W ... LDX 2 7 [POINTER TO BADGE BLOCK
89*^ ... LDX 0 ANUM(2)
89B4 ... SBN 0 2
89B7 ... BNZ 0 VBCO1 [MUST BE TWO CHARS FOR CO2/3
89B= ... LDCH 0 APARA(2)
89B* ... ANDN 0 #40
89BD ... BZE 0 VBCO1 [AND HAVE FIRST BIT OF CHAR SET
89BH ... LDCH 0 APARA(2) [*
89BL ... LDN 1 0 [
89BP ... BCHX 2 £ [
89BS ... LDCH 1 APARA(2) [
89BX ... SRC 1 4 [
89C2 ... SLL 01 4 [
89C5 ... ANDN 0 #377 [
89C8 ... LDN 1 0
89C? ... SMO FX1 [
89CB ... DVR 0 T1000 [
89CF ... LDX 0 1
89CJ ... LDCT 1 #200
89CM ... LDX 2 7
89CQ ... LDN 5 3
89CT ... STO 5 ANUM(2)
89CY ... STOZ APARA(2)
89D3 ...VBCO2
89D6 ... CBD 0 APARA(2) [CONVERT NEXT CHAR
89D9 ... BCHX 2 £ [STEP POINTER
89D# ... BCT 5 VBCO2 [BRANCH UNTIL COUNT ZERO
89DC ... LDX 2 7
89DG ...VBCO1
89DK ... LDX 2 GEN0 [RETRIEVE X2
89DN ...#
89DR ...# CHECK BADGE IN RANGE
89DW ...#
89D^ ... LDX 5 2 [ SAVE X2
89F4 ... LDX 2 7
89F7 ... DOFINDGV APARA+4(2),1
89F= ... LDX 2 5 [ RESET X2
89F* ... BNG 1 VBADY [ GLV NOT FOUND
89FD ... LDX 5 VHEADER(1) [ BLOCK LENGTH
89FH ... SBN 5 5 [ REDUCE TO START OF DATA
89FL ... BZE 5 VBADY [ NO DATA
89FP ... SMO FX1
89FS ... LDX 0 VBAST [ LOAD ****
89FX ... ERX 0 VDATA(1) [ MASK WITH GLV DATA
89G2 ... BZE 0 VBADZ [ NO CHECK REQD.
89G5 ...VBCH2
89G8 ... SMO 7
89G? ... LDX 0 APARA [ BADGE CODE
89GB ... ERX 0 VDATA(1) [ GLV DATA
89GF ... SRL 0 6 [ REMOVE BITS 18-23
89GJ ... BZE 0 VBADZ [ J. IF VALID PID
89GM ... ADN 1 1 [
89GQ ... BCT 5 VBCH2 [ J. UNTIL GLV DATA FINISHED
89GT ...VBADY
89GY ... LDN 6 0
89H3 ... BRN VCEND
89H6 ...VBADZ
89H9 ... BZE 6 VCEND [ NO DATA ON LINE
89H# ... LDX 1 FX1
89HC ... LDN 7 1
89HG ... BRN V1ST [ CONTINUE WITH TEXT PROPER
89HK ...VBADGE2
89HN ... SETNCORE 7+APARA-A1,1,IUSER,BADGE
89HR ... SMO FX1
89HW ... LDX 0 VBID
89H^ ... STO 0 APARA+4(1)
89J4 ... LDX 0 ACES
89J7 ... STO 0 APARA+6(1)
89J= ... LDX 7 JSOURCE2(2)
89J* ... SLL 7 12
89JD ... LDN 0 4
89JH ...VBCH1
89JL ... LDN 6 0
89JP ... SLL 67 3
89JS ... DCH 6 APARA+5(1)
89JX ... BCHX 1 £
89K2 ... BCT 0 VBCH1
89K5 ... SBN 1 1
89K8 ... STOZ ANUM(1)
89K? ... LDX 2 ACTRING(2)
89KB ... SBN 2 ACTRING
89KF ... LDX 2 BPTR(2)
89KJ ... CHAIN 1,2 [CHAIN TO AVOID CLEAN
89KM ... MFREE FILE,FRB
89KQ ... STOZ 7
89KT ... BRN VBADGE3 [START AGAIN
89KY ...T14 +14
89L3 ...T1000 +1000
89L6 ...VBID 4HIDEN
89L9 ...VBAST 4H****
89L# ...XSTRM 12HSTRM
89LC ...#DEF VDATALEN=A1+2
89LG ...#DEF VHEADER=0
89LK ...#DEF REDTAPE2=1
89LN ...#DEF VNAME=2
89LR ...#DEF VDATA=5
89LW ...)
89NL MENDAREA 50,K100CHANG
8=8= #END
^^^^ ...622233410004