{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: TRANSFOR1)}}
====== TRANSFOR1 ======
(George Source)
**Macros used:** [[george:macro:ALTLEN|ALTLEN]], [[george:macro:BXE|BXE]], [[george:macro:BXGE|BXGE]], [[george:macro:BXL|BXL]], [[george:macro:BXU|BXU]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HUNT|HUNT]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNT|MHUNT]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETREP|SETREP]], [[george:macro:SETREP2|SETREP2]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:UP|UP]]
22FL SEG TRANSFOR,1,BIDGOOD
22^= #
23DW # THIS SEGMENT CONVERTS THE RECORD FROM ADATA/ALINE BLOCK
23YG # TO SPECIFIED MODE.
24D6 #
24XQ # AWORK1=IF ALPHA-PREVIOUS;SHIFT CHARACTER
25CB # AWORK2= " ; "
25X2 # AWORK3= " ;NO/UNUSED CHARS IN LAST WORD
26BL # AWORK1=IF SHIFT-GRAPHIC; TERMINAL SHIFT
26W= # AWORK2= " ; PTR TO ADATA/AREST
27*W # AWORK3= " ; N/CH IN ADATA/AREST
27TG # AWORK4: B7 SET INDICATES LAST CH. OF PREVIOUS TP PERI WAS A DELTA.
28*6 # ACOMMUNE1=OVERWRITTEN;SRMOVE SUBROUTINE
28SQ #
29#B SEGENTRY K1TRANSFOR,Z1TRANSFOR
29S2 SPACE #20202020
2=?L PLUS #20000000
2=R= TEN +10
2?=W X37 +37
2?QG X40 #40
2#=6 X64 #64
2#PQ X74 #74
2*9B XDELTA #76
2*P2 X77 #77
2B8L NORM +5
2BN= NOPM +5
2C7W TABLEREC #00000420
2CMG #24100000
2D76 #00000203
2DLQ #05070000
2F6B #04010004
2FL2 #03100000
2G5L #20000200
2GK= #02070000
2H4W #24010001
2HJG #00100000
2J46 #10060606
2JHQ #06000000
2K3B Z1TRANSFOR
2KH2 LDX 4 ACOMMUNE1(2)
2L2L ANDN 4 #7775 [IGNORE B22
2LG= LDX 3 FX1
2L^W LDX 5 NORM(1) [NO OF RECORD MODES
2MFG TESRM BCHX 3 £
2M^6 LDCH 0 TABLEREC(3)
2NDQ BXE 0 4,RMFOUND [J IF REC.MODE HAS BEEN FOUND
2NYB BCT 5 TESRM
2PD2 BRN REPER [J IF MODE IS ILLEGAL
2PXL RMFOUND
2QC= SBX 3 1 [PTR.RELATIVE TO TABLEREC
2QWW LDX 4 ACOMMUNE2(2) [PERI MODE
2RBG ANDN 4 #7775 [IGNORE B22
2RW6 LDN 2 TABLEREC(1)
2S*Q LDX 5 NOPM(1) [NO OF PERI MODES
2STB TESPM ADN 2 2
2T*2 LDCH 0 0(2)
2TSL BXE 0 4,PMFOUND [J IF PERI MODE FOUND
2W#= BCT 5 TESPM [J TO TEST NEXT MODE
2WRW BRN REPER [J IF MODE IS ILLEGAL
2X?G PMFOUND
2XR6 SETREP COORED
2Y=Q ADX 2 3 [MAKE PTR.TO TABLE
2YQB LDCH 4 0(2)
2^=2 BZE 4 UP [J IF NO CONVERSION
2^PL ADN 4 PTR(1)
329= HUNT 3,ADATA,ACONV
32NW BNG 3 UP
338G ADN 3 A1
33N6 CALL 6 RECLEN [GET LENGTH OF RECORD
347Q #
34MB # EXIT:X3=PTR TO RECORD
3572 # X5=RECORD LENGTH IN CHARS.
35LL # X7=N/CH IN RECORD
366= #
36KW STO 4 GEN0
375G SBN 3 1
37K6 LDCT 4 #006 [TEST IF BITS SET INDICATING 'DELTA L
384Q ANDX 4 0(3) [CH. IN 2000 CH. RECORD OR LAST CH. O
38JB ERS 4 0(3) [TP PERI. CLEAR ANY BIT THAT IS SET.
3942 ADN 3 1
39HL LDX 0 4 [X0 INDICATES STATE OF BOTH BITS.
3=3= SLL 0 7
3=GW SRL 0 7 [GET RID OF BIT 6.
3?2G LDX 2 FX2
3?G6 STO 0 AWORK4(2) [PRESERVE STATE OF B7 IN AWORK4.
3?^Q PTR
3#FB BRN (GEN0)
3#^2 BRN XALPR [ALP-PREV
3*DL BRN XPRAL [PREV-ALP
3*Y= BRN XACNM [ALLC-NORM
3BCW BRN XAANP [ALLCALP-NORMPREV
3BXG BRN XAPNA [ALLCPREV-NORMALP
3CC6 BRN XSHGR [SHIFT-GRAP
3CWQ BRN XGRAL [GRAP-SHIFT,ALPH
3DBB BRN XGRPR [GRAP-SHIFT,PREV
3DW2 #
3F*L REPER SETREP ILLMODE
3FT= UP UP
3G#W #
3GSG # ALLCHAR-NORMAL
3H#6 #
3HRQ XACNM
3J?B CALL 4 SRACNM [CONVERSION ROUTINE
3JR2 UP
3K=L #
3KQ= SRACNM
3L9W BZE 5 UP [EMPTY RECORD
3LPG LDX 6 3 [REMEMBER PTR TO RECORD
3LWN LDCT 7 #002
3M3W ANDX 7 AWORK4(2)
3M96 LDX 2 3 [INPUT PTR
3MDY BNZ 7 TNCH [J IF LAST CH OF PREVIOUS WAS A ^
3MNQ NEXT LDCH 0 0(2) [LOAD CHAR
3N8B BCHX 2 £
3NN2 SBN 0 #76
3P7L BZE 0 RUND [J IF DELTA
3PM= ADN 0 #76
3Q6W SUDEP DCH 0 0(3) [DEPOSIT CHAR
3QLG BCHX 3 £
3R66 RUNDL BCT 5 NEXT [J IF MORE TO TEST
3RKQ UPRT CALL 5 NEWRT [UPDATE R/T
3S5B EXIT 4 0
3SK2 #
3T4L RUND BCT 5 TNCH [J IF MORE TO TEST
3TJ= LDN 0 #76
3W3W DCH 0 0(3) [DEPOSIT DELTA
3WHG BCHX 3 £
3X36 BRN UPRT
3XGQ #
3Y2B TNCH LDCH 0 0(2) [LOAD SUCCESSOR
3YG2 BCHX 2 £
3Y^L SBN 0 #20
3^F= BZE 0 RUNDL1 [J IF RUNOUT
3^YW SBN 0 #53
42DG BZE 0 RUNDL1 [J IF DELETE
42Y6 ADN 0 #73 [SUCCESSOR
433= BZE 7 TNORM [J IF LAST CH OF PREVIOUS NOT A ^
436B STOZ 7
439G BRN SUDEP
43#L TNORM
43CQ LDN 1 #76
43XB DCH 1 0(3) [DEPOSIT DELTA
44C2 BCHX 3 £
44WL LDX 1 FX1
45B= BRN SUDEP
45CM RUNDL1
45F4 BZE 7 RUNDL
45GF SMO FX2 [UNSET SWITCH TO INDICATE WE HAVE TAK
45HW ... ERS 7 AWORK4 [ACCOUNT OF ^ SPLIT OVER TWO PERIS.
45K? STOZ 7
45LN MHUNT 1,ADATA,ALINE
45N5 LDN 0 1 [REMOVE ^ FROM PREVIOUS PERI SINCE
45PG SBS 0 A1(1) [IT IT PART OF ALLCHAR CHARACTER
45QX LDX 1 FX1 [WHICH MUST BE REMOVED.
45S# BRN RUNDL
45TW #
46*G # SHIFT-GRAPHIC
46T6 #
47#Q XSHGR
47SB STOZ AWORK4(2)
48#2 LDX 6 3 [REMEMBER PTR TO RECORD
48RL SLC 3 2
49?= SBN 3 2
49QW SRC 3 2
4==G LDCH 0 0(3) [TERMINAL SHIFT
4=Q6 STO 0 AWORK1(2)
4?9Q LDN 0 0
4?PB DCH 0 0(3) [MODE=0
4#92 BZE 5 UP [EMPTY RECORD
4#NL LDX 1 6 [INPUT PTR
4*8= LDX 3 6 [OUTPUT PTR
4*MW BNZ 4 SUCLO [J IF DELTA AT 2000
4B7G NEXT1 LDCH 0 0(1) [LOAD CHARACTER
4BM6 BCHX 1 £
4C6Q SBN 0 #74
4CLB BPZ 0 XFUCH [J IF SHIFT
4D62 PUTCH
4DKL ADN 0 #74
4F5= DCH 0 0(3) [DEPOSIT CHAR
4FJW BCHX 3 £
4G4G TMOR BCT 5 NEXT1 [J IF MORE CHARS
4GJ6 RTUP CALL 5 NEWRT [UPDATE R/T
4H3Q UP
4HHB XFUCH
4J32 SBN 0 2
4JGL BNZ 0 TMOR [IGNORE IF $ OR ]
4K2= BCT 5 SUCLO [J IF MORE CHARS
4KFW BRN RTUP
4K^G SUCLO LDCH 0 0(1) [LOAD SUCCESSOR
4LF6 BCHX 1 £
4LYQ SBN 0 #64
4MDB BNG 0 STMAY [J IF MAYBE STOP
4MY2 SBN 0 4
4NCL BPZ 0 TMOR [J IF NATIONAL CHAR
4NX= ADN 0 4
4PBW BRN PUTCH
4PWG STMAY
4QB6 ADN 0 #43
4QTQ BNG 0 TMOR [J IF TO BE IGNORED
4R*B LDN 0 2
4RT2 ANDX 0 ACOMMUNE2(2)
4S#L BZE 0 TMOR [J IF READ N CHARS
4SS= BCT 5 ONCAR [J IF MORE CHARS
4T?W SETREP2 STOP
4TRG BRN RTUP
4W?6 ONCAR SBX 1 3 [INPUT PTR-OUTPUT PTR
4WQQ STO 1 AWORK2(2) [REMEMBER
4X=B LDX 4 5 [N/CH NOT CONVERTED
4XQ2 ADN 4 15 [ORUND UP
4Y9L SRL 4 2 [N/W
4YP= MHUNT 2,ADATA,AREST
4^8W BPZ 2 PRESB [J IF EXISTS
4^NG SETUPCORE 4,2,ADATA,AREST
5286 BRN OKLEN
52MQ PRESB BXL 4 ALOGLEN(2),OKBL [LENGHT OK
537B LDX 7 2 [PTR TO AREST
53M2 ALTLEN 7,4 [ALTER AREST'S LENGTH
546L MHUNT 2,ADATA,AREST
54L= OKLEN MHUNT 1,ADATA,ACONV
555W ADN 1 A1+2 [PTR TO RECORD
55KG BXE 1 6,OKBL [ACONV DID NOT MOVE
5656 SBX 3 6 [RELATIVE PTR
56JQ LDX 6 1 [PTR TO RECORD
574B ADX 3 1 [NEW OUTPUT PTR
57J2 OKBL LDX 7 2 [REMEMBER PTR TO AREST
583L LDX 1 FX2
58H= STO 5 AWORK3(1) [N/CH IN AREST
592W ADN 2 A1+2
59GG LDX 1 AWORK2(1) [RELATIVE INPUT PTR
5=26 ADX 1 3 [ABSOLUTE INPUT PTR
5=FQ CALL 0 SRMOVE [RESIDUE TO AREST
5=^B CALL 5 NEWRT [UPDATE R/T IN ACONV
5?F2 LDX 2 FX2
5?YL LDX 0 AWORK1(2) [TERMINAL SHIFT
5#D= LDX 1 7 [PTR TO AREST
5#XW SLL 0 6
5*CG ORN 0 #41 [PFCC
5*X6 STO 0 A1+1(1)
5BBQ LDN 6 A1+2(1) [PTR TO RECORD
5BWB LDX 3 AWORK3(2) [N/CH IN AREST
5CB2 CALL 5 NEWR1 [UPDATE R/T IN AREST
5CTL SETREP STOP
5D*= UP
5DSW #
5F#G # PREVIOUS-ALPHA
5FS6 #
5G?Q XPRAL
5GRB LDX 2 FX2
5H?2 LDN 0 #74
5HQL STO 0 AWORK1(2) [STORE ALPHA
5J== LDN 0 #75
5JPW STO 0 AWORK2(2) [STORE BETA
5K9G BRN XCONV
5KP6 #
5L8Q # ALPHA-PREVIOUS
5LNB #
5M82 XALPR
5MML LDX 2 FX2
5N7= LDN 0 #75
5NLW STO 0 AWORK1(2) [STORE BETA
5P6G LDN 0 #74
5PL6 STO 0 AWORK2(2) [STORE ALPHA
5Q5Q #
5QKB XCONV
5R52 BZE 5 UP [EMPTY RECORD
5RJL LDX 6 3 [REMEMBER PTR TO RECORD
5S4= SBN 3 2 [PTR TO N/W
5SHW LDX 0 0(3) [N/W
5T3G SBN 0 2 [- RED TAPE
5TH6 SLL 0 2 [N/CH
5W2Q SBX 0 5 [NO/UNUSED CHARS IN LAST WORD
5WGB STO 0 AWORK3(2)
5X22 SLC 3 2
5XFL ADN 3 6
5X^= SRC 3 2
5YDW LDCH 0 0(3) [END SHIFT OF PRECEDING RECORD
5YYG SBN 0 #75
5^D6 BNZ 0 SHUP [JIF ALPHA
5^XQ LDX 0 AWORK1(2)
62CB DCH 0 0(3) [STOR ALPHA IF CONVERSION TO ALPHA
62X2 LDX 3 6 [RESTORE PTR TO RCD
63BL NEXT2 LDCH 0 0(3) [LOAD CHAR
63W= BCHX 3 £
64*W BXGE 0 X40(1),SHCH [J IF SHIFT OR SENSITIVE CHAR.
64TG TRCH BCT 5 NEXT2
65*6 BRN UP [J IF NO CONVERSION
65SQ SHCH BXU 0 AWORK1(2),NOTAL [J IF IT ISN'T ALPHA
66#B LDX 1 3
66S2 SLC 3 2
67?L SBN 3 1
67R= SRC 3 2
68=W LDX 2 3
68QG CALL 0 SRMOVE [DELETE ALPHA,CLOSE GAP
69=6 LDX 3 7 [N/CH IN RECORD
69PQ SBN 3 1
6=9B SETRP CALL 5 NEWR1 [UPDATE RED TAPE
6=P2 SHUP SETREP SHIFT
6?8L UP
6?N= NOTAL LDX 2 FX2
6#7W ... BXE 0 AWORK2(2),UP [J IF BETA
6#MG BXU 0 XDELTA(1),SENCH [J IF SHIFT-SENS.CHAR.
6*76 BCT 5 SKISC
6*LQ BRN UP
6B6B SKISC BCHX 3 £ [IF DELTA,SKIP ITS SUCCESOR
6BL2 BCT 5 NEXT2
6C5L BRN UP
6CK= SENCH LDX 1 6
6D4W SBN 1 2 [PTR TO RECORD RED TAPE
6DJG LDX 4 7 [N/USED CHARS
6F46 LDX 7 0(1) [N/W IN RCD
6FHQ ADX 7 1 [ADDR OF LAST WORD
6G3B LDX 2 FX2
6GH2 NCHTE LDX 1 FX1
6H2L BXL 5 X37(1),RESTM [J TO SHIFT REST OF RECORD
6HG= SBN 7 9 [UPDATE END ADDR.
6H^W LDN 0 ACOMMUNE1(2)
6JFG MOVE 7 9 [MOVE 9 WORDS TO BUFFER
6J^6 LDX 1 7
6KDQ BCHX 1 £
6KYB MVCH 0 36 [SHIFT 9 WORDS 1 CHAR.POS.ONWARDS
6LD2 SBN 5 36 [UPDATE REMAINDER OF CHARS
6LXL ADX 5 AWORK3(2) [ADD N/CH IN LAST WORD
6MC= STOZ AWORK3(2)
6MWW BRN NCHTE [J TO SHIFT IT
6NBG RESTM SLC 3 2
6NW6 SBN 3 1
6P*Q SRC 3 2
6PTB BZE 5 SHINS [J TO INSERT SHIFT
6Q*2 LDX 7 3
6QSL LDN 0 ACOMMUNE1(2)
6R#= SMO 5
6RRW MVCH 7 0 [MOVE REST OF RCD TO BUFFER
6S?G LDX 1 3
6SR6 BCHX 1 £
6T=Q LDN 0 ACOMMUNE1(2)
6TQB SMO 5 [SHIFT REST OF RCD.1 CHAR.POS.ONWARDS
6W=2 MVCH 0 0
6WPL SHINS LDX 0 AWORK2(2)
6X9= DCH 0 0(3) [INSERT SHIFT CHAR
6XNW LDX 3 4 [N/CH
6Y8G ADN 3 1 [UPDATE N/CH
6YN6 BRN SETRP
6^7Q #
6^MB # ALLCHAR,ALPHA-NORMAL,PREVIOUS
7272 #
72LL XAANP
736= CALL 4 SRACNM [ALLCHAR-NORMAL
73KW LDX 3 2 [PTR TO RED TAPE
745G LDX 2 FX2
74K6 LDN 0 #75
754Q STO 0 AWORK1(2) [STORE BETA
75JB LDN 0 #74
7642 BRN STAW
76HL #
773= # ALLCHAR,PREVIOUS-NORMAL,ALPHA
77GW #
782G XAPNA
78G6 CALL 4 SRACNM
78^Q LDX 3 2 [PTR TO RED TAPE
79FB LDX 2 FX2
79^2 LDN 0 #74
7=DL STO 0 AWORK1(2) [STORE ALPHA
7=Y= LDN 0 #75
7?CW STAW STO 0 AWORK2(2)
7?XG CALL 6 RECLEN [RCD LENGTH
7#C6 BRN XCONV [PREVIOUS-ALPHA
7#WQ #
7*BB # GRAPHIC-SHIFT,PREVIOUS
7*W2 #
7B*L XGRPR
7BT= SBN 3 1
7C#W LDCT 2 #400
7CSG ORX 2 3
7D#6 LDCH 0 0(2) [TERMINAL SHIFT
7DRQ SBN 0 #75
7F?B BZE 0 XB [J IF BETA
7FR2 BRN XAL [J IF ALPHA
7G=L #
7GQ= # GRAPHIC-SHIFT,ALPHA
7H9W #
7HPG XGRAL
7J96 SBN 3 1
7JNQ LDCT 2 #400
7K8B ORX 2 3
7KN2 #
7L7L XAL LDN 0 #74 [ALPHA
7LM= DCH 0 0(2) [LAST SHIFT=ALPHA
7M6W XB BZE 5 UP [EMPTY RECORD
7MLG SBN 3 A1+1
7N66 LDX 0 ALOGLEN(3) [BLOCK LENGTH
7NKQ LDX 4 A1(3) [N/W IN RECORD
7P5B SLL 4 1 [MULTIPLY BY 2
7PK2 BXGE 0 4,OK [J IF BLOCK IS LONG ENOUGH
7Q4L ALTLEN 3,4 [ALTER LENGTH OF BLOCK
7QJ= HUNT 3,ADATA,ACONV
7R3W OK LDX 4 A1(3) [N/W IN RECORD
7RHG SBN 4 2 [SUBTRACT RED TAPE
7S36 ADN 3 A1+2
7SGQ LDX 6 3 [PTR TO RCD
7T2B LDX 2 3 [OLD PTR TO RECORD
7TG2 ADX 3 4 [NEW PTR TO RCD
7T^L SMO 4
7WF= MOVE 2 0 [MOVE WHOLE RECORD
7WYW NEXT3 LDCH 0 0(3) [PICK UP CHAR
7XDG BCHX 3 £
7XY6 SBN 0 #74
7YCQ BPZ 0 SHEXP [J IF A SHIFT
7YXB ADN 0 #74 [RESTORE CHAR
7^C2 DCH 0 0(2)
7^WL BCHX 2 £
82B= BCT 5 NEXT3 [J IF MORE TO TEST
82TW BRN URT
83*G SHEXP LDN 1 #76
83T6 DCH 1 0(2) [TRANSFER DELTA
84#Q BCHX 2 £
84SB ADN 0 #64
85#2 DCH 0 0(2) [DEPOSIT SUCCESSOR
85RL BCHX 2 £
86?= BCT 5 NEXT3 [J IF MORE TO TEST
86QW URT LDX 3 2 [PTR TO THE END OF THE RECORD
87=G CALL 5 NEWRT [UPDATE RED TAPE
87Q6 SBN 6 A1+2 [PTR TO ADATA/ALINE
889Q ADN 3 1
88PB ALTLEN 6,3 [SHORTEN ADATA BLOCK
8992 HUNT 3,ADATA,ACONV
89NL ADN 3 A1
8=8= LDX 0 1(3) [2ND WORD RT
8=MW SRL 0 6
8?7G ANDN 0 #77
8?M6 SBN 0 #76
8#6Q BNZ 0 UP [J IF TERMINAL SHIFT IS ALPHA
8#LB CALL 6 RECLEN [RECORD LENGTH
8*62 BRN XALPR [CONVERT TO PREVIOUS
8*KL #
8B5= # S U B R O U T I N E S :
8BJW #
8C4G # SUBROUTINE TO UPDATE RED TAPE AND SPACEFILL LAST WORD
8CJ6 #
8D3Q # ENTRY:X3=PTR TO THE END OF THE RECORD
8DHB # X6=PTR TO THE FIRST CHAR OF THE RECORD
8F32 # X7=N/CH BEFORE THE CONVERSION
8FGL # X5=LINK
8G2= # EXIT :X2=PTR TO RED TAPE
8GFW NEWRT SBX 3 6 [REC LENGTH
8G^G SLC 3 2 [N/CH IN NEW RCD
8HF6 BXU 3 7,NEWR1
8HYQ LDX 2 6
8JDB SBN 2 2 [PTR TO RED TAPE
8JY2 BRN SREX [EXIT
8KCL # ENTRY:X3=N/CH IN NEW RCD
8KX= NEWR1 LDX 2 6
8LBW SBN 2 2 [PTR TO RECORD RED TAPE
8LWG NGX 0 3
8MB6 BNG 3 NEGNCH [J IF NEGATIVE N/CH
8MTQ SRC 3 2
8N*B LDN 1 #7777
8NT2 ANDS 1 1(2) [CLEAR B0,B1
8P#L LDCT 1 #600
8PS= ANDX 1 3
8Q?W ORS 1 1(2) [UPDATE N/CH IN LAST WORD
8QRG ANDN 0 #3
8R?6 BZE 0 X2 [J IF LAST WORD IS FULL
8RQQ LDN 1 #20
8S=B STOR SMO 2
8SQ2 DCH 1 2(3) [SPACEFILL
8T9L BCHX 3 £
8TP= BCT 0 STOR
8W8W X2 ADN 3 2
8WNG STO 3 0(2)
8X86 LDX 1 FX1
8XMQ SREX
8Y7B SMO FX2
8YM2 LDX 0 AWORK4 [RESTORE STATE OF B7 INTO RED TAPE OF
8^6L ORS 0 1(2) [FOR TPOBJ AS TRANSFOR MAY NOT HAVE
8^L= EXIT 5 0 [DEALT WITH IT.
925W #
92KG # SUBROUTINE TO GET LENGTH OF RECORD
9356 # ENTRY:X3=PTR TO RED TAPE
93JQ # X6=LINK
944B # EXIT: X5,7=N/CH IN RECORD
94J2 # X0=OVERWRITTEN
953L # X3=PTR TO RECORD
95H= #
962W RECLEN
96GG LDX 5 0(3) [N/W IN RECORD
9726 SBN 5 2
97FQ BZE 5 NUCH
97^B SLL 5 2
98F2 LDCH 0 1(3)
98YL SRL 0 4 [NO OF USED CHARS
99D= BZE 0 NUCH
99XW SBN 5 4
9=CG ADX 5 0 [ADD N/CH IN LAST WORD
9=X6 NUCH LDX 7 5
9?BQ ADN 3 2 [ADD RED TAPE
9?WB EXIT 6 0
9#B2 #
9#TL # SUBROUTINE TO MOVE RECORD
9**= # ENTRY:X0=LINK
9*SW # X1=START CHAR ADDRESS
9B#G # X2=END CHAR ADDRESS
9BS6 # X5=N/CH TO MOVE
9C?Q #
9CRB SRMOVE
9D?2 SMO FX2
9DQL STO 5 ACOMMUNE1 [STORE X5
9F== TEST5 SBN 5 512
9FPW BNG 5 SHALL [J TO MOVE THE REST
9G9G MVCH 1 0 [MOVE 512 CHARS
9GP6 BNZ 5 TEST5
9H8Q BRN RESX5
9HNB SHALL ADN 5 512
9J82 SMO 5
9JML MVCH 1 0 [MOVE THE REST
9K7= RESX5 SMO FX2
9KLW LDX 5 ACOMMUNE1 [RESTORE X5
9L6G EXIT 0 0
9LL6 #
9M5Q NEGNCH
9MKB GEOERR 1,NEG N/CH
9N52 #
9NJL MENDAREA 100,K99TRANSFOR
9P4= #END
^^^^ ...65662612000800000000