1 / WPEDIT 3.XX 2 / 3 / ******** EDIT HISTORY ******** 4 5 / 258 KMD 23-Sep-85 Add Spanish Xlations and Page size check 6 / 257 KMD 17-Sep-85 Add Sveeedish translation IFDEFs 7 / 256 KMD 16-Sep-85 Add Norwegen (?) ifdefs. 8 / MAKE SURE !!!!! 9 / That you don't push the area of NWRUL buffer 10 / up by a page by having translations that are 11 / slightly too long .. Great fun.. 12 / 13 / 14 / 255 KMD 13-Sep-85 Add Spanish technical changes (not xlations) 15 / 254 EMcD 26-Aug-85 Add Insert-Overstrike mode 16 / 253 EMcD 19-Aug-85 Conditionalise Swedish Ruler store /recall 17 / 252 Mart 15-aug-85 add DUTCH 18 / 251 KMD 02-AUG-85 Allow international radix characters 19 / 250 EMcD 13-Jul-85 Put in FAO keyboard for Ruler store/recall 20 / 249 RCME 03-Jul-85 Fix bug in LP and spell caused by 247 21 / 248 RCME 01-Jul-85 Define new table to take 8-bit characters 22 / in ruler definitions 23 / 247 RCME 24-Jun-85 Allow MCS currency symbols 24 / 246 EMcD 07-jun-85 Fix write out of WPHOLE 25 / 245 EMcD 22-may-85 Move PGECHO out to Panel to make some room 26 / 244 EMcD 22-May-85 More Hyphenation code for 8 bit 27 / 243 EMcD 21-May-85 Write out one more block of blasts 28 / 242 EMcD 06-May-85 Expand write-out code for WPHOLE because 29 / of extra block for Blast for 8 bit GOLD SWAP 30 / 241 EMcD 23-Apr-85 Allow trans of 8 bit input only for 31 / KB input chars 32 / 240 rcme 22-Apr-85 Added load information for merge overlay hole 33 / 239 Mart 19-mar-85 moved CMPRUL,CLRRULR to WPHOLE added ESIMCH 34 / 238 Mart 11-mar-85 added blaster hook and made space by removing 35 / part of the ruler buffer copy to panel mem 36 / 37 / *********** mods below are V2.0 and earlier 38 / 39 / 237 WCE 20-DEC-84 Fix PUTSCH to output attributes across screens 40 / 236 WCE 12-NOV-84 Editor MATH changes for spaces in tab fields 41 / 235 WCE 12-OCT-84 Change Status Line for Column Cursor display 42 / 234 WCE 24-SEP-84 Change to Tech Character overlay call 43 / 233 EJL 23-AUG-84 CALLAR checks menu code is swapped out before 44 / JMS into field 2 45 / Fix reset of ruler during window change 46 / 232 WCE 21-AUG-84 Fix to EDITOR MATH error handling during SWAP 47 / 231 WJY 21-AUG-84 Fix to caller routine to clear skip return flag 48 / 230 WCE 20-AUG-84 Change to file open for Personal Dict and Spell 49 / 229 WJY 09-AUG-84 Return to main menu when the SPELL overlay INITSP 50 / is unable to open a file. 51 / 228 WCE 07-AUG-84 CHANGED GETLIN TO FIX PROBLEM WITH TIME DISPLAY 52 / 227 EJL 07-AUG-84 Change FMSWAP calls to CALLAR and remove FMSWAP 53 / Added stacking of 10 levels to CALLAR 54 / 226 BC 26-JUL-84 Delete SPLTFL, use WIDNAR flag for 80/132 55 / 225 WCE 24-JUL-84 Added REGION indicator to Status Line display 56 / 224 WCE 16-JUL-84 Changes for BRITISH pound sign 57 / 223 BC 16-JUL-84 Added manual screen width choice 58 / 222 BC 09-JUL-84 Deleted routine PPCALL from editor (not needed) 59 / 221 WCE 28-JUN-84 Fix to COPY-DOC then EDIT crashing system 60 / 220 WCE 27-JUN-84 Various bug fixes to EDITOR 61 / 219 EJL 25-JUN-84 Expand ruler from 158 to 238 62 / 218 GDC 05-JUN-84 Field 2 routines using own callaroutine. 63 / 217 GDC 05-JUN-84 Moved CENTER to field 2. 64 / 216 DKR 01-JUN-84 Test MNSTAT for Ruler Display ON/OFF. Added 65 / @RULOFF' to pt to Case-Table for Ruler Display 66 / 215 DKR 29-MAY-84 Gold:Tab changes for key trapping 67 / removed code associated with @tab center' 68 / 214 BC 22-MAY-84 Add PPCALL (=CALLAROUTINE) to 2nd overlay 69 / for Post Proc. calls to Edit subrs; add SB's 70 / footnote fixes to INITSP. 71 / 213 GDC 14-MAY-84 Added handling for second overlay area. 72 / 212 WCE 11-MAY-84 Remove all occurrances of USERNO 73 / 211 EJL 08-MAY-84 Add hooks for technical character 74 / 210 WCE 02-MAY-84 Moved Resident Overlay from WPEDOV to WPEDIT 75 / 209 GDC 29-APR-84 Moved LINDNT to field 2. 76 / 208 GDC 23-APR-84 Moved FNTABSTOP and TBJUST to field 2. 77 / 207 GDC 12-APR-84 Moved CHKMAR into field 2 freeing space in 78 / editor root. 79 / 206 GDC 24-MAR-84 Space saving mods 80 / 205 AH 21-MAR-84 Add code for COLUMN CUT 81 / 204 WCE 14-MAR-84 Change startup point from EIFIX to EINEXA to 82 / correct a problem with blocks used display 83 / 203 GDH 2-MAR-84 Fix SELECT bug with line exactly R-MARG long. 84 / 202 WJY 29-FEB-84 Fix top of document display when DMI document 85 / is opened in wide screen mode 86 / 201 WJY 24-FEB-84 Fix DMI wide screen bug caused by removing DMI 87 / specific code 88 / 200 WJY 07-FEB-84 DECmate I compatability. 89 / 199 EH 21-DEC-83 Fix for CHKMAR, handling tabs on wrapped lines 90 / 198 GDH 20-DEC-83 Unconditionalized the math checks. 91 / 197 EH 20-DEC-83 Moved the 5 ruler words on page 0 so as not to 92 / get cleared at INITialization. (for GTR) 93 / 196 GDH 13-DEC-83 Changed DSPRUL to accomodate status line changes. 94 / 195 WJD 31-OCT-83 Remove GOLD_HALT from GTP & GOLD_BOTTOM 95 / and change GOLD_BOTTOM logic to GTP logic 96 / 194 WCE 27-OCT-83 REMOVED ALL PREVIOUS EDIT HISTORIES FOR 97 / NEW VERSION 1.5 SOURCES 98 99 100 FIELD 0 / FIELD WHERE RXHAN IS LOCATED 101 *200 / START ADDRESS USED BY OS8 "GO" COMMAND 102 000200 5603 JMP I .+3 / LOCATION USED TO START UP RXHAN 103 000201 5602 JMP I .+1 / LOCATION USED TO RETURN TO OS8 MONITOR 104 000202 7605 7605 / ADDRESS OF OS8 MONITOR RETURN POINT 105 RXLOAD / ADDRESS OF START LOCATION FOR RXHAN undefined ^ 000203 0000 106 107 *RXLDLS / ADDRESS WITHIN RXHAN TO OVERLAY undefined ^ 108 RXEWT / WRITE FUNCTION CODE undefined ^ 000000 0000 109 000001 0000 0 110 RXQBLK / ADDRESS OF QUEUE BLOCK TO USE undefined ^ 000002 0000 111 000003 0003 . / ADDRESS OF TABLE OF DISK COMMANDS 112 113 DLSTAT ; 400;CDF 0;-DSSTAT / SWAP AREA CODE & STATUS LINE undefined ^ 000004 0000 000005 0400 000006 6201 undefined ^ 000007 0000 114 DLOEDT ; 0;CDF 10;-DSOEDT / MAIN EDITOR undefined ^ 000010 0000 000011 0000 000012 6211 undefined ^ 000013 0000 115 DL3EDT ; 200;CDF 20;-DS3EDT / MORE EDITOR RESIDENT CODE undefined ^ 000014 0000 000015 0200 000016 6221 undefined ^ 000017 0000 116 DL4EDT ;1600;CDF 20;-DS4EDT / EDITOR MATH CODE, ONLY LOADED undefined ^ 000020 0000 000021 1600 000022 6221 undefined ^ 000023 0000 117 / IN WHEN NOT IN LIST PROCESSING 118 DLBLED ;HOLEPG ;CDF 60 ;-DSBLED/ load out editor blastr holes undefined ^ 000024 0000 undefined ^ 000025 0000 000026 6261 undefined ^ 000027 0000 119 DLBEOV ;HOLEOV ;CDF 50 ;-DSBEOV/ Load out Extra Blast holes /a242 undefined ^ 000030 0000 undefined ^ 000031 0000 000032 6251 undefined ^ 000033 0000 120 DLEHL2 ;HOLEOV ;CDF 60 ;-DSEHL2/ Load out one more hole block/M245/A243 undefined ^ 000034 0000 undefined ^ 000035 0000 000036 6261 undefined ^ 000037 0000 121 000040 0000 0 122 123 / WPEDIT - EDITOR JOB 124 125 ECMTH1= 06 / START OF MATH CODE 126 ECMTH2= 206 / END OF MATH CODE 127 128 RECBUF= 10 / Start of RECord_BUFfer in buffer field 129 / (for List Processing) 130 131 HDRBUF= 6000 / START OF EDIT FILE HEADER BUFFER 132 HDRFSZ= 5 / # BLOCKS IN THIS FILE 133 HDRPSZ= 15 / #LINES PER PAGE 134 ETXBUF= HDRBUF+400 / ETX BUFFER 135 STXBUF= ETXBUF+400 / STX BUFFER 136 PSTEBF= STXBUF+400 / PASTE BUFFER 137 PRTBUF= HDRBUF / MERGE-TO-PRINTER BUFFER 138 PRTSIZ= STXBUF-PRTBUF / " " SIZE 139 BUFEND= HDRBUF / END OF EDIT BUFFER +1 140 141 BASKET= PSTEBF / WASTEBASKET 142 BASKSZ= 400 / WASTEBASKET CAPACITY 143 144 PSTEBG= DLCUTB / FIRST PASTE BLOCK undefined ^ 145 PSTEND= PSTEBG+36 / LAST PASTE BLOCK +1 146 147 CR= 15 148 LF= 12 149 WIDTH= 204 / WIDTH OF SCREEN 150 COLLIM= 360 / M219 Display ruler out to 240 151 / RULSV2 displays out to 240 152 / RLADV1, RLINE1 limits advance to 238 153 HAFRUL= COLLIM-1%2 / A219 Limit ruler to 238 154 COLM80= 117 / 80TH COLUMN POINTER 155 COLM81= COLM80+1 / A219 156 NPTRS= 30 / NUMBER OF SCREEN LINES AVAILABLE ON TERMINAL 157 CURPOS= 46 / CURRENT HORIZ POSITION ON SCREEN 158 LOWLIM= 47 / SCREEN'S CURRENT LOW LIMIT, 159 / EITHER 0 OR 27 DECIMAL 160 161 162 /*************************************************************************** 163 /**** PAGE ZERO LOCATIONS USED BY STATUS LINE DISPLAY ROUTINE **** 164 /*************************************************************************** 165 166 CDFMYF= CDFMNU undefined ^ 167 168 *170 169 000170 0000 LINFLG, 0 / LOCATION FOR STATUS DISPLAY MODE FLAG 170 000171 0000 LINRUL, 0 / LOCATION FOR RULER DETECTED FLAG 171 000172 0000 LINDIF, 0 / LOCATION FOR STATUS DIFFERENT FLAG 172 000173 0000 LINPGL, 0 / LOCATION FOR CURRENT LOW ORDER PAGE NUMBER 173 000174 0000 LINPGH, 0 / LOCATION FOR CURRENT HIGH ORDER PAGE NUMBER 174 000175 0000 LINNUM, 0 / LOCATION FOR CURRENT LINE NUMBER 175 000176 0000 LINUSD, 0 / LOCATION FOR NUMBER OF BLOCKS USED 176 000177 0000 LINFRE, 0 / LOCATION FOR NUMBER OF BLOCKS FREE 177 178 X=. / INDICATE FIRST FREE LOCATION ON PAGE 179 /-------------------- 180 PAGE 181 182 RELOC / RESET RELOCATION MECHANISM OF ASSEMBLER 183 *400 / SET LOCATION COUNT TO FREE AREA IN FIELD 0 184 RELOC SWPBEG / LOCATION FOR STATUS LINE CODE TO RUN undefined ^ 185 186 DSKBLK=.-SWPBEG%400+DLSTAT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ undefined ^ 187 188 /*************************************************************************** 189 /**** TRANSFER VECTOR ENTRY POINTS FOR EDITOR SWAP AREA ROUTINES **** 190 /*************************************************************************** 191 192 CALLN1, XX / ENTRY POINT FOR ROUTINE NUMBER 1 undefined ^ 000000* 0000 193 000001* 4044 JMS CALSUB / SET UP RETURN ADDRESS AND RETURN FIELD 194 000002* 4777 JMS LINDSP / GO UPDATE STATUS LINE INFORMATION 195 000003* 5060 JMP CALXIT / GO TO RETURN TO CALLER CODE 196 197 CALLN2, XX / ENTRY POINT FOR ROUTINE NUMBER 2 undefined ^ 000004* 0000 198 000005* 4044 JMS CALSUB / SET UP RETURN ADDRESS AND RETURN FIELD 199 000006* 4776 JMS LINCHK / GO CHECK FOR STATUS VALUE CHANGES 200 000007* 5060 JMP CALXIT / GO TO RETURN TO CALLER CODE 201 202 CALLN3, XX / ENTRY POINT FOR ROUTINE NUMBER 3 undefined ^ 000010* 0000 203 000011* 4044 JMS CALSUB / SET UP RETURN ADDRESS AND RETURN FIELD 204 000012* 4775 JMS LINSDN / GO HANDLE SCROLL DOWN EVENT 205 000013* 5060 JMP CALXIT / GO TO RETURN TO CALLER CODE 206 207 CALLN4, XX / ENTRY POINT FOR ROUTINE NUMBER 4 undefined ^ 000014* 0000 208 000015* 4044 JMS CALSUB / SET UP RETURN ADDRESS AND RETURN FIELD 209 000016* 4774 JMS LINSUP / GO HANDLE SCROLL UP EVENT 210 000017* 5060 JMP CALXIT / GO TO RETURN TO CALLER CODE 211 212 CALLN5, XX / ENTRY POINT FOR ROUTINE NUMBER 5 undefined ^ 000020* 0000 213 000021* 4044 JMS CALSUB / SET UP RETURN ADDRESS AND RETURN FIELD 214 000022* 4773 JMS LINCOL / SPECIAL CHECK FOR STATUS VALUE CHANGES /C235 215 000023* 5060 JMP CALXIT / GO TO RETURN TO CALLER CODE 216 217 CALLN6, XX / ENTRY POINT FOR ROUTINE NUMBER 6 undefined ^ 000024* 0000 218 000025* 4044 JMS CALSUB / SET UP RETURN ADDRESS AND RETURN FIELD 219 000026* 7000 NOP / PLACE FOR TRANSFER TO SPECIAL CODE 220 000027* 5060 JMP CALXIT / GO TO RETURN TO CALLER CODE 221 222 CALLN7, XX / ENTRY POINT FOR ROUTINE NUMBER 7 undefined ^ 000030* 0000 223 000031* 4044 JMS CALSUB / SET UP RETURN ADDRESS AND RETURN FIELD 224 000032* 7000 NOP / PLACE FOR TRANSFER TO SPECIAL CODE 225 000033* 5060 JMP CALXIT / GO TO RETURN TO CALLER CODE 226 227 CALLN8, XX / ENTRY POINT FOR ROUTINE NUMBER 8 undefined ^ 000034* 0000 228 000035* 4044 JMS CALSUB / SET UP RETURN ADDRESS AND RETURN FIELD 229 000036* 7000 NOP / PLACE FOR TRANSFER TO SPECIAL CODE 230 000037* 5060 JMP CALXIT / GO TO RETURN TO CALLER CODE 231 232 CALLN9, XX / ENTRY POINT FOR ROUTINE NUMBER 9 undefined ^ 000040* 0000 233 000041* 4044 JMS CALSUB / SET UP RETURN ADDRESS AND RETURN FIELD 234 000042* 7000 NOP / PLACE FOR TRANSFER TO SPECIAL CODE 235 000043* 5060 JMP CALXIT / GO TO RETURN TO CALLER CODE 236 237 /*************************************************************************** 238 /**** SET UP RETURN FIELD AND ADDRESS FOR CALLN# ROUTINES **** 239 /*************************************************************************** 240 241 CALSUB, XX / ROUTINE TO SET UP RETURN FIELD AND ADDRESS undefined ^ 000044* 0000 242 000045* 3170 DCA LINFLG / SAVE CONTENTS OF ACCUMULATOR IN FLAG WORD 243 244 000046* 6214 RDF / READ CALLERS DATA FIELD 245 TAD CIDF0 / MAKE CDF-CIF INSTRUCTION BACK TO CALLER undefined ^ undefined ^ 000047* 1000 246 000050* 3060 DCA CALXIT / STORE FOR RETURN TO CALLER 247 000051* 0000 CDFMYF / SET DATA FIELD BACK TO MY FIELD 248 249 AC7776 / SET UP TO SUBTRACT A VALUE OF TWO undefined ^ 000052* 0000 250 000053* 1044 TAD CALSUB / MAKE POINTER TO VECTOR ENTRY POINT 251 DCA T2 / STORE FOR USE IN AN INDIRECT LOOKUP undefined ^ undefined ^ 000054* 3000 252 TAD I T2 / PICK UP CALLERS RETURN ADDRESS undefined ^ undefined ^ 000055* 1400 253 000056* 3062 DCA CALRTN / STORE ADDRESS FOR LATER RETURN TO CALLER 254 000057* 5444 JMP I CALSUB / GO TRANSFER TO SPECIALIZED ROUTINES 255 256 CALXIT, XX / LOCATION FOR CDF-CIF INSTRUCTION TO CALLER undefined ^ 000060* 0000 257 000061* 5462 JMP I CALRTN / RETURN BACK TO CALLER 258 CALRTN, XX / LOCATION FOR CALLERS RETURN ADDRESS undefined ^ 000062* 0000 259 260 261 X=. / INDICATE FIRST FREE LOCATION ON PAGE 262 /-------------------- 263 PAGE 264 265 DSKBLK=.-SWPBEG%400+DLSTAT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ undefined ^ 266 267 268 /*************************************************************************** 269 /**** THE CODE ASSEMBLED HERE IS USED BY THE EDITOR FOR STATUS LINE **** 270 /*************************************************************************** 271 272 273 LINCOL, XX / SPECIAL CHECK FOR STATUS VALUE CHANGES /A235 undefined ^ 000200* 0000 274 TAD I (MUBUF+MNSTAT) / PICK UP THE NUMBER OF STATUS LINES /A235 undefined ^ undefined ^ undefined ^ undefined ^ 000201* 1777 275 000202* 7650 SNA CLA / ARE WE DISPLAYING STATUS INFORMATION /A235 276 000203* 5600 JMP I LINCOL / NO, RETURN TO CALLER /A235 277 CDFEDT / CHANGE TO EDIT FIELD /A235 undefined ^ 000204* 0000 278 000205* 1776 TAD I (GSRF) / PICK UP THE GLOBAL SEARCH FLAG /A235 279 000206* 0000 CDFMYF / RESET BACK TO THIS FIELD /A235 280 000207* 7640 SZA CLA / ARE WE DOING A GLOBAL SEARCH & REPLACE/A235 281 000210* 5225 JMP LINPOS / YES, GO UPDATE COLUMN INFORMATION /A235 282 000211* 4775 JMS LINCHK / GO CHECK FOR STATUS VALUE CHANGES /A235 283 AC7775 / SET UP FOR A COUNT OF THREE /A235 undefined ^ 000212* 0000 284 DCA T2 / STORE IN COUNTER REGISTER /A235 undefined ^ undefined ^ 000213* 3000 285 LINLOP, CIFSYS / CHANGE TO SYSTEM FIELD /A235 undefined ^ 000214* 0000 286 JWAIT / WAIT FOR A SIGNIFICANT EVENT /A235 undefined ^ 000215* 0000 287 CIFSYS / CHANGE TO SYSTEM FIELD /A235 undefined ^ 000216* 0000 288 XLTIN / GET A CHARACTER FROM KEYBOARD BUFFER /A235 undefined ^ 000217* 0000 289 000220* 5223 JMP LINNCH / NO CHARACTERS AVAILABLE, SKIP AROUND /A235 290 000221* 2062 ISZ CALRTN / GOT ONE, BUMP RETURN ADDRESS /A235 291 000222* 5600 JMP I LINCOL / RETURN TO CALLER /A235 292 LINNCH, ISZ T2 / INCREMENT THE COUNTER /A235 undefined ^ undefined ^ 000223* 2000 293 000224* 5214 JMP LINLOP / NOT DONE, GO WAIT SOME MORE /A235 294 000225* 1246 LINPOS, TAD LINCUR / PICK UP THE LAST DISPLAYED POSITION /A235 295 DCA T2 / SAVE FOR LATER COMPARE /A235 undefined ^ undefined ^ 000226* 3000 296 CDFEDT / CHANGE TO EDIT FIELD /A235 undefined ^ 000227* 0000 297 000230* 1774 TAD I (CURSOR) / PICK UP THE CURRENT CURSOR POSITION /A235 298 000231* 0000 CDFMYF / RESET BACK TO THIS FIELD /A235 299 000232* 7001 IAC / BUMP TO REAL VALUE /A235 300 000233* 3246 DCA LINCUR / SAVE THE VALUE FOR DISPLAY /A235 301 000234* 1246 TAD LINCUR / PICK UP THE COLUMN POSITION /A235 302 000235* 7041 CIA / MAKE IT NEGATIVE /A235 303 TAD T2 / COMBINE WITH PREVIOUS VALUE /A235 undefined ^ undefined ^ 000236* 1000 304 000237* 7650 SNA CLA / ARE THEY THE SAME ? /A235 305 000240* 5600 JMP I LINCOL / YES, DON'T REDISPLAY, RETURN TO CALLER/A235 306 JMS I IOACAL / CALL IOA TO DISPLAY THE VALUE /A235 undefined ^ undefined ^ 000241* 4400 307 000242* 0000 0 / USE DEFAULT IOA OUTPUT ROUTINE /A235 308 000243* 0600 LINST1 / CONTROL STRING TO DISPLAY VALUE /A235 309 000244* 0024 24 / SCREEN POSITION /A235 310 000245* 0557 LINREV / SELECT REVERSE VIDEO IF SPECIFIED /A235 311 LINCUR, XX / LOCATION FOR CURRENT CURSOR POSITION /A235 undefined ^ 000246* 0000 312 000247* 5600 JMP I LINCOL / RETURN TO CALLER /A235 313 314 LINCLR, XX / ROUTINE TO CLEAR SCREEN AND SET VALUES undefined ^ 000250* 0000 315 JMS I IOACAL / CALL IOA TO CLEAR THE SCREEN undefined ^ undefined ^ 000251* 4400 316 000252* 0000 0 / USE DEFAULT IOA OUTPUT ROUTINE 317 000253* 0606 LINST2 / CLEAR SCREEN AND SCROLL AREA /C235 318 319 000254* 1334 TAD LINTXT / GET POINTER TO CURRENT TEXT SIZE 320 CIFFIO / CHANGE TO FILE SYSTEM FIELD undefined ^ 000255* 0000 321 FILEIO / CALL FILE SYSTEM TO GET HEADER VALUE undefined ^ 000256* 0000 322 XHDRGT / GET VALUE FROM HEADER FUNCTION WORD undefined ^ 000257* 0000 323 000260* 3773 DCA LINSIZ / STORE VALUE OF CURRENT TEXT SIZE 324 325 CDFFIO / CHANGE TO FILE SYSTEM FIELD undefined ^ 000261* 0000 326 TAD I (SCFSPC) / GET NUMBER OF BLOCKS LEFT ON DISK undefined ^ undefined ^ 000262* 1777 327 000263* 0000 CDFMYF / CHANGE BACK TO MENU FIELD 328 DCA T3 / SAVE NUMBER OF FREE BLOCKS IN TMP undefined ^ undefined ^ 000264* 3000 329 330 / THE VALUE STORED IN LINFRE IS USED AS A FLAG TO INDICATE THAT THE MID SCREEN 331 / DOCUMENT HEADER INFORMATION SHOULD BE DISPLAYED ON THE SCREEN. IF THE VALUE 332 / OF LINFRE IS ZERO, IT INDICATES THAT THE NUMBER OF FREE BLOCKS REMAINING ON 333 / THE DISKETTE HAS NOT BEEN UPDATED WHICH HAPPENS AT DOCUMENT OPEN TIME AND 334 / THAT THE MID SCREEN DATA IS REQUIRED. 335 / 336 / THERE IS A CASE WHERE LINFRE HAS NOT BEEN UPDATED AND THE MID SCREEN 337 / INFORMATION IS NOT WANTED. WHEN THIS HAPPENS, THE VLAUE OF THE OPERATION 338 / FLAG WORD STORED IN LINFLG IS A THREE WHICH MEANS THAT ONLY A CLEAR SCREEN 339 / IS DESIRED. A VALID TEST IS MADE BY COMBINING THE VALUES OF BOTH WORDS. 340 341 000265* 1170 TAD LINFLG / GET FLAG WORD FOR CURRENT OPERATION 342 000266* 1177 TAD LINFRE / GET LAST VALUE OF BLOCKS FREE 343 000267* 7650 SNA CLA / HAS IT BEEN INITIALIZED AND LINFLG=0 344 000270* 5277 JMP LINMID / NO, GO DISPLAY MIDDLE LINES OF SCREEN 345 TAD T3 / GET CURRENT BLOCKS FREE undefined ^ undefined ^ 000271* 1000 346 000272* 7041 CIA / NEGATE VALUE FOR CHECK 347 000273* 1177 TAD LINFRE / COMBINE WITH LAST VALUE OF BLOCKS FREE 348 000274* 1176 TAD LINUSD / ADD RESIDUE TO NUMBER OF BLOCKS USED 349 000275* 3176 DCA LINUSD / STORE UPDATED NUMBER OF BLOCKS USED 350 000276* 5314 JMP LINSET / GO STORE CURRENT VALUE OF BLOCKS FREE 351 352 LINMID, JMS I IOACAL / CALL IOA TO DISPLAY MID SCREEN DATA undefined ^ undefined ^ 000277* 4400 353 000300* 0000 0 / USE DEFAULT IOA OUTPUT ROUTINE 354 000301* 0617 LINST3 / CONTROL STRING FOR TEXT DISPLAY 355 IFDEF CONDOR < 710 > / LOCATION FOR DOCUMENT NAME /C202 356 000302* 0310 IFNDEF CONDOR < 310 > / COMPROMISE VALUE, WORKS IN BOTH /A202 357 / WIDE SCREEN & NORMAL MODES FOR DMI /A202 358 MUBUF+MNDRV / MENU LOCATION FOR DRIVE NUMBER undefined ^ undefined ^ 000303* 0000 359 MUBUF+MNDOCN / MENU LOCATION FOR DOC NUMBER undefined ^ undefined ^ 000304* 0000 360 MUBUF+MNFNAM / MENU LOCATION FOR DOC NAME undefined ^ undefined ^ 000305* 0000 361 IFDEF CONDOR < 1110 > / LOCATION FOR FIRST SCREEN LINE /C202 362 000306* 0510 IFNDEF CONDOR < 510 > / COMPROMISE VALUE, WORKS IN BOTH /A202 363 / WIDE SCREEN & NORMAL MODES FOR DMI /A202 364 000307* 0176 LINUSD / LOCATION FOR BLOCKS USED VALUE 365 IFDEF CONDOR < 1310 > / LOCATION FOR SECOND SCREEN LINE /C202 366 000310* 0710 IFNDEF CONDOR < 710 > / COMPROMISE VALUE, WORKS IN BOTH /A202 367 / WIDE SCREEN & NORMAL MODES FOR DMI /A202 368 T3 / LOCATION FOR BLOCKS FREE VALUE undefined ^ 000311* 0000 369 IFDEF CONDOR < 1510 > / LOCATION FOR THIRD SCREEN LINE /C202 370 000312* 1110 IFNDEF CONDOR < 1110 > / COMPROMISE VALUE, WORKS IN BOTH /A202 371 / WIDE SCREEN & NORMAL MODES FOR DMI /A202 372 000313* 0560 LINSIZ / LOCATION FOR CURRENT TEXT SIZE VALUE 373 374 LINSET, TAD T3 / GET CURRENT NUMBER OF BLOCKS FREE undefined ^ undefined ^ 000314* 1000 375 000315* 3177 DCA LINFRE / STORE UPDATED NUMBER OF BLOCKS FREE 376 377 AC7775 / SET UP FOR A DECREMENT undefined ^ 000316* 0000 378 TAD I (MUBUF+MNSTAT) / PICK UP NUMBER OF STATUS LINES undefined ^ undefined ^ undefined ^ undefined ^ 000317* 1777 379 000320* 7700 SMA CLA / CHECK FOR A ONE OR TWO LINE TOP AREA 380 000321* 7001 IAC / BUMP UP TO A TWO LINE AREA 381 000322* 1353 TAD LINTWO / SET UP FOR A ONE OR TWO LINE TOP AREA 382 000323* 3351 DCA LINAD1 / STORE FOR USE WITH IOA CALL 383 384 AC7776 / SET UP FOR A DECREMENT undefined ^ 000324* 0000 385 TAD I (MUBUF+MNSTAT) / PICK UP NUMBER OF STATUS LINES undefined ^ undefined ^ undefined ^ undefined ^ 000325* 1777 386 000326* 7710 SPA CLA / CHECK FOR A RULER LINE AREA 387 000327* 7001 IAC / NO RULER, BUMP UP TO FULL SCREEN 388 000330* 1372 TAD ("3) / SET UP RULER AREA IF SPECIFIED 389 000331* 3354 DCA LINAD2 / STORE FOR USE WITH IOA CALL 390 000332* 3246 DCA LINCUR / CLEAR COLUMN POSITION FOR REDISPLAY /A235 391 000333* 5650 JMP I LINCLR / RETURN BACK TO CALLER 392 393 000334* 0013 LINTXT, 15-2 / POINTER TO HEADER CURRENT TEXT SIZE 394 395 000335* 4131 LINSTE, TEXT '!Y' / RESTORE CURSOR ATTRIBUTES 000336* 0000 396 397 000337* 4133 LINSTF, TEXT '![(&^S^A![[?6H' / SELECT LANGUAGE & RELITIVE MODE /C235 000340* 5046 000341* 3623 000342* 3601 000343* 4133 000344* 3377 000345* 6610 000346* 0000 398 / ESC [ ? 6 h / SELECT RELITIVE ORIGIN MODE /C235 399 LINSTG, ESC; "[ / START SELECTION OF SCROLL REGION /C224 undefined ^ 000347* 0000 000350* 0333 400 000351* 0262 LINAD1, "2; "; / FIRST ROW OF SCROLL REGION 2 OR 3 000352* 0273 401 000353* 0262 LINTWO, "2 402 000354* 0263 LINAD2, "3; "r / LAST ROW OF SCROLL REGION AT 23 OR 24 000355* 0362 403 000356* 0000 0 / ASCII STRING TERMINATOR 404 405 X=. / INDICATE FIRST FREE LOCATION ON PAGE 406 /-------------------- 407 000372* 0263 PAGE 000373* 0560 000374* 0136 000375* 1000 000376* 0173 000377* 0000 408 409 DSKBLK=.-SWPBEG%400+DLSTAT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ undefined ^ 410 411 412 /*************************************************************************** 413 /**** THE CODE ASSEMBLED HERE IS USED BY THE EDITOR FOR STATUS LINE **** 414 /*************************************************************************** 415 416 / LINDSP ROUTINE IS USED TO DISPLAY THE STATUS LINE INFORMATION IN THE EDITOR 417 / 418 / THE STATUS LINE AREA CONSISTS OF ONE OR TWO OR THREE LINES AS FOLLOWS: 419 / LINE 1 = TOP LINE OF SCREEN - CURRENT PAGE NUMBER, CURRENT LINE NUMBER, 420 / DRIVE NUMBER, DOCUMENT NUMBER AND DOCUMENT NAME BEING EDITED 421 / LINE 2 = (IF SPECIFIED) A GRAPHICS BAR UNDER LINE ONE 422 / LINE 24 = (IF SPECIFIED) CURRENT RULER IN EFFECT FOR EDITING 423 / 424 / PRIOR TO ENTRY, THE VALUE CONTAINED IN MNSTAT DETERMINES TYPE OF STATUS 425 / DISPLAYED AS FOLLOWS: 426 / 427 / MNSTAT = 0 NO STATUS DISPLAYED WHILE EDITING 428 / MNSTAT = 1 REVERSE VIDEO TOP STATUS LINE ONLY 429 / MNSTAT = 2 REVERSE VIDEO TOP STATUS LINE AND CURRENT RULER 430 / MNSTAT = 3 TOP STATUS LINE WITH GRAPHICS BAR AND CURRENT RULER 431 / 432 / UPON ENTRY, THE VALUE CONTAINED IN THE AC DETERMINES FUNCTION AS FOLLOWS: 433 / 434 / AC = 0 CLEAR THE SCREEN AND DISPLAY COMPLETE STATUS AREA 435 / DEFINE SCROLLING REGION AND SET RELITIVE SCREEN ADDRESSING 436 / AC = 1 UPDATE DISPLAY OF TOP STATUS LINE ONLY 437 / AC = 2 UPDATE DISPLAY OF BOTTOM STATUS LINE ONLY (DISPLAY RULER) 438 / AC = 3 CLEAR THE SCREEN AND RESET SCROLLING AREA TO FULL SCREEN 439 440 LINDSP, XX / DISPLAY STATUS LINE ROUTINE undefined ^ 000400* 0000 441 000401* 1170 TAD LINFLG / GET STATUS DISPLAY MODE FLAG 442 000402* 7440 SZA / CHECK FOR DISPLAY ALL MODE 443 000403* 1363 TAD LINM3 / NO, CHECK FOR SCREEN CLEAR & RESET 444 000404* 7650 SNA CLA / WAS SCREEN CLEAR & RESET REQUESTED 445 000405* 4777 JMS LINCLR / YES, GO CLEAR SCREEN AND SET VALUES 446 447 TAD I (MUBUF+MNSTAT) / PICK UP NUMBER OF STATUS LINES undefined ^ undefined ^ undefined ^ undefined ^ 000406* 1776 448 000407* 7450 SNA / CHECK TO SEE IF STATUS AREA IS ACTIVE 449 000410* 5350 JMP LINXIT / NO, STATUS IS NOT ACTIVE, RETURN TO CALLER 450 000411* 1363 TAD LINM3 / DECREMENT THE COUNT 451 000412* 7700 SMA CLA / CHECK FOR TOP LINE TO BE REVERSE VIDEO 452 AC0004 / NO REVERSE VIDEO, BUMP ADDRESS TO NULL POINT undefined ^ 000413* 0000 453 000414* 1375 TAD (LINST5) / PICK UP ADDRESS OF REVERSE VIDEO STRING 454 000415* 3357 DCA LINREV / STORE FOR USE WITH IOA CALLS 455 456 000416* 1170 TAD LINFLG / GET STATUS DISPLAY MODE FLAG 457 000417* 7640 SZA CLA / CHECK FOR DISPLAY ALL MODE 458 000420* 5237 JMP LINTOP / NO, GO CHECK FOR TOP LINE 459 460 JMS I IOACAL / CALL IOA TO DISPLAY TOP REVERSE VIDEO LINE undefined ^ undefined ^ 000421* 4400 461 000422* 0000 0 / USE DEFAULT IOA DISPLAY ROUTINE 462 000423* 0617 LINST4 / DISPLAY REVERSE VIDEO AREA AND DOC NAME 463 000424* 0000 0 / SCREEN POSITION FOR REVERSE SPACE 464 000425* 0557 LINREV / SELECT REVERSE VIDEO IF SPECIFIED 465 000426* 0647 LINST6 / DISPLAY 27 REVERSE SPACE CHARACTERS 466 000427* 0647 LINST6 / DISPLAY 27 REVERSE SPACE CHARACTERS 467 000430* 0647 LINST6 / DISPLAY 27 REVERSE SPACE CHARACTERS 468 000431* 0647 LINST6 / DISPLAY 27 REVERSE SPACE CHARACTERS 469 000432* 0647 LINST6 / DISPLAY 27 REVERSE SPACE CHARACTERS 470 000433* 0041 41 / SCREEN POSITION FOR DOCUMENT NAME/C254/C235 471 MUBUF+MNDRV / MENU LOCATION FOR DRIVE NUMBER undefined ^ undefined ^ 000434* 0000 472 MUBUF+MNDOCN / MENU LOCATION FOR DOC NUMBER undefined ^ undefined ^ 000435* 0000 473 MUBUF+MNFNAM / MENU LOCATION FOR DOC NAME undefined ^ undefined ^ 000436* 0000 474 475 000437* 1170 LINTOP, TAD LINFLG / GET STATUS DISPLAY MODE FLAG 476 000440* 7440 SZA / CHECK FOR DISPLAY ALL MODE 477 000441* 1361 TAD LINM1 / NO, CHECK FOR TOP LINE 478 000442* 7640 SZA CLA / IS IT JUST THE TOP LINE 479 000443* 5310 JMP LINBOT / NO, GO CHECK FOR BOTTOM LINE 480 481 000444* 3172 DCA LINDIF / CLEAR STATUS DIFFERENT FLAG 482 JMS I IOACAL / CALL IOA TO START DISPLAY OF TOP LINE undefined ^ undefined ^ 000445* 4400 483 000446* 0000 0 / USE DEFAULT IOA OUTPUT ROUTINE 484 000447* 0665 LINST7 / SAVE CURSOR, SET ABSOLUTE, DISPLAY PAGE /C235 485 000450* 0000 0 / SCREEN POSITION FOR PAGE 486 000451* 0557 LINREV / SELECT REVERSE VIDEO IF SPECIFIED 487 488 000452* 1174 TAD LINPGH / GET VALUE OF HIGH ORDER PAGE NUMBER 489 000453* 7650 SNA CLA / DO WE HAVE A THOUSAND PAGES ? 490 000454* 5263 JMP LINLOW / NO, JUST PUT UP LOW ORDER PAGE NUMBER 491 492 JMS I IOACAL / CALL IOA TO DISPLAY THOUSANDS NUMBER undefined ^ undefined ^ 000455* 4400 493 000456* 0000 0 / USE DEFAULT IOA OUTPUT ROUTINE 494 000457* 0675 LINST9 / THOUSANDS NUMBER CONTROL STRING 495 000460* 0174 LINPGH / HIGH ORDER PAGE NUMBER 496 000461* 0173 LINPGL / LOW ORDER PAGE NUMBER 497 000462* 5267 JMP LINLIN / CONTINUE WITH LINE DISPLAY 498 499 LINLOW, JMS I IOACAL / CALL IOA TO DISPLAY LOW PAGE NUMBER undefined ^ undefined ^ 000463* 4400 500 000464* 0000 0 / USE DEFAULT IOA OUTPUT ROUTINE 501 000465* 0700 LINSTA / HUNDREDS CONTROL STRING AND LINE NUMBER 502 000466* 0173 LINPGL / LOW ORDER PAGE NUMBER 503 504 000467* 4774 LINLIN, JMS INOVDP / Go display Insert-Overstrike /A254 505 JMS I IOACAL / CALL IOA TO START THE LINE DISPLAY undefined ^ undefined ^ 000470* 4400 506 000471* 0000 0 / USE DEFAULT IOA OUTPUT ROUTINE 507 000472* 0702 LINSTB / CONTROL STRING FOR LINE DISPLAY 508 000473* 0011 11 / SCREEN POSITION FOR LINE /C235 509 510 000474* 1175 TAD LINNUM / PICK UP THE CURRENT LINE NUMBER 511 000475* 7650 SNA CLA / IS THE LINE NUMBER DEFINED ? 512 000476* 5305 JMP LINUKN / NO, GO PUT UP "N/A" MESSAGE 513 514 JMS I IOACAL / CALL IOA TO DISPLAY LINE NUMBER undefined ^ undefined ^ 000477* 4400 515 000500* 0000 0 / USE DEFAULT IOA OUTPUT ROUTINE 516 000501* 0702 LINSTC / DISPLAY LINE NUMBER 517 000502* 0175 LINNUM / POINTER TO CURRENT LINE NUMBER 518 000503* 0021 21 / SCREEN POSITION FOR COLUMN POSITION /C235 519 000504* 5310 JMP LINBOT / GO CHECK FOR BOTTOM LINE 520 521 LINUKN, JMS I IOACAL / CALL IOA TO DISPLAY "N/A" MESSAGE undefined ^ undefined ^ 000505* 4400 522 000506* 0000 0 / USE DEFAULT IOA OUTPUT ROUTINE 523 LINSTD / DISPLAY "N/A" undefined ^ 000507* 0000 524 525 000510* 1170 LINBOT, TAD LINFLG / GET STATUS DISPLAY MODE FLAG 526 000511* 7440 SZA / CHECK FOR DISPLAY ALL MODE 527 000512* 1362 TAD LINM2 / NO, CHECK FOR BOTTOM LINE RULER 528 000513* 7650 SNA CLA / WAS BOTTOM LINE RULER REQUESTED 529 TAD I (MUBUF+MNSTAT) / YES, PICK UP NUMBER OF STATUS LINES undefined ^ undefined ^ undefined ^ undefined ^ 000514* 1776 530 000515* 1362 TAD LINM2 / DECREMENT THE COUNT 531 000516* 7710 SPA CLA / WAS BOTTOM LINE RULER SPECIFIED 532 000517* 5334 JMP LINSAM / NO, GO CHECK IF SETUP IS NEEDED 533 534 000520* 3171 DCA LINRUL / CLEAR RULER DETECTED FLAG 535 JMS I IOACAL / CALL IOA TO DISPLAY BOTTOM LINE undefined ^ undefined ^ 000521* 4400 536 000522* 0000 0 / USE DEFAULT IOA OUTPUT ROUTINE 537 000523* 0673 LINST8 / SAVE CURSOR & SET ABSOLUTE ADDRESSING /C235 538 539 CDFEDT / CHNAGE TO EDIT FIELD undefined ^ 000524* 0000 540 000525* 1373 TAD (NPTRS) / PICK UP VALUE FOR MAXIMUM SCREEN LINES 541 000526* 3772 DCA I (SCRNLN) / STORE MAX VALUE FOR PCUR ROUTINE 542 543 /D220 CDFMYF / CHANGE BACK TO THIS FIELD 544 /D220 CIFEDT / SET UP TO GO TO THE EDITOR FIELD 545 /D220 JMS I (CALLAR) / CALL A ROUTINE IN THE EDITOR 546 /D220 DSPCUR / ROUTINE TO DISPLAY THE CURRENT RULER /M196 547 /D220 CDFBUF / DATA FIELD TO USE FOR ROUTINE 548 549 CDIEDT / SET UP TO GO TO THE EDITOR FIELD /A220 undefined ^ 000527* 0000 550 000530* 4771 JMS I (DSPCUR) / ROUTINE TO DISPLAY THE CURRENT RULER /A220 551 552 JMS I IOACAL / CALL IOA TO FINISH DISPLAY OF BOTTOM LINE undefined ^ undefined ^ 000531* 4400 553 000532* 0000 0 / USE DEFAULT IOA OUTPUT ROUTINE 554 000533* 0335 LINSTE / RESTORE CURSOR ATTRIBUTES 555 556 000534* 1170 LINSAM, TAD LINFLG / GET STATUS DISPLAY MODE FLAG 557 000535* 7640 SZA CLA / CHECK FOR DISPLAY ALL MODE 558 000536* 5350 JMP LINXIT / NOT ZERO, MUST BE ALL DONE 559 560 TAD I (MUBUF+MNSTAT) / PICK UP NUMBER OF STATUS LINES undefined ^ undefined ^ undefined ^ undefined ^ 000537* 1776 561 000540* 1363 TAD LINM3 / DECREMENT COUNT OF NUMBER OF LINES 562 000541* 7700 SMA CLA / CHECK FOR ONLY ONE TOP LINE 563 000542* 4770 JMS LINBAR / NO, GO PUT UP GRAPHICS LINE 564 565 JMS I IOACAL / CALL IOA TO SET UP SCROLL AREA AND MODE undefined ^ undefined ^ 000543* 4400 566 000544* 0000 0 / USE DEFAULT IOA DISPLAY ROUTINE 567 000545* 0337 LINSTF / CONTROL STRING TO SET AREA AND MODE /C224 568 MNLANG+MUBUF / POINTER TO LANGUAGE WORD /A224 undefined ^ undefined ^ 000546* 0000 569 000547* 0347 LINSTG / SET SCROLL AREA, RELITIVE MODE /C224 570 571 LINXIT, TAD I (MUBUF+MNSTAT) / PICK UP NUMBER OF STATUS LINES undefined ^ undefined ^ undefined ^ undefined ^ 000550* 1776 572 000551* 7041 CIA / NEGATE THE VALUE FOR A SUBTRACT 573 000552* 1373 TAD (NPTRS) / PICK UP VALUE FOR MAXIMUM SCREEN LINES 574 CDFEDT / CHANGE TO EDIT FIELD undefined ^ 000553* 0000 575 000554* 3772 DCA I (SCRNLN) / STORE NUMBER OF LINES IN SCROLL AREA 576 000555* 0000 CDFMYF / RESET BACK TO THIS FIELD 577 578 000556* 5600 JMP I LINDSP / RETURN TO CALLER 579 580 000557* 0000 LINREV, 0 / POINTER TO REVERSE VIDEO STRING 581 000560* 0000 LINSIZ, 0 / LOCATION FOR CURRENT TEXT SIZE 582 583 000561* 7777 LINM1, -1 / VALUE TO CHECK FOR TOP LINE 584 000562* 7776 LINM2, -2 / VALUE TO CHECK FOR BOTTOM LINE 585 000563* 7775 LINM3, -3 / VALUE TO CHECK FOR SCREEN RESET 586 587 X=. / INDICATE FIRST FREE LOCATION ON PAGE 588 /-------------------- 589 000570* 1200 PAGE 000571* 5551 000572* 0176 000573* 0030 000574* 1213 000575* 0642 000576* 0000 000577* 0250 590 591 DSKBLK=.-SWPBEG%400+DLSTAT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ undefined ^ 592 593 TRANTP=. / TOP OF TRANSLATIONS /A258 594 595 000600* 4130 LINST1, TEXT '!X^P!A^D !Y' / CONTROL STRING FOR COLUMN NUMBER /C235 000601* 3620 000602* 4101 000603* 3604 000604* 4041 000605* 3100 596 597 000606* 4133 LINST2, TEXT '![[?6L![[2&J![[R' / SEQUENCES DESCRIBED BELOW /C235 000607* 3377 000610* 6614 000611* 4133 000612* 3362 000613* 4612 000614* 4133 000615* 3322 000616* 0000 598 / ESC [ ? 6 l / SET ABSOLUTE ADDRESSING MODE /C235 599 / ESC [ 2 J / ERASE ENTIRE SCREEN /C235 600 / ESC [ r / CLEAR SCROLLING REGION /C235 601 602 LINST3, 603 IFDEF ENGLSH < 604 TEXT '^P&DOCUMENT: (!D.!D) !A '; *.-1 605 TEXT '^P&BLOCKS USED: !D '; *.-1 606 TEXT '^P&BLOCKS REMAINING: !D '; *.-1 607 TEXT '^P&TEXT SIZE: !D LINES' 608 > 609 IFDEF V30NOR < 610 TEXT '^P&DOKUMENT: (!D.!D) !A '; *.-1 611 TEXT '^P&BRUKTE BLKR: !D '; *.-1 612 TEXT '^P&LEDIGE BLKR: !D '; *.-1 613 TEXT '^P&TEKSTSTR.: !D LINJER' 614 > 615 IFDEF V30SWE < 616 TEXT '^P&DOKUMENT: (!D.!D) !A '; *.-1 617 TEXT '^P&ANV\DNDA BLK: !D '; *.-1 618 TEXT '^P&LEDIGA BLK: !D '; *.-1 619 TEXT '^P&TEXTSTORLEK.: !D RADER' 620 > 621 IFDEF SPANISH < /NB: NEEDS XLATING/A255 622 TEXT '^P&DOC.: (!D.!D) !A '; *.-1 623 TEXT '^P&BLQS USADOS: !D'; *.-1 624 TEXT '^P&BLQS SIN USAR: !D'; *.-1 625 TEXT '^P&TATA\QO DEL TEXTOS: !D L\MNS' 626 > 627 IFDEF ITALIAN < 628 TEXT '^P&DOCUMENTO: (!D.!D) !A '; *.-1 629 TEXT '^P&BLOCCHI USATI: !D '; *.-1 630 TEXT '^P&BLOCCHI LIBERI: !D '; *.-1 631 TEXT '^P&DIMENSIONE: !D RIGHE' 632 > 633 IFDEF DUTCH < 634 TEXT '^P&DOC: (!D.!D) !A'; *.-1 635 TEXT '^P&GEBRUIKTE BLOKKEN: !D '; *.-1 636 TEXT '^P&VRIJE BLOKKEN: !D '; *.-1 637 TEXT '^P®ELS / PAGINA: !D LINES' 638 > 639 640 641 LINST4, 642 IFNDEF V30NOR < 643 IFNDEF V30SWE < 644 000617* 4130 TEXT '!X^P!A^S^S^S^S^S^P&DOC: (!D.!D) !A!Y' /C235 000620* 3620 000621* 4101 000622* 3623 000623* 3623 000624* 3623 000625* 3623 000626* 3623 000627* 3620 000630* 4604 000631* 1703 000632* 7240 000633* 5041 000634* 0456 000635* 4104 000636* 5140 000637* 4101 000640* 4131 000641* 0000 645 > 646 > 647 648 IFDEF V30NOR < 649 TEXT '!X^P!A^S^S^S^S^S^P&DOK: (!D.!D) !A!Y' /C235 650 > 651 652 IFDEF V30SWE < 653 TEXT '!X^P!A^S^S^S^S^S^P&DOK: (!D.!D) !A!Y' /C235 654 > 655 656 LINST5, ESC; "[; "7; "m / SELECT REVERSE VIDEO undefined ^ 000642* 0000 000643* 0333 000644* 0267 000645* 0355 657 000646* 0000 0 / ASCII STRING TERMINATOR 658 659 000647* 4040 LINST6, TEXT ' ' / GRAPHICS BAR CHARACTER 000650* 4040 000651* 4040 000652* 4040 000653* 4040 000654* 4040 000655* 4040 000656* 4040 000657* 4040 000660* 4040 000661* 4040 000662* 4040 000663* 4040 000664* 4000 660 661 000665* 4130 LINST7, TEXT '!X^P!A&P: ' / SAVE CURSOR, SET ABSOLUTE, DISPLAY PAGE /C235 000666* 3620 000667* 4101 000670* 4620 000671* 7240 000672* 0000 662 663 000673* 4130 LINST8, TEXT '!X' / SAVE CURSOR, SET ABSOLUTE /C235 000674* 0000 664 665 000675* 4104 LINST9, TEXT '!D!3D' 000676* 4163 000677* 0400 666 667 000700* 4104 LINSTA, TEXT '!D' 000701* 0000 668 669 670 LINSTB, 671 IFDEF ENGLSH 672 IFDEF V30NOR 673 IFDEF V30SWE 674 IFDEF SPANISH /A255 675 IFDEF ITALIAN 676 IFDEF DUTCH 677 678 LINSTC, 679 IFDEF ENGLSH /C235 680 IFDEF V30NOR /C235 681 IFDEF V30SWE /C235 682 IFDEF SPANISH /A255 683 IFDEF ITALIAN /C235 684 IFDEF DUTCH /C235 685 686 IFDEF ENGLSH / LINE NUMBER NOT AVAILABLE /C235 687 IFDEF V30NOR / LINE NUMBER NOT AVAILABLE /C235 688 IFDEF V30SWE / LINE NUMBER NOT AVAILABLE /C235 689 IFDEF SPANISH / LINE NUMBER NOT AVAILABLE/A255 690 IFDEF DUTCH / LINE NUMBER NOT AVAILABLE /C235 691 692 X=. / INDICATE FIRST FREE LOCATION ON PAGE 693 XTRLIN=200-.-TRANTP 694 /-------------------- 695 PAGE 696 IFNZRO .-TRANTP-200 /A258 697 698 DSKBLK=.-SWPBEG%400+DLSTAT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ undefined ^ 699 700 701 /*************************************************************************** 702 /**** EDITOR HOOKS FOR STATUS LINE DISPLAY **** 703 /*************************************************************************** 704 705 / CHECK STATUS CHANGE CALLED FROM THE HALT TEST ROUTINE IN LP FIELD AND BY 706 / THE GET CHARACTER ROUTINE IN MGOVLY. 707 / 708 / THIS ROUTINE CHECKS TO SEE IF ANY OF THE DISPLAY 709 / LOCATIONS OF THE STATUS LINE HAVE CHANGED SINCE 710 / LAST CHECKED AND IF SO WILL DISPLAY THE NEW VALUES. 711 712 LINCHK, XX / CHECK FOR STATUS VALUE CHANGE undefined ^ 001000* 0000 713 001001* 1172 TAD LINDIF / PICK UP THE STATUS DIFFERENT FLAG 714 001002* 7650 SNA CLA / HAS THE TOP LINE OF STATUS CHANGED ? 715 001003* 5207 JMP LINCK1 / NO, GO UPDATE PRINTER STATUS AND TIME 716 717 AC0001 / SET UP TO DISPLAY THE TOP STATUS LINE undefined ^ 001004* 0000 718 001005* 3170 DCA LINFLG / STORE IN STATUS DISPLAY MODE FLAG 719 001006* 4777 JMS LINDSP / GO DISPLAY A NEW TOP STATUS LINE 720 721 001007* 1171 LINCK1, TAD LINRUL / PICK UP THE RULER DETECTED FLAG 722 001010* 7650 SNA CLA / HAS A RULER BEEN DETECTED ? 723 001011* 5600 JMP I LINCHK / NO, GO RETURN TO CALLER 724 725 AC0002 / YES, DISPLAY THE BOTTOM STATUS LINE undefined ^ 001012* 0000 726 001013* 3170 DCA LINFLG / STORE IN STATUS DISPLAY MODE FLAG 727 001014* 4777 JMS LINDSP / GO DISPLAY THE NEW RULER 728 001015* 5600 JMP I LINCHK / RETURN TO CALLER 729 730 /*************************************************************************** 731 /**** HANDLE SCROLL DOWN AND SCROLL UP EVENTS FOR STATUS LINE DISPLAY **** 732 /*************************************************************************** 733 734 LINSDN, XX / HANDLE SCROLL DOWN EVENT undefined ^ 001016* 0000 735 001017* 4304 JMS LINTST / GO CHECK FOR SPECIAL CHRACTER 736 001020* 5227 JMP LINDNP / NEW PAGE OR PAGE MARKER DETECTED 737 001021* 5244 JMP LINDNR / RULER DETECTED - CHECK FOR TOP OF DOCUMENT 738 001022* 5616 JMP I LINSDN / IGNORE LINE - RETURN TO CALLER 739 740 AC7777 / SET UP TO DECREMENT THE COUNT undefined ^ 001023* 0000 741 001024* 1175 TAD LINNUM / COMBINE WITH CURRENT LINE COUNT 742 001025* 3175 DCA LINNUM / STORE NEW LINE COUNT 743 001026* 5241 JMP LINDNX / DONE WITH LINE, GO SET STATUS CHANGED FLAG 744 745 LINDNP, AC7777 / SET UP TO DECREMENT THE COUNT undefined ^ 001027* 0000 746 001030* 1173 TAD LINPGL / COMBINE WITH CURRENT LOW ORDER PAGE COUNT 747 001031* 7500 SMA / DID WE GO NEGATIVE ? 748 001032* 5237 JMP LINDNL / NO, THEN GO STORE NEW LOW ORDER PAGE NUMBER 749 750 AC7777 / SET UP TO DECREMENT THE COUNT undefined ^ 001033* 0000 751 001034* 1174 TAD LINPGH / COMBINE WITH CURRENT HIGH ORDER PAGE COUNT 752 001035* 3174 DCA LINPGH / STORE NEW HIGH ORDER PAGE COUNT 753 001036* 1376 TAD (1747) / PICK UP RESET VALUE OF 999 754 001037* 3173 LINDNL, DCA LINPGL / STORE NEW LOW ORDER PAGE COUNT 755 756 001040* 3175 LINDNS, DCA LINNUM / MAKE LINE NUMBER "UNKNOWN" 757 LINDNX, AC0001 / DONE WITH PAGE undefined ^ 001041* 0000 758 001042* 3172 DCA LINDIF / SET STATUS CHANGED FLAG 759 001043* 5616 JMP I LINSDN / RETURN TO CALLER 760 761 LINDNR, CDFEDT / CHANGE TO EDITOR DATA FIELD undefined ^ 001044* 0000 762 001045* 1775 TAD I (PTRBLK+NPTRS-3)/ GET POINTER TO THIRD FROM LAST LINE 763 001046* 0000 CDFMYF / RESET BACK TO THIS FIELD 764 001047* 7640 SZA CLA / IS THIS THE TOP OF DOCUMENT 765 001050* 5616 JMP I LINSDN / NO, IGNORE RULER - RETURN TO CALLER 766 AC0001 / YES, SET UP TO INITIALIZE THE COUNT undefined ^ 001051* 0000 767 001052* 5240 JMP LINDNS / GO SET LINE NUMBER TO FIRST LINE 768 769 LINSUP, XX / HANDLE SCROLL UP EVENT undefined ^ 001053* 0000 770 001054* 4304 JMS LINTST / GO CHECK FOR SPECIAL CHRACTER 771 001055* 5264 JMP LINUPP / NEW PAGE OR PAGE MARKER DETECTED 772 001056* 5653 JMP I LINSUP / IGNORE RULER - RETURN TO CALLER 773 001057* 5653 JMP I LINSUP / IGNORE LINE - RETURN TO CALLER 774 775 AC0001 / SET UP TO INCREMENT THE COUNT undefined ^ 001060* 0000 776 001061* 1175 TAD LINNUM / COMBINE WITH CURRENT LINE COUNT 777 001062* 3175 DCA LINNUM / STORE NEW LINE COUNT 778 001063* 5301 JMP LINUPX / DONE WITH LINE, GO SET STATUS CHANGED FLAG 779 780 001064* 1173 LINUPP, TAD LINPGL / PICK UP CURRENT LOW ORDER PAGE NUMBER 781 001065* 1374 TAD (-1747) / COMBINE WITH NEGATIVE 999 PAGE COUNT 782 001066* 7710 SPA CLA / ARE WE AT LOW ORDER PAGE NUMBER 999 783 001067* 5274 JMP LINUPL / GO INCREMENT LOW ORDER PAGE COUNT 784 785 AC0001 / SET UP TO INCREMENT THE COUNT undefined ^ 001070* 0000 786 001071* 1174 TAD LINPGH / COMBINE WITH CURRENT HIGH ORDER PAGE COUNT 787 001072* 3174 DCA LINPGH / STORE NEW HIGH ORDER PAGE COUNT 788 001073* 5276 JMP LINUPH / GO CLEAR LOW ORDER PAGE COUNT 789 790 LINUPL, AC0001 / SET UP TO INCREMENT THE COUNT undefined ^ 001074* 0000 791 001075* 1173 TAD LINPGL / COMBINE WITH CURRENT LOW ORDER PAGE COUNT 792 001076* 3173 LINUPH, DCA LINPGL / STORE NEW LOW ORDER PAGE COUNT 793 794 AC0001 / SET UP TO INITIALIZE THE COUNT undefined ^ 001077* 0000 795 001100* 3175 DCA LINNUM / SET LINE NUMBER TO FIRST LINE 796 LINUPX, AC0001 / DONE WITH PAGE undefined ^ 001101* 0000 797 001102* 3172 DCA LINDIF / SET STATUS CHANGED FLAG 798 001103* 5653 JMP I LINSUP / RETURN TO CALLER 799 800 801 /*************************************************************************** 802 /**** SUBROUTINE TO TEST VALUES FOR SPECIAL CHARACTERS **** 803 /*************************************************************************** 804 805 / THIS SUBROUTINE IS THE HEART OF THE STATUS LINE PAGE AND LINE NUMBER CHECK. 806 / IT WORKS ON THE BASIS OF DETERMINING WHAT CHARACTER IS AT THE START OF THE 807 / NEXT TO LAST LINE ON THE SCREEN BEFORE A SCROLL DOWN OPERATION AND AFTER A 808 / SCROLL UP OPERATION. 809 / 810 / THIS ROUTINE WILL GENERATE MULTIPLE EXIT RETURNS BASED ON THE VALUE OF THE 811 / CHARACTER AT THE START OF THE NEXT TO LAST LINE AND THE VALUE OF THE CONTROL 812 / BLOCK FLAG AND ON THE VALUE OF THE LINE NUMBER AS FOLLOWS: 813 814 / THE FIRST RETURN WILL BE THE DETECTION OF A VALID PAGE INDICATOR 815 / THIS MEANS THAT IT IS TIME TO INCREMENT OR DECREMENT THE PAGE NUMBER 816 / 817 / THE SECOND RETURN WILL INDICATE THAT A START OF RULER HAS BEEN FOUND 818 / 819 / THE THIRD RETURN WILL INDICATE THAT THE CURRENT LINE SHOULD BE 820 / IGNORED AND NOT COUNTED 821 / 822 / THE FOURTH RETURN WILL INDICATE THAT THE LINE IS A PRINTABLE LINE AND 823 / THAT THE LINE NUMBER SHOULD BE INCREMENTED OR DECREMENTED 824 825 826 LINTST, XX / TEST FOR SPECIAL CHARACTERS undefined ^ 001104* 0000 827 CDFEDT / CHANGE TO EDITOR DATA FIELD undefined ^ 001105* 0000 828 001106* 1773 TAD I (PTRBLK+NPTRS-2)/ POINTER TO START OF NEXT TO LAST LINE 829 DCA T1 / STORE POINTER INTO BUFFER FIELD undefined ^ undefined ^ 001107* 3000 830 831 CDFBUF / CHANGE TO BUFFER FIELD undefined ^ 001110* 0000 832 TAD I T1 / GET CHARACTER TO BE TESTED undefined ^ undefined ^ 001111* 1400 833 001112* 0000 CDFMYF / RESET BACK TO THIS FIELD 834 835 TAD (-ECPMRK) / CHECK FOR A PAGE MARKER undefined ^ undefined ^ 001113* 1372 836 001114* 7440 SZA / SKIP IF THERE IS A MATCH 837 TAD (ECPMRK-ECNWPG) / CHECK FOR A NEW PAGE undefined ^ undefined ^ undefined ^ undefined ^ 001115* 1372 838 001116* 7450 SNA / SKIP IF THERE IS NO MATCH 839 001117* 5704 JMP I LINTST / PAGE DETECTED, TAKE FIRST RETURN 840 841 001120* 2304 ISZ LINTST / BUMP RETURN UP TO NEXT EXIT POINT 842 TAD (ECNWPG-ECSTRL) / CHECK FOR A START OF RULLER undefined ^ undefined ^ undefined ^ undefined ^ 001121* 1372 843 001122* 7440 SZA / IS THIS THE START OF A RULER ? 844 001123* 5327 JMP LINTS1 / NO, CONTINUE WITH THE TEST 845 AC0001 / YES, THIS IS A RULER undefined ^ 001124* 0000 846 001125* 3171 DCA LINRUL / SET RULER DETECTED FLAG 847 001126* 5704 JMP I LINTST / RULER DETECTED, TAKE SECOND RETURN 848 849 001127* 2304 LINTS1, ISZ LINTST / BUMP RETURN UP TO NEXT EXIT POINT 850 TAD (ECSTRL-ECPCT1) / CHECK FOR A START CONTROL undefined ^ undefined ^ undefined ^ undefined ^ 001130* 1372 851 001131* 7440 SZA / SKIP IF THERE IS A MATCH 852 TAD (ECPCT1-ECPCT2) / CHECK FOR AN END CONTROL undefined ^ undefined ^ undefined ^ undefined ^ 001132* 1372 853 001133* 7640 SZA CLA / SKIP IF THERE IS A MATCH 854 001134* 1175 TAD LINNUM / CHECK IF LINE NUMBER IS DEFINED 855 001135* 7650 SNA CLA / SKIP IF CONDITIONS VALID SO FAR 856 001136* 5704 JMP I LINTST / IGNORE LINE, TAKE THIRD RETURN 857 858 CDFEDT / CHANGE TO EDITOR DATA FIELD undefined ^ 001137* 0000 859 001140* 1771 TAD I (PCTLFL) / PICK UP VALUE FOR CONTROL BLOCK FLAG 860 001141* 0000 CDFMYF / RESET BACK TO THIS FIELD 861 001142* 7650 SNA CLA / IF SET THEN TAKE IGNORE LINE RETURN 862 001143* 2304 ISZ LINTST / BUMP RETURN UP TO COUNT THE LINE RETURN 863 001144* 5704 JMP I LINTST / RETURN BACK TO CALLER 864 865 / Moved here for space reasons 866 867 IFDEF ITALIAN < LINSTD, TEXT '&N/&D &C:!Y'>/ LINE NUMBER NOT AVAILABLE /C235 868 869 X=. / INDICATE FIRST FREE LOCATION ON PAGE 870 /-------------------- 871 001171* 0142 PAGE 001172* 0000 001173* 6247 001174* 6031 001175* 6246 001176* 1747 001177* 0400 872 873 DSKBLK=.-SWPBEG%400+DLSTAT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ undefined ^ 874 875 876 LINBAR, XX / ROUTINE TO PUT UP THE SECOND STATUS LINE undefined ^ 001200* 0000 877 JMS I IOACAL / CALL IOA TO DISPLAY GRAPHICS LINE undefined ^ undefined ^ 001201* 4400 878 001202* 0000 0 / USE DEFAULT IOA DISPLAY ROUTINE 879 001203* 1254 LINSTX / DISPLAY GRAPHICS LINE /C235 880 001204* 0100 100 / SCREEN POSITION FOR GRAPHICS LINE 881 001205* 1266 LINSTY / DISPLAY 27 GRAPHIC LINE CHARACTERS /C235 882 001206* 1266 LINSTY / DISPLAY 27 GRAPHIC LINE CHARACTERS /C235 883 001207* 1266 LINSTY / DISPLAY 27 GRAPHIC LINE CHARACTERS /C235 884 001210* 1266 LINSTY / DISPLAY 27 GRAPHIC LINE CHARACTERS /C235 885 001211* 1266 LINSTY / DISPLAY 27 GRAPHIC LINE CHARACTERS /C235 886 001212* 5600 JMP I LINBAR / ALL DONE, RETURN TO CALLER 887 888 889 / 890 / This routine displays OVRSTK if the user toggles the /A254 891 / Insert-Overstrike Key into Overstrike /A254 892 / 893 894 INOVDP, XX /A254 undefined ^ 001213* 0000 895 001214* 7200 CLA / Just in case /A254 896 CDFEDT / Point to Edit Field /A254 undefined ^ 001215* 0000 897 001216* 1777 TAD I (INSOVF) / Get Insert-Overstrike Flag /A254 898 001217* 0000 CDFMYF / Point back here /A254 899 001220* 7650 SNA CLA / 0 for Ins , 1 for Over /A254 900 001221* 5227 JMP INCLR / Clear screen /A254 901 INDPOV, JMS I IOACAL / Call display /A254 undefined ^ undefined ^ 001222* 4400 902 001223* 0000 0 / default /A254 903 001224* 1241 OVTOVS / Text for OVRSTK /A254 904 001225* 0031 31 / Col Pos /A254 905 001226* 5613 JMP I INOVDP / Bi Bi /A254 906 INCLR, JMS I IOACAL / Call display /A254 undefined ^ undefined ^ 001227* 4400 907 001230* 0000 0 / default /A254 908 001231* 1234 OVTCLR / Clear message /A254 909 001232* 0031 31 / Col Pos /A254 910 001233* 5613 JMP I INOVDP / Bi Bi /A254 911 912 913 001234* 3620 OVTCLR, TEXT '^P ' /A254 001235* 4040 001236* 4040 001237* 4040 001240* 0000 914 001241* 3620 OVTOVS, TEXT '^P![[1M&OVRSTK![[22M' /A254 001242* 4133 001243* 3361 001244* 1546 001245* 1726 001246* 2223 001247* 2413 001250* 4133 001251* 3362 001252* 6215 001253* 0000 915 916 917 001254* 3620 LINSTX, TEXT '^P!CN^S^S^S^S^S!CO' / SEQUENCE DESCRIBED BELOW /C235 001255* 4103 001256* 1636 001257* 2336 001260* 2336 001261* 2336 001262* 2336 001263* 2341 001264* 0317 001265* 0000 918 / ESC ( 0 / SELECT GRAPHICS CHARACTER SET /C235 919 920 001266* 2121 LINSTY, TEXT 'QQQQQQQQQQQQQQQQQQQQQQQQQQQ' / GRAPHICS LINE CHARACTER /C235 001267* 2121 001270* 2121 001271* 2121 001272* 2121 001273* 2121 001274* 2121 001275* 2121 001276* 2121 001277* 2121 001300* 2121 001301* 2121 001302* 2121 001303* 2100 921 922 923 X=. / INDICATE FIRST FREE LOCATION ON PAGE 924 /-------------------- 925 001377* 4357 PAGE 926 927 DSKBLK=.-SWPBEG%400+DLSTAT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ undefined ^ 928 929 930 931 / /A207 932 /++ /A207 933 / CALSWAP CALL_A_ROUTINE IN EDITOR SWAP AREA /A207 934 / /A207 935 /FUNTIONAL DESCRIPTION: CALSWAP /A207 936 / /A207 937 / THIS ROUTINE CAN BE USED TO CALL ANY SUBROUTINE IN THE EDITOR SWAP /A207 938 / AREA FROM ANY FIELD IN THE SYSTEM AS LONG AS THE EDITOR SWAP AREA /A207 939 / SUBROUTINE MAKES ONLY A NORMAL OR SKIP RETURN. /A207 940 / /A207 941 /CALLING SEQUENCE: CIFMNU (DF = CALLER FIELD) /A207 942 / JMS CALSWAP /A207 943 / CALLED ROUTINE RESIDING IN EDITOR SWAP AREA /A207 944 / DATA FIELD TO SET FOR CALLED ROUTINE /A207 945 / /A207 946 /INPUT PARAMETERS: AC = VALUE (IF ANY) NEEDED FOR CALLED ROUTINE /A207 947 / /A207 948 /IMPLICIT INPUT: CIDF0, CALSW1, T1, CALSWAP /A207 949 / /A207 950 /OUTPUT PARAMETERS: AC = OUTPUT OF CALLED ROUTINE /A207 951 / MQ = OUTPUT OF CALLED ROUTINE /A207 952 / DATA AND INSTRUCTION FIELD = CALLING FIELD /A207 953 / /A207 954 /IMPLICIT OUTPUT: CALSW1, T1, CALSW2 /A207 955 / /A207 956 /COMPLETION CODE: NONE /A207 957 / /A207 958 /SIDE EFFECTS: 1) CALSWAP USES T1 /A207 959 / /A207 960 /-- /A207 961 / /A207 962 CALSWAP,XX / CALL_A_ROUTINE IN EDITOR SWAP AREA /A207 undefined ^ 001400* 0000 963 001401* 7421 MQL / HOLD VALUE IN AC /A207 964 001402* 6214 RDF / SET UP RETURN CIF CDF INSTRUCTION /A207 965 001403* 1377 TAD (CDF CIF 0) /A207 966 001404* 3220 DCA CALSW1 / SAVE INSTRUCTION /A207 967 001405* 1600 TAD I CALSWAP / GET ADDRESS OF ROUTINE TO JMS TOO /A207 968 DCA T1 / SAVE IT /A207 undefined ^ undefined ^ 001406* 3000 969 001407* 2200 ISZ CALSWAP / BUMP RETURN FOR NEXT PARAMETER /A207 970 001410* 1600 TAD I CALSWAP / GET CDF INSTRUCTION /A207 971 001411* 3213 DCA CALSW2 / SAVE IT /A207 972 001412* 2200 ISZ CALSWAP / BUMP RETURN /A207 973 001413* 0000 CALSW2, .-. / HOLDS CIF CDF INSTRUCTION /A207 974 001414* 7521 SWP / RESTORE TO AC CALLING VALUE /A207 975 JMS I T1 / JMS TO ROUTINE SPECIFIED AT CALLER+1 /A207 undefined ^ undefined ^ 001415* 4400 976 001416* 7410 SKP / NONSKIP RETURN /A207 977 001417* 2200 ISZ CALSWAP / SKIP RETURN - BUMP RETURN POINTER /A207 978 001420* 0000 CALSW1, .-. / RETURN CIF CDF INSTRUCTION PLACED HERE/A207 979 001421* 5600 JMP I CALSWAP / RETURN TO CALLER /A207 980 / /A207 981 / /A207 982 / /A207 983 984 / EFSCLU SCROLL SCREEN UP /A207 985 / /A207 986 987 EFSCLU, XX /A207 undefined ^ 001422* 0000 988 CDFMNU /A207 undefined ^ 001423* 0000 989 CIFEDT /A207 undefined ^ 001424* 0000 990 001425* 4776 JMS I (FMSWAP) /A207 991 001426* 3600 SCRLUP /A207 992 CDFBUF /A207 undefined ^ 001427* 0000 993 CDFEDT /A207 undefined ^ 001430* 0000 994 001431* 5622 JMP I EFSCLU /A207 995 996 / EFSECO CALL SCECHO IN EDITOR FIELD /A207 997 / /A207 998 999 EFSECO, XX /A207 undefined ^ 001432* 0000 1000 CDFMNU /A207 undefined ^ 001433* 0000 1001 CIFEDT /A207 undefined ^ 001434* 0000 1002 001435* 4776 JMS I (FMSWAP) /A207 1003 001436* 2346 SCECHO /A207 1004 CDFEDT /A207 undefined ^ 001437* 0000 1005 CDFEDT /A207 undefined ^ 001440* 0000 1006 001441* 5632 JMP I EFSECO /A207 1007 1008 / EFINSR INSERT CHAR IN TEXT BUFFER /A207 1009 / /A207 1010 1011 EFINSR, XX / INSERT CHAR IN TEXT BUFFER /A207 undefined ^ 001442* 0000 1012 CDFMNU /A207 undefined ^ 001443* 0000 1013 CIFEDT /A207 undefined ^ 001444* 0000 1014 001445* 4776 JMS I (FMSWAP) /A207 1015 001446* 2000 INSERT /A207 1016 CDFBUF /A207 undefined ^ 001447* 0000 1017 CDFEDT /A207 undefined ^ 001450* 0000 1018 001451* 5642 JMP I EFINSR /A207 1019 1020 / EFSLMD SET LINE MODIFIED /A207 1021 / /A207 1022 1023 EFSLMD, XX / SET LINE MODIFIED /A207 undefined ^ 001452* 0000 1024 CDFMNU /A207 undefined ^ 001453* 0000 1025 CIFEDT /A207 undefined ^ 001454* 0000 1026 001455* 4776 JMS I (FMSWAP) /A207 1027 001456* 2255 SETLMD /A207 1028 CDFEDT /A207 undefined ^ 001457* 0000 1029 CDFEDT /A207 undefined ^ 001460* 0000 1030 001461* 5652 JMP I EFSLMD /A207 1031 1032 / EFBZZR RING THE KEYBOARD BELL /A207 1033 / /A207 1034 1035 EFBZZR, XX / RING THE BELL /A207 undefined ^ 001462* 0000 1036 CDFMNU /A207 undefined ^ 001463* 0000 1037 CIFEDT /A207 undefined ^ 001464* 0000 1038 001465* 4776 JMS I (FMSWAP) /A207 1039 001466* 0331 BUZZER /A207 1040 CDFEDT /A207 undefined ^ 001467* 0000 1041 CDFEDT /A207 undefined ^ 001470* 0000 1042 001471* 5662 JMP I EFBZZR /A207 1043 1044 / EFADSP ADVANCE ONE PRINT SPACE IN TEXT BUFFER RETURNING CHAR /A207 1045 / /A207 1046 1047 EFADSP, XX / CALL BKPSPC IN EDIT FIELD /A207 undefined ^ 001472* 0000 1048 CDFMNU /A207 undefined ^ 001473* 0000 1049 CIFEDT /A207 undefined ^ 001474* 0000 1050 001475* 4776 JMS I (FMSWAP) /A207 1051 001476* 1717 ESASPC / ROUTINE TO BE CALLED /A207 1052 CDFBUF / SET BUFFER FIELD /A207 undefined ^ 001477* 0000 1053 001500* 7410 SKP / NONSKIP RETURN /A207 1054 001501* 2272 ISZ EFADSP / SKIP RETURN /A207 1055 CDFEDT /A207 undefined ^ 001502* 0000 1056 001503* 5672 JMP I EFADSP / RETURN TO CALLER /A207 1057 1058 / EFBKSP BACKUP ONE PRINT SPACE IN TEXT BUFFER RETURNING CHAR /A207 1059 / /A207 1060 1061 EFBKSP, XX / CALL BKPSPC IN EDIT FIELD /A207 undefined ^ 001504* 0000 1062 CDFMNU /A207 undefined ^ 001505* 0000 1063 CIFEDT /A207 undefined ^ 001506* 0000 1064 001507* 4776 JMS I (FMSWAP) /A207 1065 001510* 1701 ESBSPC / ROUTINE TO BE CALLED /A207 1066 CDFBUF / SET BUFFER FIELD /A207 undefined ^ 001511* 0000 1067 001512* 7410 SKP / NONSKIP RETURN /A207 1068 001513* 2304 ISZ EFBKSP / SKIP RETURN /A207 1069 CDFEDT /A207 undefined ^ 001514* 0000 1070 001515* 5704 JMP I EFBKSP / RETURN TO CALLER /A207 1071 1072 / EFLDCH GET CURRENT CHAR FROM TEXT BUFFER /A207 1073 / /A207 1074 1075 EFLDCH, XX / CALL LODCHR IN EDT FIELD /A207 undefined ^ 001516* 0000 1076 CDFMNU /A207 undefined ^ 001517* 0000 1077 CIFEDT /A207 undefined ^ 001520* 0000 1078 001521* 4776 JMS I (FMSWAP) /A207 1079 001522* 4241 LODCHR / ROUTINE TO BE CALLED /A207 1080 CDFEDT / CALL WITH EDITOR DATA FIELD SET /A207 undefined ^ 001523* 0000 1081 001524* 7410 SKP / NONSKIP RETURN /A207 1082 001525* 2316 ISZ EFLDCH / SKIP RETURN /A207 1083 CDFEDT /A207 undefined ^ 001526* 0000 1084 001527* 5716 JMP I EFLDCH / RETURN TO CALLER /A207 1085 1086 / EFSSPT SET SPLIT SCREEN FLAG IF NECESSARY /A207 1087 / /A207 1088 1089 EFSSPT, XX / SET SCREEN NEEDS TO BE SET FLAG /A207 undefined ^ 001530* 0000 1090 CDFEDT / FROM MENU FIELD /A207 undefined ^ 001531* 0000 1091 /D226 TAD I (SPLTFL) / GET SLPIT FLAG /A207 1092 /D226 SNA /A207 1093 AC7777 / SET TO NEEDS SPLIT /A207 undefined ^ 001532* 0000 1094 001533* 3775 DCA I (SPLTFL) /A207 1095 /D226 CDFEDT /A207 1096 001534* 5730 JMP I EFSSPT /A207 1097 1098 / EFCKAL CHECK FOR PRINTING ASCII CHAR /A207 1099 / /A207 1100 1101 EFCKAL, XX / CHKALP IN MENU FIELD /A207 undefined ^ 001535* 0000 1102 001536* 7421 MQL / SAVE AC IN MQ /A207 1103 001537* 7501 MQA /A207 1104 AND P177 / STRIP BITS /A207 undefined ^ undefined ^ 001540* 0000 1105 TAD (-ECSPC) / GREATER THAN SPACE? /A207 undefined ^ undefined ^ 001541* 1374 1106 001542* 7540 SMA SZA /A207 1107 001543* 2335 ISZ EFCKAL / YES, OK CODE /A207 1108 001544* 7701 CLA MQA / RESTORE AC /A207 1109 CDFEDT /A207 undefined ^ 001545* 0000 1110 001546* 5735 JMP I EFCKAL / RETURN /A207 1111 1112 EFRSLN, XX /A208 undefined ^ 001547* 0000 1113 CDFMNU /A208 undefined ^ 001550* 0000 1114 CIFEDT /A208 undefined ^ 001551* 0000 1115 001552* 4776 JMS I (FMSWAP) /A208 1116 001553* 4457 RSTRLN /A208 1117 CDFEDT /A208 undefined ^ 001554* 0000 1118 001555* 5747 JMP I EFRSLN /A208 1119 1120 EFADPT, XX /A208 undefined ^ 001556* 0000 1121 CDFMNU /A208 undefined ^ 001557* 0000 1122 CIFEDT /A208 undefined ^ 001560* 0000 1123 001561* 4776 JMS I (FMSWAP) /A208 1124 001562* 1213 ESAPTR /A208 1125 CDFBUF /A208 undefined ^ 001563* 0000 1126 001564* 7410 SKP /A208 1127 001565* 2356 ISZ EFADPT /A208 1128 001566* 5756 JMP I EFADPT /A208 1129 1130 1131 X= . 1132 1133 001574* 0000 PAGE 001575* 2345 001576* 0251 001577* 6203 1134 1135 DSKBLK=.-SWPBEG%400+DLSTAT / DISK BLOCK WHERE PAGE IS LOADED /A207 undefined ^ undefined ^ 1136 1137 EFCKMR, XX / CHK RIGHT MARGIN /A207 undefined ^ 001600* 0000 1138 001601* 3343 DCA CHKMRF / CLEAR HYPHEN FLAG /A207 1139 CDFEDT /A207 undefined ^ 001602* 0000 1140 001603* 1777 TAD I (CURSOR) /A207 1141 001604* 1376 TAD (-COLLIM+1) / LIMIT TO SCREEN WIDTH /A207 1142 001605* 7500 SMA /A207 1143 001606* 5242 JMP CHKMR5 /A207 1144 001607* 1375 TAD (COLLIM-COLM81) /M219 1145 001610* 7640 SZA CLA /A207 1146 001611* 5221 JMP CHKMR1 /A207 1147 001612* 1774 TAD I (RGTMAR) /A207 1148 /D226 CLL / CLEAR LINK BEFORE CHECK /A226 1149 001613* 1373 TAD (-COLM80) /M219 1150 001614* 7700 SMA CLA /A207 1151 001615* 4772 JMS EFSSPT / SPLIT SCREEN IF APPROPRIATE /A207 1152 001616* 1771 TAD I (SPLTFL) /A207 1153 001617* 7650 SNA CLA /A207 1154 001620* 5242 JMP CHKMR5 /A207 1155 001621* 1770 CHKMR1, TAD I (LINMOD) /A207 1156 001622* 7650 SNA CLA /A207 1157 001623* 5341 JMP CHKMR9 / NO CHECK IF NO MOD FLAG /A207 1158 001624* 1777 TAD I (CURSOR) /A207 1159 001625* 7041 CIA /A207 1160 001626* 1774 TAD I (RGTMAR) / LIMIT TO RIGHT MARGIN /A207 1161 001627* 7700 SMA CLA /A207 1162 001630* 5341 JMP CHKMR9 / RETURN IF OK /A207 1163 001631* 4767 JMS EFLDCH /JMS LODCHR /A207 1164 001632* 5341 JMP CHKMR9 /A207 1165 AND P177 / OR IF ONLY BLANKS OUTSIDE MARGIN /A207 undefined ^ undefined ^ 001633* 0000 1166 TAD (-ECSPC) /A207 undefined ^ undefined ^ 001634* 1366 1167 001635* 7450 SNA /A207 1168 001636* 5341 JMP CHKMR9 /A207 1169 TAD (ECSPC-ECTAB) /A207 undefined ^ undefined ^ undefined ^ undefined ^ 001637* 1366 1170 001640* 7650 SNA CLA /A207 1171 001641* 5314 JMP CHKMR4 / DO NOW IF TAB /A207 1172 001642* 7200 CHKMR5, CLA /A207 1173 001643* 1777 TAD I (CURSOR) /A207 1174 001644* 7041 CIA /A207 1175 001645* 3345 DCA CHKMRT / SET MOVE LIMIT /A207 1176 001646* 4765 CHKMR2, JMS EFBKSP / BKPSPC /A207 1177 001647* 5277 JMP CHKMR3 / LOOK FOR BLANK /A207 1178 001650* 4764 JMS EFCKAL / JMS CHKALP /A207 1179 001651* 5763 JMP CHKMR6 / CHECK FOR HYPHEN POINT /A207 1180 001652* 0362 AND (7177) / MASK OUT BOLD AND UNDERLINE BITS /A207 1181 TAD (-ECPHYP) /A207 undefined ^ undefined ^ 001653* 1366 1182 001654* 7650 SNA CLA /A207 1183 001655* 5277 JMP CHKMR3 /A207 1184 001656* 7701 CLA MQA /A207 1185 001657* 0363 AND (2000) /A207 1186 001660* 7650 SNA CLA /A207 1187 001661* 5271 JMP CHKMR7 /A207 1188 001662* 1777 CHKM2A, TAD I (CURSOR) /M244 /A207 1189 001663* 1345 TAD CHKMRT /A207 1190 001664* 7650 SNA CLA /A207 1191 001665* 5271 JMP CHKMR7 / NOT TOO CLOSE /A207 1192 TAD (ECHYLN-ECWWLN) /A207 undefined ^ undefined ^ undefined ^ undefined ^ 001666* 1366 1193 001667* 3343 DCA CHKMRF / SET HYPHEN FLAG /A207 1194 001670* 5277 JMP CHKMR3 /A207 1195 1196 001671* 2345 CHKMR7, ISZ CHKMRT /A207 1197 001672* 5246 JMP CHKMR2 /A207 1198 AC7777 /A207 undefined ^ 001673* 0000 1199 001674* 3345 DCA CHKMRT / HERE IF O.W.L. /A207 1200 001675* 1777 TAD I (CURSOR) /A207 1201 001676* 1345 TAD CHKMRT /A207 1202 001677* 7040 CHKMR3, CMA /A207 1203 001700* 3344 DCA CHKMRS / -# TO SKIP BEFORE BREAKING /A207 1204 AC0001 /A207 undefined ^ 001701* 0000 1205 001702* 1777 TAD I (CURSOR) /A207 1206 001703* 1345 TAD CHKMRT /A207 1207 001704* 1344 TAD CHKMRS /A207 1208 001705* 3345 DCA CHKMRT / # TO ADVANCE AFTER BREAKING /A207 1209 001706* 4761 JMS EFADSP /ADVSPC /A207 1210 001707* 7000 NOP /A207 1211 001710* 7200 CLA / GO BACK TO WHERE WE WERE /A207 1212 001711* 2344 ISZ CHKMRS /A207 1213 001712* 5306 JMP .-4 /A207 1214 001713* 1345 TAD CHKMRT /A207 1215 001714* 7040 CHKMR4, CMA /A207 1216 001715* 3345 DCA CHKMRT / ...IN FORM FOR ISZ LOOP /A207 1217 001716* 1777 TAD I (CURSOR) /A207 1218 001717* 1345 TAD CHKMRT /A207 1219 001720* 7001 IAC /A207 1220 001721* 3777 DCA I (CURSOR) / FIX CURSOR /A207 1221 001722* 1777 TAD I (CURSOR) /A207 1222 001723* 7040 CMA /A207 1223 001724* 1760 TAD I (NWHMAR-NWRUL+CURUL) /A207 1224 001725* 7700 SMA CLA /A207 1225 001726* 4757 JMS EFBZZR /JMS BUZZER / BEEP ON VIOLATION /A207 1226 001727* 4756 JMS EFSLMD /SLNMOD /A207 1227 001730* 1343 TAD CHKMRF / GET HYPHEN FLAG /A207 1228 TAD (ECWWLN) / +NEW LINE CODE /A207 undefined ^ undefined ^ 001731* 1366 1229 001732* 4755 JMS EFINSR /JMS INSERT /A207 1230 001733* 4754 JMS EFSCLU /JMS SCRLUP /A207 1231 001734* 5336 JMP CHKMRX /A207 1232 1233 001735* 4753 JMS EFSECO /JMS SCECHO /A207 1234 001736* 2345 CHKMRX, ISZ CHKMRT /A207 1235 001737* 5335 JMP .-2 / GET BACK TO ORIGINAL POSITION /A207 1236 001740* 7410 SKP /A207 1237 001741* 2200 CHKMR9, ISZ EFCKMR / TAKE SKIP RETURN IF NO WRAPPING DONE /A207 1238 001742* 5600 JMP I EFCKMR / THEN RETURN TO CALLER /A207 1239 1240 001743* 0000 CHKMRF, 0 /A207 1241 001744* 0000 CHKMRS, 0 /A207 1242 001745* 0000 CHKMRT, 0 /A207 1243 1244 X= . 1245 001753* 1432 PAGE 001754* 1422 001755* 1442 001756* 1452 001757* 1462 001760* 6532 001761* 1472 001762* 7177 001763* 2000 001764* 1535 001765* 1504 001766* 0000 001767* 1516 001770* 0151 001771* 2345 001772* 1530 001773* 7661 001774* 0160 001775* 0240 001776* 7421 001777* 0136 1246 1247 DSKBLK=.-SWPBEG%400+DLSTAT / DISK BLOCK WHERE PAGE IS LOADED /A207 undefined ^ undefined ^ 1248 1249 / /A207 1250 / THIS ROUTINE BELONGS WITH THE CHKMAR ROUTINE, IF ANY ROOM EVER /A207 1251 / SHOWS UP ON THAT PAGE, THIS SHOULD BE MOVED WITH IT. /A207 1252 / /A207 1253 1254 002000* 0377 CHKMR6, AND (7177) / ELIM BOLD-UNDL BITS /A207 1255 TAD (-ECSPC) / HARD SPACE? /A207 undefined ^ undefined ^ 002001* 1376 1256 002002* 7450 SNA /M199/A207 1257 002003* 5775 JMP CHKMR3 / PROCESS SPACE /A207 1258 TAD (ECSPC-ECTAB) / TAB STOPPER? /A199/A207 undefined ^ undefined ^ undefined ^ undefined ^ 002004* 1376 1259 002005* 7450 SNA /M244 /A207 1260 002006* 5214 JMP CHKMR8 / PROCESS TAB /A199/A207 1261 002007* 5774 JMP CHKTCC /M244 /A207 1262 1263 CHK8MR, CDFMNU / BACK TO MY FIELD /A199/A207 undefined ^ 002010* 0000 1264 AC7777 / BUMP POS COUNTER FOR THE SOFT SPACE/A199/A207 undefined ^ 002011* 0000 1265 002012* 1773 TAD CHKMRT / ... /A199/A207 1266 002013* 3773 DCA CHKMRT / ... /A199/A207 1267 002014* 4772 CHKMR8, JMS EFADSP / SCAN THE SOFT SPACES TO THE END/A199/A207 1268 002015* 7000 NOP / /A199/A207 1269 002016* 0377 AND (7177) / THE TAB STOP. /A199/A207 1270 TAD (-ECJSPC) / ... /A199/A207 undefined ^ undefined ^ 002017* 1376 1271 002020* 7650 SNA CLA / /A199/A207 1272 002021* 5210 JMP CHK8MR / JMP WHILE IN THE TAB. /A199/A207 1273 002022* 4771 JMS EFBKSP / BACK UP TO THE PRIOR CHAR. /A199/A207 1274 002023* 7000 NOP / /A199/A207 1275 002024* 7200 CLA / ... /A199/A207 1276 002025* 5775 JMP CHKMR3 / MERGE BELOW /A199/A207 1277 1278 1279 / EFCASE A SUBROUTINE TO PERFORM CASE STYLE CHECKING 1280 / 1281 / CALL: 1282 / 1283 / JMS EFCASE 1284 / TABLE-1 (ADDRESS OF THE TABLE TO COMPARE AGAINST) 1285 / (ON NO MATCH RETURNS HERE) 1286 / 1287 / AC ==> (VALUE TO COMPARE AGAINST) 1288 / 1289 / THE COMPARE TABLE HAS THE FORMAT OF: 1290 / 1291 / VALUE;ADDRESS / VALUE 1 AND ADDRESS TO JUMP TO ON MATCH 1292 / VALUE;ADDRESS / VALUE 2 AND ADDRESS TO JUMP TO ON MATCH 1293 / ... / ETC. 1294 / 0 / TABLE TERMINATOR 1295 / 1296 / NOTE: THIS SUBROUTINE DESTROYS THE CONTENTS OF AUTO INDEX 1297 / REGISTERS 6 AND 7 1298 / 1299 CASTMP=IX0 / AUTO INDEX REGISTER 6 undefined ^ 1300 X7=IX1 / AUTO INDEX REGISTER 7 undefined ^ 1301 1302 EFCASE, XX / ENTRY TO CASE SUBROUTINE undefined ^ 002026* 0000 1303 002027* 3000 DCA CASTMP / SAVE AC FOR COMPARES 1304 002030* 6214 RDF / SAVE DATA FIELD 1305 002031* 1370 TAD (CDF 0) / ADD TO CDF TO FIELD 0 1306 002032* 3253 DCA EFCS02 / AND PUT FOR RETURN 1307 CDFMNU / SET TO MYFIELD undefined ^ 002033* 0000 1308 002034* 1626 TAD I EFCASE / GET THE TABLE ADDRESS 1309 002035* 3000 DCA X7 / SAVE IN AUTO INDEX REGISTER 1310 1311 / 1312 / THIS IS THE CHECK LOOP FOR CASE MATCHING 1313 / 1314 002036* 1400 EFCS01, TAD I X7 / GET VALUE 1315 002037* 7450 SNA / TERMINATOR? 1316 002040* 5252 JMP EFCSEX / YES TAKE DEFAULT RETURN 1317 002041* 7041 CIA / NEGATE THE OPERAND 1318 002042* 1000 TAD CASTMP / COMPARE 1319 002043* 7650 SNA CLA / MATCHED? 1320 002044* 5247 JMP EFCSMT / YES! GO TO MATCH EXIT 1321 002045* 2000 ISZ X7 / SKIP JUMP VECTOR 1322 002046* 5236 JMP EFCS01 / TRY THE NEXT VALUE 1323 / 1324 / END OF LOOP 1325 / 1326 002047* 1400 EFCSMT, TAD I X7 / GET RETURN ADDRESS 1327 002050* 3226 DCA EFCASE / STORE FOR RETURN 1328 002051* 7410 SKP / DON'T INCREMENT 1329 002052* 2226 EFCSEX, ISZ EFCASE / SKIP TABLE VECTOR 1330 002053* 0000 EFCS02, CDFMYF / RESET DATA FIELD 1331 002054* 5626 JMP I EFCASE / AND GO HOME 1332 1333 EFLDNT, XX / INDENT TO LEFT MARGIN undefined ^ 002055* 0000 1334 002056* 4767 EFLDN1, JMS EFBKPT / CHECK LINE ENDING 1335 002057* 5307 JMP LINDN4 1336 CDFEDT undefined ^ 002060* 0000 1337 AND P177 / MASK MODE BITS undefined ^ undefined ^ 002061* 0000 1338 1339 TAD (-ECNWLN) / IS CHAR. = NEW LINE? undefined ^ undefined ^ 002062* 1376 1340 002063* 7640 SZA CLA / SKIP IF: SO 1341 002064* 5256 JMP EFLDN1 1342 002065* 1766 TAD I (CURPTR) / GET CHARACTER BACK 1343 DCA T1 undefined ^ undefined ^ 002066* 3000 1344 CDFBUF undefined ^ 002067* 0000 1345 TAD I T1 undefined ^ undefined ^ 002070* 1400 1346 1347 002071* 4226 JMS EFCASE / CHECK FOR EOL MARK MATCH 1348 002072* 2137 CTB001-1 / TABLE ADDRESS FOR CASE 1349 / 1350 / ECWWLN; LINDN5 / WORD WRAP EOL 1351 / ECHYLN; LINDN5 / HYPHENATION EOL 1352 / ECPGRF; LINDN3 / PARAGRAPH MARK 1353 / ECSLPT; LINDN8 / SELECT POINT 1354 / 0 / INDICATE END OF TABLE 1355 1356 002073* 5307 JMP LINDN4 / OR NORMAL (NOT SELECT ETC...) 1357 002074* 3337 LINDN8, DCA LINDN2 / FIND CURSOR, IF SELECT POINT 1358 002075* 4771 LINDN7, JMS EFBKSP 1359 002076* 5315 JMP LINDN6 1360 AND P177 undefined ^ undefined ^ 002077* 0000 1361 1362 002100* 4226 JMS EFCASE / COMPARE TO EOL MARKS 1363 002101* 2342 CTB002-1 / TABLE ADDRESS FOR CASE 1364 1365 / ECNWLN; LINDN6 / NEWLINE 1366 / ECNWPG; LINDN6 / NEW PAGE 1367 / ECNDRL; LINDN6 / END RULER 1368 / 0 / INDICATE END OF TABLE 1369 1370 002102* 2337 ISZ LINDN2 1371 002103* 5275 JMP LINDN7 1372 1373 LINDN3, CDFEDT undefined ^ 002104* 0000 1374 002105* 1765 TAD I (PGFMAR) / THEN SET PROPER INDENT 1375 002106* 5314 JMP LINDN9 1376 LINDN4, CDFEDT undefined ^ 002107* 0000 1377 002110* 1764 TAD I (LFTMAR) 1378 002111* 5314 JMP LINDN9 1379 LINDN5, CDFEDT undefined ^ 002112* 0000 1380 002113* 1763 TAD I (WRPMAR) 1381 002114* 3337 LINDN9, DCA LINDN2 / INTO LINDN2 1382 LINDN6, CDFEDT undefined ^ 002115* 0000 1383 002116* 1762 TAD I (LINE23) 1384 002117* 3766 DCA I (CURPTR) / RESTORE TEXT PTR 1385 002120* 1337 TAD LINDN2 / SEE IF INDENT COUNT IS BEYOND /A203 1386 002121* 7041 CIA / THE RIGHT MARGIN. /A203 1387 002122* 1761 TAD I (RGTMAR) / IF SO, THEN CHANGE INDENT TO /A203 1388 002123* 7710 SPA CLA / INDENT ONLY TO THE LEFT MARGIN. /A203 1389 002124* 5307 JMP LINDN4 / ... /A203 1390 LINDN1, CDFEDT undefined ^ 002125* 0000 1391 002126* 1337 TAD LINDN2 1392 002127* 7041 CIA 1393 002130* 1760 TAD I (CURSOR) 1394 002131* 7700 SMA CLA 1395 002132* 5655 JMP I EFLDNT / RETURN IF DONE 1396 TAD (ECJSPC) undefined ^ undefined ^ 002133* 1376 1397 002134* 4757 JMS EFINSR / ELSE INSERT JSPACE 1398 002135* 4756 JMS EFSECO / ...ECHO IT 1399 002136* 5325 JMP LINDN1 / AND LOOP FOR MORE 1400 002137* 0000 LINDN2, .-. 1401 1402 1403 CTB001, ECWWLN; LINDN5 / WORD WRAP EOL undefined ^ 002140* 0000 002141* 2112 1404 ECHYLN; LINDN5 / HYPHENATION EOL undefined ^ 002142* 0000 002143* 2112 1405 ECPGRF; LINDN3 / PARAGRAPH MARK undefined ^ 002144* 0000 002145* 2104 1406 ECSLPT; LINDN8 / SELECT POINT undefined ^ 002146* 0000 002147* 2074 1407 002150* 0000 0 / INDICATE END OF TABLE 1408 1409 X= . 1410 1411 002156* 1432 PAGE 002157* 1442 002160* 0136 002161* 0160 002162* 0171 002163* 0161 002164* 0157 002165* 0162 002166* 0135 002167* 2331 002170* 6201 002171* 1504 002172* 1472 002173* 1745 002174* 2544 002175* 1677 002176* 0000 002177* 7177 1412 1413 DSKBLK=.-SWPBEG%400+DLSTAT / DISK BLOCK WHERE PAGE IS LOADED /A208 undefined ^ undefined ^ 1414 1415 / /A208 1416 /FIND_NEXT_TAB_STOP: /A208 1417 / /A208 1418 /ENTER: AC = LINE POSITION /A208 1419 /EXIT: AC = TAB_CLASS /A208 1420 / MQ = POSITION OF TAB IN RULER /A208 1421 / /A208 1422 /PSEUDO CODE: /A208 1423 / SAVE POSITION IN LINE /A208 1424 / /A208 1425 / REPEAT /A208 1426 / INCREMENT SAVED_LINE_POSITION /A208 1427 / GET SAVED_LINE_POSITION + 1 /A208 1428 / CALL EFGTBY (GET RULER SETTING FOR THIS POSITION) /A208 1429 / CALL EFGTBY (SEE WHAT CLASS) /A208 1430 / UNTIL [RULER TAB DETECTED] /A208 1431 / /A208 1432 / SAVE TAB_CLASS IN MQ /A208 1433 / GET POSITION OF TAB IN RULER /A208 1434 / RETURN WITH TAB_CLASS IN AC, POSITION OF TAB IN MQ /A208 1435 / /A208 1436 FNTABSTOP, / FIND_NEXT_TAB_STOP /A208 1437 XX /A208 undefined ^ 002200* 0000 1438 002201* 3326 DCA FNTAB2 / SAVE POSITION ON LINE /A208 1439 002202* 2326 FNTAB1, ISZ FNTAB2 / INCREMENT POSITION /A208 1440 002203* 7000 NOP / ALLOW LEFT-MARGIN LOOKUP /A208 1441 AC0001 / GET SAVED_LINE_POSITION + 1 /A208 undefined ^ 002204* 0000 1442 002205* 1326 TAD FNTAB2 /A208 1443 002206* 4777 JMS EFGTBY /A208 1444 002207* 6335 CURUL / GET RULER SETTING OF THIS POSITON /A208 1445 002210* 4777 JMS EFGTBY /A208 1446 002211* 6177 TBSTR / GET CLASS OF SETTING /A208 1447 002212* 7450 SNA / SKIP IF: TAB SETTING /A208 1448 002213* 5202 JMP FNTAB1 / NEXT POSITION /A208 1449 002214* 7421 MQL / HOLD CLASS IN MQ /A208 1450 002215* 1326 TAD FNTAB2 / GET POSITION OF TAB_SETTING /A208 1451 002216* 7521 SWP / PUT POSITION IN MQ AND CLASS IN AC /A208 1452 002217* 5600 JMP I FNTABSTOP / RETURN /A208 1453 / /A208 1454 / /A208 1455 / /A208 1456 1457 / THIS ROUTINE ORIGIONALLY WAS SET UP TO REFRESH ONLY WHAT NEEDED TO BE /A208 1458 / REFRESHED. DUE TO THE HIGH NUMBER OF EXCEPTION CASES & THE LACK OF SPACE/A208 1459 / TO TEST FOR EACH EXCEPTION, THE ENTIRE LINE WILL BE REPAINTED WHENEVER A/A208 1460 / TAB CHARACTER IS SEEN. /A208 1461 / /A208 1462 EFTJST, XX / JUSTIFY NEXT TAB STOP /A208 undefined ^ 002220* 0000 1463 CDFEDT /A208 undefined ^ 002221* 0000 1464 002222* 1776 TAD I (RGTMAR) / GET RIGHT MARGIN /A208 1465 002223* 7041 CIA / NEGATE IT /A208 1466 002224* 1775 TAD I (CURSOR) / GET CURSOR POSITION /A208 1467 002225* 7700 SMA CLA / SKIP IF: CURSOR POSITIONED PREVIOUS /A208 1468 / TO THE RIGHT MARGIN /A208 1469 002226* 5620 JMP I EFTJST / NOTHING TO DO IF AT RIGHT MARGIN /A208 1470 002227* 1774 TAD I (CURPTR) / SAVE POINTER /A208 1471 002230* 3330 DCA TBECH3 /A208 1472 002231* 1775 TAD I (CURSOR) / INIT TAB SEARCH COUNTER /A208 1473 002232* 4200 JMS FNTABSTOP / JMS TO FIND_NEXT_TAB_STOP /A208 1474 / RETURN WITH AC = TAB_CLASS /A208 1475 / MQ = TAB_SET POSITION /A208 1476 / IN RULER /A208 1477 002233* 1373 TAD (-2) /A208 1478 002234* 3327 DCA TBECH2 / SAVE CLASS /A208 1479 002235* 7521 SWP / GET DISTANCE FROM SAVED CURSOR POSIT. /A208 1480 / TO THIS TAB STOP /A208 1481 002236* 7041 CIA / NEGATE IT /A208 1482 002237* 1775 TAD I (CURSOR) /A208 1483 002240* 3326 DCA TBECH1 /A208 1484 002241* 1327 TAD TBECH2 / TEST CLASS OF TAB /A208 1485 002242* 7710 SPA CLA / SKIP IF: NOT NORMAL TAB /A208 1486 002243* 5303 JMP TBECHB / JUMP IF NORMAL TAB /A208 1487 002244* 4772 TBECHC, JMS EFADSP /A208 1488 002245* 5303 JMP TBECHB / SEARCH FOR TERMINATOR /A208 1489 CDFEDT /A208 undefined ^ 002246* 0000 1490 TAD (-ECCMRK) / IGNORE MARKER /A208 undefined ^ undefined ^ 002247* 1371 1491 002250* 7650 SNA CLA /A208 1492 002251* 5244 JMP TBECHC / IGNORE MARKER. GET NEXT CHAR. /A208 1493 002252* 1327 TBECHX, TAD TBECH2 / TEST CLASS /A208 1494 002253* 7650 SNA CLA /A208 1495 002254* 5265 JMP TBECHD / JUMP IF RIGHT-ADJUSTED TAB /A208 1496 CDFEDT /A208 undefined ^ 002255* 0000 1497 002256* 1774 TAD I (CURPTR) / ELSE CHECK FOR DECIMAL TERMINATOR /A208 1498 DCA T1 /A208 undefined ^ undefined ^ 002257* 3000 1499 CDFBUF /A208 undefined ^ 002260* 0000 1500 TAD I T1 /A208 undefined ^ undefined ^ 002261* 1400 1501 AND P177 /A208 undefined ^ undefined ^ 002262* 0000 1502 1503 IFDEF PERDEC < /A208 1504 TAD (-".+200) /A208 1505 SZA /A208 1506 TAD (".-")) /A208 1507 > / END IFDEF PERDEC /A208 1508 1509 IFDEF COLDEC < /A208 1510 TAD (-":+200) /A208 1511 SZA /A208 1512 TAD (":-")) /A208 1513 > / END IFDEF COLDEC /A208 1514 1515 IFDEF COMDEC < /A208 1516 TAD (-",+200) /A208 1517 SZA /A208 1518 TAD (",-")) /A208 1519 > / END IFDEF COMDEC /A208 1520 1521 002263* 7650 SNA CLA /A208 1522 002264* 5303 JMP TBECHB / JUMP IF GOT ONE /A208 1523 TBECHD, CDFEDT /A208 undefined ^ 002265* 0000 1524 002266* 1774 TAD I (CURPTR) / CHECK FOR RIGHT-ADJUST TAB TERMINATOR /A208 1525 DCA T1 /A208 undefined ^ undefined ^ 002267* 3000 1526 CDFBUF /A208 undefined ^ 002270* 0000 1527 TAD I T1 /A208 undefined ^ undefined ^ 002271* 1400 1528 AND P177 / STRIP MODE BITS /A208 undefined ^ undefined ^ 002272* 0000 1529 TAD (-ECSTOV) / CHARACTER = "START_DEAD_KEY_SEQ."? /A208 undefined ^ undefined ^ 002273* 1371 1530 002274* 7440 SZA / SKIP IF: SO /A208 1531 TAD (ECSTOV-ECSPC) /A208 undefined ^ undefined ^ undefined ^ undefined ^ 002275* 1371 1532 002276* 7710 SPA CLA /A208 1533 002277* 5303 JMP TBECHB / JUMP IF GOT ONE /A208 1534 002300* 2326 ISZ TBECH1 /A208 1535 002301* 5244 JMP TBECHC / LOOP IF WE CAN /A208 1536 002302* 5307 JMP TBECHE / ELSE NOTHING TO DO /A208 1537 1538 002303* 1327 TBECHB, TAD TBECH2 / WAS THIS A DECIMAL TAB OR NORMAL TAB? /A208 1539 002304* 7640 SZA CLA / SKIP IF: NORMAL TAB /A208 1540 002305* 2326 ISZ TBECH1 / REDUCE DISTANCE CNT BY 1 FOR DECIMAL TAB/A208 1541 002306* 7000 NOP /A208 1542 1543 002307* 4770 TBECHE, JMS EFRSLN / SET REFRESH FLAGS FOR ENTIRE LINE. /A208 1544 TBECHF, CDFEDT /A208 undefined ^ 002310* 0000 1545 002311* 1330 TAD TBECH3 /A208 1546 002312* 3774 DCA I (CURPTR) / RESTORE PTR /A208 1547 002313* 1326 TAD TBECH1 / GET DISTANCE COUNT /A208 1548 002314* 7700 SMA CLA / SKIP IF: JUSTIFYING SPACES NEEDED /A208 1549 002315* 5620 JMP I EFTJST / RETURN IF NO SPACES NEEDED /A208 1550 002316* 4767 TBECHG, JMS EFADPT /A208 1551 002317* 7000 NOP / ELSE INSERT THEM /A208 1552 002320* 7200 CLA /A208 1553 TAD (ECJSPC) / GET "JUSTIFY_SPACE" CHARACTER /A208 undefined ^ undefined ^ 002321* 1371 1554 002322* 4766 JMS EFINSR / INSERT IT /A208 1555 002323* 2326 ISZ TBECH1 / BUMP COUNT /A208 1556 002324* 5316 JMP TBECHG / MORE 'JUSTIFY_SPACES" TO INSERT /A208 1557 002325* 5310 JMP TBECHF / RETURN AFTER RESTORING CURPTR /A208 1558 / /A208 1559 / TEMPS: /A208 1560 FNTAB2, / SAVED_LINE_POSITION (USED BY /A208 1561 / FNTABSTOP ROUTINE) /A208 1562 002326* 0000 TBECH1, .-. / LOADED WITH CURSOR POSITION /A208 1563 002327* 0000 TBECH2, .-. / LOADED WITH CLASS OF RULER SETTING /A208 1564 002330* 0000 TBECH3, .-. / LOADED WITH CURPTR /A208 1565 1566 / EFBKPT BACKUP CURPTR 1567 / 1568 / 1569 1570 EFBKPT, XX undefined ^ 002331* 0000 1571 CDFMNU undefined ^ 002332* 0000 1572 CIFEDT undefined ^ 002333* 0000 1573 002334* 4765 JMS I (FMSWAP) 1574 002335* 1250 ESBPTR 1575 CDFBUF undefined ^ 002336* 0000 1576 002337* 7410 SKP 1577 002340* 2331 ISZ EFBKPT 1578 CDFBUF undefined ^ 002341* 0000 1579 002342* 5731 JMP I EFBKPT 1580 1581 CTB002, ECNWLN; LINDN6 / NEWLINE undefined ^ 002343* 0000 002344* 2115 1582 ECNWPG; LINDN6 / NEW PAGE undefined ^ 002345* 0000 002346* 2115 1583 ECNDRL; LINDN6 / END RULER undefined ^ 002347* 0000 002350* 2115 1584 002351* 0000 0 / INDICATE END OF TABLE 1585 1586 X= . 1587 1588 002365* 0251 PAGE 002366* 1442 002367* 1556 002370* 1547 002371* 0000 002372* 1472 002373* 7776 002374* 0135 002375* 0136 002376* 0160 002377* 2400 1589 1590 DSKBLK=.-SWPBEG%400+DLSTAT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ undefined ^ 1591 1592 EFGTBY, XX / TAD INDEX - JMS EFGTBY - SPTR /A208 undefined ^ 002400* 0000 1593 / RETURNS BYTE /A208 1594 002401* 1377 TAD (-1) /A208 1595 002402* 7110 CLL RAR /A208 1596 CDFMNU /A208 undefined ^ 002403* 0000 1597 002404* 1600 TAD I EFGTBY / GET PTR /A208 1598 DCA T1 /A208 undefined ^ undefined ^ 002405* 3000 1599 CDFEDT /A208 undefined ^ 002406* 0000 1600 TAD I T1 / GET WORD /A208 undefined ^ undefined ^ 002407* 1400 1601 002410* 7420 SNL /A208 1602 002411* 7002 BSW / GET BYTE /A208 1603 AND P77 / ISOLATE IT /A208 undefined ^ undefined ^ 002412* 0000 1604 002413* 2200 ISZ EFGTBY /A208 1605 002414* 5600 JMP I EFGTBY / AND RETURN /A208 1606 1607 1608 1609 1610 / 1611 / CROSS FIELD CALLS FOR FIELD 3 1612 / 1613 1614 1615 1616 EFPOUT, XX / call putout routine undefined ^ 002415* 0000 1617 002416* 0000 CDFMYF 1618 CIFEDT undefined ^ 002417* 0000 1619 002420* 4776 JMS I (FMSWAP) 1620 002421* 0354 EDOCHR 1621 CDFEDT undefined ^ 002422* 0000 1622 002423* 5615 JMP I EFPOUT 1623 1624 / CALLING SEQUENCE 1625 / 1626 / CDIMNU 1627 / JMS I (TCCHK) 1628 / RETURN + 0 = REGULAR DEAD KEY SEQEUENCE 1629 / RETURN + 1 = REQUIRED SPACE 1630 / RETURN + 2 = F6 FUNCTION 1631 / 1632 1633 / THE INTERNAL DEAD KEY SEQUENCE FOR A TECHNICAL CHARACTER IS AS FOLLOWS: 1634 / 1635 / SD SP GS CH ED 1636 / 1637 / SD = START DEAD INDICATOR 1638 / SP = SPACE 1639 / GS = GRAPHICS SET G1 - G3 (OCTAL CODE 61-63) 1640 / TC = TECHNICAL CHARACTER 1641 / ED = END DEAD INDICATOR 1642 1643 / WHEN CALLED THE START DEAD INDICATOR HAS ALREADY BEEN FOUND 1644 1645 1646 / TCCHK has been modified as of edit 244. /M244 1647 / The purpose is to allow TCCHK to perform the same function /M244 1648 / but split it into two routines /M244 1649 / 1. Checks the dead key as above /M244 1650 / (this to run only in field 2) /M244 1651 / 2. Displays the tech char if found /M244 1652 / /M244 1653 / The purpose is to allow other routines to access TCCHK or /M244 1654 / something similar /M244 1655 / 1656 / 1657 1658 TCCHK, XX / Set up to call TCCHR /M244 undefined ^ 002424* 0000 1659 002425* 4270 JMS TCCHR / Call scan routine /A244 1660 002426* 5266 JMP TCDED / Ordinary dead /A244 1661 002427* 5265 JMP TCREQ / Required space /A244 1662 / /A244 1663 / Must be tech so print it /A244 1664 / /A244 1665 002430* 1332 TAD TCTEMP / WE PAST ALL THE CHECK POINTS DISPLAY THE TC 1666 002431* 0375 AND (3) / START BY ACTIVATING THE PROPER CHARACTER SET 1667 002432* 7450 SNA / EXCEPTION, TEST FOR GRAPHICS SET SELECTION 0 1668 002433* 5264 JMP TCTEC / NOT ALLOWED, DISPLAY IT AS A NORMAL DEAD/M244 1669 002434* 1374 TAD (JMP TCJMP) / BUILD JUMP TO PROPER SET GRAPHICS DISPLAY CODE 1670 002435* 3236 DCA .+1 1671 TCJMP, XX undefined ^ 002436* 0000 1672 002437* 5246 JMP TCGS1 / GO SET GRAPHICS SET 1 1673 002440* 5251 JMP TCGS2 / GO SET GRAPHICS SET 2 1674 TAD (ESC) / SET GRAPHICS SET 3 undefined ^ undefined ^ 002441* 1373 1675 002442* 4215 JMS EFPOUT 1676 002443* 1372 TAD (157) / TAD A SMALL o 1677 002444* 4215 JMS EFPOUT 1678 002445* 5255 JMP TCCONT 1679 1680 002446* 1371 TCGS1, TAD (16) / SET GRAPHICS SET 1 1681 002447* 4215 JMS EFPOUT 1682 002450* 5255 JMP TCCONT 1683 1684 TCGS2, TAD (ESC) / SET GRAPHICS SET 2 undefined ^ undefined ^ 002451* 1373 1685 002452* 4215 JMS EFPOUT 1686 002453* 1370 TAD (156) / TAD A SMALL n 1687 002454* 4215 JMS EFPOUT / FALL INTO NEXT ROUTINE 1688 002455* 1333 TCCONT, TAD TCTMP1 / DISPLAY CHARACTER IN PROPER TECHNICAL CHAR SET 1689 002456* 4215 JMS EFPOUT 1690 002457* 1367 TAD (17) / RESET GRAPHICS TO DEFAULT SET 1691 002460* 4215 JMS EFPOUT 1692 CDFEDT undefined ^ 002461* 0000 1693 002462* 3766 DCA I (PUTSC6) / TELLS VIEW CODE IT WAS NOT A REQUIRES SPACE 1694 002463* 0000 CDFMYF 1695 002464* 2224 TCTEC, ISZ TCCHK /A244 1696 002465* 2224 TCREQ, ISZ TCCHK /A244 1697 TCDED, CDIEDT / Change back to Edit field /A244 undefined ^ 002466* 0000 1698 002467* 5624 JMP I TCCHK / Return /A244 1699 1700 / 1701 / This is a stripped down version of TCCHK that only checks /M244 1702 / the dead key and does the skip return stuff /M244 1703 1704 1705 TCCHR, XX undefined ^ 002470* 0000 1706 002471* 7300 CLL CLA / DEAD KEY ALREADY DETECTED BY CALLING ROUTINE 1707 002472* 4765 JMS EFADPT / CHECK IF NEXT CHARACTER IS A SPACE 1708 002473* 7000 NOP 1709 CDFEDT undefined ^ 002474* 0000 1710 002475* 3766 DCA I (PUTSC6) / STORE HERE 1711 002476* 1766 TAD I (PUTSC6) / GET CHARACTER BACK 1712 002477* 0000 CDFMYF 1713 AND P177 / MASK OUT ATTRIBIUTE BITS undefined ^ undefined ^ 002500* 0000 1714 TAD (-ECSPC) / CHECK FOR SPACE undefined ^ undefined ^ 002501* 1373 1715 002502* 7640 SZA CLA 1716 002503* 5327 JMP TCEX0 / NORMAL DEAD KEY SEQUENCE 1717 1718 002504* 4765 JMS EFADPT / CHECK NEXT CHARACTER 1719 002505* 7000 NOP 1720 002506* 3332 DCA TCTEMP / IF TC STORE GRAPHICS SET INDICATOR 1721 002507* 1332 TAD TCTEMP / IF THIS CHARACTER IS A SPACE THEN EXIT 1722 AND P177 / JUST TO BE SURE BUT SHOULD NOT NEED IT undefined ^ undefined ^ 002510* 0000 1723 TAD (-ECSPC) / IS SECOND CHARACTER A SPACE undefined ^ undefined ^ 002511* 1373 1724 002512* 7650 SNA CLA 1725 002513* 5326 JMP TCEX1 / YES, WE HAVE A REAL REQUIRED SPACE EXIT 1726 002514* 5327 IFNDEF CONDOR < JMP TCEX0 > / NO, EXIT IF DM1 - IT HAS NO TEC. CHARS 1727 1728 002515* 4765 JMS EFADPT / GET NEXT CHARACTER 1729 002516* 7000 NOP / WHICH IS THE TECHNICAL CHARACTER 1730 002517* 3333 DCA TCTMP1 / AND STORE IT 1731 1732 002520* 4765 JMS EFADPT / TEST FOR END DEAD INDICATOR TO MAKE 1733 002521* 7000 NOP / SURE THE USER IS NOT PLAYING GAMES WITH 1734 TAD (-ECNDOV) / US. THAT IS A TC IS NOT DEADED WITH A undefined ^ undefined ^ 002522* 1373 1735 002523* 7640 SZA CLA / NORMAL CHARACTER. BAD TECHNICAL CHARACTER 1736 002524* 5327 JMP TCEX0 / OUTPUT A HASH CHARACTER 1737 1738 002525* 2270 TCEX2, ISZ TCCHR / RETURN + 2 = TECHNICAL CHAR SET /M244 1739 002526* 2270 TCEX1, ISZ TCCHR / RETURN + 1 = REQUIRED SPACE /M244 1740 / RETURN + 0 = NORMAL DEAD KEY 1741 002527* 4764 TCEX0, JMS TCBKUP / Backup to start dead /M244 1742 /d244 CDIEDT 1743 CDFEDT / Map to Edit field /M244 undefined ^ 002530* 0000 1744 002531* 5670 JMP I TCCHR / RETURN TO CALLER /M244 1745 1746 002532* 0000 TCTEMP, 0 / HOLDS GRAPHICS SELECTION CHARACTER 1747 002533* 0000 TCTMP1, 0 / HOLDS TECHNICAL CHARACTER 1748 1749 1750 / 1751 / This is a cross field callable version of TCCHR from Editor 1752 / 1753 1754 TCCHX, XX /A244 undefined ^ 002534* 0000 1755 002535* 4270 JMS TCCHR / Call TCCHX to scan dead /A244 1756 002536* 5342 JMP TCRDED / Normal dead /A244 1757 002537* 5341 JMP TCRREQ / required space /A244 1758 002540* 2334 ISZ TCCHX / Bump return for tech /A244 1759 002541* 2334 TCRREQ, ISZ TCCHX / /A244 1760 TCRDED, CIFEDT / Back to Editor /A244 undefined ^ 002542* 0000 1761 002543* 5734 JMP I TCCHX / And return /A244 1762 1763 / 1764 / This routine is a refugee from the CHKMR2 code since there is /A244 1765 / no rrom there /A244 1766 / It checks for hyphenation on a tech dead to allow hyphenation /A244 1767 / on 8 bit /A244 1768 1769 1770 CHKTCC, TAD (ECTAB-ECSTOV) / Is it a start dead ? /A244 undefined ^ undefined ^ undefined ^ undefined ^ 002544* 1373 1771 002545* 7640 SZA CLA / /A244 1772 002546* 5763 JMP CHKMR7 / No.. so rejoin code /A244 1773 002547* 4270 JMS TCCHR / Scan for tech dead /A244 1774 002550* 5763 JMP CHKMR7 / no .. ordinary /A244 1775 002551* 5763 JMP CHKMR7 / Required space /A244 1776 002552* 1333 TAD TCTMP1 / Get char /A244 1777 002553* 0362 AND (2000) / Is it hyphenated ? /A244 1778 002554* 7650 SNA CLA / /A244 1779 002555* 5763 JMP CHKMR7 / No /A244 1780 002556* 5761 JMP CHKM2A / Yes /A244 1781 1782 X=. 1783 /-------------- 1784 1785 002561* 1662 PAGE 002562* 2000 002563* 1671 002564* 2750 002565* 1556 002566* 3027 002567* 0017 002570* 0156 002571* 0016 002572* 0157 002573* 0000 002574* 5236 002575* 0003 002576* 0251 002577* 7777 1786 1787 EFCNTR, CDFEDT /A217 undefined ^ 002600* 0000 1788 002601* 1777 TAD I (LINE23) /A217 1789 002602* 3776 DCA I (CURPTR) / FIND CURRENT INDENT /A217 1790 002603* 3251 DCA LNECHA /A217 1791 002604* 4775 JMS EFLDCH /A217 1792 002605* 7000 NOP / BY COUNTING JUSTIFY SPACES /A217 1793 LNECH2, TAD (-ECJSPC) /A217 undefined ^ undefined ^ 002606* 1374 1794 002607* 7640 SZA CLA /A217 1795 002610* 5215 JMP LNECH6 /A217 1796 002611* 2251 ISZ LNECHA /A217 1797 002612* 4773 JMS EFADPT /A217 1798 002613* 7000 NOP /A217 1799 002614* 5206 JMP LNECH2 /A217 1800 LNECH6, CDFEDT /A217 undefined ^ 002615* 0000 1801 002616* 1772 TAD I (CENMAR) /A217 1802 002617* 7041 CIA /A217 1803 002620* 1771 TAD I (CURSOR) / COMPUTE -#SPACES /A217 1804 002621* 1251 TAD LNECHA /A217 1805 002622* 7500 SMA /A217 1806 002623* 5245 JMP LNECH3 / JUMP IF NONE /A217 1807 002624* 7130 CLL CML RAR /A217 1808 002625* 3251 DCA LNECHA /A217 1809 002626* 1251 TAD LNECHA /A217 1810 002627* 1770 TAD I (RGTMAR) /A217 1811 002630* 7041 CIA /A217 1812 002631* 1771 TAD I (CURSOR) /A217 1813 002632* 7550 SPA SNA /A217 1814 002633* 5240 JMP LNECH4 /A217 1815 002634* 1251 TAD LNECHA /A217 1816 002635* 7500 SMA /A217 1817 002636* 5245 JMP LNECH3 /A217 1818 002637* 3251 DCA LNECHA /A217 1819 002640* 7200 LNECH4, CLA /A217 1820 TAD (ECJSPC) /A217 undefined ^ undefined ^ 002641* 1374 1821 002642* 4767 JMS EFINSR /A217 1822 002643* 2251 ISZ LNECHA /A217 1823 002644* 5241 JMP .-3 / DO SPACES /A217 1824 002645* 7200 LNECH3, CLA /A217 1825 CIFEDT /A217 undefined ^ 002646* 0000 1826 CDFBUF /A217 undefined ^ 002647* 0000 1827 002650* 5766 JMP CNTREX /A217 1828 1829 002651* 0000 LNECHA, .-. /A217 1830 1831 / 1832 / CALPSH (CALLAR PUSH) / Edit number 227 for whole routine /A227 1833 / 1834 / This routine takes the address and data field of the routine 1835 / who called CALLAR, and pushes the values onto the stack. 1836 / 1837 / Note: If the stack overflows the routine will halt with AC = 0 1838 / 1839 1840 002652* 0000 CALPSH, 0 / Push CALL A ROUTINE ADDRESS ONTO THE STACK 1841 002653* 2321 ISZ CALPTR / Update stack pointer 1842 002654* 1721 TAD I CALPTR / Have we exceed the stack table length 1843 002655* 7650 SNA CLA 1844 002656* 5315 JMP CALERR / YES!! Hit a stack boundry CRASH SOFTWARE 1845 CDFEDT / No undefined ^ 002657* 0000 1846 002660* 1765 TAD I (CALLAR) / Get calling routines address 1847 002661* 0000 CDFMYF 1848 002662* 3721 DCA I CALPTR / And push it onto the stack 1849 002663* 2321 ISZ CALPTR / Update stack pointer 1850 CDFEDT undefined ^ 002664* 0000 1851 002665* 1764 TAD I (CALFLD) / Get INSTRUCTION field of calling routine 1852 002666* 0000 CDFMYF 1853 002667* 3721 DCA I CALPTR / And push it onto the stack 1854 CDIEDT undefined ^ 002670* 0000 1855 002671* 5652 JMP I CALPSH / Return 1856 1857 / 1858 / CALPOP (CALLAR POP) / Edit number 227 for whole routine /A227 1859 / 1860 / This routine will restore CALLAR's return with the last 1861 / CDI and ADDRESS on the stack. 1862 / 1863 / Note: If a return is attemped without an address 1864 / the routine will halt with AC = 1. 1865 / 1866 1867 002672* 0000 CALPOP, 0 / POP A CALL A ROUTINE ADDRESS OFF OF THE STACK 1868 002673* 1721 TAD I CALPTR / Do we have an address to pop 1869 002674* 7450 SNA 1870 002675* 5316 JMP CALERR+1 / NO!! Crash the software 1871 CDFEDT / Yes undefined ^ 002676* 0000 1872 002677* 3764 DCA I (CALFLD) / Store return field 1873 002700* 0000 CDFMYF 1874 002701* 7240 CLA CMA / Backup stack pointer 1875 002702* 1321 TAD CALPTR 1876 002703* 3321 DCA CALPTR 1877 002704* 1721 TAD I CALPTR / Get return address 1878 CDFEDT undefined ^ 002705* 0000 1879 002706* 1763 TAD I (CALSKP) / Add skip return offset 1880 002707* 3765 DCA I (CALLAR) / Store return address 1881 002710* 7240 CLA CMA / Back stack pointer 1882 002711* 1321 TAD CALPTR 1883 002712* 3321 DCA CALPTR 1884 CDIEDT undefined ^ 002713* 0000 1885 002714* 5672 JMP I CALPOP / Return 1886 1887 002715* 7610 CALERR, SKP CLA / Exceeded end of stack boundry 1888 AC0001 / Exceeded top of stack boundry undefined ^ 002716* 0000 1889 002717* 7402 HLT / STOP - Don't let the user go any further 1890 002720* 5317 JMP .-1 / Just in case they try to proceede 1891 1892 002721* 2722 CALPTR, CALSTK / Pointer into stack 1893 002722* 0000 CALSTK, 0000 / Top of stack boundry 1894 002723* 7777 7777;7777 / A stack for ten cross field calls 002724* 7777 1895 002725* 7777 7777;7777 / Any non zero value will do. 002726* 7777 1896 002727* 7777 7777;7777 002730* 7777 1897 002731* 7777 7777;7777 002732* 7777 1898 002733* 7777 7777;7777 002734* 7777 1899 002735* 7777 7777;7777 002736* 7777 1900 002737* 7777 7777;7777 002740* 7777 1901 002741* 7777 7777;7777 002742* 7777 1902 002743* 7777 7777;7777 002744* 7777 1903 002745* 7777 7777;7777 002746* 7777 1904 002747* 0000 0000 / End of stack boundry 1905 1906 / 1907 / This routine belongs to TCCHK etc. but.. there's no room there /M244 1908 / Backing up pointer to start dead was made a routine /M244 1909 / 1910 1911 1912 TCBKUP, XX undefined ^ 002750* 0000 1913 002751* 4762 TCBKLP, JMS EFBKPT / LEAVE POINTER AT BEGINNING OF DEAD KEY SEQUENCE 1914 002752* 7000 NOP 1915 TAD (-ECSTOV) undefined ^ undefined ^ 002753* 1374 1916 002754* 7640 SZA CLA 1917 002755* 5351 JMP TCBKLP 1918 002756* 5750 JMP I TCBKUP 1919 1920 X=. 1921 /-------------- 1922 1923 002762* 2331 PAGE 002763* 0313 002764* 0310 002765* 0251 002766* 1500 002767* 1442 002770* 0160 002771* 0136 002772* 0163 002773* 1556 002774* 0000 002775* 1516 002776* 0135 002777* 0171 1924 1925 1926 003000* 0000 NWRUL, ZBLOCK HAFRUL / Allocate workspace 003001* 0000 003002* 0000 003003* 0000 003004* 0000 003005* 0000 003006* 0000 003007* 0000 003010* 0000 003011* 0000 003012* 0000 003013* 0000 003014* 0000 003015* 0000 003016* 0000 003017* 0000 003020* 0000 003021* 0000 003022* 0000 003023* 0000 003024* 0000 003025* 0000 003026* 0000 003027* 0000 003030* 0000 003031* 0000 003032* 0000 003033* 0000 003034* 0000 003035* 0000 003036* 0000 003037* 0000 003040* 0000 003041* 0000 003042* 0000 003043* 0000 003044* 0000 003045* 0000 003046* 0000 003047* 0000 003050* 0000 003051* 0000 003052* 0000 003053* 0000 003054* 0000 003055* 0000 003056* 0000 003057* 0000 003060* 0000 003061* 0000 003062* 0000 003063* 0000 003064* 0000 003065* 0000 003066* 0000 003067* 0000 003070* 0000 003071* 0000 003072* 0000 003073* 0000 003074* 0000 003075* 0000 003076* 0000 003077* 0000 003100* 0000 003101* 0000 003102* 0000 003103* 0000 003104* 0000 003105* 0000 003106* 0000 003107* 0000 003110* 0000 003111* 0000 003112* 0000 003113* 0000 003114* 0000 003115* 0000 003116* 0000 003117* 0000 003120* 0000 003121* 0000 003122* 0000 003123* 0000 003124* 0000 003125* 0000 003126* 0000 003127* 0000 003130* 0000 003131* 0000 003132* 0000 003133* 0000 003134* 0000 003135* 0000 003136* 0000 003137* 0000 003140* 0000 003141* 0000 003142* 0000 003143* 0000 003144* 0000 003145* 0000 003146* 0000 003147* 0000 003150* 0000 003151* 0000 003152* 0000 003153* 0000 003154* 0000 003155* 0000 003156* 0000 003157* 0000 003160* 0000 003161* 0000 003162* 0000 003163* 0000 003164* 0000 003165* 0000 003166* 0000 1927 003167* 0000 0000 / buffer terminator 1928 1929 / THE FOLLOWING LOCATIONS WITH THE EXCEPTION OF NWDT, HOLD THE POSITION 1930 / NUMBER WITHIN THE RULER OF THE SETTINGS SPECIFIED. FOR EXAMPLE, A 1931 / RULER OF L1, R5 WOULD SET NMLMAR = 1 AND NWRMAR = 5. AFTER RULER 1932 / MODIFICATION THESE PARAMETERS ARE TRANSFERED ALONG WITH NWRUL TO CURUL. 1933 1934 RLSTOR, 1935 003170* 0000 NWLMAR, 0 / NEW LEFT MARGIN MARKER 1936 003171* 0000 NWRMAR, 0 / NEW RIGHT MARGIN MARKER 1937 003172* 0000 NWWMAR, 0 / NEW WORD WRAP INDENT MARKER 1938 003173* 0000 NWPMAR, 0 / NEW PARAGRAPH INDENT MARKER 1939 003174* 0000 NWCMAR, 0 / NEW CENTERING POINT MARKER 1940 003175* 0000 NWHMAR, 0 / NEW HYPHENATION ZONE MARKER 1941 003176* 0000 NWDT, 0 / NEW DECIMAL TABS - NUMBER OF DECIMAL TABS 1942 / IN THE RULER. 1943 NWRLND=. / End of ruler marker 1944 1945 PAGE 1946 SWPEND, / DEFINE END OF SWAP AREA CODE SO 1947 / THAT REMANING AREA CAN BE CLEARED 1948 1949 RELOC / RESET RELOCATION MECHANISM OF ASSEMBLER 1950 1951 1952 /*************************************************************************** 1953 /**** PAGE ZERO DEFINITIONS FOR MAIN EDITOR IN FIELD 3 **** 1954 /*************************************************************************** 1955 1956 000173 0200 FIELD 1 / EDITOR LOADS HERE BUT RUNS IN FIELD THREE 000174 1053 000175 1016 000176 1000 000177 0400 1957 1958 *100 1959 1960 CDFMYF= CDFEDT / DEFINE CDF INSTRUCTION FOR EDIT FIELD undefined ^ 1961 1962 ZZCASE= JMS I . / CASE STYLE COMPARISONS (SIMILAR TO 1963 010100 6655 GDCASE / SWITCH IN "C" ) 1964 1965 HLTTST= JMS I . / TEST HALT FLAG SET BY GOLD HALT 1966 010101 2753 USHLTS 1967 1968 GETINP= JMS I . / CALL SYS TO GET CHARACTER FROM KEYBOARD 1969 010102 5000 EDICHR 1970 1971 PUTOUT= JMS I . / PUT CHARACTER TO DISPLAY 1972 010103 0354 EDOCHR 1973 1974 MODSET= JMS I . / SET OR CLEAR EDIT MODES 1975 010104 1200 ESMODE 1976 1977 INSCHR= JMS I . / INSERT CHARACTER INTO TEXT BUFFER 1978 010105 4036 ESICHR /M241 /m239 1979 1980 ADVPTR= JMS I . / ADVANCE CURPTR TO NEXT NON-NULL CHAR IN FILE 1981 010106 1213 ESAPTR 1982 1983 BKPPTR= JMS I . / BACKUP CURPTR TO NEXT NON-NULL CHAR IN FILE 1984 010107 1250 ESBPTR 1985 1986 CHKPTR= JMS I . / CHECK CHARACTER IN TEXT BUFFER FOR: 1987 010110 4313 ESATST / NULL - ETX - STX STATUS 1988 1989 TSTSLT= JMS I . / TEST FOR SELECT MODE ACTIVE 1990 010111 3724 ESLCTS 1991 1992 ADVCHR= JMS I . / ADVANCE CURPTR A SPECIFIED COUNT OF NON-NULL 1993 010112 4400 ESACHR / CHARACTERS IN TEXT BUFFER 1994 / (NEVERS SCROLLS TO/FROM DISK) 1995 1996 CURMOV= JMS I . / MOVE CURSOR FORWARD OF BACKWARD FOR A 1997 010113 2611 ESMVCR / SPECIFIED NUMBER OF CHARACTERS 1998 1999 SLNMOD= JMS I . / SET LINE MODIFIED FLAGS (NOT IN BUFFER) 2000 010114 2255 SETLMD 2001 2002 PUTESC= JMS I . / SEND ESCAPE SEQUENCES TO DISPLAY 2003 010115 4147 ESPTES 2004 2005 XLTUPR= JMS I . / TRANSLATE LOWER CASE TO UPPER CASE 2006 010116 4270 ESXLUP 2007 2008 ADVSPC= JMS I . / ADVANCE CURPTR A SCREEN CHARACTER WIDTH 2009 010117 1717 ESASPC 2010 2011 BKPSPC= JMS I . / BACKUP CURPTR A SCREEN CHARACTER WIDTH 2012 010120 1701 ESBSPC 2013 2014 PUTETX= JMS I . / PUT CHARACTER TO DISK AT END OF FILE 2015 010121 4024 ESPUTE 2016 2017 PUTSTX= JMS I . / PUT CHARACTER TO DISK AT START OF FILE 2018 010122 4030 ESPUTS 2019 2020 OVLJMP= JMS I . / CALL IN OVERLAY CODE AND EXECUTE 2021 010123 5111 OVJUMP 2022 2023 2024 SINZRO, / START OF INITED-TO-ZERO CONTROL WORDS 2025 010124 0000 RLRMOD, 0 / RULER MOD FLAG 2026 010125 0000 GETTRM, 0 / INPUT TERMINATOR 2027 RLPOSN= GETTRM / CURRENT RULER POSITION 2028 010126 0000 GETLEN, 0 / INPUT LENGTH 2029 010127 0000 SLCTDR, 0 / SELECT DIRECTION 2030 010130 0000 PSTBLK, 0 / CURRENT PASTE BLOCK 2031 010131 0000 PSTPTR, 0 / CURRENT PASTE BUFFER PTR 2032 010132 0000 BASKCT, 0 / CURRENT WASTEBASKET COUNT 2033 010133 0000 EDMODE, 0 / CURRENT EDIT MODES - 2034 / 0 = ADVANCE UNIT 2035 / 1 = BACKUP UNIT 2036 / 2 = BOLD UNIT 2037 / 3 = UNDERLINE UNIT 2038 / 4 = REMOVE BOLD UNIT 2039 / 5 = REMOVE UNDERLINE UNIT 2040 / 6 = CASE UNIT (UPPER/LOWER CASE) 2041 / 10 = SEARCH MODE 2042 / 20 = SELECT MODE 2043 010134 0000 GRAMUN, 0 / CURRENT GRAMMATICAL UNIT 2044 / 0 = CHARACTER, 1 = LINE, 2 = WORD, 2045 / 3 = SENTENCE, 4 = TAB POSITION, 2046 / 5 = PARAGRAPH, 6 = PAGE 2047 010135 0000 CURPTR, 0 / CURRENT LOC IN TEXT BUFFER 2048 010136 0000 CURSOR, 0 / CURRENT SCREEN COLUMN 2049 010137 0000 SCRLCT, 0 / SCREEN LAG - NUMBER OF LINES LEFT TO SCROLL 2050 010140 0000 SCRNFL, 0 / "WHOLE SCREEN" SCROLL FLAG 2051 / 0 = NO NEED TO SCROLL WHOLE SCREEN, 2052 / 2000 = SCROLL WHOLE SCREEN 2053 010141 0000 SCRLFL, 0 / SCROLL FLAG FOR BKP/ADV 2054 010142 0000 PCTLFL, 0 / PRINT CONTROL FLAG 2055 / 0 = NOT IN START CONTROL BLOCK, 2056 / -1 = IN START CONTROL BLOCK 2057 010143 0000 SPACNG, 0 / CURRENT HALF-SPACING (2-4) 2058 010144 0000 CURLIN, 0 / CURRENT SETCUR LINE (REL TO BOTTOM OF SCREEN) 2059 010145 0000 SCRLCU, 0 / NON-ZERO IF SCREEN NEEDS MODIFICATION 2060 010146 0000 SCRLIN, 0 / EARLIEST LINE OF SCREEN NEEDING MODIFICATION 2061 010147 0000 REJCNT, 0 / USED TO COUNT MODS TIL REJUST TIME 2062 010150 0000 REJFLG, 0 / SET TO -1 IF REJUST NEEDED 2063 010151 0000 LINMOD, 0 / "LINE MODIFIED" FLAG WORD 2064 010152 0000 ECHFLG, 0 / "ALWAYS ECHO" FLAG 2065 010153 0000 SRCDIR, 0 / SEARCH DIRECTION, ALSO USED BY GO-TO-PAGE 2066 010154 0000 MRGRSF, 0 / MERGE RESYNC FLAG 2067 CPYFNO= MRGRSF / IS CHARACTER AT LEAST A "0" ? 2068 CASBIT= CPYFNO / BIT SET FOR UP/LOW/BOLD/UNDL 2069 GETPSF= CASBIT / GET PST EOF FLG 2070 010155 0000 MRGPT1, 0 / MERGE TEMP PTR 2071 GLDPSF= MRGPT1 / "EXACT PASTE FLAG" 2072 RLDIRN= MRGPT1 / GOLD RULER DIRECTION (0-FORW; -1 REV) 2073 010156 0000 MRGPT2, 0 / MERGE TEMP PTR 2074 NINZRO= .-SINZRO / LENGTH OF INITED TO ZERO CTL WORDS 2075 /D226 SPLTFL, 0 / -1= SCREEN NEEDS TO BE SPLIT 2076 /D226 / 0 = SCREEN DOES NOT NEED TO BE SPLIT (WIDE) 2077 /D226 / 1 = SCREEN IS SPLIT (WIDE) 2078 2079 /---------- 2080 / 2081 / O R D E R I M P O R T A N T 2082 / 2083 / These next 5 words have been moved beyond the page 0 2084 / locations that are cleared during initialization. 2085 / 2086 /---------- 2087 2088 010157 0000 LFTMAR, 0 / CURRENT LEFT MARGIN 2089 010160 0000 RGTMAR, 0 / CURRENT RIGHT MARGIN 2090 010161 0000 WRPMAR, 0 / CURRENT WORD WRAP MARGIN 2091 010162 0000 PGFMAR, 0 / CURRENT PARAGRAPH INDENT MARGIN 2092 010163 0000 CENMAR, 0 / CURRENT CENTER, *2 2093 2094 /---------- 2095 / 2096 / E N D O R D E R I M P O R T A N T 2097 / 2098 /---------- 2099 2100 010164 0000 BUFBEG, 0 / PTR TO START OF EDIT BUFFER 2101 010165 0000 BUFSIZ, 0 / SIZE OF EDIT BUFFER 2102 010166 0000 FORMNO, 0 / MERGE FORM FILE NUMBER 2103 010167 0000 FILENO, 0 / EDIT FILE NUMBER 2104 010170 0000 FILOPT, 0 / EDIT OPTION (-1 RPLAC, 0 NORMAL) 2105 010171 0000 LINE23, 0 / LINE23 PTR 2106 010172 0000 SPCCHK, 0 / -# BLKS MIN BEFORE COMPLAINT 2107 010173 0000 GSRF, 0 / GLOBAL SEARCH AND REPLACE FLAG 2108 010174 0000 CURTMP, 0 / TEMP CURSOR STORAGE FOR VIEW MODE 2109 010175 0000 CHRATR, 0 / ATTRIBUTE OF CHAR GOING THRU BLKBOX 2110 2111 010176 0000 SCRNLN, 0 / NUMBER OF LINES IN SCROLL AREA 2112 010177 0064 WIDNAR, WIDTH-COLM81 / 0 = WIDE, 64 (52 DEC) = NARROW SCREEN /A226 2113 2114 IFDEF FORIN < 2115 POINT1, 0 / POINTER FOR TABLE SCAN FOR FOREIGN CHARACTERS 2116 POINT2= X3 / TEMP STORAGE 2117 CHAR1= X4 / ALSO TEMP STORAGE 2118 > / END IFDEF FORIN 2119 2120 X=. / INDICATE FIRST FREE LOCATION ON PAGE 2121 /--------------- 2122 PAGE 2123 2124 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 2125 2126 2127 /*************************************************************************** 2128 /**** START OF MAIN EDITOR CODE **** 2129 /*************************************************************************** 2130 2131 EDITOR, XX undefined ^ 010200 0000 2132 010201 5210 JMP EDIOP1 2133 2134 EDMERG, XX / MERGE ENTRY undefined ^ 010202 0000 2135 /D221 RDF / GENERATE RETURN CIF CDF INSTRUCTION 2136 /D221 TAD CIDF0 2137 /D221 DCA EDEXI3 2138 2139 010203 0000 CDFMYF / CHANGE DATA FIELD TO THIS FIELD /A221 2140 010204 3607 DCA I EDITOV / CLEAR OVERLAY NUMBER TO FORCE LOAD /A221 2141 010205 4523 OVLJMP;OVMRG1 / FIRST OVERLAY 010206 0601 2142 2143 010207 7400 EDITOV, OVLAY1 / LOCATION OF OVERLAY AREA /A221 2144 2145 010210 0000 EDIOP1, CDFMYF / CHANGE DATA FIELD TO THIS FIELD /A221 2146 010211 7200 CLA / DUMMY INSTRUCTION TO TAKE UP ROOM /A221 2147 010212 3607 DCA I EDITOV / CLEAR OVERLAY NUMBER TO FORCE LOAD /A221 2148 2149 /D221 RDF / GENERATE RETURN CIF CDF INSTRUCTION 2150 /D221 TAD CIDF0 2151 /D221 DCA EDEXI3 2152 2153 010213 4523 OVLJMP;OVINI1 / INIT FOR NORMAL EDIT 010214 0205 2154 2155 010215 4523 REEDIT, OVLJMP;OVINIT / DO INIT OVERLAY 010216 0410 2156 010217 5777 JMP EINEXA / CONTINUE 'NORMAL' EDIT /M204 2157 2158 010220 4523 EIFILE, OVLJMP;OVXITF / DO EXIT OVERLAY 010221 4002 2159 010222 5233 JMP EDEXI3 / NORMAL EXIT 2160 2161 / MUST BE HERE BECAUSE OF A CALL FROM MN1 UPON FINISHING USING THE SYSTEM 2162 EDCLPB, XX / CLEAR CUT/PASTE BUFFER undefined ^ 010223 0000 2163 /D221 RDF 2164 /D221 TAD CIDF0 2165 /D221 DCA EDEXI4 2166 2167 010224 0000 CDFMYF / CHANGE DATA FIELD TO THIS FIELD /A221 2168 010225 7200 CLA / DUMMY INSTRUCTION TO TAKE UP ROOM /A221 2169 010226 3607 DCA I EDITOV / CLEAR OVERLAY NUMBER TO FORCE LOAD /A221 2170 2171 010227 4523 OVLJMP;OVCLPB 010230 2202 2172 2173 EDEXI4, CDIMNU / SET DATA & INSTRUCTION FIELDS TO MENU /M221 undefined ^ 010231 0000 2174 010232 5623 JMP I EDCLPB / RETURN TO MAIN MENU 2175 2176 EDEXI3, CDIMNU / SET DATA & INSTRUCTION FIELDS TO MENU /M221 undefined ^ 010233 0000 2177 010234 5600 JMP I EDITOR / RETURN TO MAIN MENU 2178 2179 010235 0000 OLDHR, 0 / HOURS AT START OF EDIT 2180 010236 0000 OLDMIN, 0 / MINUTES AT START OF EDIT 2181 2182 010237 4523 EITOP, OVLJMP;OVEXIT / CLOSE THE DOCUMENT 010240 4003 2183 2184 010241 5215 JMP REEDIT / NOW RESUME 'NORMAL' EDIT FROM TOP 2185 2186 LINDNT, XX / INDENT TO LEFT MARGIN undefined ^ 010242 0000 2187 CIFMNU undefined ^ 010243 0000 2188 CDFEDT undefined ^ 010244 0000 2189 010245 4776 JMS I (CALSWA) 2190 010246 2055 EFLDNT 2191 CDFEDT undefined ^ 010247 0000 2192 010250 5642 JMP I LINDNT 2193 2194 2195 / 2196 /++ 2197 / CALLAROUTINE CALL_A_ROUTINE 2198 / 2199 /FUNCTIONAL DESCRIPTION: CALLAROUTINE 2200 / 2201 / This routine can be used to call any subroutine in the editor from any 2202 / field in the system as long as the editor subroutine makes only a normal 2203 / or skip return. 2204 / 2205 /CALLING SEQUENCE: CIFEDT (DF = CALLER FIELD) 2206 / JMS CALLAR 2207 / Rouitne in field 3 to be called 2208 / Data field to set for called routine 2209 / 2210 /INPUT PARAMETERS: LINK, AC, MQ can equal any value that may be required 2211 / by the routine being called 2212 / 2213 / MQ = value (if any) needed for called routine 2214 / 2215 /IMPLICIT INPUT: CIDF0, CALLA1, T1, CALLAROUTINE 2216 / 2217 /OUTPUT PARAMETERS: LINK, AC, MQ = Output values set by called routine 2218 / Data and Instruction field = Calling field 2219 / 2220 /IMPLICIT OUTPUT: CALLA1, T1, CALLA2 2221 / 2222 / 2223 2224 FMSWAP, / Rewrite of CALL_A_ROUTINE /M227 2225 CALLAR, XX / CALL_A_ROUTINE undefined ^ 010251 0000 2226 010252 3314 DCA CALSAC / Store value of AC 2227 010253 6214 RDF / Get field of calling routine 2228 TAD CIDF0 / and build a CIF CDF return undefined ^ undefined ^ 010254 1000 2229 010255 3310 DCA CALFLD / Store the return field call 2230 010256 1651 TAD I CALLAR / Get address of routine to be called 2231 010257 3312 DCA CALADD / store it 2232 010260 2251 ISZ CALLAR 2233 010261 1651 TAD I CALLAR / Get data field to set 2234 010262 3277 DCA CALCDF / store it 2235 010263 2251 ISZ CALLAR / Set up return address 2236 010264 3313 DCA CALSKP / Init skip return pointer 2237 CDFMNU / Set field to menu swap area /A233 undefined ^ 010265 0000 2238 010266 1775 TAD I (CALLN1+2) / This is a test to see if CALPSH, /A233 2239 010267 1374 TAD (-NOP) / CALPOP rouitines are indeed in memory /A233 2240 010270 7640 SZA CLA / /A233 2241 010271 5274 JMP .+3 /A233 2242 010272 7402 HLT / CALPSH, CALPOP are not loaded /A233 2243 010273 5272 JMP .-1 / crash system!!! /A233 2244 CDIMNU undefined ^ 010274 0000 2245 010275 4773 JMS I (CALPSH) / Push the information onto the stack 2246 010276 1314 TAD CALSAC / Restore the AC 2247 CALCDF, XX / CDF for routine being called undefined ^ 010277 0000 2248 010300 4712 JMS I CALADD / Call the routine 2249 010301 7410 SKP 2250 010302 2313 ISZ CALSKP 2251 010303 3314 DCA CALSAC / Store value of AC 2252 CDIMNU undefined ^ 010304 0000 2253 010305 4772 JMS I (CALPOP) 2254 010306 3313 DCA CALSKP / Clear flag for next return /A231 2255 010307 1314 TAD CALSAC / Restore AC 2256 CALFLD, XX / CAlling field CID return undefined ^ 010310 0000 2257 010311 5651 JMP I CALLAR / Return to routine 2258 2259 010312 0000 CALADD, 0 / CALLING ADD OF FIELD 3 ROUTINE 2260 010313 0000 CALSKP, 0 / ZERO = RETURN AT CALL+1, 1=CALL +2 2261 010314 0000 CALSAC, 0 / STORE AC TEMP REG 2262 2263 2264 / This routine origionally was set up to refresh only what needed to be 2265 / refreshed. due to the high number of exception cases & the lack of space 2266 / to test for each exception, the entire line will be repainted whenever a 2267 / tab character is seen. 2268 / 2269 TBJUST, XX / JUSTIFY NEXT TAB STOP /A208 undefined ^ 010315 0000 2270 CDFEDT /A208 undefined ^ 010316 0000 2271 CIFMNU /A208 undefined ^ 010317 0000 2272 010320 4776 JMS I (CALSWA) /A208 2273 010321 2220 EFTJST /A208 2274 CDFEDT /A208 undefined ^ 010322 0000 2275 010323 5715 JMP I TBJUST /A208 2276 2277 2278 BEEPER, XX undefined ^ 010324 0000 2279 010325 4331 JMS BUZZER 2280 CIFSYS / CLEAR UDK STACK undefined ^ 010326 0000 2281 UDKOPS undefined ^ 010327 0000 2282 010330 5724 JMP I BEEPER 2283 2284 BUZZER, XX undefined ^ 010331 0000 2285 AC0006 undefined ^ 010332 0000 2286 010333 7001 IAC / SET AC TO 7 (saves 1 location) 2287 010334 4503 PUTOUT 2288 010335 5731 JMP I BUZZER 2289 2290 BLDBIT= CASBIT 2291 010336 1371 BLDUNT, TAD (200) / SET... 2292 010337 3154 NBDUNT, DCA BLDBIT / ...OR CLEAR BOLDING 2293 010340 4523 OVLJMP;OVBOLD 010341 3020 2294 2295 CHKMAR, XX / CHK RIGHT MARGIN /A207 undefined ^ 010342 0000 2296 CDFEDT / CALL IN MENU FIELD /A207 undefined ^ 010343 0000 2297 CIFMNU /A207 undefined ^ 010344 0000 2298 010345 4776 JMS I (CALSWA) /A207 2299 010346 1600 EFCKMR /A207 2300 CDFEDT /A207 undefined ^ 010347 0000 2301 010350 7410 SKP / NON-SKIP RETURN /A207 2302 010351 2342 ISZ CHKMAR / SKIP RETURN /A207 2303 CDFBUF undefined ^ 010352 0000 2304 010353 5742 JMP I CHKMAR /A207 2305 2306 EDOCHR, XX undefined ^ 010354 0000 2307 010355 0000 CDFMYF 2308 2309 010356 3366 DCA HLDCHR / SAVE CHAR TO BE OUTPUT 2310 010357 1366 TAD HLDCHR / RESTORE CHAR 2311 010360 0370 AND (3600) / MASK OFF ATTRIBUTE BITS 2312 010361 3175 DCA CHRATR / AND SAVE FOR FUTURE REFERENCE 2313 010362 1366 TAD HLDCHR / RESTORE CHAR TO CONTINUE 2314 2315 / BLKBOX WHICH HANDLES CHARACTERS TO BE DISPLAYED ON THE VT100 RESIDES 2316 / IN FIELD 1. GO THERE TO DISPLAY THIS CHARACTER. 2317 2318 CIFPRT / "BLACKBOX" IN PRINTER FIELD (1) undefined ^ 010363 0000 2319 JMS I (BLKBOX) undefined ^ undefined ^ 010364 4767 2320 010365 5754 JMP I EDOCHR 2321 2322 010366 0000 HLDCHR, 0 / TEMP STORAGE FOR BLKBOX ROUTINE 2323 2324 X=. / INDICATE FIRST FREE LOCATION ON PAGE 2325 /--------------- 2326 010367 0000 PAGE 010370 3600 010371 0200 010372 2672 010373 2652 010374 1000 010375 0002 010376 1400 010377 0413 2327 2328 /********************** )/ RESTORE CHAR TO CONTINUE 2329 2330 / BLKBOX WHICH HANDLE 2331 /**** START OF RESIDENT OVERLAY AREA **** 2332 /**** THIS AREA IS OVERLAYED BY LIST PROCESSING AND SPELL **** 2333 /*************************************************************************** 2334 2335 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 2336 2337 OVLAYM, / THIS SYMBOL IS USED BY L.P. AND SPELL 2338 2339 / *** ENTRY POINTS FOR UNIMPLEMENTED OPERATIONS *** 2340 2341 /d215 EITABC, / ** NOT IMPLEMENTED YET ** 2342 2343 010400 4777 EIBAD, JMS BEEPER / NOTIFY USER OF ERROR 2344 2345 EIFXT2, /A168 2346 010401 7200 EIFIX, CLA / MAKE SURE WE ARE ON A LEGAL CHARACTER 2347 010402 4513 EIFIX1, CURMOV 2348 010403 7000 NOP / IGNORE TOP OR BOTTOM OF DOCUMENT 2349 010404 4504 MODSET /M168 2350 010405 1742 EDTMOD / RESET MODES 2351 2352 EINEXT, / GET INPUT CHARACTER 2353 010406 0000 CDFMYF / CHANGE BACK TO MY DATA FIELD 2354 010407 7200 CLA 2355 010410 3152 DCA ECHFLG / CLEAR ECHO MODE 2356 2357 GSKILN, CIFSYS / REPLACED WITH A "SKIP" BY G.S.R. CODE undefined ^ 010411 0000 2358 XLTIN undefined ^ 010412 0000 2359 2360 IFDEF DEMO < 2361 *.-2 2362 NOP 2363 NOP 2364 > / END 'IFDEF DEMO' 2365 2366 010413 7610 EINEXA, SKP CLA / XLTIN RETURN WITH NO CHARACTER /M168 2367 010414 5226 JMP EINEXB / XLTIN RETURN WITH CHARACTER IN AC 2368 010415 3152 DCA ECHFLG / CLEAR ECHO MODE /A168 2369 010416 4513 CURMOV 2370 010417 7000 NOP 2371 010420 4776 JMS TSTLIM 2372 010421 4775 JMS FXSCRL 2373 2374 010422 0000 CDFMYF / NEEDED WHEN BACKING UP INTO A LONG LINE /A236 2375 CIFMNU / CHANGE TO MENU FIELD FOR STATUS CHECK undefined ^ 010423 0000 2376 010424 4774 JMS I (CALLN5) / GO CHECK IF STATUS VALUES HAVE CHANGED /C235 2377 010425 4502 GETINP / GO WAIT FOR USER TO ENTER A CHARACTER 2378 2379 IFNDEF FORIN < 2380 010426 7500 EINEXB, SMA 2381 010427 5773 JMP OVSCHK /M254 2382 > / END IFNDEF FORIN 2383 2384 IFDEF FORIN < 2385 EINEXB, DCA CHAR1 2386 OVLJMP 2387 ACCENT 2388 EINEXC, > / END IFDEF FORIN 2389 2390 /*************************************************************************** 2391 /**** CAUTION - RESIDENT OVERLAY AREA **** 2392 /**** THIS AREA IS OVERLAYED BY LIST PROCESSING AND SPELL **** 2393 /*************************************************************************** 2394 2395 2396 010430 7421 EINEXD, MQL / TUCK THE CHAR 2397 010431 7701 ACL 2398 TAD (-EDUPAR) / CHECK FOR UP AND DOWN ARROW undefined ^ undefined ^ 010432 1372 2399 010433 7450 SNA 2400 010434 5242 JMP EINEXM 2401 TAD (EDUPAR-EDDNAR) undefined ^ undefined ^ undefined ^ undefined ^ 010435 1372 2402 010436 7650 SNA CLA 2403 010437 5242 JMP EINEXM 2404 AC7777 undefined ^ 010440 0000 2405 010441 3771 DCA REMCUR / NEITHER, SET "REMCUR" TO -1 2406 2407 010442 7701 EINEXM, ACL / GET CHARACTER BACK 2408 010443 7040 CMA 2409 010444 1370 TAD (-EDXVLN) / TEST FOR OK 2410 010445 7500 SMA 2411 010446 5200 JMP EIBAD 2412 2413 010447 1367 TAD (EDXVEC+EDXVLN) / MAKE POINTER TO TRANSFER VECTOR TABLE 2414 DCA T1 / STORE FOR INDIRECT PICKUP undefined ^ undefined ^ 010450 3000 2415 CDFLP / CHANGE TO FIELD WHERE TABLE LOCATED undefined ^ 010451 0000 2416 TAD I T1 / PICK UP ROUTINE ADDRESS undefined ^ undefined ^ 010452 1400 2417 010453 0000 CDFMYF / CHANGE BACK TO THIS FIELD 2418 DCA T1 / STORE FOR INDIRECT JUMP TO ROUTINE undefined ^ undefined ^ 010454 3000 2419 JMP I T1 / TRANSFER TO ROUTINEE REQUESTED undefined ^ undefined ^ 010455 5400 2420 2421 2422 /*************************************************************************** 2423 /**** CAUTION - RESIDENT OVERLAY AREA **** 2424 /**** THIS AREA IS OVERLAYED BY LIST PROCESSING AND SPELL **** 2425 /*************************************************************************** 2426 2427 / GOTO PAGE entrance for emulating ADVANCE PAGE.... 2428 2429 RPGETUNT,XX / ADVANCE A PAGE undefined ^ 010456 0000 2430 010457 7200 CLA / CHAR. PASSED BY LODCHR 2431 010460 1256 TAD RPGETUNT / RETURN (A) AND ARG. PTR. 2432 010461 3263 DCA GETUNT / FOR NORMAL PROCESS 2433 010462 5265 JMP GETRPT / FOR NON-CONTINUOUS ECHO 2434 2435 /=========================================================================== 2436 /==== THIS IS A CO-ROUTINE TYPE SUBROUTINE ==== 2437 /=========================================================================== 2438 2439 GETUNT, XX / CO-ROUTINE ENTRY POINT undefined ^ 010463 0000 2440 AC0001 / SET FOR CONTINUOUS ECHO undefined ^ 010464 0000 2441 010465 3152 GETRPT, DCA ECHFLG / GOTO PAGE NON-CONTINUOUS ECHO 2442 010466 3340 DCA OVSFLG / CLEAR OVERSTRIKE FLAG (DEAD KEY) 2443 2444 010467 4766 JMS LODCHR / LOAD FIRST AVAILABLE CHARACTER 2445 010470 5277 JMP GETUNZ / END OF FILE - AC=0 2446 2447 010471 4765 JMS CHKUNT / AC = CHARACTER OR BUFFER CODE 2448 GETUNX, XX / CHKUNT CO-ROUTINE RETURN POINT undefined ^ 010472 0000 2449 010473 7540 SMA SZA / CHECK FOR VALID CHARACTER 2450 010474 5311 JMP GETUNY / YES, GO HANDLE IT 2451 2452 010475 7700 GETUNQ, SMA CLA / WAS THIS A SPECIAL CHARACTER 2453 010476 1535 TAD I CURPTR / YES, NOT DONE, GET CHARACTER BACK 2454 2455 010477 4663 GETUNZ, JMS I GETUNT / GETUNT CO-ROUTINE RETURN POINT 2456 010500 7440 SZA / IS A CHARACTER BEING RETURNED ? 2457 010501 3535 DCA I CURPTR / YES, STORE IT IN THE BUFFER 2458 2459 010502 1340 TAD OVSFLG / GET THE OVERSTRIKE FLAG (DEAD KEY) 2460 010503 7440 SZA / IS IT SET ? 2461 010504 5320 JMP GETUNO / YES, GO HANDLE DEAD KEY SEQUENCE 2462 010505 1535 TAD I CURPTR / NO, GET THE CURRENT CHARACTER 2463 TAD (-ECSTOV) / COMBINE THIS WITH START OF DEAD KEY CODE undefined ^ undefined ^ 010506 1372 2464 010507 7650 SNA CLA / IS THIS THE START OF DEAD KEY SEQUENCE ? 2465 010510 5317 JMP GETUNP / YES, GO HANDLE IT 2466 2467 GETUNY, AC0001 / NO, SET UP TO MOVE TO NEXT CHARACTER undefined ^ 010511 0000 2468 010512 4513 CURMOV / GO DO THE MOVE 2469 010513 5277 JMP GETUNZ / END OF FILE, GO HANDLE IT 2470 2471 010514 4766 JMS LODCHR / PICK UP THE NEXT AVAILABLE CHARACTER 2472 010515 5277 JMP GETUNZ / END OF FILE, GO HANDLE IT 2473 010516 5672 JMP I GETUNX / RETURN TO CHKUNT 2474 2475 /*************************************************************************** 2476 /**** CAUTION - RESIDENT OVERLAY AREA **** 2477 /**** THIS AREA IS OVERLAYED BY LIST PROCESSING AND SPELL **** 2478 /*************************************************************************** 2479 2480 2481 010517 2340 GETUNP, ISZ OVSFLG / SET OVERSTRIKE FLAG (DEAD KEY) 2482 010520 7710 GETUNO, SPA CLA / CHECK VALUE OF FLAG 2483 010521 5332 JMP GETUNR / JUMP IF END OF OVERSTRIKE 2484 2485 010522 4506 ADVPTR / ADVANCE TO NEXT BUFFER CHARACTER 2486 010523 5277 JMP GETUNZ / END OF FILE, GO HANDLE IT 2487 2488 TAD (-ECNDOV) / COMBINE WITH END OF DEAD KEY CODE undefined ^ undefined ^ 010524 1372 2489 010525 7640 SZA CLA / IS THIS THE END OF THE DEAD KEY SEQUENCE ? 2490 010526 5275 JMP GETUNQ / NO, GO AND GET THE CHARACTER BACK 2491 2492 AC7777 / YES, THIS IS THE END OF THE DEAD KEY undefined ^ 010527 0000 2493 010530 3340 DCA OVSFLG / SET END FLAG 2494 010531 5275 JMP GETUNQ / GO AND GET THE CHARACTER BACK 2495 2496 010532 3340 GETUNR, DCA OVSFLG / SHOW OVERSTRIKE DONE (DEAD KEY) 2497 010533 4506 ADVPTR / MOVE TO NEXT BUFFER CHARACTER 2498 010534 7000 NOP / GET PAST END CODE 2499 010535 4520 BKPSPC 2500 010536 7000 NOP / BACK UP TO BEGINNING 2501 010537 5311 JMP GETUNY / NOW REALLY ADVANCE OVER IT 2502 2503 010540 0000 OVSFLG, .-. 2504 2505 2506 2507 /*************************************************************************** 2508 /**** CAUTION - RESIDENT OVERLAY AREA **** 2509 /**** THIS AREA IS OVERLAYED BY LIST PROCESSING AND SPELL **** 2510 /*************************************************************************** 2511 2512 2513 / 2514 / A REQUEST FOR V2 GOTO-PAGE, GOLD:BOTTOM, OR GOTO-RULER 2515 / IS BEING PROCESSED. 2516 / 2517 / NOTE: 'OVEXIT' AND 'OVINIT' ARE CALLED AS SUBROUTINES, AND SO 2518 / MUST NOT USE ANY ADDITIONAL OVERLAYS (I.E., MUST NOT USE 'OVLJMP') 2519 / 2520 010541 4523 RPTOP, OVLJMP;OVEXIT / AC => 0, GO CLOSE DOC AND RETURN HERE 010542 4003 2521 010543 4523 OVLJMP;OVINIT / REOPEN DOCUMENT, THEREBY FILLING THE 010544 0410 2522 / APPROPIATE BUFFERS WITH THE DOCUMENT 2523 / HEADER BLOCK AND RPPGDS BLOCK 2524 2525 / PREVENT DISPLAY OF DOCUMENT HDR INFO 2526 / WHEN REPAINTING SCREEN 2527 CDFFIO / CHANGE TO FILE SYSTEM FIELD undefined ^ 010545 0000 2528 TAD I (SCFSPC) / GET NUMBER OF BLOCKS LEFT ON DISK undefined ^ undefined ^ 010546 1772 2529 010547 0000 CDFMYF / BACK TO THIS FIELD 2530 010550 4764 JMS MNUPUT / STORE VALUE FOR USE BY STATUS LINE 2531 LINFRE-MUBUF / LOCATION IN FIELD 2 FOR BLOCKS FREE undefined ^ 010551 0177 2532 2533 010552 4523 OVLJMP;OVRRP2 / GO PERFORM THE GOTO-PAGE, GOLD:BOTTOM, 010553 5401 2534 / OR GOTO-RULER REQUEST 2535 2536 010554 4523 EIHELP, OVLJMP;OVHELP / HELP COMMANDS undefined ^ 010555 0000 2537 010556 4523 EIINTB, OVLJMP;OVGLTB / GOLD:TAB (INDENT TABS) /A215 010557 6020 2538 X=. / INDICATE FIRST FREE LOCATION ON PAGE 2539 /--------------------- 2540 010564 1655 PAGE 010565 0667 010566 4241 010567 7505 010570 7673 010571 2362 010572 0000 010573 4347 010574 0020 010575 3400 010576 1426 010577 0324 2541 /*************************************************************************** 2542 /**** END OF RESIDENT OVERLAY AREA **** 2543 /**** PREVIOUS AREA IS OVERLAYED BY LIST PROCESSING AND SPELL **** 2544 /*************************************************************************** 2545 2546 2547 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 2548 2549 010600 7001 EIRBSE, IAC / RUB OUT SENTENCE 2550 010601 7001 EIRBWD, IAC / RUB OUT WORD 2551 010602 7001 EIRBLN, IAC / RUB OUT LINE 2552 EIRBCH, / RUB OUT CHARACTER 2553 010603 3134 DCA GRAMUN / SET UNIT TYPE 2554 TAD (ECTMRK) / INSERT MARKER undefined ^ undefined ^ 010604 1377 2555 010605 4776 JMS INSERT 2556 010606 4775 JMS BACKUN / BACK UP ONE UNIT 2557 010607 4774 JMS BEEPER 2558 010610 1373 TAD (CNTMOD) 2559 010611 5772 JMP DELUNT / USE DELETE CODE 2560 2561 010612 4256 CNTUN1, JMS CHKUNR 2562 CNTUNT, TAD (-ECTMRK) undefined ^ undefined ^ 010613 1377 2563 010614 7640 SZA CLA 2564 010615 5212 JMP CNTUN1 2565 010616 3535 DCA I CURPTR 2566 010617 4771 JMS SCRNMD / SHOW SCREEN MODIFIED 2567 010620 5352 JMP LSTUNT / QUIT WUEN MARK FOUND 2568 2569 010621 7001 GOTMRK, IAC 2570 010622 7001 SLXMOD, IAC 2571 010623 7001 EIENTR, IAC 2572 010624 7001 EIPAGE, IAC 2573 010625 7001 EIPARA, IAC 2574 010626 7001 EITABP, IAC 2575 010627 7001 EISENT, IAC 2576 010630 7001 EIWORD, IAC 2577 010631 7001 EILINE, IAC 2578 010632 3134 EICHAR, DCA GRAMUN / SET UNIT TYPE 2579 010633 4250 JMS SETUNT 2580 010634 1133 TAD EDMODE / GET CURRENT MODE 2581 010635 0370 AND (MVMASK) 2582 010636 1367 TAD (JMP I MVJTAB) / GET JUMP TO RIGHT ROUTINE 2583 010637 3240 DCA .+1 2584 010640 5400 JMP I .-. 2585 2586 010641 2235 MVJTAB, ADVUNT / ADVANCE 2587 BKPMOD= .-MVJTAB 2588 010642 2200 BKPUNT / BACK UP 2589 BLDMOD= .-MVJTAB 2590 010643 0336 BLDUNT / BOLD 2591 UDLMOD= .-MVJTAB 2592 010644 5350 UDLUNT / UNDER LINE 2593 NBDMOD= .-MVJTAB 2594 010645 0337 NBDUNT / REMOVE BOLD 2595 NUDMOD= .-MVJTAB 2596 010646 5351 NUDUNT / REMOVE UNDER LINE 2597 CASMOD= .-MVJTAB 2598 010647 4753 CASUNT / UPPER/LOWER CASE 2599 MVMASK= 7 2600 2601 SETUNT, XX / SET UNIT undefined ^ 010650 0000 2602 010651 1134 TAD GRAMUN 2603 010652 1366 TAD (JMP I MVCTAB) / MAKE JUMP OUT OF UNIT CODE 2604 010653 3270 DCA MVCODE / AND STORE IT 2605 010654 3141 DCA SCRLFL / CLEAR SCROLL FLAG 2606 010655 5650 JMP I SETUNT 2607 2608 CHKUNR, XX / USED FOR OFF-PAGE CALLS undefined ^ 010656 0000 2609 010657 4667 JMS I CHKUNT 2610 010660 5656 JMP I CHKUNR 2611 2612 CHKUNH, XX / SAME AS CHKUNR, BUT TEST HALT FLAG undefined ^ 010661 0000 2613 010662 4501 HLTTST 2614 AC7777 / RETURN "DONE" IF SET undefined ^ 010663 0000 2615 CDFBUF undefined ^ 010664 0000 2616 010665 4667 JMS I CHKUNT 2617 010666 5661 JMP I CHKUNH 2618 2619 CHKUNT, XX undefined ^ 010667 0000 2620 010670 5400 MVCODE, JMP I .-. 2621 2622 SETBNT, XX / SET FOR BACKUP undefined ^ 010671 0000 2623 010672 1365 TAD (MVBTAB-MVCTAB) 2624 010673 4250 JMS SETUNT 2625 010674 5671 JMP I SETBNT 2626 2627 010675 0752 MVBTAB, CHRBNT 2628 010676 0741 LINBNT 2629 010677 1001 WRDBNT 2630 010700 1046 SNTBNT 2631 010701 1061 TABBNT 2632 010702 1065 PARUNT 2633 010703 1123 PAGBNT 2634 010704 0720 FLDBNT 2635 2636 010705 0747 MVCTAB, CHRUNT 2637 010706 0741 LINUNT 2638 010707 1005 WRDUNT 2639 010710 1050 SNTUNT 2640 010711 1052 TABUNT 2641 010712 1065 PARUNT 2642 010713 1127 PAGUNT 2643 010714 0725 FLDUNT 2644 SLCTMD= .-MVCTAB / "SELECT" TYPE CODE 2645 010715 0755 SLTUNT 2646 CNTMOD= .-MVCTAB / "COUNT" TYPE CODE 2647 010716 0613 CNTUNT 2648 2649 ECFIEL= 76 / CODE FOR FIELD DELIMITER (RIGHT ANGLE) 2650 2651 010717 4256 FLDBN1, JMS CHKUNR 2652 FLDBNT, AND P177 undefined ^ undefined ^ 010720 0000 2653 010721 1364 TAD (-ECFIEL) 2654 010722 7650 SNA CLA 2655 010723 5317 JMP FLDBN1 2656 010724 4261 FLDBN2, JMS CHKUNH 2657 FLDUNT, AND P177 undefined ^ undefined ^ 010725 0000 2658 010726 1364 TAD (-ECFIEL) 2659 010727 7640 SZA CLA 2660 010730 5324 JMP FLDBN2 2661 FLDUN3, AC0001 undefined ^ 010731 0000 2662 010732 4261 JMS CHKUNH 2663 AND P177 undefined ^ undefined ^ 010733 0000 2664 010734 1364 TAD (-ECFIEL) 2665 010735 7650 SNA CLA 2666 010736 5331 JMP FLDUN3 2667 010737 5352 JMP LSTUNT 2668 2669 010740 4256 LINUN1, JMS CHKUNR 2670 LINUNT, 2671 010741 7200 LINBNT, CLA 2672 010742 1141 TAD SCRLFL 2673 010743 7450 SNA 2674 010744 5340 JMP LINUN1 2675 010745 7500 LINUN2, SMA 2676 010746 5352 JMP LSTUNT 2677 010747 7710 CHRUNT, SPA CLA 2678 TABUN2, AC0001 undefined ^ 010750 0000 2679 010751 4256 JMS CHKUNR / RETURN CODE TO CO-ROUTINE CALLER 2680 LSTUNT, 2681 CHRBNT, AC7777 / SET DONE CODE undefined ^ 010752 0000 2682 010753 5351 JMP LSTUNT-1 / GO RETURN CODE TO CALLER 2683 2684 010754 4256 SLTUN1, JMS CHKUNR / MAKE CALL TO CHKUNT 2685 010755 4763 SLTUNT, JMS ESLCTD / CHECK FOR SELECT MARK AND DELETE IT 2686 010756 5354 JMP SLTUN1 / NOT FOUND, GO CHECK NEXT CHARACTER 2687 010757 3133 DCA EDMODE / FOUND, CLEAR THE EDIT MODE FLAG 2688 010760 5352 JMP LSTUNT / GO RETURN DONE CODE TO CALLER 2689 2690 010761 0000 RPCUBK, 0 / Rapid Paging CUrrent BlocK id # 2691 2692 X=. / INDICATE FIRST FREE LOCATION ON PAGE 2693 /--------------- 2694 010763 1135 PAGE 010764 7702 010765 7770 010766 5705 010767 5641 010770 0007 010771 2267 010772 1601 010773 0011 010774 0324 010775 2203 010776 2000 010777 0000 2695 2696 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 2697 2698 2699 011000 4777 WRDUN1, JMS CHKUNR 2700 011001 4216 WRDBNT, JMS WRDTST 2701 011002 7650 SNA CLA 2702 011003 5200 JMP WRDUN1 2703 011004 4777 WRDUN2, JMS CHKUNR 2704 011005 4216 WRDUNT, JMS WRDTST 2705 011006 7640 SZA CLA 2706 011007 5204 JMP WRDUN2 2707 WRDUN3, AC0001 undefined ^ 011010 0000 2708 011011 4777 JMS CHKUNR 2709 011012 4216 JMS WRDTST 2710 011013 7650 SNA CLA 2711 011014 5210 JMP WRDUN3 2712 011015 5776 JMP LSTUNT 2713 2714 WRDTST, XX undefined ^ 011016 0000 2715 011017 4314 JMS PARCHK 2716 011020 7440 SZA 2717 TAD (ECNWPG-40) undefined ^ undefined ^ 011021 1375 2718 011022 7440 SZA 2719 TAD (40-ECTAB) undefined ^ undefined ^ 011023 1374 2720 011024 5616 JMP I WRDTST 2721 2722 SNTUNX, XX undefined ^ 011025 0000 2723 011026 7410 SKP 2724 011027 4777 SNTUN1, JMS CHKUNR 2725 011030 4216 JMS WRDTST 2726 011031 7650 SNA CLA 2727 011032 5227 JMP SNTUN1 2728 011033 4773 SNTUN3, JMS CHKUNH 2729 011034 4314 JMS PARCHK 2730 011035 7440 SZA 2731 TAD (ECNWPG-".+200) undefined ^ undefined ^ 011036 1372 2732 011037 7440 SZA 2733 011040 1371 TAD (".-"!) 2734 011041 7440 SZA 2735 011042 1370 TAD ("!-"?) 2736 011043 7640 SZA CLA 2737 011044 5233 JMP SNTUN3 2738 011045 5625 JMP I SNTUNX 2739 2740 011046 4225 SNTBNT, JMS SNTUNX 2741 011047 5210 JMP WRDUN3 2742 2743 011050 4225 SNTUNT, JMS SNTUNX 2744 011051 5211 JMP WRDUN3+1 2745 2746 TABUNT, AND P177 / MASK OFF ATTRIBUTES undefined ^ undefined ^ 011052 0000 2747 TAD (-ECTAB) undefined ^ undefined ^ 011053 1367 2748 011054 7650 SNA CLA 2749 011055 5766 JMP TABUN2 2750 011056 1141 TAD SCRLFL 2751 011057 7440 SZA 2752 011060 5765 JMP LINUN2 2753 011061 7200 TABBNT, CLA 2754 011062 4777 JMS CHKUNR 2755 011063 5252 JMP TABUNT 2756 2757 011064 4777 PARUN0, JMS CHKUNR 2758 011065 4314 PARUNT, JMS PARCHK 2759 011066 7650 SNA CLA 2760 011067 5264 JMP PARUN0 2761 011070 4773 PARUN1, JMS CHKUNH 2762 011071 7421 MQL 2763 011072 7501 MQA 2764 TAD (-ECPGRF) undefined ^ undefined ^ 011073 1367 2765 011074 7650 SNA CLA 2766 011075 5306 JMP PARUN2 / STOP QUICK ON GRAF MARKER 2767 011076 7501 MQA 2768 011077 4314 JMS PARCHK 2769 011100 7640 SZA CLA 2770 011101 5270 JMP PARUN1 2771 011102 4777 JMS CHKUNR 2772 011103 4314 JMS PARCHK 2773 011104 7640 SZA CLA 2774 011105 5270 JMP PARUN1 2775 PARUN2, AC0001 undefined ^ 011106 0000 2776 011107 4777 JMS CHKUNR 2777 011110 4314 JMS PARCHK 2778 011111 7650 SNA CLA 2779 011112 5306 JMP PARUN2 2780 011113 5776 JMP LSTUNT 2781 2782 PARCHK, XX undefined ^ 011114 0000 2783 AND P177 undefined ^ undefined ^ 011115 0000 2784 TAD (-ECNWLN) undefined ^ undefined ^ 011116 1367 2785 011117 7440 SZA 2786 TAD (ECNWLN-ECNWPG) undefined ^ undefined ^ undefined ^ undefined ^ 011120 1367 2787 011121 5714 JMP I PARCHK 2788 2789 011122 4777 PAGBN1, JMS CHKUNR 2790 011123 4216 PAGBNT, JMS WRDTST 2791 011124 7650 SNA CLA 2792 011125 5322 JMP PAGBN1 2793 011126 4773 PAGUN1, JMS CHKUNH 2794 PAGUNT, TAD (-ECNWPG) undefined ^ undefined ^ 011127 1367 2795 011130 7440 SZA 2796 TAD (ECNWPG-ECPMRK) undefined ^ undefined ^ undefined ^ undefined ^ 011131 1367 2797 011132 7640 SZA CLA 2798 011133 5326 JMP PAGUN1 2799 011134 5210 JMP WRDUN3 2800 2801 / IF AC= SELECT POINT 2802 / THEN BUMP RETURN ADDRESS 2803 / SET THE LINE MODIFIED FLAG 2804 / DELETE SELECT POINT FROM BUFFER 2805 / DELETE ALL CHARACTERS FOLLOWING IT UNTIL THE NEXT CHARACTER WHICH 2806 / IS NOT A JUSTIFIED SPACE OR A LINE MODIFIED CHARACTER OR A RULER 2807 / MODIFIED CHARACTER. 2808 / IF A RULER MODIFIED CHARACTER IS FOUND SET THE RULER MODIFIED FLAG 2809 2810 ESLCTD, XX undefined ^ 011135 0000 2811 TAD (-ECSLPT) / IF AC=SELECT POINT undefined ^ undefined ^ 011136 1367 2812 011137 7640 SZA CLA / 2813 011140 5735 JMP I ESLCTD / 2814 011141 2335 ISZ ESLCTD / THEN BUMP RETURN ADDRESS 2815 011142 4514 SLNMOD / SET LINE MODIFIED FLAG 2816 011143 3535 SLTUN2, DCA I CURPTR / LOOP, DELETE CHAR 2817 011144 4764 SLTUN4, JMS LODCHR / GET_CHAR (FROM EDIT BUFFER) 2818 011145 5735 JMP I ESLCTD / EXIT IF END OF FILE 2819 TAD (-ECJSPC) / EXIT IF CHAR .NE. (JUSTIFIED SPACE undefined ^ undefined ^ 011146 1367 2820 011147 7650 SNA CLA / 2821 011150 5343 JMP SLTUN2 / 2822 011151 4763 JMS CHKLMD / OR RULER MOD OR LINE MOD) 2823 011152 5735 JMP I ESLCTD / (RETURNS HERE IF NOT A 'MODIFIED' CHAR) 2824 011153 5344 JMP SLTUN4 / END_LOOP 2825 2826 X=. / INDICATE FIRST FREE LOCATION ON PAGE 2827 /--------------- 2828 011163 4733 PAGE 011164 4241 011165 0745 011166 0750 011167 0000 011170 7742 011171 0015 011172 7722 011173 0661 011174 0040 011175 7740 011176 0752 011177 0656 2829 2830 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 2831 2832 2833 ESMODE, XX / SET EDIT MODE undefined ^ 011200 0000 2834 011201 0000 CDFMYF 2835 AC7777 undefined ^ 011202 0000 2836 011203 1600 TAD I ESMODE / GET ARG PTR 2837 DCA X0 undefined ^ undefined ^ 011204 3000 2838 011205 1133 TAD EDMODE / GET MODE 2839 AND I X0 / CLEAR SOME,... undefined ^ undefined ^ 011206 0400 2840 TAD I X0 / ...AND SET SOME undefined ^ undefined ^ 011207 1400 2841 011210 3133 DCA EDMODE 2842 011211 2200 ISZ ESMODE / BUMP TO RTN ADR 2843 011212 5600 JMP I ESMODE / AND RETURN 2844 2845 2846 / ESAPTR ADVANCE CURPTR 1 CHARACTER 2847 / 2848 / THIS ROUTINE WILL ADVANCE TO THE NEXT NON-NULL CHARACTER AFTER 2849 / THE CURRENT POSITION. IT UPDATES CURPTR TO POINT TO THIS 2850 / CHARACTER. IF THE CURRENT CHAR POINTED TO IS A NULL THEN THE 2851 / FIRST NON-NULL CHARACTER IS RETURNED. IF THE CHAR CURRENTLY 2852 / POINTED TO IS NOT NULL THEN THE NEXT NON-NULL CHAR IS RETURNED. 2853 / 2854 / CALL: 2855 / 2856 / ADVPTR / CALLED THROUGH PAGE ZERO 2857 / 2858 / 2859 / 2860 ESAPTR, XX / ENTRY POINT TO ESAPTR undefined ^ 011213 0000 2861 011214 7200 CLA / GET CHARACTER AT CURRENT POSITION 2862 011215 4510 CHKPTR / RETURN AC < 0 IF ETX IN BUFFER 2863 / AC = 0 IF NULL CHAR 2864 / AC > 0 IF OK CHARACTER 2865 011216 7510 SPA / ETX IN BUFFER? 2866 011217 5231 JMP ESAPT2 / YES, GO GET CHAR FROM DISK 2867 011220 7640 SZA CLA / NULL? 2868 AC0001 / NOT NULL ADVANCE 1 CHAR undefined ^ 011221 0000 2869 011222 4512 ADVCHR / ADVANCE TO NEXT NON-NULL CHARACTER 2870 011223 7510 SPA / REAL CHARACTER (NOT ETX)? 2871 011224 5231 JMP ESAPT2 / ETX FOUND, GO EXPAND 2872 011225 2213 ESAPT1, ISZ ESAPTR / INCREMENT FOR SKIP RETURN 2873 011226 7410 SKP / SKIP OVER CLEAR FOR NON-SKIP RETURN 2874 011227 7200 ESAPT4, CLA / NON-SKIP RETURN SO CLEAR AC 2875 011230 5613 JMP I ESAPTR / BYE-BYE 2876 011231 4777 ESAPT2, JMS ESGETE / GET NEXT CHARACTER FROM DISK 2877 011232 7550 SPA SNA / LEGAL CHARACTER? 2878 011233 5227 JMP ESAPT4 / NO TAKE NON-SKIP RETURN. ETX IN FILE! 2879 011234 3535 DCA I CURPTR / PLACE CHARACTER IN BUFFER. OVERWRITING 2880 / ETX MARK 2881 AC0001 / MOVE FORWARD ONE CHARACTER undefined ^ 011235 0000 2882 011236 4510 CHKPTR / RETURN AC <= 0 THEN OK TO INSERT ETX MARK 2883 / AC > 0 THEN MUST SAVE CHAR FIRST 2884 011237 7750 SPA SNA CLA / OK TO OVERWRITE? 2885 011240 5243 JMP ESAPT3 / YES, GO SHOVE IT IN. 2886 011241 1535 TAD I CURPTR / GET CHARACTER TO WRITE TO DISK 2887 011242 4522 PUTSTX / PUT CHARACTER OUT TO DISK 2888 ESAPT3, TAD (ECETX) / RESTORE OVERWRITTEN ETX MARKER undefined ^ undefined ^ 011243 1376 2889 011244 3535 DCA I CURPTR 2890 AC7777 / BACKUP TO CHARACTER RETRIEVED FROM DISK undefined ^ 011245 0000 2891 011246 4510 CHKPTR 2892 011247 5225 JMP ESAPT1 / AND TAKE SKIP RETURN 2893 2894 / ESBPTR BACKUP CURPTR 1 CHARACTER 2895 / 2896 / THIS ROUTINE WILL BACKUP TO THE NEXT NON-NULL CHARACTER BEFORE 2897 / THE CURRENT POSITION. IT UPDATES CURPTR TO POINT CHARACTER. 2898 / IF THE CURRENT CHARACTER POINTED TO IS A NULL THEN THE FIRST 2899 / NON-NULL CHARACTER BEFORE THE CURRENT POSITION IS RETURNED. 2900 / 2901 / CALL: 2902 / 2903 / BKPPTR / CALL THROUGH PAGE ZERO LINK 2904 / 2905 / 2906 / 2907 ESBPTR, XX / ENTRY POINT undefined ^ 011250 0000 2908 ESBPT1, AC7777 / BACKUP ONE CHARACTER undefined ^ 011251 0000 2909 011252 4510 CHKPTR / RETURN AC < 0 IF STX IN BUFFER 2910 / AC = 0 IF NULL 2911 / AC > 0 IF LEGAL CHAR 2912 011253 7540 SMA SZA / LEGAL CHARACTER? 2913 011254 5275 JMP ESBPT3 / YES GO TAKE SUCCESSFUL EXIT 2914 011255 7700 SMA CLA / STX IN BUFFER? 2915 011256 5251 JMP ESBPT1 / NO, NULL SO LOOP TILL NON-NULL 2916 011257 4775 JMS ESGETS / GET CHARACTER FROM DISK 2917 011260 7550 SPA SNA / LEGAL CHAR? 2918 011261 5277 JMP ESBPT4 / STX IN FILE GO EXIT 2919 011262 3535 DCA I CURPTR / PUT CHARACTER IN TEXT BUFFER 2920 AC7777 / BACKUP A CHARACTER undefined ^ 011263 0000 2921 011264 4510 CHKPTR / RETURN AC <= 0 THEN OK TO INSERT STX 2922 / AC > 0 THEN PUT CHAR TO DISK 2923 011265 7750 SPA SNA CLA / MUST SAVE CHARACTER? 2924 011266 5271 JMP ESBPT2 / NO CAN OVERWRITE 2925 011267 1535 TAD I CURPTR / GET CHARACTER FROM BUFFER AND 2926 011270 4521 PUTETX / WRITE TO DISK 2927 ESBPT2, TAD (ECETX) / INSERT START OF TEXT MARK undefined ^ undefined ^ 011271 1376 2928 011272 3535 DCA I CURPTR / INTO BUFFER 2929 AC0001 / REPOSITION OVER CHARACTER BACKED UP TO undefined ^ 011273 0000 2930 011274 4510 CHKPTR 2931 011275 2250 ESBPT3, ISZ ESBPTR / SUCCEEDED SO SKIP RETURN 2932 011276 5650 JMP I ESBPTR / BYE BYE 2933 ESBPT4, AC0001 / REPOSITION OVER FIRST CHARACTER IN FILE undefined ^ 011277 0000 2934 011300 4510 CHKPTR 2935 011301 7200 CLA / CLEAR AC SINCE NOT FOUND 2936 011302 5650 JMP I ESBPTR / AND TAKE FAILURE RETURN 2937 2938 EIPGRF, TAD (ECPGRF-ECNWLN) / Paragraph marker. undefined ^ undefined ^ undefined ^ undefined ^ 011303 1376 2939 EINWLN, TAD (ECNWLN-ECENLN) / Offset to GOLD:CENTER undefined ^ undefined ^ undefined ^ undefined ^ 011304 1376 2940 DCA T2 / save for overlay. undefined ^ undefined ^ 011305 3000 2941 011306 4523 OVLJMP;OVNWLN / Process new-line (check for CENTERED). 011307 2403 2942 TAD T2 / Get return code. undefined ^ undefined ^ 011310 1000 2943 EICENT, TAD (ECENLN-ECTAB) undefined ^ undefined ^ undefined ^ undefined ^ 011311 1376 2944 EITAB, TAD (ECTAB-ECPHYP) undefined ^ undefined ^ undefined ^ undefined ^ 011312 1376 2945 EIHYP1, TAD (ECPHYP) undefined ^ undefined ^ 011313 1376 2946 EINSRT, 2947 011314 4774 EIFXT1, JMS CHKSPC / CHECK FOR SPACE BEFORE INSERTING ANYTHING 2948 CDFBUF / LET'S PUT THIS IN THE RIGHT FIELD, NOW undefined ^ 011315 0000 2949 011316 4773 JMS ESIMCH / INSERT IT /M241 2950 011317 5772 JMP EIFXT2 2951 2952 SWTHMA, XX / "MA" SWTHMA ROUTINE undefined ^ 011320 0000 2953 CDFMNU / CHANGE TO MENU DATA FIELD undefined ^ 011321 0000 2954 011322 7650 SNA CLA / WANT TO SAVE THE "MA" SWITCH? 2955 011323 5330 JMP SWTHM1 / NO: THEN RESTORE "MA" ORIGINAL STATE 2956 TAD I (MUBUF+MNMATH) / YES: THEN GET THE "MA" PRESENT SETTING undefined ^ undefined ^ undefined ^ undefined ^ 011324 1776 2957 011325 3334 DCA STORMA / SAVE IT FOR AFTER G-T-P OR GOLD-BOT DONE 2958 DCA I (MUBUF+MNMATH) / SHUT SWITCH TO DEACTIVATE MATH FOR NOW undefined ^ undefined ^ undefined ^ undefined ^ 011326 3776 2959 011327 5332 JMP SWTHM2 / GO SET UP TO RETURN TO CALLER 2960 011330 1334 SWTHM1, TAD STORMA / GET BACK THE ORIGINAL "MA" SETTING 2961 DCA I (MUBUF+MNMATH) / RESTORE THE "MA" SWITCH SETTING undefined ^ undefined ^ undefined ^ undefined ^ 011331 3776 2962 SWTHM2, CDIEDT / CHANGE BACK TO EDITOR DATA FIELD undefined ^ 011332 0000 2963 011333 5720 JMP I SWTHMA / RETURN TO CALLER 2964 2965 011334 0000 STORMA, 0 / HOLDS ORIGINAL SETTING OF MA SWITCH 2966 2967 HDRPUT, XX / JMS HDRPUT - HDROFST (AC=VALUE) undefined ^ 011335 0000 2968 011336 0000 CDFMYF 2969 011337 7421 MQL 2970 AC7776 undefined ^ 011340 0000 2971 011341 1735 TAD I HDRPUT 2972 011342 2335 ISZ HDRPUT 2973 CIFFIO undefined ^ 011343 0000 2974 FILEIO undefined ^ 011344 0000 2975 XHDRPT undefined ^ 011345 0000 2976 011346 5735 JMP I HDRPUT 2977 2978 2979 / SVSLCR SAVE SELECT CURSOR POSITION /A209 2980 / /A209 2981 / THIS ROUTINE IS USED FOR RECTANGULAR CUT AND PASTE TO GIVE /A209 2982 / ONE OF THE COLUMN DELIMITER BOUNDARIES /A209 2983 / /A209 2984 / CALL: /A209 2985 / /A209 2986 / JMS SVSLCR /A209 2987 / /A209 2988 / /A209 2989 / N O T E ! ! ! /A209 2990 / ------------- /A209 2991 / /A209 2992 / THE LOCATION SLCRPT MUST REMAIN ON THE /A209 2993 / SAME PAGE AS THE SVSLCR CODE. IF IT IS /A209 2994 / MOVED TO A DIFFERENT PAGE (OTHER THAN ZERO) /A209 2995 / THIS ROUTINE WILL NOT WORK!!!! /A209 2996 / /A209 2997 / /A209 2998 SVSLCR, XX /ENTRY POINT /A209 undefined ^ 011347 0000 2999 011350 1136 TAD CURSOR /GET CURRENT CURSOR POSITION /A209 3000 011351 3353 DCA SLCRPT /SAVE SELECT CURSOR POSITION /A209 3001 011352 5747 JMP I SVSLCR /RETURN /A209 3002 011353 0000 SLCRPT, ZBLOCK 1 /SELECT CURSOR POSITION SAVE LOCATION /A209 3003 3004 CTB009, ECSLPT; SCRTM1 / SELECT POINT undefined ^ 011354 0000 011355 3046 3005 ECPCT2; SCRTM2 / END CONTROL undefined ^ 011356 0000 011357 3045 3006 ECPCT1; SCRTM4 / START CONTROL undefined ^ 011360 0000 011361 3044 3007 011362 0000 0 / INDICATE END OF TABLE 3008 3009 3010 X=. / INDICATE FIRST FREE LOCATION ON PAGE 3011 /--------------- 3012 011372 0401 PAGE 011373 5412 011374 4200 011375 4020 011376 0000 011377 4014 3013 3014 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 3015 3016 3017 IFDEF CONDOR < DM1ADJ= 0 > / SCREEN LINE ADJUSTMENT FOR DECMATE 2 /A226 3018 IFNDEF CONDOR < DM1ADJ= -12 > / SCREEN LINE ADJUSTMENT FOR DECMATE 1 /A226 3019 3020 / REPOSITION CURSOR BY SENDING ESCAPE SEQUENCE: 3021 / [ CURLIN ; CURSOR H 3022 3023 PCUR, XX undefined ^ 011400 0000 3024 011401 3046 DCA CURPOS / SAVE THE AC 3025 3026 / PUT OUT THE CONTROL STRING INTRODUCER. 3027 3028 011402 4515 PUTESC / OUTPUT AN ESCAPE CHARACTER TO SCREEN 3029 011403 0133 "[-200 / FOLLOWED BY THE "[" CHARACTER 3030 3031 / PUT OUT THE FIRST DIGIT STRING. 3032 3033 011404 1177 TAD WIDNAR / GET THE WIDE-NARROW FLAG /C226 3034 011405 7650 SNA CLA / IN SPLIT SCREEN MODE ? /C226 3035 011406 1377 TAD (DM1ADJ) / YES, MAKE SCREEN ADJUSTMENT FOR DMI /C226 3036 011407 1144 TAD CURLIN / NO, COMBINE WITH CURRENT LINE COUNT 3037 011410 1176 TAD SCRNLN / ADD SIZE OF SCROLL AREA 3038 CIFMNU / INVOKE THE OUTDIG ROUTINE TO OUTPUT THE undefined ^ 011411 0000 3039 JMS OUTDIG / LINE POSITION IN BASE 10 ARGUMENTS. undefined ^ undefined ^ 011412 4000 3040 3041 011413 1376 TAD (";-200) / INSERT A SEMI-COLON BETWEEN ARGUMENTS 3042 011414 4503 PUTOUT 3043 3044 / PUT OUT THE SECOND DIGIT STRING. 3045 3046 011415 1046 TAD CURPOS / GET THE CURSOR POSITION 3047 011416 7510 SPA / IF DESIRED POSITION IS LEFT OF SCREEN 3048 011417 7200 CLA / THEN DO COLUMN 1 3049 3050 / FOR SOME REASON, THIS ARGUMENT IS ONE TOO SMALL. HENCE, 3051 / IN VT-278 MODE WE INCREMENT BEFORE CALLING OUTDIG 3052 011420 7001 IAC / INCREMENT THE COLUMN NUMBER 3053 3054 CIFMNU / INVOKE THE OUTDIG ROUTINE TO OUTPUT THE undefined ^ 011421 0000 3055 JMS OUTDIG / COLUMN POSITION IN BASE 10 ARGUMENTS. undefined ^ undefined ^ 011422 4000 3056 3057 011423 1375 TAD ("H-200) / PUT OUT THE ENDING H 3058 011424 4503 PUTOUT 3059 011425 5600 JMP I PCUR / RETURN 3060 3061 / TEST LIMITS FOR 132 COLUMN MODE OF VT100 3062 TSTLIM, XX undefined ^ 011426 0000 3063 /D226 TAD SPLTFL / IN SPLIT SCREEN MODE? 3064 /D226 SNA CLA / SKIP IF YES. 3065 /D226 JMP TSTLMB / JMP TO RETAIN/SET 80 COL MODE. 3066 011427 1177 TAD WIDNAR / GET OFFSET FOR WIDE/NARROW (0 OR 52) /A223 3067 011430 1374 TAD (-WIDTH) / ADD NEGATIVE SCREEN WIDTH = -132 OR -80 3068 011431 3274 DCA SCNSZ / STORE FOR SCREEN SIZE CHECK /A223 3069 011432 1177 TAD WIDNAR / GET OFFSET AGAIN (0 OR 52) /A223 3070 011433 7440 SZA / /A223 3071 011434 1373 TAD (4) / FIX MARGIN TEST OFFSET (0 OR 56) /A223 3072 011435 1372 TAD (-COLLIM-2+WIDTH) /-242+132=-110 (+0 OR 56 = -110 OR -54) /M223 3073 011436 3301 DCA MARG / STORE AS MARGIN CHECKER /A223 3074 011437 1136 TAD CURSOR / 3075 011440 1301 TAD MARG / /A223 3076 011441 7750 SPA SNA CLA / IS CURSOR IN LEFTMOST PART OF SCREEN? 3077 011442 5267 JMP TSTLMA / JMP IF YES. SET LOWLIM. 3078 011443 1136 TSTLMD, TAD CURSOR /A223 3079 011444 1274 TAD SCNSZ /A223 3080 011445 7510 SPA / IS CURSOR IN RIGHT PART OF SCREEN? /M223 3081 011446 5257 JMP TSTLME / NO, /M226 3082 011447 1047 TAD LOWLIM / YES; WITHIN BOUNDS OF THIS SCREEN? /A223 3083 011450 7710 SPA CLA /A223 3084 011451 5257 JMP TSTLME / MAYBE /A223 3085 011452 1301 TAD MARG / NO, ADJUST LOW LIMIT BY SCREEN MARGIN /A223 3086 011453 1047 TSTLMF, TAD LOWLIM /A223 3087 011454 3047 DCA LOWLIM /A223 3088 011455 4771 JMS CLSSET / INITIALIZE SCROLL POINTERS FOR STATUS 3089 011456 5243 JMP TSTLMD / RE-CHECK FOR NEXT SCREEN /A223 3090 011457 7200 TSTLME, CLA /A226 3091 011460 1136 TAD CURSOR / DID WE BACKUP PAST LOW LIMIT OF SCREEN?/A223 3092 011461 1047 TAD LOWLIM / /A223 3093 011462 7700 SMA CLA /A223 3094 011463 5273 JMP TSTLMX / NO /A223 3095 011464 1301 TAD MARG / YES, ADJUST LOW LIMIT DOWN BY MARGIN /A223 3096 011465 7041 CIA 3097 011466 5253 JMP TSTLMF / /A223 3098 3099 011467 1047 TSTLMA, TAD LOWLIM / YES. /A223 3100 011470 7640 SZA CLA / IS LOWLIM SET TO LEFT? /A223 3101 011471 4771 JMS CLSSET / NO, INIT SCROLL POINTERS FOR STATUS /A223 3102 011472 3047 TSTLMB, DCA LOWLIM / RESET LOWLIM FOR 80 COL RESET. 3103 011473 5626 TSTLMX, JMP I TSTLIM 3104 3105 011474 7660 SCNSZ, -COLM81 / SCREEN SIZE (-132 OR -80), INIT:NARROW/A223 3106 3107 CENTER, XX / CENTER LINE undefined ^ 011475 0000 3108 CIFMNU / CALL IN MENU FIELD /M217 undefined ^ 011476 0000 3109 011477 5770 JMP EFCNTR /M217 3110 011500 5675 CNTREX, JMP I CENTER / RETURN /M217 3111 3112 /KEEP NEXT TWO LINES TOGETHER!!! /A223 3113 MARG, / MARGIN CHECK SIZE FOR WIDE/NARROW /A223 3114 LNECHT, XX / ECHO HYPHEN OR SELECT POINT undefined ^ 011501 0000 3115 TAD (-ECHYLN) / compare with hyphen character undefined ^ undefined ^ 011502 1367 3116 011503 7450 SNA / Is it a hyphen? 3117 011504 5313 JMP LNECH1 / yes, so print hyphen character 3118 TAD (ECHYLN-ECSLPT) / no, is it a select point? undefined ^ undefined ^ undefined ^ undefined ^ 011505 1367 3119 011506 7640 SZA CLA 3120 011507 5701 JMP I LNECHT / no, return to caller 3121 3122 / Here if character is a select point 3123 011510 4766 JMS PUTSPC / yes, display select point in 3124 EXGSLC / special graphics mode then return undefined ^ 011511 0000 3125 011512 5701 JMP I LNECHT / 3126 3127 / Here if character is a hyphen 3128 011513 1175 LNECH1, TAD CHRATR / GET ATTRIBUTE OF PREVIOUS CHAR TO 3129 / APPEND W/HYPHEN 3130 011514 1365 TAD (55) 3131 011515 4503 PUTOUT / DO HYPHEN 3132 011516 5701 JMP I LNECHT 3133 3134 SCRLTX, XX / REFRESH CURRENT CURSOR LINE undefined ^ 011517 0000 3135 011520 1364 TAD (PTRBLK+NPTRS-1) 3136 011521 3347 DCA SCRLT1 3137 011522 1135 TAD CURPTR 3138 011523 3350 DCA SCRLT2 / SAVE CURPTR 3139 011524 1136 TAD CURSOR 3140 011525 3351 DCA SCRLT3 / AND CURSOR 3141 011526 3046 DCA CURPOS / RESET CHAR COUNTER TO START OF LINE. 3142 011527 1747 TAD I SCRLT1 / GET LINE PTR 3143 011530 7450 SNA 3144 011531 5341 JMP SCRLTY / CHECK FOR STX MSG IF 0 3145 011532 3135 DCA CURPTR 3146 011533 4763 JMS PUTLIN 3147 011534 1350 TAD SCRLT2 3148 011535 3135 DCA CURPTR / RESTORE 3149 011536 1351 TAD SCRLT3 3150 011537 3136 DCA CURSOR 3151 011540 5346 JMP SCRLTZ / AND RETURN 3152 011541 2347 SCRLTY, ISZ SCRLT1 3153 011542 1747 TAD I SCRLT1 / TEST ONE AFTER THE NULL 3154 011543 7640 SZA CLA 3155 011544 1362 TAD (STXMSG) 3156 011545 4761 JMS PGMSG / OUTPUT --TOP-- OR BLANKS 3157 011546 5717 SCRLTZ, JMP I SCRLTX / AND RETURN 3158 3159 011547 0000 SCRLT1, 0 3160 011550 0000 SCRLT2, 0 3161 011551 0000 SCRLT3, 0 3162 3163 EISUBS, AC7776 undefined ^ 011552 0000 3164 3165 011553 3154 EISUPS, DCA CASBIT 3166 011554 4523 OVLJMP;OVSUPS 011555 3005 3167 3168 X=. / INDICATE FIRST FREE LOCATION ON PAGE 3169 /--------------- 3170 011561 4707 PAGE 011562 7635 011563 4602 011564 6250 011565 0055 011566 2147 011567 0000 011570 2600 011571 2141 011572 7622 011573 0004 011574 7574 011575 0110 011576 0073 011577 7766 3171 3172 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 3173 3174 3175 EIDLTW, AC0002 / SET GRAMMATICAL UNIT FOR WORD DELETION undefined ^ 011600 0000 3176 EIDLTC, / SET GRAMMATICAL UNIT FOR CHARACTER DELETION 3177 011601 3134 DELUNT, DCA GRAMUN 3178 011602 4523 OVLJMP;OVDLTE / JUMP TO DELETE OVERLAY 011603 1001 3179 3180 CHKRPC, XX / CHECK FOR ECSTRL (START OF RULER), undefined ^ 011604 0000 3181 / ECPCT1 (START CONTROL), 3182 / ECPCT2 (END CONTROL) 3183 / RTN 1 IF ECSTRL 3184 / RTN 2, AC=0 IF REDUNDANT PCTL 3185 / RTN 2, AC=INPUT IF OK 3186 011605 7421 MQL 3187 011606 7501 MQA 3188 3189 /D206 TAD (-ECSTRL) 3190 /D206 SZA 3191 /D206 ISZ CHKRPC / BUMP RTN ADDR IF NOT RLR START 3192 /D206 TAD (ECSTRL-ECPCT2) 3193 /D206 SNA 3194 /D206 JMP CHKRP2 / JUMP IF END PRINT CNTRL 3195 /D206 TAD (ECPCT2-ECPCT1) 3196 /D206 SZA 3197 3198 011607 4500 ZZCASE /A206 3199 011610 1620 CTB015-1 /A206 3200 3201 / ECSTRL; CHKRP1 / START RULER /A206 3202 / ECPCT2; CHKRP2 / END CONTROL /A206 3203 / ECPCT1; CHKRP3 / START CONTROL /A206 3204 / 0 /A206 3205 3206 011611 2204 ISZ CHKRPC /A206 3207 011612 5217 JMP CHKRP1 / JUMP IF NOT PRINT CNTRL 3208 CHKRP3, AC0001 / CHECK FOR REDUNDANT CONTROL /M206 undefined ^ 011613 0000 3209 011614 2204 CHKRP2, ISZ CHKRPC / SET TO SKIP RETURN /A206 3210 011615 1142 TAD PCTLFL 3211 011616 7440 SZA / SKIP IF REDUNDANT 3212 011617 7701 CHKRP1, CLA MQA / ELSE RETURN INPUT 3213 011620 5604 JMP I CHKRPC 3214 3215 CTB015, ECSTRL; CHKRP1 / START RULER /A206 undefined ^ 011621 0000 011622 1617 3216 ECPCT2; CHKRP2 / END CONTROL /A206 undefined ^ 011623 0000 011624 1614 3217 ECPCT1; CHKRP3 / START CONTROL /A206 undefined ^ 011625 0000 011626 1613 3218 011627 0000 0 /A206 3219 3220 PTDASH, XX / OUTPUT ARG2 A TOTAL OF ARG1 TIMES undefined ^ 011630 0000 3221 011631 0000 CDFMYF 3222 011632 1630 TAD I PTDASH 3223 011633 3242 DCA PTDSH1 3224 011634 1377 PTDSHA, TAD ("-&177) 3225 011635 4503 PUTOUT 3226 011636 2242 ISZ PTDSH1 3227 011637 5234 JMP PTDSHA 3228 011640 2230 ISZ PTDASH 3229 011641 5630 JMP I PTDASH 3230 011642 0000 PTDSH1, .-. 3231 3232 MNUGET, XX / JMS MNUGET - MNOFST - RETURNS VALUE IN AC undefined ^ 011643 0000 3233 011644 0000 CDFMYF 3234 011645 1643 TAD I MNUGET / GET OFFSET 3235 011646 2243 ISZ MNUGET 3236 TAD MNUCAL+1 / ADD BASE undefined ^ undefined ^ 011647 1001 3237 DCA T1 undefined ^ undefined ^ 011650 3000 3238 CDFMNU undefined ^ 011651 0000 3239 TAD I T1 / GET VALUE undefined ^ undefined ^ 011652 1400 3240 011653 0000 CDFMYF 3241 011654 5643 JMP I MNUGET / AND RETURN 3242 3243 MNUPUT, XX / JMS MNUPUT - MNOFST undefined ^ 011655 0000 3244 / EXPECTS VALUE IN AC 3245 DCA T2 / SAVE VALUE undefined ^ undefined ^ 011656 3000 3246 011657 0000 CDFMYF 3247 011660 1655 TAD I MNUPUT / GET OFFSET 3248 011661 2255 ISZ MNUPUT 3249 TAD MNUCAL+1 / ADD BASE undefined ^ undefined ^ 011662 1001 3250 DCA T1 undefined ^ undefined ^ 011663 3000 3251 CDFMNU undefined ^ 011664 0000 3252 TAD T2 undefined ^ undefined ^ 011665 1000 3253 DCA I T1 / STORE VALUE undefined ^ undefined ^ 011666 3400 3254 011667 0000 CDFMYF 3255 011670 5655 JMP I MNUPUT / AND RETURN 3256 3257 SCRLPX, XX / SET UP AUTO-INDEX REGISTERS FOR SCRLUP undefined ^ 011671 0000 3258 011672 1376 TAD (PTRBLK) / GET POINTER TO POINTER BLOCK 3259 DCA X0 / STORE IN AUTO-INDEX REGISTER undefined ^ undefined ^ 011673 3000 3260 011674 1375 TAD (PTRBLK-1) / GET POINTER TO POINTER BLOCK -1 3261 DCA X1 / STORE IN AUTO-INDEX REGISTER undefined ^ undefined ^ 011675 3000 3262 011676 1374 TAD (-NPTRS+1) / PICK UP ONE LESS LINE COUNT 3263 DCA X2 / STORE VALUE IN COUNTER undefined ^ undefined ^ 011677 3000 3264 011700 5671 JMP I SCRLPX / RETURN BACK TO SCRLUP ROUTINE 3265 3266 / THIS ROUTINE WILL BACK UP TO THE NEXT CHARACTER. IF THE CHARACTER IS 3267 / AN END DEAD KEY SEQUENCE CODE THEN IT WILL BACK UP UNTIL IF FINDS THE 3268 / START DEAD KEY SEQUENCE AND RETURN THAT CHARACTER. 3269 / IT TAKES A SKIP RETURN UNLESS IT FINDS THE START_OF_TEXT IN WHICH CASE 3270 / IT TAKES A REGULAR RETURN 3271 / DATA FIELD MUST BE SET TO BUFFER FIELD (CDFBUF) 3272 ESBSPC, XX / BACK UP CHARACTER (BKPSPC) undefined ^ 011701 0000 3273 011702 4507 ESBSP3, BKPPTR 3274 011703 5701 JMP I ESBSPC / BACK UP TO FIRST NON_NULL CHARACTER 3275 TAD (-ECNDOV) / IF CHAR = END_DEAD_KEY_SEQUENCE undefined ^ undefined ^ 011704 1373 3276 011705 7640 SZA CLA / THEN 3277 011706 5314 JMP ESBSP2 / REPEAT 3278 011707 4507 ESBSP1, BKPPTR 3279 011710 5701 JMP I ESBSPC / BACK UP TO FIRST NON_NULL 3280 TAD (-ECSTOV) / undefined ^ undefined ^ 011711 1373 3281 011712 7640 SZA CLA / 3282 011713 5307 JMP ESBSP1 / UNTIL CHAR = START_DEAD_KEY_SEQUENCE 3283 011714 1535 ESBSP2, TAD I CURPTR / GET CHAR AGAIN 3284 011715 2301 ISZ ESBSPC / BUMP RETURN ADDRESS 3285 011716 5701 JMP I ESBSPC / RETURN 3286 3287 / THIS ROUTINE ADVANCES TO THE NEXT CHARACTER WHICH TAKES A SPACE ON THE SCREEN 3288 / THEREFOR IT WILL RETURN THE FIRST CHARACTER OF A DEAD KEY SEQUENCE BUT NOT 3289 / ANY CHARACTER FOLLOWING IN THAT SEQUENCE. 3290 ESASPC, XX / ADVANCE SPACE (ADVSPC) undefined ^ 011717 0000 3291 011720 7200 CLA / CLEAR AC 3292 011721 4510 CHKPTR / GET CURRENT CHARACTER 3293 011722 7500 SMA 3294 011723 5326 JMP ESASP1 / USE LODCHR ONLY IF MIGHT BE ETX 3295 011724 4506 ADVPTR / ETX IN BUFFER GET NEXT CHAR FROM FILE 3296 011725 5717 JMP I ESASPC / 3297 ESASP1, TAD (-ECSTOV) / IF LAST CHARACTER RETURNED FROM THIS ROUTINE undefined ^ undefined ^ 011726 1373 3298 / WAS START OF DEAD KEY SEQUENCE 3299 011727 7640 SZA CLA / THEN SKIP OVER ALL REMAIN CHARS IN SEQUENCE 3300 011730 5336 JMP ESASP3 / 3301 / REPEAT 3302 011731 4506 ESASP2, ADVPTR 3303 011732 5717 JMP I ESASPC / GET PART OF COMPOSITE CHARACTER 3304 TAD (-ECNDOV) / undefined ^ undefined ^ 011733 1373 3305 011734 7640 SZA CLA / 3306 011735 5331 JMP ESASP2 / UNTIL CHAR = END OF DEAD KEY SEQUENCE 3307 / REPEAT 3308 011736 4506 ESASP3, ADVPTR 3309 011737 5717 JMP I ESASPC / GET CHARACTER 3310 011740 2317 ISZ ESASPC / BUMP RETURN ADDRESS 3311 011741 5717 JMP I ESASPC / RETURN TO CALLER WITH CHAR IN AC 3312 3313 SCHMOD= 10 / SEARCH MODE FLAG 3314 SLTMOD= 20 / SELECT MODE FLAG 3315 3316 011742 0030 EDTMOD, SCHMOD!SLTMOD / CLEAR SEARCH AND SELECT MODE BITS 3317 011743 0000 0 / DON'T SET ANY MODE BITS 3318 3319 SETCUR, XX undefined ^ 011744 0000 3320 011745 1047 TAD LOWLIM 3321 011746 1136 TAD CURSOR 3322 011747 4772 JMS PCUR 3323 011750 5744 JMP I SETCUR 3324 3325 / THE FOLLOWING IS USED BY V2 GOTO PAGE OVERLAYS... 3326 3327 011751 0001 CURPG1, 1 / EDIT BUFFER PAGE # (UNITS,TENS,HUNDREDS) 3328 3329 / THE FOLLOWING ROUTINE IS CALLED BY BOTH SCRLUP AND SCRLDN. IT 3330 / COUNTS THE NUMBER OF LINES SCROLLED (CNSCRL) FOR THE PREV/NEXT 3331 / SCREEN ROUTINES (DOES NOT ADJUST PAST 0) 3332 / ENTER: AC = SCROLL DIRECTION (+=UP, -=DOWN) 3333 / 3334 / WHEN IT IS DONE COUNTING, THE ROUTINE GETS THE SCROLL DIRECTION 3335 / BACK AND CALLS ROUTINE SCRADJ (NOTE THAT CALLS TO THIS ROUTINE 3336 / REPLACED CALLS TO ROUTINE SCRADJ IN THE TWO SCROLLING MODULES) 3337 3338 SCRAD0, XX undefined ^ 011752 0000 3339 DCA T1 / SAVE THE SCROLL DIRECTION undefined ^ undefined ^ 011753 3000 3340 011754 1363 TAD CNSCRL / GET THE COUNTER 3341 011755 7440 SZA / IF IT'S 0, KEEP IT THERE 3342 TAD T1 / INCREMENT OR DECREMENT undefined ^ undefined ^ 011756 1000 3343 011757 3363 DCA CNSCRL / AND STORE IT BACK 3344 TAD T1 / GET SCROLL DIRECTION BACK undefined ^ undefined ^ 011760 1000 3345 011761 4771 JMS SCRADJ / GO WHERE WE HEADED IN THE 1ST PLACE 3346 011762 5752 JMP I SCRAD0 / AND THEN BACK TO WHERE WE CAME FROM 3347 3348 011763 0000 CNSCRL, .-. / THE COUNTER 3349 3350 3351 / 3352 / GOTO-RULER VARIABLE 3353 / 3354 011764 0000 RRDIR, .-. / DIRECTION WE ARE MOVING TO RULER: 3355 / 1 = ADVANCING 3356 / -1 = BACKING UP 3357 / 0 = NOT DOING GOTO-RULER 3358 3359 3360 011765 4523 EIGADV, OVLJMP;OVGADV / GOLD ADVANCE 011766 2402 3361 3362 X=. / INDICATE FIRST FREE LOCATION ON PAGE 3363 /--------------- 3364 011771 2314 PAGE 011772 1400 011773 0000 011774 7751 011775 6220 011776 6221 011777 0055 3365 3366 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 3367 3368 3369 INSERT, XX / INSERT (AC) IN BUFFER undefined ^ 012000 0000 3370 012001 3330 DCA ESICH1 / SAVE CHAR 3371 012002 1135 TAD CURPTR 3372 012003 3331 DCA ESICH2 / AND CURPTR 3373 012004 3332 DCA ESICH3 / INIT CNTR 3374 012005 4510 ESICHA, CHKPTR / CHECK CURPTR 3375 012006 7750 SNA SPA CLA 3376 012007 5225 JMP ESICHX / JUMP ON ETX OR NULL 3377 012010 1330 TAD ESICH1 3378 012011 7421 MQL / GET INSERT 3379 012012 1535 TAD I CURPTR / GET CURRENT CHAR 3380 012013 7521 ESICHE, SWP / SWAP THEM 3381 012014 3535 DCA I CURPTR / STORE INSERT 3382 012015 2332 ISZ ESICH3 / BUMP CNTR 3383 012016 2135 ISZ CURPTR / AND CURRENT PTR 3384 012017 1535 TAD I CURPTR / GET NEXT CHAR 3385 012020 7540 SMA SZA 3386 012021 5213 JMP ESICHE / LOOP IF NOT SPECIAL 3387 012022 7701 CLA MQA 3388 012023 3330 DCA ESICH1 / SAVE NEXT INSERT 3389 012024 5205 JMP ESICHA / AND LOOP 3390 3391 012025 1535 ESICHX, TAD I CURPTR / NULL? 3392 012026 7650 SNA CLA 3393 012027 5323 JMP ESICHB / JUMP IF SO 3394 012030 7300 CLA CLL 3395 012031 1377 TAD (-400) 3396 012032 1332 TAD ESICH3 3397 012033 7630 SZL CLA 3398 012034 5247 JMP ESICHZ / JUMP IF NEAR STX 3399 012035 1330 TAD ESICH1 / GET INSERT 3400 012036 3535 ESICHK, DCA I CURPTR / STORE OVER ETX 3401 AC0001 undefined ^ 012037 0000 3402 012040 4510 CHKPTR / ADVANCE CURPTR 3403 012041 7750 SPA SNA CLA 3404 012042 5245 JMP ESICHY / JUMP ON NULL OR ETX 3405 012043 1535 TAD I CURPTR / ELSE OUTPUT IT 3406 012044 4522 PUTSTX 3407 ESICHY, TAD (ECETX) undefined ^ undefined ^ 012045 1376 3408 012046 5324 JMP ESICHC 3409 012047 1375 ESICHZ, TAD (-100) 3410 012050 3332 DCA ESICH3 / SET LOOP COUNT 3411 012051 1135 TAD CURPTR 3412 012052 3333 DCA ESICH4 / SAVE ETX CURPTR 3413 012053 1330 TAD ESICH1 / GET INSERT 3414 012054 4521 ESICHF, PUTETX / PUT IT OUT 3415 AC7777 undefined ^ 012055 0000 3416 012056 4510 CHKPTR / BACKUP 3417 012057 7200 CLA 3418 012060 1535 TAD I CURPTR / GET CAR TO CPY 3419 012061 2332 ISZ ESICH3 3420 012062 5254 JMP ESICHF / PUT IT OUT TIL COUNT DONE 3421 012063 7421 ESICHG, MQL / ELSE SAVE 3422 012064 1135 TAD CURPTR 3423 012065 3330 DCA ESICH1 / WHILE WE SWAP CURPTRS 3424 012066 1333 TAD ESICH4 3425 012067 3135 DCA CURPTR 3426 ESICHJ, AC7777 undefined ^ 012070 0000 3427 012071 4510 CHKPTR 3428 012072 7701 CLA MQA 3429 012073 3535 DCA I CURPTR / THEN MOVE IT 3430 012074 1330 TAD ESICH1 3431 012075 7041 CIA 3432 012076 1331 TAD ESICH2 / DONE WITH COPY? 3433 012077 7650 SNA CLA 3434 012100 5312 JMP ESICHH / JUMP IF SO 3435 012101 1135 TAD CURPTR 3436 012102 3333 DCA ESICH4 / ELSE SWAP CURPTRS AGAIN 3437 012103 1330 TAD ESICH1 3438 012104 3135 DCA CURPTR 3439 AC7777 undefined ^ 012105 0000 3440 012106 4510 CHKPTR 3441 012107 7200 CLA 3442 012110 1535 TAD I CURPTR / GET NEXT FOR COPY 3443 012111 5263 JMP ESICHG / AND LOOP 3444 3445 012112 7621 ESICHH, CLA MQL / SET ZERO FOR CLEAR LOOP 3446 012113 1135 TAD CURPTR 3447 012114 7041 CIA 3448 012115 1331 TAD ESICH2 / MORE TO CLEAR? 3449 012116 7640 SZA CLA 3450 012117 5270 JMP ESICHJ / JUMP IF SO 3451 012120 4512 ADVCHR 3452 012121 7200 CLA / ELSE FIX @CURPTR 3453 012122 5327 JMP ESICHI / AND RETURN 3454 3455 012123 1330 ESICHB, TAD ESICH1 / GET INSERT 3456 012124 3535 ESICHC, DCA I CURPTR / STORE IT 3457 012125 1331 ESICHD, TAD ESICH2 3458 012126 3135 DCA CURPTR / RESTORE CURPTR 3459 012127 5600 ESICHI, JMP I INSERT / AND RETURN 3460 3461 012130 0000 ESICH1, 0 3462 012131 0000 ESICH2, 0 3463 012132 0000 ESICH3, 0 3464 012133 0000 ESICH4, 0 3465 3466 CLSCRN, XX / CLEAR SCREEN undefined ^ 012134 0000 3467 CIFMNU / CHANGE TO MENU FIELD undefined ^ 012135 0000 3468 012136 4776 JMS I (CALLN1) / GO PUT UP STATUS LINE DISPLAY 3469 012137 4341 JMS CLSSET / INITIALIZE SCROLL VALUES 3470 012140 5734 JMP I CLSCRN / RETURN TO CALLER 3471 3472 CLSSET, XX / INITIALIZE SCROLL VALUES undefined ^ 012141 0000 3473 AC2000 undefined ^ 012142 0000 3474 012143 3140 DCA SCRNFL / SET SCREEN FLAG 3475 AC2000 undefined ^ 012144 0000 3476 012145 3137 DCA SCRLCT / AND BIG COUNT 3477 012146 5741 JMP I CLSSET / RETURN TO CALLER 3478 3479 / PUTSPC PSEUDO CODE 3480 / 3481 / set terminal to special graphics mode 3482 / get character at call+1 3483 / display character 3484 / reset terminal to USASCII mode 3485 / return to caller 3486 3487 PUTSPC, XX / OUTPUT ARG IN GRAPHIC MODE undefined ^ 012147 0000 3488 012150 4515 PUTESC 3489 012151 4050 "(+3600 3490 012152 0060 "0-200 3491 012153 1747 TAD I PUTSPC 3492 012154 4503 PUTOUT 3493 3494 012155 4774 JMS MNUGET / PICK UP CURRENT LANGUAGE WORD /A224 3495 MNLANG / LOCATION FOR LANGUAGE WORD /A224 undefined ^ 012156 0000 3496 012157 7500 SMA / SKIP IF A NUMBER CODE /A224 3497 012160 7001 IAC / CONVERT TO UPPER CASE ASCII /A224 3498 012161 7002 BSW / PUT BITS INTO PROPER ORDER /A224 3499 012162 3365 DCA PUTLNG / STORE IN LINE FOR PUTESC ROUTINE /A224 3500 3501 012163 4515 PUTESC 3502 012164 4050 "(+3600 3503 012165 0260 PUTLNG, "0 / OVERLAYED WITH LANGUAGE CODE VALUE /A224 3504 3505 3506 /D224 IFDEF ENGLSH < 3507 /D224 IFNDEF ENGCAN < 3508 /D224 "B-200 3509 /D224 > / END IFNDEF ENGCAN 3510 /D224 IFDEF ENGCAN < 3511 /D224 "3-200 3512 /D224 > / END IFDEF ENGCAN 3513 /D224 > / END IFDEF ENGLSH 3514 /D224 IFDEF CANADA < 3515 /D224 "3-200 3516 /D224 > / END IFDEF CANADA 3517 /D224 IFDEF FRENCH < 3518 /D224 "R-200 3519 /D224 > / END IFDEF FRENCH 3520 /D224 IFDEF DUTCH < 3521 /D224 "4-200 3522 /D224 > / END IFDEF DUTCH 3523 3524 012166 2347 ISZ PUTSPC 3525 012167 5747 JMP I PUTSPC 3526 3527 IFDEF FORIN < 3528 / SUBROUTINE GETENT GETS THE ENTRY EN TABLE1 OR TABLE2 POINTED AT BY 3529 / POINT1 INTO THE AC 3530 GETENT, XX 3531 CDFPRT / CHANGE TO PRINTER FIELD 3532 TAD I POINT1 / GET TABLE ENTRY 3533 CDFMYF / RETURN TO THIS FIELD 3534 JMP I GETENT / RETURN TO CALLER 3535 3536 > / END IFDEF FORIN 3537 3538 012170 4523 EIDICT, OVLJMP;OVABRV / ENTRY POINT FOR "GOLD-ABBRV" 012171 1601 3539 3540 3541 X=. / INDICATE FIRST FREE LOCATION ON PAGE 3542 /--------------- 3543 012174 1643 PAGE 012175 7700 012176 0000 012177 7400 3544 3545 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 3546 3547 3548 012200 4203 BKPUNT, JMS BACKUN / BACK UP A UNIT 3549 012201 5777 JMP EIBAD / ERROR, CAN'T BACKUP PAST TOP OF FILE 3550 012202 5776 JMP EINEXT / FIX UP SCREEN AND GET NEXT CHARACTER 3551 3552 BACKUN, XX undefined ^ 012203 0000 3553 012204 4244 JMS SAVLMD / SAVE MOD FLAGS 3554 AC7777 undefined ^ 012205 0000 3555 012206 4513 CURMOV 3556 012207 5232 JMP BKPUNV / ERROR IF AT STX 3557 012210 2203 ISZ BACKUN 3558 012211 4775 JMS SETBNT / SET BACKUP MODE 3559 012212 1535 TAD I CURPTR / GET CHAR 3560 012213 4774 JMS CHKUNT / CHECK FOR END OF UNIT 3561 012214 0000 BKPUNZ, .-. 3562 012215 7440 SZA 3563 012216 5224 JMP BKPUNX / JUMP IF LAST 3564 AC7777 undefined ^ 012217 0000 3565 012220 4513 CURMOV 3566 012221 5232 JMP BKPUNV / BACKUP, JUMP IF AT STX 3567 012222 1535 BKPUNW, TAD I CURPTR / RE-GET CHARACTER 3568 012223 5614 JMP I BKPUNZ / AND LOOP 3569 3570 012224 7710 BKPUNX, SPA CLA 3571 012225 5603 BKPUNY, JMP I BACKUN / JUMP IF FINAL 3572 AC0001 undefined ^ 012226 0000 3573 012227 4513 CURMOV 3574 012230 5225 JMP BKPUNY / DO AN ADVANCE 3575 012231 5222 JMP BKPUNW / AND LOOP 3576 3577 012232 4513 BKPUNV, CURMOV 3578 012233 7000 NOP 3579 012234 5225 JMP BKPUNY / FIX CURSOR AT STX, AND RETURN 3580 3581 012235 4773 ADVUNT, JMS LODCHR / ADVANCE UNIT 3582 012236 5777 JMP EIBAD 3583 012237 4772 JMS GETUNT / CHECK FOR END OF UNIT 3584 012240 0000 ADVUNW, .-. 3585 012241 7640 SZA CLA 3586 012242 5640 JMP I ADVUNW 3587 012243 5776 JMP EINEXT 3588 3589 SAVLMD, XX / SAVE LINE MODIFIED undefined ^ 012244 0000 3590 012245 1151 TAD LINMOD 3591 012246 7450 SNA 3592 012247 5644 JMP I SAVLMD / JUST RETURN IF NO FLAG NEEDED 3593 012250 4771 JMS INSERT / ELSE INSERT FLAG 3594 012251 3151 DCA LINMOD / CLEAR LINE MODIFIED FLAG 3595 012252 3124 DCA RLRMOD / CLEAR RULER MODIFIED FLAG 3596 012253 3150 DCA REJFLG / CLEAR REJUSTIFIED FLAG 3597 012254 5644 JMP I SAVLMD / RETURN 3598 3599 SETLMD, XX / SET "LINE MODIFIED" FLAG undefined ^ 012255 0000 3600 012256 7200 CLA 3601 012257 1124 TAD RLRMOD 3602 012260 7450 SNA 3603 TAD (ECMDFL) / GET "LINE_MODIFIED_FLAG" undefined ^ undefined ^ 012261 1370 3604 012262 3151 DCA LINMOD 3605 AC7777 undefined ^ 012263 0000 3606 012264 3150 DCA REJFLG / SET REJUSTIFY FLAG 3607 012265 4267 JMS SCRNMD / SET SCREEN MODIFIED FLAG 3608 012266 5655 JMP I SETLMD 3609 3610 SCRNMD, XX / SET SCREEN MODIFIED FLAG undefined ^ 012267 0000 3611 012270 1137 TAD SCRLCT 3612 012271 7041 CIA 3613 012272 1146 TAD SCRLIN 3614 012273 7450 SNA 3615 012274 5302 JMP SETLME 3616 012275 7710 SPA CLA 3617 012276 5667 JMP I SCRNMD 3618 012277 1137 TAD SCRLCT 3619 012300 3146 DCA SCRLIN 3620 012301 5310 JMP SETLMF 3621 012302 1145 SETLME, TAD SCRLCU 3622 012303 7450 SNA 3623 012304 5310 JMP SETLMF 3624 012305 1136 TAD CURSOR 3625 012306 7700 SMA CLA 3626 012307 5667 JMP I SCRNMD 3627 012310 1136 SETLMF, TAD CURSOR 3628 012311 7040 CMA 3629 012312 3145 DCA SCRLCU 3630 012313 5667 JMP I SCRNMD 3631 3632 3633 SCRADJ, XX undefined ^ 012314 0000 3634 012315 3141 DCA SCRLFL / SET SCROLL FLAG 3635 012316 0000 CDFMYF 3636 CIFSYS undefined ^ 012317 0000 3637 JSWAP / DON'T HOG CPU undefined ^ 012320 0000 3638 012321 1140 TAD SCRNFL 3639 012322 7640 SZA CLA 3640 012323 5714 JMP I SCRADJ / JUST RETURN IF SCREEN FLAG SET 3641 012324 1141 TAD SCRLFL 3642 012325 1137 TAD SCRLCT 3643 012326 3137 DCA SCRLCT / ELSE ADJUST SCROLL COUNT 3644 AC2000 undefined ^ 012327 0000 3645 012330 1137 TAD SCRLCT 3646 012331 7710 SPA CLA 3647 AC2000 undefined ^ 012332 0000 3648 012333 3140 DCA SCRNFL / SET SCREEN FLAG - IF TOO BIG 3649 012334 5714 JMP I SCRADJ / AND RETURN 3650 3651 3652 SCRNSZ, XX / RETURN SCREEN SIZE undefined ^ 012335 0000 3653 012336 1345 TAD SPLTFL / PICK UP THE SPLIT-FLAG 3654 012337 7650 SNA CLA / ARE WE IN WIDE SCREEN MODE (132 COL) 3655 012340 1176 TAD SCRNLN / NO, USE VALUE OF FULL SCROLL REGION 3656 012341 7450 SNA / SKIP IF WE JUST GOT A VALUE 3657 012342 1344 TAD WIDSIZ / YES, USE VALUE OF SMALLER AREA 3658 012343 5735 JMP I SCRNSZ / RETURN TO CALLER 3659 012344 0010 WIDSIZ, 10 / M219 Default 132 col size is 8 lines. 3660 012345 0000 SPLTFL, 0 / 0 = 24 LINES OF SCREEN; -1 = 8 LINES. /A226 3661 3662 SCECHO, XX undefined ^ 012346 0000 3663 012347 2136 ISZ CURSOR 3664 012350 4517 ADVSPC 3665 012351 7000 NOP 3666 012352 7200 CLA 3667 012353 5746 JMP I SCECHO 3668 3669 CHKREJ, XX / CALL REJUST IF IT'S TIME TO DO SO undefined ^ 012354 0000 3670 012355 4346 JMS SCECHO / BUMP PTR AND CURSOR 3671 012356 2147 ISZ REJCNT 3672 012357 5754 JMP I CHKREJ 3673 012360 4767 JMS REJUST 3674 012361 5754 JMP I CHKREJ 3675 3676 012362 7777 REMCUR, 7777 / "REMEMBERED" CURSOR POSITION FOR UP 3677 / AND DOWN ARROW 3678 3679 012363 4523 EIGCUT, OVLJMP;OVGCUT / CUT OVERLAY 012364 2203 3680 012365 4523 EIPSTE, OVLJMP;OVPSTE 012366 2405 3681 3682 X=. / INDICATE FIRST FREE LOCATION ON PAGE 3683 /--------------- 3684 012367 2400 PAGE 012370 0000 012371 2000 012372 0463 012373 4241 012374 0667 012375 0671 012376 0406 012377 0400 3685 3686 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 3687 3688 3689 REJUST, XX / REJUSTIFY IF NECESSARY undefined ^ 012400 0000 3690 012401 2150 ISZ REJFLG 3691 012402 5270 JMP REJUSZ 3692 TAD (ECCMRK) undefined ^ undefined ^ 012403 1377 3693 012404 4776 JMS INSERT / MARK CURRENT POSITION 3694 012405 4775 JMS JCLEAN / CLEAR OLD JUSTIFY CODES 3695 012406 1171 REJUSX, TAD LINE23 3696 012407 3135 DCA CURPTR / GET TO BEGINNING OF LINE 3697 012410 3136 DCA CURSOR 3698 012411 3342 DCA REJCP1 / CLEAR POSITION FLAG 3699 012412 4775 JMS JCLEAN / CLEAR OLD JUSTIF CODES 3700 012413 4774 JMS CHKLMR / ADJUST LEFT MARGIN 3701 AC7777 undefined ^ 012414 0000 3702 012415 3344 DCA REJCP3 / CLEAR TAB FLAG 3703 012416 4773 JMS LODCHR 3704 012417 5260 JMP REJUSK / CHECK NEXT CHAR 3705 REJUSY, TAD (-ECCMRK) undefined ^ undefined ^ 012420 1377 3706 012421 7650 SNA CLA 3707 012422 5250 JMP REJUSA / FOR MARKER 3708 012423 1535 TAD I CURPTR 3709 AND P177 undefined ^ undefined ^ 012424 0000 3710 3711 012425 4500 ZZCASE / COMPARE AGAINST RULER PAGE NWLN TAB 3712 012426 2577 CTB005-1 / TABLE ADDRESS FOR CASE 3713 3714 / ECSTRL; REJUSC / START OF RULER 3715 / ECNWPG; REJUSC / PAGE 3716 / ECNWLN; REJUSD / NEW LINE 3717 / ECTAB; REJS99 / TAB 3718 / 0 / INDICATE END OF TABLE 3719 3720 012427 5232 JMP REJUSQ 3721 012430 3344 REJS99, DCA REJCP3 / SET TAB FLAG 3722 012431 4772 JMS TBJUST / JUSTIFY IT 3723 012432 1136 REJUSQ, TAD CURSOR / 3724 012433 7041 CIA 3725 012434 1160 TAD RGTMAR 3726 012435 7700 SMA CLA 3727 012436 5242 JMP REJUSF / JUMP IF OK 3728 012437 1342 TAD REJCP1 / GOT BACK TO MARKED POSITION YET? 3729 012440 7640 SZA CLA 3730 012441 5260 JMP REJUSK / JUMP IF SO 3731 012442 4771 REJUSF, JMS CHKMAR 3732 012443 5206 JMP REJUSX / CHECK MARGIN, JUMP IF WRAPPED 3733 012444 2136 ISZ CURSOR / NORMAL CHAR, BUMP PTRS 3734 012445 4517 REJUSJ, ADVSPC 3735 012446 5260 JMP REJUSK 3736 012447 5220 JMP REJUSY / AND LOOP FOR MORE CHECKING 3737 3738 012450 1135 REJUSA, TAD CURPTR 3739 012451 3342 DCA REJCP1 / SAVE MARKER POSITION 3740 012452 1136 TAD CURSOR 3741 012453 3343 DCA REJCP2 3742 012454 5245 JMP REJUSJ 3743 3744 012455 1342 REJUSB, TAD REJCP1 / END OF LINE, 3745 012456 7650 SNA CLA 3746 012457 5312 JMP REJUSL / SCROLL, OR 3747 012460 1342 REJUSK, TAD REJCP1 3748 012461 3135 DCA CURPTR / QUIT 3749 012462 1343 TAD REJCP2 3750 012463 3136 DCA CURSOR 3751 CDFBUF undefined ^ 012464 0000 3752 012465 3535 REJUSM, DCA I CURPTR / ERASE MARKER 3753 012466 4512 ADVCHR 3754 012467 7200 CLA / GET OFF NULL WE JUST CREATED 3755 /D206 REJUSZ, JMS REJUX2 / RESET FLAGS 3756 012470 3150 REJUSZ, DCA REJFLG / CLEAR REJUST FLAG 3757 012471 1160 TAD RGTMAR 3758 012472 7041 CIA 3759 012473 1136 TAD CURSOR / RESET LIMIT COUNT 3760 012474 1370 TAD (12) 3761 012475 7500 SMA 3762 012476 7200 CLA 3763 012477 1367 TAD (-12) / (MIN OF 10.) 3764 012500 3147 DCA REJCNT 3765 012501 5600 JMP I REJUST / AND RETURN 3766 3767 012502 1136 REJUSC, TAD CURSOR 3768 012503 7650 SNA CLA 3769 012504 5307 JMP REJUSE / JUST SCROLL UP IF AT LEFT EDGE OF SCREEN 3770 TAD (ECWWLN) undefined ^ undefined ^ 012505 1377 3771 012506 4776 JMS INSERT / ELSE INSERT WRAPPER 3772 012507 1342 REJUSE, TAD REJCP1 / PAGE OR RULER 3773 012510 7640 SZA CLA 3774 012511 5260 JMP REJUSK / QUIT IF GOT TO MARKER ALREADY 3775 012512 4766 REJUSL, JMS SCRLUP / START NEW LINE 3776 012513 5206 JMP REJUSX 3777 3778 012514 1535 REJUSD, TAD I CURPTR / NWLN, CHECK FOR CENTER 3779 TAD (-ECENLN) undefined ^ undefined ^ 012515 1377 3780 012516 7650 SNA CLA / JUMP IF NOT. 3781 012517 2344 ISZ REJCP3 3782 012520 5255 JMP REJUSB / JUMP IF WE'VE HAD TABS 3783 012521 4765 JMS CENTER / ELSE CENTER THE LINE 3784 012522 1171 TAD LINE23 3785 012523 3135 DCA CURPTR / THEN REFIND MARKER (IF PRESENT) 3786 012524 3136 DCA CURSOR 3787 012525 4514 SLNMOD / SET LINE (SCREEN) MODIFIED FLAG. 3788 012526 4773 JMS LODCHR 3789 012527 7000 NOP 3790 REJUSN, TAD (-ECCMRK) undefined ^ undefined ^ 012530 1377 3791 012531 7450 SNA 3792 012532 5265 JMP REJUSM / JUMP IF MARKER 3793 TAD (ECCMRK-ECENLN) undefined ^ undefined ^ undefined ^ undefined ^ 012533 1377 3794 012534 7650 SNA CLA 3795 012535 5312 JMP REJUSL / JUMP IF END OF LINE 3796 012536 2136 ISZ CURSOR 3797 012537 4517 ADVSPC 3798 012540 7000 NOP 3799 012541 5330 JMP REJUSN / LOOP TIL WE FIND ONE OF THEM 3800 3801 012542 0000 REJCP1, .-. 3802 012543 0000 REJCP2, .-. 3803 012544 0000 REJCP3, .-. 3804 3805 012545 4511 EISLCT, TSTSLT / SELECT 3806 012546 5764 JMP ESLCT1 / JUMP IF NOT SELECTED ALREADY 3807 3808 012547 4504 UNSLCT, MODSET / UNSELECT 3809 012550 1742 EDTMOD / SET ADVANCE MODE 3810 012551 5763 JMP SLXMOD 3811 3812 / THE FOLLOWING IS USED BY V2 GOTO PAGE OVERLAYS... 3813 3814 012552 0000 CURPG2, 0 / EDIT BUFFER PAGE # (THOUSANDS - MAX. 9) 3815 3816 012553 4523 EIFIND, OVLJMP;XXFIND undefined ^ 012554 0000 3817 012555 4523 EIRQSP, OVLJMP;OVRQSP / GO INSERT "REQUIRED SPACE" 012556 4202 3818 3819 X=. / INDICATE FIRST FREE LOCATION ON PAGE 3820 /--------------- 3821 012563 0622 PAGE 012564 6633 012565 1475 012566 3600 012567 7766 012570 0012 012571 0342 012572 0315 012573 4241 012574 2722 012575 3645 012576 2000 012577 0000 3822 3823 3824 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 3825 3826 3827 CTB005, ECSTRL; REJUSC / START OF RULER undefined ^ 012600 0000 012601 2502 3828 ECNWPG; REJUSC / PAGE undefined ^ 012602 0000 012603 2502 3829 ECNWLN; REJUSD / NEW LINE undefined ^ 012604 0000 012605 2514 3830 ECTAB; REJS99 / TAB undefined ^ 012606 0000 012607 2430 3831 012610 0000 0 / INDICATE END OF TABLE 3832 3833 ESMVCR, XX / MOVE CURSOR undefined ^ 012611 0000 3834 / ENTER WITH OFFSET IN AC 3835 012612 7510 SPA 3836 012613 5777 JMP ESMVCL / JUMP IF MOVE LEFT 3837 012614 7040 CMA 3838 012615 3310 DCA ESMVC1 / SAVE -COUNT-1 3839 012616 5250 JMP ESMVCQ 3840 3841 012617 4776 ESMVCC, JMS LODCHR 3842 012620 5307 JMP ESMVLZ 3843 AND P177 / STRIP MODE BITS undefined ^ undefined ^ 012621 0000 3844 3845 012622 4500 ZZCASE / COMPARE AGAINST TABLE 3846 012623 2710 CTB008-1 / TABLE ADDRESS FOR CASE 3847 3848 / ECNWPG; ESMVCD / NEW PAGE 3849 / ECNWLN; ESMVCB / NEW LINE 3850 / ECMDFL; ESMVCG / LINE MODIFIED 3851 / ECSTRL; ESMVCZ / START RULER 3852 / 0 / INDICATE END OF TABLE 3853 3854 012624 5275 JMP ESMVCU / SKIP IF: SO 3855 012625 1136 ESMVCZ, TAD CURSOR 3856 012626 7640 SZA CLA 3857 012627 5267 JMP ESMVCE 3858 012630 4775 JMS ADVRUL 3859 012631 5251 JMP ESMVCA 3860 012632 4507 BKPPTR / CANCEL ADVPTR IN SCRLUP BELOW 3861 012633 7000 NOP 3862 012634 7610 SKP CLA / MERGE BELOW. 3863 012635 1136 ESMVCK, TAD CURSOR / Are we at the beginning of the line? 3864 012636 7650 SNA CLA / Skip if no. 3865 012637 5245 JMP ESMVCB / Yes! handle page character as line ender 3866 012640 4514 SLNMOD / Set line as modified (so REJUST runs) 3867 012641 4774 JMS REJUST / put soft return infront of page marker 3868 012642 1124 TAD RLRMOD / reset "line modified" flag for 3869 012643 3151 DCA LINMOD / justification of line following NEW PAGE. 3870 012644 4773 JMS SCRLUP / scroll line infrontof page marker up. 3871 012645 1124 ESMVCB, TAD RLRMOD 3872 012646 3151 DCA LINMOD / CLEAR MOD FLAG 3873 012647 4773 ESMVCT, JMS SCRLUP 3874 012650 4774 ESMVCQ, JMS REJUST 3875 012651 4776 ESMVCA, JMS LODCHR 3876 012652 5304 JMP ESMVX2 3877 012653 5302 JMP ESMVX1 3878 3879 / MAY HAVE TO MODIFY TO HANDLE REDUNDANT BEGIN MATH AREA OR END MATH AREA 3880 012654 1535 ESMVCD, TAD I CURPTR / CHECK PRINT CONTROL 3881 012655 4772 JMS SCRLTM / TEST TO SEE IF CHAR IS SPECIAL CODE 3882 012656 7000 NOP / CHAR WAS NORMAL 3883 012657 5235 JMP ESMVCK / CHAR WAS SELECT MARKER 3884 / CHAR WAS START OR END PRINT CONTROL 3885 / +1 IF START, 0 IF END 3886 012660 7041 CIA / 3887 012661 1142 TAD PCTLFL / -1 IF START, 0 IF END 3888 012662 7640 SZA CLA 3889 012663 5235 JMP ESMVCK 3890 012664 3535 DCA I CURPTR / DELETE CONTROL IF REDUNDANT 3891 012665 4771 JMS SCRNMD / AND SET SCREEN MOD FLAG 3892 012666 5251 JMP ESMVCA 3893 3894 ESMVCE, TAD (ECWWLN) undefined ^ undefined ^ 012667 1370 3895 012670 4767 JMS INSERT 3896 012671 5247 JMP ESMVCT 3897 3898 012672 4766 ESMVCG, JMS CHKLMD 3899 012673 7000 NOP 3900 012674 5250 JMP ESMVCQ 3901 3902 012675 4765 ESMVCU, JMS CHKMAR 3903 012676 4774 JMS REJUST / CHECK MARGIN 3904 012677 2136 ESMVCV, ISZ CURSOR 3905 012700 4517 ADVSPC 3906 012701 5304 JMP ESMVX2 3907 012702 4764 ESMVX1, JMS CHKCHR 3908 012703 5217 JMP ESMVCC / DON'T LAND ON FUNNY CODE 3909 012704 2310 ESMVX2, ISZ ESMVC1 3910 012705 5217 JMP ESMVCC 3911 012706 2211 ESMVLX, ISZ ESMVCR / BUMP FOR OK RETURN 3912 012707 5611 ESMVLZ, JMP I ESMVCR / AND RETURN 3913 012710 0000 ESMVC1, 0 3914 3915 CTB008, ECNWPG; ESMVCD / NEW PAGE undefined ^ 012711 0000 012712 2654 3916 ECNWLN; ESMVCB / NEW LINE undefined ^ 012713 0000 012714 2645 3917 ECMDFL; ESMVCG / LINE MODIFIED undefined ^ 012715 0000 012716 2672 3918 ECSTRL; ESMVCZ / START RULER undefined ^ 012717 0000 012720 2625 3919 012721 0000 0 / INDICATE END OF TABLE 3920 3921 CHKLMR, XX / CHECK FOR LEFT MARGIN undefined ^ 012722 0000 3922 012723 4776 JMS LODCHR 3923 012724 5342 JMP LMRCH1 3924 TAD (-ECCMRK) / SKIP JUSTIF MARKER undefined ^ undefined ^ 012725 1370 3925 012726 7650 SNA CLA 3926 012727 5344 JMP LMRCH3 3927 012730 1535 TAD I CURPTR 3928 LMRCH4, AND P177 undefined ^ undefined ^ 012731 0000 3929 TAD (-ECSTRL) undefined ^ undefined ^ 012732 1370 3930 012733 7440 SZA / IF NOT AT RULER 3931 TAD (ECSTRL-ECNWPG) / OR NEW PAGE undefined ^ undefined ^ undefined ^ undefined ^ 012734 1370 3932 012735 7640 SZA CLA 3933 012736 5342 JMP LMRCH1 / THEN CHECK INDENT 3934 012737 1171 TAD LINE23 3935 012740 3135 DCA CURPTR / ELSE RESTORE CURPTR 3936 012741 5722 JMP I CHKLMR / AND RETURN 3937 3938 012742 4763 LMRCH1, JMS LINDNT / DO PROPER INDENT 3939 012743 5722 LMRCH2, JMP I CHKLMR / RETURN 3940 3941 012744 4506 LMRCH3, ADVPTR 3942 012745 5342 JMP LMRCH1 3943 012746 5331 JMP LMRCH4 / GO BACK TO CHECK FOR PAGE/RULER 3944 3945 012747 4523 EIUDLT, OVLJMP;OVUDLT / UNDELETE OVERLAY 012750 2532 3946 012751 4523 EIHYPL, OVLJMP;OVHYPL / HYPHEN PULL 012752 1120 3947 3948 / TAKE 1ST RETURN IF SET, 2ND RETURN IF NOT SET 3949 USHLTS, XX undefined ^ 012753 0000 3950 CIFLP undefined ^ 012754 0000 3951 012755 4762 JMS I (XHLTST) / DO HALT TEST IN LP FIELD 3952 3953 012756 0000 RPCUOF, 0 / Rapid Paging CUrrent descriptor OFfset 3954 3955 X=. / INDICATE FIRST FREE LOCATION ON PAGE 3956 /--------------- 3957 012762 6400 PAGE 012763 0242 012764 5726 012765 0342 012766 4733 012767 2000 012770 0000 012771 2267 012772 3040 012773 3600 012774 2400 012775 6073 012776 4241 012777 3000 3958 3959 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 3960 3961 3962 / MOVE CURSOR ROUTINE JUMPS HERE IF MOVING LEFT 3963 013000 3226 ESMVCL, DCA ESMVC2 / ESMVC2 = -NUMBER OF LOCATIONS TO MOVE 3964 ESMVLA, / REPEAT 3965 013001 4520 BKPSPC 3966 013002 5777 JMP ESMVLZ / GET NEXT CHAR TO LEFT 3967 AND P177 / STRIP MODE BITS undefined ^ undefined ^ 013003 0000 3968 TAD (-ECNWPG) undefined ^ undefined ^ 013004 1376 3969 013005 7440 SZA / IF CHAR = NEW_PAGE 3970 TAD (ECNWPG-ECNWLN) undefined ^ undefined ^ undefined ^ undefined ^ 013006 1376 3971 013007 7440 SZA / OR NEW_LINE 3972 TAD (ECNWLN-ECNDRL) undefined ^ undefined ^ undefined ^ undefined ^ 013010 1376 3973 013011 7450 SNA / OR END_RULER 3974 013012 5224 JMP ESMVLR / THEN SCROLL SCREEN DOWN 3975 ESMVLB, AC7777 / ELSE undefined ^ 013013 0000 3976 013014 1136 TAD CURSOR / 3977 013015 3136 DCA CURSOR / CURSOR := CURSOR - 1 3978 013016 1535 ESMVLC, TAD I CURPTR / GET CHAR AGAIN 3979 013017 4775 JMS CHKCHR 3980 013020 5201 JMP ESMVLA / IF NOT A SPECIAL CHARACTER 3981 013021 2226 ISZ ESMVC2 3982 013022 5201 JMP ESMVLA / THEN INCREMENT ESMVC2 3983 013023 5774 JMP ESMVLX / UNTIL ESMVC2=0 3984 013024 4773 ESMVLR, JMS SCRLDN 3985 013025 5216 JMP ESMVLC 3986 013026 0000 ESMVC2, 0 / NUMBER OF CURSOR POSITIONS TO MOVE BACK 3987 3988 3989 / PSUEDO_CODE FOR SCRLUM 3990 / 3991 / CASE AC =: 3992 / START_PRINT_CONTROL: PCTLFL=-1 3993 / END_PRINT_CONTROL: PCTLFL=0 3994 / SELECT_POINT: SLCTDR=0 3995 / AC=0 3996 SCRLUM, XX / CHANGE MODES FOR SCROLL UP undefined ^ 013027 0000 3997 /*** SCRLUM IS USED AS A VARIABLE (PUTSC6) 3998 /*** BY PUTSCH BELOW TO SAVE A WORD 3999 013030 4240 JMS SCRLTM / TEST FOR MODE CHANGE 4000 013031 5627 JMP I SCRLUM / RETURN IF NONE 4001 013032 5235 JMP SCRLU1 / JUMP IF SELECT POINT 4002 013033 3142 DCA PCTLFL / HERE IF PRINT CONTROL 4003 013034 5627 JMP I SCRLUM / RETURN 4004 013035 3127 SCRLU1, DCA SLCTDR / HERE IF SELECT POINT 4005 013036 4772 JMS SVSLCR / SAVE CURSOR POSITION /A209 4006 013037 5627 JMP I SCRLUM / RETURN 4007 4008 / PSUEDO_CODE FOR SCRLTM 4009 / 4010 / CASE AC =: 4011 / SELECT POINT: AC=0 INCREMENT RETURN ADDRESS BY 1 4012 / START_PRINT_CONTROL: AC=-1 INCREMENT RETURN ADDRESS BY 2 4013 / END_PRINT_CONTROL: AC=0 INCREMENT RETURN ADDRESS BY 2 4014 / OTHERS: AC=0 4015 / 4016 SCRLTM, XX / TEST FOR MODE CHANGE CHARACTER undefined ^ 013040 0000 4017 4018 013041 4500 ZZCASE / COMPARE AGAINST SELECT AND CONTROL 4019 013042 1353 CTB009-1 / TABLE ADDRESS FOR CASE 4020 4021 / ECSLPT; SCRTM1 / SELECT POINT 4022 / ECPCT2; SCRTM2 / END CONTROL 4023 / ECPCT1; SCRTM4 / START CONTROL 4024 / 0 / INDICATE END OF TABLE 4025 4026 013043 5247 JMP SCRTM3 / TAKE NORMAL RTN IF NONE OF ABOVE 4027 SCRTM4, AC7777 / TAKE 2ND SKIP RTN IF STRT PRINT CONTROL undefined ^ 013044 0000 4028 013045 2240 SCRTM2, ISZ SCRLTM 4029 013046 2240 SCRTM1, ISZ SCRLTM 4030 013047 5640 SCRTM3, JMP I SCRLTM 4031 4032 013050 0000 CLMPLL, ZBLOCK 1 / COLUMN MANIPULATION LOWER LIMIT /A209 4033 013051 0000 CLMPUL, ZBLOCK 1 / " " UPPER " /A209 4034 013052 0000 PSBFOF, ZBLOCK 1 / COLUMN MANIP. PASTE BUF. OVFLOW FLAG /A209 4035 013053 0000 CLCTSW, ZBLOCK 1 / " " CUT/GOLD CUT SWITCH /A209 4036 4037 / 4038 / THE FOLLOWING IS USED BY V2 GOTO PAGE OVERLAYS ... 4039 / 4040 /D223 RPBKID, 0 / RAPID PAGINATION BLOCK ID # 4041 4042 4043 / 4044 / 4045 / SUBR PUTSCH -- PUT CHARACTER TO SCREEN 4046 / 4047 / CHARACTER PASSED TO PUTSCH IN AC 4048 / 4049 / PSUEDO-CODE FOR PUTSCH: 4050 / 4051 / SAVE CHAR. IN TEMP. LOCATION; 4052 / GET CHAR. BACK; 4053 / 4054 / ( CHECK SCREEN LIMITS ) 4055 / IF WIDE SCREEN MODE THEN 4056 / IF CURPOS < LEFT MARGIN OR CURPOS > RIGHT MARGIN THEN 4057 / EXIT; ( DON'T DISPLAY "CLIPPED" CHAR ) 4058 / 4059 / ( CHECK FOR OVERSTRIKE SEQUENCE ) 4060 / IF CHAR = "START OVERSTRIKE SEQUENCE" THEN 4061 / ( CHECK FOR "REQUIRED SPACE" ) 4062 / GET NEXT CHAR; 4063 / BACKUP CURPTR TO "START OVERSTRIKE SEQ" SO CURMOV WILL 4064 / SKIP REST OF SEQUENCE; 4065 / IF NEXT CHAR = SPACE THEN 4066 / ( "OVERSTRIKE SEQUENCE" IS REALLY A "REQUIRED SPACE" ) 4067 / DISPLAY A SPACE WITH PROPER ATTRIBUTES; 4068 / ELSE 4069 / ( THIS IS A REAL "OVERSTRIKE SEQUENCE", NOT A "REQ. SPACE" ) 4070 / DISPLAY A GRAPHICS BLOTCH TO STAND FOR THE OVERSTRIKE SEQ.; 4071 / ELSE ( NOT OVERSTRIKE ) 4072 / RESTORE CHAR.; 4073 / PUTOUT TO DISPLAY; 4074 / 4075 / EXIT. ( RETURN TO CALLER HAVING DISPLAYED CHAR ) 4076 / 4077 / 4078 PUTSCH, XX / OUTPUT CHAR undefined ^ 013054 0000 4079 013055 3227 DCA PUTSC6 / SAVE CHARACTER TO RESTORE LATER 4080 4081 /D226 TAD SPLTFL / SPLIT (WIDE) SCREEN MODE? 4082 /D226 SNA CLA 4083 /D226 JMP PUTPA1 / NO, JUST DO IT NORMAL 4084 4085 013056 1046 TAD CURPOS / GET CURRENT CURSOR POSITION 4086 013057 1047 TAD LOWLIM / COMBINE WITH LOW LIMIT OF SCREEN DISPLAY 4087 013060 7500 SMA / ARE WE BEFORE CURRENT LOW LIMIT /C237 4088 013061 5266 JMP PUTPA1 / NO, GO CHECK IF WE ARE ABOVE IT /C237 4089 013062 7300 CLA CLL / YES, CLEAR TRASH FROM THE ACCUMULATOR /A237 4090 013063 1227 TAD PUTSC6 / GET CURRENT CHARACTER /A237 4091 013064 0371 AND (1600) / MASK OFF THE ATTRIBUTE BITS /A237 4092 013065 5305 JMP PUTSC4 / GO OUTPUT THE CHARACTER ATTRIBUTES /A237 4093 4094 013066 0000 PUTPA1, CDFMYF / RESET BACK TO THIS FIELD /C237 4095 013067 1770 TAD SCNSZ / COMBINE RESULT WITH SCREEN SIZE /M223 4096 /D237 CDFBUF /A223 4097 013070 7700 SMA CLA / ARE WE PAST LAST COLUMN ? 4098 013071 5311 JMP PUTPA2 / YES, IGNORE THE CHARACTER 4099 4100 013072 1227 TAD PUTSC6 / GET CHAR BACK /C237 4101 /D237 SNA / SKIP IF CHAR. 4102 /D237 JMP PUTSC0 / IGNORE NULLS. 4103 AND P177 / MASK OFF ATTRIBUTES undefined ^ undefined ^ 013073 0000 4104 TAD (-ECSTOV) / SPECIAL PROCESSING FOR OVERSTRIKE undefined ^ undefined ^ 013074 1376 4105 4106 IFDEF FORIN < 4107 SNA CLA 4108 JMP DEAD / FOUND FOREIGN OVERSTRIKE 4109 > / END IFDEF FORIN 4110 4111 IFNDEF FORIN < 4112 013075 7640 SZA CLA / AT OVERSTRIKE SEQUENCE? (DEAD KEY) 4113 013076 5304 JMP PUTSC8 / NO: GO OUTPUT CHARACTER (PUTSC6) 4114 CDIMNU / YES: CHANGE TO MENU FIELD /A211 undefined ^ 013077 0000 4115 013100 4767 JMS I (TCCHK) / GO CHECK FOR DEAD KEY TYPE /A211 4116 013101 5307 JMP PUTSC2 / NORMAL DEAD KEY /A211 4117 013102 5304 JMP PUTSC8 / REQUIRED SPACE /A211 4118 013103 5311 JMP PUTPA2 / TECHNICAL CHARACTER /A211 4119 4120 /D211 ADVPTR / YES: CHECK FOR "REQUIRED SPACE" 4121 /D211 NOP / BAD EDIT BUFFER CONTENTS 4122 /D211 DCA PUTSC6 / SAVE POSSIBLE ECSPC WITH ATTRIBUTES 4123 /D211 BKPPTR / RESTORE CURPTR TO ECSTOV 4124 /D211 NOP / BUG-SHOULD NEVER HAPPEN 4125 /D211 CLA 4126 /D211 TAD PUTSC6 / GET 2ND CHAR IN OVERSTRIKE SEQUENCE 4127 /D211 AND P177 / (IGNORE ATTRIBUTES) 4128 /D211 TAD (-ECSPC) / IS IT A SPACE? 4129 /D211 SZA CLA 4130 /D211 JMP PUTSC2 / NO-NOT A "REQUIRED SPACE": OUTPUT BLOB 4131 > / END IFNDEF FORIN 4132 4133 013104 1227 PUTSC8, TAD PUTSC6 / RESTORE CHAR 4134 013105 4503 PUTSC4, PUTOUT / DISPLAY CHAR ON SCREEN 4135 013106 5311 JMP PUTPA2 / CONTINUE BELOW /A211 4136 4137 013107 4766 PUTSC2, JMS PUTSPC 4138 EXGOVS / SPECIAL CODE FOR OVERSTRIKE undefined ^ 013110 0000 4139 /D211 JMP I PUTSCH 4140 4141 013111 7300 PUTPA2, CLL CLA 4142 013112 0000 PUTSC0, CDFMYF 4143 013113 2046 ISZ CURPOS 4144 013114 5654 JMP I PUTSCH 4145 4146 PUTSC6= SCRLUM / TEMP. CHAR STORAGE FOR PUTSCH 4147 / ALSO USED BY OVVWB1 (GOLD:VIEW) 4148 X=.&7600 / X=FIRST LOC OF CURRENT PAGE 4149 PUTAER, IFNZRO SCRLUM&7600-X < ? > / ERROR: PUTSC6 NOT ON CURRENT PAGE 4150 4151 4152 SCRFSH, XX / REFRESH NON-SCROLLED LINES undefined ^ 013115 0000 4153 013116 1145 TAD SCRLCU / DOES SCREEN NEED MODIFICATION? 4154 013117 7650 SNA CLA / SKIP IF: SO 4155 013120 5715 JMP I SCRFSH / RETURN 4156 013121 1146 SCRFS1, TAD SCRLIN / GET EARLIEST LINE NEEDING MODIFICATION 4157 013122 7740 SMA SZA CLA 4158 013123 5715 JMP I SCRFSH 4159 013124 1145 TAD SCRLCU / Get posn in last line to get refreshed. 4160 013125 7440 SZA 4161 013126 7040 CMA / If 0 the start-of-line. If < 0 then 4162 013127 3136 DCA CURSOR / posn is CMA of SCRLCU. refresh from there 4163 013130 4765 JMS SCRNSZ / GET SCREEN SIZE 4164 013131 1146 TAD SCRLIN / ADD EARLIEST LINE NEEDING MODIFICATION 4165 013132 7750 SPA SNA CLA 4166 013133 5345 JMP SCRFS2 4167 013134 1146 TAD SCRLIN / GET EARLIEST LINE NEEDING MODIFICATION 4168 013135 3144 DCA CURLIN / SET CURRENT LINE 4169 013136 4764 JMS SETCUR / posn cursor baised by LOWLIM. 4170 013137 1137 TAD SCRLCT / GET SCREEN LAG 4171 013140 7510 SPA 4172 013141 7200 CLA / If reverse scroll, then bais to bottom 4173 / of screen. 4174 013142 7041 CIA / NEGATE IT 4175 013143 1146 TAD SCRLIN / ADD EARLIEST LINE NEEDING MODIFICATION 4176 013144 4763 JMS SCRLTX 4177 4178 013145 2146 SCRFS2, ISZ SCRLIN 4179 013146 7000 NOP 4180 013147 3145 DCA SCRLCU / Reset posn within next line to start at. 4181 013150 3136 DCA CURSOR / (incase SCRLIN now = 1). 4182 013151 5321 JMP SCRFS1 4183 4184 013152 4523 EIDEAD, OVLJMP;OVDEAD / GOLD DEAD 013153 4201 4185 013154 4523 EIGBKP, OVLJMP;OVGBKP / GOLD BACKUP 013155 2401 4186 013156 4523 EITC, OVLJMP ;OVTCHR / TECHNICAL CHARACTER /M234 undefined ^ 013157 0000 4187 4188 X=. / INDICATE FIRST FREE LOCATION ON PAGE 4189 /--------------- 4190 013163 1517 PAGE 013164 1744 013165 2335 013166 2147 013167 2424 013170 1474 013171 1600 013172 1347 013173 3200 013174 2706 013175 5726 013176 0000 013177 2707 4191 4192 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 4193 4194 4195 SCRLDN, XX / SCROLL DOWN undefined ^ 013200 0000 4196 4197 013201 0000 CDFMYF / RESET DATA FIELD TO THIS FIELD 4198 CIFMNU / SET INSTRUCTION FIELD TO MENU FIELD undefined ^ 013202 0000 4199 013203 4010 JMS CALLN3 / HANDLE SCROLL DOWN FOR STATUS LINE 4200 4201 AC7777 undefined ^ 013204 0000 4202 013205 4777 JMS SCRAD0 / ADJUST SCROLL 4203 4204 013206 1166 TAD FORMNO / IF NOT IN LIST PROCESSING 4205 013207 7640 SZA CLA / 4206 013210 5213 JMP SCRLD1 / 4207 CDILP / THEN GO FIDDLE WITH THE MATH FLAGS undefined ^ 013211 0000 4208 013212 4776 JMS SCRMTH / 4209 4210 013213 1171 SCRLD1, TAD LINE23 4211 013214 3135 DCA CURPTR 4212 013215 4775 JMS SAVLMD 4213 013216 0000 CDFMYF 4214 013217 4774 JMS SCRNSZ / GET SCREEN SIZE (IN LINES) 4215 013220 7041 CIA 4216 DCA X0 / STORE AS COUNT TO DO undefined ^ undefined ^ 013221 3000 4217 TAD X0 undefined ^ undefined ^ 013222 1000 4218 013223 1373 TAD (PTRBLK-1+NPTRS) 4219 DCA T1 / STORE FIRST PTR-1 undefined ^ undefined ^ 013224 3000 4220 AC0002 / SET UP FOR AN INCREMENT OF TWO undefined ^ 013225 0000 4221 TAD T1 / COMBINE WITH VALUE OF PTR-1 undefined ^ undefined ^ 013226 1000 4222 013227 3334 DCA SCRLDF / SAVE PTR TO OLD TOP PTR 4223 4224 013230 7421 MQL / FOR MOVING PTRS 4225 SCRLDA, ISZ T1 undefined ^ undefined ^ 013231 2000 4226 TAD I T1 / SWAP A PAIR undefined ^ undefined ^ 013232 1400 4227 013233 7521 SWP 4228 DCA I T1 undefined ^ undefined ^ 013234 3400 4229 ISZ X0 undefined ^ undefined ^ 013235 2000 4230 013236 5231 JMP SCRLDA / AND LOOP TIL ALL DONE 4231 TAD I T1 undefined ^ undefined ^ 013237 1400 4232 013240 3171 DCA LINE23 4233 4234 013241 1734 TAD I SCRLDF / GET OLD TOP PTR 4235 013242 7440 SZA / SKIP W/O A POINTER 4236 013243 5246 JMP .+3 / JUMP WITH A POINTER 4237 013244 2334 ISZ SCRLDF / ADVANCE TO NEXT ENTRY 4238 013245 5241 JMP .-4 / REPEAT UNTIL POINTER 4239 4240 013246 3135 DCA CURPTR / ELSE START BACK SEARCH FROM THERE 4241 013247 4520 BKPSPC 4242 013250 5274 JMP SCRLDG / JUMP IF NO MORE 4243 AND P177 undefined ^ undefined ^ 013251 0000 4244 TAD (-ECNWPG) undefined ^ undefined ^ 013252 1372 4245 013253 7650 SNA CLA 4246 013254 5266 JMP SCRLDE 4247 4248 013255 4520 SCRLDB, BKPSPC 4249 013256 5266 JMP SCRLDE / JUMP IF STX 4250 AND P177 undefined ^ undefined ^ 013257 0000 4251 4252 013260 4500 ZZCASE / COMPARE AGAINST TABLE 4253 013261 3334 CTB010-1 / TABLE ADDRESS FOR CASE 4254 4255 / ECNWLN; SCRLDC / NEW LINE 4256 / ECNWPG; SCRLDC / NEW PAGE 4257 / ECSTRL; SCRLDE / START RULER 4258 / ECNDRL; SCRLDC / END RULER 4259 / 0 / INDICATE END OF TABLE 4260 4261 013262 5255 JMP SCRLDB / LOOP IF NOT 4262 4263 013263 4506 SCRLDC, ADVPTR 4264 013264 5771 JMP EIBAD 4265 013265 7200 CLA 4266 013266 0000 SCRLDE, CDFMYF 4267 AC7777 undefined ^ 013267 0000 4268 013270 1334 TAD SCRLDF 4269 013271 3334 DCA SCRLDF / SET TOP PTR PTR 4270 013272 1135 TAD CURPTR 4271 013273 3734 DCA I SCRLDF / SET NEW TOP 4272 013274 1171 SCRLDG, TAD LINE23 4273 013275 3135 DCA CURPTR 4274 013276 3136 DCA CURSOR 4275 CDFBUF undefined ^ 013277 0000 4276 013300 1535 TAD I CURPTR / GET_CHAR 4277 SCRLDD, AND P177 / LOOP, STRIP MODE BITS undefined ^ undefined ^ 013301 0000 4278 4279 013302 4500 ZZCASE / COMPARE AGAINST TABLE 4280 013303 3345 CTB011-1 / TABLE ADDRESS FOR CASE 4281 4282 / ECNWLN; SCRLDL / NEW LINE 4283 / ECNWPG; SCRLDL / NEW PAGE 4284 / ECSTRL; SCRLDS / START RULER 4285 / 0 / INDICATE END OF TABLE 4286 4287 013304 2136 ISZ CURSOR / THEN INCREMENT CURSOR 4288 013305 4517 ADVSPC 4289 013306 5771 JMP EIBAD / ADVANCE TO NEXT CHARACTER 4290 013307 5301 JMP SCRLDD / END_LOOP 4291 4292 / CASE CURRENT_CHARACTER =: 4293 / SELECT_POINT: SLCTDR=1 4294 / START_PRINT_CONTROL: PCTLFL=0 4295 / END_PRINT_CONTROL: PCTLFL=-1 4296 4297 013310 1535 SCRLDL, TAD I CURPTR / GET CURRENT CHARACTER 4298 013311 4770 JMS SCRLTM / CHECK AC FOR SPECTIAL CHARACTER 4299 013312 5333 JMP SCRLDX / NO SPECIAL CHARACTER 4300 013313 5331 JMP SCRLDP / AC WAS A SELECT POINT 4301 013314 7040 CMA / AC WAS START_CONTROL OR END_CONTROL 4302 / -1 = END_CONTROL: 0 = START_CONTROL 4303 013315 3142 DCA PCTLFL / 0 = END_CONTROL: -1 = START_CONTROL 4304 013316 5333 JMP SCRLDX 4305 4306 013317 1136 SCRLDS, TAD CURSOR 4307 013320 7640 SZA CLA 4308 013321 5333 JMP SCRLDX / IF THIS IS RULER LINE, 4309 013322 4767 JMS SETRUL 4310 013323 6136 ESADRL / RESET TO OLD RULER 4311 013324 4766 JMS COPRUL 4312 CDFBUF undefined ^ 013325 0000 4313 013326 1171 TAD LINE23 4314 013327 3135 DCA CURPTR / RESET CURPTR 4315 013330 5333 JMP SCRLDX 4316 4317 SCRLDP, AC0001 / CURRENT CHAR WAS SELECT POINT SO SET FLAG undefined ^ 013331 0000 4318 013332 3127 DCA SLCTDR / INDICATING SELECT POINT IS BELOW US 4319 013333 5600 SCRLDX, JMP I SCRLDN / RETURN TO CALLER 4320 4321 013334 0000 SCRLDF, .-. 4322 4323 CTB010, ECNWLN; SCRLDC / NEW LINE undefined ^ 013335 0000 013336 3263 4324 ECNWPG; SCRLDC / NEW PAGE undefined ^ 013337 0000 013340 3263 4325 ECSTRL; SCRLDE / START RULER undefined ^ 013341 0000 013342 3266 4326 ECNDRL; SCRLDC / END RULER undefined ^ 013343 0000 013344 3263 4327 013345 0000 0 / INDICATE END OF TABLE 4328 4329 CTB011, ECNWLN; SCRLDL / NEW LINE undefined ^ 013346 0000 013347 3310 4330 ECNWPG; SCRLDL / NEW PAGE undefined ^ 013350 0000 013351 3310 4331 ECSTRL; SCRLDS / START RULER undefined ^ 013352 0000 013353 3317 4332 013354 0000 0 / INDICATE END OF TABLE 4333 4334 SETSPT, XX / SET SCREEN-NEEDS-TO-BE-SPLIT FLAG undefined ^ 013355 0000 4335 /D226 TAD SPLTFL 4336 /D226 SNA 4337 AC7777 undefined ^ 013356 0000 4338 013357 3765 DCA SPLTFL 4339 013360 5755 JMP I SETSPT 4340 4341 013361 4523 EISCUT, OVLJMP;OVSCUT / ENTRY POINT FOR STRAIGHT CUT 013362 2201 4342 4343 013363 0000 RPMTBK, 0 / Rapid Paging MaTh BlocK begin offset /M226 4344 4345 4346 X=. / INDICATE FIRST FREE LOCATION ON PAGE 4347 /--------------- 4348 013365 2345 PAGE 013366 5217 013367 5600 013370 3040 013371 0400 013372 0000 013373 6250 013374 2335 013375 2244 013376 7540 013377 1752 4349 4350 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 4351 4352 4353 FXSCRL, XX / UNDO SCREEN LAG undefined ^ 013400 0000 4354 013401 0000 CDFMYF 4355 013402 1136 TAD CURSOR / SAVE CURSOR POSN 'TILL LATER. 4356 013403 3351 DCA FXSCT1 / ... 4357 013404 3136 DCA CURSOR / REINIT TO START OF LINE. 4358 013405 1364 TAD WIDEFL / TEST NEED TO GO WIDE FLAG /M226 4359 013406 7700 SMA CLA 4360 013407 5215 JMP FXSCRF / JUMP IF NOT SET 4361 013410 3364 DCA WIDEFL / RESET IT TO NOT NEEDED /M226 4362 013411 4777 JMS SET132 / MAKE SCREEN WIDER 4363 013412 1166 TAD FORMNO 4364 013413 7650 SNA CLA / CAN'T DO WHOLE SCREEN IF MERGING!! 4365 013414 5334 JMP FXSCRE / AND REFRESH WHOLE SCREEN 4366 4367 013415 1140 FXSCRF, TAD SCRNFL 4368 013416 7640 SZA CLA 4369 013417 5334 JMP FXSCRE / JUMP IF WHOLE SCREEN NEEDED 4370 013420 1137 TAD SCRLCT / TEST LAG 4371 013421 7450 SNA 4372 013422 5315 JMP FXSCRK / JUST SET CURSOR IF NO LAG 4373 013423 7510 SPA 4374 013424 5266 JMP FXSCRD / JUMP IF SCROLL DOWN NEEDED 4375 013425 7041 CIA 4376 013426 4317 JMS FXSCRA / TEST FOR TOO MUCH 4377 013427 4776 JMS SCRFSH 4378 4379 013430 4775 FXSCRI, JMS NWLN 4380 FXSCRJ, AC0001 undefined ^ 013431 0000 4381 013432 1352 TAD FXSCT2 4382 013433 4774 JMS SCRLTX / DO ONE LINE 4383 013434 2352 ISZ FXSCT2 4384 013435 5341 JMP FXSCRB / LOOP FOR ALL 4385 013436 3144 FXSCRC, DCA CURLIN 4386 013437 1351 TAD FXSCT1 / Restore cursor posn. 4387 013440 3136 DCA CURSOR / ... 4388 013441 1137 TAD SCRLCT / forward scroll? 4389 013442 7710 SPA CLA / skip if yes. 4390 013443 5260 JMP FXSCX1 / If no then do DCA to current posn. 4391 013444 1046 TAD CURPOS / Get current cursor posn on the screen. 4392 013445 7041 CIA / Compare to 4393 013446 1136 TAD CURSOR / where we want to be. 4394 013447 7650 SNA CLA / Skip if not there. 4395 013450 5261 JMP FXSCX2 / Already there so ignore. 4396 013451 1136 TAD CURSOR / Are we aiming for col 1? 4397 013452 7640 SZA CLA / skip if yes. 4398 013453 5260 JMP FXSCX1 / JMP if no to do DCA to correct posn. 4399 013454 1373 TAD (CR) / to to get to col 1 of this line. 4400 013455 4503 PUTOUT / ... 4401 013456 3046 DCA CURPOS / reset cursor posn. 4402 013457 5261 JMP FXSCX2 / merge below to clean up & exit. 4403 4404 013460 4772 FXSCX1, JMS SETCUR / posn cursor to desired colm. 4405 013461 3137 FXSCX2, DCA SCRLCT / RESET LAG 4406 013462 3140 DCA SCRNFL / AND SCREEN FLAG 4407 013463 3145 DCA SCRLCU / AND REFRESH FLAGS 4408 013464 3146 DCA SCRLIN 4409 013465 5600 JMP I FXSCRL / AND THEN RETURN 4410 4411 013466 4317 FXSCRD, JMS FXSCRA / CHECK FOR TOO MUCH 4412 013467 4771 JMS SCRNSZ / SET TO TOP 4413 013470 7041 CIA 4414 013471 7001 IAC 4415 013472 3144 DCA CURLIN 4416 4417 013473 4515 FXSCRH, PUTESC 4418 013474 4133 "[&177+4000 4419 013475 0110 "H&177 / Cursor home. 4420 013476 4515 PUTESC 4421 013477 0115 "M&177 / SCROLL DOWN 4422 013500 1770 TAD SPLTFL / wide screen mode? 4423 013501 7640 SZA CLA / Skip if no. we's already at line. 4424 013502 4767 JMS PCUR / Reposn to start of current line. 4425 013503 1352 TAD FXSCT2 4426 013504 7040 CMA 4427 013505 1144 TAD CURLIN 4428 013506 4774 JMS SCRLTX / DO ONE LINE 4429 013507 2352 ISZ FXSCT2 4430 013510 5273 JMP FXSCRH / LOOP FOR ALL 4431 013511 1137 TAD SCRLCT / FIX REFRESH FLAG 4432 013512 7041 CIA 4433 013513 1146 TAD SCRLIN 4434 013514 3146 DCA SCRLIN 4435 013515 4776 FXSCRK, JMS SCRFSH / FIX UP LINES NOT SCROLLED 4436 013516 5236 JMP FXSCRC / AND FIX CURSOR AND RETURN 4437 4438 FXSCRA, XX undefined ^ 013517 0000 4439 013520 3352 DCA FXSCT2 / SAVE COUNT 4440 013521 4771 JMS SCRNSZ / GET SCREEN SIZE 4441 013522 1352 TAD FXSCT2 / -COUNT 4442 013523 7710 SPA CLA 4443 013524 5334 JMP FXSCRE / JUMP IF TOO MUCH 4444 013525 1145 TAD SCRLCU 4445 013526 7650 SNA CLA 4446 013527 5717 JMP I FXSCRA 4447 013530 4771 JMS SCRNSZ 4448 013531 1146 TAD SCRLIN 4449 013532 7700 SMA CLA 4450 013533 5717 JMP I FXSCRA / RETURN IF OK 4451 013534 4766 FXSCRE, JMS CLSCRN / FOR WHOLE SCREEN, CLEAR IT 4452 013535 4771 JMS SCRNSZ / SET FULL COUNT 4453 013536 7041 CIA 4454 013537 3352 DCA FXSCT2 4455 013540 3137 DCA SCRLCT / USE REAL SCREEN POSITION 4456 013541 1137 FXSCRB, TAD SCRLCT 4457 013542 7640 SZA CLA 4458 013543 5230 JMP FXSCRI / IF REALLY SCROLLING, USE BOTTOM LINE 4459 AC0001 undefined ^ 013544 0000 4460 013545 1352 TAD FXSCT2 / ELSE USE REAL LINE 4461 013546 3144 DCA CURLIN / Set line # to refresh. 4462 013547 4767 JMS PCUR / Posn to physical start of line. 4463 013550 5231 JMP FXSCRJ 4464 4465 013551 0000 FXSCT1, 0 4466 013552 0000 FXSCT2, 0 4467 4468 CHKALP, XX / SET MQ AND CHECK FOR OVER 40 undefined ^ 013553 0000 4469 013554 7421 MQL 4470 013555 7501 MQA 4471 AND P177 undefined ^ undefined ^ 013556 0000 4472 013557 1365 TAD (-40) 4473 013560 7540 SMA SZA 4474 013561 2353 ISZ CHKALP / SKIP RETURN IF OK 4475 013562 7701 CLA MQA / RESTORE CODE 4476 013563 5753 JMP I CHKALP / AND RETURN TO CALLER 4477 4478 013564 0000 WIDEFL, 0 / FLAG TO KNOW WHEN TO GO TO WIDE SCREEN MODE 4479 / -1=NEED TO GO 132 COL., 0=NOT NEEDED /A226 4480 4481 X=. / INDICATE FIRST FREE LOCATION ON PAGE 4482 /--------------- 4483 013565 7740 PAGE 013566 2134 013567 1400 013570 2345 013571 2335 013572 1744 013573 0015 013574 1517 013575 4557 013576 3115 013577 6744 4484 4485 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 4486 4487 4488 SCRLUP, XX / SCROLL UP undefined ^ 013600 0000 4489 CDILP / CHANGE CONTROL TO LP FIELD TO CHK ON MATH undefined ^ 013601 0000 4490 013602 4777 JMS CKCTRL / GO PROCESS LATEST LINE SCROLLED UP 4491 4492 013603 1137 TAD SCRLCT 4493 013604 7700 SMA CLA / IF SCROLLING UP (NOT DOWN) 4494 013605 1152 TAD ECHFLG / THEN 4495 013606 7640 SZA CLA / IF ECHOING 4496 013607 4776 JMS FXSCRL / THEN UPDATE SCREEN 4497 4498 SCRLP1, AC0001 undefined ^ 013610 0000 4499 013611 4775 JMS SCRAD0 / INCREMENT SCROLL COUNT 4500 4501 013612 4506 ADVPTR / ADVANCE 4502 013613 7000 NOP / RETURNS HERE IF END OF TEXT FOUND 4503 013614 7200 CLA / NORMALLY RETURNS HERE WITH CHAR IN AC 4504 4505 013615 0000 CDFMYF / CHANGE DATA FIELD BACK TO THIS FIELD 4506 013616 4774 JMS SCRLPX / GO SET UP AUTO-INDEX REGISTERS 4507 4508 TAD I X0 undefined ^ undefined ^ 013617 1400 4509 DCA I X1 undefined ^ undefined ^ 013620 3400 4510 ISZ X2 undefined ^ undefined ^ 013621 2000 4511 013622 5217 JMP .-3 4512 013623 1135 TAD CURPTR 4513 013624 3171 DCA LINE23 4514 013625 1171 TAD LINE23 4515 DCA I X1 undefined ^ undefined ^ 013626 3400 4516 013627 4507 BKPPTR 4517 013630 5232 JMP SCRLUB / BACK UP OVER NEWLINE 4518 013631 4773 JMS SCRLUM / DO MODE CHANGE, IF NEC. 4519 013632 1171 SCRLUB, TAD LINE23 4520 013633 3135 DCA CURPTR / RESTORE CURPTR 4521 /D203; TAD CURSOR / SAVE THE CURSOR POS FOR LATER 4522 /D203; DCA CURTMP / SELECT MIGHT WANT IT! 4523 013634 3136 DCA CURSOR 4524 013635 1151 TAD LINMOD 4525 013636 7640 SZA CLA 4526 013637 4514 SLNMOD / RESET MOD FLAG, IF NECESSARY 4527 4528 013640 0000 CDFMYF / RESET DATA FIELD TO THIS FIELD 4529 CIFMNU / SET INSTRUCTION FIELD TO MENU FIELD undefined ^ 013641 0000 4530 013642 4014 JMS CALLN4 / HANDLE SCROLL UP FOR STATUS LINE 4531 CDFBUF / RESET TO BUFFER FIELD undefined ^ 013643 0000 4532 4533 013644 5600 JMP I SCRLUP / AND THEN RETURN TO CALLER 4534 4535 4536 / THIS ROUTINE GETS RID OF ALL JUSTIFYING CHARACTERS (JUSTIFIED SPACES WORD 4537 / WRAPS ETC.) UP TO THE RIGHT MARGIN OR THE FIRST LINE_ENDING CHARACTER, 4538 / WHICHEVER COMES FIRST (I THINK THATS WHAT IT DOES ANYWAY) 4539 JCLEAN, XX undefined ^ 013645 0000 4540 013646 1135 TAD CURPTR 4541 013647 3322 DCA JCLEAY / SAVE CURPTR 4542 013650 1160 TAD RGTMAR / GET THE COLUMN # OF THE RIGHT MARGIN 4543 013651 1372 TAD (-COLM80) / M219 4544 013652 7700 SMA CLA / IF RIGHT_MARGIN GREATER THAN 79 4545 013653 1371 TAD (-COLLIM+COLM81) / THEN JCLEAX= -238 /M219 4546 013654 1370 TAD (-COLM81) / ELSE JCLEAX= -80 /M219 4547 013655 3321 DCA JCLEAX / (* STORE TO USE AS LOOP COUNTER *) 4548 013656 4767 JCLEA6, JMS LODCHR / GET CHARACTER 4549 013657 5314 JMP JCLEA2 / RETURNS HERE IF END_OF_TEXT (ETX) FOUND 4550 013660 5263 JMP .+3 4551 013661 4517 JCLEA1, ADVSPC 4552 013662 5314 JMP JCLEA2 / RETURNS HERE IN END_OF_TEXT 4553 AND P177 / ELIMINATE IMPOSSIBLES, FOR SPEED undefined ^ undefined ^ 013663 0000 4554 013664 1366 TAD (-40) 4555 013665 7740 SMA SZA CLA / IF CHARACTER IS PRINTABLE 4556 013666 5312 JMP JCLEA4 / THEN GO INCREMENT LOOP COUNTER 4557 013667 1535 TAD I CURPTR 4558 013670 4765 JMS ESJTST 4559 013671 7440 SZA 4560 013672 1323 TAD JCLGCT / CHECK FOR PAGE MARKER IF NOT 4561 / GOLD CUTTING 4562 013673 7650 SNA CLA 4563 013674 5317 JMP JCLEA3 / JUMP IF GOT A JUSTIFYING CODE 4564 013675 1535 TAD I CURPTR / ELSE CHECK FOR LINE ENDING CHARACTER 4565 AND P177 undefined ^ undefined ^ 013676 0000 4566 TAD (-ECNWLN) undefined ^ undefined ^ 013677 1364 4567 013700 7440 SZA 4568 TAD (ECNWLN-ECNWPG) undefined ^ undefined ^ undefined ^ undefined ^ 013701 1364 4569 013702 7440 SZA 4570 TAD (ECNWPG-ECSTRL) undefined ^ undefined ^ undefined ^ undefined ^ 013703 1364 4571 013704 7450 SNA 4572 013705 5314 JMP JCLEA2 / JUMP IF A LINE ENDING CHARACTERONE 4573 013706 7710 SPA CLA 4574 013707 4763 JMS CHKLMD /HECK FOR RULER OR LINE MODIFIED CHAR 4575 013710 7410 SKP / RETURNS HERE IF NONE FOUND 4576 013711 5256 JMP JCLEA6 / RETURNS HERE OF ONE FOUND 4577 013712 2321 JCLEA4, ISZ JCLEAX / INCREMENT LOOP COUNTER 4578 013713 5261 JMP JCLEA1 / LOOP BACK IF NOT AT RIGHT END OF RULER 4579 4580 / HERE IF CHAR IS: 4581 / ECNWLN 0012 NEW LINE 4582 / OR ECPGRF 1012 END PARAGRAPH 4583 / OR ECENLN 1412 CENTERED LINE 4584 / OR ECSLPT 3412 SELECT POINT 4585 / OR ECPCT1 1014 START CONTROL 4586 / OR ECPCT2 1414 END CONTROL 4587 / OR ECLTRL 0016 RULER START 4588 / OR IF AT END_OF_TEXT 4589 / OR IF AT RIGHTMOST MARGIN (EITHER 80 OR 160) 4590 4591 013714 1322 JCLEA2, TAD JCLEAY 4592 013715 3135 DCA CURPTR 4593 013716 5645 JMP I JCLEAN / RETURN 4594 4595 / HERE IF CHAR IS: 4596 / ECJSPC 2040 JUSTIFIED SPACE 4597 / OR ECWWLN 2012 WRAPPED LINE 4598 / OR ECHYLN 2412 WRAPPED LINE WITH HYPHEN 4599 / OR ECPMRK 2014 PAGE MARKER 4600 4601 013717 3535 JCLEA3, DCA I CURPTR / DELETE JUSTIF CODE 4602 013720 5256 JMP JCLEA6 / AND LOOP FOR MORE 4603 013721 0000 JCLEAX, 0 / LOOP COUNTER INITIALIZED TO -160 FOR 4604 / WIDE RULERS OR -80 FOR REGULAR RULERS 4605 013722 0000 JCLEAY, 0 4606 JCLGCT, JTSTOF-ECPMRK / OFFSET FOR DELETING PAGE MARKER undefined ^ 013723 0000 4607 / IF NOT IN GOLD CUT MODE 4608 4609 4610 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 4611 4612 4613 / PSUEDO_CODE FOR ESLCTS 4614 / 4615 / IF ALREADY IN SELECT MODE 4616 / THEN 4617 / IF SELECT POINT IS ABOVE US 4618 / THEN 4619 / INSERT "ECSLPT" INTO TEXT 4620 / BACK UP TO SELECT MARK AND DELETE IT 4621 / SET LINE_MODIFIED FLAG 4622 / 4623 / INCREMENT RETURN ADDRESS 4624 / 4625 ESLCTS, XX / TEST SELECT MODE undefined ^ 013724 0000 4626 013725 1350 TAD ESLMOD+1 / ALREADY IN SELECT MODE? 4627 013726 0133 AND EDMODE 4628 013727 7650 SNA CLA / SKIP IF: SO 4629 013730 5724 JMP I ESLCTS / JUST RETURN IF NOT IN SELECT 4630 013731 1127 TAD SLCTDR / TEST DIRECTION 4631 013732 7640 SZA CLA / SKIP IF: FORWARD 4632 013733 5345 JMP ESLCT6 / JMP IF SELECTING BACKWARDS 4633 TAD (ECSLPT) undefined ^ undefined ^ 013734 1364 4634 013735 4762 JMS INSERT / ELSE INSERT OUR STOPPER 4635 013736 4761 JMS SVSLCR / SAVE CURSOR POSITION /A209 4636 ESLCT4, AC7777 / LOOP undefined ^ 013737 0000 4637 013740 4513 CURMOV / BACKUP CURSOR 4638 013741 5760 JMP UNSLCT / EXIT IF START OF DOCUMENT FOUND 4639 013742 1535 TAD I CURPTR / GET NEXT CHAR 4640 013743 4757 JMS ESLCTD / IF CHAR NOT EQUAL SELECT POINT 4641 013744 5337 JMP ESLCT4 / THEN GOTO ESLCT4: 4642 / ELSE 4643 013745 2324 ESLCT6, ISZ ESLCTS / TAKE SKIP RETURN 4644 013746 5724 JMP I ESLCTS 4645 4646 013747 0000 ESLMOD, 0 4647 013750 0020 SLTMOD 4648 4649 013751 4523 EINXSC, OVLJMP;OVNXSC / NEXT SCREEN 013752 4226 4650 4651 / THE FOLLOWING IS USED BY V2 GOTO PAGE OVERLAYS... 4652 4653 013753 0000 RPBOTF, 0 / V2 GOLD BOTTOM FLAG /M226 4654 / - = V2 GOLD BOTTOM REQUEST 4655 / 0 = V2 GOTO PAGE REQUEST 4656 4657 X=. / INDICATE FIRST FREE LOCATION ON PAGE 4658 /--------------- 4659 013757 1135 PAGE 013760 2547 013761 1347 013762 2000 013763 4733 013764 0000 013765 5744 013766 7740 013767 4241 013770 7660 013771 7540 013772 7661 013773 3027 013774 1671 013775 1752 013776 3400 013777 7001 4660 4661 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 4662 4663 4664 014000 1142 EIPCMD, TAD PCTLFL / START AND END CONTROL 4665 014001 7650 SNA CLA 4666 TAD (ECPCT1-ECPCT2) / INSERT NON-REDUNDANT CONTROL MARKER undefined ^ undefined ^ undefined ^ undefined ^ 014002 1377 4667 TAD (ECPCT2-ECNWPG) undefined ^ undefined ^ undefined ^ undefined ^ 014003 1377 4668 EINPAG, TAD (ECNWPG-ECPMRK) / NEW PAGE undefined ^ undefined ^ undefined ^ undefined ^ 014004 1377 4669 EIPMRK, TAD (ECPMRK) / PAGE MARKER undefined ^ undefined ^ 014005 1377 4670 014006 7421 MQL 4671 014007 3136 DCA CURSOR 4672 014010 1171 TAD LINE23 4673 014011 3135 DCA CURPTR 4674 014012 7501 MQA 4675 014013 5776 JMP EIFXT1 / AND JUMP TO INSERT 4676 4677 ESGETE, XX / GET FROM ETX undefined ^ 014014 0000 4678 014015 4634 JMS I ESGETX 4679 MGPTC1, XGETET / OR XRDFNC IF FORM undefined ^ 014016 0000 4680 014017 5614 JMP I ESGETE 4681 4682 ESGETS, XX / GET FROM STX undefined ^ 014020 0000 4683 014021 4634 MGPTC2, JMS I ESGETX / OR SKP CLA IF FORM 4684 XGETST undefined ^ 014022 0000 4685 014023 5620 JMP I ESGETS 4686 4687 ESPUTE, XX / PUT TO ETX undefined ^ 014024 0000 4688 014025 4634 MGPTC3, JMS I ESGETX / OR SKP CLA IF FORM 4689 XPUTET undefined ^ 014026 0000 4690 014027 5624 JMP I ESPUTE 4691 4692 ESPUTS, XX / PUT TO STX undefined ^ 014030 0000 4693 014031 4634 MGPTC4, JMS I ESGETX / OR JMP I ESPUTX IF NO FILE 4694 XPUTST undefined ^ 014032 0000 4695 014033 5630 ESPUTY, JMP I ESPUTS 4696 4697 014034 5014 ESGETX, DSKCAL 4698 014035 0507 ESPUTX, PUTST3 4699 4700 4701 ESICHR, XX / INSERT CHAR AND ECHO undefined ^ 014036 0000 4702 014037 4775 JMS INSERT / INSERT INTO DOCUMENT 4703 AC0001 undefined ^ 014040 0000 4704 014041 3152 DCA ECHFLG / SET ECHO MODE 4705 014042 4514 SLNMOD / SET MODIFIED FLAG 4706 014043 1535 TAD I CURPTR / HANDLE NW PAGE AND NW LINE SPECIALLY 4707 014044 3335 DCA ESITMP / save character. 4708 014045 1335 TAD ESITMP / get back. 4709 AND P177 undefined ^ undefined ^ 014046 0000 4710 4711 014047 4500 ZZCASE / COMPARE AGAINST TABLE 4712 014050 4135 CTB012-1 / TABLE ADDRESS FOR CASE 4713 4714 / ECNWPG; ESINPG / NEW PAGE 4715 / ECNWLN; ESINP2 / NEW LINE 4716 / ECSTOV; ESINP1 / START DEAD KEY 4717 / ECNDOV; ESINP5 / END DEAD KEY 4718 / 0 / INDICATE END OF TABLE 4719 4720 014051 1334 TAD ESINOV 4721 014052 7650 SNA CLA 4722 014053 5332 JMP ESINP7 4723 014054 4507 BKPPTR 4724 014055 7000 NOP / CONTINUE OVERSTRIKE MODE 4725 TAD (-ECNDOV) / IF POSSIBLE undefined ^ undefined ^ 014056 1377 4726 014057 7640 SZA CLA 4727 014060 5326 JMP ESINP6 4728 014061 3535 DCA I CURPTR 4729 014062 4506 ADVPTR 4730 014063 7000 NOP 4731 014064 4506 ESINP1, ADVPTR 4732 014065 7000 NOP 4733 014066 7200 CLA 4734 TAD (ECNDOV) undefined ^ undefined ^ 014067 1377 4735 014070 4775 JMS INSERT / START OVERSTRIKE MODE 4736 014071 4506 ADVPTR 4737 014072 7000 NOP 4738 AC0001 undefined ^ 014073 0000 4739 014074 3334 DCA ESINOV 4740 014075 5636 JMP I ESICHR 4741 4742 014076 4774 ESINP2, JMS REJUST 4743 014077 5320 JMP ESINP4 4744 4745 014100 1136 ESINPG, TAD CURSOR / INSERT NEW LINE BEFORE NEW PAGE, IF NEC. 4746 014101 7650 SNA CLA 4747 014102 5320 JMP ESINP4 4748 4749 014103 4774 JMS REJUST 4750 014104 1335 TAD ESITMP / soft page marker? 4751 TAD (-ECPMRK) / ... undefined ^ undefined ^ 014105 1377 4752 014106 7640 SZA CLA / skip if yes. rejust deleted it. 4753 014107 5315 JMP ESNP3A / Hard PM so all is ok. /M220 4754 TAD (ECPMRK) undefined ^ undefined ^ 014110 1377 4755 014111 4775 JMS INSERT / Insert soft page marker back!!! 4756 TAD (ECWWLN) undefined ^ undefined ^ 014112 1377 4757 014113 4775 JMS INSERT / INSERT SOFT RETURN JUST PRIOR TO NPM. 4758 014114 5317 JMP ESINP3 / MERGE BELOW TO PROPERLY SCROLL /A220 4759 014115 1136 ESNP3A, TAD CURSOR / ARE WE AT START OF LINE NOW ? /A220 4760 014116 7640 SZA CLA / SKIP IF YES. MUST HAVE BEEN LM NOT=0 /A220 4761 014117 4773 ESINP3, JMS SCRLUP 4762 014120 4773 ESINP4, JMS SCRLUP 4763 014121 5636 JMP I ESICHR 4764 4765 014122 3535 ESINP5, DCA I CURPTR / LEAVE OVERSTIKE MODE 4766 014123 2136 ISZ CURSOR 4767 014124 3334 DCA ESINOV 4768 014125 5636 JMP I ESICHR 4769 4770 014126 3334 ESINP6, DCA ESINOV / CANCEL OVERSTIKE MODE 4771 014127 4506 ADVPTR 4772 014130 7000 NOP 4773 014131 7200 CLA 4774 014132 4772 ESINP7, JMS CHKREJ 4775 014133 5636 JMP I ESICHR / AND RETURN 4776 4777 014134 0000 ESINOV, .-. 4778 014135 0000 ESITMP, 0 4779 4780 CTB012, ECNWPG; ESINPG / NEW PAGE undefined ^ 014136 0000 014137 4100 4781 ECNWLN; ESINP2 / NEW LINE undefined ^ 014140 0000 014141 4076 4782 ECSTOV; ESINP1 / START DEAD KEY undefined ^ 014142 0000 014143 4064 4783 ECNDOV; ESINP5 / END DEAD KEY undefined ^ 014144 0000 014145 4122 4784 014146 0000 0 / INDICATE END OF TABLE 4785 4786 / ESPTES IS REWRITTEN TO DEAL WITH THE NEW, LONGER ESCAPE SEQUENCES. 4787 / IF THERE ARE TWO CHARACTERS TO FOLLOW THE ESC, THE FIRST CHARACTER 4788 / HAS ITS 0 BIT SET. THIS VERSION TESTS FOR THAT AND FOLLOWS THROUGH. 4789 4790 ESPTES,XX / PUT ESCAPE SEQUENCE undefined ^ 014147 0000 4791 TAD (ESC) undefined ^ undefined ^ 014150 1377 4792 AND P3777 / MASK OUT BIT 0. DOES NO HARM TO ESC. undefined ^ undefined ^ 014151 0000 4793 014152 4503 PUTOUT 4794 014153 1747 TAD I ESPTES / GET THE FIRST ARGUMENT. 4795 014154 2347 ISZ ESPTES / INCREMENT RETURN LOCATION. 4796 014155 7510 SPA / SKIP IF NOT ANOTHER ARGUMENT. 4797 014156 5351 JMP .-5 / RUN THROUGH THE CYCLE AGAIN IF THERE IS. 4798 014157 4503 PUTOUT 4799 014160 5747 JMP I ESPTES / RETURN 4800 4801 X=. / INDICATE FIRST FREE LOCATION ON PAGE 4802 /--------------- 4803 014172 2354 PAGE 014173 3600 014174 2400 014175 2000 014176 1314 014177 0000 4804 4805 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 4806 4807 4808 /++ 4809 / FUNCTIONAL DESCRIPTION: CHKSPC 4810 / 4811 / CHECKS FOR SPACE LEFT ON A DISK AND INFORMS USER IF IT IS LESS 4812 / THAN THE MINIMUM CUTOFF VALUE (SPECIFIED IN SPCCHK) 4813 / 4814 / CHKSPC PSEUDO CODE: 4815 / 4816 / GET NUMBER OF FREE BLOCKS LEFT ON DISK 4817 / IF (BELOW MINIMUM CUTOFF VALUE) 4818 / EXIT - INFORM USER AND WAIT FOR KB INPUT 4819 / RETURN TO CALLER 4820 / 4821 / CALLING SEQUENCE: JMS CHKSPC 4822 / 4823 / INPUT PARAMETERS: NONE 4824 / 4825 / IMPLICIT INPUTS: ACSAVE, SCFSPC, SPCCHK 4826 / 4827 / OUTPUT PARAMETERS: NONE 4828 / 4829 / IMPLICIT OUTPUT: ACSAVE, SPCCHK 4830 / 4831 / COMPLETION CODE: NONE 4832 / 4833 / SIDE EFFECTS: THIS ROUTINE ONLY INFORMS YOU THAT YOU'RE 4834 / RUNNING OUT OF SPACE ON THE DISK. IT WILL NOT 4835 / PREVENT YOU FROM GOING BEYOND THE LIMIT AND 4836 / POSSIBLY WIPING OUT YOUR DISK. 4837 / 4838 /-- 4839 / 4840 CHKSPC, XX / CHECK DISKETTE ROOM undefined ^ 014200 0000 4841 014201 3236 DCA ACSAVE / SAVE AC IN TEMP LOCATION 4842 CDFFIO undefined ^ 014202 0000 4843 TAD I (SCFSPC) / GET NUMBER OF BLOCKS LEFT undefined ^ undefined ^ 014203 1777 4844 014204 0000 CDFMYF / COMPARE WITH CUTOFF POINT VALUE 4845 DCA T1 undefined ^ undefined ^ 014205 3000 4846 TAD T1 undefined ^ undefined ^ 014206 1000 4847 014207 1172 TAD SPCCHK 4848 014210 7700 SMA CLA / IS THERE ROOM ? 4849 014211 5234 JMP ACRSTR / YES 4850 / ???? DCA SPCCHK / CLEAR SPCCHK (ONE WARNING IS ENOUGH) 4851 TAD T1 / CHECK FOR HARD LIMIT undefined ^ undefined ^ 014212 1000 4852 014213 1376 TAD (-14) 4853 014214 7740 SMA SZA CLA 4854 014215 5221 JMP DOWTCH 4855 AC7777 undefined ^ 014216 0000 4856 014217 3240 DCA BLKALM 4857 014220 5232 JMP WARN 4858 4859 014221 1237 DOWTCH, TAD BLWTCH / WATCH FOR NEXT USE OF A BLOCK 4860 014222 7450 SNA 4861 014223 5230 JMP NEWTCH 4862 4863 014224 7041 CIA 4864 TAD T1 undefined ^ undefined ^ 014225 1000 4865 014226 7700 SMA CLA 4866 014227 5234 JMP ACRSTR 4867 NEWTCH, TAD T1 undefined ^ undefined ^ 014230 1000 4868 014231 3237 DCA BLWTCH 4869 014232 4523 WARN, OVLJMP;OVSPCE / PUT OUT MESSAGE AND RETURN TO EINEXT 014233 0401 4870 4871 014234 1236 ACRSTR, TAD ACSAVE / RESTORE AC 4872 014235 5600 JMP I CHKSPC 4873 4874 014236 0000 ACSAVE, 0 / TEMP SAVE LOCATION FOR AC SAVING 4875 014237 0000 BLWTCH, 0 / FOR KEEPING TRACK OF BLOCK USAGE 4876 014240 0000 BLKALM, 0 / ALARM FOR HARD LIMIT 4877 4878 4879 / LODCHR GET FIRST AVAILABLE CHARACTER 4880 / 4881 / THIS ROUTINE RETURNS THE FIRST AVAILABLE CHARACTER AT OR AFTER 4882 / THE POSITION POINTED TO BY CURPTR. 4883 / 4884 / CALL: 4885 / 4886 / JMS LODCHR 4887 / 4888 / 4889 / 4890 4891 LODCHR, XX undefined ^ 014241 0000 4892 014242 7200 CLA 4893 014243 4510 CHKPTR 4894 014244 7540 SZA SMA 4895 014245 5250 JMP LODEXI 4896 014246 4506 ADVPTR 4897 014247 5641 JMP I LODCHR / TAKE 1ST RET IF ETX FOUND 4898 014250 2241 LODEXI, ISZ LODCHR 4899 014251 5641 JMP I LODCHR 4900 4901 USCMPR, XX / COMPARE AC&177 WITH MQ, undefined ^ 014252 0000 4902 / USING MQ AS U/L MATCH 4903 / LEAVES AC 0, MQ UNCHANGED 4904 AND P177 / MASK CHAR undefined ^ undefined ^ 014253 0000 4905 014254 7041 CIA 4906 014255 3000 DCA USCMP1 / SAVE FOR COMPARE 4907 014256 7501 MQA 4908 014257 1000 TAD USCMP1 / COMPARE AS IS 4909 014260 7650 SNA CLA 4910 014261 5266 JMP USCMP2 / JUMP IF EQUAL 4911 014262 7501 MQA 4912 014263 4516 XLTUPR / MAKE MATCH CHAR UPPER CASE 4913 014264 1000 TAD USCMP1 / COMPARE AGAIN 4914 014265 7650 SNA CLA 4915 014266 2252 USCMP2, ISZ USCMPR / BUMP RETURN FOR MATCH 4916 014267 5652 JMP I USCMPR / NO BUMP FOR NO MATCH 4917 USCMP1= X0 / TEMP undefined ^ 4918 4919 4920 ESXLUP, XX / XLAT AC TO UPPER CASE undefined ^ 014270 0000 4921 014271 1375 TAD (-173) 4922 014272 7500 SMA 4923 014273 5300 JMP ESXLUA 4924 014274 1374 TAD (173-141) 4925 014275 7500 SMA 4926 014276 1373 TAD (-40) 4927 014277 1372 TAD (141-173) 4928 014300 1371 ESXLUA, TAD (173) 4929 014301 5670 JMP I ESXLUP 4930 4931 4932 4933 / NOW THAT TABLE2 HAS BEEN MOVED TO THE PRINTER, WE HAVE ROOM TO PUT 4934 / ALL THE FORIN DEAD KEY CODE TOGETHER, RIGHT HERE. SOME MODIFICATIONS 4935 / WERE MADE TO ACCESS THE TABLES IN THE PRINTER FIELD. 4936 4937 IFDEF FORIN < 4938 / HERE IF DEAD KEY SEQUENCE 4939 DEAD, TAD CURPTR / GET CURRENT POINTER 4940 DCA POINT2 / SAVE 4941 ADVPTR / ADVANCE CURSOR AND RETURN CHARACTER 4942 NOP 4943 / CAN'T RETURN HERE 4944 MQL / PUT CHAR IN MQ 4945 MQA / REPLACE INTO AC 4946 AND (7600) / GET MODE BITS 4947 DCA ESXLUP / TEMP STORAGE 4948 SWP / SWAP WITH MQ TO GET CHAR BACK 4949 AND P177 / MASK 4950 DCA CHAR1 / SAVE 4951 TAD (TABLE1-1) 4952 JMS SEARCH / SEARCH FOR CHARACTER IN TABLE1 4953 JMP NOTACC / NOT FOUND, RESTORE CURSOR POINTER 4954 4955 JMS GETENT / GET FLAG BITS 4956 4957 DCA CHAR1 / SAVE 4958 ADVPTR / ADVANCE POINTER AND RETURN CHARACTER 4959 NOP / CAN'T RETURN HERE 4960 AND P177 / MASK 4961 TAD CHAR1 / COMBINE WITH FLAG BITS 4962 DCA CHAR1 / SAVE 4963 TAD (TABLE2-1) 4964 JMS SEARCH / LOOK FOR COMBINED CHAR. IN TABLE2 4965 JMP NOTACC / NOT FOUND 4966 4967 JMS GETENT 4968 4969 SPA CLA / SPECIAL? 4970 JMP DEADSP / YES, HANDLE DIFFERENTLY 4971 TAD (16) / FOUND 4972 PUTOUT / OUTPUT SHIFT OUT 4973 4974 JMS GETENT 4975 TAD ESXLUP / ADD MODE BITS 4976 PUTOUT / OUTPUT THE NEW CHARACTER 4977 DEAD1, TAD POINT2 4978 DCA CURPTR / RESTORE CURSOR POINTER 4979 TAD (17) 4980 JMP PUTSC4 / OUTPUT SHIFT IN 4981 DEADSP, TAD POINT2 4982 DCA CURPTR / RESET CURPTR 4983 JMS GETENT / GET CHARACTER 4984 JMP PUTSC4 / OUTPUT IT 4985 / HERE WHEN NO MATCH ON FL SPECIAL CHAR 4986 NOTACC, TAD POINT2 4987 DCA CURPTR / RESTORE CURSOR POINTER 4988 JMP PUTSC2 / OUTPUT A BLOB 4989 4990 > / END IFDEF FORIN 4991 4992 014302 0000 RPBIN2, 0 / BINARY THOUSANDS 4993 4994 014303 0000 CLSBEG, ZBLOCK 1 / COLUMN STRIP PARAMETERS 4995 014304 0000 CLSEND, ZBLOCK 1 4996 4997 014305 4523 EIREPL, OVLJMP;OVREPL / REPLACE 014306 2204 4998 014307 4523 EIUPAR, OVLJMP;OVUPAR / UP ARROW 014310 3001 4999 014311 4523 EIDNAR, OVLJMP;OVDNAR / DOWN ARROW 014312 3002 5000 5001 5002 ESATST, XX / TEST @CURPTR undefined ^ 014313 0000 5003 / RETURN 0 IF NULL, -1 IF ETX/STX, + OTHERWISE 5004 / ENTER WITH AC = OFFSET 5005 CDFBUF / GET TO CORRECT FIELD undefined ^ 014314 0000 5006 014315 1135 TAD CURPTR / ADD PTR TO OFFSET 5007 014316 3135 ESATS1, DCA CURPTR / UPDATE PTR 5008 014317 1535 TAD I CURPTR / GET CURRENT CHAR 5009 014320 7500 SMA 5010 014321 5713 JMP I ESATST / RETURN IF NOT SPECIAL 5011 014322 7001 IAC 5012 014323 7450 SNA 5013 014324 5333 JMP ESATS2 / JUMP IF BUFBEG 5014 014325 7001 IAC 5015 014326 7450 SNA 5016 014327 5335 JMP ESATS3 / JUMP IF BUFEND 5017 014330 7001 IAC 5018 014331 7040 CMA 5019 014332 5713 JMP I ESATST / RETURN -1 IF STX/ETX, + OTHERWISE 5020 ESATS2, AC7775 undefined ^ 014333 0000 5021 014334 1165 TAD BUFSIZ / GO TO BUFEND-2 5022 014335 7001 ESATS3, IAC 5023 014336 1164 TAD BUFBEG / GO TO BUFBEG+1 5024 014337 5316 JMP ESATS1 / UPDATE PTR AND TRY AGAIN 5025 5026 /PGECHO is called with AC = page character, 5027 / 0014 = new page 5028 / 1014 = start print control 5029 / 1414 = end print control 5030 / 2014 = (soft) page marker 5031 5032 PGECHO, XX / PRINT MESSAGE undefined ^ 014340 0000 5033 /D245 AND P7700 / ISOLATE HI BYTE 5034 /D245 BSW / MOVE TO LO BYTE 5035 /D245 CLL RTR / MAP TO 0,2,3,4 5036 /D245 SNA 5037 /D245 IAC / MAP TO 1,2,3,4 5038 /D245 TAD (PGMTBL-1) / INDEX INTO TABLE OF TEXT POINTERS 5039 /D245 DCA PGTEMP / SAVE PTR OF TEXT POINTERS 5040 /D245 CDFMYF / MAP OUR FIELD 5041 /D245 TAD I PGTEMP / GET TEXT POINTER 5042 014341 4770 JMS BHOOK / Call Blaster 5043 BPGECO / undefined ^ 014342 0000 5044 014343 4767 JMS PGMSG / PRINT MESSAGE 5045 014344 5740 JMP I PGECHO / RETURN 5046 /D245PGTEMP= T3 5047 /D245PGMTBL, PGMSG1 / "new page" 5048 /D245 PGMSG3 / "START PRINT CONTROL 5049 /D245 PGMSG4 / "END PRINT CONTROL 5050 /D245 PGMSG2 / "PAGE MARKER" 5051 5052 5053 014345 4523 EIINOV, OVLJMP / Go into Overlay /A254 5054 OVINOF / To switch Inset-Overstrike On-Off /A254 undefined ^ 014346 0000 5055 5056 / 5057 / Check if we are in Overstrike mode , if not return to EINSRT /A254 5058 / otherwise call the Overstrike Overlay /A254 5059 / 5060 5061 014347 3360 OVSCHK, DCA INCHTM / First save the char /A254 5062 014350 1357 TAD INSOVF / Now check the flag /A254 5063 014351 7650 SNA CLA / Are we in Overstrike /A254 5064 014352 5355 JMP OVRSCH / No , restore char and insert it /A254 5065 014353 4523 OVLJMP / Yes, /A254 5066 OVINCH / So call the overlay /A254 undefined ^ 014354 0000 5067 014355 1360 OVRSCH, TAD INCHTM / Get char back /A254 5068 014356 5766 JMP EINSRT / and insert it as normal /A254 5069 5070 5071 014357 0000 INSOVF, 0 / Insert-Overstrike flag /A254 5072 014360 0000 INCHTM, 0 / temp for char just entered /A254 5073 5074 X=. / INDICATE FIRST FREE LOCATION ON PAGE 5075 /--------------- 5076 014366 1314 PAGE 014367 4707 014370 5324 014371 0173 014372 7746 014373 7740 014374 0032 014375 7605 014376 7764 014377 0000 5077 5078 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 5079 5080 5081 ESACHR, XX / ADVANCE PTR TO NON-NULL undefined ^ 014400 0000 5082 014401 4510 ADVCL1, CHKPTR 5083 014402 7440 SZA 5084 014403 5600 JMP I ESACHR / JUST RETURN IF THERE ALREADY 5085 014404 1135 TAD CURPTR 5086 DCA T1 / ELSE SET OUR SCAN PTRS undefined ^ undefined ^ 014405 3000 5087 TAD T1 undefined ^ undefined ^ 014406 1000 5088 DCA T2 undefined ^ undefined ^ 014407 3000 5089 014410 1377 TAD (-50) 5090 DCA T3 / AND LIMIT COUNT undefined ^ undefined ^ 014411 3000 5091 014412 3256 DCA ADVCLT 5092 014413 2256 ADVCL8, ISZ ADVCLT 5093 ADVCL2, ISZ T1 / ADVANCE PEEK PTR undefined ^ undefined ^ 014414 2000 5094 TAD I T1 undefined ^ undefined ^ 014415 1400 5095 014416 7450 SNA 5096 014417 5213 JMP ADVCL8 / LOOP TIL NON-NULL 5097 014420 7500 SMA 5098 014421 5233 JMP ADVCL3 / JUMP IF NORMAL TEXT 5099 014422 1376 TAD (3) / ELSE CHECK FOR ETX 5100 014423 7450 SNA 5101 014424 5253 JMP ADVCL4 / JUMP IF ETX 5102 014425 7710 SPA CLA 5103 014426 5232 JMP ADVCL5 / JUMP IF NOT BUFEND 5104 014427 1164 TAD BUFBEG / ELSE RESET TO BUFBEG 5105 DCA T1 undefined ^ undefined ^ 014430 3000 5106 014431 5214 JMP ADVCL2 / AND CONTINUE LOOKING 5107 5108 ADVCL5, TAD I T1 undefined ^ undefined ^ 014432 1400 5109 ADVCL3, DCA I T2 undefined ^ undefined ^ 014433 3400 5110 DCA I T1 undefined ^ undefined ^ 014434 3400 5111 AC7775 undefined ^ 014435 0000 5112 014436 1256 TAD ADVCLT 5113 014437 7750 SPA SNA CLA 5114 014440 5201 JMP ADVCL1 5115 ADVCL7, ISZ T2 / BUMP COPY PTR undefined ^ undefined ^ 014441 2000 5116 TAD I T2 / CHECK FOR BUFEND undefined ^ undefined ^ 014442 1400 5117 014443 7640 SZA CLA 5118 014444 5250 JMP ADVCL6 / JUMP IF SO 5119 ISZ T3 undefined ^ undefined ^ 014445 2000 5120 014446 5214 JMP ADVCL2 / LOOP IF LIMIT NOT REACHED 5121 014447 5201 JMP ADVCL1 / ELSE RETURN 5122 5123 014450 1164 ADVCL6, TAD BUFBEG / RESET TO BUFBEG 5124 DCA T2 undefined ^ undefined ^ 014451 3000 5125 014452 5241 JMP ADVCL7 / AND CONTINUE 5126 5127 ADVCL4, AC7775 undefined ^ 014453 0000 5128 DCA I T2 / COPY ETX undefined ^ undefined ^ 014454 3400 5129 014455 5201 JMP ADVCL1 / AND RETURN 5130 5131 014456 0000 ADVCLT, .-. 5132 5133 RSTRLN, XX / RESTORE 23RD LINE undefined ^ 014457 0000 5134 014460 1136 TAD CURSOR 5135 014461 3267 DCA RSTRT2 5136 014462 3136 DCA CURSOR 5137 014463 4775 JMS SCRNMD 5138 014464 1267 TAD RSTRT2 5139 014465 3136 DCA CURSOR 5140 014466 5657 JMP I RSTRLN / THEN RETURN 5141 014467 0000 RSTRT2, 0 5142 5143 PROMPT, XX / CLEAR LINE AND PROMPT undefined ^ 014470 0000 5144 014471 7200 CLA 5145 014472 4257 JMS RSTRLN / SET MOD FLAG 5146 014473 4774 JMS PCUR / RESET TO BEGINNING OF LINE 5147 014474 0000 CDFMYF 5148 014475 1670 TAD I PROMPT 5149 014476 3304 DCA PROSTR / GET STRING PTR 5150 014477 2270 ISZ PROMPT 5151 014500 1047 TAD LOWLIM / RE-SET CURPOS TO START OF LINE!!! 5152 014501 7041 CIA / SO THAT PROMPT ISN'T TRUNCATED ON 5153 014502 3046 DCA CURPOS / RIGHT SIDE OF SCREEN. 5154 014503 4773 JMS PUTMSG / WRITE MESSAGE 5155 014504 0000 PROSTR, .-. 5156 014505 5670 JMP I PROMPT 5157 5158 GETLIN, XX / GET USER INPUT (CR ENDS) undefined ^ 014506 0000 5159 014507 3126 DCA PRICNT / GET INITIAL FILL COUNT 5160 014510 4363 JMS CLREOL / Erase to end of line 5161 014511 1706 TAD I GETLIN 5162 014512 3320 DCA PRISTR / SET BUFFER PTR 5163 014513 2306 ISZ GETLIN / BUMP TO RETURN ADDR 5164 014514 1126 PROMP2, TAD PRICNT / LOAD FLAG WORD 5165 /D228 SNA 5166 014515 7040 CMA / INSURE IT'S NONZERO 5167 CIFMNU undefined ^ 014516 0000 5168 JMS I INACAL / READ A LINE undefined ^ undefined ^ 014517 4400 5169 014520 7523 PRISTR, EIGES3-1 / INTO BUFFER 5170 014521 7410 SKP 5171 TAD (EDNWLN) / SET TERMINATOR FOR NORMAL RTN undefined ^ undefined ^ 014522 1372 5172 014523 3125 DCA GETTRM 5173 014524 7521 SWP 5174 014525 3126 DCA PRICNT / SAVE FILL COUNT 5175 014526 1125 TAD GETTRM / TEST TERMINATOR FOR... 5176 5177 014527 4500 ZZCASE / COMPARE AGAINST TABLE 5178 014530 4537 CTB013-1 / TABLE ADDRESS FOR CASE 5179 5180 / EDRULR; RRGOTO / GOLD:RULER KEYS 5181 / EDPAGE; RPGOTO / PAGE KEY 5182 / EDNWLN; PRIST1 / RETURN KEY 5183 / EDADVN; PRIST1 / ADVANCE KEY 5184 / EDBKUP; PRIST1 / BACKUP KEY 5185 / EDSRCH; PRIST1 / SEARCH KEY 5186 / EDCONT; PRIST1 / CONTINUE SEARCH KEY 5187 / 0 / INDICATE END OF TABLE 5188 5189 014531 4771 JMS BEEPER / ELSE ERROR 5190 014532 5314 JMP PROMP2 5191 5192 5193 014533 4523 RRGOTO, OVLJMP / INITIATE GOTO-RULER (RAPID RULER) 5194 014534 5001 OVGSGR / ("GOLD:SEARCH GOLD:RULER" COMMAND) 5195 5196 5197 014535 4523 RPGOTO, OVLJMP;OVRPPG / INITIATE GOTO-PAGE (RAPID PAGING) 014536 4602 5198 5199 5200 014537 5706 PRIST1, JMP I GETLIN 5201 5202 CTB013, EDRULR; RRGOTO / GOLD:RULER KEYS undefined ^ 014540 0000 014541 4533 5203 EDPAGE; RPGOTO / PAGE KEY undefined ^ 014542 0000 014543 4535 5204 EDNWLN; PRIST1 / RETURN KEY undefined ^ 014544 0000 014545 4537 5205 EDADVN; PRIST1 / ADVANCE KEY undefined ^ 014546 0000 014547 4537 5206 EDBKUP; PRIST1 / BACKUP KEY undefined ^ 014550 0000 014551 4537 5207 EDSRCH; PRIST1 / SEARCH KEY undefined ^ 014552 0000 014553 4537 5208 EDCONT; PRIST1 / CONTINUE SEARCH KEY undefined ^ 014554 0000 014555 4537 5209 014556 0000 0 / INDICATE END OF TABLE 5210 5211 PRICNT= GETLEN 5212 5213 / Use the New Line escape sequence if in ANSI mode 5214 NWLN, XX undefined ^ 014557 0000 5215 014560 4515 PUTESC / Put out an escape sequence 5216 014561 0105 "E-200 / ESC E 5217 014562 5757 JMP I NWLN 5218 5219 CLREOL, XX undefined ^ 014563 0000 5220 014564 4515 PUTESC / Put out an escape sequence 5221 014565 4133 "[+4000-200 / subtract 200 to convert to sixbit ascii 5222 / and add 4000 to signify continue 5223 014566 0113 "K-200 5224 014567 5763 JMP I CLREOL 5225 5226 X=. / INDICATE FIRST FREE LOCATION ON PAGE 5227 /--------------- 5228 014571 0324 PAGE 014572 0000 014573 6000 014574 1400 014575 2267 014576 0003 014577 7730 5229 5230 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 5231 5232 5233 014600 0000 PUTLNZ, 0 / THE COLUMN THAT THE CURSOR IS IN 5234 014601 0000 PUTLNX, 0 / TEMP POINTER TO CHARACTER IN DOCUMENT 5235 5236 PUTLIN, XX / PUT LINE ON SCREEN undefined ^ 014602 0000 5237 014603 1135 TAD CURPTR 5238 014604 3201 DCA PUTLNX / SAVE CURPTR 5239 014605 4777 JMS LODCHR 5240 014606 5234 JMP PUTLNW / GET FIRST CHAR 5241 PUTLN2, AND P177 / STRIP MODE BITS undefined ^ undefined ^ 014607 0000 5242 5243 014610 4500 ZZCASE / COMPARE AGAINST TABLE 5244 014611 4673 CTB014-1 / TABLE ADDRESS FOR CASE 5245 5246 / ECSTRL; PUTLNR / START RULER 5247 / ECNWPG; PUTLNP / NEW PAGE 5248 / ECNWLN; PUTLNL / NEW LINE 5249 / ECTAB; PUTLNB / TAB 5250 / ECMDFL; PUTLN1 / LINE MODIFIED 5251 / 0 / INDICATE END OF TABLE 5252 5253 014612 5245 JMP PUTLN4 5254 014613 4517 PUTLN1, ADVSPC 5255 014614 5234 JMP PUTLNW 5256 014615 5207 JMP PUTLN2 5257 5258 014616 1046 PUTLNR, TAD CURPOS / Ignore unjustified ruler. 5259 014617 7650 SNA CLA / ... 5260 014620 4776 JMS DSPRLN / display ruler line. 5261 PUTLNU, 5262 PUTLNV, 5263 014621 7200 PUTLN3, CLA 5264 014622 1201 TAD PUTLNX 5265 014623 3135 DCA CURPTR / RESTORE CURPTR 5266 014624 5602 JMP I PUTLIN 5267 5268 014625 1046 PUTLNP, TAD CURPOS 5269 014626 7640 SZA CLA 5270 014627 5221 JMP PUTLNU / Ignore unjustified page mrkr. 5271 014630 1535 TAD I CURPTR 5272 014631 4775 JMS PGECHO 5273 014632 5221 JMP PUTLN3 5274 5275 014633 1535 PUTLNL, TAD I CURPTR 5276 014634 4774 PUTLNW, JMS LNECHT / Print hyphen or select point if needed 5277 014635 4515 PUTESC 5278 014636 4133 "[&177+4000 5279 014637 0113 "K&177 / do erase to End Of Line. 5280 014640 5221 JMP PUTLNV 5281 5282 014641 1535 PUTLNB, TAD I CURPTR / RESTORE TAB CHAR 5283 014642 0373 AND (3600) / TO GET IT'S ATTRIBUTE 5284 MRGSPC, TAD (ECSPC) / AND MERGE WITH A SPACE undefined ^ undefined ^ 014643 1372 5285 014644 5254 JMP PUTLN6 5286 5287 014645 1535 PUTLN4, TAD I CURPTR 5288 TAD (-ECJSPC) / IF CHAR IS NOT A SOFT SPACE undefined ^ undefined ^ 014646 1372 5289 014647 7640 SZA CLA / THEN 5290 014650 5253 JMP PUT4 / RESTORE CHAR TO OUTPUT 5291 / ELSE 5292 014651 1175 TAD CHRATR / GET ATTRIBUTE OF TAB 5293 014652 5243 JMP MRGSPC / TO MERGE WITH A SPACE 5294 5295 014653 1535 PUT4, TAD I CURPTR / RESTORE CHAR 5296 5297 014654 7421 PUTLN6, MQL / save char temporarily. 5298 014655 1046 TAD CURPOS / Get current character posn in line. 5299 014656 7041 CIA / compare to 1st printable posn. 5300 014657 1136 TAD CURSOR / which is (CURSOR). 5301 014660 7750 SPA SNA CLA / skip if char to the left of "cursor". 5302 014661 7501 MQA / get printable character back. 5303 014662 4771 JMS PUTSCH 5304 014663 1177 TAD WIDNAR / wide screen? /M226 5305 014664 7650 SNA CLA / skip if narrow. /M226 5306 014665 1370 TAD (-WIDTH+COLM81) / M219 compute "-wide" width. 5307 014666 1367 TAD (-COLM81) / M219 compute "-narrow" width. 5308 014667 1046 TAD CURPOS / Get current cursor posn. 5309 014670 1047 TAD LOWLIM / Now see if within screen width. 5310 / AC is now >= 0 if outside screen width 5311 014671 7710 SPA CLA / skip if bbeyond threshold. 5312 014672 5213 JMP PUTLN1 / Loop to do more. 5313 014673 5221 JMP PUTLN3 / end of line encountered. 5314 / 5315 / +++ IN THIS CASE-TABLE THE ENTRY FOR 'START RULER' COULD /A216 5316 / DYNAMICALLY BE CHANGED DURING EDITOR EXECUTION. THE REASON; /A216 5317 / TURN RULER DISPLAY ON OR OFF DEPENDING ON EDITOR STATUS WORD /A216 5318 / (MNSTAT): /A216 5319 / /A216 5320 / 0 OR 1 RULER DISPLAY ON GOTO @PUTLNR' /A216 5321 / 2 OR 3 RULER DISPLAY OFF GOTO @PUTLN3' /A216 5322 / /A216 5323 / IN PLACE OF THE RULER, THE USER WILL SEE A BLANK LINE, WHICH THE/A216 5324 / USER CANNOT PLACE THE CURSOR ON. /A216 5325 / /A216 5326 / THIS DYNAMIC CHANGE OCCURS ONLY WHEN THE EDITOR IS LOADED (FIRST/A216 5327 / TIME) AND WHENEVER THE EDITOR-MENU IS CALLED. /A216 5328 5329 5330 CTB014, ECSTRL /C216 undefined ^ 014674 0000 5331 014675 4616 RULOFF, PUTLNR / START RULER /C216 5332 ECNWPG; PUTLNP / NEW PAGE undefined ^ 014676 0000 014677 4625 5333 ECNWLN; PUTLNL / NEW LINE undefined ^ 014700 0000 014701 4633 5334 ECTAB; PUTLNB / TAB undefined ^ 014702 0000 014703 4641 5335 ECMDFL; PUTLN1 / LINE MODIFIED undefined ^ 014704 0000 014705 4613 5336 014706 0000 0 / INDICATE END OF TABLE 5337 5338 PGMSG, XX / ENTER WITH AC = ADDRESS OF MESSAGE undefined ^ 014707 0000 5339 014710 7450 SNA / 5340 014711 5332 JMP PGMSGB 5341 014712 3321 DCA PGMSGX / SAVE MESSAGE ADDRESS FOR DISPLAY 5342 014713 1177 TAD WIDNAR / FORCED NARROW? /M223 5343 014714 7650 SNA CLA / SKIP IF NARROW. /M223 5344 014715 1366 TAD (-20) / XTRA SPACING FOR 132 COL MODE. 5345 014716 4765 JMS PTDASH 5346 014717 7740 -40 5347 014720 4764 JMS PUTMSG 5348 014721 0000 PGMSGX, 0 / ADDRESS OF MESSAGE TO BE DISPLAYED 5349 5350 014722 0000 CDFMYF /A223 5351 014723 1177 TAD WIDNAR / FORCED NARROW? /M223 5352 014724 7650 SNA CLA / SKIP IF NARROW. /M223 5353 TAD P7700 / xtra spacing for 132 col mode. undefined ^ undefined ^ 014725 1000 5354 014726 4765 JMS PTDASH 5355 014727 7725 -53 5356 AC7777 / reset CURPOS so that FXSCRL will undefined ^ 014730 0000 5357 014731 3046 DCA CURPOS / reposition the cursor. 5358 014732 5707 PGMSGB, JMP I PGMSG 5359 5360 / PSUEDO_CODE: 5361 / BEGIN CHKLMD 5362 / IF CHAR = 'LINE_MODIFIED' OR 'RULER_MODIFIED' 5363 / THEN 5364 / IF CHAR = 'RULER_MODIFIED' 5365 / THEN SET RULER_MODIFIED_FLAG 5366 / 5367 / DELETE CHAR 5368 / SET LINE_MODIFIED_FLAG 5369 / BUMP RETURN ADDRESS 5370 / END CHKLMD 5371 5372 CHKLMD, XX / CHECK FOR MODIFIED FLAGS undefined ^ 014733 0000 5373 014734 1535 TAD I CURPTR / GET CHARACTER 5374 TAD (-ECMDFL) / CHARACTER = "LINE_MODIFIED_FALG"? undefined ^ undefined ^ 014735 1372 5375 014736 7450 SNA / SKIP IF: NOT 5376 014737 5345 JMP CHKLMA 5377 TAD (ECMDFL-ECRMFL) / CHARACTER = "RULER_MODIFIED_FLAG"? undefined ^ undefined ^ undefined ^ undefined ^ 014740 1372 5378 014741 7640 SZA CLA / SKIP IF: SO 5379 014742 5733 JMP I CHKLMD / RETURN IF NOT MOD FLAG 5380 TAD (ECRMFL) / SET RULER MODIFIED FLAG undefined ^ undefined ^ 014743 1372 5381 014744 3124 DCA RLRMOD 5382 014745 3535 CHKLMA, DCA I CURPTR / DELETE FLAG 5383 014746 4514 SLNMOD / SET INDICATOR 5384 014747 2333 ISZ CHKLMD / BUMP RETURN 5385 014750 5733 JMP I CHKLMD / RETURN 5386 5387 5388 5389 014751 4523 EISRCH, OVLJMP;OVSRCH / SEARCH OVERLAY 014752 2626 5390 014753 4523 CASUNT, OVLJMP;OVCASE / CASE UNIT (UPPER/LOWER CASE) 014754 3007 5391 014755 4523 EIHYPS, OVLJMP;OVHYPS / HYPHEN PUSH OVERLAY 014756 1002 5392 5393 5394 X=. / INDICATE FIRST FREE LOCATION ON PAGE 5395 /--------------- 5396 014764 6000 PAGE 014765 1630 014766 7760 014767 7660 014770 7714 014771 3054 014772 0000 014773 3600 014774 1501 014775 4340 014776 5541 014777 4241 5397 5398 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 5399 5400 EDICHR, XX undefined ^ 015000 0000 5401 015001 0000 CDFMYF 5402 015002 4777 JMS GSRCK / SEE IF GLOBAL SEARCH IS ON 5403 015003 5206 JMP EDICH1 5404 5405 EDICH2, CIFSYS undefined ^ 015004 0000 5406 JWAIT undefined ^ 015005 0000 5407 5408 EDICH1, CIFPRT undefined ^ 015006 0000 5409 JMS I (FLABUZ) / SOUND BUZZER AND TOGGLE LED'S undefined ^ undefined ^ 015007 4776 5410 / IF THEIR IS A PRINTER ERROR 5411 CIFSYS undefined ^ 015010 0000 5412 XLTIN undefined ^ 015011 0000 5413 015012 5204 JMP EDICH2 5414 015013 5600 EDICH3, JMP I EDICHR 5415 5416 5417 DSKCAL, XX / CALL FIELD 0 DISKIO ROUTINES undefined ^ 015014 0000 5418 DCA T1 undefined ^ undefined ^ 015015 3000 5419 015016 0000 CDFMYF 5420 015017 1614 TAD I DSKCAL 5421 015020 3224 DCA .+4 5422 TAD T1 undefined ^ undefined ^ 015021 1000 5423 CIFFIO undefined ^ 015022 0000 5424 FILEIO undefined ^ 015023 0000 5425 015024 0000 .-. 5426 015025 2214 ISZ DSKCAL 5427 CDFBUF undefined ^ 015026 0000 5428 015027 5614 JMP I DSKCAL 5429 5430 PSTIO, XX / PASTE_I/O - READ & WRITE PASTE BUF. undefined ^ 015030 0000 5431 015031 3235 DCA .+4 / SET FUNCTION CODE 5432 015032 1130 TAD PSTBLK 5433 CDFBUF undefined ^ 015033 0000 5434 015034 4241 JMS SYSIO 5435 015035 0000 .-. 5436 015036 7400 PSTEBF / DO I/O 5437 015037 4775 JMS SETPST / RESET PTRS 5438 015040 5630 JMP I PSTIO / AND RETURN 5439 5440 SYSIO, XX / DO SYS IO undefined ^ 015041 0000 5441 DCA PSQBLK+RXQBLK / SET BLOCK NUMBER undefined ^ 015042 3272 5442 015043 6214 RDF 5443 TAD CDF0 / GET BUFFER FIELD undefined ^ undefined ^ 015044 1000 5444 DCA PSQBLK+RXQBFD / STORE IN QBLK undefined ^ 015045 3272 5445 015046 0000 CDFMYF 5446 015047 1641 TAD I SYSIO 5447 DCA PSQBLK+RXQFNC / AND FUNCTION CODE undefined ^ 015050 3272 5448 015051 2241 ISZ SYSIO 5449 015052 1641 TAD I SYSIO 5450 DCA PSQBLK+RXQBAD / AND BUFFER ADDRESS undefined ^ 015053 3272 5451 /D212 TAD USERNO 5452 /D212 CLL RAL / GET DRIVE NUMBER 5453 DCA PSQBLK+RXQDRV / SET DRIVE NUMBER TO ZERO IN QUEUE BLOCK undefined ^ 015054 3272 5454 015055 2241 ISZ SYSIO 5455 5456 CIFSYS undefined ^ 015056 0000 5457 ENQUE undefined ^ 015057 0000 5458 015060 5067 PQBLK / QUEUE Q-BLOCK 5459 5460 SYSIO1, CIFSYS undefined ^ 015061 0000 5461 JWAIT / WAIT FOR EVENT undefined ^ 015062 0000 5462 TAD PSQBLK+RXQCOD / ARE WE DONE? undefined ^ 015063 1272 5463 015064 7650 SNA CLA 5464 015065 5261 JMP SYSIO1 / NO 5465 015066 5641 JMP I SYSIO / AND RETURN 5466 5467 PQBLK, DSKQUE; 0; 0 undefined ^ 015067 0000 015070 0000 015071 0000 5468 015072 0000 PSQBLK, 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; PSTEBF; CDFBUF; 0; 0 015073 0000 015074 0000 015075 0000 015076 0000 015077 0000 015100 0000 015101 0000 015102 0000 015103 0000 015104 0000 015105 7400 undefined ^ 015106 0000 015107 0000 015110 0000 5469 5470 5471 5472 5473 5474 / OVJUMP JUMP TO OVERLAY IN OVERLAY AREA 1 5475 / 5476 / 5477 5478 OVJUMP, XX undefined ^ 015111 0000 5479 015112 0000 CDFMYF 5480 015113 1711 TAD I OVJUMP 5481 DCA T1 undefined ^ undefined ^ 015114 3000 5482 015115 1374 TAD (OVLAY1) 5483 015116 3354 DCA OVLOA2 5484 TAD (TAD (DLOEDO-1) ) undefined ^ undefined ^ undefined ^ undefined ^ 015117 1372 5485 015120 3351 DCA OVLOA4 5486 015121 5337 JMP OVJMCM 5487 5488 015122 2311 OVJRTN, ISZ OVJUMP 5489 015123 5711 JMP I OVJUMP 5490 5491 5492 / OV2JMP JUMP TO OVERLAY IN OVERLAY AREA 2 5493 / 5494 / 5495 5496 OV2JMP, XX undefined ^ 015124 0000 5497 015125 0000 CDFMYF 5498 015126 1724 TAD I OV2JMP 5499 DCA T1 undefined ^ undefined ^ 015127 3000 5500 015130 1371 TAD (OVLAY2) 5501 015131 3354 DCA OVLOA2 5502 TAD (TAD (DLOEDO-1+37) ) undefined ^ undefined ^ undefined ^ undefined ^ 015132 1367 5503 015133 3351 DCA OVLOA4 5504 015134 5337 JMP OVJMCM 5505 5506 015135 2324 OV2JRT, ISZ OV2JMP 5507 015136 5724 JMP I OV2JMP 5508 5509 5510 015137 1754 OVJMCM, TAD I OVLOA2 / READ LOCATION 7400 FOR OVERLAY NUMBER 5511 015140 7041 CIA / NEGATE THE VALUE 5512 TAD T1 / COMPARE WITH CURRENT REQUEST NUMBER undefined ^ undefined ^ 015141 1000 5513 015142 0366 AND (7600) / MASK OFF ADDRESS BITS 5514 015143 7650 SNA CLA / IS OVERLAY IN MEMORY ? 5515 015144 5355 JMP OVLOA1 / JUMP IF SAME 5516 5517 OVLOA3, TAD T1 / PICK UP OVERLAY REQUEST NUMBER undefined ^ undefined ^ 015145 1000 5518 015146 7002 BSW / MOVE TO LOW ORDER BITS 5519 AND P77 / MASK OFF OVERLAY NUMBER undefined ^ undefined ^ 015147 0000 5520 015150 7110 CLL RAR / DIVIDE NUMBER BY TWO 5521 OVLOA4, TAD (DLOEDO-1) / CONVERT TO BLOCK NUMBER undefined ^ undefined ^ 015151 1373 5522 015152 4241 JMS SYSIO 5523 RXERD / READ IT IN undefined ^ 015153 0000 5524 5525 015154 7400 OVLOA2, OVLAY1 / TO OVERLAY AREA 5526 5527 OVLOA1, TAD T1 undefined ^ undefined ^ 015155 1000 5528 AND P177 / GET DESIRED ADDRESS undefined ^ undefined ^ 015156 0000 5529 015157 1354 TAD OVLOA2 / RELOCATE IT TO OVERLAY AREA 5530 DCA T1 / STORE FOR CALLER undefined ^ undefined ^ 015160 3000 5531 JMP I T1 undefined ^ undefined ^ 015161 5400 5532 5533 015162 0000 RPMTRL, 0 / Rapid Paging MaTh RuLer offset 5534 5535 / THIS LINE (AND ANY LIKE IT) MAY APPEAR AT THE END OF ANY PAGE 5536 / THAT THERE IS ROOM (TWO WORDS PER LINE) 5537 5538 015163 4523 EIRULR, OVLJMP;OVRULR / GOLD RULER 015164 6017 5539 5540 X=. / INDICATE FIRST FREE LOCATION ON PAGE 5541 /--------------- 5542 015166 7600 PAGE 015167 1370 015170 0036 015171 7000 015172 1373 015173 7777 015174 7400 015175 5316 015176 0000 015177 6143 5543 5544 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 5545 5546 5547 RDNXNJ, XX / RDNXCH, NO JUST CODES undefined ^ 015200 0000 5548 015201 4777 JMS DSKCAL 5549 XRDFNC undefined ^ 015202 0000 5550 015203 7550 SNA SPA 5551 015204 5215 JMP RDNXN1 / JUMP IF ERR OR EOF 5552 015205 4776 JMS ESJCHK 5553 015206 7440 SZA 5554 TAD (JCHKOF-ECPMRK) undefined ^ undefined ^ 015207 1375 5555 015210 7450 SNA 5556 015211 5201 JMP RDNXNJ+1 5557 TAD (ECPMRK) undefined ^ undefined ^ 015212 1375 5558 015213 2200 ISZ RDNXNJ 5559 015214 5600 JMP I RDNXNJ 5560 015215 7200 RDNXN1, CLA / TREAT ERR JUST LIKE EOF 5561 015216 5600 JMP I RDNXNJ 5562 5563 COPRUL, XX / COPY NWRUL BUFFER TO CURUL BUFFER undefined ^ 015217 0000 5564 015220 4774 JMS CPYBUF 5565 015221 7601 -RULSIZ 5566 CDFMNU / M219 undefined ^ 015222 0000 5567 015223 2777 NWRUL-1 5568 015224 0000 CDFMYF 5569 015225 6334 CURUL-1 5570 CDFMNU / A219 undefined ^ 015226 0000 5571 015227 1773 TAD NWLMAR 5572 015230 4772 JMS GETBYT 5573 015231 3000 NWRUL / DETERMINE SPACING 5574 015232 7110 CLL RAR 5575 015233 4772 JMS GETBYT 5576 015234 6215 XLMAR 5577 015235 3143 DCA SPACNG 5578 CDFMNU / A219 undefined ^ 015236 0000 5579 5580 / the following is a blaster call to a panel memory subroutine to /a238 5581 / create space in this page for the panel hole blaster (rather /a238 5582 / cannibalistic but there it is anyway) /a238 5583 5584 015237 4324 JMS BHOOK / off to the hook /a238 5585 BLRUL0 / subroutines blaster table entry /a238 undefined ^ 015240 0000 5586 / contains all the information /a238 5587 / required to run the folling deleted /a238 5588 / code from panel memory routines /a238 5589 5590 /d238 AC7777 5591 /d238 TAD NWLMAR 5592 /d238 DCA LFTMAR 5593 /d238 AC7777 5594 /d238 TAD NWRMAR 5595 /d238 DCA RGTMAR 5596 /d238 AC7777 5597 /d238 TAD NWWMAR 5598 /d238 SPA 5599 /d238 TAD NWLMAR 5600 /d238 DCA WRPMAR 5601 /d238 AC7777 5602 /d238 TAD NWPMAR 5603 /d238 SPA 5604 /d238 TAD NWLMAR 5605 /d238 DCA PGFMAR 5606 /d238 AC7777 5607 /d238 TAD NWCMAR 5608 /d238 CLL RAL 5609 /d238 SMA 5610 /d238 JMP .+4 5611 /d238 AC0001 5612 /d238 TAD LFTMAR 5613 /d238 TAD RGTMAR 5614 /d238 DCA CENMAR 5615 /d238 CDFMNU Qu. why did we need this anyway?? / A219 5616 5617 015241 5617 JMP I COPRUL 5618 5619 INSRUL, XX / INSTALL RULER undefined ^ 015242 0000 5620 TAD (ECSTRL) undefined ^ undefined ^ 015243 1375 5621 015244 4260 JMS INSRL1 5622 015245 4771 JMS MAKRUL 5623 015246 6335 CURUL 5624 015247 5260 INSRL1 5625 TAD (ECMDRL) undefined ^ undefined ^ 015250 1375 5626 015251 4260 JMS INSRL1 5627 015252 4771 JMS MAKRUL 5628 015253 3000 NWRUL 5629 015254 5260 INSRL1 5630 TAD (ECNDRL) undefined ^ undefined ^ 015255 1375 5631 015256 4260 JMS INSRL1 5632 015257 5642 JMP I INSRUL 5633 5634 INSRL1, XX undefined ^ 015260 0000 5635 015261 4770 JMS INSERT 5636 AC0001 undefined ^ 015262 0000 5637 015263 4510 CHKPTR 5638 015264 7200 CLA 5639 015265 0000 CDFMYF 5640 015266 5660 JMP I INSRL1 5641 5642 RLGETS, XX / TAD RULR - JMS RLGETS undefined ^ 015267 0000 5643 015270 4301 JMS RLGETX 5644 015271 3275 DCA RLGET1 5645 015272 4774 JMS CPYBUF 5646 015273 7601 -RULSIZ 5647 CDFBUF undefined ^ 015274 0000 5648 015275 0000 RLGET1, .-. 5649 CDFMNU / M219 undefined ^ 015276 0000 5650 015277 2777 NWRUL-1 5651 015300 5667 JMP I RLGETS 5652 5653 RLGETX, XX / TAD RULR - JMS RLGETX undefined ^ 015301 0000 5654 / RETURNS ADDR-1 5655 015302 7110 CLL RAR 5656 TAD (DLRLRE) / GET BLOCK undefined ^ undefined ^ 015303 1375 5657 015304 3130 DCA PSTBLK 5658 015305 7006 RTL 5659 015306 7002 BSW / 0 OR 200 5660 015307 3275 DCA RLGET1 5661 TAD (RXERD) undefined ^ undefined ^ 015310 1375 5662 015311 4767 JMS PSTIO / READ TO PSTEBF 5663 015312 0000 CDFMYF 5664 015313 1275 TAD RLGET1 5665 015314 1131 TAD PSTPTR / RETURN ADDR-1 5666 015315 5701 JMP I RLGETX 5667 5668 SETPST, XX / RESET PAST BUFFER PTRS undefined ^ 015316 0000 5669 015317 1366 TAD (PSTEBF) 5670 015320 3131 DCA PSTPTR 5671 015321 3132 DCA BASKCT / SHOW EMPTY WASTEBASKET 5672 CDFBUF / RESET FIELD undefined ^ 015322 0000 5673 015323 5716 JMP I SETPST 5674 5675 /******************************************************************** 5676 / BHOOK Hook to panel page blaster 5677 /******************************************************************** /a238 5678 5679 015324 0000 BHOOK, 0 / hook return address /a238 5680 015325 3345 DCA BLACSV / save accumulator /a238 5681 015326 6214 RDF / read the data field /a238 5682 TAD CDF0 / make a cdf instruction /a238 undefined ^ undefined ^ 015327 1000 5683 015330 3342 DCA BHKEXI / save for return /a238 5684 015331 0000 CDFMYF / set to hooks field /a238 5685 015332 1724 TAD I BHOOK / get the table entry /a238 5686 015333 7421 MQL / push into MQ /a238 5687 015334 1345 TAD BLACSV / get the ac /a238 5688 015335 2324 ISZ BHOOK / increment the return address /a238 5689 CIFMNU / blaster is in the menu field /a238 undefined ^ 015336 0000 5690 015337 6002 IOF / turn the interrupts off before.. /a238 5691 015340 4744 JMS I BLASTH / Calling blaster /a238 5692 015341 2324 ISZ BHOOK / skip return exit /a238 5693 015342 0000 BHKEXI, 0 / CDF instruction /a238 5694 015343 5724 JMP I BHOOK / return /a238 5695 BLASTH, BLASTR / blastr address (get from WPF1) /a238 undefined ^ 015344 0000 5696 015345 0000 BLACSV, 0 / ac save /a238 5697 5698 5699 / 5700 / Moved here on edit 241 for space reasons /M241 5701 / 5702 015346 4523 EIBOTM, OVLJMP;OVRBOT / V2 "FAST" GOLD BOTTOM 015347 5651 5703 / 5704 / 5705 / Moved here on edit 245 for space reasons /M245 5706 UDLBIT= BLDBIT 5707 015350 1365 UDLUNT, TAD (400) / SET... 5708 015351 3154 NUDUNT, DCA UDLBIT / ...OR CLEAR UNDERLINING 5709 015352 4523 OVLJMP;OVUNDL 015353 3042 5710 5711 015354 4523 EIGPST, OVLJMP;OVGPST 015355 2404 5712 X=. / INDICATE FIRST FREE LOCATION ON PAGE 5713 /--------------- 5714 015365 0400 PAGE 015366 7400 015367 5030 015370 2000 015371 5447 015372 6006 015373 3170 015374 6054 015375 0000 015376 5735 015377 5014 5715 5716 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 5717 /a239 the following two subroutines CMPRUL and CLRRULR now call the BLASTR 5718 /a239 see WPHOLE 5719 / 5720 / SUBR CMPRUL -- 5721 / COMPARES CURRENT RULER (CURUL) TO NEW RULER (NWRUL). 5722 / CHECKS FOR RULER CHANGES. 5723 / 5724 / CALL: 5725 / CLA / AC MUST = 0 5726 / / DF DOESN'T MATTER 5727 / JMS CMPRUL / COMPARE NWRUL TO CURUL 5728 / JMP RULSAM / RULERS ARE THE SAME, AC=0 5729 / JMP RULDIF / RULERS ARE DIFFERENT, AC=0 5730 / 5731 5732 CMPRUL, XX undefined ^ 015400 0000 5733 015401 4777 JMS BHOOK / call CMPRLH through the BLASTR /a239 5734 CMPRLE / BLASTR table entry /a239 undefined ^ 015402 0000 5735 015403 7410 SKP / normal return keep it normal /a239 5736 015404 2200 ISZ CMPRUL / skip return from BHOOK and now from here /a239 5737 015405 5600 JMP I CMPRUL / RETURN /a239 5738 5739 /d239 TAD (NWRUL-1) / GET PNTR TO NEW RULER 5740 /d239 DCA X0 5741 /2239 TAD (CURUL-1) / GET PNTR TO OLD RULER 5742 /d239 DCA X1 5743 /d239 TAD (-RULSIZ) 5744 /d239 DCA T1 5745 /d239CMPRL1, CDFMNU / A219 5746 /d239 TAD I X0 5747 /d239 CIA / COMPARE NEW TO OLD 5748 /d239 CDFMYF / A219 5749 /d239 TAD I X1 5750 /d239 SZA CLA 5751 /d239 JMP CMPRL2 5752 /d239 ISZ T1 5753 /d239 JMP CMPRL1 / NOT SIGNIFICANT, DO NEXT 5754 /d239 SKP 5755 /d239CMPRL2, ISZ CMPRUL 5756 /d239 JMP I CMPRUL 5757 5758 CLRULR, XX / CLEAR RULER undefined ^ 015406 0000 5759 015407 4777 JMS BHOOK / Call CLRLRH thru the BLASTR /a239 5760 CLRLRE / BLASTR table entry /a239 undefined ^ 015410 0000 5761 015411 5606 JMP I CLRULR /a239 5762 5763 /d239 CDFMNU 5764 /d239 TAD (NWRUL-1) 5765 /d239 DCA X0 5766 /d239 TAD (-HAFRUL) 5767 /d239 DCA T1 5768 /d239 TAD (101) 5769 /d239 DCA I X0 5770 /d239 ISZ T1 5771 /d239 JMP .-3 5772 /d239 TAD (-10) 5773 /d239 DCA T1 5774 /d239 DCA I X0 5775 /d239 ISZ T1 5776 /d239 JMP .-2 5777 /d239 CDFMYF 5778 /d239 JMP I CLRULR 5779 5780 /a239 THE above two routines removed to WPHOLE 5781 5782 /***********************************************************************/a239 5783 /a239 INSERT CHAR into text buffer allowing for 8 bit data 5784 /***********************************************************************/a239 5785 5786 ESIMCH, XX / subroutine return address /a239 undefined ^ 015412 0000 5787 015413 3244 DCA ET1 / save the char /a239 5788 015414 1244 TAD ET1 / get it back /a239 5789 015415 0376 AND (200) / check for 8 bit data /a239 5790 015416 7650 SNA CLA / skip if 8 bit /a239 5791 015417 5236 JMP NEXPC / deal with the char normally /a239 5792 015420 4514 SLNMOD / set line modified flag /a239 5793 015421 1375 TAD (ESTRING-1) / get the start of the standard dead str/a239 5794 DCA X1 / save in an index register /a239 undefined ^ undefined ^ 015422 3000 5795 015423 6214 ELOOP, RDF / read the data field /a239 5796 TAD CDF0 / make a CDF instruction /a239 undefined ^ undefined ^ 015424 1000 5797 015425 3230 DCA ESCDF / put it where you can use it /a239 5798 015426 0000 CDFMYF / get this field to access ESTRING /a239 5799 TAD I X1 / use the index register to get'dead str/a239 undefined ^ undefined ^ 015427 1400 5800 015430 0000 ESCDF, 0 / restore the data field /a239 5801 AND P177 / dead strings are all 7 bits /a239 undefined ^ undefined ^ 015431 0000 5802 015432 7450 SNA / test for end of string /a239 5803 015433 5612 JMP I ESIMCH / RETURN on END of dead string /a239 5804 015434 4774 JMS ESICHR / INSERT CHAR INTO TEXT BUFFER /a239 5805 015435 5223 JMP ELOOP / get next dead str char /a239 5806 015436 1244 NEXPC, TAD ET1 / get the char back /a239 5807 015437 4774 JMS ESICHR / INSERT CHAR INTO TEXT BUFFER /a239 5808 015440 5612 JMP I ESIMCH / RETURN /a239 5809 5810 015441 0010 ESTRING,10 / start of dead /a239 5811 015442 0240 " / space /a239 5812 015443 0262 "2 / 2 multinational char precedence /a239 5813 015444 0000 ET1, 0 / save char temp and 8 bit char position/a239 5814 015445 0015 15 / END OF DEAD /a239 5815 015446 0000 0 / string terminator /a239 5816 /***********************************************************************/a239 5817 5818 5819 MAKRUL, XX / MAKE RULER undefined ^ 015447 0000 5820 / JMS MAKRUL - RULR - OUTRTN 5821 / GENS ESCS FOR RULR THRU OUTRTN 5822 015450 0000 CDFMYF 5823 015451 1647 TAD I MAKRUL 5824 015452 3263 DCA MAKRLA 5825 015453 2247 ISZ MAKRUL 5826 015454 1647 TAD I MAKRUL 5827 015455 3313 DCA MAKRLB / SAVE RULR AND OUTRTN PTRS 5828 015456 2247 ISZ MAKRUL 5829 015457 3340 DCA DSPRL1 / CLEAR POSITION 5830 015460 2340 MAKRL1, ISZ DSPRL1 / BUMP TO NEXT POSITION 5831 015461 1340 TAD DSPRL1 5832 015462 4773 JMS GETBYT 5833 015463 0000 MAKRLA, .-. 5834 015464 7450 SNA 5835 015465 5647 JMP I MAKRUL / RETURN WHEN DONE 5836 015466 1372 TAD (-1) 5837 015467 7450 SNA 5838 015470 5260 JMP MAKRL1 / IGNORE NULS 5839 015471 1371 TAD (100) 5840 015472 3314 DCA MAKRLC / SAVE VAL CODE 5841 015473 1340 TAD DSPRL1 5842 015474 7012 RTR 5843 015475 7012 RTR / GEN DSPRL1 5844 015476 0370 AND (17) 5845 015477 7450 SNA 5846 015500 5303 JMP .+3 5847 015501 1367 TAD (60) 5848 015502 4713 JMS I MAKRLB / 1ST HEX DIGIT 5849 015503 1340 TAD DSPRL1 5850 015504 0370 AND (17) 5851 015505 1367 TAD (60) 5852 015506 4713 JMS I MAKRLB / 2ND HEX DIGIT 5853 015507 1314 TAD MAKRLC 5854 015510 4713 JMS I MAKRLB / VAL CODE 5855 015511 0000 CDFMYF 5856 015512 5260 JMP MAKRL1 / LOOP FOR MORE 5857 015513 0000 MAKRLB, .-. 5858 015514 0000 MAKRLC, .-. 5859 5860 DSPRUL, XX / DISPLAY RULER undefined ^ 015515 0000 5861 015516 4766 JMS PCUR / POSITION CURSOR 5862 015517 1715 TAD I DSPRUL / Get agument of which ruler to display./A196 5863 015520 3325 DCA DSPRLR / Save it. /A196 5864 015521 2315 ISZ DSPRUL / Bump to return address. /A196 5865 DSPRLA, 5866 AC0001 / Compute posn into string = cursor posn/A196 undefined ^ 015522 0000 5867 015523 1046 TAD CURPOS / ... /A196 5868 015524 4773 JMS GETBYT 5869 015525 3000 DSPRLR, NWRUL 5870 015526 7450 SNA 5871 015527 5715 JMP I DSPRUL 5872 5873 015530 4773 JMS GETBYT 5874 OKSTR / XLAT TO REAL CHAR undefined ^ 015531 0000 5875 015532 7002 BSW 5876 015533 7500 SMA 5877 015534 7001 IAC 5878 015535 7002 BSW / CONVERTS SIXBIT TO ASCII 5879 015536 4765 JMS PUTSCH 5880 015537 5322 JMP DSPRLA / RETURN IF NOT 5881 5882 015540 0000 DSPRL1, .-. 5883 5884 DSPRLN, XX undefined ^ 015541 0000 5885 015542 1350 TAD NORUPD / SKIP RULER UPDATE IF IN RULER MODE 5886 015543 7650 SNA CLA 5887 015544 4764 JMS ESNWRL 5888 5889 /D233 DCA NORUPD 5890 015545 4315 JMS DSPRUL 5891 015546 3000 NWRUL / Display the NEW ruler. /A196 5892 015547 5741 JMP I DSPRLN 5893 / NORUPD must be on same page as DSPRLN/A196 5894 015550 0000 NORUPD, 0 / FLAG FOR NO RULER CHANGE IN FXSCRL 5895 5896 DSPCUR, XX / Routine to display CURUL. Called by /A196 undefined ^ 015551 0000 5897 015552 4315 JMS DSPRUL / status line. /A196 5898 015553 6335 CURUL / ... /A196 5899 CDIMNU / SET UP TO RETURN BACK TO MENU FIELD /A220 undefined ^ 015554 0000 5900 015555 5751 JMP I DSPCUR / Return to caller. /A196 5901 5902 015556 4523 EIGRAR, OVLJMP;OVGRAR / GOLD RIGHT ARROW 015557 3003 5903 015560 4523 EIGLAR, OVLJMP;OVGLAR / GOLD LEFT ARROW 015561 3004 5904 015562 4523 EISWAP, OVLJMP;OVSWAP / SWAP OVERLAY undefined ^ 015563 0000 5905 5906 X=. / INDICATE FIRST FREE LOCATION ON PAGE 5907 /--------------- 5908 015564 6124 PAGE 015565 3054 015566 1400 015567 0060 015570 0017 015571 0100 015572 7777 015573 6006 015574 4036 015575 5440 015576 0200 015577 5324 5909 5910 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 5911 5912 5913 / NOTE: THE GOTO-RULER CODE IN 'OVRRGO' RELIES ON THE FACT THAT 5914 / 'SETRUL' IS CALLED WHENEVER 'CURMOV' ADVANCES OR BACKS UP OVER 5915 / A RULER. WHEN 'OVRRSC' SCROLLS TO A RULER, IT CLEARS ENTRY POINT 5916 / 'SETRUL', THEN CALLS 'CURMOV' UNTIL 'SETRUL' IS NONZERO, 5917 / INDICATING 'CURMOV' HAS PASSED OVER A RULER. 5918 5919 5920 SETRUL, XX / JMS SETRUL - INRTN undefined ^ 015600 0000 5921 / SETS UP NWRUL 5922 015601 0000 CDFMYF 5923 015602 1600 TAD I SETRUL 5924 015603 3233 DCA SETRLA 5925 015604 2200 ISZ SETRUL 5926 015605 4777 JMS CLRULR / CLEAR NEW RULER 5927 015606 3125 SETRLB, DCA RLPOSN 5928 015607 4633 JMS I SETRLA 5929 AND P177 undefined ^ undefined ^ 015610 0000 5930 TAD P7700 / SAME AS (-100) ONLY ITS ON PAGE 0 undefined ^ undefined ^ 015611 1000 5931 015612 7500 SMA 5932 015613 5226 JMP SETRL3 / CHECK FOR PARMS 5933 015614 1376 TAD (100-60) 5934 015615 7510 SPA 5935 015616 5225 JMP SETRL1 5936 015617 7421 MQL 5937 015620 1125 TAD RLPOSN / SAVE PRM, GET POSITION 5938 015621 7106 CLL RTL 5939 015622 7006 RTL 5940 015623 7501 MQA / RLPOSN*16+PRM 5941 015624 5206 JMP SETRLB / JUMP TO STORE, GET NEXT 5942 5943 015625 7200 SETRL1, CLA / RETURN TO CALLER W/ ZEROED AC 5944 015626 7450 SETRL3, SNA 5945 015627 5600 JMP I SETRUL / JUMP IF NOT VAL 5946 015630 7001 IAC 5947 015631 4234 JMS UPDRUL 5948 015632 5206 JMP SETRLB 5949 5950 015633 0000 SETRLA, .-. 5951 5952 5953 5954 /++ 5955 / UPDRUL UPDATE_RULER 5956 / 5957 / FUNCTIONAL DESCRIPTION: UPDRUL 5958 / 5959 / UPDATING OF RULER (IN NWRUL), LOCATIONS CONTAINING RULER POSITION 5960 / VALUES (RLSTOR THRU NWHMAR), AND DECIMAL TAB COUNT BUFFER (NWDT). 5961 / 5962 / UPDRUL PSEUDO CODE: 5963 / COMMENTS: 1) RULER_SETTING_TYPE - EACH RULER CHARACTER (L, R, T, 5964 / ...ETC.) HAS A UNIQUE TYPE ASSIGNED TO IT. (SEE CHART 5965 / AT NWRUL) 5966 / 2) STORAGE_OFFSET_VALUE - EACH RULER CHARACTER HAS A 5967 / STORAGE OFFSET VALUE (SEE XLSTR) ASSOCIATED WITH IT 5968 / THAT IS USED FOR OFFSETTING FROM RLSTOR TO STORE THE 5969 / POSITION OF THE RULER SETTING IN THE RULER OR IN THE 5970 / CASE OF DECIMAL TABS, THE NUMBER OF THEM IN THE RULER. 5971 / BEGIN 5972 / SAVE NEW RULER_SETTING_TYPE 5973 / IF [NEW RULER_SETTING_TYPE IS VALID (1-16)] 5974 / | GET STORAGE_OFFSET_VALUE FOR NEW RULER_SETTING_TYPE (XLSTR TABLE) 5975 / | SAVE IT 5976 / | GET OLD RULER_SETTING_TYPE FOR RULER POSITION WE'RE AT 5977 / | GET OLD RULER SETTING STORAGE_OFFSET_VALUE 5978 / | IF [OLD RULER SETTING STORAGE_OFFSET_VALUE = DECIMAL TAB STORAGE_OFFSET_VALUE] 5979 / | | SET DECIMAL TAB COUNT = DECIMAL TAB COUNT - 1 5980 / | ELSE 5981 / | IF [POSITION VALUE STORED FOR OLD RULER SETTING NEEDS CLEARING] 5982 / | CLEAR POSITION VALUE FOR OLD RULER SETTING 5983 / | 5984 / | IF [POSITION VALUE FOR NEW RULER_SETTING_TYPE NEEDS UPDATING] 5985 / | | SET POINTER FOR SAVING POSITION VALUE OF NEW RULER SETTING 5986 / | | IF [NEW RULER_SETTING_TYPE = DECIMAL TAB] 5987 / | | | SET DECIMAL TAB COUNT = DECIMAL TAB COUNT + 1 5988 / | | ELSE 5989 / | | IF [OLD RULER_SETTING_TYPE NEEDS MODIFICATION] 5990 / | | SET POSITION OF OLD RULER SETTING IN RULER TO NO SETTING 5991 / | | STORE NEW RULER_SETTING_TYPE POSITION 5992 / | SET [NEW RULER SETTING IN RULER] 5993 / | 5994 / RETURN 5995 / 5996 / CALLING SEQUENCE: JMS UPDRUL 5997 / 5998 / INPUT PARAMETERS: RLPOSN = CURRENT POSITION IN RULER 5999 / AC = NEW RULER_SETTING_TYPE 6000 / 6001 / IMPLICIT INPUT: RLTYP, RLNSTR (T3), RLPOSN, NWDT, T2 6002 / 6003 / OUTPUT PARAMETERS: NONE 6004 / 6005 / IMPLICIT OUTPUT: RLTYP, RLNSTR (T3), NWDT, T2 6006 / 6007 / COMPLETION CODE: NONE 6008 / 6009 / SIDE EFFECTS: NONE 6010 / 6011 /-- 6012 6013 RLNSTR= T3 undefined ^ 6014 UPDRUL, XX / UPDATE RULER undefined ^ 015634 0000 6015 015635 3325 DCA RLTYP / SAVE NEW RULER_SETTING_TYPE 6016 015636 0000 CDFMYF 6017 015637 1325 TAD RLTYP / GET THE TYPE OF SETTING 6018 015640 1375 TAD (-17) / IS IT A VALID SETTING? 6019 015641 7700 SMA CLA / SKIP IF: SO 6020 015642 5634 JMP I UPDRUL / IGNORE ILLEGAL SETTING 6021 015643 1325 TAD RLTYP / GET STORAGE_OFFSET_VALUE FOR NEW 6022 / RULER_SETTING_TYPE (XLSTR TABLE) 6023 015644 4774 JMS GETBYT 6024 015645 6206 XLSTR 6025 015646 3000 DCA RLNSTR / SAVE IT 6026 015647 1125 TAD RLPOSN / GET OLD RULER_SETTING_TYPE FOR 6027 / RULER POSITION WE'RE AT 6028 015650 4774 JMS GETBYT 6029 015651 3000 NWRUL 6030 015652 4774 JMS GETBYT 6031 015653 6206 XLSTR / GET OLD RULER SETTING STORAGE_OFFSET_- 6032 / VALUE 6033 015654 1373 TAD (RLSTOR-1-NWDT) / WAS OLD RULER SETTING STORAGE_OFFSET_- 6034 / VALUE THAT OF A DECIMAL TAB? 6035 CDFMNU / A219 undefined ^ 015655 0000 6036 015656 7440 SZA / SKIP IF: SO 6037 015657 5264 JMP UPDRLC / CONTINUE ON. NO SPECIAL PROCESSING. 6038 AC7777 / SET DECIMAL TAB COUNT = DECIMAL TAB undefined ^ 015660 0000 6039 / COUNT - 1 6040 015661 1772 TAD NWDT 6041 015662 3772 DCA NWDT 6042 015663 5272 JMP UPDRLF / SKIP OVER CLEARING OLD OFFSET 6043 015664 1371 UPDRLC, TAD (NWDT+1-RLSTOR) / LOCATION HOLDING POSITION VALUE FOR 6044 / OLD RULER SETTING NEED CLEARING? 6045 015665 7450 SNA / SKIP IF: NEED TO CLEAR OLD STORAGE 6046 / OFFSET 6047 015666 5272 JMP UPDRLF 6048 6049 015667 1370 TAD (RLSTOR-1) / CLEAR LOCATION HOLDING POSITION VALUE 6050 DCA T2 / FOR OLD RULER SETTING undefined ^ undefined ^ 015670 3000 6051 DCA I T2 undefined ^ undefined ^ 015671 3400 6052 6053 015672 1000 UPDRLF, TAD RLNSTR / DOES THE POSITION VALUE FOR THE NEW 6054 / RULER_SETTING_TYPE NEED UPDATING? 6055 015673 7450 SNA / SKIP IF: NEED TO UPDATE 6056 015674 5317 JMP UPDRLA 6057 015675 1370 TAD (RLSTOR-1) / SET POINTER FOR SAVING POSITION VALUE 6058 / OF NEW RULER SETTING 6059 DCA T2 undefined ^ undefined ^ 015676 3000 6060 UPDRLD, AC7776 / NEW RULER SETTING A DECIMAL TAB? undefined ^ 015677 0000 6061 015700 1325 TAD RLTYP 6062 015701 7640 SZA CLA / SKIP IF: SO 6063 015702 5305 JMP UPDRLE / GO CLEAR OLD POSITION 6064 ISZ I T2 / SET DECIMAL TAB COUNT = DECIMAL TAB undefined ^ undefined ^ 015703 2400 6065 / COUNT + 1 6066 015704 5317 JMP UPDRLA / BYPASS CLEARING OUT OLD POSITION 6067 UPDRLE, TAD I T2 / DOES OLD RULER_SETTING_TYPE NEED undefined ^ undefined ^ 015705 1400 6068 / MODIFICATION? 6069 6070 015706 7450 SNA / SKIP IF: YES 6071 015707 5314 JMP UPDRLB / JUST SET NEW POSITION 6072 015710 7421 MQL / HOLD POSITION ON LINE OF OLD RULER 6073 / SETTING 6074 015711 7001 IAC / SET AC = NO_SETTING RULER_SETTING_TYPE 6075 015712 4767 JMS PUTBYT / PUT THIS NO_SETTING CHARACTER IN RULER 6076 015713 3000 NWRUL 6077 UPDRLB, CDFMNU undefined ^ 015714 0000 6078 015715 1125 TAD RLPOSN / STORE NEW RULER_SETTING_TYPE'S POSITION 6079 DCA I T2 undefined ^ undefined ^ 015716 3400 6080 015717 1125 UPDRLA, TAD RLPOSN / SET NEW RULER SETTING IN RULER 6081 015720 7421 MQL / HOLD IT'S POSITION IN RULER 6082 015721 1325 TAD RLTYP / GET TYPE OF SETTING 6083 015722 4767 JMS PUTBYT / PUT IT IN NWRUL 6084 015723 3000 NWRUL 6085 015724 5634 JMP I UPDRUL / RETURN 6086 015725 0000 RLTYP, .-. 6087 / 6088 / 6089 / 6090 6091 CHKCHR, XX / CHECK AC FOR SPECIAL CHARACTER undefined ^ 015726 0000 6092 015727 4335 JMS ESJCHK / RETURN FROM THIS SUBROUTINE WITH 6093 / AC = 0 IF CHARACTER WAS JUSTIFY_SPACE, 6094 / WRAPPED_LINE, WRAPPED_LINE_WITH_HYPHEN, 6095 / LINE_MODIFIED_FLAG, OR RULER_MODIFIED_FLAG. 6096 / IF NOT THEN AC = CHARACTER - RULER_ 6097 / MODIFIED_FLAG 6098 015730 7440 SZA / SKIP IF: CHARACTER IS ONE OF THOSE LISTED 6099 / ABOVE. 6100 TAD (JCHKOF-ECSTRL) / CHARACTER = "START_OF_RULER"? undefined ^ undefined ^ 015731 1366 6101 015732 7640 SZA CLA / SKIP IF: SO 6102 015733 2326 ISZ CHKCHR / BUMP RETURN. NONE OF SPECIAL CHARACTERS 6103 / LISTED HERE! 6104 015734 5726 JMP I CHKCHR / RETURN 6105 6106 ESJCHK, XX / CHECK FOR LINE OR RULER MODIFIED FLAG undefined ^ 015735 0000 6107 015736 4344 JMS ESJTST / RETURN FROM ESJTST WITH AC = 0 IF CHAR. 6108 / WAS A JUSTIFY_SPACE, WRAPPED_LINE, OR 6109 / WRAPPED_LINE_WITH_HYPHEN. IF NOT THEN 6110 / AC = CHARACTER - ECHYLN 6111 015737 7440 SZA / SKIP IF: CHARACTER DETECTED DURING 6112 / ESJTST WAS A JUSTIFY_SPACE, WRAPPED_ 6113 / LINE, OR WRAPPED_LINE_WITH_HYPHEN 6114 TAD (JTSTOF-ECMDFL) / CHARACTER = "LINE_MODIFIED_FLAG"? undefined ^ undefined ^ 015740 1366 6115 015741 7440 SZA / SKIP IF: SO 6116 TAD (ECMDFL-ECRMFL) / SUBTRACT "RULER_MODIFIED_FLAG" CHAR. undefined ^ undefined ^ undefined ^ undefined ^ 015742 1366 6117 015743 5735 JMP I ESJCHK 6118 JCHKOF= ECRMFL / AC OFFSET ON RETURN, IF NON-ZERO undefined ^ 6119 6120 ESJTST, XX / CHECK FOR JUSTIFY_SPACE, WORD_WRAP OR undefined ^ 015744 0000 6121 / WRAPPED_LINE_WITH_HYPHEN 6122 TAD (-ECJSPC) / CHARACTER = "JUSTIFY_SPACE"? undefined ^ undefined ^ 015745 1366 6123 015746 7440 SZA / SKIP IF: SO 6124 TAD (ECJSPC-ECWWLN) / CHARACTER = "WRAPPED_LINE"? undefined ^ undefined ^ undefined ^ undefined ^ 015747 1366 6125 015750 7440 SZA / SKIP IF: SO 6126 TAD (ECWWLN-ECHYLN) / SUBTRACT "WRAPPED_LINE_WITH_HYPHEN" CHAR. undefined ^ undefined ^ undefined ^ undefined ^ 015751 1366 6127 015752 5744 JMP I ESJTST / RETURN 6128 JTSTOF= ECHYLN undefined ^ 6129 6130 015753 4515 EIPWFL, PUTESC / SET APPLICATION KEY-PAD MODE 6131 015754 0075 "=-200 6132 6133 015755 4765 JMS CLSSET / CLEAR SCROLL VALUES FOR STATUS DISPLAY 6134 6135 015756 5764 JMP EINEXT / AND WAIT FOR NEXT EDIT CMD 6136 6137 6138 / SINCE THE ACCENTED CHARACTER TABLES HAVE BEEN MOVED TO THE PRINTER 6139 / SEARCH HAS BEEN MODIFIED TO LOOK IN THE PRINTER 6140 6141 IFDEF FORIN < 6142 / SEARCH FOR ENTRY IN TABLE1 OR TABLE2 6143 SEARCH, XX 6144 DCA POINT1 / SAVE TABLE ADDRESS 6145 CDFPRT / SET TO PRINTER FIELD 6146 ISZ POINT1 / BUMP POINTER 6147 TAD I POINT1 / GET CONTENTS 6148 ISZ POINT1 / BUMP AGAIN 6149 SNA / END OF TABLE? 6150 JMP SRCHEX / YES, TAKE 1ST EXIT 6151 TAD CHAR1 / COMPARE AGAINST CHAR. DESIRED 6152 SZA CLA / SAME? 6153 JMP SEARCH+3 / NO 6154 ISZ SEARCH / YES, TAKE 2ND EXIT 6155 SRCHEX, CDFMYF / CHANGE BACK TO THIS FIELD 6156 JMP I SEARCH 6157 > / END IFDEF FORIN 6158 6159 X=. / INDICATE FIRST FREE LOCATION ON PAGE 6160 /--------------- 6161 015764 0406 PAGE 015765 2141 015766 0000 015767 6026 015770 3167 015771 0007 015772 3176 015773 7771 015774 6006 015775 7761 015776 0020 015777 5406 6162 6163 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 6164 6165 6166 PUTMSG, XX / OUTPUT MESSAGE TO SCREEN undefined ^ 016000 0000 6167 016001 1600 TAD I PUTMSG / GET ADDRESS OF MESSAGE TO OUTPUT 6168 016002 2200 ISZ PUTMSG / INCREMENT RETURN ADDRESS 6169 CDILP / SET DATA AN INSTRUCTION FIELD TO LP FIELD undefined ^ 016003 0000 6170 016004 4777 JMS PUTLP / CALL ROUTIN IN LIST PROCESSING FIELD 6171 016005 5600 JMP I PUTMSG / RETURN TO CALLER 6172 6173 GETBYT, XX / TAD INDEX - JMS GETBYT - SPTR undefined ^ 016006 0000 6174 016007 0000 CDFMYF / A219 RETURNS BYTE 6175 016010 1376 TAD (-1) 6176 016011 7110 CLL RAR 6177 DCA T1 / A219 undefined ^ undefined ^ 016012 3000 6178 016013 1606 TAD I GETBYT / GET PTR 6179 016014 4775 JMS NRTST / A219 6180 TAD T1 / A219 undefined ^ undefined ^ 016015 1000 6181 DCA T1 undefined ^ undefined ^ 016016 3000 6182 TAD I T1 / GET WORD undefined ^ undefined ^ 016017 1400 6183 016020 7420 SNL 6184 016021 7002 BSW / GET BYTE 6185 AND P77 / ISOLATE IT undefined ^ undefined ^ 016022 0000 6186 016023 2206 ISZ GETBYT 6187 016024 0000 CDFMYF / A219 6188 016025 5606 JMP I GETBYT / AND RETURN 6189 6190 PUTBYT, XX / TAD INDEX - MQL - TAD CHAR - JMS PUTBYT - SPTR undefined ^ 016026 0000 6191 016027 0000 CDFMYF / A219 SETS STRING(INDEX)=CHAR 6192 AND P77 / ISOLATE CHAR undefined ^ undefined ^ 016030 0000 6193 016031 7521 SWP 6194 016032 1376 TAD (-1) 6195 016033 7110 CLL RAR 6196 DCA T1 / A219 undefined ^ undefined ^ 016034 3000 6197 016035 1626 TAD I PUTBYT / GET PTR 6198 016036 4775 JMS NRTST / A219 6199 TAD T1 / A219 undefined ^ undefined ^ 016037 1000 6200 DCA T1 undefined ^ undefined ^ 016040 3000 6201 TAD I T1 / GET WORD undefined ^ undefined ^ 016041 1400 6202 016042 7420 SNL 6203 016043 7002 BSW / GET BYTE 6204 AND P7700 / ISOLATE undefined ^ undefined ^ 016044 0000 6205 016045 7501 MQA / INSERT CHAR 6206 016046 7420 SNL 6207 016047 7002 BSW 6208 DCA I T1 / PUT IT BACK IN STRING undefined ^ undefined ^ 016050 3400 6209 016051 2226 ISZ PUTBYT 6210 016052 0000 CDFMYF / A219 6211 016053 5626 JMP I PUTBYT / RETURN 6212 6213 CPYBUF, XX / JMS COPY - -CNT - CDFA - A-1 - CDF B - B-1 undefined ^ 016054 0000 6214 016055 0000 CDFMYF 6215 016056 1254 TAD CPYBUF 6216 CIFLP undefined ^ 016057 0000 6217 016060 4774 JMS I (XFCOPY) / AND GO DO IT IN LP FIELD 6218 6219 DLTRLR, XX / DELETE RULER undefined ^ 016061 0000 6220 CDFBUF undefined ^ 016062 0000 6221 016063 3535 DCA I CURPTR 6222 016064 4506 ADVPTR 6223 016065 5661 JMP I DLTRLR 6224 TAD (-ECNDRL) undefined ^ undefined ^ 016066 1373 6225 016067 7640 SZA CLA 6226 016070 5263 JMP .-5 6227 016071 3535 DCA I CURPTR 6228 016072 5661 JMP I DLTRLR 6229 6230 ADVRUL, XX / ADVANCE RULER undefined ^ 016073 0000 6231 016074 1135 TAD CURPTR 6232 016075 3323 DCA ADVRL1 / SAVE CURPTR 6233 016076 4324 ADVRLA, JMS ESNWRL / COLLECT NEW RULER INFO 6234 016077 1323 TAD ADVRL1 6235 016100 3135 DCA CURPTR 6236 016101 4261 JMS DLTRLR / DELETE RULER 6237 016102 4506 ADVPTR / ADVANCE TO NEXT CODE 6238 016103 5307 JMP ADVRLB 6239 TAD (-ECSTRL) undefined ^ undefined ^ 016104 1373 6240 016105 7650 SNA CLA 6241 016106 5276 JMP ADVRLA / LOOP IF STILL IN RULERS 6242 016107 4772 ADVRLB, JMS CMPRUL 6243 016110 5320 JMP ADVRLC / COMPARE WITH OLD RULER 6244 016111 4771 JMS INSRUL / INSERT IF NOT A NULL CHANGE 6245 016112 4770 JMS COPRUL / AND MAKE IT THE NEW CURRENT RULER 6246 016113 2273 ISZ ADVRUL / BUMP TO NON-NULL RETURN 6247 016114 1160 TAD RGTMAR / WIDE RULER? 6248 016115 1367 TAD (-COLM80) 6249 016116 7700 SMA CLA 6250 016117 4766 JMS SETSPT / SET SPLIT SCREEN IF SO 6251 016120 3124 ADVRLC, DCA RLRMOD / CLEAR RULER CHANGE FLAG 6252 016121 4765 JMS SCRNMD / LET SCREEN REFRESH 6253 016122 5673 JMP I ADVRUL / AND RETURN 6254 016123 0000 ADVRL1, .-. / TEMP 6255 6256 ESNWRL, XX / SET NEW RULER undefined ^ 016124 0000 6257 016125 4506 ADVPTR 6258 016126 5724 JMP I ESNWRL 6259 TAD (-ECMDRL) undefined ^ undefined ^ 016127 1373 6260 016130 7640 SZA CLA 6261 016131 5325 JMP .-4 / GET TO MIDDLE 6262 016132 4764 JMS SETRUL 6263 016133 6136 ESADRL / SET NWRUL 6264 CDFBUF / RESET FIELD undefined ^ 016134 0000 6265 016135 5724 JMP I ESNWRL 6266 6267 6268 ESADRL, XX undefined ^ 016136 0000 6269 016137 4506 ADVPTR 6270 016140 7000 NOP 6271 016141 0000 CDFMYF 6272 016142 5736 JMP I ESADRL 6273 6274 6275 / GLOBAL SEARCH FLAG CHECK ROUTINE 6276 / THIS ROUTINE IS BRANCHED TO FROM THE EDITORS INPUT CHAR WAIT LOOP 6277 / AT SYMBOL "EDICHR" TO SEE IF THE GLOBAL SEARCH FLAG (GSRF) IS SET 6278 / IF IT IS SET, WE CALL IN THE REPLACE OVERLAY TO CONTINUE THE OPERATION 6279 / THE SEARCH AND SELECT OVERLAY WILL COME HERE WHEN THE DESIRED TEXT 6280 / STRING IS FOUND IN THE DOCUMENT. THIS ROUTINE WILL THEN CALL IN THE 6281 / REPLACE OVERLAY, WHICH THEN CALLS IN THE SEARCH AND SELECT OVERLAY TO 6282 / CONTINUE. REACHING THE END OF THE DOCUMENT OR A GOLD+HALT WILL 6283 / TERMINATE THE PROCESS. 6284 6285 GSRCK, XX undefined ^ 016143 0000 6286 016144 1173 TAD GSRF / GET THE GLOBAL SEARCH AND REPLACE FLAG 6287 016145 7650 SNA CLA / IS IT SET? 6288 016146 5743 JMP I GSRCK / NO, RETURN TO CALLER! 6289 6290 016147 4523 OVLJMP;OVREPL / YES, CALL IN THE REPLACE OVERLAY 016150 2204 6291 6292 6293 /++ 6294 / RLEQTE RULER_EQUATE 6295 / 6296 / FUNTIONAL DESCRIPTION: RLEQTE 6297 / 6298 / COPY CURRENT RULER BUFFER (CURUL) TO NEW RULER BUFFER (NWRUL). 6299 / 6300 / RLEQTE PSEUDO CODE: 6301 / 6302 / BEGIN 6303 / | CALL CPYBUF 6304 / | RETURN 6305 / END 6306 / 6307 / CALLING SEQUENCE: JMS RLEQTE 6308 / 6309 / INPUT PARAMETERS: AC = 0 6310 / 6311 / IMPLICIT INPUT: NONE 6312 / OUTPUT PARAMETERS: NONE 6313 / IMPLICIT OUTPUT: NONE 6314 / COMPLETION CODE: NONE 6315 / SIDE EFFECTS: NONE 6316 / 6317 /-- 6318 6319 RLEQTE, XX / RULER_EQUATE undefined ^ 016151 0000 6320 016152 4254 JMS CPYBUF 6321 016153 7601 -RULSIZ / COUNT 6322 016154 0000 CDFMYF / FIELD TO COPY FROM 6323 016155 6334 CURUL-1 / STARTING ADDRESS TO COPY FROM 6324 CDFMNU / FIELD TO COPY TOO undefined ^ 016156 0000 6325 016157 2777 NWRUL-1 / STARTING ADDRESS TO COPY TOO 6326 016160 5751 JMP I RLEQTE / RETURN 6327 6328 X=. / INDICATE FIRST FREE LOCATION ON PAGE 6329 /--------------- 6330 016164 5600 PAGE 016165 2267 016166 3355 016167 7661 016170 5217 016171 5242 016172 5400 016173 0000 016174 7505 016175 6600 016176 7777 016177 6747 6331 6332 DSKBLK=.%400+DLOEDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 6333 6334 6335 IFDEF PERDEC < 6336 / OK STRING - ACCEPTABLE RULER CHARACTERS 6337 OKSTR, 5556 / dash, period 6338 > / END IFDEF PERDEC 6339 6340 IFDEF COLDEC < 6341 OKSTR, 5572 / dash, colon 6342 > / END IFDEF COLDEC 6343 6344 IFDEF COMDEC < 6345 OKSTR, 5554 / dash, comma 6346 > / END IFDEF COMDEC 6347 6348 / The following stings comprise the table of acceptable 7 bit characters 6349 / for ruler definitions. Where an 8 bit character is required, an entry 6350 / should be made here of an appropriate composable 7 bit character, such 6351 / as the ones shown on the key beside the 8 bit (eg. e-accute and # on the 6352 / Italian keyboard). The six bit representation of the 8 bit character 6353 / should be put in the appropriate corresponding place in EIGHTC. 6354 6355 IFDEF ENGLSH < 6356 7624 / closing angle bracket, T 6357 TEXT /LRDJWPCNHF/ 6358 > / END IFDEF ENGLSH 6359 6360 IFDEF V30NOR < 6361 7624 / closing angle bracket, T 6362 TEXT /VUDJIASNOF/ 6363 > / END IFDEF V30NOR 6364 6365 IFDEF V30SWE < 6366 7617 / closing angle bracket, O 6367 TEXT /VHYRISCZAX/ 6368 > / END IFDEF V30SWE 6369 6370 IFDEF ITALIAN < 6371 7624 / closing angle bracket, T 6372 TEXT /SDEGIPCNLM/ 6373 > / END IFDEF ITALIAN 6374 6375 IFDEF SPANISH < /A255 6376 7624 / closing angle bracket, T / " 6377 TEXT /SNDAIPCLGM/ / " 6378 > / END IFDEF SPANISH /A255 6379 6380 IFDEF FRENCH < 6381 7624 / closing angle bracket, T 6382 TEXT "GDIJAPCHZF" 6383 > / END IFDEF FRENCH 6384 6385 IFDEF GERMAN < 6386 7624 / closing angle bracket, T 6387 TEXT /LRDJWPCNHF/ 6388 > / END IFDEF GERMAN 6389 6390 IFDEF DUTCH < 6391 7624 / closing angle bracket, T 6392 TEXT /LRDUIACNKF/ 6393 > / END IFDEF DUTCH 6394 6395 IFDEF CANADA < 6396 7624 / closing angle bracket, T 6397 TEXT /LRDJWPCNHF/ 6398 > / END IFDEF CANADA 6399 6400 IFDEF NORWAY < 6401 7624 / closing angle bracket, "T" 6402 TEXT "VHDJIASMOF" 6403 > / END IFDEF NORWAY 6404 6405 IFDEF SWEDSH < 6406 7624 / closing angle bracket, "T" 6407 TEXT "VHDJISCMAF" 6408 > / END IFDEF SWEDSH 6409 6410 IFDEF DANISH < 6411 7624 / closing angle bracket, "T" 6412 TEXT "VHDJIACMOF" 6413 > / END IFDEF DANISH 6414 *.-1 6415 6416 IFDEF ENGLSH < 6417 IFNDEF V30SWE < 6418 IFNDEF V30FAO < 6419 TEXT /=0123456789)!"#$%^&*(/ 6420 > 6421 > 6422 IFDEF V30FAO < 6423 TEXT '+0123456789=!"#$%&/()' /Keyboard layout for FAO/A250 6424 > 6425 > / END IFDEF ENGLSH 6426 6427 IFDEF V30NOR < 6428 TEXT '+0123456789=!"#$%&/()' /Keyboard layout for NORWAY/A254 6429 > 6430 6431 IFDEF V30SWE < 6432 TEXT '+0123456789=!"#$%&/()' /Keyboard layout for SVEEDON 6433 > 6434 6435 IFDEF SPANISH < /A255 6436 TEXT '+0123456789=!"#$%&/()' /Keyboard layout for SPN/ " 6437 > /A255 6438 6439 IFDEF ITALIAN < 6440 TEXT /-0123456789]\#"'(_7^[/ /NOTE: several of these can not be 6441 /obtained on an italian keyboard 6442 /except by a compose sequence 6443 /as they correspond to MCS chars 6444 /See eightc table for corresponding 6445 > /allowable MCS chars 6446 6447 IFDEF FRENCH < 6448 TEXT :=0123456789#&["'(]?!\: 6449 > / END IFDEF FRENCH 6450 6451 IFDEF GERMAN < 6452 TEXT :+0123456789=!"#$%&/(): 6453 > / END IFDEF GERMAN 6454 6455 IFDEF DUTCH < 6456 TEXT :=0123456789"]\#$%!&(): 6457 > / END IFDEF DUTCH 6458 6459 IFDEF CANADA < 6460 TEXT :=0123456789)!"/$%?&*(: 6461 > / END IFDEF CANADA 6462 6463 IFDEF SCANDI < 6464 TEXT :+0123456789=!"#$%&/(): 6465 > / END IFDEF SCANDI 6466 6467 6468 016177 0003 TBSTR, 003;201;002;002;101;0;0 / EACH BYTE IN THIS TABLE CORRESPONDS 016200 0201 016201 0002 016202 0002 016203 0101 016204 0000 016205 0000 6469 / TO A RULER SETTING (SEE COMMENTS AT 6470 / NWRUL). EACH BYTE HERE TELLS US THE 6471 / CLASS OF RULER SETTING. 6472 016206 0007 XLSTR, 7;0;102;102;304;501;601 / EACH BYTE IN THIS TABLE CORRESPONDS 016207 0000 016210 0102 016211 0102 016212 0304 016213 0501 016214 0601 6473 / TO A RULER SETTING. (SEE COMMENTS AT 6474 / NWRUL). EACH BYTE TELLS US THE 6475 / OFFSET FROM LOCATION RLSTOR-1 TO 6476 / STORE THE POSITION OF THE RULER 6477 / SETTING UNDER CONSIDERATION. 6478 016215 0002 XLMAR, 002;400;003;100 / TYPE OF LEFT MARGIN 016216 0400 016217 0003 016220 0100 6479 016221 0000 PTRBLK, ZBLOCK NPTRS / SCREEN PTRS 016222 0000 016223 0000 016224 0000 016225 0000 016226 0000 016227 0000 016230 0000 016231 0000 016232 0000 016233 0000 016234 0000 016235 0000 016236 0000 016237 0000 016240 0000 016241 0000 016242 0000 016243 0000 016244 0000 016245 0000 016246 0000 016247 0000 016250 0000 6480 6481 016251 7715 EIGES4, -63 / MAX LENGTH OF SEARCH PHRASE 6482 016252 0000 ZBLOCK 63 / 50 CHAR SEARCH BUFF 016253 0000 016254 0000 016255 0000 016256 0000 016257 0000 016260 0000 016261 0000 016262 0000 016263 0000 016264 0000 016265 0000 016266 0000 016267 0000 016270 0000 016271 0000 016272 0000 016273 0000 016274 0000 016275 0000 016276 0000 016277 0000 016300 0000 016301 0000 016302 0000 016303 0000 016304 0000 016305 0000 016306 0000 016307 0000 016310 0000 016311 0000 016312 0000 016313 0000 016314 0000 016315 0000 016316 0000 016317 0000 016320 0000 016321 0000 016322 0000 016323 0000 016324 0000 016325 0000 016326 0000 016327 0000 016330 0000 016331 0000 016332 0000 016333 0000 016334 0000 6483 6484 / NWRUL IS LAODED WITH CURRENT RULER (CURUL BUFFER) PREVIOUS TO MODIFICATION 6485 / (GOLD-RULER). IT'S FORMAT IS AS FOLLOWS: EACH WORD IS DIVIDED INTO 6486 / 2 BYTES, EACH BYTE CONTAINING THE RULER SETTING FOR IT'S 6487 / CORRESPONDING POSITION IN THE RULER. PLEASE NOTE THAT WPS USES 6488 / OTHER CHARACTERS TO REPRESENT THE VARIOUS SETTINGS THAT MAY APPEAR 6489 / IN A RULER. THEY ARE NOT THE SAME CHARACTERS THAT APPEAR IN THE 6490 / RULER ON THE SCREEN. 6491 / 6492 / TYPE CLASS RULER SYMBOL 6493 / CHAR. VALUE IN NWRUL (TBSTR) MEANING SHOWN ON SCREEN 6494 / ----- ----- ------- ------- ------- --------------- 6495 / SPACE 41 1 0 NO SETTING _ 6496 / A 42 2 3 DECIMAL TAB STOP . 6497 / B 43 3 2 RIGHT-JUST. TAB STOP "RIGHT ANGLE BRACKET" 6498 / C 44 4 1 NORMAL (LEFT-JUST.) TAB T 6499 / D 45 5 0 LEFT MARGIN, SINGLE SPACED L 6500 / E 46 6 2 RIGHT MARGIN, RAGGED R 6501 / F 47 7 0 LEFT MARGIN, DOUBLE SPACED D 6502 / G 50 10 2 RIGHT MARGIN, JUSTIFIED J 6503 / H 51 11 1 WORD WRAPPED INDENT W 6504 / I 52 12 1 PARAGRAPH INDENT P 6505 / J 53 13 0 CENTERING POINT C 6506 / K 54 14 0 LEFT MARGIN, SPACE-AND-A-HALF N 6507 / L 55 15 0 HYPHENATION ZONE H 6508 / M 56 16 0 LEFT MARGIN, HALF-SPACE F 6509 / 6510 / CURUL - CURRENT_RULER 6511 / CURUL HOLDS THE SETTINGS OF THE CURRENT RULER WE ARE EDITING UNDER. 6512 / CURUL IS THE SAME FORMAT AS NWRUL DESCRIBED ABOVE. 6513 6514 RULSIZ= NWRLND-NWRUL 6515 016335 0000 CURUL, ZBLOCK RULSIZ 016336 0000 016337 0000 016340 0000 016341 0000 016342 0000 016343 0000 016344 0000 016345 0000 016346 0000 016347 0000 016350 0000 016351 0000 016352 0000 016353 0000 016354 0000 016355 0000 016356 0000 016357 0000 016360 0000 016361 0000 016362 0000 016363 0000 016364 0000 016365 0000 016366 0000 016367 0000 016370 0000 016371 0000 016372 0000 016373 0000 016374 0000 016375 0000 016376 0000 016377 0000 016400 0000 016401 0000 016402 0000 016403 0000 016404 0000 016405 0000 016406 0000 016407 0000 016410 0000 016411 0000 016412 0000 016413 0000 016414 0000 016415 0000 016416 0000 016417 0000 016420 0000 016421 0000 016422 0000 016423 0000 016424 0000 016425 0000 016426 0000 016427 0000 016430 0000 016431 0000 016432 0000 016433 0000 016434 0000 016435 0000 016436 0000 016437 0000 016440 0000 016441 0000 016442 0000 016443 0000 016444 0000 016445 0000 016446 0000 016447 0000 016450 0000 016451 0000 016452 0000 016453 0000 016454 0000 016455 0000 016456 0000 016457 0000 016460 0000 016461 0000 016462 0000 016463 0000 016464 0000 016465 0000 016466 0000 016467 0000 016470 0000 016471 0000 016472 0000 016473 0000 016474 0000 016475 0000 016476 0000 016477 0000 016500 0000 016501 0000 016502 0000 016503 0000 016504 0000 016505 0000 016506 0000 016507 0000 016510 0000 016511 0000 016512 0000 016513 0000 016514 0000 016515 0000 016516 0000 016517 0000 016520 0000 016521 0000 016522 0000 016523 0000 016524 0000 016525 0000 016526 0000 016527 0000 016530 0000 016531 0000 016532 0000 016533 0000 6516 6517 016534 0000 GSRPRV, 0 / PREVIOUS GLOBAL SEARCH FLAG 6518 016535 0000 WIDPRV, 0 / PREVIOUS WIDE SCREEN FLAG 6519 016536 0000 NOMOVE, 0 / FLAG FOR SEARCH MODE OPERATIONS 6520 016537 0000 RPRLHN, 0 / Rapid Paging Ruler Header block Number 6521 6522 6523 / RULER DISPLAY TEXT LITERALS 6524 016540 5656 RLSTR2, TEXT /....:....:/ 016541 5656 016542 7256 016543 5656 016544 5672 016545 0000 6525 016546 4040 RLSTR4, TEXT / / 016547 4040 016550 4040 016551 4000 6526 016552 4523 EIPRSC, OVLJMP;OVPRSC / PREV SCREEN 016553 4225 6527 6528 X=. 6529 /-------------------- 6530 PAGE 6531 6532 6533 016600 0000 NRTST, 0 / Test if value is address of new ruler buffer 6534 016601 1377 TAD (-NWRUL) / If it is, set field to menu buffer swap area 6535 016602 7450 SNA 6536 CDFMNU undefined ^ 016603 0000 6537 016604 1376 TAD (NWRUL) 6538 016605 7020 CML / Restore link to original value 6539 016606 5600 JMP I NRTST / return to caller 6540 6541 6542 016607 7001 EIBKUP, IAC 6543 016610 3215 EIADVN, DCA MOVMOD+1 / SET MODE FLAG (FORWARD/BACKWARD) 6544 016611 4504 SIMCHR, MODSET 6545 016612 6614 MOVMOD / PUT MODE 6546 016613 5775 JMP EICHAR / SIMULATE CHAR BUTTON 6547 016614 0030 MOVMOD, SCHMOD!SLTMOD 6548 016615 0000 .-. 6549 6550 016616 1374 EILOWR, TAD (40) / CASE LOWER 6551 EIUPPR, / CASE UPPER 6552 016617 3154 DCA CASBIT / SET UP/LOW SWITCH 6553 016620 7001 IAC 6554 016621 7001 EIUUDL, IAC / REMOVE UNDERLINE 6555 016622 7001 EIUBLD, IAC / REMOVE BOLD 6556 016623 7001 EIUNDL, IAC / UNDERLINE 6557 EIBOLD, / BOLD 6558 016624 1373 TAD (BLDMOD) 6559 016625 3215 DCA MOVMOD+1 / SAVE FUNCTION TYPE 6560 016626 4511 TSTSLT 6561 016627 5211 JMP SIMCHR / SIMULATE CHAR BUTTON IF NOT IN SELECT MODE 6562 / ELSE RETURN HERE WITH 6563 / CURRENT CHAR = START OF SELECT 6564 016630 4504 MODSET 6565 016631 6614 MOVMOD 6566 016632 5772 JMP SLXMOD 6567 6568 ESLCT1, TAD (ECTMRK) / INSERT POSITION MARKER undefined ^ undefined ^ 016633 1371 6569 016634 4770 JMS INSERT 6570 DOSLCT, TAD (ECSLPT) / INSERT SELECT BREAK CHAR undefined ^ undefined ^ 016635 1371 6571 016636 4770 JMS INSERT 6572 016637 4767 JMS SVSLCR / SAVE CURSOR POSITION /A209 6573 016640 4504 MODSET 6574 016641 3747 ESLMOD / SET SELECT MODE 6575 016642 4766 JMS SCRNMD 6576 AC0001 undefined ^ 016643 0000 6577 016644 3152 DCA ECHFLG 6578 AC0001 / GOLD S&R BUG FIX undefined ^ 016645 0000 6579 016646 1137 TAD SCRLCT / ARE WE ON A NEW LINE ie NEG SCRL CNT 6580 016647 7710 SPA CLA / SKIP IF NO. EVERYTHING IS STILL COOL 6581 016650 4765 JMS REJUST / IF YES WE MUST REJUSTIFY 6582 016651 4764 JMS SCRLUP 6583 016652 4766 JMS SCRNMD 6584 016653 4763 JMS LINDNT 6585 016654 5762 JMP GOTMRK 6586 6587 / GDCASE A SUBROUTINE TO PERFORM CASE STYLE CHECKING 6588 / 6589 / CALL: 6590 / 6591 / ZZCASE (HAS A PAGE ZERO LINK) 6592 / TABLE-1 (ADDRESS OF THE TABLE TO COMPARE AGAINST) 6593 / (ON NO MATCH RETURNS HERE) 6594 / 6595 / AC ==> (VALUE TO COMPARE AGAINST) 6596 / 6597 / THE COMPARE TABLE HAS THE FORMAT OF: 6598 / 6599 / VALUE;ADDRESS / VALUE 1 AND ADDRESS TO JUMP TO ON MATCH 6600 / VALUE;ADDRESS / VALUE 2 AND ADDRESS TO JUMP TO ON MATCH 6601 / ... / ETC. 6602 / 0 / TABLE TERMINATOR 6603 / 6604 / NOTE: THIS SUBROUTINE DESTROYS THE CONTENTS OF AUTO INDEX 6605 / REGISTERS 6 AND 7 6606 / 6607 CASTMP=IX0 / AUTO INDEX REGISTER 6 undefined ^ 6608 X7=IX1 / AUTO INDEX REGISTER 7 undefined ^ 6609 6610 GDCASE, XX / ENTRY TO CASE SUBROUTINE undefined ^ 016655 0000 6611 016656 3000 DCA CASTMP / SAVE AC FOR COMPARES 6612 016657 6214 RDF / SAVE DATA FIELD 6613 TAD CDF0 / ADD TO CDF TO FIELD 0 undefined ^ undefined ^ 016660 1000 6614 016661 3302 DCA CASE02 / AND PUT FOR RETURN 6615 016662 0000 CDFMYF / SET TO MYFIELD 6616 016663 1655 TAD I GDCASE / GET THE TABLE ADDRESS 6617 016664 3000 DCA X7 / SAVE IN AUTO INDEX REGISTER 6618 / 6619 / THIS IS THE CHECK LOOP FOR CASE MATCHING 6620 / 6621 6622 016665 1400 CASE01, TAD I X7 / GET VALUE 6623 016666 7450 SNA / TERMINATOR? 6624 016667 5301 JMP CASEXI / YES TAKE DEFAULT RETURN 6625 016670 7041 CIA / NEGATE THE OPERAND 6626 016671 1000 TAD CASTMP / COMPARE 6627 016672 7650 SNA CLA / MATCHED? 6628 016673 5276 JMP CASMAT / YES! GO TO MATCH EXIT 6629 016674 2000 ISZ X7 / SKIP JUMP VECTOR 6630 016675 5265 JMP CASE01 / TRY THE NEXT VALUE 6631 / 6632 / END OF LOOP 6633 / 6634 016676 1400 CASMAT, TAD I X7 / GET RETURN ADDRESS 6635 016677 3255 DCA GDCASE / STORE FOR RETURN 6636 016700 7410 SKP / DON'T INCREMENT 6637 016701 2255 CASEXI, ISZ GDCASE / SKIP TABLE VECTOR 6638 016702 0000 CASE02, CDFMYF / RESET DATA FIELD 6639 016703 5655 JMP I GDCASE / AND GO HOME 6640 6641 HDRGET, XX / JMS HDRGET - HDROFST undefined ^ 016704 0000 6642 016705 0000 CDFMYF 6643 AC7776 undefined ^ 016706 0000 6644 016707 1704 TAD I HDRGET 6645 016710 2304 ISZ HDRGET 6646 CIFFIO undefined ^ 016711 0000 6647 FILEIO undefined ^ 016712 0000 6648 XHDRGT undefined ^ 016713 0000 6649 016714 5704 JMP I HDRGET 6650 6651 016715 4523 EICONT, OVLJMP;OVCONT / ENTRY POINT FOR CONT SEARCH & SLCT 016716 2601 6652 016717 4523 EIVIEW, OVLJMP;OVVIEW / GOLD VIEW 016720 3602 6653 016721 4523 EIGPGE, OVLJMP;OVGPGE 016722 3403 6654 016723 4523 EITIME, OVLJMP;OVTIME undefined ^ 016724 0000 6655 016725 4523 EIGETC, OVLJMP;OVGETC 016726 1602 6656 016727 4523 EIDCMT, OVLJMP;OVDCMT / GOLD GET_DOC 016730 2001 6657 016731 4523 EIMENU, OVLJMP;OVMENU / ENTRY POINT FOR EDITOR MENU 016732 2020 6658 016733 4523 EIHYP2, OVLJMP;OVHYP2 016734 3006 6659 IFDEF CONDOR < 6660 EITX, OVLJMP;OVTC / TECHNICAL CHARACTER OVERLAY /A211 6661 EICLKY, OVLJMP;OVCLKY / COLUMN CUT /A205 6662 > / END IFDEF CONDOR 6663 6664 IFDEF LFTRGT < 6665 EILARO, OVLJMP;OVLARO / LEFT ARROW 6666 EIRARO, OVLJMP;OVRARO / RIGHT ARROW 6667 > / END IFDEF LFTRGT 6668 6669 016735 0000 RPPRRL, 0 / Rapid Paging PRevious Ruler block ID# /M201 6670 016736 0000 RPPG0, 0 / Minus = gone over TOP-DOC /M201 6671 6672 016737 0000 RPBIN1, 0 / BINARY UNITS,TENS,HUNDREDS 6673 6674 / PATCH TO PUTSCH FOR HORIZ SCROLLING 6675 CHARPT= . 6676 / PUTPAT MERGED INTO PUTSCH 6677 6678 / ROUTINES TO GO IN AND OUT OF 132-COLUMN DISPLAY MODE 6679 6680 / This routine puts terminal in 80 column mode 6681 / AC UNIMPORTANT ON ENTRY 6682 / DATA FIELD NOT IMPORTANT ON ENTRY BUT SET TO THIS FIELD ON EXIT 6683 6684 CLR132, XX undefined ^ 016740 0000 6685 AC0004 / PUT AN OFFSET IN AC SO SET132 undefined ^ 016741 0000 6686 016742 4344 JMS SET132 / WILL ACTUALLY CLEAR 132 COLUMN MODE 6687 016743 5740 JMP I CLR132 / RETURN 6688 6689 / This routine puts terminal in 132 column mode if ac=0 or 80 6690 / column mode if ac= "l-"h (4) 6691 / DATA FIELD NOT IMPORTANT ON ENTRY BUT SET TO THIS FIELD ON EXIT 6692 6693 / Modified for manual screen width choice to check the force wide/narrow /M223 6694 / flag (WIDNAR). SET132 is called with AC=0 to set wide, or with AC=4 /M223 6695 / from CLR132 to set narrow. By adding the WIDNAR flag (0=wide, 64=nar.) /M223 6696 / we get four possible values of AC: 0, 4, 64, or 70. 0 means wide, so /M223 6697 / we call LP132 with 0 AC. AC=70 was a call from CLR132 to go narrow, /M223 6698 / and WIDNAR=64 says we're forced narrow, so call LP132 with AC=4 to /M223 6699 / go to 80 column mode. AC=64 was a call to SET132, but WIDNAR says /M223 6700 / we're forced narrow, so call LP132 with AC=4 to stay in 80 column. /M223 6701 / AC=4 is a call from CLR132 to go narrow, which we allow even though /M223 6702 / WIDNAR says force wide. This is for cases like GOLD:TOP which goes /M223 6703 / to narrow mode for messages, or GOLD:MENU for the editor menu. The /M223 6704 / basic rule is to stay in narrow mode ALWAYS, unless SET132 is called /M223 6705 / and the force wide (WIDNAR=0) flag is set. /M223 6706 6707 SET132, XX undefined ^ 016744 0000 6708 016745 0000 CDFMYF /A223 6709 016746 1177 TAD WIDNAR / GET WIDE/NARROW FLAG /A223 6710 016747 7440 SZA /A223 6711 AC0004 / NARROW, OR CLR132 CALL: FORCE 80 COL. /A223 undefined ^ 016750 0000 6712 CDILP / REAL ROUTINE IN IN LP FIELD WHERE undefined ^ 016751 0000 6713 016752 4761 JMS I (LP132) / THERE'S MORE ROOM 6714 016753 5744 JMP I SET132 / RETURN 6715 6716 X=. / INDICATE FIRST FREE LOCATION ON PAGE 6717 /--------------- 6718 016761 7600 PAGE 016762 0621 016763 0242 016764 3600 016765 2400 016766 2267 016767 1347 016770 2000 016771 0000 016772 0622 016773 0002 016774 0040 016775 0632 016776 3000 016777 5000 6719 6720 / *7000 / OVERLAY AREA 2 LOCATION 6721 6722 IFNZRO .-7000 6723 6724 OV2NUM= 0 / INITIALIZE OVERLAY TWO COUNTER 6725 017000 0000 OVLAY2, OV2NUM / STORE OVERLAY NUMBER AS FIRST LOCATION 6726 6727 /*************************************************************************** 6728 /**** C A U T I O N **** 6729 /**** THIS OVERLAY PAGE IS USED BY DECSPELL AND MUST RESIDE HERE **** 6730 /*************************************************************************** 6731 6732 CDISPL= CDIMTH / DEFINE CHANGE FIELD INSTRUCTION TO SPELL undefined ^ 6733 NLINES= 11 / NUMBER OF LINES WITHIN SCROLLING REGION 6734 6735 INITSP, XX / Entry point of initialization code. undefined ^ 017001 0000 6736 017002 6214 RDF / Get return field. 6737 TAD CIDF0 / ... undefined ^ undefined ^ 017003 1000 6738 017004 3326 DCA INITXT / save return CIF CDF instruction. 6739 CDFEDT / Map current (editor) field. undefined ^ 017005 0000 6740 017006 1377 TAD (NLINES) / Set edit screen size to 9 lines. 6741 017007 3176 DCA SCRNLN / ... 6742 017010 1377 TAD (NLINES) / Set wide screen size too. 6743 017011 3776 DCA WIDSIZ / ... 6744 017012 1375 TAD (SINZRO-1) / Get start of editor stuff to zap. 6745 DCA X0 / ... undefined ^ undefined ^ 017013 3000 6746 017014 1374 TAD (-NINZRO) / Get size of initialization area. 6747 017015 4334 JMS ZAP / Initial the area to zero. 6748 017016 3164 DCA BUFBEG / Initialize editor buffer pointers. 6749 017017 1373 TAD (BUFEND) / ++++ 6750 017020 3165 DCA BUFSIZ / .... 6751 / 6752 / INITIALIZE EDIT BUFFER 6753 / *** 6754 / 6755 AC7777 / SET POINTER TO BUFFER_BEGIN - 1 undefined ^ 017021 0000 6756 DCA X0 undefined ^ undefined ^ 017022 3000 6757 CDFBUF undefined ^ 017023 0000 6758 TAD (ECBFBG) / GET BUFFER BEGIN CODE undefined ^ undefined ^ 017024 1372 6759 DCA I X0 / INSTALL AT TOP OF BUFFER undefined ^ undefined ^ 017025 3400 6760 TAD (ECSTX) / GET START OF TEXT CODE undefined ^ undefined ^ 017026 1372 6761 DCA I X0 / INSTALL IN NEXT BUFFER LOCATION undefined ^ undefined ^ 017027 3400 6762 TAD (ECETX) / GET END OF TEXT CODE undefined ^ undefined ^ 017030 1372 6763 DCA I X0 / INSTALL IN NEXT BUFFER LOCATION undefined ^ undefined ^ 017031 3400 6764 TAD X0 / SET CURPTR TO POINT AT ETX CHAR. THAT undefined ^ undefined ^ 017032 1000 6765 / WAS JUST INSTALLED 6766 017033 3135 DCA CURPTR / ... 6767 / 6768 / CLEAR THE REST OF THE BUFFER 6769 / 6770 017034 1371 TAD (4-BUFEND) / Compute negative counter of # of words to clear. 6771 017035 4334 JMS ZAP / Zero out the rest of the buffer. 6772 6773 TAD (ECBFND) / INSTALL BUFFER_END CHARACTER undefined ^ undefined ^ 017036 1372 6774 DCA I X0 undefined ^ undefined ^ 017037 3400 6775 6776 6777 /*************************************************************************** 6778 /**** C A U T I O N **** 6779 /**** THIS OVERLAY PAGE IS USED BY DECSPELL AND MUST RESIDE HERE **** 6780 /*************************************************************************** 6781 6782 6783 / INITIALIZE EDIT PTRBLK (POINTER_BLOCK) TABLE 6784 / 6785 CDFEDT undefined ^ 017040 0000 6786 017041 1370 TAD (PTRBLK-1) / ++++ 6787 DCA X0 undefined ^ undefined ^ 017042 3000 6788 017043 1367 TAD (-NPTRS+1) / ++++ 6789 017044 4334 JMS ZAP / Zero area out. 6790 017045 1135 TAD CURPTR / Set last loc in PTRBLK = CURPTR. 6791 DCA I X0 undefined ^ undefined ^ 017046 3400 6792 / 6793 017047 1135 TAD CURPTR / Initialize LINE 23 pointer. 6794 017050 3171 DCA LINE23 / ... 6795 017051 3136 DCA CURSOR / Init cursor posn. 6796 017052 3047 DCA LOWLIM / and screen bais. 6797 6798 017053 1366 TAD (-12) /TO TEST FOR POSTPROCESSOR /A214 6799 CDFMNU / Get file # from menu field. undefined ^ 017054 0000 6800 TAD I (MUBUF+MNTMP6) /SET TO 12 FOR FOOTNOTING /A214 undefined ^ undefined ^ undefined ^ undefined ^ 017055 1772 6801 017056 7650 SNA CLA /SKIP TO CONTINUE WITH SPELL /A214 6802 017057 5330 JMP PPOPEN /OPEN FOOTNOTING FILES RETURN AT PPORET /A214 6803 TAD I (MUBUF+MNUTFN) / Pick up UTILITY file number to open /M230 undefined ^ undefined ^ undefined ^ undefined ^ 017060 1772 6804 CDFEDT / Back to our field. undefined ^ 017061 0000 6805 017062 7421 MQL / WPFILS wants file # in MQ. 6806 CIFFIO;FILEIO;XDSKIN / Open input file. undefined ^ 017063 0000 undefined ^ 017064 0000 undefined ^ 017065 0000 6807 /d229 SPA;NOP;CLA / ... 6808 017066 7640 SZA CLA / Skip if file was opened /A229 6809 AC7777 / ERROR - file could not be opened /A229 undefined ^ 017067 0000 6810 6811 017070 7001 PPORET, IAC / AC=1 if open ok, =0 if failed /A229 6812 017071 3342 DCA OPNFIL / Save file open flag /A229 6813 017072 1342 TAD OPNFIL / See if file(s) opened ok /A229 6814 017073 7650 SNA CLA / Skip if open sucessful /A229 6815 017074 5326 JMP INITXT / else just return /A229 6816 CDFSYS / Save start time. /M229 undefined ^ 017075 0000 6817 TAD I (CLOCK+3) / (minutes), undefined ^ undefined ^ 017076 1765 6818 017077 7421 MQL / save in MQ. 6819 TAD I (CLOCK+4) / (hours), undefined ^ undefined ^ 017100 1764 6820 CDFEDT / Save these for the editor. undefined ^ 017101 0000 6821 017102 3763 DCA OLDHR / ... 6822 017103 7501 MQA / get minutes back. 6823 017104 3762 DCA OLDMIN / .... 6824 AC0001 / Set ECHO flag so that we keep screen uptodate. undefined ^ 017105 0000 6825 017106 3152 DCA ECHFLG / ... 6826 017107 4761 JMS CLRULR / Finally, initialize the ruler area. 6827 017110 4760 JMS COPRUL / and copy default ruler in. 6828 017111 4757 JMS LODCHR / Get 1st character of file. 6829 017112 5316 JMP INITRL / Insert initial ruler if file is empty. 6830 TAD (-ECSTRL) / Is the 1st character "start of ruler"? undefined ^ undefined ^ 017113 1372 6831 017114 7650 SNA CLA / Skip if no. Insert default ruler. 6832 017115 5325 JMP INITDN / 1st char is "start of ruler" so exit. 6833 INITRL, CDFEDT / ... undefined ^ 017116 0000 6834 017117 4756 JMS RLGETS / Get default ruler (ruler 0). 6835 017120 4755 JMS INSRUL / Insert it. 6836 TAD (ECRMFL) / Insert "ruler modified" flag. undefined ^ undefined ^ 017121 1372 6837 017122 4754 JMS INSRL1 / ... 6838 017123 1171 TAD LINE23 / Reset CURPTR to start of newly inserted ruler. 6839 017124 3135 DCA CURPTR / ... 6840 017125 4753 INITDN, JMS CLSSET / Init ptrs to that 1st time FXSCRL is called, 6841 / CLRSCN gets called. 6842 INITXT, XX / Back to Speller. undefined ^ 017126 0000 6843 /d229 ISZ OPNFIL / Say that file is now open. 6844 017127 5601 JMP I INITSP / Return to caller. 6845 6846 017130 0000 PPOPEN, CDFMYF /DONT FORGET WHERE YOU ARE /A214 6847 CIFMTH /FLD 6 IS FOR FOOTING BESIDES MATH/SPEL /A214 undefined ^ 017131 0000 6848 017132 4773 JMS I (BUFEND) /AIMING FOR 6000 /A214 6849 017133 5270 JMP PPORET /RETURN IN LINE AFTER OPENS /A214 6850 6851 /*************************************************************************** 6852 /**** C A U T I O N **** 6853 /**** THIS OVERLAY PAGE IS USED BY DECSPELL AND MUST RESIDE HERE **** 6854 /*************************************************************************** 6855 6856 ZAP, XX / routine to zero out a portion of memory. undefined ^ 017134 0000 6857 DCA T1 / Save negative count. undefined ^ undefined ^ 017135 3000 6858 ZAP1, DCA I X0 / Zero out next location. undefined ^ undefined ^ 017136 3400 6859 ISZ T1 / ++++ undefined ^ undefined ^ 017137 2000 6860 017140 5336 JMP .-2 6861 017141 5734 JMP I ZAP / Return when done. 6862 6863 6864 017142 0000 OPNFIL, 0 / 0 UNTIL FILE HAS BEEN OPENED 6865 6866 X=. / FIRST FREE LOCATION ON PAGE 6867 /--------------------- 6868 017153 2141 PAGE 017154 5260 017155 5242 017156 5267 017157 4241 017160 5217 017161 5406 017162 0236 017163 0235 017164 0004 017165 0003 017166 7766 017167 7751 017170 6220 017171 2004 017172 0000 017173 6000 017174 7745 017175 0123 017176 2344 017177 0011 6869 6870 /*************************************************************************** 6871 /**** C A U T I O N **** 6872 /**** THIS OVERLAY PAGE IS USED BY DECSPELL AND MUST RESIDE HERE **** 6873 /*************************************************************************** 6874 6875 GETCH, XX / entry point. undefined ^ 017200 0000 6876 CDFBUF / Map data field to buffer field. undefined ^ 017201 0000 6877 017202 4513 CURMOV / ... 6878 017203 7410 SKP / Handle EOF condition below. 6879 017204 4777 JMS LODCHR / Get character to check. 6880 017205 7410 SKP / non-skip return if E-O-F. 6881 017206 2200 ISZ GETCH / skip return if not E-O-F. 6882 017207 0000 CDISPL / Return CIF CDF to spell checker field. 6883 017210 5600 JMP I GETCH / return to caller. 6884 6885 6886 CLOSEF, XX / This routine closes the correct file. undefined ^ 017211 0000 6887 017212 6214 RDF / Get caller's field. 6888 TAD CIDF0 / Make return CDI instruction. undefined ^ undefined ^ 017213 1000 6889 017214 3314 DCA CLOSEX / Save for the return trip. 6890 CDFEDT / Map our field. undefined ^ 017215 0000 6891 017216 4776 JMS SAVLMD / Save line modified flag. 6892 / 6893 017217 7610 SKP CLA / Scan 'til end of text buffer. 6894 CLOSE1, AC0001 / ... undefined ^ 017220 0000 6895 017221 4510 CHKPTR / .... 6896 017222 7700 SMA CLA / Skip if at end of buffer. 6897 017223 5220 JMP CLOSE1 / Jmp if not. 6898 CLOSE2, AC7777 / Copy from end of the buffer undefined ^ 017224 0000 6899 017225 4510 CHKPTR / (1st see if another character) 6900 017226 7710 SPA CLA / (skip if yes). 6901 017227 5234 JMP CLOSE3 / (Jmp if no. time to exit). 6902 017230 1535 TAD I CURPTR / Get last character in buffer. 6903 017231 4775 JMS DSKCAL;XPUTET / and put it out to the file. undefined ^ 017232 0000 6904 017233 5224 JMP CLOSE2 / Loop until buffer emptied to the file. 6905 6906 /*************************************************************************** 6907 /**** C A U T I O N **** 6908 /**** THIS OVERLAY PAGE IS USED BY DECSPELL AND MUST RESIDE HERE **** 6909 /*************************************************************************** 6910 6911 CLOSE3, CDFSYS undefined ^ 017234 0000 6912 TAD I (CLOCK+3) / ++++ undefined ^ undefined ^ 017235 1774 6913 017236 3331 DCA CLSMIN / CURRENT MINUTES 6914 TAD I (CLOCK+4) / CURRENT HOUR undefined ^ undefined ^ 017237 1773 6915 CDFEDT undefined ^ 017240 0000 6916 017241 4316 JMS CVTMIN / ++++ 6917 017242 3330 DCA CLSMN2 6918 017243 1772 TAD OLDMIN / ++++ 6919 017244 3331 DCA CLSMIN / INITIAL MINUTES 6920 017245 1771 TAD OLDHR / INITIAL HOURS 6921 017246 4316 JMS CVTMIN 6922 017247 7041 CIA 6923 017250 1330 TAD CLSMN2 / CURRENT TIME - INITIAL TIME 6924 017251 7510 SPA / ++++ 6925 017252 1370 TAD (30^74) / IF NEGATIVE, THE CLOCK ROLLED OVER.. 6926 / ADD 60 * 24 = MINUTES IN A DAY 6927 017253 3330 DCA CLSMN2 6928 017254 1367 TAD (15) / ++++ 6929 CIFFIO / ++++ undefined ^ 017255 0000 6930 FILEIO / ++++ undefined ^ 017256 0000 6931 XHDRGT / GET OLD TOTAL TIME undefined ^ 017257 0000 6932 017260 7100 CLL / DONE TO CHECK FOR OVERFLOW IN NEXT ADD 6933 017261 1330 TAD CLSMN2 / NEW TOTAL TIME 6934 017262 7430 SZL / SKIP IF TIME < 68:15 6935 AC7777 / TIME WAS RESET, SET TO MAX undefined ^ 017263 0000 6936 017264 7421 MQL / ++++ 6937 017265 1367 TAD (15) 6938 CIFFIO / ++++ undefined ^ 017266 0000 6939 FILEIO / ++++ undefined ^ 017267 0000 6940 XHDRPT / STORE NEW TOTAL TIME undefined ^ 017270 0000 6941 017271 1330 TAD CLSMN2 6942 017272 7421 MQL / ++++ 6943 017273 1366 TAD (14) 6944 CIFFIO / ++++ undefined ^ 017274 0000 6945 FILEIO / ++++ undefined ^ 017275 0000 6946 XHDRPT / SAVE TIME THIS EDIT undefined ^ 017276 0000 6947 017277 1177 TAD WIDNAR / FORCED WIDE? /A223 6948 017300 7650 SNA CLA / /A223 6949 017301 5305 JMP CLOSE4 / JMP IF YES, LEAVE CURRENT SIZES /A223 6950 017302 1365 TAD (30) / Set screen size back to max. 6951 017303 3176 DCA SCRNLN / ... 6952 017304 4764 JMS CLR132 / Back to 80 col mode. 6953 CLOSE4, AC0003 / Clear screen & region. /M223 undefined ^ 017305 0000 6954 CIFMNU / ... undefined ^ 017306 0000 6955 017307 4763 JMS I (CALLN1) / .... 6956 017310 4762 JMS PROMPT / display "filing being completed. 6957 017311 7635 MSGF / ... 6958 017312 4775 JMS DSKCAL / and close the file. 6959 XDSKCL / ... undefined ^ 017313 0000 6960 CLOSEX, XX / Map field to return to. undefined ^ 017314 0000 6961 017315 5611 JMP I CLOSEF / Return to caller. 6962 6963 /*************************************************************************** 6964 /**** C A U T I O N **** 6965 /**** THIS OVERLAY PAGE IS USED BY DECSPELL AND MUST RESIDE HERE **** 6966 /*************************************************************************** 6967 6968 CVTMIN, XX / SUBROUTINE TO CONVERT HOURS AND MINUTES TO MINUTES undefined ^ 017316 0000 6969 017317 7450 SNA / ++++ 6970 017320 5326 JMP CVTMN2 / IF ZERO AC (NO HOURS), JUMP 6971 017321 7041 CIA / ++++ 6972 017322 3332 DCA CLSHR / CVTMN1 CONTROL 6973 017323 1361 CVTMN1, TAD (74) 6974 017324 2332 ISZ CLSHR / ++++ 6975 017325 5323 JMP CVTMN1 6976 017326 1331 CVTMN2, TAD CLSMIN / ADD MINUTES-FROM-HOURS TO MINUTES 6977 017327 5716 JMP I CVTMIN 6978 / 6979 017330 0000 CLSMN2, 0 / TEMP., ALWAYS CONTAINS MINUTES 6980 017331 0000 CLSMIN, 0 / MINUTES FOR CVTMIN 6981 017332 0000 CLSHR, 0 / NEG OF HOURS IN CVTMIN 6982 6983 6984 6985 /*************************************************************************** 6986 /**** C A U T I O N **** 6987 /**** THIS OVERLAY PAGE IS USED BY DECSPELL AND MUST RESIDE HERE **** 6988 /*************************************************************************** 6989 6990 /D222 / PPCALL POST PROCESSOR CALL_A_ROUTINE /A214 6991 6992 X=. / FIRST FREE LOCATION ON PAGE 6993 /--------------------- 6994 017361 0074 PAGE 017362 4470 017363 0000 017364 6740 017365 0030 017366 0014 017367 0015 017370 2640 017371 0235 017372 0236 017373 0004 017374 0003 017375 5014 017376 2244 017377 4241 6995 6996 6997 *7400 / OVERLAY AREA 1 LOCATION 6998 OVRNUM= 0 / INITIALIZE OVERLAY ONE COUNTER 6999 017400 0000 OVLAY1, OVRNUM / STORE OVERLAY NUMBER AS FIRST LOCATION 7000 7001 X=. / INDICATE FIRST FREE LOCATION ON PAGE 7002 /--------------- 7003 PAGE 7004 7005 / THIS FIELD IS USED FOR EDITOR MATH AND GO-TO-PAGE 7006 FIELD 2 7007 7008 CDFMYF=CDFLP undefined ^ 7009 7010 *200 7011 7012 RELOC 6400 7013 7014 7015 / THIS CODE WILL LOAD INTO THE TOP OF FIELD 5... 7016 / THIS IS AN EXTENSION OF THE EDITOR RESIDENT... IT CONTAINS THE SUPERKEY 7017 / VECTOR TABLE, AND THE COPY ROUTINE... 7018 / IT WAS DEVISED IN ORDER TO PREVIDE MORE SPACE IN THE RESIDENT PORTION OF THE 7019 / EDITOR FIELD SO THAT THE MATH INTERFACE, AND GOTO PAGE CODE CAN BE RESIDENT 7020 7021 DSKBLK=.-6400%400+DL3EDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 7022 7023 7024 / IF doing a GOTO PAGE request ignore the GOLD-HALT 7025 / ELSE process the GOLD-HALT 7026 7027 / TEST FIELD 0 HALT FLAG (SET BY TYPING GOLD+HALT) 7028 / TAKE 1ST RETURN IF SET, 2ND RETURN IF NOT SET 7029 7030 XHLTST, XX undefined ^ 026400* 0000 7031 CDFEDT / CHANGE TO EDIT FIELD undefined ^ 026401* 0000 7032 DCA T1 / SAVE AC undefined ^ undefined ^ 026402* 3000 7033 026403* 1777 TAD I (USHLTS) / RETRIEVE CALLER'S ADDRESS 7034 026404* 3200 DCA XHLTST / MAKE IT RETURN ADDR 7035 7036 026405* 1226 TAD RPACTIVE / GET GOTO PAGE FLAG 7037 026406* 7640 SZA CLA / SKIP IF GOTO PAGE NOT ACTIVE 7038 026407* 5222 JMP RPIGNORE / JUMP TO IGNORE GOLD-HALT 7039 7040 CDFMNU / CHANGE TO MENU FIELD undefined ^ 026410* 0000 7041 026411* 1776 TAD I (LINDIF) / PICK UP STATUS CHANGE FLAG 7042 026412* 7650 SNA CLA / DID THE STATUS CHANGE ? 7043 026413* 5217 JMP XHLTS1 / NO, SKIP AROUND THE STATUS UPDATE 7044 7045 026414* 0000 CDFMYF / YES, CHANGE BACK TO THIS FIELD 7046 CIFMNU / CHANGE TO MENU FIELD FOR CHECK undefined ^ 026415* 0000 7047 026416* 4775 JMS I (CALLN2) / GO CHECK FOR STATUS VALUE CHANGE 7048 7049 XHLTS1, CDFSYS / CHANGE TO SYSTEM FIELD undefined ^ 026417* 0000 7050 TAD I HLTFLG / PICK UP THE VALUE FOR THE HALT FLAG undefined ^ undefined ^ 026420* 1400 7051 026421* 7650 SNA CLA / IS THE HALT FLAG SET ? 7052 7053 RPIGNORE, / GOTO PAGE EXIT POINT 7054 026422* 2200 ISZ XHLTST / YES, SET UP TO TAKE SKIP RETURN 7055 TAD T1 undefined ^ undefined ^ 026423* 1000 7056 CDIEDT / CHANGE BACK TO EDIT FIELD undefined ^ 026424* 0000 7057 026425* 5600 JMP I XHLTST 7058 7059 026426* 0000 RPACTIVE, .-. / IF NEG., GOTO PAGE ACTIVE 7060 / POS. MEANS NO GOTO PAGE 7061 7062 / THIS IS THE ONLY ENTRY 'A105' YOU'LL SEE 7063 / BECAUSE IT IS TO SIGNIFY THE CORRECTION OF THIS SUBROUTINE 7064 / USED BY GOTO PAGE FOR COMPUTING THE 'CURRENT' PAGE 7065 / (SINCE THIS ROUTINE DIDN'T WORK BEFORE IT NOW IS CONSIDERED 7066 / NEW CODE) 7067 7068 7069 /************************************************** 7070 / 7071 / START GOTO PAGE FIND CURRENT EDIT PAGE OF ALL DOC. PAGES... 7072 / 7073 /************************************************* 7074 7075 CDFILS= CDF 70 / 'WPFILS' IS IN FIELD 7 7076 7077 / ENTER HERE FROM A JMS WITHIN 'OVMENU' 7078 / CALCULATE THE CURRENT PAGE THE USER IS EDITING 7079 / AND THE TOTAL NUMBER OF PAGES WITHIN THE DOCUMENT 7080 / TO SATISFY THE 'XXX' AND 'YYY' VALUES WITHIN 7081 / THE FOLLOWING EDITOR MENU DISPLAY 7082 / 7083 / 'YOU ARE CURRENTLY EDITING PAGE XXX OF YYY PAGES' 7084 7085 / X3 - IS USED AS A TEMPORARY REGISTER (NON AUTO-INDEX MODE) 7086 / 7087 / X4 - IS USED AS A TEMPORARY HOLDING REGISTER (FOR 'ISZ'S). 7088 / 7089 7090 RPPMENU,XX / BEGIN COUNTING CURRENT/TOTAL PAGES undefined ^ 026427* 0000 7091 026430* 3275 DCA RPPAC / SAVE THE accumulator AT ENTRY 7092 7093 / THE FIRST FEW WORDS OF THE EDIT BUFFER ARE ALWAYS 7094 / WORD 1 - 7777 7095 / WORD 2 - 7775 STX (IF REALLY START OF TEXT - ELSE REAL TEXT) 7096 / WORD 3 - 0016 START OF RULER (IF WORD 2 IS STX) 7097 / WORD 4 - ???? TEXT 7098 7099 CDFEDT undefined ^ 026431* 0000 7100 AC7777 / INITIALIZE FLAG undefined ^ 026432* 0000 7101 026433* 3325 DCA RPSTART / TO SIGNIFY 2ND TIME AT EXT 7102 026434* 1774 TAD I (CURPTR) / CURRENT LOC. IN EDIT BUFFER 7103 026435* 3326 DCA RPPCURPTR / START SEARCH BACK FROM HERE 7104 CDFLP undefined ^ 026436* 0000 7105 AC7776 / -2 MEANS GET THE 'PAGE COUNT' undefined ^ 026437* 0000 7106 026440* 4773 JMS RPPCAL / (THAT MEANS THE NUMBER OF PAGES) 7107 XRPRD / WITHIN THE 'STX' BUFFER undefined ^ 026441* 0000 7108 026442* 1372 TAD (-1750) /-1000. 7109 026443* 3771 DCA RPPLSPAGE / START WITH ZERO PAGE COUNT (NEGATIVE NOTATION) 7110 026444* 3770 DCA RPPMSPAGE 7111 /\ JMP .+1 7112 7113 / CALCULATE THE 'CURRENT PAGE' 7114 / BY SUMMING THE PAGE COUNT WITHIN EACH DATA DESCRIPTOR WORD 7115 / UNTIL THE DATA DESCRIPTOR OFFSET IS EQUAL TO THE OFFSET WITHIN 'SCTOP' 7116 / THEN READ EACH CHARACTER OF THE EDIT BUFFER 7117 / FOR ANY TYPE OF PAGE MARK 7118 / UNTIL THE POSITION WITHIN THE EDIT BUFFER 7119 / IS THE SAME AS THE ADDRESS WITHIN 'CURPTR' 7120 7121 026445* 4767 JMS RPPXMENU 7122 026446* 3276 DCA RPMNT2 7123 026447* 7004 RAL / 0, 1 7124 026450* 1770 TAD RPPMSPAGE 7125 026451* 3277 DCA RPMNT1 7126 7127 / IF THE CONTENTS OF THE ac AT ENTRY IS negative 7128 / THEN ALSO SET THE CONTENTS OF 7129 / CURPG1 WITH THE CONTENTS OF RPMNT2, AND 7130 / CURPG2 WITH THE CONTENTS OF RPMNT1 7131 7132 026452* 1275 TAD RPPAC / GET BACK AC AT ENTRY 7133 026453* 7650 SNA CLA / SKIP NEXT IF not 'GOLD M' 7134 026454* 5263 JMP RPPMN2 / USER REQUEST FOR 'GOLD M' 7135 CDFEDT undefined ^ 026455* 0000 7136 026456* 1276 TAD RPMNT2 7137 026457* 3766 DCA I (CURPG1) 7138 026460* 1277 TAD RPMNT1 7139 026461* 3765 DCA I (CURPG2) 7140 026462* 5270 JMP RPREPL / REPLACE FILE SYS POINTERS, THEN EXIT 7141 7142 / CALCULATE THE 'TOTAL PAGE' COUNT OF THE DOCUMENT 7143 / BY SUMMING THE PAGE COUNT FROM OUR PRESENT POSITION 7144 / WITHIN THE EDIT BUFFER UNTIL 'ETX' 7145 / THEN SUMMING THE PAGE COUNT WITHIN EACH REMAINING DATA DESCRIPTOR WORD 7146 / UNTIL A [0] TERMINATOR SIGNIFYING OUT OF DESCRIPTOR BLOCKS 7147 / OR UNTIL A [-1] TERMINATOR SIGNIFYING LAST DESCRIPTOR WORD 7148 7149 026463* 4767 RPPMN2, JMS RPPXMENU 7150 026464* 3300 DCA RPMNT7 7151 026465* 7004 RAL / 0, 1 7152 026466* 1770 TAD RPPMSPAGE 7153 026467* 3301 DCA RPMNT6 7154 026470* 1364 RPREPL, TAD (-4) / AC => - 4 TO REPLACE FILE SYSTEM POINTERS 7155 026471* 4773 JMS RPPCAL / TO WHERE THEY WERE AT START OF TOTAL PAGE CALCULATION 7156 XRPRD / TO ENABLE RESUMMING THE EDIT CYCLE undefined ^ 026472* 0000 7157 CDIEDT undefined ^ 026473* 0000 7158 026474* 5627 JMP I RPPMENU / EXIT 7159 7160 026475* 0000 RPPAC, ZBLOCK 1 / HOLDS THE AC AT ENTRY INTO 'RPPMENU' 7161 026476* 0000 RPMNT2, ZBLOCK 1 / LOW 7162 026477* 0000 RPMNT1, ZBLOCK 1 / HIGH 7163 026500* 0000 RPMNT7, ZBLOCK 1 / LOW 7164 026501* 0000 RPMNT6, ZBLOCK 1 / HIGH 7165 7166 RPPSCTOP, / DATA DESCRIPTOR BLOCK SAME AS WITHIN 'SCTOP' 7167 7168 RPPNOGDS, / EXAUSTED ALL DATA DESCRIPTOR BLOCKS 7169 7170 RPPXCHARACTER, 7171 AC7777 / BACK-UP EDIT BUFFER PTR undefined ^ 026502* 0000 7172 026503* 1326 TAD RPPCURPTR / CURRENT LOC. PTR. 7173 026504* 7450 SNA / SKIP IF NOT TOP OF BUFFER 7174 026505* 1363 TAD (5777) / RESUME AT BOTTOM IF AT TOP 7175 026506* 3326 DCA RPPCURPTR / UPDATE CURRENT LOC. PTR. 7176 7177 CDFBUF / EDIT BUFFER FIELD undefined ^ 026507* 0000 7178 026510* 1726 TAD I RPPCURPTR / GET CHAR. FROM EDIT BUFFER 7179 CDFLP / BACK TO THIS FIELD undefined ^ 026511* 0000 7180 7181 TAD (-ECSTX) / TOP OR BOTTOM ID? undefined ^ undefined ^ 026512* 1362 7182 026513* 7450 SNA / SKIP IF NEITHER 7183 026514* 5330 JMP RPPETX / SEE WHERE WE ARE 7184 7185 TAD (ECSTX-ECNWPG) / IS IT NEW PAGE MARK? undefined ^ undefined ^ undefined ^ undefined ^ 026515* 1362 7186 026516* 7440 SZA / SKIP IF PAGE IN BUFFER 7187 TAD (ECNWPG-ECPMRK) undefined ^ undefined ^ undefined ^ undefined ^ 026517* 1362 7188 026520* 7640 SZA CLA / SKIP NEXT IF PAGE MARK 7189 026521* 5302 JMP RPPXCHARACTER / NEITHER TYPE OF PAGE MARK 7190 7191 / ANY TYPE OF PAGE MARK WAS FOUND 7192 7193 / UPDATE 'RPPLSPAGE' AND 'RPPMSPAGE' 7194 7195 AC0001 undefined ^ 026522* 0000 7196 026523* 4761 JMS RPPINCPAGECOUNT / GO ACCOUNT FOR PAGE IN BUFFER 7197 026524* 5302 JMP RPPXCHARACTER / DO UNTIL STX MARKER FOUND 7198 7199 026525* 0000 RPSTART, ZBLOCK 1 / INDICATE # OF TIMES AROUND EDIT BUFFER 7200 026526* 0000 RPPCURPTR, ZBLOCK 1 / OUR CURPTR 7201 7202 / EACH CHARACTER FROM THE TOP OF THE EDIT BUFFER 7203 / STARTING AT THE ADDRESS WITHIN 'BUFBEG' 7204 / UNTIL THE ADDRESS WITHIN 'CURPTR' 7205 / HAS BEEN EXAMINED FOR EITHER TYPE OF PAGE MARK 7206 / PROGRAM LOCATIONS 'RPPMSPAGE' AND 'RPPLSPAGE' HAVE BEEN UPDATED ACCORDINGLY 7207 / BUT IF THE SUM OF THE CONTENTS OF THOSE TWO LOCATIONS IS ZERO 7208 / THEN SET 'RPPLSPAGE' EQUIVALENT TO 1 SIGNIFYING PAGE #1 7209 7210 RPPATCURPTR, / AT THE CURRENT POINTER OF THE EDIT BUFFER 7211 026527* 3326 DCA RPPCURPTR 7212 7213 RPPETX, / MAYBE AT TOP OR BOTTOM OF ED. BUF. 7214 7215 CDFEDT / EDITOR FIELD undefined ^ 026530* 0000 7216 026531* 1774 TAD I (CURPTR) / ORIG. CURPTR AT START OF SEARCH 7217 CDFLP / BACK TO THIS FIELD undefined ^ 026532* 0000 7218 7219 026533* 7041 CIA / FOR COMPARE TO OUR OWN 7220 026534* 1326 TAD RPPCURPTR / EDIT BUFFER POINTER 7221 026535* 7650 SNA CLA / SKIP IF BACKED-UP TO STX 7222 026536* 5345 JMP ETXTST / SEE IF BACKUP TO ETX 7223 7224 ATEND, / DONE SEARCHING THRU EDIT BUFFER 7225 AC0001 / 'CLL' / undefined ^ 026537* 0000 7226 026540* 1360 TAD (1750) 7227 026541* 1771 TAD RPPLSPAGE 7228 026542* 7440 SZA 7229 026543* 7100 CLL 7230 026544* 5757 JMP JMPIRPPXMENU / AT EXIT (AC) COULD = 0 AND (L) COULD = 1 7231 / ELSE (AC) IS NOT ZERO AND (L) IS = 0 7232 7233 7234 ETXTST, / ETX RECOGNIZED WITHIN BUFFER 7235 026545* 1325 TAD RPSTART / IF FLAG IS MINUS 7236 026546* 7700 SMA CLA / THEN WE STARTED AT ETX MARK 7237 026547* 5337 JMP ATEND / ELSE, WE WENT THRU ENTIRE BUFFER-DONE 7238 026550* 3325 DCA RPSTART / ETX WILL BE READ AGAIN, SO GET READY 7239 026551* 5302 JMP RPPXCHARACTER / 1ST CHAR READ WAS ETX, SO CONTINUE 7240 7241 026552* 3601 MSG132, TEXT"^A" / MESSAGE USED FOR 132/80 COLOMN MODE SWITCH 026553* 0000 7242 7243 X=. / INDICATE FIRST FREE LOCATION ON PAGE 7244 /--------------- 7245 026557* 6630 PAGE 026560* 1750 026561* 6655 026562* 0000 026563* 5777 026564* 7774 026565* 2552 026566* 1751 026567* 6600 026570* 6667 026571* 6666 026572* 6030 026573* 6631 026574* 0135 026575* 0004 026576* 0172 026577* 2753 7246 7247 DSKBLK=.-6400%400+DL3EDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 7248 7249 7250 RPPXMENU, XX undefined ^ 026600* 0000 7251 7252 RPPXDESCRIPTOR, 7253 AC7777 / ... [-1] MEANS... undefined ^ 026601* 0000 7254 026602* 4231 JMS RPPCAL / ... GET A 'RPPGDS' ... 7255 XRPRD / ... (DESCRIPTOR) WORD ... undefined ^ 026603* 0000 7256 026604* 3227 DCA RPGDSHOLD / ... AND TEMPORARILY SAVE IT ... 7257 7258 / NOTE THAT FOR COS-310 COMPATABILITY 7259 / THE CONTENTS OF 'SCTOP' ARE ALWAYS [2] LESS 7260 / (WPFILS AUTOMATICALLY ADJUSTS FOR THIS) 7261 7262 026605* 1377 TAD (CURID-1) / GET ADDRESS OF CURRENT BLK ID 7263 026606* 7421 MQL / TO SEND IN THE MQ 7264 AC7775 / -3 MEANS GET THE CONTENTS undefined ^ 026607* 0000 7265 026610* 4231 JMS RPPCAL / OF PROGRAM LOCATION 'SCTOP' 7266 XRPRD / & THE MQ = HEADER EXTENSION NUMBER undefined ^ 026611* 0000 7267 / 7268 / AT THE 'START' OF THE REPOSITIONING REQUEST. PLUS PUT THE 7269 / 'CURRENT' VALUE OF SCTOP AND THE HDR EXTN # INTO CURID AND CURTOP... 7270 / 7271 026612* 7521 SWP / INTERCHANGE MQ WITH AC 7272 026613* 7041 CIA / NEGATE THE HEADER EXTENSION NUMBER 7273 026614* 1225 TAD CURID / COMPARE IT WITH OUR CURRENT HDR ID 7274 026615* 7640 SZA CLA / SKIP IF SCTOP IN THIS BLK 7275 026616* 5245 JMP RPPVALUE / INCLUDE THIS DESC. THEN 7276 026617* 7501 MQA / GET THE OFFSET INTO THE HEADER INTO THE AC 7277 7278 / the contents of the AC contains the contents of program location 'SCTOP' 7279 / at start of relative paging request... 7280 / 7281 7282 026620* 7041 CIA 7283 026621* 1226 TAD CURTOP / CURRENT SCTOP 7284 026622* 7750 SPA SNA CLA / SKIP IF AT SCTOP 7285 026623* 5245 JMP RPPVALUE / INCLUDE THIS DESC. THEN 7286 026624* 5776 JMP RPPSCTOP / JMP TO COUNT THE NUMBER OF PAGES 7287 / WITHIN THE EDIT BUFFER STARTING 7288 / AT 'BUFBEG' UNTIL THE ADDRESS 7289 / WITHIN 'CURPTR' 7290 7291 / NOTE: CURID & CURTOP MUST REMAIN TOGETHER & IN THAT ORDER 7292 026625* 0000 CURID, .-. / CURrent blk ID # 7293 026626* 0000 CURTOP, .-. / CURrent scTOP pointer 7294 026627* 0000 RPGDSHOLD,ZBLOCK 1 7295 7296 JMPIRPPXMENU, 7297 026630* 5600 JMP I RPPXMENU 7298 7299 / 'RPPCAL' WAS COPIED AFTER 'DSKCAL' 7300 / (BECAUSE A 'JMS DSKCAL' FROM 'FIELD 5') 7301 / (WOULD BE AN INSTANT TRIP TO THE FUNNY FARM) 7302 7303 RPPCAL, XX undefined ^ 026631* 0000 7304 CDFLP / THIS DATA FIELD undefined ^ 026632* 0000 7305 DCA T1 / SAVE AC undefined ^ undefined ^ 026633* 3000 7306 026634* 1631 TAD I RPPCAL / GET VECTOR 7307 026635* 2231 ISZ RPPCAL 7308 026636* 3242 DCA .+4 / SAVE VECTOR 7309 TAD T1 / GET BACK AC undefined ^ undefined ^ 026637* 1000 7310 CIFFIO undefined ^ 026640* 0000 7311 FILEIO undefined ^ 026641* 0000 7312 026642* 0000 .-. / the VECTOR 7313 CDFLP undefined ^ 026643* 0000 7314 026644* 5631 JMP I RPPCAL / EXIT 7315 7316 RPPVALUE, 7317 026645* 1227 TAD RPGDSHOLD / GET BACK THE 'DESCRIPTOR' WORD 7318 026646* 7040 CMA 7319 026647* 7450 SNA 7320 026650* 5776 JMP RPPNOGDS / [-1] DESCRIPTOR WORD TERMINATOR FOUND 7321 026651* 7040 CMA 7322 026652* 0375 AND (37) / BITS 7-11 IS THE PAGE COUNT 7323 026653* 4255 JMS RPPINCPAGECOUNT 7324 026654* 5201 JMP RPPXDESCRIPTOR 7325 7326 / SUBROUTINE TO INCREMENT VALUES WITHIN 'RPPLSPAGE' AND 'RPPMSPAGE' 7327 7328 / ENTER WITH THE CONTENTS OF THE AC 7329 / EQUIVALENT TO THE 'NUMBER OF PAGES' 7330 / TO INCREMENT 7331 7332 RPPINCPAGECOUNT, 7333 XX undefined ^ 026655* 0000 7334 026656* 7100 CLL 7335 026657* 1266 TAD RPPLSPAGE / CURRENT PAGE + # OF PAGES IN THIS BLOCK 7336 026660* 7430 SZL 7337 026661* 2267 ISZ RPPMSPAGE 7338 026662* 7430 SZL 7339 026663* 1374 TAD (-1750) 7340 026664* 3266 DCA RPPLSPAGE / UPDATE CURRENT PAGE NUMBER 7341 026665* 5655 JMP I RPPINCPAGECOUNT 7342 7343 026666* 6030 RPPLSPAGE, -1750 /1-1000 / CURRENT PAGE NUMBER (NEGATIVE NOTATION) 7344 026667* 0000 RPPMSPAGE, 0 / 1000-9000 (POSITIVE NOTATION) 7345 7346 /*************************************************** 7347 / 7348 / END GOTO PAGE FIND CURRENT EDIT PAGE OF ALL DOC. PAGES... 7349 / 7350 /*************************************************** 7351 7352 7353 / 7354 / 7355 / SUBR RPXHLT PSUEDO-CODE: 7356 / 7357 / take out GOLD_HALT support for both GTP and GOLD_HALT... /A195 7358 / 7359 / Determine if the user has requested a halt via the GOLD:HALT 7360 / key during a GOTO PAGE request; 7361 / If so, then 7362 / RPBOTF := -1; ( turn this into a GOLD:Bottom ) 7363 / jump to RPRULE; ( never returns to caller ) 7364 / else 7365 / ( user did not press GOLD:HALT ) 7366 / accumulate # of pages in document so far (in CURPG1); 7367 / compare current page # with desired page # ... 7368 / exit ... 7369 / ( the structure of RPXHLT is fuzzy because it's not 7370 / a piece of modular code that performs a distinct 7371 / function--it was made into a subroutine merely 7372 / as a device to move code to CDFLP. ) 7373 / 7374 / 7375 / CALL: 7376 / 7377 / CLA / AC MUST = 0 7378 / / DF DOESN'T MATTER 7379 / CIFLP 7380 / JMS RPXHLT 7381 / JMP NXTDES / NOT AT DESIRED PAGE. 7382 / / (GO READ NEXT GOTO-PAGE DESCRIPTOR 7383 / / WORD AND TRY AGAIN) 7384 / / CURPG1= CURRENT PAGE # ACCUMULATED BY 7385 / / SCANNING GOTO-PAGE DESCRIPTOR WORDS 7386 / ... / AT OR PAST DESIRED PAGE (ACCORDING TO 7387 / / COMPARISON OF UNITS, TENS, AND 7388 / / HUNDREDS -- STILL NEED TO COMPARE 7389 / / THOUSANDS IN CURPG2) 7390 / / CURPG1= -# OF PAGE MARKS TO READ, 7391 / / STARTING AT CURRENT BLOCK, 7392 / / TO REACH DESIRED PAGE. 7393 / / AC= DESIRED PAGE # (THOUSANDS) 7394 / / = RPBIN2. 7395 / ... 7396 /RPXRULE,... / 'RPXHLT' JUMPS HERE (TO TAG RPXRULE) 7397 / / IF USER PRESSED GOLD:HALT. 7398 / 7399 / 7400 026670* 0000 RPXHLT, 0 / MAY BE OVERLAID BELOW IF HALT REQUESTED 7401 /D195 CDFSYS / TO SYS FIELD TO 7402 /D195 TAD I HLTFLG / GET HALT FLAG 7403 /D195 SNA CLA / SKIP IF HALT SELECTED 7404 /D195 JMP WOHLTX / JUMP IF HALT NOT SELECTED 7405 7406 /D195 CDFLP / BACK TO THIS FIELD 7407 /D195 TAD (RPXRULE) / ADDR. TO CONCLUDE GOTO PAGE AT 7408 /D195 DCA RPXHLT / NEW RETURN ADDR. 7409 7410 /D195 CDFEDT / EDITOR'S DF 7411 /D195 AC7777 / AC = > -1 7412 /D195 DCA I (RPBOTF) / SET V2 GOLD BOTTOM REQUEST 7413 7414 /D195 JMP WIHLTX / LEAVE AC => 0 ON RETURN 7415 7416 / if desired LO page-indication found within this GTP descriptor word 7417 / then load contents of 'THOUSANDS' word and resume at 7418 / RETURN+1 for furthur HO desired-page testing 7419 / else desired page not found so RETURN+0 to resume 7420 / by reading the next GTP descriptor word. /A195 7421 7422 7423 WOHLTX, CDFEDT / EDITOR'S DF undefined ^ 026671* 0000 7424 026672* 1773 TAD I (SRCDIR) / PASS ALONG THE CURRENT DESCRIPTOR WORD 7425 026673* 0375 AND (37) / BITS 7-11 FOR # OF PAGES IN THIS BLOCK 7426 026674* 1772 TAD I (CURPG1) / CURRENT PAGE # + # OF PAGES IN THIS BLK 7427 026675* 3772 DCA I (CURPG1) / UPDATE CURRENT PAGE NUMBER 7428 026676* 1771 TAD I (RPBIN1) / GET DESIRED PAGE # 7429 026677* 7041 CIA / FOR COMPARE TO 7430 026700* 1772 TAD I (CURPG1) / ACCUMULATED # OF PAGES FOUND 7431 7432 026701* 7510 SPA / SKIP IF PAGE IN THIS BLK 7433 026702* 5314 JMP WIHLTX / RETURN+0 TO RPDESC FOR NEXT DESC. 7434 026703* 7041 CIA / NEG. REMAINDER OF PAGE-MARKS 7435 026704* 3772 DCA I (CURPG1) / MAKE A COPY 7436 026705* 1773 TAD I (SRCDIR) / CURRENT DESC. WORD CONTENTS 7437 026706* 0375 AND (37) / # OF PAGES ONLY 7438 026707* 1772 TAD I (CURPG1) / MINUS THOSE BEYOND OUR PAGE 7439 026710* 7041 CIA / = # OF PAGE-MARKS TO READ TO PAGE 7440 026711* 3772 DCA I (CURPG1) / SUPPLY FOR NEXT OVERLAY 7441 026712* 1770 TAD I (RPBIN2) / LOOK AT THE THOUSANDS # 7442 026713* 2270 ISZ RPXHLT / RETURN+1 TO CONTINUE W/THOUS. 7443 7444 WIHLTX, CDIEDT / EDITOR'S DF AND IF undefined ^ 026714* 0000 7445 026715* 5670 JMP I RPXHLT / RETURN: TRYPGE IF NOT HALTED 7446 / RPRULE IF HALTED 7447 7448 / just reported the page-not-found error. 7449 / get set to paint the screen with the last available page 7450 / as recorded by the descriptors. 7451 7452 RPERRE, CDFEDT / EDITOR DF undefined ^ 026716* 0000 7453 026717* 1772 TAD I (CURPG1) / TOTAL # OF PAGES COUNTED BEFORE -1 7454 026720* 3771 DCA I (RPBIN1) / BECOMES THE NEW DESIRED PAGE 7455 026721* 3770 DCA I (RPBIN2) 7456 7457 AC7777 / F.C. TO READ DESC. undefined ^ 026722* 0000 7458 026723* 4231 JMS RPPCAL 7459 XRPRD / GTP ENTRY POINT undefined ^ 026724* 0000 7460 CDFEDT / BACK TO EDITOR DF undefined ^ 026725* 0000 7461 7462 026726* 3773 DCA I (SRCDIR) / SUPPLY NEW DESCRIPTOR WORD 7463 026727* 1773 TAD I (SRCDIR) / GET A COPY OF IT 7464 DCA T1 / TO WORK WITH undefined ^ undefined ^ 026730* 3000 7465 TAD T1 undefined ^ undefined ^ 026731* 1000 7466 7467 026732* 7040 CMA / -1 FLAGS A V1 DOC. BEING USED FOR THE 1ST TIME 7468 026733* 7640 SZA CLA / SKIP IF V1 DOC. 7469 026734* 5340 JMP RPERPG / JUMP IF A PAGE AVAILABLE, MAYBE 7470 026735* 3772 DCA I (CURPG1) / INDICATE TOP OF DOCUMENT 7471 CDIEDT / DF AND IF TO EDITOR TO RESUME EDIT CYCLE undefined ^ 026736* 0000 7472 026737* 5767 JMP RPRULE / GO POSITION TO TOP OF DOC. 7473 7474 RPERPG, TAD T1 / GET THE DESCRIPTOR WORD BACK undefined ^ undefined ^ 026740* 1000 7475 026741* 0375 AND (37) / GET ITS' PAGE COUNT IN THIS BLOCK 7476 026742* 7041 CIA 7477 026743* 1772 TAD I (CURPG1) / ALREADY COUNTED THEM EARLIER BEFORE -1 FOUND 7478 026744* 3772 DCA I (CURPG1) / PRETEND NEVER SAW THEM 7479 CDIEDT / DF AND IF TO EDITOR TO RESUME EDIT CYCLE undefined ^ 026745* 0000 7480 026746* 5766 JMP TRYPGE / FIND PAGE WITHIN THIS BLOCK 7481 7482 /****************************************************** 7483 7484 / END OF GOTO PAGE IN FIELD 5 7485 7486 /****************************************************** 7487 7488 / PUTLP Routine moved here this edit for space elsewhere /a247 7489 7490 / ROUTINE TO OUTPUT A MESSAGE TO THE SCREEN, ADDRESS OF MESSAGE IS 7491 / IN AC ON ENTRY 7492 PUTLP, XX undefined ^ 026747* 0000 7493 026750* 3354 DCA PTLP1 / SET UP ADDRESS 7494 CIFMNU undefined ^ 026751* 0000 7495 JMS I IOACAL / CALL I/O ROUTINE undefined ^ undefined ^ 026752* 4400 7496 026753* 0000 0 / USE DEFAULT OUTPUT ROUTINE 7497 PTLP1, XX / ADDRESS OF TEXT STRING TO OUTPUT undefined ^ 026754* 0000 7498 CDIEDT / SET BACK TO EDITOR FIELD undefined ^ 026755* 0000 7499 026756* 5747 JMP I PUTLP / RETURN 7500 7501 / EXERR1 Moved here this edit to gather space together /a247 7502 7503 / EXTRACTNUMBER ERROR HANDLER 7504 EXERR1, TAD (EREXTR) / GET ERROR NUMBER undefined ^ undefined ^ 026757* 1365 7505 026760* 4764 JMS RESCURPTR / FIRST RESTORE CURPTR THEN.... 7506 026761* 4763 JMS EDERR-1 / GO TO ERROR REPORTER. WON'T RETURN 7507 026762* 0000 SAVTP, .-. / SAVED_TAB_POSITION - HOLDS TAB_POSITION 7508 / OF CURRENT DECIMAL TAB FIELD. USED 7509 / BY BOTH EDERR AND GETDTF ROUTINES. 7510 / MUST FOLLOW JMS TO EDERR-1 7511 7512 X=. / INDICATE FIRST FREE LOCATION ON PAGE 7513 /--------------- 7514 026763* 3600 PAGE 026764* 1154 026765* 0000 026766* 7435 026767* 7626 026770* 4302 026771* 6737 026772* 1751 026773* 0153 026774* 6030 026775* 0037 026776* 6502 026777* 6624 7515 7516 DSKBLK=.-6400%400+DL3EDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 7517 7518 7519 7520 / EDITOR MATH CODE GOES HERE 7521 7522 / THIS IS EDITOR MATH CODE USED TO EVALUATE THE MATH CONTROL BLOCKS WHILE IN 7523 / THE EDITOR. THIS CODE IS ACTIVATED BY THE DISCOVERY OF A CONTROL BLOCK CHAR 7524 / IN THE TEXT THAT IS BEING EDITED. 7525 7526 / THE FOLLOWING ROUTINE SERVES AS THE ENTRY POINT TO THE EDITOR MATH 7527 / CONTROL BLOCK PROCESSING CODE FROM THE EDITOR "SCRLUP" ROUTINE. 7528 / EACH TIME A LINE IS SCROLLED UP A CALL IS MADE HERE TO CHECK THE LINE 7529 / WHETHER IT IS IN A CONTROL BLOCK AND IF THE CONTROL BLOCK IS MATH. 7530 / PROCESSING IS DONE ACCORDINGLY. 7531 7532 / **** WARNING ****!! "INCTLB" IS EQUATED TO 7000 WHILE 7533 / CKCTRL" IS EQUATED TO 7001 IN M.PA, THEREFORE DO 7534 / NOT MOVE "INCTLB" OR "CKCTRL" FROM THEIR PRESENT POSITIONS 7535 / UNLESS CHANGING M.PA ALSO 7536 7537 027000* 0000 INCTLB, 0 /"IN CONTROL BLOCK" FLAG, SET TO 1 IF NOT IN A CONTROL 7538 /BLOCK, AND 0 IF IN CTRL BLOCK. THIS FLAG HAS TO STAY 7539 /IN THIS POSITION BECAUSE IT IS DEFINED AS SUCH IN 7540 /WPF1.PA. THIS IS TO ALLOW IT TO BE INITIALIZED FROM 7541 /THE MATH FIELD AT THE SAME TIME THE EDITOR CODE IS 7542 /INITIALIZED. REF. "WPEDOV.PA" 7543 7544 / ***** CAUTION ***** 7545 / CKCTRL ROUTINE IS FILLED WITH CDF AND CIF INSTRUCTIONS. IF YOU 7546 / ADD, MODIFY, MOVE, OR DELETE CODE CHECK FIELDS ARE PROPERLY SET! 7547 7548 CKCTRL, XX undefined ^ 027001* 0000 7549 027002* 7200 CLA / CLEAR AC 7550 7551 /D198; IFDEF UNBUND < 7552 /RUN CHECK TO SEE IF UNBUNDLING IS DEFINED AND IF IT IS THEN 7553 /SEE IF MATH IS ACTIVATED 7554 / *** CAUTION *** 7555 / THE HAVMTH ROUTINE RESIDES IN AN AREA OF FIELD 5 THAT IS 7556 / SHARED BY LIST PROCESSING AND THE EDITOR. HAVMTH IS NOT 7557 / RESIDENT WHEN RUNNING LIST PROCESSING! THUS THE FOLLOWING 7558 / TEST MUST FOLLOW THE TEST ABOVE SO THAT IF WE ARE RUNNING 7559 / LIST PROCESSING WE WILL NOT CALL HAVMTH AND CRASH! 7560 7561 027003* 4777 JMS HAVMTH / IF THE MATH FEATURE IS NOT ACTIVATED 7562 027004* 5340 JMP BKEDIT / THEN JUST RETURN TO THE EDITOR 7563 /D198; > / END IFDEF UNBUND 7564 / YES: SEE WHAT TYPE OF MATH IS WANTED (I.E. LP OR EDITOR MATH 7565 / THIS IS NECESSARY BECAUSE LP ALSO MAKES USE OF THE EDITOR 7566 / (SEE NOTES FOR HAVMTH CHECK BELOW BEFORE TOUCHING THIS ROUTINE!!) 7567 7568 CDFMTH / SET TO MATH DATA FIELD undefined ^ 027005* 0000 7569 TAD I (MTHTYP) / GET "MATH TYPE" FLAG undefined ^ undefined ^ 027006* 1776 7570 027007* 7650 SNA CLA / IS IT EDITOR MATH THAT IS WANTED? 7571 027010* 5340 JMP BKEDIT / NO: THEN JUST RETURN TO LP USE OF THE EDITOR 7572 7573 / CHECK FOR ENTERING OR LEAVING A MATH AREA 7574 7575 / CHECK TO SEE IF IN BACKUP MODE 7576 CDFEDT / GET EDITOR DATA FIELD undefined ^ 027011* 0000 7577 AC7777 / IF EDMODE = 1 (IN BACKUP MODE) undefined ^ 027012* 0000 7578 027013* 1775 TAD I (EDMODE) 7579 027014* 7650 SNA CLA 7580 027015* 5340 JMP BKEDIT / THEN RETURN TO EDITOR 7581 7582 / CHECK TO SEE IF "MA" SWITCH IS SET TO "YES" 7583 7584 CDFMNU / CHANGE TO MENU DATA FIELD undefined ^ 027016* 0000 7585 TAD I (MUBUF+MNMATH) / GET "MA" FLAG undefined ^ undefined ^ undefined ^ undefined ^ 027017* 1776 7586 027020* 0000 CDFMYF / RETURN TO THIS DATA FIELD 7587 027021* 7650 SNA CLA / IS "MA" SET TO "YES"? 7588 027022* 5340 JMP BKEDIT / NO: RETURN TO EDITOR 7589 7590 / YES: CHECK WITH EDITOR TO SEE IF IN SELECT MODE 7591 7592 027023* 4774 JMS CKSCLT / IF IN SELECT MODE THEN SHUT MATH OFF AND 7593 / RETURN TO THE EDITOR DIRECTLY FROM "CKSCLT" 7594 027024* 0000 CDFMYF 7595 AC7777 / OFFSET FOR SETTING OF CURPTR undefined ^ 027025* 0000 7596 027026* 4773 JMS STCURPTR / SET CURPTR FOR READING OF LINE 7597 7598 / CHECK TO SEE IF THIS IS A RULER LINE. IF SO DON'T DO MATH. 7599 027027* 4772 CKCTRT, JMS CKCTR1 / GO SEE IF THE LINE IS A RULER 7600 027030* 7777 -1 / VALUE TO AND WITH CHARACTER READ 7601 -ECSTRL / NEG. VALUE OF CHARACTER TO MATCH undefined ^ 027031* 0000 7602 / IF MATCH GOTO BKEDI3 FROM CKCTR1 ROUTINE. 7603 / IF NO MATCH WE RETURN HERE. 7604 7605 / GO RUN CHECK ON PRESENT POSITION RELATIVE TO ANY CONTROL BLOCK 7606 027032* 5771 JMP CKCTR6 / CHECK CONTROL BLOCK STATUS 7607 7608 / IF NOT IN A BLOCK THEN RUN A CHECK TO SEE IF JUST STARTING ONE 7609 027033* 4770 CKCTR2, JMS CKCTRS / ARE WE JUST STARTING A CONTROL BLOCK? 7610 027034* 5237 JMP CKCTR3 / NO: RESET FLAG & CHECK EXTRACTION ROUTINE 7611 027035* 4767 JMS STLOC1 / YES: IS "START CTRL" CHAR ON PREVIOUS LINE? 7612 027036* 5247 JMP CKCTR4 / YES: GO PROCESS 1ST LINE OF BLOCK 7613 7614 CKCTR3, AC0001 / NO: GET ONE IN THE AC undefined ^ 027037* 0000 7615 027040* 3200 DCA INCTLB / SET "IN CTRL BLOCK" FLAG = FALSE 7616 7617 027041* 4766 JMS MASTTS / IS "MA" SET TO YES, AND ARE WE IN MATH AREA? 7618 027042* 5337 JMP BKEDI3 / NO: RESET CURPTR & RETURN TO EDITOR 7619 7620 027043* 4772 JMS CKCTR1 / SEE IF NEW PAGE, PAGE MARKER, START OR END 7621 / PRINT CONTROL. 7622 027044* 0177 0177 / VALUE TO AND WITH CHAR. READ 7623 -ECNWPG / NEG. VALUE OF CHARACTER TO MATCH undefined ^ 027045* 0000 7624 / IF MATCH GOTO BKEDI3 FROM CKCTR1 ROUTINE. 7625 / IF NO MATCH WE RETURN HERE. 7626 027046* 5765 JMP EXTRACTNUMBER / DO EDITOR MATH ON THIS LINE 7627 7628 / THIS IS FIRST TIME CTRL BLOCK IS ACCESSED, SINCE JUST STARTING 7629 / BLOCK THEN INITIALIZE VALUES BEFORE START PROCESSING OF BLOCK 7630 027047* 3764 CKCTR4, DCA MTHCTL / SET "IN MATH CTRL BLOCK" FLAG = FALSE 7631 027050* 3200 DCA INCTLB / SET "IN CONTROL BLOCK" FLAG = TRUE 7632 027051* 3763 DCA VALID / SET "VALID LINE FOUND" FLAG = TRUE 7633 CDFMTH / CHANGE DATA FIELD REGISTER TO MATH FIELD undefined ^ 027052* 0000 7634 AC0001 / GET 1 IN THE AC undefined ^ 027053* 0000 7635 DCA I (MTHSND) / SET EDIT MATH SECOND LINE FLAG = FALSE undefined ^ undefined ^ 027054* 3776 7636 DCA I (FSTLNE) / SET "CONTROL BLOCK FIRST LINE" FLAG = TRUE undefined ^ undefined ^ 027055* 3776 7637 CDFLP / RESET TO THIS DATA FIELD undefined ^ 027056* 0000 7638 SETRTN, CIFMTH / CHANGE PROGRAM CONTROL TO MATH FIELD undefined ^ 027057* 0000 7639 JMS RTRN1 / INITIALIZE INPUT LINE BUFFER PTR TO START OF BUFFER undefined ^ undefined ^ 027060* 4000 7640 7641 / SET UP TO PROCESS LATEST SCROLLED UP LINE 7642 SCRLLN, AC0001 / NO: CONTINUE PROCESS PRESENT LINE undefined ^ 027061* 0000 7643 027062* 3762 DCA LINEND / SET "LINE END" = FALSE (END SCROLLED LINE NOT FOUND) 7644 027063* 3761 DCA BGNLNE / SET "START OF NEW SCROLLED LINE" FLAG = TRUE 7645 7646 / PUT CHAR FROM SCROLLED UP LINE INTO THE LINEBUFFER 7647 7648 027064* 1762 PRSCHR, TAD LINEND / GET THE "LINE END" FLAG 7649 027065* 7650 SNA CLA / IS IT THE END OF THE SCROLLED UP LINE BEING READ IN? 7650 027066* 5310 JMP CHLINE / YES: GO SEE IF LINE ENDS WITH A HARD RETURN 7651 027067* 4760 JMS READNEXTCHARACTER 7652 027070* 5340 JMP BKEDIT / ETX RETURN. 7653 TAD CRLMB / CHARACTER = LINE_END? undefined ^ undefined ^ 027071* 1000 7654 TAD (-ECNWLN) / ADD NEGATIVE OF "NEW LINE" CHAR undefined ^ undefined ^ 027072* 1376 7655 027073* 7440 SZA / IS IT A "NEW LINE" CHAR? 7656 TAD (ECNWLN-ECNWPG) / NO: GET "NEW PAGE/PAGE MARKER" CHAR VAL undefined ^ undefined ^ undefined ^ undefined ^ 027074* 1376 7657 027075* 7650 SNA CLA / IS THE CHAR A "NEW PAGE" OR "PAGE MARKER"? 7658 027076* 3762 DCA LINEND / YES: SET LINE_END = TRUE 7659 7660 027077* 4757 JMS CHKCH1 / NO: PROCESS CHAR JUST READ IN FROM SCROLLED UP LINE 7661 7662 TAD CRWMB / GET CHARACTER READ undefined ^ undefined ^ 027100* 1000 7663 027101* 3304 DCA CHROVR / SAVE IT IN LOCATION AFTER THE CALL TO MATH FLD 7664 CIFMTH / SET PROGRAM CONTROL TO MATH FLD undefined ^ 027102* 0000 7665 JMS RTRN2 / GO PUT INPUT CHAR INTO INPUT LINE BUFFER undefined ^ undefined ^ 027103* 4000 7666 027104* 0000 CHROVR, 0 / CONTAINS INPUT CHAR TO PASS TO "RTRN2" IN MATH FLD 7667 7668 027105* 5756 JMP EDERR1 / SKIP RTN HERE IF MATH FIELD INPUT LINE 7669 / BUFFER OVERFLOW WITHIN THE CONTEXT OF A MATH CONTROL 7670 / BLOCK, OR LINES IN THE BLOCK AFTER AN "END" CTRL WORD 7671 / THE AC CONTAINS THE PASSED ERROR NUMBER 7672 7673 027106* 5755 NTMATH, JMP BKEDTX / DOUBLE SKIP RTN HERE FROM "RTRN2" IF INPUT LINE 7674 / BUFFER OVERFLOW AND NOT A MATH CONTROL BLOCK. 7675 / PROCEED TO IGNORE THE CTRL BLOCK CAUSE NOT MATH 7676 7677 027107* 5264 JMP PRSCHR / TRIPLE SKIP RETURN HERE FROM "RTRN2" IF INPUT CHAR 7678 / PLACED INTO INPUT LINE BUFFER WITHOUT AN OVERFLOW. 7679 / GET THE NEXT CHAR TO READ IN 7680 7681 / ROUTINE TO CHECK FOR HARD RETURN AT END OF SCROLLED UP LINE 7682 7683 CHLINE, TAD CRWMB / GET LAST CHARACTER undefined ^ undefined ^ 027110* 1000 7684 TAD (-ECNWLN) / ADD TO IT NEGATIVE OF HARD RETURN undefined ^ undefined ^ 027111* 1376 7685 027112* 7440 SZA / WAS THE LAST CHAR ON THE LINE A HARD RETURN 7686 027113* 5322 JMP NOTVLD / NO: THEN SET "VALID LINE FOUND" = FALSE 7687 / AND GO BACK TO EDITOR FOR NEXT SCROLLED LINE 7688 7689 027114* 3763 DCA VALID / YES: SET "VALID LINE FOUND" = TRUE 7690 / AND PROCESS VALID LINE WITHIN CONTROL BLOCK 7691 7692 CIFMTH / GO TO MATH FIELD undefined ^ 027115* 0000 7693 JMS RTRN3 / PROCESS STRING OF CHARS PLACED IN LINEBUFFER undefined ^ undefined ^ 027116* 4000 7694 7695 027117* 5324 JMP SETRT1 / NORMAL RTRN FORM "RTRN3", INIT LINEBUFFER & GO BACK 7696 7697 027120* 5756 JMP EDERR1 / SKIP RTRN TO PROCESS MATH CTRL BLCK ERR 7698 7699 027121* 5755 NXMATH, JMP BKEDTX / DOUBLE SKIP RTN TO PROCESS ERROR BUT NOT MATH BLK 7700 7701 / IF VALID LINE NOT FOUND 7702 7703 027122* 3763 NOTVLD, DCA VALID / SET "VALID LINE FOUND" = FALSE 7704 027123* 5337 JMP BKEDI3 / GO RESTORE CURPTR AND THEN RETURN TO EDITOR 7705 7706 7707 SETRT1, CDFMTH / CHANGE TO MATH DATA FIELD undefined ^ 027124* 0000 7708 TAD I (MTHWRK) / GET "EDITOR MATH WORK AREA" FLAG undefined ^ undefined ^ 027125* 1776 7709 CDFLP / RETURN TO LP DATA FIELD undefined ^ 027126* 0000 7710 027127* 7640 SZA CLA / ARE WE IN AN EDITOR MATH WORK AREA? 7711 027130* 5335 JMP SETRT2 / NO: SET UP TO PROCESS NEXT LINE 7712 7713 / YES: THEN HAVE TO STOP HERE TO ASK IF IN CTRL BLOCK. 7714 / IF "INCTLB" = FALSE THEN MEANS HAVE REACHED END OF A MATH AREA 7715 / WHERE THE "1414" END OF BLOCK CHAR HAS TO BE USED AS A LINE 7716 / TERMINATOR IN ORDER TO PROCESS PREVIOUS INPUT WHICH REMAINS 7717 / AN INVALID LINE UNTIL A VALID TERMINATOR IS FOUND. THE END OF 7718 / BLOCK CHAR IS CONVERTED TO A "HARD RETURN" TO MAKE PREVIOUS 7719 / LINE VALID. HOWEVER NOW HAVE THE PROBLEM OF HAVING TO PROCESS 7720 / THIS LINE AFTER HAVING REACHED THE END OF A MATH BLOCK. THUS 7721 / ONE DOES NOT WANT TO SET "IN MATH CTRL BLOCK" FLAG = TRUE IF 7722 / THIS IS THE CASE, BECAUSE END OF THE MATH BLOCK HAS BEEN 7723 / REACHED AND "MTHCTL" SHOULD BE FALSE. THEREFORE A CHECK IS 7724 / PUT IN HERE TO SEE IF THE ABOVE CASE HAS BEEN ENCOUNTERED. 7725 / IF SO, THEN THE "MTHCTL" IS SET UP TO BE LEFT FALSE. FOR REF. 7726 / SEE "CHKCH1" - CHECK FOR & PROCESS END OF CTRL BLOCK CHAR 7727 7728 027131* 1200 TAD INCTLB / GET "IN CTRL BLOCK" FLAG 7729 027132* 7650 SNA CLA / ARE WE STILL IN THE MATH CTRL BLOCK? 7730 AC0001 / YES: GET 1 TO SET "MTHCTL" = TRUE undefined ^ 027133* 0000 7731 027134* 3764 DCA MTHCTL / NO: THEN LEAVE IT SET TO FALSE 7732 7733 SETRT2, CIFMTH / CHANGE PROGRAM CONTROL TO MATH FIELD undefined ^ 027135* 0000 7734 JMS RTRN1 / INITIALIZE INPUT LINE BUFFER PTR TO START OF BUFFER undefined ^ undefined ^ 027136* 4000 7735 7736 / AND RETURN TO EDITOR 7737 027137* 4754 BKEDI3, JMS RESCURPTR / RESTORE CURPTR 7738 BKEDIT, CDIEDT / CDI INSTRUCTION HERE TO RETURN TO EDITOR undefined ^ 027140* 0000 7739 027141* 5601 JMP I CKCTRL / RETURN TO CALLER IN WPEDIT "SCRLUP" ROUTINE 7740 7741 X=. / INDICATE FIRST FREE LOCATION ON PAGE 7742 /--------------- 7743 027154* 1154 PAGE 027155* 7323 027156* 0200 027157* 7231 027160* 1073 027161* 7313 027162* 7314 027163* 7316 027164* 7200 027165* 0400 027166* 4000 027167* 3331 027170* 2551 027171* 0212 027172* 4036 027173* 1142 027174* 2137 027175* 0133 027176* 0000 027177* 7553 7744 7745 DSKBLK=.-6400%400+DL3EDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 7746 7747 7748 7749 / ******** WARNING - "MTHCTL" DEFINED IN M.PA AS AT LOC 7200 ******* 7750 / IF "MTHCTL" IS MOVED THEN IT MUST BE REDEFINED IN THAT PREFIX MODULE 7751 / IT IS REFERENCED BY "RUNCHK" RTN IN MATH MODULE 7752 7753 *7200 7754 027200* 0000 MTHCTL, 0 / "IN MATH CTRL BLOCK" FLAG, 0=FALSE, 1=TRUE 7755 7756 / ******** WARNING - "RTNMTH" DEFINED IN M.PA AS AT LOC 7201 ****** 7757 *7201 7758 027201* 5777 RTNMTH, JMP BKEDI3 / ENTRY POINT BACK HERE FROM MATH MODULE, JUMP 7759 / HERE FROM "RUNCHK" IN TMATH.PA! GO RESTORE 7760 / "CURPTR" BEFORE RETURNING TO THE EDITOR 7761 7762 / ***** WARNING ***** "ZROTBL" IS DEFINED IN "M.PA" AS AT 7205 **** 7763 / ***** DO NOT MOVE THIS SUBRTN WITHOUT ALSO CHANGING "M.PA" **** 7764 / SUBRTN CALLED FROM "SETCTL" RTN IN THE MATH FIELD, IT IS USED TO INITIALIZE 7765 / THE "DCHAR" AND "TCHAR" TABLES WHICH HOLD THE POINTERS TO THE VALUES OF THE 7766 / ":Dnn" AND ":Tnn" SYMBOLS ENCOUNTERED WHEN PARSING AN EDITOR MATH CTRL BLOCK 7767 7768 /++ 7769 / ZERO_TABLES 7770 / 7771 / FUNTIONAL DESCRIPTION: ZROTBL 7772 / 7773 / THIS ROUTINE IS USED TO ZERO BOTH THE DCHAR AND TCHAR TABLES OR 7774 / ONLY THE DCHAR TABLE BASED ON VALUE IN THE AC UPON ENTRY. 7775 / 7776 / CALLING SEQUENCE: DF MUST = CALLER'S FIELD 7777 / CIFLP 7778 / JMS ZROTBL 7779 / 7780 / INPUT PARAMETERS: AC = 0 ---> ZERO BOTH DCHAR AND TCHAR TABLES 7781 / AC <> 0 ---> ZERO DCHAR TABLE ONLY 7782 / 7783 / IMPLICIT INPUT: T1 7784 / OUTPUT PARAMETERS: NONE 7785 / IMPLICIT OUTPUT: X5, X4, T1 7786 / COMPLETION CODE: NONE 7787 / 7788 / SIDE EFFECTS: 1) *CAUTION* - MQ HOLDS FLAG THOUGHOUT ROUTINE. 7789 / 7790 /-- 7791 7792 *7205 7793 ZROTBL, XX undefined ^ 027205* 0000 7794 027206* 7421 MQL / SAVE ENTRY FLAG = 0 - CLR D & TCHAR TABLES 7795 / 1 - CLR DCHAR TABLE ONLY 7796 027207* 6214 RDF / SET UP RETURN CDIF INSTRUCTION 7797 TAD CIDF0 undefined ^ undefined ^ 027210* 1000 7798 027211* 3227 DCA ZROTB2 / SAVE IT 7799 CDFLP / SET TO FIELD OF DCHAR & TCHAR TABLE undefined ^ 027212* 0000 7800 TAD (-DCHARL) / SET TABLE LENGTH COUNT undefined ^ undefined ^ 027213* 1376 7801 DCA T1 undefined ^ undefined ^ 027214* 3000 7802 027215* 1375 TAD (DCHAR-1) / SET DCHAR TABLE ADDRESS 7803 DCA X5 undefined ^ undefined ^ 027216* 3000 7804 027217* 1375 TAD (TCHAR-1) / SET TCHAR TABLE ADDRESS 7805 DCA X4 undefined ^ undefined ^ 027220* 3000 7806 ZROTB1, DCA I X5 / CLEAR DCHAR TABLE LOCATION undefined ^ undefined ^ 027221* 3400 7807 027222* 7501 MQA / CLEAR TCHAR TABLE LOCATION? 7808 027223* 7650 SNA CLA / SKIP IF: NOT 7809 DCA I X4 / CLEAR TCHAR TABLE LOCATION undefined ^ undefined ^ 027224* 3400 7810 ISZ T1 / FINISHED? undefined ^ undefined ^ 027225* 2000 7811 027226* 5221 JMP ZROTB1 / NO - CLEAR NEXT LOCATION 7812 027227* 0000 ZROTB2, .-. / RETURN CDIF INSTRUCTION 7813 027230* 5605 JMP I ZROTBL / RETURN 7814 7815 7816 / COME HERE TO PROCESS LATEST CHAR READ IN FROM SCROLLED UP LINE 7817 7818 CHKCH1, XX / CHECK FOR & PROCESS "END OF CTRL" BLOCK CHAR undefined ^ 027231* 0000 7819 7820 TAD CRWMB / GET CHARACTER READ WITH MODE BITS undefined ^ undefined ^ 027232* 1000 7821 TAD (-ECPCT2) / ADD TO IT NEGATIVE OF "END CTRL" CHAR undefined ^ undefined ^ 027233* 1376 7822 027234* 7640 SZA CLA / IS IT THE END OF THE MATH CTRL BLOCK? 7823 027235* 5260 JMP CKRULE / NO: SKIP DOWN TO CONTINUE TO CHECK CHAR 7824 AC0001 / YES: SET THE AC TO 1 undefined ^ 027236* 0000 7825 027237* 3774 DCA INCTLB / SET "IN CONTROL BLOCK" FLAG = FALSE 7826 027240* 3200 DCA MTHCTL / SET "IN MATH CONTROL BLOCK" FLAG = FALSE 7827 CDFMTH / CHANGE TO MATH DATA FIELD undefined ^ 027241* 0000 7828 TAD I (MTHSND) / GET "SECOND LINE" FLAG undefined ^ undefined ^ 027242* 1776 7829 027243* 0000 CDFMYF / RETURN TO THIS DATA FIELD 7830 027244* 7700 SMA CLA / WAS AN "END" COMMAND JUST PROCESSED BEFORE 7831 / FINDING THIS "END CTRL BLOCK" MARKER? 7832 027245* 5252 JMP CKVALD / NO: CONTINUE REGULAR PROCESSING 7833 CDFMTH / YES: CHANGE TO MATH DATA FIELD undefined ^ 027246* 0000 7834 AC0001 / GET 1 INTO THE AC undefined ^ 027247* 0000 7835 DCA I (MTHWRK) / SET TO "NOT START OF MATH WORK AREA" undefined ^ undefined ^ 027250* 3776 7836 027251* 0000 CDFMYF / RETURN TO THIS DATA FIELD 7837 7838 027252* 1316 CKVALD, TAD VALID / GET VALID LINE FLAG 7839 027253* 7650 SNA CLA / WAS THE LAST LINE VALID? 7840 027254* 5777 JMP BKEDI3 / YES: GO RESET "CURPTR" & RETURN TO EDITOR 7841 TAD (ECNWLN) / NO: GET "NEW LINE" CHAR undefined ^ undefined ^ 027255* 1376 7842 DCA CRWMB / REPLACE "END OF BLOCK" CHAR WITH "NEW LINE" CHAR undefined ^ undefined ^ 027256* 3000 7843 / DONE BECAUSE "LEXIC" RTN WILL NOT HANDLE EOB CHAR 7844 / AS A VALID LINE TERMINATOR 7845 027257* 5310 JMP CNTPR3 / GO SET "START OF LINE" = FALSE & RTRN TO PROCESS LINE 7846 7847 / CHECK TO SEE IF THE LINE IS A RULER 7848 7849 /CKRULE, TAD SAVCHR / PUT CHAR JUST READ IN INTO THE AC 7850 / TAD (-ECSTRL) / ADD TO IT NEGATIVE OF START OF RULER 7851 / SNA CLA / IS IT THE START OF A RULER? 7852 / JMP BKEDIT / YES: THEN IGNORE PRESENT LINE WITH RULER 7853 / / ON IT, GO BACK TO EDITOR & WAIT FOR 7854 / / NEXT SCROLLED UP LINE 7855 / / NO: THEN CONTINUE TO CHECK FOR OTHER POSSIBILITIES 7856 7857 027260* 7000 CKRULE, NOP /**** TEMP TO SEE IF NEED RULER CHECK CODE 7858 7859 / SCREEN OUT LEADING SPECIAL CHARACTERS IF START OF VALID LINE 7860 7861 027261* 1316 FSTCHR, TAD VALID / GET "VALID LINE" FLAG 7862 027262* 7640 SZA CLA / WAS THE LAST LINE VALID? 7863 027263* 5277 JMP CNTPRS / NO: CONTINUE TO PROCESS CHARACTER 7864 027264* 1313 TAD BGNLNE / YES: SEE IF START OF SCROLLED LINE 7865 027265* 7640 SZA CLA / IS IT THE START OF A SCROLLED UP LINE 7866 027266* 5277 JMP CNTPRS / NO: CONTINUE TO PROCESS CHAR 7867 TAD CRLMB / YES: GET CHARACTER undefined ^ undefined ^ 027267* 1000 7868 027270* 1373 TAD (-41) / GET NEGATIVE OF UPPER LIMIT OF SPECIAL CHARACTERS 7869 027271* 7700 SMA CLA / IS IT A SPECIAL CHAR? 7870 027272* 5277 JMP CNTPRS / NO: CONTINUE TO PROCESS CHARACTER 7871 027273* 1314 TAD LINEND / YES: GET "LINE END" FLAG 7872 027274* 7650 SNA CLA / IS IT THE END OF THE LINE? 7873 027275* 5777 JMP BKEDI3 / YES: GO BACK TO EDITOR & WAIT FOR NEXT LINE 7874 027276* 5772 JMP PRSCHR / NO: DUMP CHAR & GO READ IN NEXT CHAR FROM LINE 7875 7876 / SCREEN OUT NULLS, JUSTIFIED SPACES & BOTH TYPES OF SOFT RETURNS 7877 / FROM ANYWHERE THEY OCCUR IN THE LINE - AS THE CASE MAY PERMIT 7878 7879 CNTPRS, TAD CRWMB / GET CHARACTER READ WITH MODE BITS undefined ^ undefined ^ 027277* 1000 7880 027300* 7440 SZA / SKIP IF: CHARACTER = NULL 7881 TAD (-ECWWLN) / CHARACTER = SOFT_RETURN? undefined ^ undefined ^ 027301* 1376 7882 027302* 7440 SZA / SKIP IF: SO 7883 TAD (ECWWLN-ECJSPC) / CHARACTER = SOFT_SPACE? undefined ^ undefined ^ undefined ^ undefined ^ 027303* 1376 7884 027304* 7440 SZA / SKIP IF: SO 7885 TAD (ECJSPC-ECHYLN) / CHARACTER = SOFT_RETURN_WITH_HYPHEN? undefined ^ undefined ^ undefined ^ undefined ^ 027305* 1376 7886 027306* 7650 SNA CLA / SKIP IF: NOT 7887 027307* 5772 JMP PRSCHR / YES: DUMP IT & GO GET NEXT CHAR FROM LINE 7888 7889 / NO: THEN MUST BE A REGULAR CHAR - PROCESS AS SUCH 7890 7891 CNTPR3, AC0001 / GET 1 IN THE AC undefined ^ 027310* 0000 7892 027311* 3313 DCA BGNLNE / SET "START OF NEW LINE" FLAG = FALSE 7893 7894 027312* 5631 CNTPR1, JMP I CHKCH1 / RETURN TO CALLER 7895 7896 7897 / THE FOLLLOWING ARE VALUES USED BY THE EDITOR MATH CONTROL BLOCK EVALUATION CODE 7898 7899 027313* 0000 BGNLNE, 0 / "START OF NEW SCROLLED LINE" FLAG 7900 / (NOTE A SCROLLED LINE IS COMPOSED OF THE FIRST LINE 7901 / UP FROM THE BOTTOM OF THE SCREEN) 7902 027314* 0000 LINEND, 0 / 'LINE END" FLAG (I.E. END OF SCROLLED UP LINE) 7903 027315* 0000 HLDPTR, 0 / HOLDS PTR TO "START" CTRL BLOCK CHAR POSITION PTR 7904 027316* 0000 VALID, 0 / "VALID LINE FOUND" FLAG, = 0 IF TRUE & NOT 0 IF FALSE 7905 / (NOTE A VALID LINE IS COMPOSED OF ANY NUMBER OF 7906 / SCROLLED UP LINES THE END OF WHICH IS TERMINATED 7907 / BY A HARD RETURN) 7908 7909 BKEDT1, AC0001 / SET AC TO 1 undefined ^ 027317* 0000 7910 027320* 3774 DCA INCTLB / SET "IN CONTROL BLOCK" FLAG =FALSE 7911 027321* 5777 JMP BKEDI3 / RESTORE CURPTR AND THEN RETURN TO EDITOR 7912 7913 027322* 4771 BKDTX1, JMS SCRINI / IF ERROR FOUND IN BLOCK WHICH IS NOT MATH THAN 7914 / REINIT AS IF HAVE BACKED UP IN MATH BLOCK. 7915 / THIS SHOULD INSURE TRAPPING OUT ANY POSSIBILITY 7916 / OF LEAVING THE MATH MODULE (I.E. THE LINE- 7917 / BUFFER, ETC.) IN A WRONG STATE, THUS PRECLUDING 7918 / THE CHANGE OF LETTING SUCH THINGS AS A 7919 / COMMAND SEQUENCE LIKE "BEG(HR)IN" PASS BY 7920 / UNDETECTED BY THE CTRL BLOCK CODE 7921 7922 027323* 7200 BKEDTX, CLA / CLEAR ANY ERROR NUMBERS PASSED BACK FROM MATH 7923 027324* 3200 DCA MTHCTL / SET "IN MATH CTRL BLOCK" FLAG = FALSE 7924 027325* 5777 JMP BKEDI3 / RESTORE CURPTR AND THEN RETURN TO EDITOR 7925 7926 / routine backs up the descriptor block list until it finds a ruler, at 7927 / which point it JMP's to BACK3 to set up RPMTRL and RPRLHN for the 7928 / loading of the ruler. this code is executed on a Gold Bottom request 7929 / 7930 / enter with RPCUOF pointing at the block that we will start our 10 block 7931 / scroll at. must adjust RPCUOF back 1 block before checking for a ruler. 7932 7933 BACK1, XX / SAVE CALLERS RETURN ADDRESS undefined ^ 027326* 0000 7934 BACK2, AC7777 / ADJUST BACK 1 undefined ^ 027327* 0000 7935 027330* 4770 JMS AJUST / ADJUST RPCUOF 7936 CDFEDT / FIELD 5 ON RETURN undefined ^ 027331* 0000 7937 7938 027332* 1767 TAD I (RPCUBK) / IDENTIFY WHICH HDR BLK 7939 027333* 7421 MQL / CONTAINS OUR CURRENT POSITION 7940 AC7776 / -2 undefined ^ 027334* 0000 7941 027335* 1766 TAD I (RPCUOF) / OFFSET TO BLK-2 OF OUR CURRENT POSITION 7942 027336* 4765 JMS RPPCAL / REQUEST SCBOT AND SCTOP BE SET UP 7943 XRPRD / ENTRY POINT FOR V2 GOTO PAGE RANDOM BLK READ undefined ^ 027337* 0000 7944 CDFEDT / FIELD 4 ON RETURN undefined ^ 027340* 0000 7945 7946 AC7777 / -1 undefined ^ 027341* 0000 7947 027342* 4765 JMS RPPCAL / REQUEST TO READ CURRENT DESCRIPTOR WORD 7948 XRPRD / ENTRY POINT undefined ^ 027343* 0000 7949 CDFEDT / DESCRIPTOR WORD IN AC ON RETURN - FIELD 4 ON RETURN undefined ^ 027344* 0000 7950 7951 027345* 0364 AND (4000) / DOES THE BLK CONTAIN A RULER?? 7952 027346* 7640 SZA CLA / SKIP IF NO RULER FOUND 7953 027347* 5763 JMP BACK3 / RULER FOUND 7954 027350* 5327 JMP BACK2 / GO BACK ANOTHER BLK 7955 7956 027351* 5726 BACK4, JMP I BACK1 / RETURN.... 7957 7958 X=. / INDICATE FIRST FREE LOCATION ON PAGE 7959 /--------------- 7960 027363* 3321 PAGE 027364* 4000 027365* 6631 027366* 2756 027367* 0761 027370* 3461 027371* 4023 027372* 7064 027373* 7737 027374* 7000 027375* 0177 027376* 0000 027377* 7137 7961 7962 DSKBLK=.-6400%400+DL3EDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 7963 7964 7965 EDXVEC, / SPECIAL KEYBOARD XFER VECTOR 7966 027400* 5753 EIPWFL / POWER FAIL DETECTED 7967 027401* 0603 EIRBCH / RUB CHARACTER 7968 027402* 0601 EIRBWD / RUB WORD 7969 027403* 1304 EINWLN / RETURN 7970 027404* 4000 EIPCMD / GOLD: COMMAND 7971 027405* 1303 EIPGRF / GOLD: PARAGRAPH MARKER 7972 027406* 1312 EITAB / TAB 7973 /D215 EITABC / GOLD: TAB CENTER 7974 027407* 0556 EIINTB / GOLD: TAB (INDENT TAB) /A215 7975 027410* 0220 EIFILE / GOLD: FILE 7976 027411* 6731 EIMENU / GOLD: MENU 7977 027412* 6715 EICONT / GOLD: CONTINUE SEARCH & SELECT 7978 027413* 0602 EIRBLN / GOLD: RUB LINE 7979 027414* 0600 EIRBSE / GOLD: RUB SENTENCE 7980 027415* 1601 EIDLTC / DELETE CHARACTER 7981 027416* 1600 EIDLTW / DELETE WORD 7982 027417* 0630 EIWORD / WORD 7983 027420* 0627 EISENT / SENTENCE 7984 027421* 0631 EILINE / LINE 7985 027422* 0626 EITABP / TAB POSITION 7986 027423* 0623 EIENTR / < > (ENTER KEY) 7987 027424* 0624 EIPAGE / PAGE 7988 027425* 0625 EIPARA / PARAGRAPH 7989 027426* 6610 EIADVN / ADVANCE 7990 027427* 6607 EIBKUP / BACK-UP 7991 027430* 1765 EIGADV / GOLD: ADVANCE 7992 027431* 3154 EIGBKP / GOLD: BACK-UP 7993 027432* 6624 EIBOLD / BOLD 7994 027433* 2545 EISLCT / SELECT 7995 027434* 6617 EIUPPR / UPPER CASE 7996 027435* 6623 EIUNDL / UNDERLINE 7997 027436* 3361 EISCUT / CUT 7998 027437* 5562 EISWAP / SWAP 7999 027440* 2365 EIPSTE / PASTE 8000 027441* 2747 EIUDLT / GOLD: DELETE (EITHER CHARACTER OR WORD) 8001 027442* 6622 EIUBLD / GOLD: BOLD 8002 027443* 6616 EILOWR / GOLD: UPPERCASE 8003 027444* 6621 EIUUDL / GOLD: UNDERLINE 8004 027445* 4755 EIHYPS / HYPHEN PUSH 8005 027446* 2751 EIHYPL / GOLD: HYPHEN PULL 8006 027447* 1313 EIHYP1 / GOLD: PRINTING BREAK HYPHEN 8007 027450* 6733 EIHYP2 / GOLD: INVISIBLE HYPHEN (SHIFT PRINT HYPHEN) 8008 027451* 3152 EIDEAD / GOLD: DEAD KEY 8009 027452* 2170 EIDICT / GOLD: ABBREVIATION 8010 027453* 6725 EIGETC / GOLD: LIBRARY 8011 027454* 6727 EIDCMT / GOLD: GET DOCUMENT 8012 027455* 0237 EITOP / GOLD: TOP DOCUMENT 8013 027456* 5346 EIBOTM / GOLD: BOTTOM DOCUMENT 8014 027457* 2553 EIFIND / GOLD: SEARCH 8015 027460* 4751 EISRCH / GOLD: CONTINUE SEARCH 8016 027461* 4004 EINPAG / GOLD: NEW PAGE 8017 027462* 4005 EIPMRK / GOLD: PAGE MARKER 8018 027463* 5163 EIRULR / GOLD: RULER 8019 027464* 1311 EICENT / GOLD: CENTER 8020 027465* 2363 EIGCUT / GOLD: CUT 8021 027466* 5354 EIGPST / GOLD: PASTE 8022 027467* 6721 EIGPGE / GOLD: PAGE 8023 027470* 4305 EIREPL / GOLD: REPLACE 8024 027471* 1552 EISUBS / GOLD: SUBSCRIPT 8025 027472* 1553 EISUPS / GOLD: SUPERSCRIPT 8026 027473* 6717 EIVIEW / GOLD: VIEW 8027 027474* 6723 EITIME / GOLD: DATE & TIME 8028 027475* 3156 EITC / TECHNICAL CHARACTER 8029 027476* 0554 EIHELP / HELP COMMAND KEY 8030 027477* 6552 EIPRSC / PREV SCREEN 8031 027500* 3751 EINXSC / NEXT SCREEN 8032 027501* 4307 EIUPAR / UP ARROW 8033 027502* 4311 EIDNAR / DOWN ARROW 8034 IFDEF CONDOR < /M200 8035 8036 IFDEF LFTRGT < 8037 EIRARO / RIGHT ARROW 8038 EILARO / LEFT ARROW 8039 > / END IFDEF LFTRGT 8040 8041 IFNDEF LFTRGT < 8042 EIBAD 8043 EIBAD 8044 > / END IFNDEF LFTRGT 8045 8046 EIGRAR / GOLD: RIGHT ARROW 8047 EIGLAR / GOLD: LEFT ARROW 8048 > / END IFDIF CONDOR 8049 8050 027503* 2555 EIRQSP / GOLD: SPACE (REQUIRED SPACE) 8051 8052 IFDEF CONDOR < /A205 8053 EICLKY / COLUMN CUT /A205 8054 > / END IFDEF CONDOR /A205 8055 027504* 4345 EIINOV / INSERT-OVERSTRIKE /A254 8056 8057 8058 EDXVLN= .-EDXVEC 8059 8060 / THIS IS THE COPY ROUTINE, MODIFIED FOR CROSS-FIELD CALLS... 8061 / IT LENDS ITSELF TO BEING MOVED, BECAUSE THE CALL CONTAINS THE 8062 / APPROPRIATE CDF INSTRUCTIONS TO MAKE IT UNIVERSAL 8063 8064 XFCOPY, XX / JMS COPY - -CNT - CDFA - A-1 - CDF B - B-1 undefined ^ 027505* 0000 8065 027506* 3337 DCA COPTMP 8066 027507* 1737 TAD I COPTMP 8067 DCA T1 / GET CNT undefined ^ undefined ^ 027510* 3000 8068 027511* 1337 TAD COPTMP 8069 DCA X0 undefined ^ undefined ^ 027512* 3000 8070 TAD I X0 undefined ^ undefined ^ 027513* 1400 8071 027514* 3326 DCA COPY1 / CDF A 8072 TAD I X0 undefined ^ undefined ^ 027515* 1400 8073 DCA X1 / A undefined ^ undefined ^ 027516* 3000 8074 TAD I X0 undefined ^ undefined ^ 027517* 1400 8075 027520* 3330 DCA COPY2 / CDF B 8076 TAD I X0 undefined ^ undefined ^ 027521* 1400 8077 DCA X2 / B undefined ^ undefined ^ 027522* 3000 8078 027523* 6214 RDF 8079 TAD CIDF0 / CONSTANT FOR CDF-CIF INSTRUCTION undefined ^ undefined ^ 027524* 1000 8080 027525* 3335 DCA COPXIT 8081 027526* 0000 COPY1, .-. / CDF 8082 TAD I X1 undefined ^ undefined ^ 027527* 1400 8083 027530* 0000 COPY2, .-. / CDF 8084 DCA I X2 undefined ^ undefined ^ 027531* 3400 8085 ISZ T1 undefined ^ undefined ^ 027532* 2000 8086 027533* 5326 JMP COPY1 8087 027534* 0000 CDFMYF 8088 027535* 0000 COPXIT, .-. 8089 JMP I X0 / RETURN undefined ^ undefined ^ 027536* 5400 8090 8091 027537* 0000 COPTMP, 0 / TEMP FOR COPY ROUTINE 8092 8093 / ROUTINE CALLED FROM SCRLDN ROUTINE IN THE EDITOR, IT IS USED AS 8094 /FOLLOWS: 8095 / 8096 /IF MA=YES & IN MATH AREA 8097 / THEN IF IN CONTROL BLOCK 8098 / THEN SET "MTHWRK" = FALSE 8099 / SET "INCTLB" = FALSE 8100 / ELSE RETURN 8101 / ENDIF 8102 / ELSE RETURN 8103 / ENDIF 8104 8105 SCRMTH, XX undefined ^ 027540* 0000 8106 /D198; IFDEF UNBUND < 8107 027541* 4353 JMS HAVMTH / IF MATH FEATURE NO ACTIVATED 8108 027542* 5351 JMP SCREX / THEN JUST RETURN TO EDITOR 8109 /D198; > / END IFDEF UNBUND 8110 CDFEDT / YES: CHANGE TO EDITOR DATA FIELD undefined ^ 027543* 0000 8111 027544* 1777 TAD I (PCTLFL) / GET IN CONTROL BLOCK FLAG 8112 027545* 0000 CDFMYF / RETURN TO THIS DATA FIELD 8113 027546* 7700 SMA CLA / ARE WE IN A CONTROL BLOCK? 8114 027547* 5351 JMP SCREX / NO: JUST RETURN 8115 027550* 4776 JMS SCRINI / YES: GO SHUT MATH DOWN 8116 SCREX, CDIEDT / RETURN TO SCROLL DOWN ROUTINE undefined ^ 027551* 0000 8117 027552* 5740 JMP I SCRMTH / RETURN TO CALLER IN "SCRLDN" 8118 8119 8120 /D198; IFDEF UNBUND < 8121 / This routine does a skip return if the math feature is activated and 8122 / a regular return if not 8123 HAVMTH, XX undefined ^ 027553* 0000 8124 CDFMNU / SET TO MENU DATA FIELD undefined ^ 027554* 0000 8125 TAD I (MUBUF+MNOPTC) / GET ACTIVE FEATURES CONTROL WORD undefined ^ undefined ^ undefined ^ undefined ^ 027555* 1775 8126 027556* 0000 CDFMYF / RETURN TO DATA THIS FIELD 8127 AND (MABIT) / GET ACTIVATED MATH FEATURES CONTROL WORD undefined ^ undefined ^ 027557* 0375 8128 027560* 7640 SZA CLA / IF THE MATH FEATURE IS ACTIVATED 8129 027561* 2353 ISZ HAVMTH / THEN BUMP THE RETURN ADDRESS 8130 027562* 5753 JMP I HAVMTH / RETURN TO CALLER 8131 /D198; > / END IFDEF UNBUND 8132 X=. / INDICATE FIRST FREE LOCATION ON PAGE 8133 /--------------- 8134 027575* 0000 PAGE 027576* 4023 027577* 0142 8135 8136 DSKBLK=.-6400%400+DL3EDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 8137 8138 8139 8140 / THIS ROUTINE WILL EITHER SET OR CLEAR 132 COLUMN MODE 8141 / MUST BE CALLED WITH "l-"h IN AC TO CLEAR OR 0 IN AC TO SET 8142 / DATA AND INSTRUCTION FIELD MUST BE SET TO LP FIELD (CDILP) AND IT 8143 / ALWAYS RETURNS WITH DATA FIELD IN EDITOR FIELD 8144 / CAN ONLY BE CALLED FOR EDITOR FIELD 8145 8146 LP132, XX undefined ^ 027600* 0000 8147 027601* 1377 TAD ("H+40) / SET UP TO EITHER SET OR CLEAR 8148 027602* 3225 DCA SETCLR / 132 COLUMN MODE 8149 IFNDEF ITALIAN < 8150 027603* 1225 TAD SETCLR / See if same as last time. 8151 027604* 7041 CIA / ... 8152 027605* 1234 TAD SETSAV / .... 8153 027606* 7650 SNA CLA / skip if not the same. we must do it. 8154 027607* 5217 JMP LPXIT / same, so exit. 8155 > 8156 027610* 1225 TAD SETCLR / Get new value. 8157 027611* 3234 DCA SETSAV / save it for next check. 8158 CIFMNU undefined ^ 027612* 0000 8159 JMS I IOACAL / CALL I/O ROUTINE undefined ^ undefined ^ 027613* 4400 8160 027614* 0000 0 / USE DEFAULT OUTPUT ROUTINE 8161 027615* 6552 MSG132 / ADDRESS OF TEXT STRING TO OUTPUT 8162 027616* 7621 S132MS / ADDRESS OF STRING ARGUMENT 8163 8164 LPXIT, CDIEDT / SET BACK TO EDITOR FIELD undefined ^ 027617* 0000 8165 027620* 5600 JMP I LP132 / RETURN 8166 8167 /MSG132, TEXT "^A" / !A MEANS USE FOLLOWING ARGUMENT AS ADDRESS 8168 / OF ASCII STRING TO OUTPUT 8169 S132MS, ESC / esc undefined ^ 027621* 0000 8170 027622* 0333 "[ / [ 8171 027623* 0277 "? / ? 8172 027624* 0263 "3 / 3 8173 027625* 0000 SETCLR, 0 / h TO SET OR l TO CLEAR 8174 ESC / ESC undefined ^ 027626* 0000 8175 027627* 0333 "[ / [ 8176 027630* 0277 "? / ? 8177 027631* 0261 "1 / 1 8178 027632* 0350 "H+40 / h 8179 027633* 0000 0 / END OF ESCAPE SEQUENCE 8180 8181 027634* 0354 SETSAV, "L+40 / we start out in 80 col mode. 8182 8183 / PUTLP Routine moved this edit to gather space here /a247 8184 8185 / ROUTINE TO OUTPUT A MESSAGE TO THE SCREEN, ADDRESS OF MESSAGE IS 8186 / IN AC ON ENTRY 8187 /d247 PUTLP, XX 8188 /d247 DCA PTLP1 / SET UP ADDRESS 8189 /d247 CIFMNU 8190 /d247 JMS I IOACAL / CALL I/O ROUTINE 8191 /d247 0 / USE DEFAULT OUTPUT ROUTINE 8192 /d247 PTLP1, XX / ADDRESS OF TEXT STRING TO OUTPUT 8193 /d247 CDIEDT / SET BACK TO EDITOR FIELD 8194 /d247 JMP I PUTLP / RETURN 8195 8196 / USE IOA !& CALL TO CAPITILIAZE WORDS 8197 STXMSG, 8198 IFDEF ENGLSH < TEXT " !&TOP " > 8199 IFDEF V30NOR < TEXT " !&TOPP " > 8200 IFDEF V30SWE < TEXT " !&B\VRJAN " > 8201 IFDEF SPANISH < TEXT "&SUPERIOR" > /A255 8202 IFDEF ITALIAN < TEXT "!&INIZIO" > 8203 IFDEF FRENCH < TEXT " &HAUT " > 8204 IFDEF GERMAN < TEXT " &ANFANG " > 8205 IFDEF DUTCH < TEXT " &BEGIN " > 8206 IFDEF CANADA < TEXT " &HAUT " > 8207 IFDEF NORWAY < TEXT " &TOPP " > 8208 IFDEF SWEDSH < TEXT " &TOPP " > 8209 IFDEF DANISH < TEXT " &TOP " > 8210 8211 PGMSG1, 8212 IFDEF ENGLSH < TEXT " !&NEW !&PAGE " > 8213 IFDEF V30NOR < TEXT " !&NY !&SIDE " > 8214 IFDEF V30SWE < TEXT " !&NY !&SIDA " > 8215 IFDEF SPANISH < TEXT "&P\AGINA &NUEVA" > /A255 8216 IFDEF ITALIAN < TEXT "!&NUOVA !&PAGINA" > 8217 IFDEF CANADA < TEXT " &NOUV. &PAGE " > 8218 IFDEF FRENCH < TEXT " &NOUV. &PAGE " > 8219 IFDEF GERMAN < TEXT " &NEUE &SEITE " > 8220 IFDEF DUTCH < TEXT " &NIEUWE &PAGINA " > 8221 IFDEF NORWAY < TEXT " &NY &SIDE " > 8222 IFDEF SWEDSH < TEXT " &NY &SIDA " > 8223 IFDEF DANISH < TEXT " &NY &SIDE " > 8224 8225 PGMSG2, 8226 IFDEF ENGLSH < TEXT " !&PAGE !&MARKER " > 8227 IFDEF V30NOR < TEXT " !&SIDEMERKE " > 8228 IFDEF V30SWE < TEXT " !&SIDMARKERING " > 8229 IFDEF SPANISH < TEXT "&MARCADOR DE &P\AGIN" > /A255 8230 IFDEF ITALIAN < TEXT "!&INDICATORE !&PAGINA" > 8231 IFDEF CANADA < TEXT " &CHANG. &PAGE "> 8232 IFDEF FRENCH < TEXT " &CHGT &PAGE " > 8233 IFDEF GERMAN < TEXT " &SEITEN &MARKE " > 8234 IFDEF DUTCH < TEXT " &PAGINA-&MARKERING "> 8235 IFDEF NORWAY < TEXT " &SIDEMARKERING " > 8236 IFDEF SWEDSH < TEXT " &SIDMARKERING " > 8237 IFDEF DANISH < TEXT " &SIDEMARKERING " > 8238 8239 PGMSG3, 8240 IFDEF ENGLSH < TEXT " !&START !&CONTROL " > 8241 IFDEF V30NOR < TEXT " !&KONTROLL !&BEGYNN " > 8242 IFDEF V30SWE < TEXT " &START KONTROLL" > 8243 IFDEF SPANISH < TEXT "&INICIO &CONTROL" > /A255 8244 IFDEF ITALIAN < TEXT "!&INIZIO !&CONTROLLO" > 8245 IFDEF CANADA < TEXT " &CMDE &DEBUT &IMPRESSION " > 8246 IFDEF FRENCH < TEXT " &CDE &DEBUT &IMPRESSION " > 8247 IFDEF GERMAN < TEXT " &START &DRUCKAUSGABE " > 8248 IFDEF DUTCH < TEXT " !&BEGIN !&OPDRACHT " > 8249 IFDEF NORWAY < TEXT " &START &UTSKRIFTSKONTROLL " > 8250 IFDEF SWEDSH < TEXT " &START &UTSKRIFTSKONTROLL " > 8251 IFDEF DANISH < TEXT " &START &UDSKRIFTSKONTROL " > 8252 8253 PGMSG4, 8254 IFDEF ENGLSH < TEXT " !&END !&CONTROL " > 8255 IFDEF V30NOR < TEXT " !&KONTROLL !&SLUTT " > 8256 IFDEF V30SWE < TEXT " &SLUTT KONTROLL " > 8257 IFDEF SPANISH < TEXT "&FIN &CONTROL" > /A255 8258 IFDEF ITALIAN < TEXT "!&FINE !&CONTROLLO" > 8259 IFDEF CANADA < TEXT " &CMDE &FIN &IMPRESSION " > 8260 IFDEF FRENCH < TEXT " &CDE &FIN &IMPRESSION " > 8261 IFDEF GERMAN < TEXT " &ENDE &DRUCKAUSGABE " > 8262 IFDEF DUTCH < TEXT " !&EINDE !&OPDRACHT " > 8263 IFDEF NORWAY < TEXT " &SLUTT &UTSKRIFTSKONTROLL " > 8264 IFDEF SWEDSH < TEXT " &SLUT &UTSKRIFTSKONTROLL " > 8265 IFDEF DANISH < TEXT " &SLUT &UDSKRIFTSKONTROL " > 8266 8267 MSGF, 8268 IFDEF ENGLSH < TEXT "--!&DOCUMENT !&FILING !&BEING !&COMPLETED--" > 8269 IFDEF V30NOR < TEXT "--!&DOKUMENT !&ARKIVERES--" > 8270 IFDEF V30SWE < TEXT "--&AVSLUTA--" > 8271 IFDEF SPANISH < 8272 TEXT "--&SE &HA &COMPLETADO &EL &ARCHIVO &DEL &DOC.--" > /A255 8273 IFDEF ITALIAN < TEXT "--!&ARCHIVIAZIONE !&DOCUMENTO !&IN !&CORSO--" > 8274 IFDEF CANADA < TEXT "--&CLASSEMENT &DU &DOCUMENT &EN &COURS--" > 8275 IFDEF FRENCH < TEXT "--&CLASSEMENT &DU &DOCUMENT--" > 8276 IFDEF DUTCH < TEXT "--!&DOCUMENT !&WORDT !&OPGESLAGEN--" > 8277 IFDEF GERMAN < TEXT "--&DATEI &WIRD &ARCHIVIERT--" > 8278 IFDEF NORWAY < TEXT "-- &DOKUMENTET &LAGRES --" > 8279 IFDEF SWEDSH < TEXT "-- &DOKUMENTET &LAGRAS --" > 8280 IFDEF DANISH < TEXT "-- &DOKUMENT &LAGRES --" > 8281 8282 8283 /**************************************************************************** 8284 / SVNTO8 SeVeN TO eight bit routine. Takes characters from the /a247 8285 / edit buffer using READNEXTCHARACTER and checks for dead /a247 8286 / key sequences representing multinational characters. /a247 8287 / These it converts to eight bits. /a247 8288 /**************************************************************************** 8289 8290 SVNTO8, XX / Start of SeVeN TO eight bit convertion/a247 undefined ^ 027635* 0000 8291 027636* 4776 JMS READNEXTCHAR / Read the next character from the buf /a247 8292 027637* 5267 JMP EREXIT / If ETX found, exit /a247 8293 027640* 1775 TAD DEADKEY / Check for dead key sequence introducer/a247 8294 027641* 7650 SNA CLA / Is this a dead key we are reading? /a247 8295 027642* 5265 JMP NOT8 / No, just do non-error skip return /a247 8296 027643* 4776 JMS READNEXTCHAR / Read the next character from the buf /a247 8297 027644* 5267 JMP EREXIT / If ETX found, exit /a247 8298 TAD CRLMB / Get the char without mode bits /a247 undefined ^ undefined ^ 027645* 1000 8299 TAD (-ECSPC) / Test for multinational identifier /a247 undefined ^ undefined ^ 027646* 1374 8300 027647* 7640 SZA CLA / Is this a space? /a247 8301 027650* 5260 JMP NO8NXC / No, therefore skip user dead key /a247 8302 027651* 4776 JMS READNEXTCHAR / Read the next character from the buf /a247 8303 027652* 5267 JMP EREXIT / If ETX found, exit /a247 8304 027653* 4776 JMS READNEXTCHAR / Read the next character from the buf /a247 8305 027654* 5267 JMP EREXIT / If ETX found, exit /a247 8306 TAD CRLMB / Get the seven bit representation /a247 undefined ^ undefined ^ 027655* 1000 8307 027656* 1373 TAD (200) / Add the eigth bit /a247 8308 DCA CRLMB / Restore the character /a247 undefined ^ undefined ^ 027657* 3000 8309 027660* 4772 NO8NXC, JMS ADUNIT / Advance a character without reseting /a247 8310 / CRLMB /a247 8311 027661* 5267 JMP EREXIT / If ETX, exit /a247 8312 TAD (-ECNDOV) / Check for the end of the dead key /a247 undefined ^ undefined ^ 027662* 1374 8313 027663* 7640 SZA CLA / Is the current character an End Dead? /a247 8314 027664* 5260 JMP NO8NXC / No, get the next character /a247 8315 027665* 3775 NOT8, DCA DEADKEY / Zero the dead key flag /a247 8316 027666* 2235 ISZ SVNTO8 / Skip return if ETX not encountered /a247 8317 027667* 5635 EREXIT, JMP I SVNTO8 / Return /a247 8318 8319 X=. / INDICATE FIRST FREE LOCATION ON PAGE 8320 /--------------- 8321 027772* 4065 PAGE 027773* 0200 027774* 0000 027775* 4112 027776* 1073 027777* 0350 8322 8323 RELOC 8324 RELOC 200 / CODE EXECUTED AT LOCATION 200 IN FIELD 5 8325 8326 DSKBLK=.-200%400+DL4EDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 8327 8328 8329 / This space is reserved for editor math or any other editor code 8330 / that is GUARENTEED NOT TO BE USED WHILE IN LIST PROCESSING 8331 / It is loaded into field five (CDFLP) by the editor overlay which 8332 / initializes for a normal edit session (as opposed to using the 8333 / editor for list processing. 8334 / There are 12 pages of code available here. It is limited only by 8335 / the location of the BCDASC routine which currently resides at 5400 8336 / therefor this space can be expanded. To change the amount of of code 8337 / assembled here (hence the number of blocks allocated on the system 8338 / diskette to hold the code) it is only necessary to change the value 8339 / of DS4EDT in WPDL.PA. This constant is equal to the number of 8340 / blocks of code (2 pages per block) 8341 8342 / THE FOLLOWING TABLES ARE USED IN CONJUNCTION WITH THE ":Dnn" and ":Tnn" 8343 / SYMBOLS WHICH CAN BE ENTERED INTO THE SYMBOL TABLE WHILE IN EDITOR MATH 8344 / THERE IS A ":Dnn" TABLE - "DCHAR", AND A ":Tnn" TABLE - "TCHAR" 8345 / THE ENTRY OF THESE SYMBOL NAMES IN THE SYMBOL TABLE IS JOINED BY A 8346 / COINCIDENTAL ENTRY OF THE POINTER TO THAT SYMBOL NAME VALUE ( IN THE 8347 / SYMBOL TABLE) BEING PUT IN THE APPROPRIATE TABLE HERE. 8348 / BOTH DCHAR AND TCHAR AS WELL AS THEIR LENGTHS ARE DEFINED IN WPF1! 8349 8350 DCHAR, ZBLOCK DCHARL undefined ^ 8351 TCHAR, ZBLOCK TCHARL undefined ^ 8352 8353 / CALLED FROM "CKCTRL" RTN CHECKS IF MATH CTRL BLOCK ERR PASSED BACK FROM 8354 / MATH MODULE WAS ENCOUNTERED WHILE IN EDITOR MATH WORK AREA. IF IT WAS 8355 / NOT THEN THE LINE IS IGNORED, IF IT WAS THEN THE ERROR IS REPORTED AS 8356 / AS AN EDITOR MATH ERROR 8357 8358 020200* 7421 EDERR1, MQL / HOLD ERROR NUMBER 8359 CDFMTH / CHANGE TO MATH DATA FIELD undefined ^ 020201* 0000 8360 TAD I (MTHWRK) / GET "EDITOR MATH WORK AREA" FLAG undefined ^ undefined ^ 020202* 1777 8361 CDFLP / RETURN TO LP DATA FIELD undefined ^ 020203* 0000 8362 020204* 7640 SZA CLA / ARE WE IN AN EDITOR MATH WORK AREA? 8363 020205* 5776 JMP BKDTX1 / NO: IGNORE LINE, REINIT & RETURN TO EDIT 8364 020206* 4775 JMS SCRINI / YES: RE-INIT TO SHUT EDITOR MATH DOWN BECAUSE 8365 / AN ERROR WAS ENCOUNTERED IN A MATH CTRL BLOCK 8366 020207* 7501 MQA / RESTORE ERROR NUMBER TO AC 8367 020210* 4774 JMS RESCURPTR / RESTORE CURPTR 8368 020211* 5773 JMP EDERR / GO TO ERROR CODE TO REPORT ERROR 8369 8370 8371 / CODE TO RUN CHECK ON PRESENT EDIT MATH CONTROL BLOCK STATUS, CALLED 8372 / AS PART OF IN-LINE CODE FROM "CKCTRL" 8373 8374 020212* 1772 CKCTR6, TAD INCTLB / GET "IN CTRL BLOCK" FLAG 8375 020213* 7640 SZA CLA / ARE WE ALREADY IN A BLOCK? 8376 020214* 5771 JMP CKCTR2 / NO: SEE IF JUST STARTING BLOCK 8377 020215* 1770 TAD MTHCTL / YES: GET "IN MATH CTRL BLOCK" FLAG 8378 020216* 7640 SZA CLA / ARE WE IN A MATH CTRL BLOCK? 8379 020217* 5767 JMP SCRLLN / YES: THEN GO PROCESS LINE 8380 CDFMTH / NO: THEN CHANGE TO MATH DATA FIELD undefined ^ 020220* 0000 8381 TAD I (MTHWRK) / GET "EDIT MATH WORK AREA" FLAG undefined ^ undefined ^ 020221* 1777 8382 CDFLP / RETURN TO LP DATA FIELD undefined ^ 020222* 0000 8383 020223* 7650 SNA CLA / ARE WE IN EDITOR MATH WORK AREA? 8384 020224* 5233 JMP CKCTRZ / YES: GO SEE IF STILL IN BLOCK 8385 CDFMTH / NO: THEN CHANGE TO MATH DATA FIELD undefined ^ 020225* 0000 8386 TAD I (MTHSND) / GET EDITOR MATH "SECOND LINE" FLAG undefined ^ undefined ^ 020226* 1777 8387 CDFLP / RETURN TO LP DATA FIELD undefined ^ 020227* 0000 8388 020230* 7640 SZA CLA / IS THE SECOND LINE NEXT TO BE PROCESSED? 8389 020231* 5233 JMP CKCTRZ / NO: GO SEE IF STILL IN BLOCK 8390 020232* 5767 JMP SCRLLN / YES: GO PROCESS LINE 8391 8392 020233* 4766 CKCTRZ, JMS READNEXTCHARACTER / GET 1ST CHAR ON THE LINE 8393 020234* 7000 NOP / ETX RETURN, SHOULD NEVER HIT HERE 8394 TAD CRWMB / PUT CHAR WITH MODE BITS INTO AC undefined ^ undefined ^ 020235* 1000 8395 TAD (-ECPCT2) / ADD NEGATIVE OF "END CONTROL BLOCK" CHAR undefined ^ undefined ^ 020236* 1377 8396 020237* 7650 SNA CLA / REACHED THE END OF THE NON-MATH CONTROL BLOCK? 8397 020240* 5765 JMP BKEDT1 / YES: SET "INCTLB"=FALSE & RTRN TO EDITOR 8398 020241* 5764 JMP BKEDI3 / NO : IGNORE LINE CAUSE NOT EDIT MATH 8399 8400 X=. / INDICATE FIRST FREE LOCATION ON PAGE 8401 /--------------- 8402 020364* 7137 PAGE 020365* 7317 020366* 1073 020367* 7061 020370* 7200 020371* 7033 020372* 7000 020373* 3601 020374* 1154 020375* 4023 020376* 7322 020377* 0000 8403 8404 DSKBLK=.-200%400+DL4EDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 8405 8406 8407 / EXTRACTNUMBER ROUTINE ALONG WITH ALL ASSOCIATED SUBROUTIINES ARE 8408 / CLASSIFIED AS IN EDIT HISTORY!! 8409 / 8410 /++ 8411 / EXTRACTNUMBER EXTRACT_NUMBER 8412 / 8413 / FUNTIONAL DESCRIPTION: EXTRACTNUMBER 8414 / 8415 / EXTRACT_NUMBER ROUTINE PERFORMS THE EXTRACTION OF NUMBERS FROM A LINE 8416 / OF TEXT WITHIN A DOCUMENT FOR THE PURPOSE OF PERFORMING EDITOR MATH. 8417 / IT ALSO CALLS MATH EXECUTION AND MATH INSERT_DELETE ROUTINES AS NEEDED. 8418 / 8419 / CALLING SEQUENCE: JMP EXTRACTNUMBER 8420 / 8421 / INPUT PARAMETERS: AC = 0 8422 / 8423 / IMPLICIT INPUT: GLOBAL: MTHWRK, NWDT, MTHTOT, CURPTR, LNEPC, TABFLAGS, 8424 / TABPOSITION, CRLMB, CRWMB, DTABCOUNT, T1 8425 / LOCAL: SEIRF 8426 / 8427 / OUTPUT PARAMETERS: NONE 8428 / 8429 / IMPLICIT OUTPUT: GLOBAL: DTABCOUNT, LNEPC, CURPTR, T1, LTABPOSITION, 8430 / CRWMB 8431 / LOCAL: SEIRF, EXTRA4 8432 / 8433 / COMPLETION CODE: AC = 0 8434 / 8435 / SIDE EFFECTS: 1) IF INSDEL (INSERT_DELETE) ROUTINE IS NOT CALLED 8436 / CURPTR IS SET TO VALUE IT WAS ON ENTRY TO 8437 / EXTRACTNUMBER ROUTINE. 8438 / 8439 /-- 8440 8441 EXTRACTNUMBER, 8442 CDFMTH / ARE WE IN A MATH_WORK AREA? undefined ^ 020400* 0000 8443 TAD I (MTHWRK) undefined ^ undefined ^ 020401* 1777 8444 020402* 7640 SZA CLA / SKIP IF: SO 8445 020403* 5776 JMP BKEDI3 / RETURN TO EDITOR - DON'T DO MATH 8446 CDFEDT / DOES CURRENT RULER CONTAIN DECIMAL TABS? undefined ^ 020404* 0000 8447 020405* 1775 TAD I (CURUL+NWDT-NWRUL) 8448 020406* 7650 SNA CLA / SKIP IF: SO 8449 020407* 5774 JMP BKEDI4 / RETURN TO EDITOR - DON'T DO MATH 8450 8451 / CHECK FOR PROPER LINE TERMINATION BEFORE DOING MATH. IF LINE IS NOT 8452 / TERMINATED BY HARD RETURN OR CHARACTERS EXCEED RIGHT MARGIN THEN DO 8453 / NOT PERFORM MATH ON THIS LINE!! 8454 8455 020410* 1773 TAD I (CURUL+NWRMAR-NWRUL) / SET LNEPC = -(RIGHT_MARGIN + 1) 8456 020411* 0000 CDFMYF 8457 020412* 7040 EXTR15, CMA / ALSO USED SET LNEPC = -1 FROM BELOW 8458 DCA LNEPC / SAVE IT undefined ^ undefined ^ 020413* 3000 8459 020414* 4772 EXTRA6, JMS READNEXTCHAR / READ A CHARACTER 8460 020415* 5774 JMP BKEDI4 / ETX RETURN - SHOULD NEVER READ 8461 TAD CRLMB / GET CHARACTER READ undefined ^ undefined ^ 020416* 1000 8462 TAD (-ECNWLN) / CHAR. = LINE_ENDING CHARACTER? undefined ^ undefined ^ 020417* 1377 8463 020420* 7650 SNA CLA / SKIP IF: NOT 8464 020421* 5231 JMP EXTR14 / CHECK FOR SPECIAL LINE_END CHAR. 8465 ISZ LNEPC / BUMP -RIGHT_MARGIN COUNT undefined ^ undefined ^ 020422* 2000 8466 020423* 5214 JMP EXTRA6 / HAVE NOT EXCEEDED RIGHT MARGIN! 8467 TAD CRLMB / CHECK FOR SPACES BEYOND RIGHT MAR. undefined ^ undefined ^ 020424* 1000 8468 TAD (-ECSPC) undefined ^ undefined ^ 020425* 1377 8469 020426* 7650 SNA CLA / SKIP IF: NOT A SPACE 8470 020427* 5212 JMP EXTR15 / RESET LNEPC = -1 AND CONTINUE 8471 020430* 5774 JMP BKEDI4 / RIGHT_MARGIN LIMIT EXCEEDED!! 8472 / RETURN TO EDITOR. 8473 EXTR14, TAD CRWMB / CHAR. = SPECIAL_LINE_ENDING? undefined ^ undefined ^ 020431* 1000 8474 / (I.E.:WRAPPED_LINE,PARA._MARK...ETC.) 8475 020432* 0371 AND (3000) 8476 020433* 7640 SZA CLA / SKIP IF: NOT - LINE OK TO PROCESS! 8477 020434* 5774 JMP BKEDI4 / SKIP LINE: RTRN TO EDIT. RESTORE 8478 / "TOTAL" FLAG & CURPTR ON THE WAY 8479 020435* 4770 JMS RESCURPTR / RESTORE OLD CURPTR 8480 AC7777 / RESET CURPTR TO PROCESS MATH LINE undefined ^ 020436* 0000 8481 020437* 4767 JMS STCURPTR 8482 8483 8484 020440* 3340 DCA DTABCOUNT / INITIALIZE DECIMAL_TAB_COUNT 8485 8486 CDFMTH / CHECK IF IN MATH TOTAL AREA undefined ^ 020441* 0000 8487 TAD I (MTHTOT) undefined ^ undefined ^ 020442* 1777 8488 020443* 0000 CDFMYF 8489 020444* 7640 SZA CLA / SKIP IF: NOT 8490 020445* 5331 JMP EXTRA7 8491 8492 020446* 4766 JMS IDCST / INITIALIZE_DECIMAL_CHARACTER_SYMBOL_TABLE 8493 8494 8495 AC0001 / INITIALIZE SKIP_EXECUTION_AND_ undefined ^ 020447* 0000 8496 / INSERTION_ROUTINE_FLAG = TRUE 8497 020450* 3337 DCA SEIRF 8498 DCA LTABPOSITION / INITIALIZE LAST_TAB_POSITION undefined ^ undefined ^ 020451* 3000 8499 AC7777 / INIT. LINE_POSITION_COUNTER = LEFT_- undefined ^ 020452* 0000 8500 / MARGIN - 1 8501 DCA LNEPC undefined ^ undefined ^ 020453* 3000 8502 8503 EXTRA1, DCA CRWMB / INITIALIZE CHARACTER_READ_WITH_MODE_BITS undefined ^ undefined ^ 020454* 3000 8504 8505 020455* 4765 EXTRA2, JMS READTABORLINEEND/ READ_TAB_OR_LINE_END 8506 020456* 5321 JMP EXTRA9 / END_OF_LINE , ETX 8507 8508 TAD TABFLAGS / IS TAB TYPE = DECIMAL ALIGN TAB? undefined ^ undefined ^ 020457* 1000 8509 020460* 7650 SNA CLA / SKIP IF: SO 8510 020461* 5306 JMP EXTRA3 8511 8512 8513 020462* 1340 TAD DTABCOUNT / ADD DECIMAL_TAB_COUNT + DCHAR 8514 020463* 1364 TAD (DCHAR) / CHECK TO SEE IF THERES A MATCH IN 8515 DCA T1 / DCHAR TABLE FOR THIS POSITION OF THE undefined ^ undefined ^ 020464* 3000 8516 TAD I T1 / DECIMAL TAB. IF THERE IS IT MEANS undefined ^ undefined ^ 020465* 1400 8517 / FIELD NEEDED FOR MATH COMPUTATIONS. 8518 020466* 7450 SNA / SKIP IF: FIELD NEEDED FOR MATH COMPUTATIONS 8519 020467* 5254 JMP EXTRA1 / NO MATCH - CLEAR CRWMB BEFORE READ NEXT CHAR. 8520 020470* 3276 DCA EXTRA4 / SAVE POINTER INTO SYMBOL TABLE 8521 8522 020471* 4763 JMS GETDTF / JMS GET_DECIMAL_TAB_FIELD 8523 020472* 5255 JMP EXTRA2 / UNDEFINED FIELD RETURN 8524 8525 / CONVERT ASCII STRING TO BCD NUMBER 8526 EXTRA5, CIFMTH undefined ^ 020473* 0000 8527 JMS ASCBCD / CALL ASCBCD ROUTINE undefined ^ undefined ^ 020474* 4000 8528 020475* 0000 ENASBF / ADDRESS OF ASCII STRING TO BE CONVERTED 8529 020476* 0000 EXTRA4, .-. / ADDRESS IN SYMBOL TABLE WHERE BCD 8530 / NUMBER WILL BE PLACED 8531 020477* 7410 SKP / ASCBCD ERROR RETURN (AC = ERROR NUMBER) 8532 020500* 5304 JMP EXTR11 / NO ERROR - KEEP ON TRUCKIN!! 8533 8534 / CHECK IF ERROR CAUSED BY "*UN.DEF*" OR "*OVR.FLO*" STRING BEING SUBMITTED 8535 / TO ASCBCD ROUTINE. IF SO THEN SET SKIP_EXECUTION_AND_INSERTION_ROUTINE_FLAG 8536 / = FALSE AND LABEL FIELD AS UNDEFINED IN SYMBOL TABLE (EXTR13). 8537 8538 020501* 7300 CLA CLL 8539 020502* 4762 JMS CSNF / SEE IF FIELD THAT CAUSED ERROR WAS EITHER 8540 / "*UN.DEF*" OR "*OVR.FLO*" STRING 8541 020503* 5761 JMP EXERR1 / ERROR NOT CAUSED BY EITHER "*UN.DEF*" 8542 / OR "*OVR.FLO*" STRING SO REPORT IT! 8543 020504* 3337 EXTR11, DCA SEIRF / SET SKIP_EXECUTION_AND_INSERTION_ 8544 / ROUTINE_FLAG = FALSE 8545 020505* 5255 JMP EXTRA2 / GET NEXT DECIMAL FIELD 8546 8547 / POSITION CURPTR TO CHARACTER - 1 POSITION OF RULER TAB SETTING 8548 EXTRA3, TAD TABPOSITION undefined ^ undefined ^ 020506* 1000 8549 020507* 7041 CIA 8550 TAD LNEPC undefined ^ undefined ^ 020510* 1000 8551 DCA TCCNTR / SAVE RESULT IN TEMPORARY_CHARACTER_COUNTER undefined ^ undefined ^ 020511* 3000 8552 EXTR10, ISZ TCCNTR / INCREMENT COUNTER undefined ^ undefined ^ 020512* 2000 8553 020513* 7410 SKP / COUNT NOT YET EXHAUSTED - KEEP GOING 8554 020514* 5254 JMP EXTRA1 / CURPTR NOW REPOSITIONED 8555 ISZ LNEPC / INCREMENT LINE POSITION COUNTER undefined ^ undefined ^ 020515* 2000 8556 020516* 4772 JMS READNEXTCHARACTER 8557 020517* 7000 NOP / ETX RETURN - SHOULD NEVER SEE ETX!! 8558 020520* 5312 JMP EXTR10 8559 8560 020521* 1337 EXTRA9, TAD SEIRF / CHECK SKIP_EXECUTION_AND_INSERTION_- 8561 / ROUTINE_FLAG 8562 020522* 7640 SZA CLA / SKIP IF: FALSE 8563 020523* 5776 JMP BKEDI3 / BACK TO EDITOR, RESTORE CURPTR ON WAY 8564 8565 EXTRA8, CIFMTH undefined ^ 020524* 0000 8566 JMS EXECUTION / DO MATH EXECUTION ROUTINE undefined ^ undefined ^ 020525* 4000 8567 020526* 7440 SZA / WAS AN ERROR RETURNED FROM THE EXECUTION CODE? 8568 020527* 5760 JMP EDERR / YES: GO PASS ERROR # TO ERROR REPORTING RTN 8569 020530* 1377 TAD (DCHAR-TCHAR) / NO: SET AC = DCHAR FOR CALL TO INSERTION 8570 8571 020531* 1364 EXTRA7, TAD (TCHAR) / SET AC = TCHAR FOR CALL TO INSERTION 8572 020532* 4757 JMS INSDEL / DO MATH INSERTION_DELETION ROUTINE 8573 020533* 7300 EXTR13, CLA CLL 8574 CDFMTH undefined ^ 020534* 0000 8575 DCA I (MTHTOT) / CLEAR MTHTOT FLAG undefined ^ undefined ^ 020535* 3777 8576 / DIDN'T BOTHER TO ADJUST FIELD HERE 8577 / SINCE BKEDIT DOES FIELD ADJUSTMENTS 8578 020536* 5756 JMP BKEDIT 8579 8580 8581 020537* 0000 SEIRF, .-. / SKIP_EXECUTION_AND_INSERTION_ROUTINE_FLAG 8582 / 0 = DON'T SKIP 8583 / 1 = SKIP 8584 020540* 0000 DTABCOUNT, .-. / COUNT OF DECIMAL_TABS 8585 8586 X=. / INDICATE FIRST FREE LOCATION ON PAGE 8587 /--------------- 8588 020556* 7140 PAGE 020557* 1200 020560* 3601 020561* 6757 020562* 1000 020563* 0620 020564* 0200 020565* 1110 020566* 0600 020567* 1142 020570* 1154 020571* 3000 020572* 1073 020573* 6526 020574* 2351 020575* 6533 020576* 7137 020577* 0000 8589 8590 DSKBLK=.-200%400+DL4EDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 8591 8592 8593 8594 /++ 8595 / INITIALIZE_DCHAR_SYMBOL_TABLE 8596 / 8597 / FUNTIONAL DESCRIPTION: IDCST 8598 / 8599 / USING THE DCHAR TABLE ENTRYS AS POINTERS INTO THE MATH SYMBOL TABLE 8600 / INITIALIZE EACH SYMBOL TABLE FIELD TO UNDEFINED. 8601 / 8602 / CALLING SEQUENCE: JMS IDCST 8603 / 8604 / INPUT PARAMETERS: AC = 0 8605 / 8606 / IMPLICIT INPUT: T3, X5 8607 / 8608 / OUTPUT PARAMETERS: AC = 0 8609 / 8610 / IMPLICIT OUTPUT: X5, T3, T2 8611 / 8612 / COMPLETION CODE: NONE 8613 / SIDE EFFECTS: NONE 8614 / 8615 /-- 8616 / 8617 IDCST, XX / INITIALIZE_DECIMAL_CHARACTER_SYMBOL_TABLE undefined ^ 020600* 0000 8618 020601* 1377 TAD (DCHAR-1) / GET STARTING ADDRESS OF DCHAR TABLE - 1 8619 DCA X5 / STORE IT undefined ^ undefined ^ 020602* 3000 8620 TAD (-DCHARL) / SET COUNTER = -DCHARL - 1 /C236 undefined ^ undefined ^ 020603* 1376 8621 /D236 CMA 8622 DCA T3 / SAVE RESULT FOR COUNTER undefined ^ undefined ^ 020604* 3000 8623 8624 IDCST1, TAD I X5 / GET NEXT DCHAR TABLE ENTRY /C236 undefined ^ undefined ^ 020605* 1400 8625 020606* 7450 SNA / SKIP IF: CONTAINS POINTER INTO SYM. TABLE 8626 020607* 5215 JMP IDCST2 / NO POINTER - GO TO NEXT ENTRY /C236 8627 DCA T2 / SAVE POINTER INTO SYM. TABLE undefined ^ undefined ^ 020610* 3000 8628 8629 AC2000 / SET UNDEF FLAG IN FIRST LOCATION undefined ^ 020611* 0000 8630 CDFMTH undefined ^ 020612* 0000 8631 DCA I T2 undefined ^ undefined ^ 020613* 3400 8632 020614* 0000 CDFMYF / DONE 8633 /D236 JMP IDCST1 8634 8635 IDCST2, ISZ T3 / PAST END OF DCHAR TABLE? undefined ^ undefined ^ 020615* 2000 8636 /D236 SKP / NO 8637 020616* 5205 JMP IDCST1 / NO - INIT. FOR NEXT DCHAR TABLE ENTRY 8638 020617* 5600 JMP I IDCST / YES - INIT COMPLETE SO RETURN /C236 8639 8640 8641 /++ 8642 / GET_DECIMAL_TAB_FIELD 8643 / 8644 / FUNTIONAL DESCRIPTION: GETDTF 8645 / 8646 / REMOVE A FIELD OF TEXT THAT HAS BEEN TABBED TO A DECIMAL TAB 8647 / RULER SETTING WITHIN A DOCUMENT, CHECKING FOR PROPER ALIGNMENT TO 8648 / THE DECIMAL TAB RULER SETTING AS FIELD IS READ. 8649 / 8650 / CALLING SEQUENCE: JMS GETDTF 8651 / 8652 / INPUT PARAMETERS: AC = 0 8653 / 8654 / IMPLICIT INPUT: GLOBAL: TABPOSITION, LNEPC, TABFLAGS, CRLMB, SAVTP 8655 / LOCAL: GETD11, DFDONEF, FLDNE 8656 / 8657 / OUTPUT PARAMETERS: AC = 0 8658 / 8659 / IMPLICIT OUTPUT: GLOBAL: LNEPC, SAVTP 8660 / LOCAL: FLDNE, DFDONEF, GETDT1, GETD11, GETDTF 8661 / 8662 / COMPLETION CODE: 1) RETURN CALLER+1 IF EMPTY FIELD 8663 / RETURN CALLER+2 IF FIELD NOT EMPTY AND ALIGNED 8664 / TO THE DECIMAL TAB SETTING. 8665 / 8666 / SIDE EFFECTS: 1) IF AN ERROR CONDITION OCCURS THEN EXIT GETDTF 8667 / VIA ERROR HANDLER. 8668 / 8669 /-- 8670 / 8671 ENASBF= TOKVAL / EXTRACT_NUMBER_ASCII_STRING_BUFFER undefined ^ 8672 ENASBS= MAXTOK / EXTRACT_NUMBER_ASCII_STRING_BUFFER_SIZE undefined ^ 8673 8674 GETDTF, XX undefined ^ 020620* 0000 8675 020621* 3340 DCA FLDNE / INITIALIZE FIELD_NOT_EMPTY_FLAG = FALSE 8676 020622* 3341 DCA DFDONEF / INITIALIZE DECIMAL_FIELD_DONE_FLAG = FALSE 8677 020623* 1375 TAD (ENASBF-1) / INITIALIZE POINTER TO EXTRACT_NUMBER_ASCII_- 8678 / STRING_BUFFER 8679 020624* 3335 DCA GETDT1 8680 020625* 1376 TAD (ENASBS) / INITIALIZE COUNTER FOR OUTPUT BUFFER 8681 020626* 7041 CIA 8682 020627* 3336 DCA GETDT2 8683 TAD TABPOSITION / SET SAVED_TAB_POSITON = TAB_POSITION - 1 undefined ^ undefined ^ 020630* 1000 8684 020631* 3774 DCA SAVTP 8685 8686 GETDT3, ISZ LNEPC / INCREMENT LINE POSITION COUNTER undefined ^ undefined ^ 020632* 2000 8687 020633* 4773 JMS SVNTO8 / /m247 8688 020634* 5316 JMP GETDT9 / ETX RETURN 8689 8690 020635* 1774 TAD SAVTP / SET FLAG TO SHOW LINE_POINTER_COUNTER 8691 / RELATIVE POSITION TO SAVED_TAB_POSITION 8692 020636* 7041 CIA 8693 TAD LNEPC / IF RESULT < 0 - PRE_TAB undefined ^ undefined ^ 020637* 1000 8694 / = 0 - AT TAB 8695 / " " > 0 - POST_TAB 8696 020640* 3337 DCA GETD11 / SAVE RESULT IN TEMP. 8697 8698 020641* 1337 TAD GETD11 / LINE_POSITION_COUNTER => SAVED_TABPOSITION? 8699 020642* 7710 SPA CLA / SKIP IF: SO 8700 020643* 5253 JMP GETDT8 / LINE_POSITION_COUNTER < SAVED_TABPOSITION 8701 8702 AC7777 / CALL FINDTP TO SEARCH FOR TAB FROM undefined ^ 020644* 0000 8703 / CURRENT LINE POSITION - 1 8704 020645* 4772 JMS FINDTP / FIND_TAB_POSITION 8705 LNEPC undefined ^ 020646* 0000 8706 8707 AC4000 / IS LINE_POSITION AT DECIMAL TAB RULER undefined ^ 020647* 0000 8708 / SETTING? 8709 AND TABFLAGS undefined ^ undefined ^ 020650* 0000 8710 020651* 7640 SZA CLA / SKIP IF: NOT 8711 020652* 4771 JMS IDTABCOUNT / INCREMENT DECIMAL_TAB_COUNT 8712 8713 GETDT8, TAD CRLMB / GET CHARACTER_READ_LESS_MODE_BITS undefined ^ undefined ^ 020653* 1000 8714 020654* 1370 TAD (-41) / SPECIAL CHARACTER? 8715 020655* 7500 SMA / SKIP IF:SO 8716 020656* 5303 JMP GETDT4 8717 TAD (41-ECSTOV) / CHARACTER_READ_LESS_MODE_BITS = START_- undefined ^ undefined ^ 020657* 1367 8718 / DEAD_KEY SEQUENCE? 8719 020660* 7450 SNA / SKIP IF: NOT 8720 020661* 5303 JMP GETDT4 8721 TAD (ECSTOV-ECTAB) / CHARACTER_READ_LESS_MODE_BITS = TAB? undefined ^ undefined ^ undefined ^ undefined ^ 020662* 1376 8722 020663* 7440 SZA / SKIP IF: SO 8723 TAD (ECTAB-ECNWLN) / CHARACTER_READ_LESS_MODE_BITS = LINE_- undefined ^ undefined ^ undefined ^ undefined ^ 020664* 1376 8724 / ENDING CHARACTER? 8725 020665* 7450 SNA / SKIP IF: NOT 8726 020666* 5316 JMP GETDT9 / SET DECIMAL_FIELD_DONE_FLAG = TRUE 8727 GETDT7, TAD (ECNWLN-ECSPC) / CHARACTER_READ_LESS_MODE_BITS = SPACE? undefined ^ undefined ^ undefined ^ undefined ^ 020667* 1376 8728 020670* 7640 SZA CLA / SKIP IF: SO 8729 020671* 5232 JMP GETDT3 / IGNORE AND GET NEXT CHARACTER 8730 020672* 1337 TAD GETD11 / ARE WE POSITIONED AT TAB? 8731 020673* 7450 SNA / SKIP IF: NOT 8732 020674* 5766 JMP EXERR1 / *** ERROR *** SPACE AT TAB POSITION 8733 020675* 7700 SMA CLA / SKIP IF: POSITIONED PRE_TAB 8734 020676* 5316 JMP GETDT9 / MUST BE POSITIONED POST_TAB 8735 020677* 1340 TAD FLDNE / IS THIS A LEADING SPACE? 8736 020700* 7650 SNA CLA / SKIP IF: NOT 8737 020701* 5232 JMP GETDT3 / IGNORE IT 8738 020702* 5314 JMP GETDT6 8739 8740 /d247 GETD12, ISZ DFDONEF / SET DECIMAL_FIELD_DONE_FLAG = TRUE 8741 /d247 JMP GETDT6 8742 8743 020703* 1365 GETDT4, TAD (41-")+200) / IS CHARACTER = ")"? 8744 020704* 7440 SZA / SKIP IF: SO 8745 /D251 TAD (")-".) / IS CHARACTER = "."? 8746 020705* 1342 TAD RADCHR / IS CHARACTER = RADIX POINT /A251 8747 020706* 7650 SNA CLA / SKIP IF: NOT 8748 020707* 5313 JMP GETD13 / DON'T CHECK IF LEGAL CHAR. AT TAB_POSITION 8749 020710* 1337 TAD GETD11 / LINE_POSITION_COUNTER = SAVED_TAB POSITION? 8750 020711* 7650 SNA CLA / SKIP IF: NOT 8751 020712* 5766 JMP EXERR1 / *** ERROR *** ILLEGAL CHAR. AT DTP 8752 8753 020713* 2340 GETD13, ISZ FLDNE / SET FIELD_NOT_EMPTY_FLAG = TRUE 8754 GETDT6, 8755 /d247 CLA 8756 020714* 2336 ISZ GETDT2 / BUMP OUTPUT_BUFFER_COUNTER 8757 020715* 7410 SKP / ROOM IN OUTPUT_BUFFER FOR CHARACTER. 8758 020716* 2341 GETDT9, ISZ DFDONEF / SET DECIMAL_FIELD_DONE_FLAG = TRUE 8759 020717* 2335 ISZ GETDT1 / INCREMENT OUTPUT_BUFFER_POINTER 8760 020720* 1341 TAD DFDONEF / DECIMAL_FIELD_DONE_FLAG = TRUE ? 8761 020721* 7650 SNA CLA / SKIP IF: SO 8762 TAD CRLMB / PUT CHARACTER INTO OUTPUT_BUFFER undefined ^ undefined ^ 020722* 1000 8763 CDFMTH undefined ^ 020723* 0000 8764 020724* 3735 DCA I GETDT1 8765 020725* 0000 CDFMYF 8766 020726* 1341 TAD DFDONEF / DECIMAL_FIELD_DONE_FLAG = TRUE ? 8767 020727* 7650 SNA CLA / SKIP IF: SO 8768 020730* 5232 JMP GETDT3 / BACK FOR THE NEXT CHARACTER 8769 8770 020731* 1340 TAD FLDNE / CHECK FIELD_NOT_EMPTY_FLAG 8771 020732* 7640 SZA CLA / SKIP IF: TRUE 8772 020733* 2220 ISZ GETDTF / BUMP RETURN 8773 8774 020734* 5620 GETDT5, JMP I GETDTF / RETURN 8775 8776 020735* 0000 GETDT1, .-. / TEMP. - HOLDS POINTER INTO OUTPUT BUFFER 8777 020736* 0000 GETDT2, .-. / TEMP. - HOLDS COUNTER FOR OUTPUT BUFFER 8778 020737* 0000 GETD11, .-. / TEMP. - HOLDS RELATIVE LINE POSITION 8779 / INDICATOR 8780 020740* 0000 FLDNE, .-. / FIELD_NOT_EMPTY_FLAG 8781 / 0: FIELD EMPTY 8782 / 1: FIELD CONTAINS VALID CHARACTERS 8783 DFDONEF, / DECIMAL_FIELD_DONE_FLAG 8784 020741* 0000 .-. / 0: NOT FINISHED READING DECIMAL FIELD 8785 / 1: FINISHED READING DECIMAL FIELD 8786 RADCHR, /A251 8787 IFDEF PERDEC< /A251 8788 ")-". / RADIX = . /A251 8789 > /A251 8790 IFDEF COLDEC< /A251 8791 ")-": / RADIX = : /A251 8792 > /A251 8793 IFDEF COMDEC< /A251 8794 ")-", / RADIX = , /A251 8795 > /A251 8796 8797 / EXERR1 moved this edit to gather space in one place /a247 8798 8799 / EXTRACTNUMBER ERROR HANDLER 8800 /d247 EXERR1, TAD (EREXTR) / GET ERROR NUMBER 8801 /d247 JMS RESCURPTR / FIRST RESTORE CURPTR THEN.... 8802 /d247 JMS EDERR-1 / GO TO ERROR REPORTER. WON'T RETURN 8803 /d247 SAVTP, .-. / SAVED_TAB_POSITION - HOLDS TAB_POSITION 8804 /d247 / OF CURRENT DECIMAL TAB FIELD. USED 8805 /d247 / BY BOTH EDERR AND GETDTF ROUTINES. 8806 /d247 / MUST FOLLOW JMS TO EDERR-1 8807 8808 / CALFXS Moved here this edit to gather space in one place /a247 8809 8810 / CALLS EDITOR FXSCRL ROUTINE 8811 CALFXS, XX undefined ^ 020742* 0000 8812 020743* 7200 CLA / CLEAR AC 8813 CDFEDT / IF THE SCREEN LAG COUNT IS NEGATIVE undefined ^ 020744* 0000 8814 020745* 1764 TAD I (SCRLCT) / 8815 020746* 0000 CDFMYF / 8816 020747* 7650 SNA CLA / THEN CALL FXSCRL TO UPDATE SCREEN 8817 020750* 5742 JMP I CALFXS / 8818 CIFEDT / SET TO EDITORS INSTRUCTION FIELD undefined ^ 020751* 0000 8819 020752* 4763 JMS CALLAR / ALL PURPOSE ROUTINE TO CALL ANY 8820 / EDITOR ROUTINE 8821 020753* 3400 FXSCRL / ADDRESS OF ROUTINE IN EDITOR 8822 CDFBUF / DATA FIELD FOR ROUTINE TO USE undefined ^ 020754* 0000 8823 020755* 5742 JMP I CALFXS / RETURN TO CALLER 8824 8825 X=. / INDICATE FIRST FREE LOCATION ON PAGE 8826 /--------------- 8827 020763* 0251 PAGE 020764* 0137 020765* 7770 020766* 6757 020767* 0041 020770* 7737 020771* 4054 020772* 1037 020773* 7635 020774* 6762 020775* 7777 020776* 0000 020777* 0177 8828 8829 DSKBLK=.-200%400+DL4EDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 8830 8831 8832 8833 /++ 8834 / CHECK_SPECIAL_NUMBER_FIELD CSNF 8835 / 8836 / FUNTIONAL DESCRIPTION: CSNF 8837 / 8838 / CHECK IF ASCII STRING CONTAINED WITHIN ENASBF IS EITHER 8839 / "*OVR.FLO*" OR "*UN.DEF*". 8840 / 8841 / CALLING SEQUENCE: JMS CSNF 8842 / 8843 / INPUT PARAMETERS: AC = 0 8844 / 8845 / IMPLICIT INPUT: LOCAL: ASTPTR (X5), ASP (X4), ENASBP (T2) 8846 / 8847 / OUTPUT PARAMETERS: AC AND MQ = 0 8848 / 8849 / IMPLICIT OUTPUT: LOCAL: ASTPTR (X5), ASP (X4), ENASBP (T2), CSNF 8850 / 8851 / COMPLETION CODE: 1) RETURN CALLER+1 IF NO MATCH 8852 / RETURN CALLER+2 IF MATCH 8853 / 8854 / SIDE EFFECTS: 1) NOTE: ASTPTR=X5, ASP=X4, ENASBP=T2 8855 / 2) OFTEXT AND UDTEXT STRINGS RESIDE IN BCDASC 8856 / ROUTINE AND ARE DEFINED IN WPF1. 8857 /-- 8858 8859 ASTPTR= X5 undefined ^ 8860 ASP= X4 undefined ^ 8861 ENASBP= T2 undefined ^ 8862 8863 CSNF, XX undefined ^ 021000* 0000 8864 021001* 1377 TAD (AST-1) / SET ASCII_STRING_TABLE_POINTER = ASCII_- 8865 / STRING_TABLE - 1 8866 021002* 3000 DCA ASTPTR 8867 8868 021003* 1400 CSNF1, TAD I ASTPTR / INCREMENT ASCII_STRING_TABLE_POINTER AND 8869 / GET ASCII_STRING_TABLE ENTRY 8870 021004* 7450 SNA / SKIP IF: NOT END OF TABLE 8871 021005* 5233 JMP CSNF5 / NO MATCH. DO NONSKIP RETURN 8872 021006* 3000 DCA ASP / SET ASCII_STRING_POINTER = ASCII_STRING_- 8873 / TABLE ENTRY 8874 021007* 1376 TAD (ENASBF-1) / SET EXTRACT_NUMBER_ASCII_STRING_BUFFER_- 8875 / POINTER = EXTRACT_NUMBER_ASCII_BUFFER - 1 8876 021010* 3000 DCA ENASBP 8877 8878 021011* 2000 CSNF2, ISZ ENASBP / INC. EXTRACT_NUMBER_ASCII_STRING_BUFFER_POINTER 8879 021012* 1400 TAD I ASP / INC. ASCII_STRING_POINTER AND GET CHARACTER 8880 021013* 7440 SZA / SKIP IF: END OF STRING 8881 021014* 5224 JMP CSNF4 / GO CHECK FOR MATCH 8882 CDFMTH / CHECK IF END OF EXTRACT_NUMBER_ASCII_BUFFER undefined ^ 021015* 0000 8883 / STRING 8884 021016* 1400 TAD I ENASBP 8885 021017* 0000 CDFMYF 8886 021020* 7640 SZA CLA / SKIP IF: SO - ASCII STRINGS MATCHED!! 8887 021021* 5203 JMP CSNF1 / NO MATCH - TRY NEXT ASCII STRING 8888 021022* 2200 ISZ CSNF / INCREMENT RETURN POINTER FOR MATCH RETURN 8889 021023* 5233 JMP CSNF5 / DO RETURN 8890 8891 021024* 7041 CSNF4, CIA / DOES CHAR. FROM ASCII STRING MATCH CHAR. 8892 / FROM EXTRACT_NUMBER_ASCII_BUFFER? 8893 CDFMTH undefined ^ 021025* 0000 8894 021026* 1400 TAD I ENASBP 8895 021027* 0000 CDFMYF 8896 021030* 7650 SNA CLA / SKIP IF: NOT 8897 021031* 5211 JMP CSNF2 / MATCH - SEE IF NEXT CHAR. MATCHES 8898 021032* 5203 JMP CSNF1 / NO MATCH - GO TRY NEXT ASCII STRING 8899 8900 021033* 5600 CSNF5, JMP I CSNF / RETURN 8901 8902 AST, OFTEXT-1 / ADDRESS OF *OVR.FLO* TEXT - 1 undefined ^ 021034* 7777 8903 UDTEXT-1 / ADDRESS OF *UN.DEF* TEXT - 1 undefined ^ 021035* 7777 8904 021036* 0000 0 / AST TABLE TERMINATOR 8905 8906 8907 /++ 8908 / FIND_TAB_POSITION FINDTP 8909 / 8910 / FUNTIONAL DESCRIPTION: FINDTP 8911 / 8912 / USING THE LINE POSITION POINTED TO AT CALL+1 PLUS OFFSET IN AC, 8913 / FIND THE NEXT TAB SETTING IN THE RULER. STORE ITS CLASS THEN 8914 / SET FLAGS TO INDICATE IF IT WAS A DECIMAL ALIGN TAB AND IF LINE 8915 / POSITION SPECIFIED UPON CALL DIRECTLY CORRESPONDS TO TAB SETTING 8916 / POSITION IN RULER. 8917 / 8918 / CALLING SEQUENCE: CALL: JMS FINDTP 8919 / CALL+1: POINTER TO ADDRESS OF LINE POSITION 8920 / 8921 / INPUT PARAMETERS: AC = OFFSET TO BE ADDED TO LINE POSITION 8922 / 8923 / IMPLICIT INPUT: GLOBAL: TABPOSITION, TABFLAGS 8924 / LOCAL: FINDT2, T3 8925 / 8926 / OUTPUT PARAMETERS: AC = TAB CLASS 8927 / MQ = POSITION OF TAB IN RULER 8928 / 8929 / IMPLICIT OUTPUT: GLOBAL: TABPOSITION, TABFLAGS 8930 / LOCAL: FINDT2, T3 8931 / 8932 / COMPLETION CODE: NONE 8933 / SIDE EFFECTS: NONE 8934 / 8935 /-- 8936 8937 FINDTP, XX undefined ^ 021037* 0000 8938 DCA T1 / SAVE ENTRY OFFSET undefined ^ undefined ^ 021040* 3000 8939 021041* 1637 TAD I FINDTP / GET ADRESS OF POSITION COUNT 8940 DCA T2 / SAVE ADDRESS undefined ^ undefined ^ 021042* 3000 8941 TAD T1 / RESTORE OFFSET undefined ^ undefined ^ 021043* 1000 8942 TAD I T2 / ADD POSITION COUNT undefined ^ undefined ^ 021044* 1400 8943 CIFMNU / GET DECIMAL CLASS AND POSITION /M208 undefined ^ 021045* 0000 8944 021046* 4775 JMS CALSWAP / CALL_A_ROUTINE IN EDITOR SWAP AREA /M208 8945 021047* 2200 FNTABSTOP / FIND_NEXT_TAB_STOP ROUTINE 8946 CDFEDT / DATA FIELD FOR ROUTINE undefined ^ 021050* 0000 8947 DCA T3 / STORE TAB CLASS undefined ^ undefined ^ 021051* 3000 8948 021052* 7521 SWP / GET POSITION IN AC 8949 DCA TABPOSITION / STORE POSITION undefined ^ undefined ^ 021053* 3000 8950 DCA TABFLAGS / CLEAR TAB_FLAGS undefined ^ undefined ^ 021054* 3000 8951 TAD T3 / RESTORE TAB_CLASS TO AC undefined ^ undefined ^ 021055* 1000 8952 021056* 1374 TAD (-3) / CHECK FOR CLASS = DECIMAL TAB 8953 021057* 7640 SZA CLA / SKIP IF:DECIMAL TAB 8954 021060* 5271 JMP FINDT3 / NOT DECIMAL TAB 8955 ISZ TABFLAGS / SET BIT11 = DECIMAL TAB DETECTED undefined ^ undefined ^ 021061* 2000 8956 TAD TABPOSITION / GET DECIMAL TAB POSITION undefined ^ undefined ^ 021062* 1000 8957 021063* 7041 CIA 8958 TAD I T2 / ADD POSITION COUNT undefined ^ undefined ^ 021064* 1400 8959 021065* 7650 SNA CLA / SKIP IF: DIRECTLY ALIGNED TO DECIMAL 8960 / TAB 8961 AC4000 / SET BIT1 = CHARACTER DIRECTLY ALIGNED undefined ^ 021066* 0000 8962 / WITH DECIMAL TAB IN RULER 8963 TAD TABFLAGS / ADD CURRENT TAB_FLAGS undefined ^ undefined ^ 021067* 1000 8964 DCA TABFLAGS / SAVE UPDATED TAB_FLAGS undefined ^ undefined ^ 021070* 3000 8965 021071* 2237 FINDT3, ISZ FINDTP / BUMP RETURN POINTER 8966 021072* 5637 JMP I FINDTP / RETURN 8967 8968 8969 /++ 8970 / READ_NEXT_CHARACTER READNEXTCHARACTER 8971 8972 / FUNTIONAL DESCRIPTION: READNEXTCHARACTER 8973 / 8974 / BUMP LINE_POSITION_COUNTER AND READ THE NEXT CHARACTER. 8975 / 8976 / CALLING SEQUENCE: JMS READNEXTCHARACTER 8977 / ETX RETURN 8978 / 8979 / INPUT PARAMETERS: AC = 0 8980 / 8981 / IMPLICIT INPUT: GLOBAL: CRWMB 8982 / 8983 / OUTPUT PARAMETERS: AC = 0 8984 / 8985 / IMPLICIT OUTPUT: GLOBAL: CRWMB, CRLMB 8986 / LOCAL: READNEXTCHARACTER 8987 / 8988 / COMPLETION CODE: 1) ETX CHARACTER RETURN TO CALLER+1. ALL OTHER 8989 / CHARACTERS RETURN CALLER+2. 8990 / 8991 / SIDE EFFECTS: NONE 8992 / 8993 /-- 8994 8995 READNEXTCHARACTER, 8996 XX undefined ^ 021073* 0000 8997 021074* 4773 JMS ADUNIT / Advance one unit, returning characters/m247 8998 / from within deadkeys, if required /m247 8999 021075* 7410 SKP / ETX RETURN 9000 021076* 2273 ISZ READNEXTCHARACTER / BUMP RETURN POINTER 9001 DCA CRWMB / SAVE CHARACTER_READ_WITH_MODE_BITS undefined ^ undefined ^ 021077* 3000 9002 TAD CRWMB / Get it back /a247 undefined ^ undefined ^ 021100* 1000 9003 TAD (-ECSTOV) / Test for the start of a dead key /a247 undefined ^ undefined ^ 021101* 1372 9004 021102* 7650 SNA CLA / Is this a dead key sequence? /a247 9005 021103* 2771 ISZ DEADKEY / Yes, tickle the deadkey flag. /a247 9006 TAD CRWMB / GET IT BACK undefined ^ undefined ^ 021104* 1000 9007 AND P177 / STRIP MODE BITS undefined ^ undefined ^ 021105* 0000 9008 DCA CRLMB / SAVE CHARACTER_READ_LESS_MODE_BITS undefined ^ undefined ^ 021106* 3000 9009 021107* 5673 JMP I READNEXTCHARACTER / RETURN 9010 9011 9012 /++ 9013 / READ_TAB_OR_LINE_END READTABORLINEEND 9014 / 9015 / FUNTIONAL DESCRIPTION: READTABORLINEEND 9016 / 9017 / THIS SUBROUTINE WILL CONTINUE TO READ CHARACTERS FROM A DOCUMENT 9018 / CURRENTLY BEING EDITED UNTIL ONE OF THREE CONDITIONS ARE MET: 1) READING 9019 / OF A TAB CHARACTER, 2) READING OF A LINE ENDING CHARACTER, OR 3) ETX 9020 / CHARACTER IS ENCOUNTED. IF A TAB IS READ THEN A SKIP RETURN IS MADE 9021 / TO THE CALLER. LINE ENDING AND ETX WILL RESULT IN A RETURN TO CALLER+1. 9022 / 9023 / CALLING SEQUENCE: JMS READTABORLINEEND 9024 / LINE_END OR ETX RETURN 9025 / TAB RETURN 9026 / 9027 / INPUT PARAMETERS: AC = 0 9028 / 9029 / IMPLICIT INPUT: GLOBAL: LNEPC, CRLMB, TABFLAGS 9030 / 9031 / OUTPUT PARAMETERS: AC = 0 9032 / 9033 / IMPLICIT OUTPUT: LOCAL: LNEPC, READTABORLINEEND 9034 / 9035 / COMPLETION CODE: 1) RETURN TO CALLER+1 IF LINE_END CHAR. OR ETX CHAR. 9036 / WAS ENCOUNTED DURING READ. 9037 / 2) RETURN TO CALLER+2 IF TAB CHAR. ENCOUNTED DURING 9038 / READ. 9039 / 9040 / SIDE EFFECTS: 1) LNEPC SET TO CHARACTER POSITION AT RETURN TIME. 9041 / 2) A CHECK IS PERFORMED AFTER THE READING OF EACH 9042 / CHARACTER TO TEST IF ITS DIRECTLY ALIGNED WITH 9043 / A DECIMAL TAB RULER SETTING. IF SO THEN 9044 / DTABCOUNT IS INCREMENTED. IF THE CHARACTER 9045 / IS AN ECTAB THEN AN ADDITIONAL CALL IS MADE 9046 / TO FINDTP SO THAT TABPOSITION, AND TABFLAGS 9047 / WILL REFLECT THE RULER SETTING ECTAB IS 9048 / ASSOCIATED WITH. 9049 / 9050 /-- 9051 9052 READTABORLINEEND, 9053 XX undefined ^ 021110* 0000 9054 TAD CRWMB / HAS CHARACTER BEEN READ ALREADY? undefined ^ undefined ^ 021111* 1000 9055 021112* 7640 SZA CLA / SKIP IF: SO 9056 021113* 5326 JMP READT4 / PROCESS CHARACTER 9057 9058 READT1, ISZ LNEPC / INCREMENT LINE POSITION COUNTER undefined ^ undefined ^ 021114* 2000 9059 021115* 7000 NOP / ALLOW FOR LNEPC = -1 9060 021116* 4273 JMS READNEXTCHARACTER / READ_NEXT_CHARACTER 9061 021117* 5341 JMP READT2 / ETX RETURN 9062 9063 AC7777 / CALL FINDTP TO SEARCH FOR TAB FROM undefined ^ 021120* 0000 9064 / CURRENT LINE POSITION - 1 9065 021121* 4237 JMS FINDTP / FIND_TAB_POSITION 9066 LNEPC undefined ^ 021122* 0000 9067 9068 TAD TABFLAGS / CURRENT POSITION DIRECTLY ALIGNED WITH undefined ^ undefined ^ 021123* 1000 9069 / A DECIMAL TAB? 9070 021124* 7710 SPA CLA / SKIP IF: NOT 9071 021125* 4770 JMS IDTABCOUNT / YES - INCREMENT DECIMAL TAB COUNT 9072 9073 READT4, TAD CRLMB / GET CHARACTER_READ_LESS_MODE_BITS undefined ^ undefined ^ 021126* 1000 9074 TAD (-ECTAB) / IS CHARACTER = TAB? undefined ^ undefined ^ 021127* 1372 9075 021130* 7440 SZA / SKIP IF: SO 9076 021131* 5336 JMP READT3 9077 021132* 2310 ISZ READTABORLINEEND/ INCREMENT RETURN POINTER 9078 9079 / ADJUST TABFLAGS AND TABPOSITION FOR THIS TAB 9080 9081 021133* 4237 JMS FINDTP / CALL FIND_TAB_POSITION 9082 LNEPC / LINE_POSITION_COUNTER undefined ^ 021134* 0000 9083 9084 021135* 5341 JMP READT2 9085 9086 READT3, TAD (ECTAB-ECNWLN) / IS CHARACTER = NEW_LINE? undefined ^ undefined ^ undefined ^ undefined ^ 021136* 1372 9087 021137* 7640 SZA CLA / SKIP IF: SO 9088 021140* 5314 JMP READT1 / NO - GO FOR NEXT CHARACTER 9089 9090 021141* 5710 READT2, JMP I READTABORLINEEND/ RETURN 9091 9092 9093 / SET CURPTR 9094 9095 /++ 9096 / STCURPTR 9097 / 9098 / FUNTIONAL DESCRIPTION: SET_CURPTR 9099 / 9100 / SAVE CURRENT VALUE OF CURPTR. ADD OFFSET IN AC ON ENTRY WITH 9101 / CURRENT VALUE OF LINE23 TO PROVIDE NEW CURPTR VALUE. TO RESTORE 9102 / OLD CURPTR CALL RESCURPTR ROUTINE. 9103 / 9104 / CALLING SEQUENCE: JMS STCURPTR 9105 / 9106 / INPUT PARAMETERS: AC = OFFSET TO BE ADDED TO CURRENT VALUE OF LINE23 9107 / 9108 / IMPLICIT INPUT: GLOBAL: CURPTR, LINE23 9109 / 9110 / OUTPUT PARAMETERS: AC = 0 9111 / 9112 / IMPLICIT OUTPUT: GLOBAL: SAVCP, CURPTR 9113 / 9114 / COMPLETION CODE: NONE 9115 / SIDE EFFECTS: NONE 9116 / 9117 /-- 9118 9119 STCURPTR, 9120 XX undefined ^ 021142* 0000 9121 021143* 7421 MQL / HOLD ONTO OFFSET 9122 CDFEDT undefined ^ 021144* 0000 9123 021145* 1767 TAD I (CURPTR) / SAVE CURPTR VALUE 9124 DCA SAVCP undefined ^ undefined ^ 021146* 3000 9125 021147* 7521 SWP / RESTORE OFFSET AND INITIALIZE POINTER 9126 / FOR READING LINE 9127 021150* 1766 TAD I (LINE23) 9128 021151* 3767 DCA I (CURPTR) 9129 021152* 0000 CDFMYF 9130 021153* 5742 JMP I STCURPTR / RETURN 9131 9132 / RESTORE CURPTR 9133 RESCURPTR, 9134 XX undefined ^ 021154* 0000 9135 021155* 7421 MQL / SAVE VALUE IN AC 9136 TAD SAVCP / RESTORE CURPTR undefined ^ undefined ^ 021156* 1000 9137 CDFEDT undefined ^ 021157* 0000 9138 021160* 3767 DCA I (CURPTR) 9139 021161* 0000 CDFMYF 9140 021162* 7521 SWP / RETORE AC 9141 021163* 5754 JMP I RESCURPTR / RETURN 9142 9143 X=. / INDICATE FIRST FREE LOCATION ON PAGE 9144 /--------------- 9145 021166* 0171 PAGE 021167* 0135 021170* 4054 021171* 4112 021172* 0000 021173* 4065 021174* 7775 021175* 1400 021176* 7777 021177* 1033 9146 9147 DSKBLK=.-200%400+DL4EDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 9148 9149 9150 / ENTIRE INSDEL ROUTINE 9151 /************************************************************************ 9152 / / 9153 / INSDEL / 9154 / / 9155 / EDITS MATH TEXT, DELETING PREVIOUS RESULTS & INSERTING / 9156 / NEW RESULTS AFTER HAVING DETERMINED THAT THESE FIT / 9157 / WITHOUT OVERLAPPING ANY OTHER FIELDS / 9158 / / 9159 /***********************************************************************/ 9160 9161 / This routine is divided into four phases: scanning a line of text 9162 / preparing tables about the contents of the line, comparing the space 9163 / available on the line to the requirements determined by the results 9164 / to be inserted into the line, deleting any text in result fields from 9165 / previous passes, and inserting math results which are known to fit 9166 / into the slots which have been prepared for them. 9167 9168 /***********************************************************************/ 9169 / / 9170 / PHASE 1 SCAN TEXT LINE PREPARING TABLE FLDDIM / 9171 / / 9172 /***********************************************************************/ 9173 9174 / NUMEROUS CORRECTIONS AND REARRANGING OF CODE WERE MADE AS 9175 / PART OF THE INITIAL DEBUGGING OF INSDEL. THESE ARE TOO NUMEROUS 9176 / AND TOO FAR-REACHING TO BE WORTH LISTING INDIVIDUALLY. 9177 9178 INSDEL, XX undefined ^ 021200* 0000 9179 DCA DTABPR / SAVE DCHAR OR TCHAR POINTER undefined ^ undefined ^ 021201* 3000 9180 021202* 4777 JMS CLRZER / CLEAR TABLE AREAS 9181 021203* 3035 FLDDIM 9182 -5^MXTABS+3 undefined ^ 021204* 0003 9183 9184 DCA FLDCNT / CLEAR FIELD COUNT undefined ^ undefined ^ 021205* 3000 9185 021206* 1376 TAD (FLDDIM) / INITIALIZE TABLE POINTER 9186 DCA REG1 undefined ^ undefined ^ 021207* 3000 9187 021210* 4775 JMS EDITINIT / INITIALIZE EDIT CURSOR POINTER 9188 DCA CHARCNT / OTHER VALUES undefined ^ undefined ^ 021211* 3000 9189 DCA BEGFLD / LEFT BOUNDARY OF A FIELD undefined ^ undefined ^ 021212* 3000 9190 DCA ENDFLD / RIGHT BOUNDARY OF A FIELD undefined ^ undefined ^ 021213* 3000 9191 021214* 7001 IAC 9192 DCA PCP / CURRENT COLUMN POSITION OF LINE undefined ^ undefined ^ 021215* 3000 9193 DCA XPCP / EXTRA SPACES, SOFT (OR BETWEEN FLDS) undefined ^ undefined ^ 021216* 3000 9194 DCA DTABN / COUNT OF DEC. TAB POSITIONS undefined ^ undefined ^ 021217* 3000 9195 DCA FLAGS / THESE VALUES RETURNED BY GETTAB undefined ^ undefined ^ 021220* 3000 9196 ISZ FLDCNT undefined ^ undefined ^ 021221* 2000 9197 9198 9199 / DETERMINE CASE 9200 9201 021222* 4774 PH14, JMS NXCASE / GET NEXT CODE & RETURN ACCORDING TO CASE 9202 021223* 5250 JMP PH15 / ALPHANUMERIC 9203 021224* 5231 JMP PH141 / SPACE 9204 021225* 5336 JMP PH17 / NEW LINE 9205 021226* 5263 JMP PH16 / TAB 9206 021227* 5336 JMP PH17 / OWN CODE 9207 021230* 5250 JMP PH15 / DEAD KEY 9208 9209 9210 / CASE: SPACE OR SOFT SPACE 9211 9212 PH141, TAD FLAGS / IF DTAB RESULT FIELD undefined ^ undefined ^ 021231* 1000 9213 021232* 7700 SMA CLA 9214 021233* 5246 JMP PH142 9215 TAD CHARCNT / THEN IF FIELD.CHAR.COUNT # 0 undefined ^ undefined ^ 021234* 1000 9216 021235* 7650 SNA CLA 9217 021236* 5246 JMP PH142 9218 TAD PCP / END PREVIOUS FIELD undefined ^ undefined ^ 021237* 1000 9219 DCA ENDFLD undefined ^ undefined ^ 021240* 3000 9220 021241* 4773 JMS FLDSTRT / START NEW FIELD WITHOUT TAB. 9221 DCA FLAGS / CLEAR FLAGS & TABPCP,SINCE undefined ^ undefined ^ 021242* 3000 9222 DCA TABPCP / NEW FIELD DOES NOT CORRESPOND undefined ^ undefined ^ 021243* 3000 9223 DCA CHARCNT / TO ANY TAB POSITION. undefined ^ undefined ^ 021244* 3000 9224 ISZ PCP / EXTRA INCR AFTER ALPHANUMERICS undefined ^ undefined ^ 021245* 2000 9225 PH142, ISZ XPCP / INCR EXTRA SPACE COUNTER undefined ^ undefined ^ 021246* 2000 9226 021247* 5222 JMP PH14 9227 9228 / CASE: ALPHANUMERIC 9229 9230 021250* 4772 PH15, JMS INSEXTR / PCP=PCP+XPCP I.E. ADD EXTRA SPACES TO PCP 9231 DCA XPCP / CLEAR EXTRA SPACES COUNTER undefined ^ undefined ^ 021251* 3000 9232 TAD CHARCNT / FIND OUT IF THIS ALPHANUMERIC BEGINS A FIELD undefined ^ undefined ^ 021252* 1000 9233 021253* 7640 SZA CLA 9234 021254* 5260 JMP PH151 9235 TAD PCP undefined ^ undefined ^ 021255* 1000 9236 DCA BEGFLD / SET NEW BEGINNING OF FIELD undefined ^ undefined ^ 021256* 3000 9237 021257* 7410 SKP 9238 PH151, ISZ PCP / INCR PRINT CHARACTER POSITION undefined ^ undefined ^ 021260* 2000 9239 ISZ CHARCNT / INCR CHAR. COUNT undefined ^ undefined ^ 021261* 2000 9240 021262* 5222 JMP PH14 9241 9242 / CASE: TAB CODE 9243 9244 PH16, TAD CHARCNT / IF FIELD.CHAR.COUNT = 0 undefined ^ undefined ^ 021263* 1000 9245 021264* 7640 SZA CLA 9246 021265* 5276 JMP PH161 9247 021266* 4772 JMS INSEXTR / PCP=PCP+XPCP I.E. ADD EXTRA SPACES TO PCP 9248 DCA XPCP undefined ^ undefined ^ 021267* 3000 9249 TAD PCP / SET FIELD BEGINNING ADDRESS undefined ^ undefined ^ 021270* 1000 9250 DCA BEGFLD undefined ^ undefined ^ 021271* 3000 9251 AC7777 undefined ^ 021272* 0000 9252 TAD FLDCNT / IF BEGINNING OF LINE, THEN DO NOT START undefined ^ undefined ^ 021273* 1000 9253 021274* 7650 SNA CLA / A FIELD ON A BLANK TAB 9254 021275* 5317 JMP PH162 9255 PH161, AC2000 / IF RIGHT-JUSTIFIED FIELD, THEN undefined ^ 021276* 0000 9256 AND TABPCP / DO NOT ELIMINATE ANY TRAILING undefined ^ undefined ^ 021277* 0000 9257 021300* 7640 SZA CLA / SPACES. 9258 TAD XPCP undefined ^ undefined ^ 021301* 1000 9259 TAD PCP / COMPLETE PREVIOUS FLDDIM ENTRY undefined ^ undefined ^ 021302* 1000 9260 DCA ENDFLD undefined ^ undefined ^ 021303* 3000 9261 021304* 4773 JMS FLDSTRT / AND START NEXT ONE 9262 021305* 4772 JMS INSEXTR / PCP=PCP+XPCP I.E. ADD EXTRA SPACES TO PCP 9263 TAD XPCP / CHECK FOR ZONE TO SWEEP AFTER! LAST FIELD undefined ^ undefined ^ 021306* 1000 9264 021307* 7650 SNA CLA /C236 9265 021310* 5317 JMP PH162 9266 021311* 5317 JMP PH162 / *** T E M P O R A R Y F I X FOR MATH BUG /A236 9267 / *** DISABLE SWEEPING ZONE FOR TABS BECAUSE /A236 9268 / *** IT DOES NOT WORK RIGHT AND CAN CAUSE A /A236 9269 / *** SYSTEM HALT FROM RECURSIVE CALLS TO REJUST/A236 9270 9271 TAD PCP / YES! SWEEP THIS ZONE FOR TABS. undefined ^ undefined ^ 021312* 1000 9272 021313* 7001 IAC / BUMP END COUNT BY ONE /C236 9273 021314* 7421 MQL / IT BEGINS AT END OF LAST FIELD & 9274 TAD ENDFLD / ENDS AFTER EXTRA SPACES FOLLOWING undefined ^ undefined ^ 021315* 1000 9275 021316* 4771 JMS TABCHK / THIS FIELD. 9276 PH162, DCA XPCP undefined ^ undefined ^ 021317* 3000 9277 ISZ PCP / INCREMENT POSITION COUNTER undefined ^ undefined ^ 021320* 2000 9278 TAD PCP / GET NEXT TAB POSITION TO BEGIN FIELD undefined ^ undefined ^ 021321* 1000 9279 021322* 4770 JMS GETTAB 9280 021323* 7440 SZA 9281 ISZ DTABN / COUNT DTAB POSITION, IF ANY undefined ^ undefined ^ 021324* 2000 9282 DCA FLAGS / THESE VALUES RETURNED BY GETTAB undefined ^ undefined ^ 021325* 3000 9283 021326* 7701 ACL 9284 DCA TABPCP undefined ^ undefined ^ 021327* 3000 9285 TAD CHARCNT / IF FIELD IS BLANK undefined ^ undefined ^ 021330* 1000 9286 021331* 7640 SZA CLA / THEN DO NOT DO EXTRA INCREMENT 9287 ISZ PCP / OF PCP. EXTRA IS REQUIRED SINCE undefined ^ undefined ^ 021332* 2000 9288 ISZ FLDCNT / FIRST ALPHANUMERIC OF EACH FIELD undefined ^ undefined ^ 021333* 2000 9289 DCA CHARCNT / IS NOT COUNTED IN ORDER TO RETARD undefined ^ undefined ^ 021334* 3000 9290 021335* 5222 JMP PH14 / PCP. 9291 9292 9293 / CASE: CR OR WORD-WRAP CODE 9294 9295 PH17, AC2000 / IF RIGHT-JUSTIFIED FIELD, THEN undefined ^ 021336* 0000 9296 AND TABPCP / DO NOT ELIMINATE ANY TRAILING undefined ^ undefined ^ 021337* 0000 9297 021340* 7640 SZA CLA / SPACES. 9298 TAD XPCP undefined ^ undefined ^ 021341* 1000 9299 TAD PCP / UPDATE POSITION, PCP undefined ^ undefined ^ 021342* 1000 9300 DCA PCP undefined ^ undefined ^ 021343* 3000 9301 021344* 4767 JMS INSFEND / GO END CURRENT FIELD, IF ANY 9302 AC7777 undefined ^ 021345* 0000 9303 TAD RIGHTM / SAVE RIGHT MARGIN IN MQ FOR TAB CHECK BELOW undefined ^ undefined ^ 021346* 1000 9304 021347* 7421 MQL 9305 AC2000 / THEN IF LINE ENDS WITH A WORD-WRAP undefined ^ 021350* 0000 9306 AND CRWMB undefined ^ undefined ^ 021351* 0000 9307 021352* 7650 SNA CLA 9308 021353* 5357 JMP PH171 9309 TAD ENDFLD undefined ^ undefined ^ 021354* 1000 9310 021355* 7001 IAC / THEN SET ABSOLUTE MARGIN AT 9311 021356* 7410 SKP / THE END OF THAT FIELD 9312 PH171, TAD RIGHTM / SET ABSOLUTE MARGIN=RIGHT MARGIN undefined ^ undefined ^ 021357* 1000 9313 DCA ABSOLM undefined ^ undefined ^ 021360* 3000 9314 TAD ENDFLD / CREATE ENTRIES IN FLDDIM FOR ALL TAB undefined ^ undefined ^ 021361* 1000 9315 021362* 7001 IAC 9316 021363* 4771 JMS TABCHK / POINTS TO THE RIGHT OF THE CR 9317 021364* 5766 JMP PHASE2 9318 9319 X=. / INDICATE FIRST FREE LOCATION ON PAGE 9320 /--------------- 9321 021366* 1400 PAGE 021367* 1535 021370* 2213 021371* 2400 021372* 2751 021373* 2275 021374* 2522 021375* 2200 021376* 3035 021377* 2735 9322 9323 DSKBLK=.-200%400+DL4EDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 9324 9325 9326 /***********************************************************************/ 9327 / / 9328 /PHASE 2 DETERMINE IF RESULTS FIT INTO AVAILABLE SPACE / 9329 / / 9330 /***********************************************************************/ 9331 9332 / Phase 2 matches the entries in FLDDIM is order to assure that there 9333 / are no overlaps. The ending location of each field is matched against 9334 / the beginning location of the next field. The latter must always be 9335 / a greater number if there is no overlapping. If two fields do overlap, 9336 / then the program will determine if one or both of the fields are 9337 / result fields and take an error exit appropriate to the case. 9338 9339 PHASE2, DCA REG4 / CLEAR REG4 SO THAT FIRST MATCH WORKS undefined ^ undefined ^ 021400* 3000 9340 021401* 1377 TAD (FLDDIM-5) / INITIALIZE LIST POINTER 9341 DCA REG1 undefined ^ undefined ^ 021402* 3000 9342 021403* 4776 PH21, JMS GETFLDS / GET NEXT ENTRY FROM FLDDIM TO MATCH AGAINST 9343 NEWCON undefined ^ 021404* 0000 9344 021405* 5775 JMP PHASE3 / END LIST RETURN, EXIT TO NEXT PHASE 9345 021406* 4774 JMS INSBLANK / CHECK FOR TAB-ONLY ENTRY 9346 021407* 7200 CLA /A236 9347 /D236 AC7777 / NOT TAB-ONLY RETURN: DECR BEGFLD 9348 TAD BEGFLD / TAB-ONLY RETURN undefined ^ undefined ^ 021410* 1000 9349 021411* 7550 SPA SNA / DO NOT LET BEGFLD BECOME <= 0 9350 021412* 7001 IAC 9351 DCA BEGFLD / SAVE RETURNED LEFT BOUNDARY undefined ^ undefined ^ 021413* 3000 9352 TAD REG4 / MATCH RIGHT BOUNDARY OF PREVIOUS FIELD undefined ^ undefined ^ 021414* 1000 9353 021415* 7041 CIA / AGAINST LEFT BOUNDARY OF UPCOMING 9354 TAD BEGFLD / FIELD undefined ^ undefined ^ 021416* 1000 9355 021417* 7750 SPA SNA CLA / RIGHT BOUNDARY MUST BE GREATER, 9356 021420* 5233 JMP FLDERR / OTHERWISE, ERROR 9357 021421* 4773 JMS SETFEND / ESTABLISH END OF THIS FIELD FOR NXT LOOP 9358 AC7777 / TAB-ONLY RETURN-DECR ENDFLD undefined ^ 021422* 0000 9359 TAD ENDFLD / AND STORE VALUE IN REG4 undefined ^ undefined ^ 021423* 1000 9360 DCA REG4 undefined ^ undefined ^ 021424* 3000 9361 TAD ENDFLD / CHECK CURRENT ENDFLD AGAINST LINE END undefined ^ undefined ^ 021425* 1000 9362 021426* 7041 CIA 9363 TAD ABSOLM / DO NOT EXCEED ABSOLUTE END OF LINE undefined ^ undefined ^ 021427* 1000 9364 021430* 7710 SPA CLA 9365 021431* 5233 JMP FLDERR 9366 021432* 5203 JMP PH21 9367 9368 9369 /***********************************************************************/ 9370 / ERROR EXIT / 9371 /***********************************************************************/ 9372 9373 9374 021433* 4772 FLDERR, JMS RESCURPTR / RESET CURSOR TO VALUE PRIOR TO MATH 9375 021434* 1371 TAD (FLDER1) / SETUP POINTER TO STORE ERROR DATA IN 9376 DCA REG3 / CALLING SEQUENCE undefined ^ undefined ^ 021435* 3000 9377 021436* 3313 DCA FLDER2 9378 021437* 3315 DCA FLDER4 9379 021440* 1370 TAD (-5) / GET POINTER TO PREVIOUS ITEM IN FLDDIM 9380 TAD REG1 undefined ^ undefined ^ 021441* 1000 9381 DCA REG2 / AND PUT IT INTO REG2 undefined ^ undefined ^ 021442* 3000 9382 TAD REG2 / MAKE SURE DO NOT BACK UP BEYOND TABLE undefined ^ undefined ^ 021443* 1000 9383 021444* 1367 TAD (-FLDDIM) / BEGINNING 9384 021445* 7710 SPA CLA 9385 021446* 5262 JMP FLDERA 9386 TAD I REG2 undefined ^ undefined ^ 021447* 1400 9387 021450* 7500 SMA / WAS THE PREVIOUS FIELD A RESULT FIELD? 9388 021451* 5262 JMP FLDERA 9389 021452* 4766 JMS GETRES / GET BCD RESULT POINTER 9390 021453* 3314 DCA FLDER3 / AND PUT IT INTO CALLING SEQ. 9391 ISZ REG2 undefined ^ undefined ^ 021454* 2000 9392 AC7777 undefined ^ 021455* 0000 9393 TAD I REG2 / GET TAB PCP & PUT THIS undefined ^ undefined ^ 021456* 1400 9394 AND P377 / INTO CALLING SEQ. undefined ^ undefined ^ 021457* 0000 9395 021460* 3312 DCA FLDER1 9396 ISZ REG3 undefined ^ undefined ^ 021461* 2000 9397 021462* 7200 FLDERA, CLA 9398 TAD I REG1 / IS THE CURRENT FIELD A RESULT FIELD? undefined ^ undefined ^ 021463* 1400 9399 021464* 7500 SMA 9400 021465* 5301 JMP FLDERB / IF YES, THEN 9401 021466* 4766 JMS GETRES / AND PUT IT INTO CALLING SEQ. 9402 021467* 7421 MQL 9403 ISZ REG1 / GET TAB PCP & PUT THIS undefined ^ undefined ^ 021470* 2000 9404 AC7777 undefined ^ 021471* 0000 9405 TAD I REG1 / INTO CALLING SEQ. undefined ^ undefined ^ 021472* 1400 9406 AND P377 undefined ^ undefined ^ 021473* 0000 9407 DCA I REG3 undefined ^ undefined ^ 021474* 3400 9408 021475* 7701 ACL / RECOVER SAVED POINTER 9409 ISZ REG3 / INCR TO NEXT SLOT undefined ^ undefined ^ 021476* 2000 9410 ISZ REG3 undefined ^ undefined ^ 021477* 2000 9411 DCA I REG3 / PUT POINTER INTO PARAM LIST undefined ^ undefined ^ 021500* 3400 9412 021501* 7200 FLDERB, CLA 9413 TAD REG3 / SET ERROR CODE TO ERNOSP IF ONLY ONE undefined ^ undefined ^ 021502* 1000 9414 021503* 1365 TAD (-FLDER3) / RESULT FIELD TO BE DISPLAYED 9415 021504* 7750 SPA SNA CLA / OR TO ERNSP2 IF TWO RESULT 9416 021505* 5310 JMP FLDERC / FIELDS TO BE DISPLAYED. 9417 TAD (ERNSP2) undefined ^ undefined ^ 021506* 1364 9418 021507* 7410 SKP 9419 FLDERC, TAD (ERNOSP) undefined ^ undefined ^ 021510* 1364 9420 021511* 4763 JMS EDERR-1 / EXIT TO ERROR WITH ERNOSP ERROR CODE 9421 FLDER1, XX / PCP OF DTAB OF 1ST OVERLAPPING FIELD undefined ^ 021512* 0000 9422 FLDER2, XX / 0 OR PCP OF DTAB OF 2ND OVERLAPPING FIELD undefined ^ 021513* 0000 9423 FLDER3, XX / POINTER TO BCD RESULTS, CONTENTS OF 1ST FIELD undefined ^ 021514* 0000 9424 FLDER4, XX / 0 OR PTR TO BCD RESULTS, CONTENTS OF 2ND FIELD undefined ^ 021515* 0000 9425 9426 / NOTE: NO RETURN IS MADE FROM ABOVE "JMS" WHEN ERROR IS CALLED!!! 9427 / "JMS" WAS USED INSTEAD OF "JMP" IN ORDER TO PASS ADDRESS OF THE 9428 / PCP'S & POINTERS. 9429 9430 9431 /************************************************************************/ 9432 / NORMAL (NON-ERROR) EXIT / 9433 /************************************************************************/ 9434 9435 021516* 4322 INSEXIT,JMS CALREJ / CALLED EDITOR REJUSTIFY ROUTINE 9436 021517* 1762 TAD INSDEL / SET UP TO EXIT 9437 DCA T1 undefined ^ undefined ^ 021520* 3000 9438 JMP I T1 / EXIT undefined ^ undefined ^ 021521* 5400 9439 9440 /******************************SUBROUTINE*******************************/ 9441 9442 / This routine will set up and call the editor rejustify routine 9443 9444 CALREJ, XX undefined ^ 021522* 0000 9445 CDFEDT undefined ^ 021523* 0000 9446 AC7777 undefined ^ 021524* 0000 9447 021525* 3761 DCA I (REJFLG) / SET EDITOR REJUSTIFY CONDITION 9448 021526* 0000 CDFMYF 9449 CIFEDT undefined ^ 021527* 0000 9450 021530* 4760 JMS CALLAR / CALL EDITOR REJUSTIFY 9451 021531* 2400 REJUST / ADDRESS OF ROUTINE IN EDITOR 9452 CDFBUF / DATA FIELD FOR REJUST TO USE undefined ^ 021532* 0000 9453 021533* 7300 CLA CLL 9454 021534* 5722 JMP I CALREJ / RETURN TO CALLER 9455 9456 /******************************SUBROUTINE*******************************/ 9457 9458 / ROUTINE USED BY PHASE1 (SCAN OF DATA) TO DETERMINE THE CONDITIONS AT THE 9459 / END OF TEXT LINE (FINDING CR) 9460 9461 INSFEND,XX undefined ^ 021535* 0000 9462 TAD CHARCNT / IF FIELD.CHAR.COUNT # 0 undefined ^ undefined ^ 021536* 1000 9463 021537* 7650 SNA CLA 9464 021540* 5343 JMP INSF1 9465 TAD PCP / THEN COMPLETE FLDDIM ENTRY undefined ^ undefined ^ 021541* 1000 9466 021542* 5353 JMP INSF2 9467 INSF1, AC7777 / IF 0, THEN LOOK FOR EMPTY LINE undefined ^ 021543* 0000 9468 TAD FLDCNT / I.E. CR ONLY undefined ^ undefined ^ 021544* 1000 9469 021545* 7650 SNA CLA 9470 021546* 5735 JMP I INSFEND / IF SO, THEN EXIT 9471 TAD TABPCP / ELSE CREATE BLANK TAB ENTRY undefined ^ undefined ^ 021547* 1000 9472 AND P377 undefined ^ undefined ^ 021550* 0000 9473 DCA BEGFLD / SET BEGFLD=ENDFLD=TABPCP undefined ^ undefined ^ 021551* 3000 9474 TAD BEGFLD undefined ^ undefined ^ 021552* 1000 9475 INSF2, DCA ENDFLD undefined ^ undefined ^ 021553* 3000 9476 021554* 4757 JMS FLDSTRT / UNDATE FLDDIM TABLE 9477 021555* 5735 JMP I INSFEND 9478 9479 /******************************SUBROUTINE*******************************/ 9480 9481 X=. / INDICATE FIRST FREE LOCATION ON PAGE 9482 /--------------- 9483 021557* 2275 PAGE 021560* 0251 021561* 0150 021562* 1200 021563* 3600 021564* 0000 021565* 6264 021566* 2476 021567* 4743 021570* 7773 021571* 1512 021572* 1154 021573* 2756 021574* 3000 021575* 1600 021576* 2106 021577* 3030 9484 9485 DSKBLK=.-200%400+DL4EDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 9486 9487 9488 /***********************************************************************/ 9489 / / 9490 / PHASE 3 DELETE ANY TEXT FOUND IN RESULT FIELDS / 9491 / / 9492 /***********************************************************************/ 9493 9494 021600* 4777 PHASE3, JMS EDITINIT / INITIALIZE EDIT CURSOR POINTER 9495 021601* 1376 TAD (FLDDIM-5) / INITIALIZE TABLE TWO POINTER & 9496 DCA REG1 / COL.POSITION COUNTER undefined ^ undefined ^ 021602* 3000 9497 021603* 7001 IAC / INITIALIZE PCP TO 1 9498 DCA PCP undefined ^ undefined ^ 021604* 3000 9499 DCA REG3 / CLEAR TAB FLAG undefined ^ undefined ^ 021605* 3000 9500 021606* 4775 PH31, JMS GETFLDS / GET NEXT ENTRY: FLAGS TABPCP BEGFLD ENDFLD 9501 OLDCON undefined ^ 021607* 0000 9502 021610* 7000 NOP / DO NOT EXIT UNTIL LINE END CODE FOUND 9503 9504 / DETERMINE CASE 9505 9506 021611* 4774 PH32, JMS NXCASE / GET NEXT CODE & RETURN ACCORDING TO CASE 9507 021612* 5220 JMP PH321 / ALPHANUMERIC 9508 021613* 5260 JMP PH322 / SPACE 9509 021614* 5326 JMP PH324 / NEW LINE 9510 021615* 5310 JMP PH323 / TAB 9511 021616* 5310 JMP PH323 / OWN CODE 9512 021617* 5220 JMP PH321 / DEAD KEY 9513 9514 9515 / CASE: ALPHANUMERIC 9516 9517 PH321, TAD BEGFLD / TEST FOR POSITION ON LINE undefined ^ undefined ^ 021620* 1000 9518 021621* 7041 CIA / EITHER STARTING A NEW FIELD 9519 TAD PCP / OR CONTINUING A FIELD undefined ^ undefined ^ 021622* 1000 9520 021623* 7740 SMA SZA CLA 9521 021624* 5245 JMP PH3211 9522 TAD REG3 / STARTING A FIELD - CHECK FOR TAB undefined ^ undefined ^ 021625* 1000 9523 021626* 7640 SZA CLA 9524 021627* 5233 JMP PH3210 9525 021630* 1373 TAD (ECMTH1+400) / IF THERE IS NO TAB, THEN INSERT 9526 021631* 4772 JMS INSFORCE / OWN FIELD MARKER 9527 021632* 5250 JMP PH3212 9528 PH3210, TAD FLAGS / CHECK FOR PREVIOUS RESULT FIELD undefined ^ undefined ^ 021633* 1000 9529 021634* 7700 SMA CLA 9530 021635* 5250 JMP PH3212 9531 021636* 4771 JMS DELCODE / DELETE CODE FROM EDIT BUFFER 9532 021637* 7701 ACL / GET ATTRIBUTES SAVED BY DELCODE 9533 AND (MASKATTR) undefined ^ undefined ^ 021640* 0370 9534 021641* 7421 MQL / SAVE ATTRIBUTES IN MQ 9535 TAD I REG1 / GET PRESENT VALUE FROM FLDDIM undefined ^ undefined ^ 021642* 1400 9536 021643* 7501 MQA / & "OR" ATTRIBUTES 9537 DCA I REG1 / THEN RESTORE INTO FLDDIM. undefined ^ undefined ^ 021644* 3400 9538 PH3211, TAD FLAGS / CHECK RESULT FIELD (DELETION) undefined ^ undefined ^ 021645* 1000 9539 021646* 7710 SPA CLA 9540 021647* 4771 JMS DELCODE / YES, DELETE THIS CHARACTER 9541 PH3212, DCA REG3 / CONTINUING A FIELD - CLEAR TAB COUNTER & undefined ^ undefined ^ 021650* 3000 9542 TAD ENDFLD / CHECK FOR POSITION ON LINE undefined ^ undefined ^ 021651* 1000 9543 021652* 7041 CIA / EITHER ENDING FIELD 9544 TAD PCP / OR CONTINUING A FIELD undefined ^ undefined ^ 021653* 1000 9545 ISZ PCP / INCR POSITION ON LINE undefined ^ undefined ^ 021654* 2000 9546 021655* 7710 SPA CLA 9547 021656* 5211 JMP PH32 / CONTINUING FIELD - GET NEXT CODE 9548 021657* 5206 JMP PH31 / ENDING A FIELD - GET NEXT FIELD ENTRY 9549 9550 9551 / CASE: SPACE OR SOFT SPACE 9552 9553 PH322, TAD BEGFLD / TEST FOR POSITION ON LINE undefined ^ undefined ^ 021660* 1000 9554 021661* 7041 CIA / EITHER LESS THAN BEGINNING A FIELD 9555 TAD PCP / OR GREATER THAN ENDING A FIELD undefined ^ undefined ^ 021662* 1000 9556 021663* 7750 SPA SNA CLA / OR WITHIN A FIELD: 9557 021664* 5272 JMP PH3221 / IN EITHER OF THE FIRST 9558 TAD ENDFLD / TWO CASES - DELETE THE undefined ^ undefined ^ 021665* 1000 9559 021666* 7041 CIA / SPACE, OTHERWISE, 9560 TAD PCP / CONTINUE undefined ^ undefined ^ 021667* 1000 9561 021670* 7750 SPA SNA CLA 9562 021671* 5301 JMP PH3222 9563 PH3221, ISZ PCP / INCR POSITION ON LINE undefined ^ undefined ^ 021672* 2000 9564 TAD CRWMB / IF OUTSIDE A FIELD, THEN undefined ^ undefined ^ 021673* 1000 9565 021674* 0367 AND (400) / DELETE SPACE UNLESS UNDERLINED 9566 021675* 7640 SZA CLA 9567 021676* 5211 JMP PH32 9568 021677* 4771 JMS DELCODE / DELETE CODE FROM EDIT BUFFER 9569 021700* 5211 JMP PH32 9570 PH3222, TAD ENDFLD / CHECK FOR POSITION ON LINE undefined ^ undefined ^ 021701* 1000 9571 9572 9573 9574 9575 9576 9577 9578 9579 021702* 7041 CIA / EITHER ENDING FIELD 9580 TAD PCP / OR CONTINUING A FIELD undefined ^ undefined ^ 021703* 1000 9581 ISZ PCP / INCR POSITION ON LINE undefined ^ undefined ^ 021704* 2000 9582 021705* 7710 SPA CLA 9583 021706* 5211 JMP PH32 / CONTINUING FIELD - GET NEXT CODE 9584 021707* 5206 JMP PH31 / ENDING A FIELD - GET NEXT FIELD ENTRY 9585 9586 9587 / CASE: TAB 9588 9589 PH323, ISZ REG3 / SET TAB FLAG undefined ^ undefined ^ 021710* 2000 9590 ISZ PCP / & INCR POSITION ON LINE undefined ^ undefined ^ 021711* 2000 9591 AC2000 undefined ^ 021712* 0000 9592 AND FLAGS / CHECK FOR FORCED TAB undefined ^ undefined ^ 021713* 0000 9593 021714* 7640 SZA CLA 9594 021715* 5323 JMP PH3232 / IF FOUND, THEN GO FORCE IT. 9595 021716* 4766 JMS INSBLANK / CHECK FOR BLANK FIELD 9596 021717* 5211 JMP PH32 / NON-BLANK RETURN - CONTINUE 9597 021720* 4775 PH3231, JMS GETFLDS / ELSE GET NEXT ENTRY & 9598 OLDCON / CONTINUE TO CHECK FOR undefined ^ 021721* 0000 9599 /D236 NOP 9600 021722* 5211 JMP PH32 9601 021723* 4350 PH3232, JMS INSTAB / FORCED-TAB INSERTIONS 9602 021724* 5211 JMP PH32 / NON-SKIP, DONE 9603 021725* 5320 JMP PH3231 / SKIP, CONTINUE 9604 9605 9606 / CASE: NEW LINE 9607 9608 PH324, TAD REG1 / SAVE FLDDIM POINTER undefined ^ undefined ^ 021726* 1000 9609 021727* 3347 DCA SVREG1 9610 PH3241, TAD FLAGS / OTHERWISE, CHECK FOR RESULTS FIELD undefined ^ undefined ^ 021730* 1000 9611 021731* 7710 SPA CLA / THROUGH REST OF LIST 9612 021732* 5337 JMP PH3242 9613 021733* 4775 JMS GETFLDS / GET NEXT ITEM FROM LIST 9614 OLDCON undefined ^ 021734* 0000 9615 021735* 5765 JMP PHASE4 / IF END OF LIST IS FOUND, EXIT THIS PHASE 9616 021736* 5330 JMP PH3241 9617 021737* 1347 PH3242, TAD SVREG1 / IF A RESULT, THEN GO INSERT FORCED-TABS 9618 DCA REG1 / BEFORE NEW LINE CODE undefined ^ undefined ^ 021740* 3000 9619 021741* 4350 PH3243, JMS INSTAB / INSERT TAB 9620 021742* 5765 JMP PHASE4 / NON-SKIP, DONE 9621 021743* 4775 JMS GETFLDS 9622 OLDCON undefined ^ 021744* 0000 9623 021745* 5765 JMP PHASE4 9624 021746* 5341 JMP PH3243 9625 021747* 0000 SVREG1, 0 9626 9627 /****************************SUBROUTINE*********************************/ 9628 9629 INSTAB, XX undefined ^ 021750* 0000 9630 AC2000 / LOOK FOR BIT CALLING FOR FORCED TAB undefined ^ 021751* 0000 9631 AND FLAGS undefined ^ undefined ^ 021752* 0000 9632 021753* 7650 SNA CLA 9633 021754* 5750 JMP I INSTAB / NON-SKIP RETURN, DONE 9634 TAD (ECTAB) / IF FORCED TAB BIT FOUND undefined ^ undefined ^ 021755* 1370 9635 021756* 4772 JMS INSFORCE / THEN INSERT TAB CODE 9636 021757* 2350 ISZ INSTAB 9637 021760* 5750 JMP I INSTAB / SKIP RETURN, CONTINUE 9638 9639 /****************************SUBROUTINE*********************************/ 9640 9641 X=. / INDICATE FIRST FREE LOCATION ON PAGE 9642 /--------------- 9643 021765* 2000 PAGE 021766* 3000 021767* 0400 021770* 0000 021771* 3344 021772* 2722 021773* 0406 021774* 2522 021775* 2106 021776* 3030 021777* 2200 9644 9645 DSKBLK=.-200%400+DL4EDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 9646 9647 9648 /***********************************************************************/ 9649 / / 9650 / PHASE 4 INSERT RESULTS IN ASCII INTO PREPARED FIELDS / 9651 / / 9652 /***********************************************************************/ 9653 9654 022000* 4777 PHASE4, JMS EDITINIT / INITIALIZE EDIT CURSOR POINTER 9655 022001* 1376 TAD (FLDDIM-5) 9656 DCA REG1 undefined ^ undefined ^ 022002* 3000 9657 DCA FLDCNT / CLEAR FIELD COUNTER undefined ^ undefined ^ 022003* 3000 9658 CDFEDT undefined ^ 022004* 0000 9659 022005* 1775 TAD I (CURUL+NWLMAR-NWRUL) / GET VALUE OF LEFT MARGIN 9660 022006* 0000 CDFMYF / AND SET PCP 9661 DCA PCP undefined ^ undefined ^ 022007* 3000 9662 9663 9664 9665 / DETERMINE CASE 9666 9667 022010* 4774 PH41, JMS NXCASE / GET NEXT CODE & RETURN ACCORDING TO CASE 9668 022011* 5217 JMP PH411 / ALPHANUMERIC 9669 022012* 5221 JMP PH412 / SPACE 9670 022013* 5270 JMP PH414 / NEW LINE 9671 022014* 5223 JMP PH413 / TAB 9672 022015* 5271 JMP PH415 / OWN CODE 9673 022016* 5217 JMP PH411 / DEAD KEY 9674 9675 9676 / CASE: ALPHANUMERIC 9677 9678 PH411, ISZ PCP / INCR POSITION ON LINE undefined ^ undefined ^ 022017* 2000 9679 022020* 5210 JMP PH41 9680 9681 9682 / CASE: SPACE OR SOFT SPACE 9683 9684 PH412, ISZ PCP / INCR POSITION ON LINE undefined ^ undefined ^ 022021* 2000 9685 022022* 5210 JMP PH41 9686 9687 9688 / CASE: TAB 9689 9690 022023* 4306 PH413, JMS GETFLDS / GET FLAGS, TABPCP, BEGFLD, ENDFLD 9691 NEWCON undefined ^ 022024* 0000 9692 022025* 5773 JMP INSEXIT / NON-SKIP RETURN, END OF INSERTIONS 9693 022026* 4772 JMS INSBLANK / CHECK FOR BLANK FIELD 9694 022027* 7410 SKP / NON-BLANK RETURN 9695 022030* 5210 JMP PH41 / BLANK - GO GET NEXT CODE 9696 TAD BEGFLD / SET PCP=BEGINNING OF FIELD undefined ^ undefined ^ 022031* 1000 9697 DCA PCP undefined ^ undefined ^ 022032* 3000 9698 TAD FLAGS / CHECK FOR DTAB RESULT FIELD undefined ^ undefined ^ 022033* 1000 9699 022034* 7700 SMA CLA 9700 022035* 5210 JMP PH41 9701 TAD FLAGS / GET POINTER TO BCD RESULT undefined ^ undefined ^ 022036* 1000 9702 022037* 4771 JMS GETRES 9703 022040* 1370 TAD (-1) / OFFSET POINTER RETURNED FROM GETRES 9704 022041* 3243 DCA PH4131 / AND THEN DO BCD TO ASCII CONVERSION, 9705 JMS BCDASC undefined ^ undefined ^ 022042* 4000 9706 PH4131, XX undefined ^ 022043* 0000 9707 022044* 3040 NUMBUF 9708 022045* 0000 CDFMYF 9709 DCA REG3 undefined ^ undefined ^ 022046* 3000 9710 DCA I REG3 undefined ^ undefined ^ 022047* 3400 9711 022050* 1367 TAD (NUMBUF) / AND FINALLY TRANSFER ASCII NUMBER 9712 DCA REG3 / FROM NUMBUF TO undefined ^ undefined ^ 022051* 3000 9713 PH4132, TAD I REG3 / INSERTION INTO THE undefined ^ undefined ^ 022052* 1400 9714 022053* 7650 SNA CLA / EDIT BUFFER. 9715 022054* 5210 JMP PH41 9716 022055* 4766 JMS READNEXT / MOVE CURSOR POINTER ONE PLACE RIGHT 9717 022056* 7000 NOP 9718 TAD I REG3 / GET ASCII CODE FROM NUMBUF undefined ^ undefined ^ 022057* 1400 9719 022060* 7421 MQL 9720 TAD FLAGS undefined ^ undefined ^ 022061* 1000 9721 AND (MASKATTR) / GET ATTRIBUTES, undefined ^ undefined ^ 022062* 0365 9722 022063* 7521 SWP / CHARACTER & 9723 022064* 4764 JMS INSMCH / INSERT INTO EDIT BUFFER. 9724 ISZ PCP undefined ^ undefined ^ 022065* 2000 9725 ISZ REG3 undefined ^ undefined ^ 022066* 2000 9726 022067* 5252 JMP PH4132 9727 9728 9729 / CASE: NEW LINE 9730 9731 022070* 5773 PH414, JMP INSEXIT / GO TO REJUSTIFY & EXIT 9732 9733 9734 / CASE: OWN CODE, I.E. CODE INSERTED TO MARK NON-TAB, NON-DTAB FIELDS 9735 9736 022071* 4763 PH415, JMS DELCODE / DELETE ECMTH1+400 FIELD MARKER 9737 022072* 4306 JMS GETFLDS / SET FLAGS TABPCP BEGFLD ENDFLD 9738 NEWCON undefined ^ 022073* 0000 9739 022074* 5773 JMP INSEXIT / NON-SKIP RETURN ENDS INSERTION 9740 PH4151, TAD BEGFLD / THEN INSERT SPACES, AS undefined ^ undefined ^ 022075* 1000 9741 022076* 7041 CIA / NEEDED TO ARRIVE AT BEGINNING 9742 TAD PCP / OF FIELD. undefined ^ undefined ^ 022077* 1000 9743 022100* 7700 SMA CLA 9744 022101* 5210 JMP PH41 9745 TAD (ECSPC) undefined ^ undefined ^ 022102* 1365 9746 022103* 4762 JMS INSCODE / INSERT SPACE INTO EDIT BUFFER 9747 ISZ PCP undefined ^ undefined ^ 022104* 2000 9748 022105* 5275 JMP PH4151 9749 9750 /******************************SUBROUTINE*******************************/ 9751 9752 / GET flags tabpcp begfld (new/old dimensions) endfld (new/old dimensions) 9753 / FROM THE NEXT ENTRY IN FLDDIM 9754 9755 GETFLDS,XX undefined ^ 022106* 0000 9756 022107* 1706 TAD I GETFLDS / GET PARAMETER IDENTIFYING TYPE OF CONTENTS 9757 022110* 3316 DCA GETF2 9758 022111* 2306 ISZ GETFLDS 9759 GETF1, TAD REG1 / ADVANCE POINTER TO NEXT ENTRY IN FLDDIM undefined ^ undefined ^ 022112* 1000 9760 022113* 1361 TAD (5) 9761 DCA REG1 undefined ^ undefined ^ 022114* 3000 9762 022115* 4760 JMS GETITEM / GET NEXT LEFT & RIGHT BOUNDARIES 9763 GETF2, XX / RETURNS END LIST OR AC=LT BOUNDARY undefined ^ 022116* 0000 9764 022117* 5706 JMP I GETFLDS / MQ=RT BOUNDARY 9765 022120* 7450 SNA 9766 022121* 5312 JMP GETF1 / GET NEXT ENTRY IF ENTRY IS BLANK. 9767 DCA BEGFLD undefined ^ undefined ^ 022122* 3000 9768 TAD REG1 / GET FLAGS & TAB PCP FROM SAME ENTRY undefined ^ undefined ^ 022123* 1000 9769 DCA REG2 undefined ^ undefined ^ 022124* 3000 9770 TAD I REG2 / GET FLAGS undefined ^ undefined ^ 022125* 1400 9771 DCA FLAGS undefined ^ undefined ^ 022126* 3000 9772 ISZ REG2 undefined ^ undefined ^ 022127* 2000 9773 TAD I REG2 / GET TAB PCP undefined ^ undefined ^ 022130* 1400 9774 DCA TABPCP undefined ^ undefined ^ 022131* 3000 9775 022132* 7701 ACL 9776 DCA ENDFLD / GET ENDFLD undefined ^ undefined ^ 022133* 3000 9777 ISZ FLDCNT / INCR FIELD COUNT undefined ^ undefined ^ 022134* 2000 9778 022135* 2306 ISZ GETFLDS / TAKE SKIP RETURN 9779 022136* 5706 JMP I GETFLDS 9780 9781 /******************************SUBROUTINE*******************************/ 9782 9783 / "CKSCLT" CHECKS TO SEE IF IN SELECT MODE AND IF SO THEN SHUTS DOWN 9784 / MATH FOR A PARTICULAR WORK AREA WHETHER IN THAT AREA OR NOT. THIS 9785 / IS CLEANER THAN TRYING TO DETERMINE IF IN SELECT MODE AND IN EDITOR 9786 / MATH WORK AREA ( WHICH MUST INCLUDE SOME WAY TO TELL IF JUST STARTING 9787 / ONE BUT NOT CONFIRMED YET, I.E. SELECT MODE HIT AT A "BEGIN" COMMAND), 9788 / AND THEN HAVING TO SHUT DOWN MATH ANYWAYS. 9789 / 9790 / IF IN "SELECT MODE" 9791 / | THEN SHUT DOWN MATH IN CASE IN WORK AREA 9792 / | RETURN TO EDITOR 9793 / | ELSE RETURN TO CALLER TO CONTINUE PROCESSING 9794 / 9795 9796 CKSCLT, XX undefined ^ 022137* 0000 9797 CDFEDT / GET EDITOR DATA FIELD undefined ^ 022140* 0000 9798 022141* 1757 TAD I (ESLMOD+1) / GET SELECT MODE FLAG 9799 022142* 0756 AND I (EDMODE) / AND IT WITH THE EDITOR MODE 9800 022143* 0000 CDFMYF / RETURN TO THIS DATA FIELD 9801 022144* 7650 SNA CLA / IS THE EDITOR IN SELECT MODE? 9802 022145* 5737 JMP I CKSCLT / NO: RETURN TO CALLER TO CONTINUE PROCESSING 9803 022146* 4755 JMS SCRINI / YES: SHUT MATH DOWN IN CASE SELECT DONE IN 9804 / EDITOR MATH WORK AREA 9805 022147* 5754 JMP BKEDIT / RETURN TO EDITOR 9806 9807 X=. / INDICATE FIRST FREE LOCATION ON PAGE 9808 /--------------- 9809 022154* 7140 PAGE 022155* 4023 022156* 0133 022157* 3750 022160* 2623 022161* 0005 022162* 2727 022163* 3344 022164* 4113 022165* 0000 022166* 1073 022167* 3040 022170* 7777 022171* 2476 022172* 3000 022173* 1516 022174* 2522 022175* 6525 022176* 3030 022177* 2200 9810 9811 DSKBLK=.-200%400+DL4EDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 9812 9813 9814 /***********************************************************************/ 9815 / / 9816 / PROGRAM SUBROUTINES / 9817 / / 9818 /***********************************************************************/ 9819 9820 /****************************SUBROUTINE*********************************/ 9821 9822 / INITIALIZE EDIT CURSOR POINTER TO START OF LINE 9823 9824 EDITINIT,XX undefined ^ 022200* 0000 9825 CDFEDT undefined ^ 022201* 0000 9826 022202* 1777 TAD I (CURUL+NWRMAR-NWRUL) / GET RIGHT MARGIN 9827 DCA RIGHTM undefined ^ undefined ^ 022203* 3000 9828 022204* 1776 TAD I (CURUL+NWLMAR-NWRUL) / GET LEFT MARGIN 9829 DCA TABPCP / SAVE LEFT MARGIN SETTING undefined ^ undefined ^ 022205* 3000 9830 AC7777 undefined ^ 022206* 0000 9831 022207* 1775 TAD I (LINE23) / GET POINTER TO BEGINNING OF LINE-1 9832 022210* 3774 DCA I (CURPTR) / AND INITIALIZE CURSOR POINTER 9833 022211* 0000 CDFMYF 9834 022212* 5600 JMP I EDITINIT 9835 9836 9837 /****************************SUBROUTINE*********************************/ 9838 9839 / GETS THE NEXT TAB POSITION FROM RULER & RETURNS DATA ABOUT IT: 9840 9841 / RETURNS MQ0=1 RIGHT MARGIN AC0=1 RESULT FIELD 9842 / MQ1=1 > OR J OR R AC6-11 DTAB NUMBER 9843 / MQ4-11 TAB PCP 9844 9845 GETTAB, XX undefined ^ 022213* 0000 9846 022214* 1373 TAD (-1) / ADJUST PTR SINCE CURUL COUNTS FROM 0 9847 022215* 7421 MQL / RESET RULER POSITION POINTER 9848 022216* 7701 GT0, ACL / AC=POSITION WITH WHICH TO START SEARCH 9849 CIFMNU /M208 undefined ^ 022217* 0000 9850 022220* 4772 JMS CALSWAP / CALL_A_ROUTINE IN EDITOR SWAP AREA /M208 9851 022221* 2200 FNTABSTOP / FIND NEXT TAB STOP 9852 CDFEDT undefined ^ 022222* 0000 9853 022223* 0371 AND (0003) / MAKE SURE VALUE DOES NOT EXCEED LIMIT 9854 022224* 1370 TAD (TABCLASS) / ADD PTR TO DISPATCH TABLE 9855 022225* 3234 DCA GT1 / SAVE IN GT1 FOR INDIRECT 9856 022226* 1634 TAD I GT1 / GET ADDR OF TYPE ROUTINE 9857 022227* 3234 DCA GT1 9858 022230* 7701 ACL / GET TAB POSITION INTO AC 9859 022231* 7001 IAC / & INCREMENT (VALUE IS RETURNED 1 TO LEFT) 9860 022232* 7421 MQL / & RETURN TO MQ 9861 022233* 5634 JMP I GT1 / GOTO EXECUTE ROUTINE PER TYPE 9862 022234* 0000 GT1, 0 9863 022235* 2241 TABCLASS, GT2 9864 022236* 2241 GT3 9865 022237* 2242 GT4 9866 022240* 2253 GT5 9867 9868 9869 / TYPE 0 - L D C N H F 9870 / TYPE 1 - T W P 9871 9872 GT2= . 9873 GT3= . 9874 022241* 5613 JMP I GETTAB 9875 9876 9877 / TYPE 2 - > J R 9878 9879 022242* 7701 GT4, ACL 9880 022243* 7041 CIA 9881 TAD RIGHTM / CHECK FOR RIGHT MARGIN SETTING undefined ^ undefined ^ 022244* 1000 9882 022245* 7650 SNA CLA 9883 AC4000 / SET FLAG FOR RIGHT MARGIN undefined ^ 022246* 0000 9884 022247* 1367 TAD (2000) / SET FLAG FOR > OR J TAB 9885 022250* 7501 MQA 9886 022251* 7421 MQL / MQ=TABCLASS+PCP - AC=FLAGS=0 9887 022252* 5613 JMP I GETTAB / EXIT 9888 9889 9890 / TYPE 3 - . 9891 9892 9893 GT5, TAD DTABN / GET NEXT DTAB NUMBER undefined ^ undefined ^ 022253* 1000 9894 022254* 7001 IAC 9895 022255* 4766 JMS GETRES / GET RESULT BIT & IGNORE POINTER 9896 022256* 7210 CLA RAR / SHIFT BITS TO COMBINE WITH PCP 9897 TAD DTABN / MQ=PCP AC0=1 & AC6-11=DTAB NO. undefined ^ undefined ^ 022257* 1000 9898 022260* 7001 IAC 9899 022261* 5613 JMP I GETTAB 9900 9901 9902 /****************************SUBROUTINE*********************************/ 9903 9904 / INSERT CONTENTS OF AC INTO TABLE FLDDIM AT REG1 INDIRECT + PARAMETER 9905 9906 / REG1 ON ENTRY IS ASSUMED TO POINT TO CURRENT 9907 / ENTRY IN FLDDIM 9908 9909 TABINS, XX undefined ^ 022262* 0000 9910 022263* 3274 DCA TREG4 / SAVE AC 9911 TAD REG1 / REG3 = FLDDIM + 2*FLDCNT + PARAMETER undefined ^ undefined ^ 022264* 1000 9912 022265* 1662 TAD I TABINS 9913 022266* 3273 DCA TREG3 9914 022267* 1274 TAD TREG4 / RECOVER SAVED AC & 9915 022270* 3673 DCA I TREG3 / PUT INTO TABLE. 9916 022271* 2262 ISZ TABINS / END OF PREVIOUS FIELD 9917 022272* 5662 JMP I TABINS 9918 022273* 0000 TREG3, 0 9919 022274* 0000 TREG4, 0 9920 9921 /****************************SUBROUTINE*********************************/ 9922 9923 / COPY VALUES FROM LOCATIONS flags tabpcp begfld endfld 9924 / INTO FLDDIM TABLE. ALSO, IF THE FIELD DESCRIBED IS A RESULTS FIELD, 9925 / THEN GET THE LENGTHS LEFT & RIGHT OF DECIMAL DIGIT OF THE RESULT 9926 / AND COPY INTO FLDDIM. 9927 9928 / REG1 IS ASSUMED TO POINT TO NEXT SLOT IN FLDDDIM 9929 9930 FLDSTRT,XX undefined ^ 022275* 0000 9931 TAD FLAGS undefined ^ undefined ^ 022276* 1000 9932 022277* 4262 JMS TABINS / SET FIRST TABLE ITEM = FLAGS 9933 022300* 0000 0 9934 TAD CHARCNT / CHECK FOR EMPTY FIELD, TAB ONLY undefined ^ undefined ^ 022301* 1000 9935 022302* 7650 SNA CLA 9936 022303* 1365 TAD (1000) / IF EMPTY, THEN SET TAB ONLY BIT 9937 TAD TABPCP undefined ^ undefined ^ 022304* 1000 9938 022305* 4262 JMS TABINS / SET SECOND TABLE ITEM = TAB PCP 9939 022306* 0001 1 9940 TAD BEGFLD undefined ^ undefined ^ 022307* 1000 9941 022310* 4262 JMS TABINS / SET THIRD TABLE ITEM = LEFT BOUNDARY 9942 022311* 0002 2 9943 TAD ENDFLD undefined ^ undefined ^ 022312* 1000 9944 022313* 4262 JMS TABINS / SET FOURTH TABLE ITEM = RIGHT BOUNDARY 9945 022314* 0003 3 9946 TAD FLAGS / CHECK FOR DTAB RESULT FIELD undefined ^ undefined ^ 022315* 1000 9947 022316* 7700 SMA CLA 9948 022317* 5333 JMP FLDS2 9949 TAD DTABN / IF DTAB RESULT FIELD, THEN GET LENGTHS undefined ^ undefined ^ 022320* 1000 9950 022321* 4766 JMS GETRES / GET POINTER TO BCD NO. FROM DCHAR/TCHAR 9951 022322* 1373 TAD (-1) / AND ADJUST IT. 9952 022323* 3325 DCA FLDS1 9953 JMS BCDASC / CALL BCD TO ASCII CONVERSION undefined ^ undefined ^ 022324* 4000 9954 FLDS1, XX / RETURNS: MQ=LEFT.RIGHT undefined ^ 022325* 0000 9955 022326* 3040 NUMBUF / LEFT=DIGITS LEFT OF DECIMAL 9956 022327* 0000 CDFMYF / RIGHT=DEC.DIGITS INCLUDING DECIMAL 9957 022330* 7701 ACL 9958 022331* 4262 JMS TABINS / SET FIFTH TABLE ITEM = 0 OR RESULTS LENGTHS 9959 022332* 0004 4 9960 FLDS2, TAD REG1 / INCREMENT TABLE POINTER TO NEXT ENTRY SLOT undefined ^ undefined ^ 022333* 1000 9961 022334* 1364 TAD (5) 9962 DCA REG1 undefined ^ undefined ^ 022335* 3000 9963 TAD ENDFLD / SAVE RIGHT BOUNDARY OF SEARCH ZONE undefined ^ undefined ^ 022336* 1000 9964 022337* 7421 MQL 9965 TAD FLAGS / CHECK FOR DTAB FIELD undefined ^ undefined ^ 022340* 1000 9966 022341* 7650 SNA CLA 9967 022342* 5345 JMP FLDS3 9968 TAD TABPCP / IF DTAB FIELD, THEN undefined ^ undefined ^ 022343* 1000 9969 022344* 7410 SKP / BEGIN SEARCH AFTER DTAB 9970 FLDS3, TAD BEGFLD / SWEEP ZONE OF FIELD JUST CREATED FOR undefined ^ undefined ^ 022345* 1000 9971 022346* 1363 TAD (4000) / SKIPPED TABS - THESE MUST BE 9972 022347* 4762 JMS TABCHK / PUT INTO LIST TO CATCH ANY RESULT 9973 022350* 5675 JMP I FLDSTRT / DTABS UNUSABLE WITHIN ANOTHER FIELD 9974 9975 /****************************SUBROUTINE*********************************/ 9976 9977 / BKEDI4 Moved here this edit to gather space in one place /a247 9978 9979 / AN EXIT IS DONE FROM THE "EXTRACTNUMBER" ROUTINE THRU "BKEDI4" 9980 / WHEN CONDITIONS ON THE TOTAL LINE OF EDITOR MATH ARE SUCH AS TO NOT 9981 / ALLOW A PROPER PARSING OF THAT LINE BECAUSE IT IS TERMINATED BY A 9982 / SOFT RETURN OR, NOT TO ALLOW INSERTION OF THE TOTAL VALUE BECAUSE 9983 / A RULER CHANGE WITH NO DECIMAL TABS IN IT HAS BEEN INSERTED PREVIOUS 9984 / TO THE TOTAL LINE. THIS CODE TRAPS THESE CONDITIONS BY RESETTING THE 9985 / "TOTAL" FLAG TO REFLECT THE ABOVE - THUS TURNING OF TOTALS INSERTION 9986 9987 BKEDI4, CDFMTH / CHANGE TO MATH DATA FIELD undefined ^ 022351* 0000 9988 DCA I (MTHTOT) / SET "TOTAL" FLAG TO FALSE undefined ^ undefined ^ 022352* 3761 9989 022353* 0000 CDFMYF / RETURN TO THIS DATA FIELD 9990 022354* 5760 JMP BKEDI3 / GO RESET CURPTR & RETURN TO THE EDITOR 9991 9992 X=. / INDICATE FIRST FREE LOCATION ON PAGE 9993 /--------------- 9994 022360* 7137 PAGE 022361* 0000 022362* 2400 022363* 4000 022364* 0005 022365* 1000 022366* 2476 022367* 2000 022370* 2235 022371* 0003 022372* 1400 022373* 7777 022374* 0135 022375* 0171 022376* 6525 022377* 6526 9995 9996 DSKBLK=.-200%400+DL4EDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 9997 9998 9999 /****************************SUBROUTINE*********************************/ 10000 10001 / CHECK FOR RULER-DEFINED TABS BETWEEN FIELDS & CREATE DUMMY FLDDIM ENTRIES 10002 10003 / AC=LEFT LIMIT OF ZONE TO SWEEP 10004 / PLUS AC0=0 MEANS SWEEP IS BETWEEN FIELDS 10005 / AC0=1 MEANS SWEEP INTERIOR OF A FIELD 10006 /MQ=RIGHT LIMIT OF ZONE TO SWEEP 10007 TABCHK, XX undefined ^ 022400* 0000 10008 DCA REG2 / SAVE IN ORDER TO CHECK LATER FOR TYPE undefined ^ undefined ^ 022401* 3000 10009 TAD REG2 / OF CALL: SWEEP FIELD OR BETWEEN FIELDS undefined ^ undefined ^ 022402* 1000 10010 DCA REG3 / SAVE LEFT LIMIT OF ZONE TO CHECK FOR TABS undefined ^ undefined ^ 022403* 3000 10011 022404* 7701 ACL 10012 DCA REG4 / SAVE RIGHT LIMIT OF ZONE TO CHECK FOR TABS undefined ^ undefined ^ 022405* 3000 10013 TAB1, TAD REG3 undefined ^ undefined ^ 022406* 1000 10014 AND P377 / GET ORIGINAL OR NEW LEFT LIMIT undefined ^ undefined ^ 022407* 0000 10015 022410* 4777 JMS GETTAB / SEARCH TABLE ONE FOR NEXT GREATER TAB 10016 022411* 7521 SWP / MAKE AC=TAB POSITION,MQ=FLAGS 10017 022412* 7450 SNA 10018 022413* 5600 JMP I TABCHK / EXIT IF NO FURTHER TAB POINTS FOUND 10019 DCA REG3 / SAVE POSITION IF GREATER TAB POINT IS FOUND undefined ^ undefined ^ 022414* 3000 10020 TAD REG3 undefined ^ undefined ^ 022415* 1000 10021 AND P377 / CHECK IF THIS POSITION < RIGHT LIMIT undefined ^ undefined ^ 022416* 0000 10022 022417* 7041 CIA 10023 TAD REG4 undefined ^ undefined ^ 022420* 1000 10024 022421* 7710 SPA CLA 10025 022422* 5600 JMP I TABCHK / NO - EXIT 10026 022423* 7701 ACL 10027 022424* 7640 SZA CLA 10028 ISZ DTABN / COUNT DTAB POSITION undefined ^ undefined ^ 022425* 2000 10029 TAD REG2 / DO NOT FLAG TO FORCE TAB UNLESS undefined ^ undefined ^ 022426* 1000 10030 022427* 7004 RAL / CALL IS TO SWEEP BETWEEN FIELDS! 10031 022430* 7701 ACL / GET FLAGS - RETURNED BY GETTAB ABOVE 10032 022431* 7420 SNL 10033 022432* 1376 TAD (2000) / SET BITS TO FORCE INSERTION OF TAB 10034 022433* 4775 JMS TABINS / CREATE TAB POSITION ENTRY 10035 022434* 0000 0 / PUT FLAGS WORD INTO FLDDIM 10036 TAD REG3 undefined ^ undefined ^ 022435* 1000 10037 022436* 4775 JMS TABINS / PUT TABPCP WORD INTO FLDDIM 10038 022437* 0001 1 10039 022440* 7701 ACL 10040 022441* 7700 SMA CLA / IF DTAB RESULT FIELD, THEN FILL OUT 10041 022442* 5272 JMP TAB3 / BEGFLD 10042 TAD REG3 / ENDFLD undefined ^ undefined ^ 022443* 1000 10043 AND P377 / NEW.DIMENSIONS undefined ^ undefined ^ 022444* 0000 10044 022445* 4775 JMS TABINS 10045 022446* 0002 2 10046 TAD REG3 undefined ^ undefined ^ 022447* 1000 10047 AND P377 / BEGFLD & ENDFLD = TAB POSITION undefined ^ undefined ^ 022450* 0000 10048 022451* 4775 JMS TABINS 10049 022452* 0003 3 10050 TAD DTABN undefined ^ undefined ^ 022453* 1000 10051 022454* 4276 JMS GETRES / NEW.DIMENSIONS = VALUE OF MQ RETURNED 10052 022455* 1374 TAD (-1) / BY BCDASC ROUTINE 10053 022456* 3260 DCA TAB2 10054 JMS BCDASC undefined ^ undefined ^ 022457* 4000 10055 TAB2, XX undefined ^ 022460* 0000 10056 022461* 3040 NUMBUF 10057 022462* 0000 CDFMYF 10058 022463* 7701 ACL 10059 022464* 4775 JMS TABINS / PUT NEW.DIMENSIONS INTO TABLE 10060 022465* 0004 4 10061 AC6000 undefined ^ 022466* 0000 10062 TAD I REG1 / CHECK FOR RESULT FIELD WHERE TAB undefined ^ undefined ^ 022467* 1400 10063 022470* 7700 SMA CLA / CANNOT BE FORCED 10064 022471* 5773 JMP FLDERR / IF FOUND, THIS IS AN ERROR! 10065 022472* 1372 TAB3, TAD (5) / ADVANCE TO NEXT ENTRY SLOT 10066 TAD REG1 undefined ^ undefined ^ 022473* 1000 10067 DCA REG1 undefined ^ undefined ^ 022474* 3000 10068 022475* 5206 JMP TAB1 10069 10070 /****************************SUBROUTINE*********************************/ 10071 10072 / ACCESS DCHAR OR TCHAR AND BCD TABLES 10073 10074 / CALL WITH AC = REL. NO. OF DTAB TO CHECK 10075 10076 / RETURNING AC = POINTER TO BCD RESULTS 10077 / LINK = 1 IF FIELD IS A RESULT FIELD 10078 10079 GETRES, XX undefined ^ 022476* 0000 10080 AND P77 / SUPPRESS FLAG BITS undefined ^ undefined ^ 022477* 0000 10081 022500* 1374 TAD (-1) / TABLE ACCESSES COUNT DTAB'S FROM 0 10082 022501* 7100 CLL / CLEAR LINE IN CASE OF NULL RETURN 10083 TAD DTABPR / GET ADDR OF RESULTS TABLE undefined ^ undefined ^ 022502* 1000 10084 022503* 3321 DCA GREG4 / SET ADDR OF ENTRY IN RESULTS TABLE 10085 022504* 1721 TAD I GREG4 / MAKE SURE THERE IS A POINTER IN DCHAR 10086 022505* 7450 SNA / OTHERWISE, 10087 022506* 5676 JMP I GETRES / EXIT IF NO POINTER IN DCHAR 10088 022507* 3320 DCA GREG3 / SAVE PTR TO DTAB VALUE 10089 CDFMTH / DTAB VALUE IN IN FIELD SIX undefined ^ 022510* 0000 10090 022511* 1720 TAD I GREG3 / GET FIRST WORD OF VALUE (FLAGS) 10091 022512* 0000 CDFMYF 10092 022513* 0371 AND (400) / SAVE RESULT BIT (1 IF RESULT) 10093 022514* 7106 CLL RTL / IN LINK 10094 022515* 7006 RTL 10095 022516* 1721 TAD I GREG4 / RETURN POINTER IN AC 10096 022517* 5676 JMP I GETRES 10097 022520* 0000 GREG3, 0 10098 022521* 0000 GREG4, 0 10099 10100 10101 /****************************SUBROUTINE*********************************/ 10102 10103 / GET NEXT CODE FROM EDIT BUFFER AND DETERMINE CASE 10104 10105 / RETURN IS AT RETURN + n as follows: 10106 10107 / 0 alphanumeric 10108 / 1 space 10109 / 2 new line 10110 / 3 tab 10111 / 4 own code 10112 / 5 dead key 10113 10114 NXCASE, XX undefined ^ 022522* 0000 10115 022523* 4770 JMS SVNTO8 / GET NEXT CODE 10116 022524* 5345 JMP NXCR2 / ETX RETURN GOES TO NEW LINE 10117 TAD CRLMB / AC=CODE WITHOUT ATTRIBUTES undefined ^ undefined ^ 022525* 1000 10118 TAD (-ECSPC) / MATCH AGAINST SPACE CODE undefined ^ undefined ^ 022526* 1367 10119 022527* 7540 SMA SZA / IS IT GREATER THAN SPACE 10120 022530* 5347 JMP NXCR0 / IT'S GREATER: GO HANDLE ALPHANUMERIC 10121 022531* 7450 SNA / IS IT EQUAL TO SPACE 10122 022532* 5346 JMP NXCR1 / IT'S EQUAL: GO HANDLE SPACE 10123 TAD (ECSPC-ECTAB) / MATCH AGAINST TAB CODE undefined ^ undefined ^ undefined ^ undefined ^ 022533* 1367 10124 022534* 7540 SMA SZA / IS IT GREATER THAN TAB 10125 022535* 5345 JMP NXCR2 / IT'S GREATER: GO HANDLE NEW LINE 10126 022536* 7450 SNA / IS IT EQUAL TO TAB 10127 022537* 5344 JMP NXCR3 / IT'S EQUAL: GO HANDLE TAB 10128 TAD (ECTAB-ECMTH1) / MATCH AGAINST OUR OWN INSERT CODE undefined ^ undefined ^ 022540* 1366 10129 022541* 7640 SZA CLA / IF EQUAL: THEN GO HANDLE OUR OWN CODE 10130 022542* 2322 NXCR5, ISZ NXCASE / DEAD KEY RETURN 10131 022543* 2322 NXCR4, ISZ NXCASE / OUR OWN CODE RETURN 10132 022544* 2322 NXCR3, ISZ NXCASE / TAB RETURN 10133 022545* 2322 NXCR2, ISZ NXCASE / NEW LINE RETURN 10134 022546* 2322 NXCR1, ISZ NXCASE / SPACE RETURN 10135 022547* 7200 NXCR0, CLA / ALPHANUMERIC RETURN - CLEAR UNWANTED VALUE 10136 022550* 5722 JMP I NXCASE / RETURN TO CALLER 10137 10138 10139 /D236 NXCASE, XX 10140 /D236 JMS READNEXT / GET NEXT CODE 10141 /D236 JMP NXC1 / ETX RETURN GOES TO NEW LINE 10142 /D236 TAD CRLMB / AC=CODE WITHOUT ATTRIBUTES 10143 /D236 JMS MATCH / MATCH AGAINST SPACE 10144 /D236 ECSPC 10145 /D236 JMP I NXCASE / GREATER: ALPHANUMERIC 10146 /D236 JMP NXC1 / LESS: FUNCTION 10147 /D236 ISZ NXCASE 10148 /D236 JMP I NXCASE / EQUAL: SPACE 10149 /D236 NXC1, ISZ NXCASE 10150 /D236 ISZ NXCASE 10151 /D236 TAD CRLMB 10152 /D236 JMS MATCH / MATCH AGAINST TAB CODE 10153 /D236 ECTAB 10154 /D236 JMP I NXCASE / GREATER: NEW LINE 10155 /D236 JMP NXC2 / LESS: DEAD KEY OR OWN CODE 10156 /D236 ISZ NXCASE / EQUAL: TAB 10157 /D236 JMP I NXCASE 10158 /D236NXC2, ISZ NXCASE 10159 /D236 ISZ NXCASE 10160 /D236 TAD CRLMB 10161 /D236 TAD (-ECMTH1) / MATCH AGAINST OWN INSERT CODE 10162 /D236 SZA CLA / EQUAL: OWN INSERT CODE 10163 /D236 ISZ NXCASE / UNEQUAL: DEAD KEY 10164 /D236 JMP I NXCASE 10165 10166 /****************************SUBROUTINE*********************************/ 10167 10168 / CKCTRS Moved here to gather space in one place elsewhere /a247 10169 10170 / ROUTINE USED IN "CKCTRL" TO SEE IF IN A CONTROL BLOCK OR NOT. DOES A 10171 / SKIP RETURN IF IN BLOCK AND A NORMAL RETURN IF NOT. 10172 10173 CKCTRS, XX undefined ^ 022551* 0000 10174 CDFEDT / CHANGE OVER TO EDITOR DATA FIELD undefined ^ 022552* 0000 10175 022553* 1765 TAD I (PCTLFL) / GET CONTROL BLOCK FLAG 10176 CDFLP / BACK TO THIS DATA FIELD undefined ^ 022554* 0000 10177 022555* 7710 SPA CLA / FOUND A CONTROL BLOCK? 10178 022556* 2351 ISZ CKCTRS / YES: SET UP SKIP RETURN 10179 022557* 5751 JMP I CKCTRS / NO: DO NORMAL RETURN 10180 10181 X=. / INDICATE FIRST FREE LOCATION ON PAGE 10182 /--------------- 10183 022565* 0142 PAGE 022566* 7772 022567* 0000 022570* 7635 022571* 0400 022572* 0005 022573* 1433 022574* 7777 022575* 2262 022576* 2000 022577* 2213 10184 10185 DSKBLK=.-200%400+DL4EDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 10186 10187 10188 /****************************SUBROUTINE*********************************/ 10189 10190 /D236 / MATCH CONTENTS OF AC TO PARAMETER CODE 10191 /D236 / CALLING SEQUENCE IS: 10192 /D236 / AC=CODE1 10193 /D236 / JMS MATCH 10194 /D236 / CODE2 10195 /D236 / -RETURN IF CODE1 > CODE2 10196 /D236 / -RETURN IF CODE1 < CODE2 10197 /D236 / -RETURN IF CODE1 = CODE2 10198 /D236 MATCH, 0 10199 /D236 CIA 10200 /D236 TAD I MATCH 10201 /D236 ISZ MATCH 10202 /D236 SMA 10203 /D236 ISZ MATCH 10204 /D236 SNA CLA 10205 /D236 ISZ MATCH 10206 /D236 JMP I MATCH 10207 10208 /****************************SUBROUTINE*********************************/ 10209 10210 / STMPDK SToMP on Dead Keys. This routine tests the character /a247 10211 / in the edit buffer pointed to by the AC on entry. If /a247 10212 / it is an End of Dead Key, previous characters will be /a247 10213 / overwritten until an Start of Dead key is found. If it /a247 10214 / is not, then just this character is overwritten. /a247 10215 / 10216 / Calling sequence should be:- /a247 10217 / 10218 / AC=Address of character /a247 10219 / CDFBUF /a247 10220 / JMS STMPDK /a247 10221 10222 STMPDK, XX / Stomp on poor, unsuspecting dead keys /a247 undefined ^ 022600* 0000 10223 022601* 3222 DCA DELPTR / Store the address passed in the AC /a247 10224 022602* 1622 TAD I DELPTR / Get the character at this address /a247 10225 TAD (-ECNDOV) / Test for End of Dead Key character /a247 undefined ^ undefined ^ 022603* 1377 10226 022604* 7640 SZA CLA / Is this a Dead Key Sequence? /a247 10227 022605* 5220 JMP NOSTMP / No, only stomp this character /a247 10228 022606* 1622 FNDEND, TAD I DELPTR / Get the character again /a247 10229 022607* 7421 MQL / Save it /a247 10230 022610* 3622 DCA I DELPTR / Stomp on character in Dead Key /a247 10231 AC7777 / Backup to previous character /a247 undefined ^ 022611* 0000 10232 022612* 1222 TAD DELPTR / /a247 10233 022613* 3222 DCA DELPTR / /a247 10234 022614* 1622 TAD I DELPTR / And get it /a247 10235 TAD (-ECSTOV) / Test for Start of Dead character /a247 undefined ^ undefined ^ 022615* 1377 10236 022616* 7640 SZA CLA / Have we stomped all the Dead Key yet? /a247 10237 022617* 5206 JMP FNDEND / No, still got to find the Start /a247 10238 022620* 3622 NOSTMP, DCA I DELPTR / Delete the character (or Start Dead) /a247 10239 022621* 5600 JMP I STMPDK / Return /a247 10240 10241 022622* 0000 DELPTR, 0 10242 10243 /****************************SUBROUTINE*********************************/ 10244 10245 / GET BEGINNING & ENDING FIELD BOUNDARYS FROM FLDDIM 10246 10247 / REG1 IS ASSUMED TO POINT TO THE NEXT 10248 / ITEM IN THE TABLE TO BE ACCESSED. 10249 / REG1 WILL NOT BE CHANGED UNLESS A DUMMY 10250 / ENTRY IS ENCOUNTERED, IN WHICH CASE REG1 10251 / WILL BE LEFT POINTED TO THE NEXT NON-DUMMY ENTRY. 10252 10253 GETITEM,XX undefined ^ 022623* 0000 10254 TAD REG1 / GET POINTER & INITIALIZE WORKING POINTER undefined ^ undefined ^ 022624* 1000 10255 DCA REG2 undefined ^ undefined ^ 022625* 3000 10256 TAD I REG2 / CHECK FOR RESULT FIELD (AC0=1) undefined ^ undefined ^ 022626* 1400 10257 022627* 7700 SMA CLA 10258 022630* 5256 JMP GETIT1 10259 022631* 1623 TAD I GETITEM / NEW OR OLD CONTENTS WANTED? 10260 022632* 7650 SNA CLA 10261 022633* 5256 JMP GETIT1 10262 ISZ REG2 / GET NEW RESULT FIELD & COMPUTE BOUNDARIES undefined ^ undefined ^ 022634* 2000 10263 TAD I REG2 / GET DTAB PCP undefined ^ undefined ^ 022635* 1400 10264 AND P377 undefined ^ undefined ^ 022636* 0000 10265 022637* 3321 DCA GTREG 10266 ISZ REG2 undefined ^ undefined ^ 022640* 2000 10267 ISZ REG2 undefined ^ undefined ^ 022641* 2000 10268 ISZ REG2 undefined ^ undefined ^ 022642* 2000 10269 TAD I REG2 / GET WORD: LEFT BYTE=NO. LT DIGITS undefined ^ undefined ^ 022643* 1400 10270 AND P77 / RIGHT BYTE=NO. RT DIGITS undefined ^ undefined ^ 022644* 0000 10271 022645* 1376 TAD (-1) 10272 022646* 1321 TAD GTREG / RIGHT BOUNDARY=PCP-1+NO.RT DIGITS 10273 022647* 7421 MQL / MQ=RIGHT BOUNDARY 10274 TAD I REG2 undefined ^ undefined ^ 022650* 1400 10275 022651* 7002 BSW 10276 AND P77 / LEFT BOUNDARY=PCP-NO.LT DIGITS undefined ^ undefined ^ 022652* 0000 10277 022653* 7041 CIA 10278 022654* 1321 TAD GTREG / AC=LEFT BOUNDRY,MQ=RIGHT BOUNDRY 10279 022655* 5316 JMP GETIT5 / THEN EXIT 10280 GETIT1, AC2000 undefined ^ 022656* 0000 10281 AND I REG2 / CHECK FOR A FORCED-TAB ENTRY undefined ^ undefined ^ 022657* 0400 10282 022660* 7650 SNA CLA 10283 022661* 5270 JMP GETIT2 10284 ISZ REG2 / IF FORCED-TAB, THEN SET BOUNDRIES undefined ^ undefined ^ 022662* 2000 10285 TAD I REG2 undefined ^ undefined ^ 022663* 1400 10286 AND P377 undefined ^ undefined ^ 022664* 0000 10287 022665* 7421 MQL 10288 022666* 7701 ACL 10289 022667* 5316 JMP GETIT5 10290 GETIT2, ISZ REG2 / CHECK FOR END OF FLDDIM undefined ^ undefined ^ 022670* 2000 10291 TAD I REG2 undefined ^ undefined ^ 022671* 1400 10292 ISZ REG2 undefined ^ undefined ^ 022672* 2000 10293 022673* 7640 SZA CLA 10294 022674* 5300 JMP GETIT3 10295 TAD I REG2 / IF BOTH TABPCP & BEGFLD = 0, THEN undefined ^ undefined ^ 022675* 1400 10296 022676* 7650 SNA CLA 10297 022677* 5317 JMP GETIT6 / EXIT, END OF FLDDIM, NON-SKIP RETURN 10298 10299 GETIT3, TAD I REG2 / CHECK FOR DUMMY ENTRY IN FLDDIM, SKIPPED TAB undefined ^ undefined ^ 022700* 1400 10300 022701* 7440 SZA / POSITION,I.E. BEGFLD=0 10301 022702* 5312 JMP GETIT4 10302 TAD REG1 / SKIPPED ENTRY: SETUP RETURN AC=0 & MQ=TABPCP undefined ^ undefined ^ 022703* 1000 10303 022704* 7001 IAC 10304 DCA REG2 undefined ^ undefined ^ 022705* 3000 10305 TAD I REG2 / SET AC=TABPCP undefined ^ undefined ^ 022706* 1400 10306 AND P377 undefined ^ undefined ^ 022707* 0000 10307 022710* 7421 MQL / SET MQ=TABPCP - AC=0 10308 022711* 5316 JMP GETIT5 10309 022712* 7421 GETIT4, MQL / NORMAL ENTRY,MQ=LEFT BOUNDARY 10310 ISZ REG2 undefined ^ undefined ^ 022713* 2000 10311 TAD I REG2 / AC=RIGHT BOUNDARY undefined ^ undefined ^ 022714* 1400 10312 022715* 7521 SWP / AC=LEFT BOUNDARY, MQ=RIGHT BOUNDARY 10313 022716* 2223 GETIT5, ISZ GETITEM / NORMAL SKIP EXIT 10314 022717* 2223 GETIT6, ISZ GETITEM / END OF LIST NON-SKIP EXIT 10315 022720* 5623 JMP I GETITEM 10316 022721* 0000 GTREG, 0 10317 10318 10319 /****************************SUBROUTINE*********************************/ 10320 10321 / INSERT CODE FOUND IN AC INTO TEXT STREAM AT CURRENT CURSOR VALUE 10322 / THEN BYPASS THIS CODE PLUS THE FOLLOWING CODE 10323 10324 / AC=CODE TO INSERT INTO EDIT BUFFER 10325 10326 INSFORCE,XX undefined ^ 022722* 0000 10327 022723* 4327 JMS INSCODE / ECMTH1 CODE TO MARK FIELD BEGINNING 10328 022724* 4775 JMS READNEXT / AFTER INSERT, AVOID RE-READING 10329 022725* 7000 NOP / INSERTED CODE 10330 022726* 5722 JMP I INSFORCE 10331 10332 /****************************SUBROUTINE*********************************/ 10333 10334 / INSERT CODE INTO EDIT BUFFER 10335 10336 / AC=CODE TO INSERT INTO EDIT BUFFER 10337 10338 INSCODE,XX undefined ^ 022727* 0000 10339 CIFEDT undefined ^ 022730* 0000 10340 022731* 4774 JMS CALLAR / CALL INSERT ROUTINE 10341 022732* 2000 INSERT 10342 CDFBUF undefined ^ 022733* 0000 10343 022734* 5727 JMP I INSCODE 10344 10345 /****************************SUBROUTINE*********************************/ 10346 10347 / CLEAR AN AREA TO ZEROS 10348 / 10349 / JMS CLRZER 10350 / -PTR TO START OF ZONE TO CLEAR 10351 / -NEG. OF NUMBER OF WORDS TO CLEAR 10352 10353 CLRZER, XX undefined ^ 022735* 0000 10354 022736* 1735 TAD I CLRZER / INITIALIZE POINTER 10355 DCA REG2 undefined ^ undefined ^ 022737* 3000 10356 022740* 2335 ISZ CLRZER 10357 022741* 1735 TAD I CLRZER / INITIALIZE COUNTER 10358 DCA REG1 undefined ^ undefined ^ 022742* 3000 10359 022743* 2335 ISZ CLRZER 10360 CLRZ1, DCA I REG2 / CLEAR ONE LOCATION undefined ^ undefined ^ 022744* 3400 10361 ISZ REG2 / ADVANCE POINTER undefined ^ undefined ^ 022745* 2000 10362 ISZ REG1 / LOOP UNTIL COUNTER=0 undefined ^ undefined ^ 022746* 2000 10363 022747* 5344 JMP CLRZ1 10364 022750* 5735 JMP I CLRZER 10365 10366 /****************************SUBROUTINE*********************************/ 10367 10368 / PCP=PCP+XPCP 10369 10370 INSEXTR,XX undefined ^ 022751* 0000 10371 TAD PCP / ADVANCE POSITION PTR PAST undefined ^ undefined ^ 022752* 1000 10372 TAD XPCP / ANY EXTRA SPACES undefined ^ undefined ^ 022753* 1000 10373 DCA PCP / PCP = PCP + XPCP undefined ^ undefined ^ 022754* 3000 10374 022755* 5751 JMP I INSEXTR 10375 10376 /****************************SUBROUTINE*********************************/ 10377 10378 / CHECK FOR TYPE OF FIELD & ADJUST ENDFLD ACCORDING TO CASE 10379 10380 SETFEND,XX undefined ^ 022756* 0000 10381 AC2000 undefined ^ 022757* 0000 10382 AND TABPCP / IF '>' FIELD & undefined ^ undefined ^ 022760* 0000 10383 022761* 7450 SNA 10384 022762* 5367 JMP SETFE1 10385 022763* 7010 RAR / THAT FIELD IS NOT BLANK 10386 AND TABPCP / THEN TAKE SKIP RETURN undefined ^ undefined ^ 022764* 0000 10387 022765* 7650 SNA CLA 10388 022766* 7410 SKP 10389 022767* 4773 SETFE1, JMS INSBLANK / ELSE, CHECK FOR BLANK (TAB-ONLY) FIELD 10390 022770* 2356 ISZ SETFEND 10391 022771* 5756 JMP I SETFEND 10392 10393 /****************************SUBROUTINE*********************************/ 10394 10395 X=. / INDICATE FIRST FREE LOCATION ON PAGE 10396 /--------------- 10397 022773* 3000 PAGE 022774* 0251 022775* 1073 022776* 7777 022777* 0000 10398 10399 DSKBLK=.-200%400+DL4EDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 10400 10401 10402 /****************************SUBROUTINE*********************************/ 10403 10404 / CHECK FOR BLANK FIELD & TAKE NON-SKIP RETURN IF NOT BLANK 10405 10406 INSBLANK,XX undefined ^ 023000* 0000 10407 023001* 1622 TAD I GETF2A / IF FIELD ACCESSED IS NEW CONTENTS 10408 023002* 1223 TAD NEWLIT / THEN 10409 023003* 7640 SZA CLA / DO CHECK 10410 023004* 5210 JMP INSBL0 / FOR RESULT FIELD 10411 TAD FLAGS / FIRST CHECK FOR RESULT FIELD undefined ^ undefined ^ 023005* 1000 10412 023006* 7710 SPA CLA 10413 023007* 5600 JMP I INSBLANK / IF SO, TAKE NON-BLANK RETURN 10414 INSBL0, AC2000 / ELSE, CHECK FOR FORCE-TAB BIT undefined ^ 023010* 0000 10415 AND FLAGS undefined ^ undefined ^ 023011* 0000 10416 023012* 7640 SZA CLA 10417 023013* 5220 JMP INSBL1 / IF SET, TAKE BLANK RETURN 10418 AC2000 / ELSE, IF BLANK BIT SET undefined ^ 023014* 0000 10419 023015* 7010 RAR / (AC2000 & RAR=2000,NO LITERAL 10420 AND TABPCP / THEN TAKE BLANK RETURN undefined ^ undefined ^ 023016* 0000 10421 023017* 7640 SZA CLA 10422 023020* 2200 INSBL1, ISZ INSBLANK / IF BLANK DO SKIP RET. 10423 023021* 5600 JMP I INSBLANK / IF NON-BLANK, RETURN 10424 023022* 2116 GETF2A, GETF2 / MUST AVOID ASSEMBLY ADDR AT FOOT OF PAGE 10425 NEWLIT, -NEWCON / DITTO undefined ^ 023023* 0000 10426 10427 /****************************SUBROUTINE*********************************/ 10428 / INMATH Moved here this edit to gather space together elsewhere /a247 10429 10430 / THIS ROUTINE MAKES A SKIP RETURN IF WE ARE IN A MATH AREA OR A CONTROL 10431 / BLOCK AND A REGULAR RETURN IF NOT 10432 INMATH, XX / undefined ^ 023024* 0000 10433 023025* 7200 CLA / 10434 CDFEDT / SET TO EDITORS DATA FIELD undefined ^ 023026* 0000 10435 023027* 1634 TAD I XPCTLFL / TEST CONTROL_BLOCK FLAG 10436 / =0 IF NOT IN CONTROL BLOCK 10437 / =-1 IF IN A CONTROL BLOCK 10438 023030* 7041 CIA / AC=0 IF IN = 1 IF NOT IN 10439 023031* 0000 CDFMYF / 10440 / =0 IF NOT IN MATH AREA 10441 / =1 IF IN A MATH AREA 10442 023032* 2224 ISZ INMATH / BUMP RETURN ADDRESS IF EITHER 10443 / FLAG IS SET 10444 023033* 5624 JMP I INMATH / RETURN 10445 10446 023034* 0142 XPCTLFL,PCTLFL / It says above that auto links should /a247 10447 / not be generated. Who am I to argue? /a247 10448 10449 /***********************************************************************/ 10450 / / 10451 / ALLOCATE TABLE AREA / 10452 / / 10453 /***********************************************************************/ 10454 10455 / THE TABLE FLDDIM IS COMPRISED OF FIVE WORDS PER ENTRY, AS FOLLOWS: 10456 / 10457 / FLAGS BIT 0=1 INDICATES RESULT FIELD 10458 / BIT 1=1 INDICATES TAB MUST BE INSERTED 10459 / BITS 2-4 FIELD/CHARACTER ATTRIBUTES 10460 / BITS 6-11 GIVES DTAB NUMBER OF DTAB FIELDS 10461 / 10462 / TABPCP BIT 0=1 INDICATES 'R' ENTRY 10463 / BIT 1=1 INDICATES '>' 'J' OR 'R' ENTRY 10464 / BIT 2=1 INDICATES FIELD WITHOUT DATA,TAB ONLY 10465 / BITS 4-11 GIVES POSITION OF TAB 10466 / 10467 / BEGFLD BITS 0-11 GIVES POSITION OF FIELD BEGINNING, 10468 / FIRST NON-SPACE CODE IN THE FIELD 10469 / 10470 / ENDFLD BITS 0-11 GIVES POSITION OF FIELD ENDING, 10471 / LAST NON-SPACE CODE IN THE FIELD, 10472 / UNLESS THE FIELD IS RIGHT 10473 / JUSTIFIED, IN WHICH CASE SPACES 10474 / ARE COUNTED 10475 / 10476 / RESULTS BITS 0-5 NUMBER OF POSITIONS TO THE 10477 / LEFT OF THE DECIMAL POINT 10478 / BITS 6-11 NUMBER OF POSITIONS TO THE 10479 / RIGHT OF THE DECIMAL POINT 10480 / AND INCLUDING THE DECIMAL POINT 10481 / 10482 10483 FLDDIM, ZBLOCK 5^MXTABS+3 undefined ^ 023035* 0000 023036* 0000 023037* 0000 10484 10485 / ALLOCATE BUFFER TO HOLD ASCII NUMBER CONVERTED FROM BCD PRIOR TO 10486 / BEING INSERTED INTO THE EDIT BUFFER! 10487 10488 NUMBUF, ZBLOCK MXASCII+1 undefined ^ 023040* 0000 10489 10490 10491 X=. / INDICATE FIRST FREE LOCATION ON PAGE 10492 /--------------- 10493 PAGE 10494 10495 DSKBLK=.-200%400+DL4EDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 10496 10497 / PSEUDO-CODE TO SET UP SYMBOL TABLE ENTRIES FROM EDITOR MATH TO FIT INTO 10498 / TABLES THAT HOLD POINTERS TO THE VALUES OF ":Dnn" and ":Tnn". 10499 10500 / START PROGRAM 10501 / 10502 / GET LEAD CHAR 10503 / 10504 / IF (LEAD CHAR = "D" OR "T") AND NOT LAST CHAR 10505 / THEN SET UP CORRESPONDING TABLE FOR ENTRY 10506 / | GET NEXT CHAR 10507 / | IF NOT LAST CHAR 10508 / | THEN IF CHAR VALUE RANGE = NUMERICAL 1 TO 3 10509 / | | THEN CALCULATE FIRST PART OF OFFSET TO TABLE 10510 / | | | GET NEXT CHAR 10511 / | | | IF LAST CHAR AND CHAR VAL RANGE = NUM 0 TO 9 10512 / | | | THEN CALCULATE REST OF OFFSET TO TBL 10513 / | | | | PUT SYM VALUE PTR IN TABLE 10514 / | | | ENDIF 10515 / | | ENDIF 10516 / | ELSE IF CHAR VALUE RANGE = NUMERICAL 1 TO 9 10517 / | | THEN CALCULATE OFFSET TO TABLE 10518 / | | | PUT SYM VALUE PTR IN TABLE 10519 / | | ENDIF 10520 / | ENDF 10521 / ENDIF 10522 / 10523 / RETURN TO CALLER 10524 / 10525 / END PROGRAM 10526 / 10527 10528 10529 / VALUES USED IN EDITOR MATH SYMBOL NAME PROCESSING CODE 10530 10531 023200* 0000 STRMT1, 0 / CONTAINS SYM PTR TABLE PTR TO SYM NAME PTR 10532 023201* 0000 STRPTR, 0 / CONTAINS PTR TO SYM NAME IN SYMBOL TABLE 10533 023202* 0000 HLDTBL, 0 / CONTAINS BASE ADDR OF TABLE TO INSERT SYM VAL PTR 10534 023203* 0000 TBLOFS, 0 / CONTAINS OFFSET INTO TABLE WHERE TO PUT SYM VAL PTR 10535 10536 / ROUTINE TO RUN CHECK ON SYMBOLS ADDED TO SYMBOL TABLE WHEN IN EDITOR MATH 10537 / NOTE - RETAIN MATH DATA FIELD TO SET UP POINTERS 10538 10539 CHKNME, XX undefined ^ 023204* 0000 10540 023205* 3200 DCA STRMT1 / POINTER & SAVE IT 10541 023206* 1600 TAD I STRMT1 / INDIRECT THRU IT TO GET PTR TO NAME IN SYM TABLE 10542 023207* 3201 DCA STRPTR / SAVE IT 10543 10544 / CHECK IF FIRST LETTER (AFTER THE COLON) OF THE SYM NAME IS A "T" 10545 / OR "D" 10546 10547 023210* 2201 ISZ STRPTR / ADVANCE START OF NAME PTR TO SKIP ":" 10548 023211* 1601 TAD I STRPTR / GET FIRST CHAR AFTER COLON 10549 023212* 7510 SPA / IF IT IS LAST CHAR IN NAME 10550 023213* 5274 JMP EXTCHK / THEN EXIT (NOT A VALID COLUMN NAME) 10551 023214* 1377 TAD (-"D+200) / GET NEGATIVE 7 BIT ASCII VALUE FOR A "D" 10552 023215* 7450 SNA / IS THE CHAR A "D"? 10553 023216* 5223 JMP DTAB / YES: GO SET UP FOR RIGHT TABLE IF PROCESS IT 10554 023217* 1376 TAD ("D-"T) / NO: RESET AC AND GET NEG OF ASCII FOR "T" 10555 023220* 7640 SZA CLA / IF CHAR NOT A "T" 10556 023221* 5274 JMP EXTCHK / THEN EXIT (NOT A VALID COLUMN NAME) 10557 023222* 1375 TAD (TCHAR-DCHAR) / GET START OF "T"PROCESSING TABLE 10558 023223* 1374 DTAB, TAD (DCHAR) / GET START OF "D" PROCESSING TABLE 10559 023224* 3202 DCA HLDTBL / INITIALIZE D OR T PROCESSING TABLE 10560 10561 / CHECK FOR SYMBOL NAME SIZE 10562 10563 023225* 2201 CONCHK, ISZ STRPTR / MOVE DOWN TO NEXT CHAR IN NAME 10564 023226* 1601 TAD I STRPTR / GET NEXT CHARACTER IN NAME 10565 023227* 7510 SPA / IF THIS IS THE LAST CHAR 10566 023230* 5256 JMP PRSONE / THEN GO TO HANDLE A ":Dn" NAME 10567 10568 / PROCESS TWO DIGITS LEFT AFTER "D" OR "T" 10569 10570 023231* 4300 JMS RNGECK / CHECK THE RANGE ON THE DIGIT 10571 023232* 7717 -"1+200 / PASS NEGATIVE OF LOWER LIMIT OF RANGE 10572 023233* 7715 -"3+200 / PASS NEGATIVE OF UPPER LIMIT OF RANGE 10573 023234* 5274 JMP EXTCHK / IF NOT IN RANGE THEN EXIT (NOT A VALID COLUMN NAME) 10574 / RETURN HERE IF IN RANGE SPECIFIED - 10575 023235* 7104 CLL RAL / MULTIPLE IT BY 2 10576 023236* 3203 DCA TBLOFS / SAVE IT 10577 023237* 1203 TAD TBLOFS / GET IT BACK 10578 023240* 7106 CLL RTL / MULTIPLE IT BY 8 10579 023241* 1203 TAD TBLOFS / ADD MULTIPLICATON BY 2 10580 023242* 3203 DCA TBLOFS / SAVE THE NUM AS PART OF AN OFFSET TO THE TABLE 10581 023243* 2201 ISZ STRPTR / SET PTR TO SECOND OF TWO DIGITS 10582 023244* 1601 TAD I STRPTR / GET THE CHAR 10583 023245* 7500 SMA / IF NOT THE LAST CHAR 10584 023246* 5274 JMP EXTCHK / THEN EXIT (NOT A VALID COLUMN NAME) 10585 AND P177 / STIP OFF MINUS BIT (WHICH INDICATES LAST CHAR) undefined ^ undefined ^ 023247* 0000 10586 023250* 4300 JMS RNGECK / CHECK THE RANGE ON THE DIGIT 10587 023251* 7720 -"0+200 / PASS NEGATIVE OF LOWER LIMIT OF RANGE 10588 023252* 7707 -"9+200 / PASS NEGATIVE OF UPPER LIMIT OF RANGE 10589 023253* 5274 JMP EXTCHK / RETURN HERE IF NOT IN RANGE - RETURN TO CALLER 10590 / RETURN HERE IF IN RANGE AC = 0 TO 9 10591 023254* 1203 TAD TBLOFS / ADD IN THE VALUE OF FIRST DIGIT * 10 10592 023255* 5263 JMP SAVSYM / GO INSERT PTR TO SYM NAME VALUE IN THE TABLE 10593 10594 / PROCESS ONE DIGIT LEFT AFTER "D" OR "T" 10595 10596 PRSONE, AND P177 / STRIP OFF SIGN BIT undefined ^ undefined ^ 023256* 0000 10597 023257* 4300 JMS RNGECK / CHECK THE RANGE ON THE DIGIT 10598 023260* 7717 -"1+200 / PASS NEGATIVE OF LOWER LIMIT OF RANGE 10599 023261* 7707 -"9+200 / PASS NEGATIVE OF UPPER LIMIT OF RANGE 10600 023262* 5274 JMP EXTCHK / RETURN HERE IF NOT IN RANGE - RETURN TO CALLER 10601 / RETURN HERE IF IN RANGE - AC = CHAR - 60 10602 10603 / INSERT PTR TO SYMBOL NAME VALUE INTO THE APPROPRIATE TABLE 10604 10605 023263* 3203 SAVSYM, DCA TBLOFS / SAVE OFFSET INTO TABLE 10606 AC7777 / DECREMENT TABLE ADDRESS BY 1 TO ALLOW THE USE undefined ^ 023264* 0000 10607 / OF THE FIRST LOC OF TBL,SINCE NEVER SEE "<:D0>" 10608 023265* 1202 TAD HLDTBL / GET START OF TABLE TO PROCESS CHAR 10609 023266* 1203 TAD TBLOFS / GET OFFSET TO THE TABLE 10610 023267* 3203 DCA TBLOFS / USE IT TO SET UP A POINTER 10611 CDFLP / RETURN TO LP DATA FIELD undefined ^ 023270* 0000 10612 AC0002 / SET TO MOVE PTR BY FORMAT WORD TO START OF VALUE undefined ^ 023271* 0000 10613 023272* 1201 TAD STRPTR / ADD TO IT PTR TO END OF SYM NAME 10614 023273* 3603 DCA I TBLOFS / PLACE IT INTO THE PROPER PLACE IN THE TABLE 10615 EXTCHK, CDIMTH / SET PROGRAM CONTROL BACK TO MATH FIELD undefined ^ 023274* 0000 10616 023275* 7200 CLA 10617 023276* 5604 JMP I CHKNME / RETURN TO CALLER IN MATH FIELD 10618 10619 / ROUTINE TO RANGE CHECK ON A SPECIFIC CHARACTER. CALL TO THIS ROUTINE IS 10620 / SET UP AS FOLLOWS: 10621 / . 10622 / . 10623 / (CHAR TO BE CHECKED PASSED IN THE AC) / 10624 / JMS RNGECK / 10625 / (NEGATIVE OF LOWER LIMIT OF RANGE) / 10626 / (NEGATIVE OF UPPER LIMIT OF RANGE) / 10627 / RETURN HERE IF NOT IN RANGE / 10628 / RETURN HERE IF IN RANGE / 10629 / (AC HAS CHAR -60 ON EXIT WEATHER FOUND OR NOT) 10630 / . 10631 10632 023277* 0000 RNGCHR, 0 / CHAR PASSED IN AC 10633 10634 RNGECK, XX / RANGE CHECK ROUTINE undefined ^ 023300* 0000 10635 CDFLP / CDF TO MY FIELD undefined ^ 023301* 0000 10636 023302* 3277 DCA RNGCHR / SAVE CHAR PASSED FOR RANGE CHECK 10637 023303* 1700 TAD I RNGECK / GET NEG OF LOW END OF RANGE 10638 023304* 1277 TAD RNGCHR / ADD TO IT CHAR FOR CHECK 10639 023305* 7710 SPA CLA / IS CHAR IN RANGE? 10640 023306* 5313 JMP OUTRNG / NO: SET SKIP RETURN TO PROCESS ACCORDINGLY 10641 023307* 2300 ISZ RNGECK / YES: SET P.C. TO PICK UP UPPER RANGE LIMIT 10642 023310* 1700 TAD I RNGECK / GET NEG OF UPPER LIMIT INTO AC 10643 023311* 1277 TAD RNGCHR / ADD TO IT CHAR FOR CHECK 10644 023312* 7750 SPA SNA CLA / IS CHAR IN RANGE? 10645 023313* 2300 OUTRNG, ISZ RNGECK / YES: SET RETURN TO PROCESS ACCORDINGLY 10646 023314* 2300 ISZ RNGECK / NO: SET RETURN TO SKIP PROCESSING 10647 CDFMTH / CDF BACK TO MATH FIELD undefined ^ 023315* 0000 10648 023316* 1277 TAD RNGCHR / GET DIGIT BACK IN AC 10649 023317* 1373 TAD (-60) / CHANGE FROM ASCII TO BINARY 10650 023320* 5700 JMP I RNGECK / RETURN TO CALLER 10651 10652 / Here on a Gold Bottom request. Gold Bottom goes to the end of the 10653 / descriptor list and then backs up 10 blocks. if the last ruler found 10654 / was below the 10 blocks, the wrong ruler will be loaded for the scroll. 10655 / this routine starts searching from this 10th block up, looking for the 10656 / first ruler. when found return to load this ruler and continue the 10657 / scroll 10658 10659 / delete this logic from GOLD_BOTTOM... /A195 10660 10661 /D195RULCHK, XX / SAVE CALLERS RETURN ADDRESS 10662 /D195 TAD I (RPCUOF) / SAVE CURRENT OFFSET 10663 /D195 DCA I (RPMTBK) / FOR SCROLL AFTER FINDING RULER 10664 /D195 TAD I (RPCUBK) / ALONG WITH BLK ID # 10665 /D195 DCA I (RPBKID) 10666 /D195 JMS BACK1 / GO LOOK FOR BLK W/RULER 10667 /D195 CIFEDT / FOR RETURN TO OVERLAYS 10668 /D195 JMP I RULCHK / RETURN 10669 10670 / routine sets up blocks for ruler load and resets blocks for scroll 10671 10672 023321* 1772 BACK3, TAD I (RPCUOF) / RULER FOUND AT THIS OFFSET 10673 023322* 3771 DCA I (RPMTRL) / SET UP THE BLKS FOR THE RULER LOAD 10674 023323* 1770 TAD I (RPCUBK) / BLK ID # 10675 023324* 3767 DCA I (RPRLHN) 10676 023325* 1766 TAD I (RPMTBK) / RETRIEVE LOC. FOR START OF SCROLL 10677 023326* 3772 DCA I (RPCUOF) / CURRENT OFFSET FOR START 10678 / BLK ID IS SET UP ON RETURN LOC IN OVERLAY 10679 023327* 5765 JMP BACK4 / RETURN 10680 10681 10682 / THE FOLLOWING ROUTINE IS CALLED FROM WITHIN "CKCTRL". IT IS USED TO 10683 / MAKE SURE THAT THE 1ST TIME A CONTROL BLOCK IS ENCOUNTERED, IT IS 10684 / THE FIRST LINE AFTER THE "START CONTROL" CHAR. THIS IS NECESSARY 10685 / SINCE SUCH THINGS AS A "GOLD-BOTTOM" OR "BACK-UP LINE" CAN LEAVE THE 10686 / USER IN ANY KIND OF A CONTROL BLOCK SITUATION, BUT NOT NECESSARILY ON 10687 / THE FIRST LINE OF THAT CONTROL BLOCK. IF HOWEVER THE LINE THE USER IS 10688 / LEFT ON STARTS WITH A "WPSMATH" (CR) "BEGIN" (CR), EVEN IF THERE ARE 10689 / ILLEGAL MATH CTRL BLOCK LINES PRECEEDING IT, THE CODE WILL THINK IT IS 10690 / THE BEGINNING OF A VALID EDITOR MATH WORK AREA. THIS CODE IS INSURANCE 10691 / THAT THIS WILL NOT HAPPEN. 10692 10693 10694 023330* 0000 STLOC2, 0 / LOC TO HOLD ADDR TO START OF 2ND LINE FROM 10695 / THE BOTTOM OF THE SCREEN, KEEP ON SAME PAGE 10696 / WITH "STLOC1" ROUTINE 10697 10698 STLOC1, XX undefined ^ 023331* 0000 10699 CDFEDT / CHANGE TO EDITOR DATA FIELD undefined ^ 023332* 0000 10700 023333* 1764 TAD I (PTRBLK+NPTRS-2)/ PTR TO THE 2ND LINE FROM THE BOTTOM 10701 023334* 3330 DCA STLOC2 / SAVE IT 10702 CDFBUF / CHANGE TO EDIT BUFFER DATA FIELD undefined ^ 023335* 0000 10703 023336* 1730 TAD I STLOC2 / GET THE FIRST CHAR ON THAT LINE 10704 023337* 0000 CDFMYF / RETURN TO THIS DATA FIELD 10705 TAD (-ECPCT1) / ADD TO IT NEGATIVE OF "START CTRL" CHAR undefined ^ undefined ^ 023340* 1375 10706 023341* 7640 SZA CLA / IS 2ND LINE FROM BOTTOM A "START CONTROL"? 10707 023342* 2331 ISZ STLOC1 / NO: SET SKIP RETURN TO HANDLE 10708 023343* 5731 JMP I STLOC1 / YES: NORMAL RETURN TO CONTINUE PROCESSING 10709 10710 / DELCODE moved here to gather space elsewhere in one place /a247 10711 / DELETE CODE FROM EDIT BUFFER 10712 10713 DELCODE,XX undefined ^ 023344* 0000 10714 CDFEDT undefined ^ 023345* 0000 10715 023346* 1763 TAD I (CURPTR) / DELETE BY OVERWRITING CODE POINTED TO 10716 /d247 DCA DELPTR / BY CURPTR WITH A NULL 10717 CDFBUF undefined ^ 023347* 0000 10718 023350* 3357 DCA DELTEMP / Save the pointer /a247 10719 023351* 1757 TAD I DELTEMP / Get it back to save in the MQ register/a247 10720 023352* 7421 MQL / ... /a247 10721 023353* 1357 TAD DELTEMP / Get the address back to pass on /a247 10722 /d247 TAD I DELPTR / GET CODE TO SAVE ATTRIBUTES 10723 023354* 4762 JMS STMPDK / Stomp on the character pointed to /a247 10724 /d247 MQL 10725 /d247 DCA I DELPTR 10726 023355* 0000 CDFMYF 10727 023356* 5744 JMP I DELCODE 10728 10729 023357* 0000 DELTEMP,0 10730 10731 X=. / INDICATE FIRST FREE LOCATION ON PAGE 10732 /--------------- 10733 023362* 2600 PAGE 023363* 0135 023364* 6247 023365* 7351 023366* 3363 023367* 6537 023370* 0761 023371* 5162 023372* 2756 023373* 7720 023374* 0200 023375* 0000 023376* 7760 023377* 7674 10734 10735 DSKBLK=.-200%400+DL4EDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 10736 10737 TRANTP=. / TOP OF TRANSLATIONS PAGE /A258 10738 / THESE MESSAGES BROUGHT IN FROM THE EDITOR OVERLAYS. THEY ARE SPECIAL 10739 / IN THAT THEY ARE NEVER USED WHILE IN LIST PROCESSING. 10740 10741 10742 10743 10744 10745 10746 10747 10748 10749 10750 EIFND1, 10751 IFDEF ENGLSH < TEXT "!&ENTER !&PHRASE: " > 10752 IFDEF V30NOR < TEXT "!&ANGI !&UTTRYKK: " > 10753 IFDEF V30SWE < TEXT "&SKRIV FRAS: " > 10754 IFDEF SPANISH < TEXT "&TECLEE &FRASE: " > /A255 10755 IFDEF ITALIAN 10756 IFDEF CANADA < TEXT "&TAPER &L'&EXPRESSION: " > 10757 IFDEF FRENCH < TEXT "&TAPER &L'&EXPRESSION : " > 10758 IFDEF DUTCH < TEXT "&TYP &DE &ZOEKTEKST: " > 10759 IFDEF GERMAN < TEXT "&BEGRIFF &EINGEBEN: " > 10760 IFDEF NORWAY < TEXT "&SKRIV &S\KEBEGREP: " > /L.PHI 10761 IFDEF SWEDSH < TEXT "&SKRIV &S\KBEGREPP: " > /L.U.O 10762 IFDEF DANISH < TEXT "&SKRIV &S\GEBEGREP : " > /L.PHI 10763 10764 EIGES1, 10765 IFDEF ENGLSH < TEXT "!&ENTER !&NAME: " > 10766 IFDEF V30NOR < TEXT "!&ANGI !&NAVN: " > 10767 IFDEF V30SWE < TEXT "&SKRIV NAMN: " > 10768 IFDEF SPANISH < TEXT "&TECLEE &NOMBRE: " > /A255 10769 IFDEF ITALIAN 10770 IFDEF CANADA < TEXT "&TAPER &LE &NOM: " > 10771 IFDEF FRENCH < TEXT "&TAPER &LE &NOM : " > 10772 IFDEF DUTCH < TEXT "&TYP &DE &NAAM: " > 10773 IFDEF GERMAN < TEXT "&NAME &EINGEBEN: " > 10774 IFDEF NORWAY < TEXT "&SKRIV &NAVN: " > 10775 IFDEF SWEDSH < TEXT "&SKRIV &NAMN: " > 10776 IFDEF DANISH 10777 10778 EIGER2, 10779 IFDEF ENGLSH < TEXT "!&NOT !&FOUND-!&REENTER: " > 10780 IFDEF V30NOR < TEXT "!&IKKE !&FUNNET-!&LEGG INN P\E NYTT: " > 10781 IFDEF V30SWE < TEXT "&HITTAS INTE - &F\VRS\VK IGEN: " > 10782 IFDEF SPANISH < TEXT "&NO &SE &ENCUENTRA-&TECLEE OTRA VEZ: " >/A255 10783 IFDEF ITALIAN 10784 IFDEF CANADA < TEXT "&INTROUVABLE-&REESSAYER:"> 10785 IFDEF FRENCH < TEXT "&INTROUVABLE--&REESSAYER : " >/L.A.E 10786 IFDEF DUTCH < TEXT "&NIET &AANWEZIG-&PROBEER &OPNIEUW: " > 10787 IFDEF GERMAN < TEXT "&NICHT &GEFUNDEN--&NOCH &EINMAL: " > 10788 IFDEF NORWAY < TEXT "&IKKE &FUNNET--&PR\V &IGJEN: " > /L.PHI 10789 IFDEF SWEDSH < TEXT "&FINNS &INTE--&F\RS\K &IGEN: " > /L.U.O, L.U.O 10790 IFDEF DANISH / L.PHI 10791 10792 / FOLLOWING TEXT STATEMENTS MOVED IN FROM EDITOR OVERLAYS SINCE THEY 10793 / MUST NOW RESIDE IN FIELD 5 10794 RANBAD, 10795 IFDEF ENGLSH < TEXT " - &UP &TO 4 &DIGITS &ALLOWED" > 10796 IFDEF V30NOR < TEXT " - &INNTIL 4 SIFFER ER TILLATT" > 10797 IFDEF V30SWE < TEXT " - &MAXIMALT 4 TECKEN \DR TILL\ETNA" > 10798 IFDEF SPANISH < TEXT " - &SE &PERMITE &HASTA 4 &D\MGITOS" > /A255 10799 IFDEF ITALIAN < TEXT " - &MAX. 4 CIFRE" > 10800 IFDEF DUTCH < TEXT " - &MAX. 4 CIJFERS"> 10801 10802 CHABAD, 10803 IFDEF ENGLSH < TEXT " - &NUMBERS &ONLY &PLEASE" > 10804 IFDEF V30NOR < TEXT " - &BARE TALL" > 10805 IFDEF V30SWE < TEXT " - &SKRIV ENDAST TAL" > 10806 IFDEF SPANISH < TEXT " - &S\SLO &N\ZMEROS" > /A255 10807 IFDEF ITALIAN < TEXT " - &SOLO NUMERI" > 10808 IFDEF DUTCH < TEXT " - &GEBRUIK ALLEEN CIJFERS" > 10809 10810 10811 RPPME9, 10812 IFDEF ENGLSH < TEXT " - &MULTIPLE &MATH &START &BLOCKS" > 10813 IFDEF V30NOR < TEXT " - &FLERE &START-BLOKKER FOR ®NING" > 10814 IFDEF V30SWE < TEXT " - &FLERTAL &MATEMATIK &START &BLK" > 10815 IFDEF SPANISH < TEXT " - &BLOQUES &INICIO &MAT &M\ZLTIPLE" > /A255 10816 IFDEF ITALIAN < 10817 TEXT " - &C'\H UN SECONDO COMANDO !&INIZIO NELL'AREA MATEMATICA" > 10818 IFDEF DUTCH < TEXT " - &MEERDERE !&BEGIN (REKENEN) OPDRACHTEN" > 10819 10820 RPPRETRY, 10821 IFDEF ENGLSH < TEXT " - &PRESS !&RETURN &TO &CONTINUE" > 10822 IFDEF V30NOR < TEXT " - &TRYKK P'E !&RETUR FOR \E FORTSETTE" > 10823 IFDEF V30SWE < TEXT " - &TRYCK P\E RETUR F\VR ATT FORTS\DTTA" > 10824 IFDEF SPANISH < TEXT " - &PULSE !&RETORNO &PARA &CONTINUAR" > /A255 10825 IFDEF ITALIAN < TEXT " - &PREMERE !&RETORNO" > 10826 IFDEF DUTCH < TEXT " - &DRUK OP !&RETURN" > 10827 10828 EIRPG1, 10829 IFDEF ENGLSH < TEXT "&ENTER &PAGE &NUMBER:" > 10830 IFDEF V30NOR < TEXT "&ANGI SIDETALL:" > 10831 IFDEF V30SWE < TEXT "&SKRIV SIDNUMMER:" > 10832 IFDEF SPANISH < TEXT "&TECLEE &PAG. &N\ZMERO:" > /A255 10833 IFDEF ITALIAN < TEXT "&INTRODURRE IL NUMERO DI PAGINA:" > 10834 IFDEF DUTCH < TEXT "&TYP HET PAGINA-NUMMER: " > 10835 10836 EIRRAB, 10837 IFDEF ENGLSH < TEXT "&PRESS !&ADVANCE OR !&BACK !&UP" > 10838 IFDEF V30NOR < TEXT "&TRYKK P'E !&FREM EL. !&TILBAKE" > 10839 IFDEF V30SWE < TEXT "&TRYCK P\E FRAM\ET ELLER BAK\ET" > 10840 IFDEF SPANISH < TEXT "&PULSE !&ADELANTE O !&ATRAS" > /A255 10841 IFDEF ITALIAN < TEXT "&PREMERE !&AVANTI O !&INDIETRO" > 10842 IFDEF DUTCH < TEXT "&DRUK OP !&VOORUIT OF !&TERUG" > 10843 10844 X=. / INDICATE FIRST FREE LOCATION ON PAGE 10845 /--------------- 10846 PAGE 10847 IFNZRO .-TRANTP-200 /A258 illegal char ^ undefined ^ expression ^ 023400* 0000 illegal char ^ 023401* 0000 10848 10849 DSKBLK=.-200%400+DL4EDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 10850 10851 / THE FOLLOWING IS PART OF THE EDITOR MATH ERROR REPORTING CODE. 10852 10853 / This routine places a caret ("^"), on line 6. if wide screen and 10854 / on line 16. if narrow screen, in the column which was passed 10855 / to this routine in the ac. 10856 EDRTW, / subroutine head used for temporary storage 10857 EDRCOL, XX undefined ^ 023402* 0000 10858 CDFEDT undefined ^ 023403* 0000 10859 023404* 1777 TAD I (LOWLIM) / ADD LOWLIMIT TO COLUMN NUMBER TO MAKE 10860 / SURE THAT CARET CAN BE PLACED IN 10861 / POSITION PASSED TO EDRCOL. 10862 023405* 3234 DCA EDRTX / SAVE RESULT 10863 023406* 1234 TAD EDRTX / POSITION LESS THAN LEFT SCREEN LIMIT? 10864 023407* 7550 SPA SNA / SKIP IF: NOT 10865 023410* 5231 JMP EDRCO1 / EXIT (CAN'T DISPLAY CARET) 10866 023411* 1376 TAD (-205) / POSITION GTR THAN RIGHT SCREEN LIMIT? 10867 023412* 7700 SMA CLA / SKIP IF: NOT (OK TO DISPLAY CARET) 10868 023413* 5231 JMP EDRCO1 / EXIT (CAN'T DISPLAY CARET) 10869 10870 023414* 1375 TAD (-7) / set line number 10871 023415* 3774 DCA I (CURLIN) 10872 023416* 0000 CDFMYF 10873 023417* 1234 TAD EDRTX / get the column number 10874 CIFEDT / position the cursor undefined ^ 023420* 0000 10875 023421* 4773 JMS CALLAR 10876 023422* 1400 PCUR 10877 CDFEDT undefined ^ 023423* 0000 10878 023424* 1372 TAD ("^&177) / write the caret 10879 CIFEDT undefined ^ 023425* 0000 10880 023426* 4773 JMS CALLAR 10881 023427* 0354 EDOCHR 10882 CDFEDT undefined ^ 023430* 0000 10883 023431* 7300 EDRCO1, CLA CLL 10884 023432* 0000 CDFMYF 10885 023433* 5602 JMP I EDRCOL 10886 10887 / This routine gets the next argument from EDERR's arg list, 10888 / which is a pointer to the oversize result in BCD. (The arg list 10889 / will have one or two such args.) The BCD result must be translated 10890 / into ASCII for IOA, and then displayed at the location which 10891 / was passed to this routine in the ac. 10892 EDRTX, / subroutine head used for temporary storage 10893 EDRDYR, XX undefined ^ 023434* 0000 10894 023435* 3256 DCA EDRPSN / put cursor position in IOA call 10895 023436* 2771 ISZ EDRALP / get next argument less one 10896 023437* 1771 TAD EDRALP 10897 023440* 3202 DCA EDRTW 10898 AC7777 undefined ^ 023441* 0000 10899 023442* 1602 TAD I EDRTW 10900 023443* 3245 DCA EDRBCD / put it in BCDASC call 10901 JMS BCDASC / call the conversion routine undefined ^ undefined ^ 023444* 4000 10902 023445* 0000 EDRBCD, .-. 10903 023446* 3040 NUMBUF / ADDRESS TO PUT ASCII RESULTS 10904 023447* 0000 CDFMYF 10905 023450* 3245 DCA EDRBCD / mark the end of the ASCII string 10906 023451* 3645 DCA I EDRBCD / with a 0 10907 CIFMNU / call IOA to display a cursor undefined ^ 023452* 0000 10908 JMS I IOACAL / position (where the result goes), undefined ^ undefined ^ 023453* 4400 10909 023454* 0000 0 / and an ASCII string (the result) 10910 023455* 3751 EDRIND 10911 023456* 0000 EDRPSN, .-. 10912 023457* 3040 NUMBUF / ADDRESS OF ASCII NUMBER 10913 023460* 5634 JMP I EDRDYR / exit subr 10914 10915 10916 / the following was moved here from the overlays 10917 / offset ADJUSTMENT subroutine 10918 / 10919 / adjust (INCREMENT OR DECREMENT) the offset to the rppgds 10920 / and the pointer to the rppgds block 10921 / 10922 / the contents of the AC at entry = positive for forward adjustment, or 10923 / = negative for backward adjustment 10924 10925 AJUST, XX / THE CONTENTS OF THE AC IS THE COUNT undefined ^ 023461* 0000 10926 CDFEDT / CHANGE TO EDITOR FIELD undefined ^ 023462* 0000 10927 023463* 7510 SPA / SKIP NEXT IF POSITIVE MEANING ADJUST FORWARD 10928 023464* 5305 JMP ADJBACK / ADJUST IN THE REVERSE DIRECTION 10929 10930 / adjust in the forward direction 10931 10932 023465* 2770 ISZ I (RPCUOF) / ADJUST FORWARD BY 1 COUNT (ALWAYS) 10933 AC7775 / ARE WE PROCESSING THE THIRD EXT.?? undefined ^ 023466* 0000 10934 023467* 1767 TAD I (RPCUBK) 10935 023470* 7640 SZA CLA / SKIP IF SO 10936 023471* 5276 JMP ADJUS1 / NOT IN THE THIRD EXT. 10937 023472* 1770 TAD I (RPCUOF) / IF WE HAVE REACHED 10938 023473* 1366 TAD (-362) / 362 IN THE THIRD EXT., RESET 10939 023474* 7650 SNA CLA / SKIP IF LESS THAN 362 10940 023475* 5302 JMP ADJUS2 / AT 362, RESET... 10941 023476* 1770 ADJUS1, TAD I (RPCUOF) 10942 023477* 1365 TAD (-400) / 10943 023500* 7710 SPA CLA / 10944 023501* 5342 JMP ADJEX3 / EXIT 10945 10946 / gone to far forward 10947 10948 ADJUS2, AC0002 / 2 / undefined ^ 023502* 0000 10949 /\ DCA I (RPCUOF) / 10950 023503* 2767 ISZ I (RPCUBK) / 10951 023504* 5341 JMP ADJEX2 / EXIT 10952 10953 / adjust in the backward direction 10954 10955 023505* 1770 ADJBACK,TAD I (RPCUOF) / GET POINTER VALUE BEFORE ADJUSTMENT 10956 023506* 3770 DCA I (RPCUOF) / SAVE BACKWARD ADJUSTED VALUE 10957 023507* 1767 TAD I (RPCUBK) / 10958 023510* 7110 CLL RAR / 10959 023511* 7650 SNA CLA / 10960 023512* 5334 JMP RPPH01 / 10961 AC7776 / -2 / undefined ^ 023513* 0000 10962 023514* 1770 TAD I (RPCUOF) / 10963 023515* 7500 SMA / 10964 023516* 5336 JMP ADJEX1 / STILL WITHIN LIMITS OF RPPGDS BLOCK AFTER ADJUSTMENT 10965 10966 / the contents of the AC is a negative number 10967 / which means out of the logical boundries 10968 / of the RPPGDS block after the backward adjustment 10969 10970 023517* 3333 DCA ADJTMP / SAVE CURRENT VALUE OF RPCUOF 10971 023520* 1767 TAD I (RPCUBK) / ARE WE IN THE FOURTH EXT.??? 10972 023521* 1364 TAD (-4) 10973 023522* 7650 SNA CLA / SKIP IF NOT 10974 023523* 1363 TAD (7762) / GET BACK TO 361 IN THIRD EXT. 10975 023524* 1362 TAD (400) / 10976 023525* 1333 TAD ADJTMP / RETRIEVE RPCUOF 10977 023526* 3770 DCA I (RPCUOF) / RPCUOF IS NOW CORRECTED 10978 AC7777 / -1 / undefined ^ 023527* 0000 10979 023530* 1767 TAD I (RPCUBK) / 10980 023531* 3767 DCA I (RPCUBK) / 10981 023532* 5342 JMP ADJEX3 / EXIT 10982 023533* 0000 ADJTMP, 0 / TEMP. WORKING STORAGE 10983 10984 / special boundry testing 10985 / because the pointer adjusted 10986 / is in the 1st RPPGDS descriptor block 10987 / (which has unique limits) 10988 / 10989 / 55 - is the 'top' of the block where the 1st RPPGDS descriptor word is 10990 / 377 - is the 'bottom' of the block where the last descriptor word is 10991 10992 023534* 1361 RPPH01, TAD (-55) / 10993 023535* 1770 TAD I (RPCUOF) / 10994 023536* 7700 ADJEX1, SMA CLA / 10995 023537* 5342 JMP ADJEX3 / EXIT - STILL WITHIN LIMITS AFTER ADJUSTMENT 10996 023540* 1360 TAD (55) / 10997 023541* 3770 ADJEX2, DCA I (RPCUOF) / 10998 ADJEX3, CDFLP undefined ^ 023542* 0000 10999 023543* 5661 JMP I AJUST / EXIT 11000 11001 / ADJUS0 Moved here this edit to gather space in one place /a247 11002 / 11003 ADJUS0, XX / SAVE RETURN ADDRESS undefined ^ 023544* 0000 11004 023545* 3355 DCA ADJTM1 / ADJUST DIRECTION IN MQ 11005 023546* 6214 RDF / GET CALLERS (RETURN) FIELD 11006 TAD CIDF0 / MAKE A RETURN CID INSTR. undefined ^ undefined ^ 023547* 1000 11007 023550* 3353 DCA ADJEX4 / SAVE FOR RETURN TO CALLER 11008 023551* 1355 TAD ADJTM1 / SUPPLY ADJUST DIRECTION 11009 023552* 4261 JMS AJUST / DO ADJUST 11010 023553* 0000 ADJEX4, .-. / CALLERS FIELD 11011 023554* 5744 JMP I ADJUS0 / RETURN 11012 11013 023555* 0000 ADJTM1, .-. / TEMP FOR ADJUST DIRECTION 11014 11015 X=. / INDICATE FIRST FREE LOCATION ON PAGE 11016 /--------------- 11017 023560* 0055 PAGE 023561* 7723 023562* 0400 023563* 7762 023564* 7774 023565* 7400 023566* 7416 023567* 0761 023570* 2756 023571* 3600 023572* 0136 023573* 0251 023574* 0144 023575* 7771 023576* 7573 023577* 0047 11018 11019 DSKBLK=.-200%400+DL4EDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 11020 11021 11022 / * * * * * * * * * * * * * * * * * 11023 / * * 11024 / * EDITOR MATH ERROR REPORTING * 11025 / * * 11026 / * * * * * * * * * * * * * * * * * 11027 11028 / Most of the display work is done in the menu. This routine accepts 11029 / an error code and up to four parameters. It passes the error code and 11030 / the first two parameters to menu block DLMLP5, list proc & ed math 11031 / error reporting. A flag passed back by the menu processor tells this 11032 / routine whether to either just exit, or to call PELINE to show the 11033 / partially parsed formula or command appropriate to some error messages. 11034 / For two of the messages (ERNOSP and ERNSP2), this routine will not call 11035 / PELINE, but will make a display which shows results which do not fit. 11036 11037 / calling sequence: 11038 / 11039 / for ERNOSP and ERNSP2 -- 11040 / TAD (error code) 11041 / CDFMYF 11042 / JMS EDERR-1 11043 / pcp to the first result's tab stop 11044 / pcp to the second result's tab stop 11045 / pointer to the first oversize result 11046 / pointer to the second oversize result 11047 / 11048 / for EREXTR -- 11049 / TAD (error code) 11050 / CDFMYF 11051 / JMS EDERR-1 11052 / pcp to the erroneous number 11053 / 11054 / for all other errors -- 11055 / TAD (error code) 11056 / JMP EDERR 11057 11058 / pseudo-code 11059 / EDERR: proc 11060 / save ac 11061 / if in view mode then exit view mode endif 11062 / eliminate any screen lag 11063 / MNTMP4 = SPLTFL 11064 / if SPLTFL then EDRDIF = 0 else EDRDIF = #1200 endif 11065 / do 11066 / { error code passed in ac } 11067 / MNTMP5 = saved ac 11068 / { tell menu processor that we're editor math } 11069 / MNTMP1 = 1 11070 / call MENU_INTERPRETER 11071 / { the menu process will clear the error code to show that no } 11072 / { further processing is needed } 11073 / until MNTMP5==0 here 11074 / { check to see what flavor of further processing is needed } 11075 / select MNTMP5 of 11076 / case EREXTR 11077 / call EDRCOL ( arg1 ) 11078 / case ERNOSP 11079 / call EDRDYR ( #744 ) { will use arg3 } 11080 / call EDRCOL ( arg1 ) 11081 / case ERNSP2 11082 / call EDRDYR ( #744 ) { will use arg3 } 11083 / call EDRDYR ( #1044 ) { will use arg4 } 11084 / call EDRCOL ( arg2 ) 11085 / call EDRCOL ( arg1 ) 11086 / otherwise 11087 / call PELINE 11088 / endselect 11089 / { tell menu processor that it's being called a second time } 11090 / saved ac = 1 11091 / enddo 11092 / fix up the screen 11093 / goto editor re-entry 11094 / 11095 / EDRCOL: proc 11096 / save ac 11097 / call PCUR ( [CURLIN=-7] saved ac ) 11098 / call EDOCHR ( '^' ) 11099 / return 11100 / 11101 / EDRDYR: proc 11102 / save ac plus EDRDIF 11103 / ac = next argument of EDERR 11104 / call BCDASC ( ac, NUMBUF ) 11105 / mark end of NUMBUF with 0 11106 / call IOA ( 0, "^P^A", saved ac, NUMBUF ) 11107 / return 11108 11109 / real-code 11110 11111 EDRALP, XX / sometimes called with JMS in order to undefined ^ 023600* 0000 11112 / establish an argument list pointer 11113 023601* 3335 EDERR, DCA EDRTZ / save error code 11114 CDFEDT / view overlay?? undefined ^ 023602* 0000 11115 023603* 1777 TAD I (OVLAY1) 11116 023604* 1376 TAD (-VIEWF1) 11117 023605* 7640 SZA CLA 11118 023606* 5217 JMP EDRJ1 / not view overlay 11119 023607* 1775 TAD I (VIEWF2) / view mode?? 11120 023610* 7650 SNA CLA 11121 023611* 5217 JMP EDRJ1 / not view mode 11122 023612* 3775 DCA I (VIEWF2) / exit view mode 11123 AC2000 undefined ^ 023613* 0000 11124 023614* 3774 DCA I (SCRLCT) 11125 AC2000 undefined ^ 023615* 0000 11126 023616* 3773 DCA I (SCRNFL) 11127 023617* 0000 EDRJ1, CDFMYF / get first two arguments 11128 023620* 1600 TAD I EDRALP 11129 023621* 3336 DCA EDRT1 11130 023622* 2200 ISZ EDRALP 11131 023623* 1600 TAD I EDRALP 11132 023624* 3337 DCA EDRT2 11133 CDFEDT / eliminate any screen lag undefined ^ 023625* 0000 11134 AC0001 undefined ^ 023626* 0000 11135 023627* 3772 DCA I (ECHFLG) 11136 023630* 4771 JMS CALFXS / CALL EDITORS FXSCRL ROUTINE 11137 11138 /D232 CIFMNU / CHANGE TO MENU FIELD 11139 /D232 PGSWAP / AC=0 SAVE SWAP AREA & RELOAD MENU CODE 11140 11141 023631* 1335 TAD EDRTZ / get saved error code 11142 EDRRPT, CDFMNU / pass error code to menu processor undefined ^ 023632* 0000 11143 DCA I (MUBUF+MNTMP5) undefined ^ undefined ^ undefined ^ undefined ^ 023633* 3770 11144 AC0001 / signal that we're editor math undefined ^ 023634* 0000 11145 DCA I (MUBUF+MNTMP1) / (list proc uses a 0) undefined ^ undefined ^ undefined ^ undefined ^ 023635* 3770 11146 023636* 0000 CDFMYF / call the menu processor on the "list 11147 11148 CIFMNU / CHANGE TO MENU FIELD /M232 undefined ^ 023637* 0000 11149 PGSWAP / AC=0 SAVE SWAP AREA & RELOAD MENU CODE /M232 undefined ^ 023640* 0000 11150 11151 CIFMNU / proc & ed math errors" block undefined ^ 023641* 0000 11152 JMS I MNUCAL undefined ^ undefined ^ 023642* 4400 11153 DLMLP5 undefined ^ 023643* 0000 11154 11155 AC7777 / SET AC=-1 /M232 undefined ^ 023644* 0000 11156 CIFMNU / CHANGE TO MENU FIELD /M232 undefined ^ 023645* 0000 11157 PGSWAP / AC=-1, SO JUST LOAD IN THE SAVE AREA /M232 undefined ^ 023646* 0000 11158 11159 CDFMNU / see if the menu process cleared the undefined ^ 023647* 0000 11160 TAD I (MUBUF+MNTMP5) / error code or whatever undefined ^ undefined ^ undefined ^ undefined ^ 023650* 1770 11161 023651* 0000 CDFMYF 11162 023652* 7650 SNA CLA 11163 023653* 5340 JMP EDREND / err code cleared -- all done 11164 023654* 4316 JMS EDRTYP / not cleared -- which error?? 11165 023655* 5277 JMP EDROTH / other -- go call PELINE 11166 023656* 5274 JMP EDRXTR / EREXTR -- display one caret only 11167 023657* 5271 JMP EDRONE / ERNOSP -- display one big result 11168 023660* 4305 JMS EDRDSP / ERNSP2 -- display two big results 11169 023661* 2144 2144 / screen position for display 11170 023662* 4767 JMS EDRDYR / one result after "...results: " 11171 023663* 4305 JMS EDRDSP / calculate correct screen position 11172 023664* 2244 2244 / screen position for display 11173 023665* 4767 JMS EDRDYR / one result after "...and: " 11174 023666* 1337 TAD EDRT2 / one caret at column arg2 11175 023667* 4766 JMS EDRCOL 11176 023670* 5274 JMP EDRXTR 11177 11178 023671* 4305 EDRONE, JMS EDRDSP / calculate correct screen position 11179 023672* 2142 2142 / screen position for display 11180 023673* 4767 JMS EDRDYR / one result after "...result: " 11181 023674* 1336 EDRXTR, TAD EDRT1 / one caret at column arg1 11182 023675* 4766 JMS EDRCOL 11183 023676* 5303 JMP EDRAGN / go call the menu proc to finish up 11184 11185 023677* 4305 EDROTH, JMS EDRDSP / calculate correct screen position 11186 023700* 2200 2200 / screen position for display 11187 / it's not one of those listed, so assume 11188 CIFMTH / it's the kind of error with something undefined ^ 023701* 0000 11189 JMS PELINE / informative in the line buffer undefined ^ undefined ^ 023702* 4000 11190 11191 EDRAGN, AC0001 / tell the menu processor that this is undefined ^ 023703* 0000 11192 023704* 5232 JMP EDRRPT / a second call 11193 11194 11195 / This routine calculates the correct screen position for the error display. 11196 / 11197 / The call is as follows: 11198 / JMS EDRDSP / Calculate correct screen position 11199 / value / Position to use for no status lines 11200 / ... / Return with AC = correct location 11201 11202 EDRDSP, XX / Calculate correct screen position undefined ^ 023705* 0000 11203 CDFMNU / Switch to menu field undefined ^ 023706* 0000 11204 TAD I (MUBUF+MNSTAT) / Pick up value of status line count undefined ^ undefined ^ undefined ^ undefined ^ 023707* 1770 11205 023710* 0000 CDFMYF / Switch back to this field 11206 023711* 7002 BSW / Swap low order bits with high order bits 11207 023712* 7041 CIA / Make value negative for a subtract 11208 023713* 1705 TAD I EDRDSP / Combine with NO-STATUS-LINE value 11209 023714* 2305 ISZ EDRDSP / Bump return address over value 11210 023715* 5705 JMP I EDRDSP / Return to caller 11211 11212 / This routine examines the saved error code (in EDRTZ) and takes an 11213 / alternate return depending on the specific error. 11214 / JMS+1 (normal return) -- not one of those tested for 11215 / JMS+2 (skip 1) -- EDRTZ = EREXTR 11216 / JMS+3 (skip 2) -- EDRTZ = ERNOSP 11217 / JMS+4 (skip 3) -- EDRTZ = ERNSP2 11218 EDRTYP, XX undefined ^ 023716* 0000 11219 023717* 1335 TAD EDRTZ 11220 TAD (-EREXTR) undefined ^ undefined ^ 023720* 1370 11221 023721* 7450 SNA 11222 023722* 5333 JMP EDRTR1 11223 TAD (EREXTR-ERNOSP) undefined ^ undefined ^ undefined ^ undefined ^ 023723* 1370 11224 023724* 7450 SNA 11225 023725* 5332 JMP EDRTR2 11226 TAD (ERNOSP-ERNSP2) undefined ^ undefined ^ undefined ^ undefined ^ 023726* 1370 11227 023727* 7640 SZA CLA 11228 023730* 5716 JMP I EDRTYP 11229 023731* 2316 ISZ EDRTYP 11230 023732* 2316 EDRTR2, ISZ EDRTYP 11231 023733* 2316 EDRTR1, ISZ EDRTYP 11232 023734* 5716 JMP I EDRTYP 11233 11234 / some useful things 11235 023735* 0000 EDRTZ, 0 / error code (passed to EDERR in ac) 11236 023736* 0000 EDRT1, 0 / arg1 11237 023737* 0000 EDRT2, 0 / arg2 11238 11239 11240 / come here to exit from error reporting to the editor 11241 EDREND, 11242 /D232 AC7777 / SET AC=-1 11243 /D232 CIFMNU / CHANGE TO MENU FIELD 11244 /D232 PGSWAP / AC=-1, SO JUST LOAD IN THE SAVE AREA 11245 11246 CDFEDT / fix up the screen undefined ^ 023740* 0000 11247 023741* 1365 TAD (-10) 11248 023742* 3774 DCA I (SCRLCT) 11249 023743* 3764 DCA I (CURLIN) 11250 023744* 3763 DCA I (CURPOS) 11251 023745* 4771 JMS CALFXS / CALL EDITORS FXSCRL ROUTINE 11252 CDFBUF / jump to the editor undefined ^ 023746* 0000 11253 CIFEDT undefined ^ 023747* 0000 11254 023750* 5762 JMP EIFXT2 11255 11256 / some useful things 11257 023751* 3620 EDRIND, TEXT "^P^A" 023752* 3601 023753* 0000 11258 11259 X=. / INDICATE FIRST FREE LOCATION ON PAGE 11260 /--------------- 11261 023762* 0401 PAGE 023763* 0046 023764* 0144 023765* 7770 023766* 3402 023767* 3434 023770* 0000 023771* 0742 023772* 0152 023773* 0140 023774* 0137 023775* 7741 023776* 4200 023777* 7400 11262 11263 DSKBLK=.-200%400+DL4EDT / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 11264 11265 11266 / THE FOLLOWING ROUTINE IS USED TO GET THE STATUS OF THE "MA" SWITCH, AND 11267 / INFO REGARDING WHETHER IN MATH AREA OR NOT! 11268 / 11269 / IF MA = YES 11270 / THEN IF IN MATH WORK AREA = TRUE 11271 / THEN DO SKIP RETURN 11272 / ELSE DO NORMAL RETURN 11273 / ENDIF 11274 / ELSE SET "IN MATH WORK AREA" FLAG = FALSE 11275 / SET "IN CONTROL BLOCK" FLAG = FALSE 11276 / DO NORMAL RETURN 11277 / ENDIF 11278 11279 MASTTS, XX undefined ^ 024000* 0000 11280 CDFMNU / CHANGE TO MENU DATA FIELD undefined ^ 024001* 0000 11281 TAD I (MUBUF+MNMATH) / GET "MA" FLAG undefined ^ undefined ^ undefined ^ undefined ^ 024002* 1777 11282 024003* 0000 CDFMYF / RETURN TO THIS DATA FIELD 11283 024004* 7650 SNA CLA / IS "MA" YES? 11284 024005* 5214 JMP MASTT1 / NO: GO FIX FLAGS 11285 CDFMTH / YES: CHANGE TO MATH DATA FIELD undefined ^ 024006* 0000 11286 TAD I (MTHWRK) / GET "IN MATH WORK AREA" FLAG undefined ^ undefined ^ 024007* 1777 11287 024010* 0000 CDFMYF / RETURN TO THIS DATA FIELD 11288 024011* 7650 SNA CLA / ARE WE IN A MATH WORK AREA? 11289 024012* 2200 ISZ MASTTS / YES: SET UP FOR A SKIP RETURN 11290 024013* 5600 JMP I MASTTS / NO: RETURN TO CALLER 11291 11292 / TAKE TIME HERE TO SET FOLLOWING FLAGS IN CASE "MA" IS SHUT OFF 11293 / IN THE MIDDLE OF A MATH AREA. 11294 11295 MASTT1, AC0001 / GET 1 IN THE AC undefined ^ 024014* 0000 11296 CDFMTH / CHANGE TO MATH DATA FIELD undefined ^ 024015* 0000 11297 DCA I (MTHWRK) / SET IN MATH WORK AREA FLAG TO FALSE undefined ^ undefined ^ 024016* 3777 11298 024017* 0000 CDFMYF / RETURN TO THIS DATA FIELD 11299 AC0001 / GET 1 IN THE AC undefined ^ 024020* 0000 11300 024021* 3776 DCA INCTLB / SET "IN CONTROL BLOCK" FLAG = FALSE 11301 024022* 5600 JMP I MASTTS / RETURN TO CALLER 11302 11303 11304 / THIS RTN IS CALLED FROM "SCRMTH" AND "EDERR1". IT IS USED TO SHUT 11305 / DOWN EDITOR MATH IN THE CASE OF BACKING UP INTO, IN, OR OUT OF A CTRL 11306 / BLOCK IN AN EDITOR MATH WORK AREA. ALSO IT IS USED TO SHUT IT DOWN IF 11307 / AN ERROR IS ENCOUNTERED IN AN EDITOR MATH CONTROL BLOCK 11308 11309 SCRINI, XX / SUBRTN USED TO SHUT EDITOR MATH DOWN undefined ^ 024023* 0000 11310 CDFMTH / YES: CHANGE TO MATH DATA FIELD undefined ^ 024024* 0000 11311 AC0001 / GET 1 IN THE AC undefined ^ 024025* 0000 11312 DCA I (MTHWRK) / SET "IN MATH WORK AREA" = FALSE undefined ^ undefined ^ 024026* 3777 11313 DCA I (MTHTOT) / SET "MATH TOTAL" FLAG = FALSE undefined ^ undefined ^ 024027* 3777 11314 / DONE IN CASE "TOTAL" COMMAND IS PUT IN 1ST 11315 / BLOCK OF EDITOR MATH AREA. IF PROCESS THRU 1ST 11316 / BLOCK OF MATH AREA, THEN BACK UP TO TOP OF AREA 11317 / AND RESCROLL, DEPENDING ON WHERE THE "TOTAL" 11318 / HAS BEEN PLACED RELATIVE TO THE "FORMULAS" IN 11319 / THE BLOCK, INCONSISTENCIES CAN RESULT IN THE 11320 / EXECUTION OF THE 1ST LINE OF THE TABLE 11321 / FOLLOWING THE BLOCK 11322 DCA I (FSTLNE) / SET "CONTROL BLOCK FIRST LINE" FLAG = TRUE undefined ^ undefined ^ 024030* 3777 11323 / THIS IS DONE TO COVER THE CASE WHERE THE USER 11324 / BACKS UP IN AN EDITOR MATH AREA CTRL BLOCK 11325 / TO THE "WPSMATH" THEN SCROLLS FORWARD THEN 11326 / BACKS UP AGAIN TO THE TOP OF THE MATH AREA. 11327 / THIS FIX SHOULD ALLOW THE SYSTEM TO PROCESS 11328 / THE MATH AREA STARTING FROM THE "WPSMATH" 11329 / INSTEAD OF HAVING TO BACK UP TO BEFORE THE 11330 / START OF THE MATH AREA, THUS KEEPING IT 11331 / CONSISTENT WITH THE WAY IT ACTS IF BACKUP IS 11332 / DONE WHILE NOT IN A CTRL BLOCK. 11333 024031* 0000 CDFMYF / RETURN TO THIS DATA FIELD 11334 AC0001 / GET 1 IN THE AC undefined ^ 024032* 0000 11335 024033* 3776 DCA INCTLB / SET "IN CONTROL BLOCK" FLAG = FALSE 11336 024034* 3775 DCA MTHCTL / SET "IN MATH CONTROL BLOCK" = FALSE.... 11337 / ..THIS IS DONE TO COVER ANY UNFORESEEN PROBLEMS 11338 024035* 5623 JMP I SCRINI / RETURN TO CALLER 11339 11340 / INMATH Moved this edit to make space for INSMCH /a247 11341 11342 / CALFXS Moved this edit to make room for INSMCH /a247 11343 11344 / CKCTRS Moved this edit to make room for INSMCH /a247 11345 11346 / CHAR. CHECK ROUTINE 11347 / READS CHARACTER IN EDIT BUFFER POINTERED TO BY LINE23 AND CHECKS FOR 11348 / MATCH TO CHARACTER SPECIFIED AT CALLER+2. USED IN "CKCTRL". 11349 / ROUTINE WILL GO BACK TO THE EDITOR, RESTORING CURPTR ALONG THE WAY IF 11350 / THE CHARCTER READ MATCHES THE CHARACTER SPECIFIED AT CALLER+2 ELSE 11351 / IT RETURNS TO CALLER+3 IF NO MATCH. 11352 11353 / CALL : JMS CKCTR1 11354 / CALL+1 : VALUE TO AND CHAR. WITH (IE. - STRIP MODE BITS) 11355 / CALL+2 : -CHAR. TO MATCH 11356 11357 CKCTR1, XX undefined ^ 024036* 0000 11358 CDFEDT undefined ^ 024037* 0000 11359 024040* 1774 TAD I (LINE23) / GET POINTER TO 1ST CHAR. IN LINE 11360 DCA T1 / SAVE IN TEMP. undefined ^ undefined ^ 024041* 3000 11361 CDFBUF undefined ^ 024042* 0000 11362 TAD I T1 / GET CHARACTER undefined ^ undefined ^ 024043* 1400 11363 024044* 0000 CDFMYF 11364 024045* 0636 AND I CKCTR1 / GET VALUE TO AND FROM CALLER+1 11365 024046* 2236 ISZ CKCTR1 / BUMP RETURN PTR. TO GET NEXT PARAM. 11366 024047* 1636 TAD I CKCTR1 / GET NEG. VALUE OF CHAR. TO MATCH. 11367 024050* 7650 SNA CLA / SKIP IF: NO MATCH 11368 024051* 5773 JMP BKEDI3 / RULER LINE - SKIP MATH 11369 024052* 2236 ISZ CKCTR1 / BUMP RETURN POINTER 11370 024053* 5636 JMP I CKCTR1 / RTRN TO CALLER TO CONTINUE PROCESSING 11371 11372 11373 11374 /++ 11375 / INCREMENT_DECIMAL_TAB_COUNT 11376 / 11377 / FUNTIONAL DESCRIPTION: IDTABCOUNT 11378 / 11379 / THE FUNCTION OF THIS ROUTINE IS TO CHECK PREVIOUS TO INCREMENTING 11380 / DTABCOUNT THAT IT HAS NOT BEEN INCREMENTED ONCE ALREADY FOR THE 11381 / CURRENT TABPOSITION. IF NOT YET INCREMENTED FOR THE CURRENT 11382 / TABPOSITION THEN INCREMENT DTABCOUNT AND SET LAST_TAB_POSITION = 11383 / -TABPOSITION FOR THE NEXT PASS THROUGH IDTABCOUNT. 11384 / 11385 / CALLING SEQUENCE: JMS IDTABCOUNT 11386 / 11387 / INPUT PARAMETERS: AC = 0 11388 / 11389 / IMPLICIT INPUT: GLOBAL: TABPOSITION, LTABPOSITION, DTABCOUNT 11390 / 11391 / OUTPUT PARAMETERS: AC = 0 11392 / 11393 / IMPLICIT OUTPUT: GLOBAL: LTABPOSITION, DTABCOUNT 11394 / 11395 / COMPLETION CODE: NONE 11396 / 11397 / SIDE EFFECTS: 1) LTABCOUNT INITS. IN EXTRACTNUMBER ROUTINE 11398 / 11399 /-- 11400 11401 11402 IDTABCOUNT, / INCREMENT_DECIMAL_TAB_COUNT 11403 XX undefined ^ 024054* 0000 11404 TAD TABPOSITION / HAS DTABCOUNT ALREADY BEEN INCREMENTED undefined ^ undefined ^ 024055* 1000 11405 / FOR THIS TAB POSITION? 11406 TAD LTABPOSITION / ADD LAST_TAB_POSITION undefined ^ undefined ^ 024056* 1000 11407 024057* 7640 SZA CLA / SKIP IF: SO 11408 024060* 2772 ISZ DTABCOUNT / NO - INCREMENT DECIMAL TAB COUNT 11409 TAD TABPOSITION / SET LTABPOSITION undefined ^ undefined ^ 024061* 1000 11410 024062* 7041 CIA 11411 DCA LTABPOSITION undefined ^ undefined ^ 024063* 3000 11412 024064* 5654 JMP I IDTABCOUNT / RETURN 11413 11414 / ADJUS0 Moved this edit to make space for ADUNIT /a247 11415 11416 / BKEDI4 Moved elsewhere this edit to make space for ADUNIT /a247 11417 11418 11419 /**************************************************************************** 11420 / ADUNIT ADance UNIT routine is used by READNEXTCHARACTER /a247 11421 / to aquire the next relevent character from the edit /a247 11422 / buffer. If not in a dead key sequence, then ADVSPC /a247 11423 / is used to get the next printable character. If a /a247 11424 / dead key sequence is in progress, ADVPTR is used /a247 11425 / until an End Dead is seen. On encountering the End /a247 11426 / Dead, the dead key sequence flag is reset and /a247 11427 / processing returns to normal. /a247 11428 /**************************************************************************** 11429 11430 ADUNIT, XX / Start of routine to get next unit /a247 undefined ^ 024065* 0000 11431 024066* 1312 TAD DEADKEY / Get the state of the dead key flag /a247 11432 024067* 7640 SZA CLA / Are we in a dead key sequence? /a247 11433 024070* 5277 JMP DEAD / Yes, get the next non-null file char /a247 11434 CIFEDT / No, call the ADVSPC routine to get /a247 undefined ^ 024071* 0000 11435 024072* 4771 JMS CALLAR / the next printable character /a247 11436 024073* 1717 ESASPC / /a247 11437 CDFBUF / The field of the text buffer /a247 undefined ^ 024074* 0000 11438 024075* 5311 JMP AUETXT / Jump to non-skip ETX exit /a247 11439 024076* 5310 JMP AUOKXT / Jump to skip return with normal char /a247 11440 11441 DEAD, CIFEDT / Call a routine in the editor using /a247 undefined ^ 024077* 0000 11442 024100* 4771 JMS CALLAR / the universal entry point /a247 11443 024101* 1213 ESAPTR / Call the Advance Pointer routine /a247 11444 CDFBUF / with the datafield of the edit buffer /a247 undefined ^ 024102* 0000 11445 024103* 5311 JMP AUETXT / ETX found return /a247 11446 TAD (-ECNDOV) / Test for end of dead key sequence /a247 undefined ^ undefined ^ 024104* 1377 11447 024105* 7450 SNA / Is this the end of the sequence? /a247 11448 024106* 3312 DCA DEADKEY / Yes, reset the dead key flag /a247 11449 TAD (ECNDOV) / Recover the character /a247 undefined ^ undefined ^ 024107* 1377 11450 024110* 2265 AUOKXT, ISZ ADUNIT / Skip return on normal character /a247 11451 024111* 5665 AUETXT, JMP I ADUNIT / Return /a247 11452 11453 024112* 0000 DEADKEY,0 / The Dead Key Sequence Flag /a247 11454 11455 /**************************************************************************** 11456 / INSMCH INSert Multinational CHaracter. This routine is used /a247 11457 / by editor maths mainly for the task of inserting /a247 11458 / multinational currency symbols. /a247 11459 / 11460 / The character to insert should be passed in the AC /a247 11461 / The attributes for the character should be passed in MQ /a247 11462 /**************************************************************************** 11463 11464 INSMCH, XX / Start of 8 Bit insertion routine /a247 undefined ^ 024113* 0000 11465 024114* 3355 DCA INCHAR / Save the character passed in AC /a247 11466 024115* 7521 SWP / Get the attribute bits /a247 11467 024116* 3357 DCA INSATR / Save them for now /a247 11468 024117* 1355 TAD INCHAR / Get the character back again /a247 11469 024120* 0370 AND (200) / Test the eigth bit /a247 11470 024121* 7650 SNA CLA / Is this a multinational character? /a247 11471 024122* 5343 JMP INMNXP / No, output normally /a247 11472 11473 024123* 1367 TAD (ISTRING) / Yes, get the addr of std dead key seq./a247 11474 DCA X1 / Store in index register /a247 undefined ^ undefined ^ 024124* 3000 11475 024125* 2312 ISZ DEADKEY / Tickle deadkey flag so READNEXT works /a247 11476 024126* 1352 TAD ISTRING / Get the First character of the seq. /a247 11477 024127* 5337 JMP INMENT / Enter the output loop /a247 11478 11479 INMLOOP,TAD I X1 / Get the next character in the sequence/a247 undefined ^ undefined ^ 024130* 1400 11480 024131* 7510 SPA / Is this the terminating character? /a247 11481 024132* 5346 JMP INMEXT / Yes, print it then exit /a247 11482 AND P177 / No, so strip eigth bits off /a247 undefined ^ undefined ^ 024133* 0000 11483 024134* 7421 MQL / Save in the MQ register /a247 11484 024135* 1357 TAD INSATR / Get the attribute bits /a247 11485 024136* 7501 MQA / Then merge with the character code /a247 11486 024137* 4766 INMENT, JMS INSCODE / Insert the character in the buffer /a247 11487 024140* 4765 JMS READNEXT / Move edit pointer to next position /a247 11488 024141* 7000 NOP / (Should not reach end of file) /a247 11489 024142* 5330 JMP INMLOOP / And loop for next character /a247 11490 11491 024143* 1355 INMNXP, TAD INCHAR / For ordinary 7 bit chars, just recall /a247 11492 024144* 7501 MQA / the character and add the attributes /a247 11493 024145* 7410 SKP / /a247 11494 INMEXT, AND P177 / Strip the top bit from terminator /a247 undefined ^ undefined ^ 024146* 0000 11495 024147* 4766 JMS INSCODE / Insert the character into the buffer /a247 11496 024150* 3312 DCA DEADKEY / End of dead key sequence /a247 11497 024151* 5713 JMP I INSMCH / Return /a247 11498 11499 ISTRING, ECSTOV / Start of Dead Key character /a247 undefined ^ 024152* 0000 11500 024153* 0240 " / Space /a247 11501 024154* 0262 "2 / Multinational character set /a247 11502 024155* 0000 INCHAR, 0 / The required character /a247 11503 ECNDOV+4000 / End Dead Key and terminator bit /a247 undefined ^ 024156* 4000 11504 024157* 0000 INSATR, 0 / Place to store the attribute bits /a247 11505 11506 X=. / INDICATE FIRST FREE LOCATION ON PAGE 11507 /--------------- 11508 024165* 1073 PAGE / 024166* 2727 024167* 4152 024170* 0200 024171* 0251 024172* 0540 024173* 7137 024174* 0171 024175* 7200 024176* 7000 024177* 0000 11509 11510 RELOC 11511 11512 CDFMYF= CDFEDT / ALL EDITOR OVERLAY CODE EXECUTES IN EDITOR FIELD undefined ^ 11513 11514 11515 /d238 NOPUNCH / TURN OFF THE BINARY PUNCH 11516 11517 11518 11519 / WPEDOV - EDITOR OVERLAYS 11520 / 11521 / 11522 /=============================================================== 11523 / 11524 / 11525 / ******* EDIT HISTORY ******* 11526 11527 / 240 KMD 23-Sep-85 Add Spanish Xlations and page size checks 11528 / 239 KMD 17-Sep-85 Add V30 Sveeedish translation IFDEFs 11529 / 238 KMD 16-Sep-85 Add V30 NORWAY IFDEFS 11530 / 237 KMD 15-Sep-85 Move TEC8VAL routine to blaster 11531 / 236 KMD 13-Sep-85 Add Spanish technical changes 11532 / 235 EMcD 26-Aug-85 Add Insert-Overstrike Mode 11533 / 234 MART 16-AUG-85 ADD DUTCH 11534 / 233 RCME 12-Jul-85 Add new table and code to allow keys 11535 / returning 8 bit characters on mcs 11536 / keyboards to generate technical chars. 11537 / 232 RCME 01-Jul-85 Add new table for allowable 8-bit chars in 11538 / ruler definitions 11539 / 231 EMcD 15-May-85 Allow (and show) Breaking Hyphen on Gold 11540 / View for MCS chars 11541 / 230 EMcD 14-May-85 Upper/Lower casing of 8 bit chars 11542 / 229 EMcD 07-May-85 Allow Swap on Dead key chars 11543 / 228 EMcD 01-May-85 Allow Search on 8bit chars 11544 / 227 EMcD 01-May-85 Fix Bug with Swap on Bold char 11545 / 226 EMcD 30-Apr-85 Change UNDEADing to UNDEAD extended 11546 / tech and MCS deads. 11547 / 225 EMcD 26-Apr-85 Moved Gold Swap and allow allow 8 bit in 11548 / Abbrev doc. 11549 / 224 rcme 23-Apr-85 Add code and hole to merge overlay to deal 11550 / with extended field names from MATH module 11551 / containing multinational and tech characters 11552 / 223 EMcD 19-Mar-85 Allow line Drawing set for tech chars 11553 / 11554 /-------------------- All mods below refer to V2.0 and earlier -------------- 11555 / 11556 / 222 IHZ 11-JAN-84 Fix HELP MENU display for DECmate I 11557 / 221 WCE 11-JAN-84 Fix COLUMN CUT ending on spaced line 11558 / 220 WCE 17-DEC-84 Fix GOLD SEARCH not checking line length 11559 / 219 WCE 13-DEC-84 Fix GOLD VIEW problem with multiple screens 11560 / 218 WCE 10-DEC-84 Fix COLUMN STRIP RIGHT of single column 11561 / 217 WCE 01-NOV-84 Fix GOLD RULER when backing up across screens 11562 / 216 DFB 31-OCT-84 Fix COLUMN PASTE to paste on correct line 11563 / 215 WCE 30-OCT-84 Fix COLUMN PASTE pasting extra TAB characters 11564 / 214 WCE 22-OCT-84 Fix premature GOLD-HALT problem with go-to-page 11565 / 213 DFB 19-OCT-84 Fix to column strip left when at left margin 11566 / 212 EJL 16-OCT-84 Change help column values 11567 / 211 EJL 26-SEP-84 Fix to uparrow code for ruler problem 11568 / 210 WCE 24-SEP-84 Search for technical characters 11569 / Rewrote Search, GSR, Tech Character overlays 11570 / 209 WCE 20-SEP-84 Fix to List Processing for Caller Routine Call 11571 / 208 WCE 19-SEP-84 Fix to COLUMN PASTE not pasting CUT text 11572 / 207 EJL 18-SEP-84 Prevent case change on dead key sequences 11573 / 206 WCE 13-SEP-84 Fix Go-To-Page zapping search buffer text 11574 / 205 WCE 11-SEP-84 Move cursor to CUT buffer overflow point 11575 / 204 WCE 07-SEP-84 Fix for GOLD CUT not bringing rulers like CUT 11576 / 203 DFB 05-SEP-84 Fixes for Column Cut Paste BUG 11577 / 202 EJL 04-SEP-84 More fixes for arrow keys and math 11578 / 201 DFB 29-AUG-84 Fixes for Column Cut Paste 11579 / 200 GDH 29-AUG-84 Fix for Go-To-Ruler not found within buffer. 11580 / 199 WCE 28-AUG-84 Fix for Go-To-Ruler not found within buffer 11581 / 198 WCE 25-AUG-84 Fix for Global Search finding Centered Lines 11582 / 197 EJL 23-AUG-84 Fix reset of ruler during window change 11583 / 196 WCE 21-AUG-84 Fix for no error at 50 characters in GSR 11584 / 195 WCE 20-AUG-84 Fix for GSR not completting replace operation 11585 / 194 EJL 14-AUG-84 Process math on down arrow 11586 / 193 EJL 07-AUG-84 Increase speed of column paste 11587 / Fix ruler status line in ruler edit mode 11588 / 192 BC 26-JUL-84 Delete SPLTFL, use WIDNAR flag for 80/132 11589 / 191 WCE 23-JUL-84 Fix for List Processing HALT problem 11590 / 190 WCE 16-JUL-84 Changes for BRITISH pound sign 11591 / 189 MP 16-JUL-84 Fix problem with GOLD Menu from G.S. menu 11592 / 186 BC 16-JUL-84 Add manual screen width choice 11593 / 185 WCE 10-JUL-84 Fix for HELP key crashing system 11594 / 184 EJL 09-JUL-84 Fix for storing rulers 11595 / 183 JAC 08-JUL-84 Changed size of buffer for 100 UDK'S 11596 / 182 WCE 28-JUN-84 Various bug fixes for the EDITOR 11597 / Problem redisplaying centered lines after paste 11598 / Problem with GOLD PAGE and STATUS LINE 11599 / 181 WCE 27-JUN-84 Rewrote EDITOR MENU page to fix SO-CD problem 11600 / 180 EJL 26-JUN-84 Extend ruler from 158 to 238 11601 / 179 GDC 22-JUN-84 Column cut, paste, and strip inserted. 11602 / 178 MP 17-JUN-84 XXFIND will search for CR, TABS. 11603 / 177 DKR 01-JUN-84 Added Calls to OVRLOF (turn ruler display 11604 / on/off) in OVINIT and OVMENU. And, Erase 11605 / Line if Rulers-Off .AND. Gold:Tab makes a 11606 / new ruler 11607 / 176 DKR 29-MAY-84 Gold:Tab Code (Indent Tabs) 11608 / 175 EJL 29-MAY-84 Update Technical Character Mapping Table 11609 / 174 GDC 14-MAY-84 Changes to support second overlay area. 11610 / 173 WCE 11-MAY-84 Remove all occurances of USERNO 11611 / 172 EJL 08-MAY-84 Install Technical Character overlay 11612 / Fixed deadkey and required space 11613 / 171 WCE 02-MAY-84 Moved Resident Overlay from WPEDOV to WPEDIT 11614 / 170 WCE 26-APR-84 Fixed problem with LP and SWAP AREA 11615 / 169 AH 22-MAR-84 Added code for Column Cut 11616 / 168 WCE 13-MAR-84 Changed reset point from EIFXT2 to EIFIX 11617 / for SEARCH and CONTINUE SEARCH overlay 11618 / Changed startup point from EIFIX to EINEXA to 11619 / correct problem with blocks used display 11620 / 167 WJY 24-FEB-84 Hang up modem on finish on DMI also 11621 / 166 WJY 08-FEB-84 DECmate I compatability 11622 / 165 WCE 19-JAN-84 Made swap area smaller by two blocks 11623 / 164 EH 18-JAN-84 Removed fix #162 11624 / 163 EH 09-JAN-84 Do Not destroy UDK's if no next ruler found 11625 / 162 EH 21-DEC-83 Fix PASTE to insert prior to centered mark 11626 / 161 GDH 14-DEC-83 Fixed View code to update status line. 11627 / 160 GDH 14-DEC-83 Changed DSPRUL calling seq. OVRULR effected. 11628 / 159 EH 08-DEC-83 Fix G-Ruler, G-Menu System Halt 11629 / 158 DMB 30-NOV-83 Misc bug fixes: (1) GTP no longer winds up 11630 / on wrong page if it passes empty pages or 11631 / if the destination new-page-marker is too 11632 / close to the start of the block; 11633 / (2) GOLD:BOT and GTP no longer set "MA NO". 11634 / 157 DMB 12-NOV-83 REWRITE SUBSTANTIAL PORTION OF GOTO-RULER 11635 / TO FIX SOME PARTICULARLY TRICKY BUGS. 11636 / EDIT HISTORY ONLY UPDATED FOR ROUTINES 11637 / NOT EXCLUSIVELY USED BY GOTO-RULER. 11638 / 156 WCE 17-NOV-83 FIX FOR L.P TO PRINTER NOT SCROLLING AND 11639 / DUPLICATE WARNINGS FOR LACK OF SPACE 11640 / 155 DMB 03-NOV-83 FIX VARIOUS GOTO-RULER BUGS 11641 / 154 WJD 31-OCT-83 MAKE GOLD_BOTTOM ACT LIKE GTP 11642 / and remove GOLD_HALT process from GTP & GOLD_BOTTOM 11643 / 153 WCE 27-OCT-83 REMOVED ALL PREVIOUS EDIT HISTORIES FOR 11644 / NEW VERSION 1.5 SOURCE FILES 11645 11646 / WRITE OUT CODE FOR THE EDITOR OVERLAYS 11647 11648 FIELD 0 / FIELD WHERE RXHAN IS LOCATED 11649 *200 / START ADDRESS USED BY OS8 "GO" COMMAND 11650 000200 5603 JMP I .+3 / LOCATION USED TO START UP RXHAN 11651 000201 5602 JMP I .+1 / LOCATION USED TO RETURN TO OS8 MONITOR 11652 000202 7605 7605 / ADDRESS OF OS8 MONITOR RETURN POINT 11653 RXLOAD / ADDRESS OF START LOCATION FOR RXHAN undefined ^ 000203 0000 11654 11655 *RXLDLS / ADDRESS WITHIN RXHAN TO OVERLAY undefined ^ 11656 RXEWT / WRITE FUNCTION CODE undefined ^ 000000 0000 11657 000001 0000 0 11658 RXQBLK / ADDRESS OF QUEUE BLOCK TO USE undefined ^ 000002 0000 11659 000003 0003 . / ADDRESS OF TABLE OF DISK COMMANDS 11660 11661 DLOEDO ;0;CDF 30;-17 / FIELD ONE EDITOR OVERLAYS undefined ^ 000004 0000 000005 0000 000006 6231 000007 7761 11662 DLOEDO+17;0;CDF 40;-20 / FIELD TWO EDITOR OVERLAYS undefined ^ 000010 0017 000011 0000 000012 6241 000013 7760 11663 DLOEDO+37;0;CDF 50;-17 / FIELD THREE EDITOR OVERLAYS undefined ^ 000014 0037 000015 0000 000016 6251 000017 7761 11664 000020 0000 0 11665 11666 11667 / 11668 / MISC GLOBAL SYMBOL DEFINITIONS FOR EDITOR OVERLAYS 11669 / 11670 11671 CDFMYF= CDFEDT / EDITOR OVERLAY CODE EXECUTES IN EDITOR FIELD undefined ^ 11672 IFZERO OVLAYM / INITIALIZE MERGE OVERLAY ADDRESS 11673 OVRNUM= 0 / INITIALIZE OVERLAY NUMBER COUNTER ONE 11674 IFZERO OVLAY1 / INITIALIZE OVERLAY NUMBER ONE ADDRESS 11675 OV2NUM= 0 / INITIALIZE OVERLAY NUMBER COUNTER TWO 11676 IFZERO OVLAY2 / INITIALIZE OVERLAY NUMBER TWO ADDRESS 11677 11678 / RPPGDS (GOTO-PAGE) DESCRIPTOR WORD BIT DEFINITIONS - 11679 / BIT VALUE: / IF SET MEANS: 11680 11681 RPRULR= 4000 / RULER PRESENT IN THIS BLOCK 11682 RPMTHB= 100 / MATH BEGINS IN THIS BLOCK 11683 RPMTHO= 100 / PAGE IS WITHIN A MATH AREA 11684 RPMTHE= 100 / MATH ENDS IN THIS BLOCK 11685 11686 11687 DH1BL= 55 / OFFSET INTO HEADER BLOCK # 1 11688 / FOR FIRST BLOCK IN DOCUMENT 11689 11690 FIELD 3 11691 11692 *0 11693 11694 /*************************************************************************** 11695 /**** START OF OVERLAY **** 11696 /*************************************************************************** 11697 11698 OVRNUM=OVRNUM+200 11699 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 11700 11701 RELOC 11702 11703 RELOC OVLAY1 11704 037400* 0200 OVRNUM 11705 11706 OVSTLD= .-OVLAY1+OVRNUM /LOAD THIS OVERLAY FOR STRIP 11707 037401* 5777 JMP OVJRTN 11708 11709 OVSTPX= .-OVLAY1+OVRNUM 11710 037402* 5776 JMP ESSTPX /SECOND HALF OF STRIP 11711 11712 OVMRG4= .-OVLAY1+OVRNUM / DISK FULL EXIT POINT FOR MERGE 11713 037403* 7001 IAC 11714 OVMRG3= .-OVLAY1+OVRNUM / FINAL MERGE OVERLAY 11715 037404* 5254 JMP XVMRG3 11716 11717 OVINI1= .-OVLAY1+OVRNUM / NORMAL EDIT INITIALIZE 11718 11719 11720 TAD (-DLSTAT) / PICK UP ADDRESS OF STATUS CODE undefined ^ undefined ^ 037405* 1375 11721 CIFMNU / CHANGE TO MENU FIELD undefined ^ 037406* 0000 11722 PGSWAP / AC=DLSTAT SO JUST READ IN STATUS CODE undefined ^ 037407* 0000 11723 11724 /D170 / INITIALIAZE THE SWAP AREA ON THE DISK BY STORING HALT INSTRUCTIONS IN 11725 /D170 / UNUSED LOCATIONS. ENTER WITH THE DATA FIELD POINTING TO THIS FIELD 11726 11727 /D170 TAD (SWPEND) / POINTER TO FIRST MEMORY LOCATION 11728 /D170 DCA T1 / STORE IN TEMPORARY COUNTER 11729 /D170 TAD (DSSTAT^400+SWPBEG-SWPEND) / NUMBER OF WORDS TO CLEAR 11730 /D170 CIA / MAKE COUNT NEGATIVE 11731 /D170 DCA T2 / STORE NEGATIVE COUNT OF WORDS TO CLEAR 11732 /D170 CDFMNU / CHANGE TO MENU FIELD 11733 11734 /D170 CLRLOP, TAD (7402) / PICK UP HALT INSTRUCTION 11735 /D170 DCA I T1 / STORE IN MENU FIELD 11736 /D170 ISZ T1 / BUMP COUNTER TO NEXT ADDRESS 11737 /D170 ISZ T2 / INCREMENT COUNTER - SKIP IF DONE 11738 /D170 JMP CLRLOP / NOT DONE, GO DO IT AGAIN 11739 11740 037410* 0000 CDFMYF / CHANGE DATA FIELD BACK TO THIS FIELD 11741 CIFMNU / CHANGE INSTRUCTION FIELD TO MENU FIELD undefined ^ 037411* 0000 11742 PGSWAP / AC=0, SAVE SWAP AREA & RELOAD MENU CODE undefined ^ 037412* 0000 11743 11744 037413* 4774 JMS MNUGET 11745 MNFNO undefined ^ 037414* 0000 11746 037415* 3167 DCA FILENO 11747 037416* 3166 DCA FORMNO / CLEAR FORM NUMBER (USED AS FLAG TO INDICATE 11748 / NOT IN LIST PROCESSING 11749 037417* 3170 DCA FILOPT 11750 11751 11752 /******************** EDITOR MATH INIT CALL **************************** 11753 / THE FOLLOWING CALL IS MADE TO THE MATH FIELD TO INITIALIZE THE MATH 11754 / MODULE CODE AND SET "MTHTYP" TO 1 IN THE MATH FIELD IN PREPARATION 11755 / FOR USING EDITOR MATH. A 1 IS PLACED IN THE AC BEFORE THE CALL TO TELL 11756 /"RTRN4" THAT IT IS TO INIT FOR EDITOR MATH NOT LIST PROCESSING MATH 11757 / NOTE THAT THIS SAME INIT CALL TAKES PLACE IN "OVEXIT" AND HERE IN 11758 /"OVINI1". 11759 11760 AC0001 / SET THE AC = 1 undefined ^ 037420* 0000 11761 CIFMTH / CHANGE PROGRAM CONTROL TO MATH FIELD undefined ^ 037421* 0000 11762 JMS RTRN4 / GO SET "MTHTYP" = 1; AND INIT MATH MODULE undefined ^ undefined ^ 037422* 4000 11763 11764 /****************** END MATH INIT CALL ***************************** 11765 11766 CIFMNU / CALL ROUTINE IN FIELD TWO TO LOAD undefined ^ 037423* 0000 11767 JMS I OLAYCL / IN THE EDITOR MATH OVERLAY undefined ^ undefined ^ 037424* 4400 11768 037425* 0010 10 / NUMBER OF THE EDITOR MATH OVERLAY 11769 037426* 3164 DCA BUFBEG 11770 037427* 1373 TAD (BUFEND) 11771 037430* 3165 DCA BUFSIZ 11772 11773 /D171 JMS CPYBUF 11774 /D171 -200 11775 /D171 CDFMYF 11776 /D171 MGOVLY-1 11777 /D171 CDFMYF 11778 /D171 OVLAYM-1 11779 11780 TAD (XGETET) undefined ^ undefined ^ 037431* 1375 11781 037432* 3772 DCA MGPTC1 11782 037433* 1371 TAD (ESGETX&177+4600) 11783 037434* 3770 DCA MGPTC2 11784 037435* 1770 TAD MGPTC2 11785 037436* 3767 DCA MGPTC3 11786 037437* 1767 TAD MGPTC3 11787 037440* 3766 DCA MGPTC4 11788 CDFSYS undefined ^ 037441* 0000 11789 TAD I (CLOCK+3) undefined ^ undefined ^ 037442* 1765 11790 037443* 7421 MQL / SAVE MINUTES AND HOURS AT 11791 TAD I (CLOCK+4) / START OF EDIT undefined ^ undefined ^ 037444* 1764 11792 037445* 0000 CDFMYF 11793 037446* 3763 DCA OLDHR 11794 037447* 7501 MQA 11795 037450* 3762 DCA OLDMIN 11796 037451* 1361 TAD (WIDTH-COLM81) / SET TO NARROW SCREEN AT STARTUP /A186 11797 037452* 3177 DCA WIDNAR / /A186 11798 037453* 5777 JMP OVJRTN 11799 11800 11801 037454* 3321 XVMRG3, DCA MRGDNC / SET EXIT CONDITION CODE 11802 037455* 4513 CURMOV 11803 037456* 7000 NOP / FINISH WITH STYLE 11804 037457* 4760 JMS CLR132 / REVERT TO 80-COLUMN MODE 11805 11806 037460* 4515 PUTESC / CLEAR SCREEN 11807 037461* 4133 "[&177+4000 11808 037462* 4062 "2&177+4000 11809 037463* 0112 "J-200 11810 11811 037464* 4757 JMS PROMPT 11812 037465* 7635 MSGF / SHOW WE'RE ALMOST DONE 11813 AC7777 undefined ^ 037466* 0000 11814 037467* 4510 CHKPTR 11815 037470* 7700 SMA CLA 11816 037471* 5266 JMP .-3 / GET TO STX 11817 MRGDNA, AC0001 undefined ^ 037472* 0000 11818 037473* 4510 CHKPTR 11819 037474* 7450 SNA 11820 037475* 5272 JMP .-3 / IGNORE NULLS 11821 037476* 7710 SPA CLA 11822 037477* 5303 JMP MRGDNB / JUMP IF ETX 11823 037500* 1535 TAD I CURPTR 11824 037501* 4522 PUTSTX / PUT OUT REAL CHAR 11825 037502* 5272 JMP MRGDNA / AND LOOP FOR ALL 11826 11827 037503* 1167 MRGDNB, TAD FILENO 11828 037504* 7640 SZA CLA 11829 037505* 5311 JMP MRGDNF / JUMP IF MERGE TO FILE 11830 / ELSE CLOSE PRINTER 11831 AC7777 undefined ^ 037506* 0000 11832 037507* 4522 PUTSTX / SET EOF FLAG (AND WAIT FOR PRINTER) 11833 037510* 5313 JMP MRGDNX / THEN EXIT 11834 11835 037511* 4756 MRGDNF, JMS DSKCAL 11836 XDSKCL / CLOSE EDIT FILE undefined ^ 037512* 0000 11837 11838 037513* 7200 MRGDNX, CLA 11839 037514* 0000 CDFMYF / CHANGE DATA FIELD TO THIS FIELD /A170 11840 CIFMNU / CHANGE INSTRUCTION FIELD TO MENU FIELD /A170 undefined ^ 037515* 0000 11841 PGSWAP / AC=0, SAVE SWAP AREA & RELOAD MENU CODE /A170 undefined ^ 037516* 0000 11842 11843 037517* 1321 TAD MRGDNC / LOAD CONDITION CODE 11844 037520* 5755 JMP EDEXI3 / THEN EXIT 11845 11846 037521* 0000 MRGDNC, .-. 11847 11848 X=. / INDICATE FIRST FREE LOCATION ON PAGE 11849 /--------------------- 11850 037555* 0233 PAGE 037556* 5014 037557* 4470 037560* 6740 037561* 0064 037562* 0236 037563* 0235 037564* 0004 037565* 0003 037566* 4031 037567* 4025 037570* 4021 037571* 4634 037572* 4016 037573* 6000 037574* 1643 037575* 0000 037576* 7600 037577* 5122 11851 11852 / MGOVLY MOVED TO WPEDIT RESIDENT AREA BY EDIT 171 11853 11854 / STRP13 SEARCH FOR NEXT LINE 11855 / 11856 / 11857 11858 ESSTPX, CDFBUF undefined ^ 037600* 0000 11859 037601* 1535 TAD I CURPTR /FETCH FIRST CHAR 11860 037602* 5205 JMP STRP14 11861 037603* 4517 STRP13, ADVSPC 11862 037604* 5275 JMP STPEX1 11863 STRP14, AND P177 undefined ^ undefined ^ 037605* 0000 11864 037606* 4500 ZZCASE 11865 037607* 7700 STPTB3-1 11866 11867 / ECNWLN; STRP15 /NEWLINE COULD BE GOOD 11868 / ECNWPG; STPEX2 /NEWPAGE HERE IS NONO 11869 / ECSTRL; STPEX2 /SAME WITH RULER 11870 / ECMDFL; STRP16 /MODIFIED FLAG SKIP INC CURSOR 11871 / 0 11872 11873 037610* 2136 ISZ CURSOR 11874 037611* 5203 STRP16, JMP STRP13 /GO BACK AND CHECK NEXT CHARACTER /C218 11875 11876 /D218 STRP16, CURMOV 11877 /D218 JMP STPEX1 /EOF IS ACTUALLY CATASTROPHIC FAILURE 11878 /D218 JMP STRP13 /GO BACK AND CHECK NEXT CHARACTER 11879 11880 037612* 1535 STRP15, TAD I CURPTR /WHAT TYPE OF NEWLINE? 11881 TAD (-ECSLPT) /SELECT POINT? undefined ^ undefined ^ 037613* 1377 11882 037614* 7450 SNA 11883 JMP STRP17 /YES FINISH OUT undefined ^ undefined ^ 037615* 5000 11884 TAD (ECSLPT-ECNWLN) /HARD RETURN? undefined ^ undefined ^ undefined ^ undefined ^ 037616* 1377 11885 037617* 7640 SZA CLA 11886 037620* 5275 JMP STPEX1 /NOPE BAD DATA 11887 STRP22, AC0001 undefined ^ 037621* 0000 11888 037622* 4513 CURMOV 11889 037623* 5275 JMP STPEX1 /CATO. ERROR 11890 037624* 1535 TAD I CURPTR 11891 AND P177 undefined ^ undefined ^ 037625* 0000 11892 TAD (-ECNWPG) undefined ^ undefined ^ 037626* 1377 11893 037627* 7650 SNA CLA 11894 037630* 5252 JMP STRP20 11895 037631* 1135 TAD CURPTR 11896 DCA IX1 undefined ^ undefined ^ 037632* 3000 11897 037633* 1171 TAD LINE23 11898 037634* 3135 DCA CURPTR 11899 037635* 4507 BKPPTR 11900 037636* 7402 HLT 11901 AND P177 undefined ^ undefined ^ 037637* 0000 11902 TAD (-ECNDRL) undefined ^ undefined ^ 037640* 1377 11903 037641* 7650 SNA CLA 11904 037642* 5247 JMP STRP18 11905 STRP23, TAD IX1 undefined ^ undefined ^ 037643* 1000 11906 037644* 3135 DCA CURPTR 11907 037645* 4776 JMS OV2JMP 11908 OVSTRP undefined ^ 037646* 0000 11909 11910 / STRP18 RULER ABORT 11911 / 11912 / 11913 11914 STRP18, TAD IX1 undefined ^ undefined ^ 037647* 1000 11915 037650* 3135 DCA CURPTR 11916 037651* 5275 JMP STPEX1 11917 11918 / STRP20 CHECK CURRENT PAGE MARK 11919 / 11920 / 11921 11922 037652* 1535 STRP20, TAD I CURPTR 11923 TAD (-ECPCT1) undefined ^ undefined ^ 037653* 1377 11924 037654* 7450 SNA 11925 037655* 5262 JMP STRP25 11926 TAD (ECPCT1-ECPCT2) undefined ^ undefined ^ undefined ^ undefined ^ 037656* 1377 11927 037657* 7650 SNA CLA 11928 037660* 5275 JMP STPEX1 11929 037661* 5221 JMP STRP22 11930 STRP25, AC0001 undefined ^ 037662* 0000 11931 037663* 4513 CURMOV 11932 037664* 5275 JMP STPEX1 11933 037665* 1535 TAD I CURPTR 11934 TAD (-ECSLPT) undefined ^ undefined ^ 037666* 1377 11935 037667* 7450 SNA 11936 JMP STRP17 undefined ^ undefined ^ 037670* 5000 11937 TAD (ECSLPT-ECPCT2) undefined ^ undefined ^ undefined ^ undefined ^ 037671* 1377 11938 037672* 7640 SZA CLA 11939 037673* 5262 JMP STRP25 11940 037674* 5221 JMP STRP22 11941 11942 11943 / STPXE1 EXIT VIA STPNFG 11944 / 11945 / 11946 11947 037675* 4776 STPEX1, JMS OV2JMP 11948 OVSNFG undefined ^ 037676* 0000 11949 11950 / STPEX2 EXIT VIA STPEXB 11951 / 11952 / 11953 11954 037677* 4776 STPEX2, JMS OV2JMP 11955 OVSEXB undefined ^ 037700* 0000 11956 11957 STPTB3, ECNWLN; STRP15 /NEWLINE COULD BE GOOD undefined ^ 037701* 0000 037702* 7612 11958 ECNWPG; STPEX2 /NEWPAGE HERE IS NONO undefined ^ 037703* 0000 037704* 7677 11959 ECSTRL; STPEX2 /SAME WITH RULER undefined ^ 037705* 0000 037706* 7677 11960 ECMDFL; STRP16 /MODIFIED FLAG SKIP INC CURSOR undefined ^ 037707* 0000 037710* 7611 11961 037711* 0000 0 11962 11963 STPTB4, ECNWLN; STRP28 undefined ^ 037712* 0000 undefined ^ 037713* 0000 11964 ECNWPG; STRP28 undefined ^ 037714* 0000 undefined ^ 037715* 0000 11965 ECTAB; STRP28 undefined ^ 037716* 0000 undefined ^ 037717* 0000 11966 037720* 0000 0 11967 11968 STPTB5, ECNWLN; STRP12 /NO COLUMN TO STRIP undefined ^ 037721* 0000 undefined ^ 037722* 0000 11969 ECNWPG; STPNFG /BAD DATA FORMAT undefined ^ 037723* 0000 undefined ^ 037724* 0000 11970 ECTAB; STRP28 undefined ^ 037725* 0000 undefined ^ 037726* 0000 11971 037727* 0000 0 11972 11973 X=. / INDICATE FIRST FREE LOCATION ON PAGE 11974 /--------------------- 11975 037776* 5124 PAGE 037777* 0000 11976 11977 /*************************************************************************** 11978 /**** START OF OVERLAY **** 11979 /*************************************************************************** 11980 11981 OVRNUM=OVRNUM+200 / OVERLAY NUMBER 11982 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 11983 11984 RELOC 11985 11986 RELOC OVLAY1 11987 037400* 0400 OVRNUM / CURRENT OVERLAY CONTENTS 11988 11989 IFDEF FORIN < 11990 ACCENT= .-OVLAY1+OVRNUM 11991 JMP XCCENT 11992 > / END IFDEF FORIN 11993 11994 OVSPCE= .-OVLAY1+OVRNUM 11995 037401* 1166 TAD FORMNO 11996 037402* 7650 SNA CLA 11997 037403* 5777 JMP EISPCE 11998 037404* 4523 OVLJMP 11999 037405* 0203 OVMRG4 / QUIT NOW IF MERGING 12000 12001 OVSPC2= .-OVLAY1+OVRNUM 12002 037406* 2776 ISZ BLKALM / FORCE HARD LIMIT 12003 037407* 5777 JMP EISPCE 12004 12005 12006 OVINIT= .-OVLAY1+OVRNUM / CURRENT OVERLAY 12007 12008 037410* 1775 TAD RPBIN1 / EXCLUSIVE GOTO PAGE FLAG 12009 037411* 7700 SMA CLA / DONT' CLEAR SCREEN IF GOTO PAGE 12010 12011 037412* 4774 JMS CLR132 / REVERT TO 80 COLUMNS 12012 CDFFIO undefined ^ 037413* 0000 12013 DCA I (SCFSPC) / CLEAR SPACE LEFT INDICATOR undefined ^ undefined ^ 037414* 3773 12014 037415* 0000 CDFMYF 12015 037416* 1167 TAD FILENO / GET THE OUTPUT FILE NUMBER 12016 037417* 7450 SNA / CHECK FOR LIST PROCESSING TO A PRINTER 12017 037420* 5256 JMP INIX00 / YES, SKIP AROUND DOCUMENT RELATED ITEMS 12018 037421* 7421 MQL 12019 037422* 1170 TAD FILOPT / SAVE FILE #, SET NORMAL OPTION 12020 037423* 4772 JMS DSKCAL 12021 XDSKIN / INIT FILE undefined ^ 037424* 0000 12022 037425* 7440 SZA 12023 037426* 5771 JMP EDEXI3 / QUIT IF OPEN FAILED 12024 12025 037427* 4770 JMS HDRGET 12026 037430* 0015 HDRPSZ / CHECK PAGE SIZE 12027 037431* 7640 SZA CLA 12028 037432* 5237 JMP .+5 / IF ZERO, 12029 037433* 4767 JMS MNUGET 12030 MNPGSZ / GET DEFAULT PAGE SIZE undefined ^ 037434* 0000 12031 037435* 4766 JMS HDRPUT 12032 037436* 0015 HDRPSZ / AND PUT TO HEADER 12033 12034 037437* 4770 JMS HDRGET / GET FILE SIZE FROM DOCUMENT HEADER 12035 037440* 0005 HDRFSZ / POINTER TO FILE SIZE 12036 037441* 4765 JMS MNUPUT / STORE FILE SIZE FOR STATUS LINE 12037 LINUSD-MUBUF / LOCATION FOR BLOCKS USED IN DOCUMENT undefined ^ 037442* 0176 12038 12039 037443* 4765 JMS MNUPUT / CLEAR BLOCKS FREE FOR STATUS LINE 12040 LINFRE-MUBUF / LOCATION FOR BLOCKS FREE IN DOCUMENT undefined ^ 037444* 0177 12041 12042 037445* 4765 JMS MNUPUT / CLEAR HIGH ORDER PAGE NUMBER 12043 LINPGH-MUBUF / HIGH ORDER PAGE NUMBER IN DOCUMENT undefined ^ 037446* 0174 12044 12045 AC0001 / SET TO A COUNT OF ONE undefined ^ 037447* 0000 12046 037450* 4765 JMS MNUPUT / STORE PAGE NUMBER FOR STATUS LINE 12047 LINPGL-MUBUF / LOW ORDER PAGE NUMBER IN DOCUMENT undefined ^ 037451* 0173 12048 12049 AC0001 / SET TO A COUNT OF ONE undefined ^ 037452* 0000 12050 037453* 4765 JMS MNUPUT / STORE LINE NUMBER FOR STATUS LINE 12051 LINNUM-MUBUF / LOCATION FOR LINE NUMBER IN DOCUMENT undefined ^ 037454* 0175 12052 12053 /D157 TAD (3777) / CLEAR DON'T-DISPLAY-MSG FLAG 12054 /D157 AND RPBIN1 / FROM UNIQUE GOTO PAGE WORD 12055 /D157 DCA RPBIN1 12056 12057 /D156 TAD FORMNO / GET THE FORM NUMBER 12058 /D156 SZA CLA / ARE WE MERGING (LIST PROCESSING) 12059 /D156 JMP INIX01 / YES, PICK UP MAXIMUM NUMBER OF LINES 12060 /D156 JMS MNUGET / NO, THEN SET UP FOR SCROLLING AREA 12061 /D156 MNSTAT / PICK UP NUMBER OF STATUS LINES 12062 /D156 CIA / MAKE NEGATIVE FOR SUBTRACT 12063 /D156 INIX01, TAD (NPTRS) / PICK UP MAXIMUM NUMBER OF LINES 12064 /D156 DCA SCRNLN / SAVE FOR USE BY EDITOR ROUTINES 12065 12066 037455* 1364 TAD (-24) / USE 20 AS CUTOFF AT ALL TIMES 12067 037456* 3172 INIX00, DCA SPCCHK / FOR L.P. TO A PRINTER, USE A VALUE OF ZERO 12068 037457* 3776 DCA BLKALM / CLEAR SPACE ALARM FLAG 12069 /D156 DCA BLWTCH / CLEAR FREE BLOCK WATCH WORD 12070 12071 037460* 1166 TAD FORMNO / GET THE FORM NUMBER /A156 12072 037461* 7640 SZA CLA / ARE WE MERGING (LIST PROCESSING) /A156 12073 037462* 5266 JMP INIX01 / YES, PICK UP MAXIMUM NUMBER OF LINES /A156 12074 037463* 4767 JMS MNUGET / NO, THEN SET UP FOR SCROLLING AREA /A156 12075 MNSTAT / PICK UP NUMBER OF STATUS LINES /A156 undefined ^ 037464* 0000 12076 037465* 7041 CIA / MAKE NEGATIVE FOR SUBTRACT /A156 12077 12078 037466* 1363 INIX01, TAD (NPTRS) / PICK UP MAXIMUM NUMBER OF LINES /A156 12079 037467* 3176 DCA SCRNLN / SAVE FOR USE BY EDITOR ROUTINES /A156 12080 12081 / +++ Modify RULOFF Case-Table to turn Display-Rulers ON or OFF. /a177 12082 / /a177 12083 / MNSTAT = 0 or 1 ... Ruler Display ON /a177 12084 / MNSTAT = 2 or 3 ... Ruler Display OFF /a177 12085 / /a177 12086 037470* 4762 JMS OV2JMP / LOAD OVERLAY 2 /a177 12087 OVRLOF / Adjust Case-Table and Continue /a177 undefined ^ 037471* 0000 12088 12089 12090 / INITIALIZE EDIT PAGE 0 CONTROL WORDS 12091 037472* 4761 JMS CLRMEM / CLEAR MEMORY 12092 037473* 0123 SINZRO-1 / FROM 12093 037474* 7745 -NINZRO / - NUMBER OF LOCATIONS 12094 CDFEDT / CDF INSTRUCTION undefined ^ 037475* 0000 12095 12096 / INITIALIZE EDIT MATH PAGE 0 CONTROL WORDS 12097 037476* 4761 JMS CLRMEM / CLEAR MEMORY 12098 MF5P0ET-1 / FROM undefined ^ 037477* 7777 12099 -LMF5P0ET / - NUMBER OF LOCATIONS undefined ^ 037500* 0000 12100 CDFLP / CDF INSTRUCTION undefined ^ 037501* 0000 12101 12102 / INITIALIZE EDIT BUFFER 12103 12104 AC7777 / SET POINTER TO BUFFER_BEGIN - 1 undefined ^ 037502* 0000 12105 037503* 1164 TAD BUFBEG 12106 DCA X0 undefined ^ undefined ^ 037504* 3000 12107 CDFBUF undefined ^ 037505* 0000 12108 TAD (ECBFBG) / GET BUFFER BEGIN CODE undefined ^ undefined ^ 037506* 1373 12109 DCA I X0 / INSTALL AT TOP OF BUFFER undefined ^ undefined ^ 037507* 3400 12110 TAD (ECSTX) / GET START OF TEXT CODE undefined ^ undefined ^ 037510* 1373 12111 DCA I X0 / INSTALL IN NEXT BUFFER LOCATION undefined ^ undefined ^ 037511* 3400 12112 TAD (ECETX) / GET END OF TEXT CODE undefined ^ undefined ^ 037512* 1373 12113 DCA I X0 / INSTALL IN NEXT BUFFER LOCATION undefined ^ undefined ^ 037513* 3400 12114 TAD X0 / SET CURPTR TO POINT AT ETX CHAR. THAT undefined ^ undefined ^ 037514* 1000 12115 / WAS JUST INSTALLED 12116 037515* 3135 DCA CURPTR 12117 12118 / CLEAR THE REST OF THE BUFFER 12119 037516* 1165 TAD BUFSIZ / SET COUNTER FOR NO. OF WORDS TO CLEAR 12120 037517* 7041 CIA 12121 037520* 1360 TAD (4) 12122 DCA X1 undefined ^ undefined ^ 037521* 3000 12123 DCA I X0 / CLEAR ONE LOCATION undefined ^ undefined ^ 037522* 3400 12124 ISZ X1 / SKIP IF: FINISHED undefined ^ undefined ^ 037523* 2000 12125 037524* 5322 JMP .-2 / NOT FINISHED! DO THE NEXT LOCATION! 12126 12127 TAD (ECBFND) / INSTALL BUFFER_END CHARACTER undefined ^ undefined ^ 037525* 1373 12128 DCA I X0 undefined ^ undefined ^ 037526* 3400 12129 12130 / INITIALIZE SCREEN 12131 / *** 12132 12133 / INITIALIZE EDITOR'S PTRBLK (POINTER_BLOCK) TABLE 12134 037527* 0000 CDFMYF 12135 037530* 4761 JMS CLRMEM / CLEAR MEMORY 12136 037531* 6220 PTRBLK-1 / FROM 12137 037532* 7751 INIXLN, -NPTRS+1 / - NUMBER OF LOCATIONS 12138 CDFEDT / CDF INSTRUCTION undefined ^ 037533* 0000 12139 037534* 1135 TAD CURPTR / SET LAST LOC. IN PTRBLK = CURPTR 12140 DCA I X0 undefined ^ undefined ^ 037535* 3400 12141 12142 037536* 1135 TAD CURPTR / INITIALIZE LINE 23 POINTER /A157 12143 037537* 3171 DCA LINE23 /A157 12144 037540* 3136 DCA CURSOR / CLEAR CURSOR /A157 12145 037541* 3047 DCA LOWLIM / CLEAR LOLIM /A157 12146 12147 AC7777 / A180 undefined ^ 037542* 0000 12148 CIFMNU undefined ^ 037543* 0000 12149 PGSWAP undefined ^ 037544* 0000 12150 12151 / CLEAR CURRENT RULER IF NOT DOING GOTO-PAGE, GOLD:BOT, OR GOTO-RULER; /A157 12152 / CLEAR "GOTO-PAGE, GOLD:BOTTOM, OR GOTO-RULER" FLAG. /A157 12153 037545* 7330 CLA CLL CML RAR / L,AC = 04000 /A157 12154 037546* 1775 TAD RPBIN1 / LINK=RPBIN1 BIT 0,AC0=-RPBIN1 BIT 0 /A157 12155 037547* 7500 SMA /A157 12156 037550* 3775 DCA RPBIN1 / CLEAR RPBIN1 BIT 0 /A157 12157 / (CLEAR "GTP, GOLD:BOT, OR GTR" FLAG, /A157 12158 / BUT FLAG LIVES ON IN LINK) /A157 12159 12160 037551* 5757 JMP INIX04 / CONTINUE ON NEXT PAGE 12161 12162 12163 X=. / INDICATE FIRST FREE LOCATION ON PAGE 12164 /--------------------- 12165 037557* 7600 PAGE 037560* 0004 037561* 7700 037562* 5124 037563* 0030 037564* 7754 037565* 1655 037566* 1335 037567* 1643 037570* 6704 037571* 0233 037572* 5014 037573* 0000 037574* 6740 037575* 6737 037576* 4240 037577* 7637 12166 12167 /D157 INIX04, TAD CURPTR / INITIALIZE LINE 23 POINTER 12168 /D157 DCA LINE23 12169 /D157 DCA CURSOR / CLEAR CURSOR 12170 /D157 DCA LOWLIM / CLEAR LOLIM 12171 / INHIBIT CLEARING OF CURRENT RULER FOR GOTO-RULER /A157 12172 037600* 7630 INIX04, SZL CLA / G-T-PAGE, GOLD:BOT OR G-T-RULER? /A157 12173 037601* 5204 JMP INIX05 / YES: PRESERVE CURRENT RULER /A157 12174 037602* 4777 JMS CLRULR / NO: CLEAR RULERS 12175 037603* 4776 JMS COPRUL 12176 037604* 1166 INIX05, TAD FORMNO /M157 12177 037605* 7450 SNA 12178 037606* 5211 JMP .+3 12179 037607* 4775 JMS DSKCAL 12180 XRDFIN / INIT FORM FILE IF MERGING undefined ^ 037610* 0000 12181 037611* 4774 JMS LODCHR / GET FIRST CHARACTER 12182 037612* 5216 JMP INIX03 / THERE WAS NONE, GO INSERT A RULER 12183 TAD (-ECSTRL) / IS IT THE START OF A RULER undefined ^ undefined ^ 037613* 1373 12184 037614* 7650 SNA CLA / SKIP IF: NOT 12185 037615* 5225 JMP INIX02 / RULER FOUND, NO CHANGE NEEDED 12186 12187 / NO RULER! INSERT ONE! 12188 12189 037616* 0000 INIX03, CDFMYF 12190 037617* 4772 JMS RLGETS 12191 037620* 4771 JMS INSRUL / ELSE INSERT RULER 0 12192 TAD (ECRMFL) undefined ^ undefined ^ 037621* 1373 12193 037622* 4770 JMS INSRL1 / AND RLRMOD CODE 12194 037623* 1171 TAD LINE23 12195 037624* 3135 DCA CURPTR / RESET TO START OF MEM 12196 12197 037625* 4515 INIX02, PUTESC / SET APPLICATION KEYPAD MODE 12198 037626* 0075 "=-200 12199 037627* 4767 JMS SETCUR / GET TO BOTTOM LINE 12200 AC0003 undefined ^ 037630* 0000 12201 037631* 3137 DCA SCRLCT / INIT TO TOP 12202 037632* 1166 TAD FORMNO / AND START UP RIGHT PROCESS 12203 037633* 7650 SNA CLA 12204 037634* 5320 JMP TOOVJRTN / CHECK AMOUNT OF ROOM ON DISK BEFORE 12205 / RESUME OF EDIT OR GTP 12206 12207 / AC7777 / SET AC = -1 /A170 12208 / CIFMNU / CHANGE INSTRUCTION FIELD TO MENU FIELD /A170 12209 / PGSWAP / AC=-1 SO JUST LOAD IN THE SAVE AREA /A170 12210 12211 037635* 4523 OVLJMP 12212 037636* 3201 OVMRG2 / ... OR MERGE 12213 12214 12215 EISPCE, 12216 037637* 4766 JMS CLR132 / MAKE SURE THE SCREEN IS IN NARROW MODE 12217 AC0003 / SET UP TO RESET SCROLL REGION undefined ^ 037640* 0000 12218 CIFMNU / CHANGE INSTRUCTION FIELD TO MENU FIELD undefined ^ 037641* 0000 12219 037642* 4773 JMS I (CALLN1) / RESET SCROLL REGION SET ABSOLUTE MODE 12220 / CIFMNU / CHANGE INSTRUCTION FIELD TO MENU FIELD 12221 / PGSWAP / AC=0, SAVE SWAP AREA & RELOAD MENU CODE 12222 12223 037643* 1765 TAD BLKALM / CHECK FOR HARD LIMIT 12224 037644* 7640 SZA CLA / IF NOT SET, THEN TAKE SOFT APPROCH /A156 12225 12226 /D156 SNA CLA 12227 /D156 JMP EISPC3 / NOT HARD, TAKE SOFT APPROACH 12228 /D156 TAD BLWTCH / SEE IF THIS IS THE FIRST WARNING 12229 /D156 SZA CLA 12230 12231 EISPC2, AC0002 / SET-UP MENU TO FORCE EXIT undefined ^ 037645* 0000 12232 12233 037646* 7001 EISPC3, IAC / TAKE SOFT WARNING APPROACH 12234 12235 037647* 4764 JMS MNUPUT 12236 MNTMP1 undefined ^ 037650* 0000 12237 12238 CDFFIO undefined ^ 037651* 0000 12239 TAD I (SCFSPC) undefined ^ undefined ^ 037652* 1773 12240 037653* 4764 JMS MNUPUT 12241 MNTMP2 undefined ^ 037654* 0000 12242 12243 CIFMNU undefined ^ 037655* 0000 12244 PGSWAP undefined ^ 037656* 0000 12245 12246 CIFMNU undefined ^ 037657* 0000 12247 JMS I MNUCAL undefined ^ undefined ^ 037660* 4400 12248 DLMEM1 undefined ^ 037661* 0000 12249 12250 /D156 TAD BLKALM / IS THIS A FORCE EXIT? 12251 /D156 SNA CLA 12252 /D156 JMP EISPC4 / NO, RETURN TO EDITOR 12253 /D156 TAD BLWTCH / COULD BE, CHECK BLWTCH 12254 /D156 SZA CLA / FIRST WARNING! DON'T FORCE FILE 12255 12256 037662* 1765 TAD BLKALM / IS THIS A FORCE EXIT? /A156 12257 037663* 7640 SZA CLA /A156 12258 037664* 5763 JMP EIFILE / YES! FILE THE DOCUMENT! 12259 12260 EISPC4, AC7777 / SET AC = -1 undefined ^ 037665* 0000 12261 CIFMNU / CHANGE INSTRUCTION FIELD TO MENU FIELD undefined ^ 037666* 0000 12262 PGSWAP / AC=-1 SO JUST LOAD IN THE SAVE AREA undefined ^ 037667* 0000 12263 12264 037670* 1177 TAD WIDNAR / ARE WE FORCED WIDE? /M192 12265 037671* 7650 SNA CLA / SKIP IF NOT /M192 12266 037672* 4762 JMS SET132 / YES 12267 12268 037673* 4761 JMS CLSSET / USE CLSCRN IN FXSCRL TO DISPLAY STATUS 12269 12270 037674* 1340 TAD OPNFLG / CHECK VALUE OF OPEN FLAG 12271 037675* 7650 SNA CLA / SKIP IF: OPENING A DOCUMENT 12272 037676* 5760 JMP EINEXT 12273 12274 037677* 5757 JMP OVJRTN / RESUME NORMAL EDIT OR GTP 12275 12276 /++ 12277 / CLRMEM 12278 12279 / FUNTIONAL DESCRIPTION: CLEAR_MEMORY 12280 12281 / THIS ROUTINE WILL CLEAR ANY SECTION OF MEMORY AS PER PARAMETERS 12282 / SPECIFIED AT CALLER+1, 2, AND 3. 12283 12284 / CALLING SEQUENCE: JMS CLRMEM 12285 / ADDRESS - 1 TO START CLR 12286 / -NUMBER OF LOCATIONS TO CLR 12287 / CDF INSTRUCTION 12288 12289 / INPUT PARAMETERS: AC = 0 12290 12291 / IMPLICIT INPUT: X0, T1 12292 12293 / OUTPUT PARAMETERS: AC = 0 12294 12295 / IMPLICIT OUTPUT: X0, T1, CLRME1 12296 12297 / COMPLETION CODE: NONE 12298 / SIDE EFFECTS: NONE 12299 12300 /-- 12301 12302 CLRMEM, XX / CLEAR_MEMORY undefined ^ 037700* 0000 12303 037701* 1700 TAD I CLRMEM / GET ADDRESS-1 OF MEM. TO BE CLEARED 12304 DCA X0 / SAVE IT undefined ^ undefined ^ 037702* 3000 12305 037703* 2300 ISZ CLRMEM / BUMP RETURN POINTER 12306 037704* 1700 TAD I CLRMEM / GET -NUMBER OF LOCATIONS TO BE CLEARED 12307 DCA T1 / SAVE IT undefined ^ undefined ^ 037705* 3000 12308 037706* 2300 ISZ CLRMEM / BUMP RETURN POINTER 12309 037707* 1700 TAD I CLRMEM / GET CDF INSTRUCTION FOR MEM. TO BE CLEARED 12310 037710* 3312 DCA CLRME1 / SAVE IT 12311 037711* 2300 ISZ CLRMEM / BUMP RETURN POINTER 12312 037712* 0000 CLRME1, .-. / HOLDS CDF INSTRUCTION 12313 DCA I X0 / BUMP POINTER THEN CLEAR LOCATION undefined ^ undefined ^ 037713* 3400 12314 ISZ T1 / FINISHED? SKIP IF: SO undefined ^ undefined ^ 037714* 2000 12315 037715* 5313 JMP .-2 / CLEAR THE NEXT LOCATION 12316 037716* 0000 CDFMYF / RESTORE DATA FIELD 12317 037717* 5700 JMP I CLRMEM / RETURN 12318 12319 12320 12321 12322 / THIS ROUTINE CHECKS TO SEE HOW MUCH ROOM IS LEFT ON THE DISKETTE AT 12323 / OPEN TIME. IF THE NUMBER OF BLOCKS LEFT IS GREATER THAN THE CUTOFF 12324 / POINT (SPCCHK) RESUME. ELSE, IF THE NUMBER OF BLOCKS IS GREATER 12325 / THAN 6, THEN WARN THE USER ABOUT DISK SPACE AND RESUME. ELSE 12326 / THE NUMBER OF BLOCKS LEFT IS LESS THAN 6, DO NOT ALLOW THE USER 12327 / TO EDIT THE DOCUMENT. 12328 / THIS ENTIRE ROUTINE IS EDIT #132 12329 TOOVJRTN, 12330 AC0001 / undefined ^ 037720* 0000 12331 037721* 3340 DCA OPNFLG / SIGNIFIES OPENING DOCUMNET 12332 CDFFIO / undefined ^ 037722* 0000 12333 TAD I (SCFSPC) / GET THE # OF AVAILABLE BLOCKS undefined ^ undefined ^ 037723* 1773 12334 037724* 0000 CDFMYF / 12335 12336 037725* 3756 DCA BLWTCH / AND SAVE NUMBER OF FREE BLOCKS /M156 12337 037726* 1756 TAD BLWTCH / RESTORE FREE BLOCK COUNT /M156 12338 037727* 1172 TAD SPCCHK / COMPARE TO CUTOFF POINT 12339 037730* 7700 SMA CLA / SKIP IF: BELOW CUTOFF POINT 12340 12341 037731* 5265 JMP EISPC4 / ENOUGH BLOCKS LEFT, GO PAGE SWAP AREA 12342 12343 037732* 1756 TAD BLWTCH / RESTORE FREE BLOCK COUNT /M156 12344 037733* 1355 TAD (-7) / COMPARE TO HARD LIMIT 12345 037734* 7700 SMA CLA / SKIP IF: LESS THAN HARD LIMIT 12346 037735* 5246 JMP EISPC3 / SOFT LIMIT, WARN USER 12347 12348 /D156 ISZ BLWTCH 12349 037736* 2765 ISZ BLKALM / SETTING THIS WORD TELLS EISPC2 THAT USER 12350 037737* 5245 JMP EISPC2 / HAS REACHED HARD LIMIT, FILE THE DOCUMENT 12351 12352 037740* 0000 OPNFLG, 0 / IF = 1: OPEN 12353 12354 12355 IFDEF FORIN < 12356 12357 / HERE TO TEST FOR ACCENTED CHARACRTERS ON INPUT 12358 12359 XCCENT, TAD CHAR1 / GET CHARACTER BACK 12360 SPA / INPUT COMMAND? 12361 JMP EINEXC / YES, PROCESS COMAND 12362 CLA 12363 TAD (TABLE1-1) 12364 JMS SEARCH / LOOK FOR CHARACTER IN TABLE 12365 JMP ACENT1 / NOT FOUND 12366 TAD (ECSTOV) / FOUND 12367 INSCHR / INSET DEAD KEY START 12368 TAD CHAR1 12369 INSCHR / INSERT CHARACTER 12370 ACENT0, GETINP / GET NEXT CHARACTER 12371 SMA / SPECIAL? 12372 JMP ACENT2 / NO 12373 JMS BEEPER / DCA CHAR1 /YES, SAVE CHARACTER 12374 JMP ACENT0 / ADVPTR / ADVANCE POINTER 12375 NOP / JMP EIBAD /? 12376 NOP / TAD (ECNDOV) 12377 NOP / JMS INSRL1 / STORE END OF DEAD KEY SEQUENCE 12378 NOP / TAD CHAR1 12379 NOP / JMP EINEXC / NOW EXECUTE SPECIAL CHARACTER 12380 ACENT2, INSCHR / INSERT 2ND CHARACTER 12381 TAD (ECNDOV) 12382 SKP / INSERT DEAD KEY SEQ. END 12383 ACENT1, TAD CHAR1 / CHAR NOT FOUND IN TABLE 12384 JMP EINSRT / INSERT INTO TEXT NORMALLY 12385 > / END IFDEF FORIN 12386 12387 X=. / INDICATE FIRST FREE LOCATION ON PAGE 12388 /--------------------- 12389 037755* 7771 PAGE 037756* 4237 037757* 5122 037760* 0406 037761* 2141 037762* 6744 037763* 0220 037764* 1655 037765* 4240 037766* 6740 037767* 1744 037770* 5260 037771* 5242 037772* 5267 037773* 0000 037774* 4241 037775* 5014 037776* 5217 037777* 5406 12390 12391 /*************************************************************************** 12392 /**** START OF OVERLAY **** 12393 /*************************************************************************** 12394 12395 OVRNUM=OVRNUM+200 12396 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 12397 12398 RELOC 12399 12400 RELOC OVLAY1 12401 037400* 0600 OVRNUM 12402 12403 OVMRG1= .-OVLAY1+OVRNUM / "MERGE" OVERLAY # 1 12404 12405 037401* 4777 JMS CPYBUF / SAVE CONTENTS OF FIRST SWAP AREA BLOCK /A170 12406 037402* 7600 -200 / NUMBER OF WORDS TO SAVE /A170 12407 CDFMNU / SOURCE FIELD /A170 undefined ^ 037403* 0000 12408 SWPBEG-1 / SOURCE ADDRESS /A170 undefined ^ 037404* 7777 12409 037405* 0000 CDFMYF / DESTINATION FIELD /A170 12410 037406* 0377 OVLAYM-1 / DESTINATION ADDRESS /A170 12411 12412 TAD (-DLSTAT) / PICK UP ADDRESS OF STATUS CODE /A170 undefined ^ undefined ^ 037407* 1376 12413 CIFMNU / CHANGE TO MENU FIELD /A170 undefined ^ 037410* 0000 12414 PGSWAP / AC=DLSTAT SO JUST READ IN STATUS CODE /A170 undefined ^ 037411* 0000 12415 12416 037412* 4777 JMS CPYBUF / RESTORE CONTENTS OF SWAP AREA BLOCK /A170 12417 037413* 7600 -200 / NUMBER OF WORDS TO SAVE /A170 12418 037414* 0000 CDFMYF / SOURCE FIELD /A170 12419 037415* 0377 OVLAYM-1 / SOURCE ADDRESS /A170 12420 CDFMNU / DESTINATION FIELD /A170 undefined ^ 037416* 0000 12421 SWPBEG-1 / DESTINATION ADDRESS /A170 undefined ^ 037417* 7777 12422 12423 037420* 1375 TAD (7400) / PICK UP SPECIAL VALUE OF NO-OP CODE /A209 12424 037421* 4774 JMS MNUPUT / STORE FOR SWAP AREA LOADED CHECK /A209 12425 CALLN1+2-MUBUF / FLAG LOCATION USED BY CALLER ROUTINE /A209 undefined ^ 037422* 0002 12426 12427 12428 CIFMNU / CHANGE INSTRUCTION FIELD TO MENU FIELD /A170 undefined ^ 037423* 0000 12429 PGSWAP / AC=0, SAVE SWAP AREA & RELOAD MENU CODE /A170 undefined ^ 037424* 0000 12430 12431 037425* 1373 TAD (5000) 12432 037426* 3164 DCA BUFBEG / SET UP EDIT BUF PTRS 12433 12434 037427* 1372 TAD (BUFEND-5000) 12435 037430* 3165 DCA BUFSIZ 12436 12437 037431* 1771 TAD EDMERG 12438 037432* 3770 DCA EDITOR / COPY RETURN ADDR 12439 12440 TAD (CDILP) /A191 undefined ^ undefined ^ 037433* 1376 12441 037434* 3767 DCA EDEXI3 / SET UP RETURN FIELD INSTRUCTION /A191 12442 12443 037435* 4774 JMS MNUPUT / CLEAR EDITOR LOCK WORD SO THAT THE /A191 12444 OLL110-MUBUF / EDITOR CODE IN MEMORY IS REFRESHED /A191 undefined ^ undefined ^ 037436* 0000 12445 12446 037437* 4777 JMS CPYBUF 12447 037440* 7600 -200 12448 037441* 0000 CDFMYF 12449 037442* 7577 MGOVLY-1 12450 037443* 0000 CDFMYF 12451 037444* 0377 OVLAYM-1 12452 TAD (XRDFNC) undefined ^ undefined ^ 037445* 1376 12453 037446* 3766 DCA MGPTC1 / DO PATCHES 12454 037447* 1365 TAD (SKP CLA) 12455 037450* 3764 DCA MGPTC2 12456 037451* 1365 TAD (SKP CLA) 12457 037452* 3763 DCA MGPTC3 12458 037453* 1362 TAD (ESGETX&177+4600) 12459 037454* 3761 DCA MGPTC4 12460 12461 CDFBUF / GET ARGS undefined ^ 037455* 0000 12462 AC7777 undefined ^ 037456* 0000 12463 DCA X0 undefined ^ undefined ^ 037457* 3000 12464 TAD I X0 undefined ^ undefined ^ 037460* 1400 12465 037461* 3166 DCA FORMNO 12466 TAD I X0 undefined ^ undefined ^ 037462* 1400 12467 037463* 3167 DCA FILENO 12468 TAD I X0 undefined ^ undefined ^ 037464* 1400 12469 037465* 3170 DCA FILOPT 12470 037466* 1167 TAD FILENO 12471 037467* 7640 SZA CLA 12472 037470* 5315 JMP MRGINB / INIT PRINT IF NEC. 12473 037471* 1360 TAD (PRTBUF-1) / GET THE STARTING LOC. OF THE 12474 DCA X0 / MERGE-TO-PRINT BUFFER undefined ^ undefined ^ 037472* 3000 12475 037473* 1357 TAD (-PRTSIZ+1) / AND ITS SIZE 12476 DCA T1 undefined ^ undefined ^ 037474* 3000 12477 DCA I X0 / SO THAT undefined ^ undefined ^ 037475* 3400 12478 ISZ T1 / WE CAN undefined ^ undefined ^ 037476* 2000 12479 037477* 5275 JMP .-2 / CLEAR THE BUFFER 12480 037500* 1360 TAD (PRTBUF-1) 12481 DCA I X0 / AND SET END MARKER undefined ^ undefined ^ 037501* 3400 12482 037502* 0000 CDFMYF 12483 037503* 1356 TAD (ESPUTX&177+5600) 12484 037504* 3761 DCA MGPTC4 / RE-PATCH FOR PRINTER 12485 AC7777 / Set "printer not halted yet" flag. undefined ^ 037505* 0000 12486 037506* 3755 DCA MRGHFG / Reset "printer halted" flag. 12487 CDFPRT undefined ^ 037507* 0000 12488 037510* 6224 RIF 12489 037511* 1354 TAD (CIF) / GET CIF TO MY FIELD 12490 DCA I (PRIRFD) / SET CALL TO OUR ROUTINE undefined ^ undefined ^ 037512* 3776 12491 037513* 1353 TAD (GETPRT) 12492 DCA I (PRIRAD) undefined ^ undefined ^ 037514* 3776 12493 12494 037515* 4523 MRGINB, OVLJMP;OVINIT / NOW INIT REST OF WORLD 037516* 0410 12495 12496 12497 X=. / INDICATE FIRST FREE LOCATION ON PAGE 12498 /--------------------- 12499 037553* 0400 PAGE 037554* 6202 037555* 0512 037556* 5635 037557* 7001 037560* 5777 037561* 4031 037562* 4634 037563* 4025 037564* 4021 037565* 7610 037566* 4016 037567* 0233 037570* 0200 037571* 0202 037572* 1000 037573* 5000 037574* 1655 037575* 7400 037576* 0000 037577* 6054 12500 12501 12502 / THIS ROUTINE RETURNS A NON-ZERO CHARACTER, UNLESS THE END OF THE FILE IS 12503 / REACHED. WHEN THE END OF THE FILE IS REACHED, THE ROUTINE CONTINUES TO 12504 / RETURN A ZERO EACH TIME IT IS INVOKED. HOWEVER, THE END OF FILE MARK IS 12505 / NEVER REMOVED, SO THE ROUTINE MUST BE "CLOSED" IF LIST PROCESSING IS TO 12506 / TERMINATE. TO DO THIS, SIMPLY CALL GETPRT WITH A NON-ZERO AC. 12507 12508 MGOVLY, RELOC OVLAYM / DEFINE THE MERGE OVERLAY 12509 12510 GETPRT, XX / CALLED FROM PRINTER FOR MERGE OUTPUT undefined ^ 030400* 0000 12511 CDFBUF / map buffer field for final call. undefined ^ 030401* 0000 12512 030402* 7640 SZA CLA 12513 030403* 5210 JMP GETPRZ / YES--CLOSE THINGS OFF 12514 12515 GETPRY, CDFBUF undefined ^ 030404* 0000 12516 030405* 1633 TAD I PRGETP / GET NEXT CHAR 12517 030406* 7550 SNA SPA 12518 030407* 5220 JMP GETPRV / JUMP IF WRAP OR EOF 12519 030410* 7421 GETPRZ, MQL / SAVE CHAR 12520 030411* 3633 DCA I PRGETP / SHOW WE GOT IT 12521 CDFSYS undefined ^ 030412* 0000 12522 DCA I (INTFLG) / LET EVERYBODY WAKE UP undefined ^ undefined ^ 030413* 3777 12523 030414* 2233 ISZ PRGETP / WHILE WE FIX PTR 12524 030415* 7701 CLA MQA / RETRIEVE CHAR 12525 GETPRX, CIF CDFPRT / RETURN CIF undefined ^ 030416* 6202 12526 030417* 5600 JMP I GETPRT 12527 12528 030420* 7450 GETPRV, SNA 12529 030421* 5227 JMP GETPRW / JUMP IF NO CHARACTERS TO BE HAD 12530 030422* 7001 IAC 12531 030423* 7450 SNA 12532 030424* 5216 JMP GETPRX / RETURN IMMEDIATELY IF END OF FILE 12533 030425* 3233 DCA PRGETP / ELSE RESET FOR WRAPPED BUFFER 12534 030426* 5204 JMP GETPRY / AND RETRY 12535 12536 030427* 0000 GETPRW, CDFMYF 12537 CIFSYS undefined ^ 030430* 0000 12538 JWAIT / WAIT FOR OUTPUT undefined ^ 030431* 0000 12539 030432* 5204 JMP GETPRY / THEN TRY AGAIN 12540 12541 030433* 6000 PRGETP, PRTBUF / PRINT BUFFER READ PTR 12542 12543 030434* 4501 PUTST2, HLTTST / See if GOLD:HALT has been pressed. 12544 030435* 7410 SKP / this return if yes. Process GOLD:HALT 12545 030436* 5257 JMP PUTST4 / This return if no. continue waiting. 12546 AC7777 / check printer status. undefined ^ 030437* 0000 12547 CDFPRT / get printer status word. undefined ^ 030440* 0000 12548 TAD I (PRSTTS) / ... undefined ^ undefined ^ 030441* 1777 12549 030442* 7650 SNA CLA / Skip if FR<> 1 (stop/ error status). 12550 030443* 5257 JMP PUTST4 / JMP to ignore the HALT. continue WAIT 12551 030444* 1312 TAD MRGHFG / have we halted thee spooler yet? 12552 030445* 7450 SNA / skip if no. Do it this time. 12553 030446* 5255 JMP PUTXIT / Ignore character. 12554 DCA I (PABORT) / set printer abort flag. unhang spooler undefined ^ undefined ^ 030447* 3777 12555 AC0001 undefined ^ 030450* 0000 12556 DCA I (PRSTOP) / set printer stop flag. undefined ^ undefined ^ 030451* 3777 12557 AC0002 undefined ^ 030452* 0000 12558 DCA I (PRACTN) / set stop action to cancel. undefined ^ undefined ^ 030453* 3777 12559 / set flag saying that we already 12560 030454* 3312 DCA MRGHFG / halted the spooler. 12561 PUTXIT, CDFBUF / return to calling routine. undefined ^ 030455* 0000 12562 030456* 5776 JMP ESPUTY / ... 12563 12564 030457* 0000 PUTST4, CDFMYF 12565 CIFSYS undefined ^ 030460* 0000 12566 JWAIT undefined ^ 030461* 0000 12567 030462* 4313 PUTST1, JMS KBDCHK / CHECK FOR PRINTER COMAND 12568 CDFSYS undefined ^ 030463* 0000 12569 DCA I (INTFLG) / WAKE PEOPLE UP undefined ^ undefined ^ 030464* 3777 12570 CDFBUF undefined ^ 030465* 0000 12571 030466* 1711 TAD I PRPUTP / CHECK FOR WRAP/ FULL 12572 030467* 7500 SMA 12573 030470* 5276 JMP .+6 / JUMP IF NOT WRAP 12574 030471* 7001 IAC 12575 030472* 7450 SNA 12576 030473* 5234 JMP PUTST2 / JUMP IF ALL DONE 12577 030474* 3311 DCA PRPUTP 12578 030475* 5266 JMP .-7 / ELSE RESET AND RETRY 12579 030476* 7640 SZA CLA 12580 030477* 5234 JMP PUTST2 / JUMP IF FULL 12581 TAD T1 undefined ^ undefined ^ 030500* 1000 12582 030501* 3711 DCA I PRPUTP / STORE GOOD CHAR IN BUFFER 12583 TAD T1 undefined ^ undefined ^ 030502* 1000 12584 030503* 7710 SPA CLA 12585 030504* 5307 JMP PUTST3 / JUMP IF ALL DONE 12586 030505* 2311 ISZ PRPUTP / BUMP BUFFER PTR 12587 030506* 5776 JMP ESPUTY / RETURN 12588 12589 PUTST3, DCA T1 / SAVE CHAR undefined ^ undefined ^ 030507* 3000 12590 030510* 5262 JMP PUTST1 / JOIN OUTPUT LOOP 12591 12592 030511* 6000 PRPUTP, PRTBUF / OUTPUT PTR TO PRINT BUFFER 12593 030512* 0000 MRGHFG, 0 / 0 until printer is told to cancel. 12594 12595 KBDCHK, XX / CHECK KEYBOARD FOR PRINTER COMMAND undefined ^ 030513* 0000 12596 030514* 0000 KBDCH1, CDFMYF 12597 CIFSYS undefined ^ 030515* 0000 12598 TTYIN / Get char from KB: (not UDK). undefined ^ 030516* 0000 12599 030517* 5713 JMP I KBDCHK / RETURN IF NONE 12600 030520* 7510 SPA 12601 030521* 5343 JMP KBDCH4 / COMPLAIN IF SPECIAL 12602 AND P177 undefined ^ undefined ^ 030522* 0000 12603 030523* 4516 XLTUPR 12604 030524* 1375 TAD (-"R+200) 12605 030525* 7450 SNA 12606 030526* 5347 JMP KBDCH5 / RESUME? 12607 030527* 1374 TAD ("R-"N) 12608 030530* 7450 SNA 12609 030531* 5351 JMP KBDCH6 / NEW PAGE? 12610 030532* 1373 TAD ("N&177) / restore origional character. 12611 030533* 1755 TAD I HLTLST / see if part of GOLD:HALT string. 12612 030534* 2355 ISZ HLTLST / bump string pointer. 12613 030535* 7640 SZA CLA 12614 030536* 5343 JMP KBDCH4 / JMP if not part of GOLD:HALT. 12615 030537* 1756 TAD I HLTSTR / are we at the end of GOLD:HALT? 12616 030540* 7640 SZA CLA 12617 030541* 5314 JMP KBDCH1 / Jmp if NO. Get next input character. 12618 030542* 5344 JMP KBDCH7 / Hit the end. reset pointer but no beep 12619 12620 030543* 4772 KBDCH4, JMS BEEPER 12621 030544* 1371 KBDCH7, TAD (HLTSTR) / reset GOLD:HALT string pointer. 12622 030545* 3355 DCA HLTLST / ... 12623 030546* 5314 JMP KBDCH1 / COMPLAIN AND IGNORE IF ILLEGAL 12624 12625 KBDCH5, AC0006 undefined ^ 030547* 0000 12626 030550* 7410 SKP / RESUME, 12627 KBDCH6, AC0001 / OR NEW PAGE undefined ^ 030551* 0000 12628 CDFPRT undefined ^ 030552* 0000 12629 DCA I (PRACTN) undefined ^ undefined ^ 030553* 3777 12630 030554* 5314 JMP KBDCH1 / AND CONTINUE 12631 12632 030555* 0556 HLTLST, HLTSTR / pointer into GOLD:HALT string. 12633 030556* 7745 HLTSTR, -33;-117;-120;-140;0 / GOLD:HALT sequencee. 030557* 7661 030560* 7660 030561* 7640 030562* 0000 12634 12635 X=. / INDICATE FIRST FREE LOCATION ON PAGE 12636 /--------------------- 12637 030571* 0556 PAGE 030572* 0324 030573* 0116 030574* 0004 030575* 7656 030576* 4033 030577* 0000 12638 12639 /*************************************************************************** 12640 /**** START OF OVERLAY **** 12641 /*************************************************************************** 12642 12643 OVRNUM=OVRNUM+200 12644 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 12645 12646 RELOC 12647 12648 RELOC OVLAY1 12649 037400* 1000 OVRNUM / UTILITY OVERLAY 12650 12651 OVDLTE= .-OVLAY1+OVRNUM 12652 037401* 5777 JMP XVDLTE 12653 12654 / 12655 / OVSWAP= .-OVLAY1+OVRNUM / SWAP ENTRY 12656 / 12657 / OVSWAP which used to be here has been moved to OVHELP to allow /M225 12658 / it more room to handle MCS and give Hyphenation space to also /M225 12659 / handle MCS. /M225 12660 / 12661 12662 / 12663 / OVTIME overlay has now also been moved to OVHELP to allow /M231 12664 / Hyphenation more space for 8 bit support /M231 12665 / 12666 12667 12668 12669 12670 OVHYPS= .-OVLAY1+OVRNUM / HYPHEN PUSH 12671 12672 037402* 3141 XVHYPS, DCA SCRLFL / CLEAR SCROLL FLAG 12673 XVHYPB, AC7777 undefined ^ 037403* 0000 12674 037404* 4513 CURMOV 12675 037405* 5776 JMP EIBAD / BACK UP TO PREVIOUS LINE 12676 037406* 1141 TAD SCRLFL 12677 037407* 7640 SZA CLA / Skip if no. 12678 037410* 5221 JMP XVHYPC / Jmp if yes. see where we are. 12679 AC2000 / see if there is an invisible-hyphen. undefined ^ 037411* 0000 12680 037412* 0535 AND I CURPTR / ... 12681 037413* 7650 SNA CLA / skip if yes. 12682 037414* 5303 JMP XVHYPV / no. go to next prev posn. /M231 12683 037415* 1136 XVHYB1, TAD CURSOR / save earliest hyphen posn. /A231 12684 037416* 7001 IAC / make bais by 1 (not 0). 12685 037417* 3342 DCA HYPSAV / ... 12686 037420* 5203 JMP XVHYPB / go to next prev posn. 12687 037421* 1535 XVHYPC, TAD I CURPTR / Get current character. 12688 037422* 4775 JMS CHKALP 12689 037423* 5271 JMP EIHYPT / SKIP IF NOT ALPHA /M231 12690 037424* 0374 AND (5777) 12691 037425* 3535 DCA I CURPTR / CLEAR BREAK FLAG 12692 037426* 7200 EIHYPY, CLA 12693 037427* 4514 SLNMOD 12694 037430* 3141 DCA SCRLFL / CLEAR SCROLL FLAG AGAIN 12695 EIHYPW, AC0001 undefined ^ 037431* 0000 12696 037432* 4513 CURMOV 12697 037433* 5270 JMP EIHYPX / SET FLAG ON NEXT 12698 037434* 1141 TAD SCRLFL 12699 037435* 7640 SZA CLA 12700 037436* 5270 JMP EIHYPX / UNLESS LINE TOO LONG 12701 037437* 1136 TAD CURSOR / OR AT RIGHT MARGIN ALREADY 12702 037440* 7041 CIA 12703 037441* 1160 TAD RGTMAR 12704 037442* 7750 SPA SNA CLA 12705 037443* 5262 JMP EIHYPZ 12706 037444* 1342 TAD HYPSAV / Did we see an invisible hyphen? 12707 037445* 7450 SNA / Skip if YES. See if it's within ruler. 12708 037446* 5254 JMP XVHYPD / No. Force normal hyphenization. 12709 037447* 1136 TAD CURSOR / Compute cursor address of seen hyphen. 12710 037450* 7041 CIA 12711 037451* 1160 TAD RGTMAR 12712 037452* 7700 SMA CLA 12713 037453* 5262 JMP EIHYPZ / JMP if within ruler setting. 12714 037454* 1535 XVHYPD, TAD I CURPTR 12715 037455* 4775 JMS CHKALP 12716 037456* 5274 JMP XVHYPR / OR CHAR NOT ALPHA /M231 12717 AC2000 undefined ^ 037457* 0000 12718 037460* 7501 MQA 12719 037461* 3535 DCA I CURPTR 12720 EIHYPZ, AC0001 undefined ^ 037462* 0000 12721 037463* 4513 CURMOV 12722 037464* 5270 JMP EIHYPX / THEN ADVANCE LINE 12723 037465* 1141 TAD SCRLFL 12724 037466* 7650 SNA CLA 12725 037467* 5262 JMP EIHYPZ / TO SHOW NEW HYPHENATION 12726 037470* 5773 EIHYPX, JMP EIFIX / AND GO LISTEN /C168 12727 12728 037471* 4346 EIHYPT, JMS HYPLMX / Is it 8 bit /A231 12729 037472* 5226 JMP EIHYPY / No .. go away /A231 12730 037473* 5226 JMP EIHYPY / Yes .. but we are already finished /A231 12731 12732 037474* 4772 XVHYPR, JMS BHOOK / Check for 8 bit /A231 12733 MCSTHY / 8 bit char ? /A231 undefined ^ 037475* 0000 12734 037476* 5262 JMP EIHYPZ / No /A231 12735 037477* 1371 TAD (2000) / Put on breaking bit /A231 12736 037500* 3535 DCA I CURPTR / Put char away again /A231 12737 037501* 4356 JMS HYBKUP / Now backup /A231 12738 037502* 5262 JMP EIHYPZ 12739 037503* 4772 XVHYPV, JMS BHOOK / Check for 8 bit /A231 12740 MCSTHY / /A231 undefined ^ 037504* 0000 12741 037505* 5203 JMP XVHYPB / No /A231 12742 037506* 7200 CLA / /A231 12743 037507* 1535 TAD I CURPTR / Get full char back /A231 12744 037510* 3366 DCA XVTEMP / Save char /A231 12745 037511* 4356 JMS HYBKUP / move back /A231 12746 037512* 7200 CLA / Clear out Start dead /A231 12747 037513* 1366 TAD XVTEMP / get char back /A231 12748 037514* 0371 AND (2000) / is breaking bit set ? /A231 12749 037515* 7650 SNA CLA / /A231 12750 037516* 5203 JMP XVHYPB / No get out /A231 12751 037517* 5215 JMP XVHYB1 / Yes , set HYPSAV /A231 12752 12753 OVHYPL= .-OVLAY1+OVRNUM / HYPHEN PULL 12754 12755 037520* 3141 XVHYPL, DCA SCRLFL / CLEAR SCROLL FLAG 12756 037521* 3342 DCA HYPSAV / init previous HYPHEN posn. 12757 AC7777 undefined ^ 037522* 0000 12758 037523* 4513 CURMOV 12759 037524* 5776 JMP EIBAD / BACK UP TO PREVIOUS LINE 12760 037525* 1141 TAD SCRLFL 12761 037526* 7650 SNA CLA 12762 037527* 5322 JMP .-5 12763 037530* 1535 TAD I CURPTR 12764 037531* 4775 JMS CHKALP 12765 037532* 5343 JMP HYPLMC / Test for Pull on MCS /M231 12766 037533* 0374 AND (5777) 12767 037534* 3535 DCA I CURPTR / CLEAR BREAK FLAG 12768 037535* 4514 HYPLFN, SLNMOD 12769 AC7776 undefined ^ 037536* 0000 12770 037537* 4513 CURMOV 12771 037540* 5776 JMP EIBAD / TWO MORE, SO WE CAN ADVANCE 12772 037541* 5226 JMP EIHYPY / IN COMMON CODE 12773 12774 037542* 0000 HYPSAV, 0 / posn (0 bais) of next invisible hyphen. 12775 12776 037543* 4346 HYPLMC, JMS HYPLMX / Is it 8 bit /A231 12777 037544* 5262 JMP EIHYPZ / No .. go away /A231 12778 037545* 5335 JMP HYPLFN / Yes .. we are already finished /A231 12779 12780 12781 HYPLMX, XX undefined ^ 037546* 0000 12782 037547* 4772 JMS BHOOK / Is this an MCS char /A231 12783 MCSTHY / 8 bit char in Hyphenation /A231 undefined ^ 037550* 0000 12784 037551* 5746 JMP I HYPLMX / No , ignore /A231 12785 037552* 3535 DCA I CURPTR / Put char back /A231 12786 037553* 2346 ISZ HYPLMX / Bump return for 8 bit /A231 12787 037554* 4356 JMS HYBKUP / Now backup to start of dead /A231 12788 037555* 5746 JMP I HYPLMX / And rejoin Mainline /A231 12789 12790 HYBKUP, XX / Backup cursor /A231 undefined ^ 037556* 0000 12791 037557* 4507 BKPPTR / Backup /A231 12792 037560* 7000 NOP / Shouldn't happen .. /A231 12793 037561* 4507 BKPPTR / And again /A231 12794 037562* 7000 NOP / Shouldn't happen .. /A231 12795 037563* 4507 BKPPTR / Last one /A231 12796 037564* 7000 NOP / /A231 12797 037565* 5756 JMP I HYBKUP / Get out /A231 12798 12799 037566* 0000 XVTEMP, 0 / Temp for char /A231 12800 X=. / INDICATE FIRST FREE LOCATION ON PAGE 12801 /--------------------- 12802 037571* 2000 PAGE 037572* 5324 037573* 0401 037574* 5777 037575* 3553 037576* 0400 037577* 7600 12803 12804 12805 037600* 1377 XVDLTE, TAD (BASKET-1) 12806 DCA X5 / SET UP PTRS undefined ^ undefined ^ 037601* 3000 12807 037602* 3132 DCA BASKCT / AND COUNT FOR WASTEBASKET FILLING 12808 037603* 3130 DCA PSTBLK / SHOW NO INCORE PASTE 12809 037604* 1135 TAD CURPTR 12810 037605* 3337 DCA DELUN1 / SAVE CURPTR 12811 037606* 4776 JMS SETUNT / SET PROPER UNIT TYPE 12812 037607* 4775 JMS RLEQTE / MAKE NWRUL=CURUL 12813 037610* 4774 JMS LODCHR 12814 037611* 5301 JMP DELUNZ / QUIT IF EOF 12815 037612* 4773 JMS CHKUNT / CHECK FOR END OF UNIT 12816 DELNXT, XX undefined ^ 037613* 0000 12817 037614* 7710 SPA CLA 12818 037615* 5266 JMP DELUNX / QUIT IF ALL DONE 12819 037616* 1535 TAD I CURPTR / Get character to delete. 12820 AND P177 / isolate character bits. undefined ^ undefined ^ 037617* 0000 12821 037620* 1372 TAD (-LF) / compare against line terminator. 12822 037621* 7650 SNA CLA / skip if not terminator. 12823 037622* 4771 JMS RSTRLN / set to repaint entire line. 12824 037623* 1535 TAD I CURPTR 12825 TAD (-ECSLPT) / CLEAR SELECT IF WE CROSS undefined ^ undefined ^ 037624* 1370 12826 037625* 7450 SNA 12827 037626* 5326 JMP DELUNS 12828 TAD (ECSLPT-ECRMFL) undefined ^ undefined ^ undefined ^ undefined ^ 037627* 1370 12829 037630* 7450 SNA 12830 037631* 5323 JMP DELUNM 12831 TAD (ECRMFL-ECSTRL) undefined ^ undefined ^ undefined ^ undefined ^ 037632* 1370 12832 037633* 7450 SNA 12833 037634* 5330 JMP DELUNR 12834 DELUNE, TAD (ECSTRL-ECSTOV) undefined ^ undefined ^ undefined ^ undefined ^ 037635* 1370 12835 037636* 7650 SNA CLA 12836 037637* 5313 JMP DELUNO 12837 037640* 1535 TAD I CURPTR 12838 037641* 4767 JMS ESJCHK 12839 037642* 7650 SNA CLA 12840 037643* 5245 JMP DELUNA 12841 037644* 4302 DELUNP, JMS DELPUT / OTPUT TO WASTEBASKET 12842 037645* 3535 DELUNA, DCA I CURPTR / DELETE CHAR 12843 AC0001 undefined ^ 037646* 0000 12844 037647* 4510 CHKPTR 12845 037650* 7450 SNA 12846 037651* 5246 JMP .-3 / GET NEXT CHAR 12847 037652* 7700 SMA CLA 12848 037653* 5263 JMP DELUNB / JUMP IF OK 12849 037654* 1535 TAD I CURPTR 12850 037655* 3737 DCA I DELUN1 / COPY ETX CODE 12851 037656* 1337 TAD DELUN1 12852 037657* 3135 DCA CURPTR / RESET CURPTR 12853 037660* 4506 DELUNC, ADVPTR 12854 037661* 5266 JMP DELUNX / JUMP IF EOF 12855 037662* 5613 JMP I DELNXT / ELSE TEST AGAIN 12856 037663* 1535 DELUNB, TAD I CURPTR 12857 037664* 5613 JMP I DELNXT 12858 037665* 3535 DELUND, DCA I CURPTR / DELETE LAST CHAR 12859 037666* 1337 DELUNX, TAD DELUN1 12860 037667* 3135 DCA CURPTR / RESET CURPTR 12861 037670* 4514 SLNMOD 12862 037671* 1151 TAD LINMOD 12863 037672* 4766 JMS INSERT / SET MOD FLAG 12864 037673* 4765 DELUNW, JMS CMPRUL 12865 037674* 5276 JMP DELUNY / CHECK FOR RULER CHANGE 12866 037675* 4764 JMS INSRUL 12867 037676* 1337 DELUNY, TAD DELUN1 12868 037677* 3135 DCA CURPTR / RESET CURPTR (AGAIN) 12869 037700* 4514 SLNMOD / SHOW MODS HAPPENED 12870 037701* 5763 DELUNZ, JMP EIFIX / AND RETURN 12871 12872 DELPUT, XX undefined ^ 037702* 0000 12873 037703* 1132 TAD BASKCT / PUT TO WASTEBASKET, IF NOT FULL 12874 037704* 1362 TAD (-BASKSZ) 12875 037705* 7650 SNA CLA 12876 037706* 5702 JMP I DELPUT 12877 037707* 1535 TAD I CURPTR 12878 DCA I X5 undefined ^ undefined ^ 037710* 3400 12879 037711* 2132 ISZ BASKCT 12880 037712* 5702 JMP I DELPUT 12881 12882 037713* 4302 DELUNO, JMS DELPUT / OUTPUT TO WASTEBASKET 12883 037714* 3535 DCA I CURPTR / DELETE 12884 037715* 4506 ADVPTR 12885 037716* 5266 JMP DELUNX 12886 TAD (-ECNDOV) / CHECK FOR END undefined ^ undefined ^ 037717* 1370 12887 037720* 7640 SZA CLA 12888 037721* 5313 JMP DELUNO / LOOP IF NOT 12889 037722* 5244 JMP DELUNP / ELSE OUTPUT AND RETURN 12890 12891 037723* 1535 DELUNM, TAD I CURPTR 12892 037724* 3124 DCA RLRMOD / SAVE MOD FLAG 12893 037725* 5245 JMP DELUNA 12894 12895 037726* 3133 DELUNS, DCA EDMODE / DELETE SELECT POINT 12896 037727* 5245 JMP DELUNA 12897 12898 037730* 1337 DELUNR, TAD DELUN1 12899 037731* 3135 DCA CURPTR / RESET CURPTR 12900 037732* 4761 JMS ESNWRL / GET NEW RULER 12901 037733* 1337 TAD DELUN1 12902 037734* 3135 DCA CURPTR 12903 037735* 4760 JMS DLTRLR / DELETE RULER 12904 037736* 5260 JMP DELUNC 12905 12906 037737* 0000 DELUN1, 0 12907 12908 X=. / INDICATE FIRST FREE LOCATION ON PAGE 12909 /--------------------- 12910 037760* 6061 PAGE 037761* 6124 037762* 7400 037763* 0401 037764* 5242 037765* 5400 037766* 2000 037767* 5735 037770* 0000 037771* 4457 037772* 7766 037773* 0667 037774* 4241 037775* 6151 037776* 0650 037777* 7377 12911 12912 /*************************************************************************** 12913 /**** START OF OVERLAY **** 12914 /*************************************************************************** 12915 12916 OVRNUM=OVRNUM+200 12917 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 12918 12919 RELOC 12920 12921 RELOC OVLAY1 12922 037400* 1200 OVRNUM / CURRENT OVERLAY CONTENTS 12923 12924 12925 CURSAV=RPGETUNT / LOCATION ONLY USED BY GO-TO-PAGE 12926 12927 12928 OVCLKY= .-OVLAY1+OVRNUM / COLUMN CUT /A169 12929 037401* 5777 JMP COLKEY /A169 12930 12931 12932 OVXRL1= .-OVLAY1+OVRNUM / CONTINUATION ENTRY POINT FOR GOLD: RULER 12933 037402* 3155 DCA RLDIRN / SET RULER MOVEMENT DIRECTION TO FORWARD /A217 12934 12935 037403* 4776 RULSVE, JMS PCUR / SET TO BOTTOM LINE 12936 12937 IFDEF PERDEC < 12938 TAD (4056) 12939 DCA OKSTR / USE BLANKS FOR NULLS 12940 > / END IFDEF PERDEC 12941 12942 IFDEF COLDEC < 12943 TAD (4072) 12944 DCA OKSTR / USE BLANKS FOR NULLS 12945 > / END IFDEF COLDEC 12946 12947 IFDEF COMDEC < 12948 TAD (4054) 12949 DCA OKSTR / USE BLANKS FOR NULLS 12950 > / END IFDEF COMDEC 12951 12952 / DISPLAY SCALE FOR RULER 12953 037404* 4775 JMS NWLN 12954 037405* 4775 JMS NWLN 12955 037406* 3252 DCA RLIT1 12956 037407* 2252 RULSV2, ISZ RLIT1 / Display 10 - 80 12957 037410* 1252 TAD RLIT1 12958 037411* 1374 TAD (-10) 12959 037412* 7740 SMA SZA CLA 12960 037413* 5216 JMP RULSV3 12961 037414* 4254 JMS TWODEC 12962 037415* 5207 JMP RULSV2 12963 12964 RULSV3, 12965 /D192 TAD SPLTFL / IN SPLIT SCREEN MODE? 12966 /D192 SZA CLA 12967 037416* 4241 JMS RLDBLD / YES, PAINT REST OF RULER 12968 / Output ...:...: text 12969 037417* 1374 TAD (-10) 12970 037420* 3252 DCA RLIT1 12971 037421* 4775 JMS NWLN 12972 037422* 4776 JMS PCUR 12973 037423* 4306 RULV3A, JMS PUTMSA 12974 037424* 6540 RLSTR2 12975 037425* 2252 ISZ RLIT1 12976 037426* 5223 JMP RULV3A 12977 037427* 4775 JMS NWLN 12978 037430* 1373 TAD (-4) 12979 037431* 3137 DCA SCRLCT / SET UP FOR SCROLL RECOVERY 12980 037432* 4523 OVLJMP / GO SET RLPOSN AND DISPLAY RULER 12981 037433* 1403 OVDRUL / JUMP TO NEXT OVERLAY 12982 12983 12984 OVRULX= .-OVLAY1+OVRNUM / HERE TO "GO DOUBLE" 12985 12986 AC7777 undefined ^ 037434* 0000 12987 037435* 3772 DCA SPLTFL 12988 / Swaped next 2 locations /M193 12989 037436* 4771 JMS FXMEUP / RE-PAINT THE SCREEN NOW 12990 037437* 4770 JMS SET132 / SET 132 COL IF WIDNAR FLAG IS WIDE /M192 12991 037440* 5203 JMP RULSVE 12992 12993 RLDBLD, XX undefined ^ 037441* 0000 12994 037442* 4254 JMS TWODEC 12995 037443* 1252 TAD RLIT1 12996 037444* 1367 TAD (-30) 12997 037445* 2252 ISZ RLIT1 12998 037446* 7640 SZA CLA 12999 037447* 5242 JMP RLDBLD+1 13000 037450* 1366 TAD (-21) / SO WE GET UP TO 242 ON WIDE RULERS /M186 13001 037451* 5641 JMP I RLDBLD 13002 13003 037452* 0000 RLIT1, .-. 13004 037453* 0000 RLIT2, .-. 13005 13006 037454* 0000 TWODEC, 0 / Two digit decimal print routine 13007 037455* 4306 JMS PUTMSA / Print 7 spaces 13008 037456* 6546 RLSTR4 13009 037457* 3305 DCA NUMDGT 13010 037460* 1252 TAD RLIT1 13011 037461* 1365 NUM01, TAD (7766) / -10 decimal 13012 037462* 7510 SPA 13013 037463* 5266 JMP NUM02 13014 037464* 2305 ISZ NUMDGT 13015 037465* 5261 JMP NUM01 13016 13017 037466* 1364 NUM02, TAD (12) / decimal 10 13018 037467* 3304 DCA NUMB 13019 037470* 1305 TAD NUMDGT / get hundreds digit and display 13020 037471* 7450 SNA 13021 037472* 1363 TAD (-20) / If zero convert to a space 13022 037473* 4300 JMS NUMOUT 13023 037474* 1304 TAD NUMB / get tens digit and display 13024 037475* 4300 JMS NUMOUT 13025 037476* 4300 JMS NUMOUT / units digit always 0 13026 037477* 5654 JMP I TWODEC 13027 13028 037500* 0000 NUMOUT, 0 13029 037501* 1362 TAD (60) 13030 037502* 4761 JMS PUTSCH 13031 037503* 5700 JMP I NUMOUT 13032 13033 037504* 0000 NUMB, 0 13034 037505* 0000 NUMDGT, 0 13035 13036 13037 PUTMSA, XX undefined ^ 037506* 0000 13038 037507* 3253 DCA RLIT2 13039 037510* 1706 TAD I PUTMSA 13040 037511* 3316 DCA PUTMA2 13041 037512* 2306 ISZ PUTMSA 13042 037513* 2253 PUTMA1, ISZ RLIT2 13043 037514* 1253 TAD RLIT2 13044 037515* 4760 JMS GETBYT 13045 037516* 0000 PUTMA2, 0 13046 037517* 7450 SNA 13047 037520* 5706 JMP I PUTMSA 13048 13049 037521* 7002 BSW / THIS LITTLE TRICK CONVERTS SIXBIT TO ASCII 13050 037522* 7500 SMA 13051 037523* 7001 IAC 13052 037524* 7002 BSW 13053 13054 037525* 4761 JMS PUTSCH 13055 037526* 5313 JMP PUTMA1 13056 13057 X=. / INDICATE FIRST FREE LOCATION ON PAGE 13058 /--------------------- 13059 037560* 6006 PAGE 037561* 3054 037562* 0060 037563* 7760 037564* 0012 037565* 7766 037566* 7757 037567* 7750 037570* 6744 037571* 7600 037572* 2345 037573* 7774 037574* 7770 037575* 4557 037576* 1400 037577* 7606 13060 13061 13062 FXMEUP, XX undefined ^ 037600* 0000 13063 13064 037601* 4777 JMS CLSSET / INITIALIZE SCROLL VALUES FOR STATUS 13065 13066 / USE HYPHENS FOR NULLS 13067 IFDEF PERDEC < 13068 TAD (5556) 13069 DCA OKSTR 13070 > / END IFDEF PERDEC 13071 13072 IFDEF COLDEC < 13073 TAD (5572) 13074 DCA OKSTR 13075 > / END IFDEF COLDEC 13076 13077 IFDEF COMDEC < 13078 TAD (5554) 13079 DCA OKSTR 13080 > / END IFDEF COMDEC 13081 13082 037602* 2776 ISZ NORUPD / KEEP RULER FROM REVERTING 13083 037603* 4775 JMS FXSCRL / AND RE-PAINT THE SCREEN 13084 037604* 3776 DCA NORUPD / /A197 13085 037605* 5600 JMP I FXMEUP 13086 13087 /************* FROM HERE THRU NEXT LINE OF ASTERISKS IS ALL********* /A169 13088 13089 COLKEY, 13090 /D201 GETINP / GET A KEYSTROKE AND DECODE 13091 13092 COLCH1, CIFSYS /A201 undefined ^ 037606* 0000 13093 JWAIT /A201 undefined ^ 037607* 0000 13094 13095 037610* 4501 HLTTST /HAS GOLD HALT BEEN SET /A201 13096 037611* 5774 JMP EINEXT /YES /A201 13097 CIFPRT /A201 undefined ^ 037612* 0000 13098 JMS I (FLABUZ) / SOUND BUZZER AND TOGGLE LED'S /A201 undefined ^ undefined ^ 037613* 4773 13099 / IF THEIR IS A PRINTER ERROR 13100 CIFSYS /A201 undefined ^ 037614* 0000 13101 XLTIN /A201 undefined ^ 037615* 0000 13102 037616* 5206 JMP COLCH1 /A201 13103 13104 / MUST BE PASTE, CUT, GOLD:CUT, DELCHR, RUBCHR 13105 037617* 4500 ZZCASE / TEST KEYSTROKE AGAINST TABLE 13106 037620* 7622 COLTAB-1 / TABLE FOR CASE 13107 037621* 4772 JMS BEEPER / NO MATCH, FOR NOW BEEP TWICE 13108 037622* 5771 JMP EIBAD / BAD EXIT 13109 13110 COLTAB, EDPSTE / PASTE undefined ^ 037623* 0000 13111 037624* 7636 OVCLPX / ADDRESS FOR PASTE 13112 13113 EDSCUT / CUT undefined ^ 037625* 0000 13114 037626* 7640 OVCLCX 13115 13116 EDGCUT / GOLD:CUT undefined ^ 037627* 0000 13117 037630* 7642 OVCGCX 13118 13119 EDDLTC / DELCHR undefined ^ 037631* 0000 13120 037632* 7644 OVCLRX 13121 13122 EDRBCH / RUBCHR undefined ^ 037633* 0000 13123 037634* 7646 OVCLLX 13124 13125 / EDLINE / LINE SOLIDIFY TEXT 13126 / OVCLSD 13127 13128 / EDPARA / PARA SOFTEN TEXT 13129 / OVCLSF 13130 037635* 0000 0 / END OF CASE CHECK INDICATOR 13131 13132 / COLUMN OPERATIONS /A169 13133 037636* 4523 OVCLPX, OVLJMP;OVCLPS / COLUMN PASTE /A169 undefined ^ 037637* 0000 13134 037640* 4523 OVCLCX, OVLJMP;OVCLCT / COLUMN CUT /A169 undefined ^ 037641* 0000 13135 037642* 4523 OVCGCX, OVLJMP;OVCGCT / COLUMN GOLD:CUT /A169 undefined ^ 037643* 0000 13136 037644* 4770 OVCLRX, JMS OV2JMP / COLUMN DELCHR /A169 13137 OVCLRS /A169 undefined ^ 037645* 0000 13138 037646* 4770 OVCLLX, JMS OV2JMP / COLUMN RUBCHR /A169 13139 OVCLLS /A169 undefined ^ 037647* 0000 13140 037650* 4770 OVCLSD, JMS OV2JMP / LINE SOLIDIFY TEXT /A169 13141 OVSLID /A169 undefined ^ 037651* 0000 13142 037652* 4770 OVCLSF, JMS OV2JMP / PARA SOFTEN TEXT /A169 13143 OVSOFT /A169 undefined ^ 037653* 0000 13144 13145 /***************** END ADDITIONS FOR COLUMN ********************** A169 13146 13147 X=. / INDICATE FIRST FREE LOCATION ON PAGE 13148 /--------------------- 13149 037770* 5124 PAGE 037771* 0400 037772* 0324 037773* 0000 037774* 0406 037775* 3400 037776* 5550 037777* 2141 13150 13151 13152 /*************************************************************************** 13153 /**** START OF OVERLAY **** 13154 /*************************************************************************** 13155 13156 OVRNUM=OVRNUM+200 13157 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 13158 13159 RELOC 13160 13161 RELOC OVLAY1 13162 037400* 1400 OVRNUM 13163 13164 OVRBAD= .-OVLAY1+OVRNUM 13165 13166 037401* 5777 JMP XVRBAD 13167 13168 OVERUL= .-OVLAY1+OVRNUM 13169 13170 037402* 4776 RLERUL, JMS RLEQTE / SET NEW=OLD (CANCEL MODS) 13171 13172 OVDRUL= .-OVLAY1+OVRNUM 13173 13174 AC0001 undefined ^ 037403* 0000 13175 037404* 1136 TAD CURSOR 13176 037405* 3125 DCA RLPOSN / POSN=CURSOR 13177 13178 OVPRUL= .-OVLAY1+OVRNUM 13179 13180 037406* 4775 RLPRUL, JMS DSPRUL / DISPLAY RULER 13181 037407* 3000 NWRUL / display new ruler. /A160 13182 037410* 4774 RLGETI, JMS TSTLIM / TEST FOR SCREEN ZONE CHANGE 13183 037411* 1140 TAD SCRNFL 13184 037412* 1373 TAD (-2000) / DID ZONE CHANGE? 13185 037413* 7640 SZA CLA 13186 037414* 5220 JMP RLGET0 / NO 13187 13188 /D192 JMS CLSCRN / CLEAR SCREEN ON ZONE CHANGE 13189 13190 037415* 3140 DCA SCRNFL / YES, CLEAR SCRNFL 13191 037416* 4523 OVLJMP / THEN REDISPLAY SCREEN 13192 037417* 1234 OVRULX /M192 13193 13194 RLGET0, AC7777 undefined ^ 037420* 0000 13195 037421* 1125 TAD RLPOSN 13196 037422* 1047 TAD LOWLIM / NORMALIZE TO LEFT OF SCREEN 13197 037423* 4772 JMS PCUR / REPOSITION CURSOR 13198 13199 CIFMNU / CHANGE TO MENU FIELD /A217 undefined ^ 037424* 0000 13200 037425* 4771 JMS I (CALLN5) / CHECK FOR STATUS LINE CHANGES /A217 13201 037426* 4502 GETINP / GET NEXT INPUT CHARACTER 13202 037427* 7510 SPA / SKIP IF: NOT A SPECIAL CHARACTER 13203 037430* 5770 JMP RLSPCI / JUMP IF SPECIAL 13204 13205 037431* 3323 DCA RLCHAR / Save the character while /a232 13206 037432* 1323 TAD RLCHAR / a check is made for an eight bit /a232 13207 037433* 0367 AND (200) / character. /a232 13208 037434* 7640 SZA CLA / Is the character eight bit? /a232 13209 037435* 1366 TAD (EIGHTC / Yes, determine from eight bit table /a232 13210 037436* 7450 SNA / and skip the next instruction. If not /a232 13211 TAD (OKSTR / then use ordinary table /a232 undefined ^ undefined ^ 037437* 1365 13212 037440* 3250 DCA SRHTBL / Save the table address to be used /a232 13213 13214 IFDEF ENGLSH < 13215 TAD RLCHAR / RESTORE FOR COMPARE 13216 TAD (-140) / IS THE CHAR A "@"? 13217 SZA / SKIP IF: CHAR IS "@" 13218 TAD (-36) / IS THE CHAR A "~"? 13219 SNA CLA / SKIP WITH VALID CHAR 13220 JMP RLBADI / CHAR WAS A "@" OR A "~" 13221 TAD RLCHAR / RESTORE CHAR FOR FURTHER COMPARE 13222 TAD (-140) / CONVERT CHARACTER TO 6-BIT CODE 13223 SPA 13224 TAD (40) 13225 SNA / SKIP IF: CHARACTER WAS NOT AN '@' 13226 TAD (""&77) / SUBSTITUTE A '"' IN PLACE OF '@' 13227 > / END IFDEF ENGLSH 13228 13229 / THE SPANISH TRAP CHARACTERS ARE A COPY OF THE ENGLSH. 13230 IFDEF SPANISH < /A236 13231 TAD RLCHAR / RESTORE FOR COMPARE 13232 TAD (-140) / IS THE CHAR A "@"? 13233 SZA / SKIP IF: CHAR IS "@" 13234 TAD (-36) / IS THE CHAR A "~"? 13235 SNA CLA / SKIP WITH VALID CHAR 13236 JMP RLBADI / CHAR WAS A "@" OR A "~" 13237 TAD RLCHAR / RESTORE CHAR FOR FURTHER COMPARE 13238 TAD (-140) / CONVERT CHARACTER TO 6-BIT CODE 13239 SPA 13240 TAD (40) 13241 SNA / SKIP IF: CHARACTER WAS NOT AN '@' 13242 TAD (""&77) / SUBSTITUTE A '"' IN PLACE OF '@' 13243 > / END IFDEF SPANISH /A236 13244 13245 / THE NORWAY TRAP CHARACTERS ARE A COPY OF THE ENGLSH. 13246 IFDEF V30NOR < /A238 13247 TAD RLCHAR / RESTORE FOR COMPARE 13248 TAD (-140) / IS THE CHAR A "@"? 13249 SZA / SKIP IF: CHAR IS "@" 13250 TAD (-36) / IS THE CHAR A "~"? 13251 SNA CLA / SKIP WITH VALID CHAR 13252 JMP RLBADI / CHAR WAS A "@" OR A "~" 13253 TAD RLCHAR / RESTORE CHAR FOR FURTHER COMPARE 13254 TAD (-140) / CONVERT CHARACTER TO 6-BIT CODE 13255 SPA 13256 TAD (40) 13257 SNA / SKIP IF: CHARACTER WAS NOT AN '@' 13258 TAD (""&77) / SUBSTITUTE A '"' IN PLACE OF '@' 13259 > / END IFDEF V30NOR /A238 13260 13261 / THE SWEDISH TRAP CHARACTERS ARE A COPY OF THE ENGLSH. 13262 IFDEF V30SWE < /A239 13263 TAD RLCHAR / RESTORE FOR COMPARE 13264 TAD (-140) / IS THE CHAR A "@"? 13265 SZA / SKIP IF: CHAR IS "@" 13266 TAD (-36) / IS THE CHAR A "~"? 13267 SNA CLA / SKIP WITH VALID CHAR 13268 JMP RLBADI / CHAR WAS A "@" OR A "~" 13269 TAD RLCHAR / RESTORE CHAR FOR FURTHER COMPARE 13270 TAD (-140) / CONVERT CHARACTER TO 6-BIT CODE 13271 SPA 13272 TAD (40) 13273 SNA / SKIP IF: CHARACTER WAS NOT AN '@' 13274 TAD (""&77) / SUBSTITUTE A '"' IN PLACE OF '@' 13275 > / END IFDEF V30SWE /A239 13276 13277 IFDEF ITALIAN < 13278 TAD RLCHAR 13279 TAD (-134) / Have we a \? 13280 SNA / Well? 13281 JMP RLBADI / Yes, well we don't want it here! 13282 TAD (134-140) / Convert to six bit 13283 SPA 13284 TAD (40) 13285 SNA / Have we an @ or an a-grave? 13286 TAD (34) / Yes, make it into a \ as six bit 13287 / can't represent @ 13288 > 13289 13290 IFDEF DUTCH < 13291 TAD RLCHAR / RESTORE FOR COMPARE 13292 TAD (-140) / IS THE CHAR A "@"? 13293 SZA / SKIP IF: CHAR IS "@" 13294 TAD (-36) / IS THE CHAR A "~"? 13295 SNA CLA / SKIP WITH VALID CHAR 13296 JMP RLBADI / CHAR WAS A "@" OR A "~" 13297 TAD RLCHAR / RESTORE CHAR FOR FURTHER COMPARE 13298 TAD (-140) / CONVERT CHARACTER TO 6-BIT CODE 13299 SPA 13300 TAD (40) 13301 SNA / SKIP IF: CHARACTER WAS NOT AN '@' 13302 TAD (""&77) / SUBSTITUTE A '"' IN PLACE OF '@' 13303 > / END IFDEF DUTCH 13304 13305 IFDEF FRENCH < 13306 TAD (-175) 13307 SNA 13308 TAD (77-175) 13309 TAD (175-140) 13310 SPA 13311 TAD (40) 13312 SNA 13313 TAD ("#&77) 13314 > / END IFDEF FRENCH 13315 13316 IFDEF GERMAN < 13317 TAD (-140) 13318 SPA 13319 TAD (40) 13320 SNA 13321 TAD ("#&77) 13322 > / END IFDEF GERMAN 13323 13324 IFDEF CANADA < 13325 TAD (-140) 13326 SPA 13327 TAD (40) 13328 SNA 13329 TAD (""&77) 13330 > / END IFDEF CANADA 13331 13332 IFDEF SCANDI < 13333 TAD (-140) 13334 SPA 13335 TAD (40) 13336 > / END IFDEF SCANDI 13337 13338 AND P77 / MASK UPPER BYTE undefined ^ undefined ^ 037441* 0000 13339 037442* 7041 CIA / GET -CHARACTER VALUE 13340 DCA T2 / SAVE VALUE undefined ^ undefined ^ 037443* 3000 13341 DCA T3 / ZERO INDEX COUNT undefined ^ undefined ^ 037444* 3000 13342 13343 / SEE IF INPUT CHARACTER IS LEGAL BY CHECKING FOR A MATCH FOR IT IN 13344 / OKSTR TABLE. 13345 INDEXA, ISZ T3 / BUMP INDEX COUNT undefined ^ undefined ^ 037445* 2000 13346 TAD T3 / GET INDEX COUNT undefined ^ undefined ^ 037446* 1000 13347 037447* 4764 JMS GETBYT / GET CORRESPONDING CHARACTER IN 13348 / OKSTR TABLE 13349 SRHTBL, OKSTR /m232 undefined ^ 037450* 0000 13350 037451* 7450 SNA / SKIP IF: NOT AT END OF TABLE 13351 037452* 5777 JMP RLBADI / ERROR IF NOT FOUND 13352 TAD T2 / ADD -CHAR. VALUE TO VALUE RETURNED undefined ^ undefined ^ 037453* 1000 13353 / FROM OKSTR TABLE. 13354 037454* 7640 SZA CLA / SKIP IF: CHARACTER MATCHED 13355 037455* 5245 JMP INDEXA / LOOP IF NOT EQUAL 13356 TAD T3 / RETURN INDEX undefined ^ undefined ^ 037456* 1000 13357 13358 037457* 1363 TAD (-17) / ADD (NUMBER OF RULER SETTING CHARACTERS IN 13359 / OKSTR TABLE - 1) 13360 037460* 7500 SMA / SKIP IF: INPUT CHARCTER WAS A RULER SETTING 13361 / CHARACTER ( 'L', 'R', 'D', '.' ...ETC.) 13362 037461* 5265 JMP GETSRL / INPUT CHARACTER WAS EITHER A STORE_RULER 13363 / ('!', '@', '#' ...ETC.) OR ACCESS_STORED_ 13364 / RULER CHARACTER ('1', '2', '3' ...ETC.). 13365 / JUMP TO HANDLER. 13366 037462* 1362 TAD (17) / RESTORE INDEX NUMBER IN AC 13367 037463* 4761 JMS UPDRUL / UPDATE RULER 13368 037464* 5206 JMP RLPRUL / AND DISPLAY 13369 13370 037465* 7450 GETSRL, SNA / SKIP IF: TABLE MATCH DID NOT OCCUR ON 17TH 13371 / BYTE OF OKSTR TABLE (CHARACTER IN 17TH 13372 / BYTE IS AN '=') 13373 037466* 5202 JMP RLERUL / INPUT CHARACTER WAS AN '='. SO GOTO 13374 / ROUTINE THAT WILL RESET THE NEW RULER 13375 / EQUAL TO THE OLD. 13376 037467* 1360 TAD (-13) / IS CHARACTER AN ACCESS_STORED_RULER CHAR.? 13377 037470* 7510 SPA / SKIP IF: SO 13378 037471* 5275 JMP GETSRX / JUMP TO GET RULER SPECIFIED BY INPUT CHAR. 13379 DCA T3 / STORE THIS RULER AS PER STORE_RULER CHAR. undefined ^ undefined ^ 037472* 3000 13380 / SPECIFIED BY INPUT CHARACTER. 13381 037473* 4523 OVLJMP; OVGSRL / GO STORE THE RULER /M184 undefined ^ 037474* 0000 13382 13383 037475* 1357 GETSRX, TAD (12) 13384 037476* 4756 JMS RLGETS 13385 CDFMNU undefined ^ 037477* 0000 13386 037500* 1755 TAD NWRMAR 13387 037501* 1354 TAD (-COLM81) 13388 037502* 0000 CDFMYF 13389 037503* 7750 SPA SNA CLA 13390 037504* 5206 JMP RLPRUL 13391 037505* 1753 TAD SPLTFL 13392 037506* 7640 SZA CLA 13393 037507* 5206 JMP RLPRUL 13394 037510* 4523 OVLJMP 13395 037511* 1234 OVRULX 13396 13397 13398 / 13399 / ADVANCE TO NEXT RULER (AFTER ENTERING RULER BEING EDITED) 13400 / 13401 RLGOAD, AC0001 / INDICATE ADVANCE TO RULER undefined ^ 037512* 0000 13402 037513* 5317 JMP RLNWL 13403 13404 / 13405 / BACKUP TO PREVIOUS RULER (AFTER ENTERING RULER BEING EDITED) 13406 / 13407 RLGOBK, AC7777 / INDICATE BACKUP TO RULER undefined ^ 037514* 0000 13408 037515* 5317 JMP RLNWL 13409 13410 / 13411 / CANCEL ALL MODS TO RULER AND EXIT 13412 / 13413 037516* 4776 RLQUIT, JMS RLEQTE / SET NWRUL := CURUL 13414 / 13415 / ENTER RULER BEING EDITED, AND EXIT GOLD:RULER COMMAND 13416 / 13417 037517* 3752 RLNWL, DCA RRDIR / SET GOTO-RULER FLAG (0=NO GOTO-RULER) 13418 037520* 4523 OVLJMP 13419 OVXRUL undefined ^ 037521* 0000 13420 13421 / RLSPCI moved to next page to make room this edit /a232 13422 13423 037522* 7577 TLITAA, SPCLST-1 13424 13425 037523* 0000 RLCHAR, 0 / TEMP HOLD FOR CURRENT INPUT CHAR 13426 13427 X=. / INDICATE FIRST FREE LOCATION ON PAGE 13428 /--------------------- 13429 037552* 1764 PAGE 037553* 2345 037554* 7660 037555* 3171 037556* 5267 037557* 0012 037560* 7765 037561* 5634 037562* 0017 037563* 7761 037564* 6006 037565* 0000 037566* 7731 037567* 0200 037570* 7627 037571* 0020 037572* 1400 037573* 6000 037574* 1426 037575* 5515 037576* 6151 037577* 7717 13430 13431 13432 037600* 7516 SPCLST, RLQUIT / CANCEL MODS AND QUIT 13433 -EDRULR undefined ^ 037601* 0000 13434 037602* 7517 RLNWL / EXIT WITH MODS 13435 -EDNWLN undefined ^ 037603* 0000 13436 037604* 7643 RLBKP / BACK-UP CURSOR 13437 -EDBKUP undefined ^ 037605* 0000 13438 037606* 7644 RLADV / ADVANCE CURSOR 13439 -EDADVN undefined ^ 037607* 0000 13440 037610* 7721 RLMNU / CALL UP EDITOR MENU 13441 -EDMENU undefined ^ 037611* 0000 13442 037612* 7667 RLWRD / MOVE CURSOR TO NEXT RULER MARK 13443 -EDWORD undefined ^ 037613* 0000 13444 037614* 7677 RLINE / MOVE CURSOR TO COLUMN 80 13445 -EDLINE undefined ^ 037615* 0000 13446 037616* 7727 RLOJDL / DELETE RULER 13447 -EDDLTW / (DELETE WORD) undefined ^ 037617* 0000 13448 037620* 7402 RLERUL / UNDELETE RULER 13449 -EDUDLT / (GOLD DELETE WORD) undefined ^ 037621* 0000 13450 037622* 7512 RLGOAD / ADVANCE TO NEXT RULER 13451 -EDGADV / (GOLD:ADVANCE) undefined ^ 037623* 0000 13452 037624* 7514 RLGOBK / BACKUP TO PREVIOUS RULER 13453 -EDGBKP / (GOLD:BACKUP) undefined ^ 037625* 0000 13454 037626* 0000 0 / END OF SPCLST 13455 13456 13457 RLSPCI, DCA T1 / SAVE CODE undefined ^ undefined ^ 037627* 3000 13458 037630* 1777 TAD TLITAA 13459 DCA X0 undefined ^ undefined ^ 037631* 3000 13460 TAD I X0 undefined ^ undefined ^ 037632* 1400 13461 037633* 7450 SNA 13462 037634* 5317 JMP RLBADI / ERROR IF NOT FOUND 13463 DCA T2 undefined ^ undefined ^ 037635* 3000 13464 TAD I X0 undefined ^ undefined ^ 037636* 1400 13465 TAD T1 undefined ^ undefined ^ 037637* 1000 13466 037640* 7640 SZA CLA 13467 037641* 5232 JMP .-7 13468 JMP I T2 / JUMP TO ROUTINE undefined ^ undefined ^ 037642* 5400 13469 13470 RLBKP, AC7777 undefined ^ 037643* 0000 13471 037644* 3155 RLADV, DCA RLDIRN / SET DIRECTION FOR FUTURE MOVES 13472 037645* 4247 JMS RLMOV / DO MOVE OF ONE 13473 037646* 5313 JMP RLINE2 / AND LISTEN FOR MORE 13474 13475 RLMOV, XX undefined ^ 037647* 0000 13476 037650* 1155 TAD RLDIRN 13477 037651* 7700 SMA CLA 13478 037652* 5261 JMP RLADV1 / MOVE ONE IN RIGHT DIRECTION 13479 AC7777 / ELSE BACK UP undefined ^ 037653* 0000 13480 037654* 1125 TAD RLPOSN 13481 037655* 7450 SNA 13482 037656* 5317 JMP RLBADI 13483 037657* 3125 DCA RLPOSN 13484 037660* 5647 JMP I RLMOV 13485 13486 037661* 1376 RLADV1, TAD (-COLLIM+2) / ADVANCE CURSOR 13487 037662* 1125 TAD RLPOSN 13488 037663* 7700 SMA CLA 13489 037664* 5317 JMP RLBADI 13490 /D192 TAD RLPOSN 13491 /D192 TAD (-COLM81) 13492 037665* 2125 ISZ RLPOSN 13493 /D192 SPA CLA 13494 037666* 5647 JMP I RLMOV 13495 /D192 TAD SPLTFL / SPLIT SCREEN MODE? 13496 /D192 SZA CLA 13497 /D192 JMP I RLMOV / RETURN IF YES! 13498 13499 /D192 AC7777 13500 /D192 TAD RLPOSN / ELSE SET CURSOR TO 1 LESS THAN RULER 13501 /D192 DCA CURSOR 13502 /D192 OVLJMP 13503 /D192 OVRULX 13504 13505 /D217 RLDIRN, 0 / GOLD: RULER DIRECTION (0 FORWARD, -1 REVERSE) 13506 13507 037667* 4247 RLWRD, JMS RLMOV / GO ONE POSITION 13508 037670* 1125 TAD RLPOSN 13509 037671* 4775 JMS GETBYT 13510 037672* 3000 NWRUL / CHECK FOR SOMETHING 13511 037673* 1374 TAD (-1) 13512 037674* 7650 SNA CLA 13513 037675* 5267 JMP RLWRD / LOOP TIL WE GET IT 13514 037676* 5313 JMP RLINE2 / THEN GO LISTEN FOR MORE 13515 13516 037677* 1155 RLINE, TAD RLDIRN 13517 037700* 7700 SMA CLA 13518 037701* 5305 JMP RLINE1 13519 037702* 7001 IAC / GO TO END OF LINE 13520 037703* 3125 DCA RLPOSN 13521 037704* 5313 JMP RLINE2 / AND RETURN FOR MORE 13522 13523 037705* 1125 RLINE1, TAD RLPOSN 13524 037706* 1373 TAD (-COLM81) / SECOND LINE? 13525 037707* 7700 SMA CLA /M192 13526 037710* 1372 TAD (COLLIM-COLM81-2) / ADD OFFSET IF SO 13527 037711* 1371 TAD (COLM81) 13528 037712* 3125 DCA RLPOSN 13529 13530 RLINE2, AC7777 undefined ^ 037713* 0000 13531 037714* 1125 TAD RLPOSN / SET CURSOR TO 1 LESS THAN RULER POS'N 13532 037715* 3136 DCA CURSOR 13533 037716* 5770 JMP RLGETI 13534 13535 XVRBAD, 13536 037717* 4767 RLBADI, JMS BEEPER 13537 037720* 5313 JMP RLINE2 13538 13539 037721* 4766 RLMNU, JMS RLEQTE / CANCEL ANY MODS 13540 13541 IFDEF PERDEC < 13542 TAD (5556) 13543 DCA OKSTR / RESTORE RULER DISPLAY CODES 13544 > / END IFDEF PERDEC 13545 13546 IFDEF COLDEC < 13547 TAD (5572) 13548 DCA OKSTR / RESTORE RULER DISPLAY CODES 13549 > / END IFDEF COLDEC 13550 13551 IFDEF COMDEC < 13552 TAD (5554) 13553 DCA OKSTR / RESTORE RULER DISPLAY CODES 13554 > / END IFDEF COMDEC 13555 13556 037722* 3136 DCA CURSOR 13557 037723* 1171 TAD LINE23 13558 037724* 3135 DCA CURPTR 13559 13560 /D159; CIFMNU / CHANGE INSTRUCTION FIELD TO MENU FIELD 13561 /D159; PGSWAP / AC=0, SAVE SWAP AREA & RELOAD MENU CODE 13562 13563 037725* 4523 OVLJMP 13564 037726* 2020 OVMENU / GO TO EDITOR MENU 13565 13566 / 13567 / TRANSFER TO "DELETE RULER" ROUTINE IN ANOTHER OVERLAY 13568 / 13569 037727* 4523 RLOJDL, OVLJMP 13570 037730* 6044 OVRLDL 13571 13572 / This next string has the same purpose as OKSTR, in that it defines 13573 / acceptable characters for ruler definitions. However, whereas OKSTR 13574 / only has the definitions for correct 7 bit characters, this string 13575 / only has the definitions for correct 8 bit characters. 13576 13577 /1........1.........1.........1.........1.........1/ 13578 EIGHTC, IFDEF ENGLSH < 13579 IFNDEF V30FAO < 13580 TEXT \ \ 13581 > 13582 IFDEF V30FAO < 13583 TEXT \ C \ 13584 > 13585 > 13586 13587 IFDEF V30NOR < 13588 TEXT \ \ 13589 > 13590 13591 IFDEF V30SWE < 13592 TEXT \ \ 13593 > 13594 13595 IFDEF SPANISH < 13596 TEXT \ C \ 13597 > 13598 13599 IFDEF ITALIAN < 13600 TEXT " \#I H G" > 13601 IFDEF DUTCH < 13602 TEXT \ \ 13603 > 13604 13605 X=. / INDICATE FIRST FREE LOCATION ON PAGE 13606 /--------------------- 13607 037766* 6151 PAGE 037767* 0324 037770* 7410 037771* 0120 037772* 0236 037773* 7660 037774* 7777 037775* 6006 037776* 7422 037777* 7522 13608 13609 /*************************************************************************** 13610 /**** START OF OVERLAY **** 13611 /*************************************************************************** 13612 13613 OVRNUM=OVRNUM+200 13614 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 13615 13616 RELOC 13617 13618 RELOC OVLAY1 13619 037400* 1600 OVRNUM / CURRENT OVERLAY NUMBER 13620 13621 OVABRV= .-OVLAY1+OVRNUM / GOLD ABBREVIATION ENTRY POINT 13622 037401* 5777 JMP XVABRV 13623 13624 OVGETC= .-OVLAY1+OVRNUM / GOLD LIBRARY ENTRY POINT 13625 037402* 5776 JMP XVGETC 13626 13627 OVDCM2= .-OVLAY1+OVRNUM 13628 037403* 5775 JMP XVDCM2 13629 13630 13631 / ERROR HANDLING FOR THE GET COPY, ABBREVIATION, AND LIBRARY CODE 13632 037404* 4774 EIGETY, JMS PROMPT / PROMPT ERROR MESSAGE EIGER2 13633 037405* 3400 EIGER2 / "NOT FOUND" ERROR MESSAGE 13634 13635 / GET COPY, ABREVIATION, AND LIBRARY CODE 13636 037406* 1373 EIGETA, TAD (-EIGESL) 13637 037407* 3611 DCA I .+2 / SET BUFFER LENGTH (OVER BRACKET) 13638 037410* 4772 JMS GETLIN 13639 037411* 7524 EIGES3 / GET PARA NAME 13640 037412* 1126 TAD GETLEN 13641 037413* 7450 SNA 13642 037414* 5316 JMP EIGETD / NOP IF NO NAME 13643 037415* 1371 TAD (EIGES3) 13644 DCA X2 / FIX END OF STRING undefined ^ undefined ^ 037416* 3000 13645 037417* 4770 JMS MNUGET 13646 MNLBRY / GET LIBRARY FILE NUM undefined ^ 037420* 0000 13647 037421* 4767 JMS EIGOPN 13648 037422* 5316 JMP EIGETD / OPEN FOR READING 13649 037423* 4766 JMS EIGETK 13650 037424* 5204 JMP EIGETY 13651 13652 037425* 4765 EIGETB, JMS RDNXNJ 13653 037426* 5316 JMP EIGETD / GET NEXT CHAR FROM GRAF 13654 037427* 3317 DCA EIGTM1 13655 037430* 3320 DCA EIGTM2 / SAVE IT 13656 037431* 4501 HLTTST 13657 037432* 5316 JMP EIGETD / QUIT IF HALTED 13658 037433* 1317 TAD EIGTM1 13659 AND P177 undefined ^ undefined ^ 037434* 0000 13660 037435* 1375 TAD (-"<+200) 13661 037436* 7640 SZA CLA 13662 037437* 5250 JMP EIGETF / CHECK FOR END 13663 037440* 4765 JMS RDNXNJ 13664 037441* 5314 JMP EIGETE 13665 037442* 3320 DCA EIGTM2 13666 037443* 1320 TAD EIGTM2 13667 AND P177 undefined ^ undefined ^ 037444* 0000 13668 037445* 1375 TAD (-"<+200) 13669 037446* 7650 SNA CLA 13670 037447* 5316 JMP EIGETD / JUMP IF AT END 13671 037450* 1317 EIGETF, TAD EIGTM1 13672 037451* 4256 JMS EIGETG / ELSE INSERT 13673 037452* 1320 TAD EIGTM2 13674 037453* 7440 SZA 13675 037454* 4256 JMS EIGETG 13676 037455* 5225 JMP EIGETB / AND LOOP FOR MORE 13677 13678 EIGETG, XX undefined ^ 037456* 0000 13679 037457* 4764 JMS CHKRPC 13680 037460* 5265 JMP EIGETH / JUMP IF RULER 13681 037461* 4763 JMS CHKSPC / HELPS PRREVENT DISKETTE OVERFILL 13682 037462* 7440 SZA 13683 037463* 4505 INSCHR / INSERT IF OK 13684 037464* 5656 EIGETX, JMP I EIGETG 13685 13686 037465* 4765 EIGETH, JMS RDNXNJ 13687 037466* 5656 JMP I EIGETG 13688 TAD (-ECMDRL) undefined ^ undefined ^ 037467* 1362 13689 037470* 7640 SZA CLA 13690 037471* 5265 JMP EIGETH / GET TO MIDDLE 13691 037472* 4761 JMS SETRUL 13692 037473* 7600 EIGETJ / SET NWRUL 13693 037474* 4760 JMS CMPRUL 13694 037475* 5656 JMP I EIGETG / JUMP IF =OLD 13695 037476* 1135 TAD CURPTR 13696 037477* 3317 DCA EIGTM1 / SAVE PTR 13697 037500* 4721 JMS I TLITBA / INSERT NEW RULER 13698 TAD (ECRMFL) undefined ^ undefined ^ 037501* 1362 13699 037502* 4757 JMS INSERT / SET MOD FLAG 13700 037503* 4514 SLNMOD 13701 037504* 1317 TAD EIGTM1 13702 037505* 3135 DCA CURPTR / RESTORE PTR 13703 037506* 4513 CURMOV 13704 037507* 7000 NOP / FIX UP 13705 037510* 1171 TAD LINE23 13706 037511* 3135 DCA CURPTR / RESTORE CURPTR 13707 037512* 3136 DCA CURSOR 13708 037513* 5656 JMP I EIGETG / AND LOOP FOR NEXT INPUT 13709 13710 037514* 1317 EIGETE, TAD EIGTM1 13711 037515* 4505 INSCHR / STRANGE END #1 13712 13713 037516* 5722 EIGETD, JMP I TLITBC 13714 13715 037517* 0000 EIGTM1, 0 / TEMPS 13716 037520* 0000 EIGTM2, 0 13717 13718 037521* 5242 TLITBA, INSRUL / ****LITERALS TO BYPASS PAL8 LIMITS*** 13719 037522* 0401 TLITBC, EIFIX /C168 13720 13721 13722 EIGESL=21 / MAX PARA NAME LENGTH 13723 13724 037523* 0074 EIGES2, "<-200 13725 037524* 0074 "<-200 13726 037525* 0000 ZBLOCK EIGESL+2 / BUFFER 037526* 0000 037527* 0000 037530* 0000 037531* 0000 037532* 0000 037533* 0000 037534* 0000 037535* 0000 037536* 0000 037537* 0000 037540* 0000 037541* 0000 037542* 0000 037543* 0000 037544* 0000 037545* 0000 037546* 0000 037547* 0000 13727 EIGES3=EIGES2+1 / BUFFER START FOR GETLIN 13728 13729 13730 13731 X=. / INDICATE FIRST FREE LOCATION ON PAGE 13732 /--------------------- 13733 037557* 2000 PAGE 037560* 5400 037561* 5600 037562* 0000 037563* 4200 037564* 1604 037565* 5200 037566* 7605 037567* 7715 037570* 1643 037571* 7524 037572* 4506 037573* 7757 037574* 4470 037575* 7704 037576* 7700 037577* 7653 13734 13735 EIGETJ, XX undefined ^ 037600* 0000 13736 037601* 4777 JMS RDNXNJ 13737 037602* 5776 JMP EIGETX 13738 037603* 0000 CDFMYF 13739 037604* 5600 JMP I EIGETJ 13740 13741 EIGETK, XX / SET UP FOR RDFIND undefined ^ 037605* 0000 13742 037606* 0000 CDFMYF 13743 037607* 1375 TAD ("<-200) 13744 037610* 3774 DCA I (EIGES3) 13745 037611* 1373 TAD (">-200) 13746 DCA I X2 undefined ^ undefined ^ 037612* 3400 13747 037613* 1373 TAD (">-200) 13748 DCA I X2 undefined ^ undefined ^ 037614* 3400 13749 DCA I X2 undefined ^ undefined ^ 037615* 3400 13750 037616* 3130 DCA PSTBLK 13751 037617* 3132 DCA BASKCT 13752 037620* 4225 JMS RDFIND 13753 037621* 7523 EIGES2 13754 037622* 5605 JMP I EIGETK 13755 037623* 2205 ISZ EIGETK / BUMP FOR SUCCESSFUL RETURN 13756 037624* 5605 JMP I EIGETK 13757 13758 RDFIND, XX undefined ^ 037625* 0000 13759 037626* 0000 CDFMYF / FIND STRING IN SYSFIL 13760 037627* 1625 RDFLP1, TAD I RDFIND 13761 037630* 3252 DCA RDFPTR / GET STRING PTR 13762 037631* 4777 RDFLP2, JMS RDNXNJ 13763 037632* 5250 JMP RDFXI1 / GET NEXT CHAR 13764 037633* 7421 MQL 13765 037634* 4501 HLTTST 13766 037635* 5250 JMP RDFXI1 / QUIT IF HALTED 13767 037636* 0000 CDFMYF 13768 037637* 1652 TAD I RDFPTR / COMPARE WITH STRING 13769 037640* 7521 SWP 13770 037641* 4772 JMS USCMPR 13771 037642* 5227 JMP RDFLP1 / REINIT IF NO MATCH HERE 13772 037643* 2252 ISZ RDFPTR / BUMP STRING PTR 13773 037644* 1652 TAD I RDFPTR / END YET? 13774 037645* 7640 SZA CLA 13775 037646* 5231 JMP RDFLP2 / CONTINUE MATCH IF NOT 13776 037647* 2225 ISZ RDFIND / ELSE BUMP TO OK RETURN 13777 037650* 2225 RDFXI1, ISZ RDFIND 13778 037651* 5625 JMP I RDFIND / RETURN TO CALLER 13779 13780 037652* 0000 RDFPTR, 0 / TMP 13781 13782 037653* 4771 XVABRV, JMS MNUGET / CODE FOR ABRV OVERLAY 13783 MNABRV / GET ABBREV FILE NUM undefined ^ 037654* 0000 13784 037655* 4315 JMS EIGOPN 13785 037656* 5770 JMP EIFIX / INIT ABBREV FILE /C168 13786 037657* 4777 JMS RDNXNJ 13787 037660* 5277 JMP EIABRA 13788 037661* 7200 CLA / CHECK IT 13789 037662* 1374 TAD (EIGES3) 13790 DCA X2 / INIT STRING PTR undefined ^ undefined ^ 037663* 3000 13791 037664* 4502 GETINP 13792 037665* 7510 SPA 13793 037666* 5277 JMP EIABRA / GET 1ST CHAR 13794 037667* 4333 JMS XVABIN / Insert it (7 or 8 bit) /A225 13795 037670* 4502 GETINP / Get 2nd char 13796 037671* 7510 SPA / 13797 037672* 5277 JMP EIABRA / And process as for 1st 13798 037673* 4333 JMS XVABIN / Insert it /A225 13799 037674* 4205 JMS EIGETK 13800 037675* 5277 JMP EIABRA / GO FIND IT 13801 037676* 5767 JMP EIGETB / GO COPY IF FOUND 13802 13803 037677* 5766 EIABRA, JMP EIBAD 13804 13805 037700* 4765 XVGETC, JMS FXSCRL / UPDATE SCREEN 13806 037701* 4764 JMS PROMPT 13807 037702* 3400 EIGES1 / ASK FOR NAME 13808 037703* 5763 JMP EIGETA / GO TO CONTINUATION ROUTINE 13809 13810 037704* 1154 XVDCM2, TAD CPYFNO / SECOND OVERLAY 13811 037705* 4315 JMS EIGOPN 13812 037706* 5770 JMP EIFIX / INIT DOCUMENT FILE /C168 13813 13814 037707* 4777 EIDCMD, JMS RDNXNJ 13815 037710* 5762 JMP EIGETD / GET A CHARACTER, EXIT IF DONE 13816 037711* 4761 JMS EIGETG / INSERT CHARACTER 13817 037712* 4501 HLTTST / TEST IF HALT FLAG SET 13818 037713* 5762 JMP EIGETD / YES, DONE 13819 037714* 5307 JMP EIDCMD / NO, GO AROUND AGAIN 13820 13821 EIGOPN, XX / CHECK FILE, THEN OPEN FOR READING undefined ^ 037715* 0000 13822 037716* 3154 DCA CPYFNO / SAVE FILE NO 13823 037717* 1154 TAD CPYFNO 13824 037720* 7041 CIA / COMPARE AGAINST EDIT FILE 13825 037721* 1167 TAD FILENO 13826 037722* 7640 SZA CLA 13827 037723* 5326 JMP .+3 13828 037724* 4760 JMS BEEPER / COMPLAIN IF SAME 13829 037725* 5715 JMP I EIGOPN / TAKE NON-SKIP RETURN 13830 13831 037726* 1154 TAD CPYFNO 13832 037727* 4757 JMS DSKCAL 13833 XRDFIN / ELSE INIT IT undefined ^ 037730* 0000 13834 037731* 2315 ISZ EIGOPN 13835 037732* 5715 JMP I EIGOPN / AND TAKE SKIP RETURN 13836 13837 13838 / 13839 / Routine (blasted) to insert 7 or 8 bit (dead key) char into /A225 13840 / EIGESL buffer /A225 13841 / 13842 13843 13844 XVABIN, XX undefined ^ 037733* 0000 13845 037734* 3350 DCA XABRVC / Store 1st char /A225 13846 037735* 1350 TAD XABRVC / Get it back /A225 13847 037736* 0356 AND (200) / Is it 8 bit ? /A225 13848 037737* 7640 SZA CLA / /A225 13849 037740* 5344 JMP XABXPC / Yes, expand char /A225 13850 037741* 1350 TAD XABRVC / Get char back /A225 13851 DCA I X2 / And save it /A225 undefined ^ undefined ^ 037742* 3400 13852 037743* 5733 JMP I XVABIN / Now exit /A225 13853 037744* 1350 XABXPC, TAD XABRVC / get char /A225 13854 037745* 4755 JMS BHOOK / Call Blaster /A225 13855 AB8INS / /A225 undefined ^ 037746* 0000 13856 037747* 5733 JMP I XVABIN / return /A225 13857 13858 037750* 0000 XABRVC, 0 / Temp for input char /A225 13859 13860 13861 13862 13863 13864 X=. / INDICATE FIRST FREE LOCATION ON PAGE 13865 /--------------------- 13866 037755* 5324 PAGE 037756* 0200 037757* 5014 037760* 0324 037761* 7456 037762* 7516 037763* 7406 037764* 4470 037765* 3400 037766* 0400 037767* 7425 037770* 0401 037771* 1643 037772* 4252 037773* 0076 037774* 7524 037775* 0074 037776* 7464 037777* 5200 13867 13868 /*************************************************************************** 13869 /**** START OF OVERLAY **** 13870 /*************************************************************************** 13871 13872 OVRNUM=OVRNUM+200 / NEW OVERLAY 13873 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 13874 13875 RELOC 13876 13877 RELOC OVLAY1 13878 037400* 2000 OVRNUM / CURRENT OVERLAY NUMBER 13879 13880 13881 /D185 BEGIN HELP OVERLAY........CALL CLEAR SCREEN AND SAVE MENU DATA 13882 /D185 OVHELP= .-OVLAY1+OVRNUM 13883 /D185 TAD BASKCT / GET WASTEBASKET COUNT 13884 /D185 DCA T3 / SAVE FOR HELP UNDELETE 13885 /D185 JMS EIDCMB / SAVE MENU DATA 13886 /D185 OVLJMP;OVHLP1 / START OF HELP OVERLAY 13887 /D185 END HELP OVERLAY..........RESTORE MENU DATA AND POINTERS 13888 /D185 OVHLPE= .-OVLAY1+OVRNUM 13889 /D185 JMS EIDCMC / RESET PTRS 13890 /D185 JMS EIPSWP / GO RESTORE THE SWAP AREA /A181 13891 /D185 TAD T2 / FINISH - GET RETURN CODE 13892 /D185 SNA / IS CODE OR NULL(RET TO EDITOR) 13893 /D185 JMP EINEXT / RETURN TO NORMAL EDITOR FUNCTIONS /C168 13894 /D185 JMP EINEXB / RETURN TO EDITOR ...WITH NEG CODE IN AC 13895 13896 13897 OVDCMT= .-OVLAY1+OVRNUM / GET DOCUMENT 13898 13899 037401* 4307 JMS EIDCMB / SAVE MENU STUFF 13900 037402* 4777 JMS MNUPUT 13901 MNTMP1 / NO SPECIAL OPTIONS undefined ^ 037403* 0000 13902 CIFMNU undefined ^ 037404* 0000 13903 JMS I MNUCAL undefined ^ undefined ^ 037405* 4400 13904 DLMEM1 / CALL MENU undefined ^ 037406* 0000 13905 037407* 4333 JMS EIDCMC / RESTORE MENU STUFF 13906 037410* 4776 JMS EIPSWP / GO RESTORE THE SWAP AREA /A181 13907 037411* 4775 JMS MNUGET 13908 MNTMP3 / GET FILE NUM FROM MENU undefined ^ 037412* 0000 13909 037413* 7450 SNA 13910 037414* 5774 JMP EIFIX / QUIT IF NULL /C168 13911 037415* 3154 DCA CPYFNO / ELSE SAVE FOR CHECKING 13912 037416* 4523 OVLJMP;OVDCM2 / AND JUMP TO NEXT OVERLAY 037417* 1603 13913 13914 OVMENU= .-OVLAY1+OVRNUM / EDITOR MENU 13915 13916 037420* 4307 XVMENU, JMS EIDCMB / SAVE MENU STUFF 13917 037421* 4773 JMS HDRGET 13918 037422* 0015 HDRPSZ / GIVE HIM OUR PAGE SIZE 13919 037423* 4777 JMS MNUPUT 13920 MNTMP3 undefined ^ 037424* 0000 13921 /D186 CDFMYF 13922 037425* 1177 TAD WIDNAR / GET WIDE/NARROW FLAG /A186 13923 037426* 7640 SZA CLA / CONVERT TO 1/0 FLAG /A186 13924 AC0001 / NARROW (52 DEC) = 1 /A186 undefined ^ 037427* 0000 13925 037430* 4777 JMS MNUPUT / STORE WHERE MENU CAN FIND IT /A186 13926 MNTMP8 /A186 undefined ^ 037431* 0000 13927 13928 CIFMNU undefined ^ 037432* 0000 13929 JMS I MNUCAL undefined ^ undefined ^ 037433* 4400 13930 DLMEM2 / CALL MENU undefined ^ 037434* 0000 13931 13932 037435* 3047 DCA LOWLIM / CLEAR SO THAT TESTLIM CAN SET IT OK /A186 13933 037436* 4775 JMS MNUGET /A186 13934 MNTMP8 / GET WIDE/NARROW SCREEN FLAG /A186 undefined ^ 037437* 0000 13935 037440* 7110 CLL RAR / CONVERT TO FORM EDITOR CAN USE /A186 13936 037441* 7630 SZL CLA / SKIP IF WIDE MODE JUST SPECIFIED /A186 13937 037442* 1372 TAD (WIDTH-COLM81) / NARROW = 52 DECIMAL FOR EDITOR USE /A186 13938 037443* 3177 DCA WIDNAR / STORE IT AWAY /A186 13939 037444* 7620 SNL CLA / WHAT IS IT? /A186 13940 037445* 7040 CMA / WIDE, SET AC=-1, PRESERVE LINK!! /A186 13941 037446* 3771 DCA WIDEFL / SET 'NEED TO GO TO 132 COL.' FLAG /A192 13942 037447* 7420 SNL / SKIP IF NARROW /A192 13943 037450* 4770 JMS SET132 / WIDE, GO TO 132 COLUMN MODE /A186 13944 037451* 4333 JMS EIDCMC / RESTORE MENU STUFF 13945 037452* 4775 JMS MNUGET 13946 MNTMP3 / GET PAGE SIZE BACK AGAIN undefined ^ 037453* 0000 13947 037454* 4767 JMS HDRPUT 13948 037455* 0015 HDRPSZ / PUT BACK IN HEADER 13949 037456* 4775 JMS MNUGET 13950 MNTMP5 / WRITE SYSTEM OPTIONS PAGE IF MODIFIED undefined ^ 037457* 0000 13951 037460* 7640 SZA CLA 13952 037461* 4766 JMS EIMSVU 13953 13954 / +++ Modify RULOFF Case-Table to turn Display-Rulers ON or OFF. /a177 13955 / /a177 13956 / MNSTAT = 0 or 1 ... Ruler Display ON /a177 13957 / MNSTAT = 2 or 3 ... Ruler Display OFF /a177 13958 / /a177 13959 037462* 4765 JMS OV2JMP / LOAD OVERLAY 2 /a177 13960 OVRLOF / Adjust Case-Table and Continue /a177 undefined ^ 037463* 0000 13961 13962 037464* 4775 JMS MNUGET 13963 MNTMP4 / GET MNU OPTION RETURN undefined ^ 037465* 0000 13964 037466* 1364 TAD (JMP I EIMNUA) / USE TO JUMP THRU TABLE 13965 037467* 3270 DCA .+1 13966 037470* 5671 JMP I EIMNUA / TAKE OPTION JUMP 13967 037471* 7500 EIMNUA, EIMNU0 / RETURN 13968 037472* 7607 EIMNU1 / DK 13969 037473* 7504 EIMNU2 / NULL VALUE 13970 037474* 7600 EIMNU3 / CONTINUE PRINTER 13971 037475* 7502 EIMNU4 / FINISH DOCUMENT 13972 037476* 7504 EIMNU5 / GLOBAL SEARCH AND REPLACE 13973 037477* 7612 EIMNU6 / AUTO-PAGINATION 13974 13975 037500* 4776 EIMNU0, JMS EIPSWP / GO RESTORE THE SWAP AREA /A181 13976 037501* 5774 JMP EIFIX / RETURN TO EDITOR /C168 13977 13978 037502* 4776 EIMNU4, JMS EIPSWP / GO RESTORE THE SWAP AREA /A181 13979 037503* 5763 JMP EIFILE / GO FILE THE DOCUMENT 13980 13981 EIMNU2, / NULL VALUE 13982 037504* 3130 EIMNU5, DCA PSTBLK / RESET PASTE BLOCK POINTER TO CAUSE 13983 / PASTE BLOCK TO BE RE-INITITED IN CORE 13984 037505* 4523 OVLJMP;OVGSRP / GO TO GSR OVERLAY /C210 undefined ^ 037506* 0000 13985 13986 13987 /D181 EIDCMA, XX 13988 /D181 CDFMNU 13989 /D181 AC7777 13990 /D181 TAD I (FNAMSP) 13991 /D181 DCA X1 13992 /D181 TAD (SMULOC-1) 13993 /D181 DCA X2 13994 /D181 JMP I EIDCMA 13995 13996 13997 EIDCMB, XX undefined ^ 037507* 0000 13998 CDFMNU / CHANGE TO MENU FIELD /A181 undefined ^ 037510* 0000 13999 AC7777 / SET UP FOR A DECREMENT /A181 undefined ^ 037511* 0000 14000 TAD I (FNAMSP) / PICK UP ADDRESS OF FILE NAME BUFFER /A181 undefined ^ undefined ^ 037512* 1762 14001 037513* 3317 DCA EDICMX / STORE SOURCE ADDRESS /A181 14002 14003 037514* 4761 JMS CPYBUF / CALL SYSTEM ROUTINE TO MOVE BUFFER /A181 14004 -STRLEN / NUMBER OF WORDS TO MOVE /A181 undefined ^ 037515* 0000 14005 CDFMNU / SOURCE FIELD /A181 undefined ^ 037516* 0000 14006 037517* 0000 EDICMX, 0 / SOURCE ADDRESS /A181 14007 037520* 0000 CDFMYF / DESTINATION FIELD /A181 14008 037521* 7641 SMULOC-1 / DESTINATION ADDRESS /A181 14009 14010 037522* 3130 DCA PSTBLK 14011 037523* 3132 DCA BASKCT / CLEAR PASTE BUF FLAGS 14012 14013 037524* 4760 JMS CLR132 / MAKE SURE THE SCREEN IS IN NARROW MODE 14014 AC0003 / SET UP TO RESET SCROLL REGION undefined ^ 037525* 0000 14015 CIFMNU / CHANGE INSTRUCTION FIELD TO MENU FIELD undefined ^ 037526* 0000 14016 037527* 4762 JMS I (CALLN1) / RESET SCROLL REGION SET ABSOLUTE MODE 14017 CIFMNU / CHANGE INSTRUCTION FIELD TO MENU FIELD undefined ^ 037530* 0000 14018 PGSWAP / AC=0, SAVE SWAP AREA & RELOAD MENU CODE undefined ^ 037531* 0000 14019 14020 037532* 5707 JMP I EIDCMB 14021 14022 EIDCMC, XX undefined ^ 037533* 0000 14023 037534* 1317 TAD EDICMX / PICK UP ADDRESS OF FILE NAME BUFFER /A181 14024 037535* 3343 DCA EDICMY / STORE SOURCE ADDRESS /A181 14025 14026 037536* 4761 JMS CPYBUF / CALL SYSTEM ROUTINE TO MOVE BUFFER /A181 14027 -STRLEN / NUMBER OF WORDS TO MOVE /A181 undefined ^ 037537* 0000 14028 037540* 0000 CDFMYF / SOURCE FIELD /A181 14029 037541* 7641 SMULOC-1 / SOURCE ADDRESS /A181 14030 CDFMNU / DESTINATION FIELD /A181 undefined ^ 037542* 0000 14031 037543* 0000 EDICMY, 0 / DESTINATION ADDRESS /A181 14032 14033 /D192 TAD SPLTFL / CHECK FOR WIDE SCREEN 14034 /D192 SZA CLA / SKIP IF NARROW 14035 037544* 4770 JMS SET132 / CONVERT TO 132 COLUMN MODE (IF WIDE!) 14036 037545* 4757 JMS CLSSET / INITIALIZE SCROLL VALUES FOR STATUS 14037 037546* 5733 JMP I EIDCMC 14038 14039 X=. / INDICATE FIRST FREE LOCATION ON PAGE 14040 /--------------------- 14041 037557* 2141 PAGE 037560* 6740 037561* 6054 037562* 0000 037563* 0220 037564* 5671 037565* 5124 037566* 7617 037567* 1335 037570* 6744 037571* 3564 037572* 0064 037573* 6704 037574* 0401 037575* 1643 037576* 7642 037577* 1655 14042 14043 EIMNU3, AC0006 / LOAD 'CONTINUE' ACTION CODE undefined ^ 037600* 0000 14044 CDFPRT / GET TO PRINTER FIELD undefined ^ 037601* 0000 14045 DCA I (PRACTN) / SET ACTION CODE undefined ^ undefined ^ 037602* 3777 14046 /D173 TAD I (PRSTOP) / STOP PRINTER, 14047 /D173 SZA CLA 14048 /D173 JMP .+4 / IF NOT ALREADY STOPPED 14049 AC0001 undefined ^ 037603* 0000 14050 /D173 TAD USERNO / BY SETTING OUR NUMBER 14051 DCA I (PRSTOP) / IN PRINTER STOP FLAG undefined ^ undefined ^ 037604* 3777 14052 037605* 0000 CDFMYF / BACK TO OUR FIELD 14053 037606* 5776 JMP EIMNU0 / GO RETURN TO EDITOR /A173 14054 14055 037607* 4775 EIMNU1, JMS CLR132 / DON'T NEED WIDE SCREEN HERE 14056 037610* 4523 OVLJMP;OVUDKS / GO TRANSFER TO UDK OVERLAY 037611* 4001 14057 14058 037612* 4242 EIMNU6, JMS EIPSWP / GO RESTORE THE SWAP AREA /A181 14059 037613* 4774 JMS TSTLIM / GO SET UP THE LIMITS OF DISPLAY /A186 14060 037614* 4773 JMS FXSCRL / GO REPAINT THE SCREEN /A186 14061 037615* 4523 OVLJMP;OVAPAG / JUMP TO AUTO GOLD PAGE OVERLAY 037616* 3402 14062 14063 14064 EIMSVU, XX / SAVE SYSTEM OPTIONS PAGE undefined ^ 037617* 0000 14065 TAD (DLSVAL) / DISK BLOCK TO READ /A181 undefined ^ undefined ^ 037620* 1377 14066 037621* 0000 CDFMYF / FIELD TO READ IT INTO /A181 14067 037622* 4772 JMS SYSIO / SYSTEM ROUTINE TO READ A DISK BLOCK /A181 14068 RXERD / READ COMMAND CODE /A181 undefined ^ 037623* 0000 14069 037624* 7000 OVLAY2 / BUFFER TO READ IT INTO /A181 14070 14071 037625* 4771 JMS CPYBUF / CALL SYSTEM ROUTINE TO MOVE BUFFER /A181 14072 -MUSYSL / NUMBER OF WORDS TO MOVE /A181 undefined ^ 037626* 0000 14073 CDFMNU / SOURCE FIELD /A181 undefined ^ 037627* 0000 14074 MUSYSV-1 / SOURCE ADDRESS /A181 undefined ^ 037630* 7777 14075 037631* 0000 CDFMYF / DESTINATION FIELD /A181 14076 037632* 6777 OVLAY2-1 / DESTINATION ADDRESS /A181 14077 14078 TAD (DLSVAL) / DISK BLOCK TO WRITE /M181 undefined ^ undefined ^ 037633* 1377 14079 037634* 0000 CDFMYF / FIELD TO WRITE FROM /M181 14080 037635* 4772 JMS SYSIO / SYSTEM ROUTINE TO WRITE A DISK BLOCK /M181 14081 RXEWT / WRITE COMMAND CODE /M181 undefined ^ 037636* 0000 14082 037637* 7000 EIMLAY, OVLAY2 / BUFFER TO WRITE FROM /M181 14083 14084 037640* 3637 DCA I EIMLAY / ZAP POINTER TO SECOND OVERLAY NUMBER /M181 14085 037641* 5617 JMP I EIMSVU / RETURN TO CALLER /M181 14086 14087 SMULOC, ZBLOCK STRLEN / LOCATION TO SAVE THE FILE NAME BUFFER undefined ^ 14088 /D181 SMOOT, 0 / SHOWS LENGTH OF SMULOC BLOCK 14089 14090 EIPSWP, XX / RESTORE THE SWAP AREA ROUTINE /A181 undefined ^ 037642* 0000 14091 AC7777 / SET AC = -1 /A181 undefined ^ 037643* 0000 14092 CIFMNU / CHANGE INSTRUCTION FIELD TO MENU FIELD/A181 undefined ^ 037644* 0000 14093 PGSWAP / AC=-1 SO JUST LOAD IN THE SAVE AREA /A181 undefined ^ 037645* 0000 14094 037646* 5642 JMP I EIPSWP / RETURN TO CALLER /A181 14095 14096 X=. / INDICATE FIRST FREE LOCATION ON PAGE 14097 /--------------------- 14098 037771* 6054 PAGE 037772* 5041 037773* 3400 037774* 1426 037775* 6740 037776* 7500 037777* 0000 14099 14100 14101 /*************************************************************************** 14102 /**** START OF OVERLAY **** 14103 /*************************************************************************** 14104 14105 OVRNUM=OVRNUM+200 / NEW OVERLAY 14106 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 14107 14108 RELOC 14109 14110 RELOC OVLAY1 14111 037400* 2200 OVRNUM / CURRENT OVERLAY NUMBER 14112 14113 OVSCUT= .-OVLAY1+OVRNUM / ENTRY POINT FOR STANDARD CUT OVERLAY 14114 037401* 5256 JMP XVSCUT 14115 14116 OVCLPB= .-OVLAY1+OVRNUM / ENTRY POINT FOR CLEAR CUT/ PASTE BUFFER 14117 037402* 5325 JMP XVCLPB 14118 14119 OVGCUT= .-OVLAY1+OVRNUM / ENTRY POINT FOR GOLD CUT OVERLAY 14120 037403* 5216 JMP XVGCUT 14121 14122 OVREPL= .-OVLAY1+OVRNUM / ENTRY POINT FOR GOLD REPLACE OVERLAY 14123 14124 037404* 4511 TSTSLT / CHECK FOR SELECT REGION /C204 14125 037405* 5214 JMP CLRGSR / ERROR IF NOT IN SELECT 14126 037406* 1377 TAD (SLCTMD) / PICK UP CODE FOR SELECT COMMAND 14127 037407* 3134 DCA GRAMUN / SET "FLAG" UNIT TYPE 14128 037410* 1376 TAD (ESNOPC) / PICK UP NULL OUTPUT ROUTINE ADDRESS 14129 037411* 4775 JMS CUTSUB / DELETE TO NOWHERE 14130 037412* 4523 OVLJMP / JUMP TO DO PASTE 14131 037413* 2405 OVPSTE 14132 14133 037414* 3173 CLRGSR, DCA GSRF / CLEAR GSR FLAG /C204 14134 037415* 5774 JMP EIBAD / ERROR IF NO SELECT 14135 14136 14137 / ENTRY POINT FOR GOLD CUT OVERLAY 14138 14139 037416* 1373 XVGCUT, TAD (ESCUTX) / PICK UP OUTPUT ROUTINE ADDRESS /A204 14140 037417* 3772 DCA CUTOUT / SAVE OUTPUT ROUTINE POINTER /A204 14141 14142 037420* 4313 JMS ESCUTY / GO INITIALIZE POINTERS 14143 037421* 4771 JMS SETUNT / SETUP FOR CHKUNT 14144 14145 037422* 4770 JMS RLEQTE / SET UP FOR RULER CHANGE CHECKING /A204 14146 037423* 4767 JMS CUTRUL / SAVE CURRENT RULER /A204 14147 037424* 5251 JMP XVGCU1 / PASTE BUFFER OVERFLOW ERROR /A204 14148 14149 037425* 0000 CDFMYF / RESET BACK TO OUR FIELD 14150 037426* 3766 DCA JCLGCT / SET FLAG TO NOT DELETE PAGE MARKER 14151 037427* 3765 DCA SETRUL / CLEAR FLAG INDICATING RULER CROSSED /A204 14152 14153 037430* 4764 JMS GETUNT / CO-ROUTINE, GET CHARACTER UNTIL SELECT 14154 GCUTNX, XX / RESTART CO-ROUTINE ENTRY POINT undefined ^ 037431* 0000 14155 037432* 7650 SNA CLA / RETURN FROM CO-ROUTINE WITH CHAR OR NULL/C204 14156 037433* 5251 JMP XVGCU1 / JUMP IF ALL DONE 14157 14158 037434* 0000 CDFMYF / RESET BACK TO OUR FIELD /A204 14159 037435* 1765 TAD SETRUL / GET THE RULER CROSSING FLAG /A204 14160 037436* 7650 SNA CLA / DID WE CROSS A RULER ? /A204 14161 037437* 5244 JMP XVGCU0 / NO, GO PUT CHARACTER INTO PASTE BUFFER/A204 14162 14163 037440* 4767 JMS CUTRUL / YES, PUT NEW RULER INTO PASTE BUFFER /A204 14164 037441* 5251 JMP XVGCU1 / PASTE BUFFER OVERFLOW ERROR /A204 14165 14166 037442* 0000 CDFMYF / RESET BACK TO OUR FIELD /A204 14167 037443* 3765 DCA SETRUL / CLEAR THE FLAG FOR NEXT TIME /A204 14168 14169 XVGCU0, CDFBUF / SET TO BUFFER FIELD /A204 undefined ^ 037444* 0000 14170 037445* 1535 TAD I CURPTR / PICK UP THE CURRENT CHARACTER /A204 14171 037446* 4273 JMS ESCUTX / STUFF IT INTO THE PASTE BUFFER 14172 037447* 5631 JMP I GCUTNX / GO GET ANOTHER CHARACTER 14173 037450* 2135 ISZ CURPTR / OVERFLOW, SKIP OVER CURRENT CHARACTER /A205 14174 14175 037451* 0000 XVGCU1, CDFMYF / BACK TO OUR FIELD 14176 037452* 1255 TAD GCLIT1 / RESTORE JCLEAN LITERAL 14177 037453* 3766 DCA JCLGCT 14178 037454* 5261 JMP ESCUT3 / PUT ONE MORE IN PSTE BUFFER 14179 14180 GCLIT1, JTSTOF-ECPMRK / LITERAL FOR JCLEAN TO DELETE PG MRK'S undefined ^ 037455* 0000 14181 14182 / ENTRY POINT FOR STANDARD CUT OVERLAY 14183 14184 037456* 4313 XVSCUT, JMS ESCUTY / GO INITIALIZE POINTERS 14185 037457* 1373 TAD (ESCUTX) / PICK UP OUTPUT ROUTINE ADDRESS 14186 037460* 4775 JMS CUTSUB / DELETE SELECT RANGE TO PASTE BUFFER 14187 14188 037461* 2272 ESCUT3, ISZ ESCUT1 / CHECK FOR OVERFLOW 14189 037462* 5265 JMP ESCUT4 / JUMP IF NORMAL TERMINATE 14190 14191 037463* 4763 JMS BEEPER / ELSE COMPLAIN 14192 037464* 5762 JMP CUTMOV / KILL SELECT & BACK UP TO OVERFLOW POINT/A205 14193 /D205 JMP UNSLCT / SCROLL TO SELECT POINT 14194 14195 ESCUT4, CDFBUF undefined ^ 037465* 0000 14196 037466* 3531 DCA I PSTPTR / SET PASTE STOPPER 14197 TAD (RXEWT+2000) undefined ^ undefined ^ 037467* 1361 14198 037470* 4760 JMS PSTIO / OUTPUT LAST BUFFER 14199 037471* 5757 JMP EINEXT / AND GO LISTEN 14200 14201 037472* 0000 ESCUT1, 0 / LOCATION USED FOR OVERFLOW FLAG 14202 14203 ESCUTX, XX / ROUTINE TO PUT A CHARACTER TO PASTE BUFFER undefined ^ 037473* 0000 14204 CDFBUF / SET TO BUFFER FIELD undefined ^ 037474* 0000 14205 037475* 3531 DCA I PSTPTR / STORE CHARACTER FOR OUTPUT 14206 037476* 2131 ISZ PSTPTR / BUMP THE POINTER INTO THE PASTE BUFFER 14207 037477* 5673 JMP I ESCUTX / RETURN IF NOT FULL 14208 14209 TAD (RXEWT+2000) / PICK UP THE CODE FOR A DISK BLOCK WRITE undefined ^ undefined ^ 037500* 1361 14210 037501* 4760 JMS PSTIO / GO OUTPUT THE PASTE BUFFER BLOCK 14211 037502* 2130 ISZ PSTBLK / BUMP THE BLOCK NUMBER 14212 037503* 1130 TAD PSTBLK / PICK UP THE BLOCK NUMBER 14213 037504* 1356 TAD (-PSTEND) / COMBINE WITH THE LIMIT OF BLOCKS 14214 037505* 7640 SZA CLA / DID WE DO THE LAST PASTE BUFFER BLOCK 14215 037506* 5673 JMP I ESCUTX / RETURN IF NOT 14216 14217 AC7777 / SET AC TO A MINUS 1 undefined ^ 037507* 0000 14218 037510* 3272 DCA ESCUT1 / SET OVERFLOW FLAG 14219 037511* 2273 ISZ ESCUTX / BUMP TO ABNORMAL RETURN 14220 037512* 5673 JMP I ESCUTX / AND TAKE IT 14221 14222 ESCUTY, XX / ROUTINE TO INITIALIZE POINTERS undefined ^ 037513* 0000 14223 037514* 4511 TSTSLT / CHECK FOR SELECT REGION 14224 037515* 5774 JMP EIBAD / ERROR IF NOT IN SELECT 14225 037516* 1355 TAD (PSTEBG) / PICK UP START BLOCK OF PASTE BUFFER 14226 037517* 3130 DCA PSTBLK / SET TO BEGINNING BLOCK OF FILE 14227 037520* 4754 JMS SETPST / SET BUFFER PTR AND COUNT 14228 037521* 3272 DCA ESCUT1 / CLEAR OVERFLOW FLAG 14229 037522* 1377 TAD (SLCTMD) / PICK UP CODE FOR SELECT COMMAND 14230 037523* 3134 DCA GRAMUN / SET SELECT UNIT TYPE 14231 037524* 5713 JMP I ESCUTY / RETURN TO CALLER 14232 14233 14234 / ENTRY POINT FOR "CLEAR CUT/ PASTE BUFFER" OVERLAY 14235 / WHEN READING FROM THE CUT/ PASTE BUFFER, THE PROCESS STOPS 14236 / AS SOON AS A ZERO IS READ, HENCE PUT A ZERO IN THE FIRST 14237 / WORD OF THE BUFFER, AND THE BUFFER APPEARS EMPTY 14238 14239 037525* 7200 XVCLPB, CLA 14240 14241 / IF the entry into "OVJUMP" is from "F" (FINISHED using the system) 14242 / THEN "Hang-up" the modem 14243 14244 037526* 1753 TAD OVJUMP 14245 037527* 0362 AND (7600) 14246 037530* 1362 TAD (-200) 14247 037531* 7640 SZA CLA 14248 037532* 5337 JMP .+5 14249 037533* 1352 TAD (7402) 14250 CIFSYS undefined ^ 037534* 0000 14251 HS2OU undefined ^ 037535* 0000 14252 037536* 7200 CLA 14253 14254 037537* 1355 TAD (PSTEBG) 14255 037540* 3130 DCA PSTBLK / SET TO BEGINNING BLOCK OF FILE 14256 037541* 1351 TAD (PSTEBF) 14257 037542* 3131 DCA PSTPTR / RESET POINTERS 14258 CDFBUF undefined ^ 037543* 0000 14259 037544* 3531 DCA I PSTPTR / CLEAR THE FIRST WORD OF THE BUFFER 14260 TAD (RXEWT+2000) undefined ^ undefined ^ 037545* 1361 14261 037546* 4760 JMS PSTIO / PUT OUT BUFFER 14262 037547* 5750 JMP OVJRTN / AND RETURN 14263 14264 14265 X=. / INDICATE FIRST FREE LOCATION ON PAGE 14266 /--------------------- 14267 037550* 5122 PAGE 037551* 7400 037552* 7402 037553* 5111 037554* 5316 037555* 0000 037556* 7742 037557* 0406 037560* 5030 037561* 2000 037562* 7600 037563* 0324 037564* 0463 037565* 5600 037566* 3723 037567* 7736 037570* 6151 037571* 0650 037572* 7754 037573* 7473 037574* 0400 037575* 7627 037576* 7624 037577* 0010 14268 14269 CUTMOV, TAD (ECTMRK) / PICK UP POSITION MARKER /A205 undefined ^ undefined ^ 037600* 1377 14270 037601* 4776 JMS INSERT / INSERT MARK INTO TEXT BUFFER /A205 14271 14272 037602* 4504 MODSET; EDTMOD / SET ADVANCE CHARACTER MODE /A205 037603* 1742 14273 037604* 4775 JMS LODCHR / PICK UP CURRENT OR NEXT CHARACTER /A205 14274 037605* 5774 JMP EIFIX / ERROR, SHOULD NOT BE AT END OF FILE /A205 14275 14276 037606* 4773 JMS GETUNT / CO-ROUTINE TO GET NEXT UNIT /A205 14277 037607* 0000 CUTXXX, .-. / RETURN POINT BACK TO CO-ROUTINE /A205 14278 037610* 7640 SZA CLA / DID WE FIND THE SELECT MARK /A205 14279 037611* 5607 JMP I CUTXXX / NO, GO CHECK NEXT CHARACTER /A205 14280 14281 CUTOVR, AC7777 / SET UP FOR A BACKWARD MOVE /A205 undefined ^ 037612* 0000 14282 037613* 4513 CURMOV / MOVE BACK ONE CHARACTER /A205 14283 037614* 7000 NOP / EOF RETURN, IMPOSSIBLE AT THIS TIME /A205 14284 14285 037615* 1535 TAD I CURPTR / PICK UP THE CURRENT CHARACTER /A205 14286 037616* 7041 CIA / MAKE IT NEGATIVE /A205 14287 TAD (ECTMRK) / CHECK FOR PLACEMENT MARK /A205 undefined ^ undefined ^ 037617* 1377 14288 037620* 7640 SZA CLA / IS THIS THE MARK WE JUST PUT IN ? /A205 14289 037621* 5212 JMP CUTOVR / NO, GO CHECK AGAIN /A205 14290 14291 037622* 3535 DCA I CURPTR / CLEAR THE MARK FROM THE BUFFER /A205 14292 037623* 5774 JMP EIFIX / GO HANDLE NEXT COMMAND FROM USER /A205 14293 14294 CUTUN1= CUTXXX / USE FOR STORAGE LOCATION /A205 14295 14296 14297 ESNOPC, XX / NULL OUTPUT ROUTINE FOR GOLD REPLACE undefined ^ 037624* 0000 14298 037625* 7200 CLA / CLEAR ARGUMENT 14299 037626* 5624 JMP I ESNOPC / RETURN TO CALLER 14300 14301 14302 CUTSUB, XX / DELETE SELECTED TEXT THRU ARG-ROUTINE undefined ^ 037627* 0000 14303 037630* 3354 DCA CUTOUT / SAVE OUTPUT ROUTINE POINTER 14304 037631* 1135 TAD CURPTR / GET CURSOR POINTER ADDRESS IN BUFFER 14305 037632* 3207 DCA CUTUN1 / SAVE CURRENT POINTER 14306 14307 037633* 4772 JMS SETUNT / SET UP FOR CHKUNT 14308 037634* 4771 JMS RLEQTE / SET UP FOR RULER CHANGE CHECKING 14309 037635* 4336 JMS CUTRUL / SAVE CURRENT RULER 14310 037636* 5322 JMP CUTUNX / PASTE BUFFER OVERFLOW ERROR /A204 14311 14312 037637* 4775 JMS LODCHR / GET CURRENT OR NEXT CHARACTER 14313 037640* 5627 JMP I CUTSUB / QUIT AT EOF, RETURN TO CALLER /C204 14314 14315 037641* 4770 JMS CHKUNT / CO-ROUTINE CHECK FOR DONE 14316 037642* 0000 CUTNXT, .-. 14317 037643* 7710 SPA CLA / RETURNS -1 WHEN DONE 14318 037644* 5322 JMP CUTUNX / QUIT IF DONE 14319 14320 037645* 1535 TAD I CURPTR / GET THE CURRENT CHARACTER BACK 14321 TAD (-ECSTRL) / COMBINE WITH THE START OF RULER CODE undefined ^ undefined ^ 037646* 1377 14322 037647* 7440 SZA / IS THIS THE START OF A RULER /C204 14323 037650* 5262 JMP CUTUNR / JUMP IF NO RULER 14324 14325 037651* 1207 TAD CUTUN1 / PICK UP SAVED BUFFER POINTER /C204 14326 037652* 3135 DCA CURPTR / RESTORE VALUE TO CURPTR 14327 037653* 4767 JMS ESNWRL / COLLECT NEW RULER 14328 037654* 4336 JMS CUTRUL / OUTPUT TO "CUTOUT" 14329 037655* 5322 JMP CUTUNX / PASTE BUFFER OVERFLOW ERROR /A204 14330 14331 037656* 1207 TAD CUTUN1 / PICK UP SAVED BUFFER POINTER 14332 037657* 3135 DCA CURPTR / RESTORE VALUE TO CURPTR 14333 037660* 4766 JMS DLTRLR / DELETE RULER 14334 037661* 5313 JMP CUTUNC / CONTINUE 14335 14336 CUTUNR, TAD (ECSTRL-ECRMFL) / COMBINE WITH RULER MODIFIED CODE /C204 undefined ^ undefined ^ undefined ^ undefined ^ 037662* 1377 14337 037663* 7640 SZA CLA / IS THIS RULER MODIFIED FLAG CODE /C204 14338 037664* 5270 JMP CUTUNM / JUMP IF NOT RULER MODIFIED FLAG 14339 14340 037665* 1535 TAD I CURPTR / PICK UP THE CURRENT CHARACTER /C204 14341 037666* 3124 DCA RLRMOD / SAVE RULER MODIFIED FLAG 14342 037667* 5276 JMP CUTUNA / JUMP TO DELETE IT 14343 14344 037670* 1535 CUTUNM, TAD I CURPTR / PICK UP THE CURENT CHARACTER /C204 14345 037671* 4765 JMS ESJCHK / GO CHECK FOR JUSTIFIED CODES 14346 037672* 7650 SNA CLA / IS THIS A JUSTIFIED CHARACTER CODE 14347 037673* 5276 JMP CUTUNA / JUMP IF J-CODES 14348 14349 037674* 1535 TAD I CURPTR / PICK UP THE CURENT CHARACTER 14350 037675* 4316 JMS CUTCHR / OUTPUT CHARACTER TO PASTE BUFFER 14351 14352 037676* 3535 CUTUNA, DCA I CURPTR / DELETE CHARACTER 14353 14354 CUTUND, AC0001 / SET UP FOR A FORWARD MOVE /C204 undefined ^ 037677* 0000 14355 037700* 4510 CHKPTR / MOVE FORWARD AND CHECK NEXT CHARACTER 14356 037701* 7450 SNA / IS IT A NULL CHARACTER 14357 037702* 5277 JMP CUTUND / YES, GO GET NEXT CHARACTER /C204 14358 14359 037703* 7710 SPA CLA / IS IT A BUFFER TERMINATOR CODE /C204 14360 037704* 5307 JMP CUTUNB / YES, GO RESET BUFFER WRAP POINTERS 14361 037705* 1535 TAD I CURPTR / NO, PICK UP THE CURRENT CHARACTER 14362 037706* 5642 JMP I CUTNXT / GO CHECK FOR DONE 14363 14364 037707* 1535 CUTUNB, TAD I CURPTR / PICK UP THE CURRENT CHARACTER /C204 14365 037710* 3607 DCA I CUTUN1 / COPY ETX POINTER 14366 037711* 1207 TAD CUTUN1 14367 037712* 3135 DCA CURPTR / RESTORE CURPTR 14368 14369 037713* 4506 CUTUNC, ADVPTR / ADVANCE TO NEXT CHARACTER 14370 037714* 5322 JMP CUTUNX / QUIT IF EOF 14371 037715* 5642 JMP I CUTNXT / ELSE GO CHECK FOR DONE 14372 14373 CUTCHR, XX / OUTPUT CHAR TO "CUTOUT" ROUTINE undefined ^ 037716* 0000 14374 037717* 4754 JMS I CUTOUT 14375 037720* 5716 JMP I CUTCHR / JUST RETURN IF OK 14376 037721* 3535 DCA I CURPTR / DELETE LAST CHAR AND QUIT IF OVERFLOW 14377 14378 037722* 1207 CUTUNX, TAD CUTUN1 14379 037723* 3135 DCA CURPTR / RESTORE PTR 14380 14381 037724* 4514 SLNMOD / SET LINE MODIFIED FLAG 14382 037725* 1151 TAD LINMOD 14383 037726* 4776 JMS INSERT / SAVE MOD FLAG 14384 14385 037727* 4764 JMS CMPRUL 14386 037730* 5332 JMP CUTUNY / JUMP IF NO RULER CHANGE 14387 037731* 4763 JMS INSRUL / ELSE INSERT LAST RULER 14388 14389 037732* 1207 CUTUNY, TAD CUTUN1 14390 037733* 3135 DCA CURPTR / RESTORE CURPTR AGAIN 14391 037734* 4514 SLNMOD / SET LINE MODIFIED FLAG 14392 037735* 5627 JMP I CUTSUB / RETURN TO CALLER 14393 14394 CUTRUL, XX / OUTPUT RULER undefined ^ 037736* 0000 14395 TAD (ECSTRL) / PICK UP START OF RULER CODE undefined ^ undefined ^ 037737* 1377 14396 037740* 4350 JMS CUTCHX / OUTPUT IT TO PASTE BUFFER 14397 037741* 4762 JMS MAKRUL / MAKE A RULER IN THE PASTE BUFFER 14398 037742* 3000 NWRUL / RULER TO USE FOR A PATTERN 14399 037743* 7750 CUTCHX / OUTPUT ROUTINE TO USE TO MAKE A RULER 14400 TAD (ECNDRL) / PICK UP END OF RULER CODE undefined ^ undefined ^ 037744* 1377 14401 037745* 4350 JMS CUTCHX / OUTPUT IT TO PASTE BUFFER 14402 037746* 2336 ISZ CUTRUL / BUMP TO "OK" RETURN /A204 14403 037747* 5736 JMP I CUTRUL / RETURN TO CALLER 14404 14405 CUTCHX, XX / OUTPUT RULER CHARACTER TO "CUTOUT" undefined ^ 037750* 0000 14406 037751* 4754 JMS I CUTOUT 14407 037752* 5750 JMP I CUTCHX / JUST RETURN IF OK 14408 037753* 5736 JMP I CUTRUL / ELSE QUIT /C204 14409 14410 037754* 0000 CUTOUT, .-. / LOCATION TO USE FOR CUT OPERATION 14411 /D205 CUTUN1, .-. / PLACE TO SAVE THE VALUE OF CURPTR 14412 14413 X=. / INDICATE FIRST FREE LOCATION ON PAGE 14414 /--------------------- 14415 037762* 5447 PAGE 037763* 5242 037764* 5400 037765* 5735 037766* 6061 037767* 6124 037770* 0667 037771* 6151 037772* 0650 037773* 0463 037774* 0401 037775* 4241 037776* 2000 037777* 0000 14416 14417 /*************************************************************************** 14418 /**** START OF OVERLAY **** 14419 /*************************************************************************** 14420 14421 OVRNUM=OVRNUM+200 14422 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 14423 14424 RELOC 14425 RELOC OVLAY1 14426 037400* 2400 OVRNUM 14427 14428 OVGBKP= .-OVLAY1+OVRNUM 14429 037401* 5777 JMP GLDBKP / TRANSFER TO GOLD BACKUP ROUTINE 14430 14431 OVGADV= .-OVLAY1+OVRNUM 14432 037402* 5776 JMP GLDADV / TRANSFER TO GOLD ADVANCE ROUTINE 14433 14434 14435 / OVNWLN -- check for permature termination of a centered line. 14436 14437 OVNWLN= .-OVLAY1+OVRNUM 14438 037403* 5775 JMP XVNWLN 14439 14440 OVGPST= .-OVLAY1+OVRNUM / EXACT PASTE OVERLAY 14441 AC7777 / SET EXACT PASTE FLAG undefined ^ 037404* 0000 14442 / AND FALL THRU TO PASTE 14443 OVPSTE= .-OVLAY1+OVRNUM / "PASTE" OVERLAY 14444 037405* 3155 PSTE4, DCA GLDPSF / SET (OR CLEAR) EXACT PASTE FLAG 14445 037406* 3154 DCA GETPSF / CLEAR EOF FLAG 14446 037407* 1155 TAD GLDPSF 14447 037410* 7640 SZA CLA 14448 037411* 4650 JMS I TLITCJ / SAVE RULER IF EXACT PASTE 14449 037412* 4774 JMS SETPST / SET UP BUFFER PTRS 14450 037413* 1130 TAD PSTBLK 14451 037414* 1240 TAD TLITCB / NEED TO READ FIRST? 14452 037415* 7650 SNA CLA 14453 037416* 5223 JMP PSTE1 / JUMP IF NOT 14454 037417* 1373 TAD (PSTEBG) 14455 037420* 3130 DCA PSTBLK / ELSE SET IT UP 14456 037421* 1241 PSTE3, TAD TLITCC 14457 037422* 4772 JMS PSTIO / AND READ IT IN 14458 037423* 1531 PSTE1, TAD I PSTPTR 14459 037424* 7450 PSTE9, SNA 14460 037425* 5251 JMP PSTXIT / JUMP IF DONE 14461 037426* 4771 JMS GSRTST / IF NOT IN GSR THEN TEST FOR GOLD+HALT /M195 14462 037427* 5251 JMP PSTXIT / STOP IF ONE FOUND 14463 037430* 4770 JMS CHKSPC / Check for enough space on diskette 14464 037431* 4642 JMS I TLITCD 14465 037432* 5643 JMP I TLITCE / JUMP IF RULER 14466 037433* 7440 SZA / SKIP IF REDUNDANT 14467 /D164; JMS DOINSR / ELSE INSERT CHAR IN FILE /A162 14468 037434* 4505 INSCHR / ELSE INSERT CHAR IN FILE /M164 14469 037435* 4644 PSTE8, JMS I TLITCF 14470 037436* 5224 JMP PSTE9 / LOOP FOR ALL CHARS 14471 14472 037437* 0401 TLITCA, EIFIX /C168 14473 037440* 0000 TLITCB, -PSTEBG 14474 TLITCC, RXERD undefined ^ 037441* 0000 14475 037442* 1604 TLITCD, CHKRPC 14476 037443* 7465 TLITCE, PSTRUL 14477 037444* 7655 TLITCF, GETPST 14478 037445* 0012 TLITCG, 12 14479 037446* 5267 TLITCH, RLGETS 14480 037447* 7477 TLITCI, PSTRLX 14481 037450* 7516 TLITCJ, SAVCRL 14482 14483 037451* 1173 PSTXIT, TAD GSRF / IS THE GLOBAL SEARCH FLAG SET? 14484 037452* 7650 SNA CLA 14485 037453* 5256 JMP PSTEXT / -NO- DO NORMAL REPLACE EXIT. 14486 037454* 4523 OVLJMP / -YES- CALL BACK THE SEARCH AND 14487 037455* 2601 OVCONT / SELECT OVERLAY TO CONTINUE G.S.R 14488 14489 037456* 1155 PSTEXT, TAD GLDPSF / EXACT PASTE? 14490 037457* 7650 SNA CLA 14491 037460* 5637 JMP I TLITCA / RETURN IF NOT 14492 037461* 1245 TAD TLITCG 14493 037462* 4646 JMS I TLITCH / ELSE RESTORE RULER 14494 037463* 4647 JMS I TLITCI 14495 037464* 5637 JMP I TLITCA / AND THEN RETURN 14496 14497 037465* 7200 PSTRUL, CLA 14498 037466* 4767 JMS SETRUL 14499 037467* 7655 GETPST / GET NEW RULER FROM PASTE BUFFER 14500 037470* 1154 TAD GETPSF 14501 037471* 7640 SZA CLA 14502 037472* 5251 JMP PSTXIT / JUMP IF ABNORMAL TERMINATION 14503 037473* 1155 TAD GLDPSF 14504 037474* 7640 SZA CLA 14505 037475* 4277 JMS PSTRLX / INSERT RULER IF EXACT PASTE IN EFFECT 14506 037476* 5235 JMP PSTE8 / THEN GO GET MORE 14507 14508 PSTRLX, XX / PASTE RULER undefined ^ 037477* 0000 14509 037500* 4766 JMS CMPRUL 14510 037501* 5677 JMP I PSTRLX / JUST RETURN IF NOT NECESSARY 14511 037502* 1135 TAD CURPTR 14512 037503* 3315 DCA PSTRL2 14513 037504* 4765 JMS INSRUL / ELSE INSERT NEW RULER 14514 037505* 1364 TAD (207) 14515 037506* 4763 JMS INSERT / AND RULER MOD FLAG 14516 037507* 1315 TAD PSTRL2 14517 037510* 3135 DCA CURPTR / RESTORE CURPTR 14518 037511* 4514 SLNMOD 14519 037512* 4513 CURMOV 14520 037513* 7000 NOP / ADVANCE OVER RULER 14521 037514* 5677 JMP I PSTRLX / AND RETURN 14522 037515* 0000 PSTRL2, .-. 14523 14524 SAVCRL, XX / SAVE CURRENT RULER (AS RLR 10.) undefined ^ 037516* 0000 14525 037517* 4762 JMS CPYBUF 14526 037520* 7601 -RULSIZ 14527 037521* 0000 CDFMYF 14528 037522* 6334 CURUL-1 14529 CDFBUF undefined ^ 037523* 0000 14530 037524* 7400 PSTEBF 14531 TAD (DLRLRE+5) undefined ^ undefined ^ 037525* 1361 14532 037526* 3130 DCA PSTBLK 14533 TAD (RXEWT+2000) undefined ^ undefined ^ 037527* 1363 14534 037530* 4772 JMS PSTIO 14535 037531* 5716 JMP I SAVCRL 14536 14537 OVUDLT= .-OVLAY1+OVRNUM / UNDELETE ENTRY 14538 037532* 1132 TAD BASKCT / GET WASTEBASKET COUNT 14539 037533* 7450 SNA 14540 037534* 5760 JMP EIFIX / IGNORE IF NULL /C168 14541 037535* 7041 CIA 14542 037536* 3352 DCA UDLTM1 14543 037537* 1357 TAD (BASKET-1) 14544 037540* 3000 DCA UDLTX0 / INIT BASKET PTR 14545 14546 UDLTLP, CDFBUF / GET TO WASTEBASKET FIELD undefined ^ 037541* 0000 14547 037542* 1400 TAD I UDLTX0 / GET NEXT CHAR 14548 037543* 4756 JMS CHKRPC 14549 037544* 7200 CLA / CHECK FOR REDUNDANT PRINT CONTROL 14550 037545* 7440 SZA / SKIP IF REDUNDANT 14551 037546* 4755 JMS DOINSR / INSERT CHAR (unless redundant) 14552 037547* 2352 ISZ UDLTM1 14553 037550* 5341 JMP UDLTLP / LOOP FOR ALL 14554 037551* 5760 JMP EIFIX / RESET MODE AND GET NEXT /C168 14555 14556 UDLTX0=X5 undefined ^ 14557 037552* 0000 UDLTM1, 0 / TEMP 14558 14559 X=. / INDICATE FIRST FREE LOCATION ON PAGE 14560 /--------------------- 14561 037555* 7676 PAGE 037556* 1604 037557* 7377 037560* 0401 037561* 0005 037562* 6054 037563* 2000 037564* 0207 037565* 5242 037566* 5400 037567* 5600 037570* 4200 037571* 7600 037572* 5030 037573* 0000 037574* 5316 037575* 7613 037576* 7717 037577* 7713 14562 14563 / ROUTINE TO CHECK FOR GOLD HALT IF NOT IN GLOBAL SEARCH AND REPLACE /A195 14564 14565 GSRTST, XX / DO HLTTST IF NOT DOING GSR /A195 undefined ^ 037600* 0000 14566 037601* 3212 DCA GSRTS2 / SAVE THE ACCUMULATOR /A195 14567 037602* 1173 TAD GSRF / GET THE GSR IN PROGRESS FLAG /A195 14568 037603* 7640 SZA CLA / ARE WE DOING A GSR OPERATION ? /A195 14569 037604* 5207 JMP GSRTS1 / YES, TAKE NORMAL EXIT /A195 14570 037605* 4501 HLTTST / CHECK THE GOLD HALT FLAG /A195 14571 037606* 7410 SKP / ONE FOUND, TAKE ABORT EXIT /A195 14572 037607* 2200 GSRTS1, ISZ GSRTST / BUMP RETURN POINTER FOR NORMAL RETURN /A195 14573 037610* 1212 TAD GSRTS2 / RETREIVE THE CONTENTS OF THE AC /A195 14574 037611* 5600 JMP I GSRTST / RETURN TO CALLER /A195 14575 14576 037612* 0000 GSRTS2, 0 / LOCATION TO SAVE THE AC /A195 14577 14578 037613* 1135 XVNWLN, TAD CURPTR / SAVE CURRENT TEXT POINTER. 14579 037614* 3253 DCA JNWLNP / ... 14580 TAD T2 / SAVE T2 (FOR EINWLN). undefined ^ undefined ^ 037615* 1000 14581 037616* 3252 DCA NWLNT2 / ... 14582 037617* 1160 TAD RGTMAR / COMPUTE A LOOP COUNTER. 14583 037620* 1377 TAD (-COLM80) 14584 037621* 7700 SMA CLA 14585 037622* 1376 TAD (-COLLIM+COLM81) 14586 037623* 1375 TAD (-COLM81) / ... 14587 037624* 3254 DCA NWLNCT / SET MAX LOOP COUNTER. 14588 037625* 4774 JMS LODCHR / GET 1ST CHAR. 14589 037626* 5245 JMP NWLND / JMP IF NO MORE TEXT. 14590 037627* 5232 JMP NWLNB / MERGE BELOW. 14591 037630* 4517 NWLNA, ADVSPC / BUMP TO NEXT POSN. 14592 037631* 5245 JMP NWLND 14593 NWLNB, AND P177 / ISOLATE LO BITS. undefined ^ undefined ^ 037632* 0000 14594 TAD (-ECNWLN) / CHECK FOR LINE TERMINATOR. undefined ^ undefined ^ 037633* 1373 14595 037634* 7640 SZA CLA / SKIP IF LINE TERMINATOR. 14596 037635* 5243 JMP NWLNC / NOT A TERMINATOR. CHECK FOR DONE. 14597 037636* 1535 TAD I CURPTR / GET CHARACTER BACK. 14598 TAD (-ECENLN) / IS IT A "CENTER"ED MARK? undefined ^ undefined ^ 037637* 1373 14599 14600 037640* 7650 SNA CLA / SKIP IF NOT /A182 14601 037641* 4772 JMS RSTRLN / WE MUST RE-PAINT THE LINE /A182 14602 037642* 5245 JMP NWLND / EXIT BELOW. /A182 14603 14604 /D182 SZA CLA / SKIP IF YES. WE MUST RE-PAINT THE LINE. 14605 /D182 JMP NWLND / NOPE. CONTINUE AS IS. 14606 /D182 TAD CURSOR / SAVE CURSOR. 14607 /D182 DCA NWLNCT / ... 14608 /D182 DCA CURSOR / RESET TO BEGINING OF LINE. 14609 /D182 SLNMOD / SET LINE TO BE REPAINTED FROM START. 14610 /D182 TAD NWLNCT / RESTORE CURSOR. 14611 /D182 DCA CURSOR / ... 14612 /D182 JMP NWLND / EXIT BELOW. 14613 14614 037643* 2254 NWLNC, ISZ NWLNCT / 1 MORE POSN CHECKED OUT. 14615 037644* 5230 JMP NWLNA / CONTINUE TESTING. 14616 037645* 1253 NWLND, TAD JNWLNP / RESTORE CURSOR POINTER. 14617 037646* 3135 DCA CURPTR / ... 14618 037647* 1252 TAD NWLNT2 / RESTORE T2 (FOR EINWLN, ETC.) 14619 DCA T2 / ... undefined ^ undefined ^ 037650* 3000 14620 037651* 5771 JMP OVJRTN / return to caller. 14621 14622 037652* 0000 NWLNT2, 0 / TEMP HOLDING PLACE FOR "T2". 14623 037653* 0000 JNWLNP, 0 / SAVE LOCATION FOR "CURPTR". 14624 037654* 0000 NWLNCT, 0 / TEMP COUNTER. 14625 14626 14627 GETPST, XX / GET NEXT CHAR FROM PST BUFFER undefined ^ 037655* 0000 14628 037656* 2131 ISZ PSTPTR / BUMP PTR 14629 037657* 5267 JMP GETPS1 / JUMP IF OK 14630 037660* 2130 ISZ PSTBLK / ELSE BUMP BLK 14631 037661* 1130 TAD PSTBLK 14632 037662* 1370 TAD (-PSTEND) / AND CHECK FOR END 14633 037663* 7650 SNA CLA 14634 037664* 5273 JMP GETPS2 / JUMP IF END 14635 TAD (RXERD) undefined ^ undefined ^ 037665* 1373 14636 037666* 4767 JMS PSTIO / ELSE READ NEXT BLOCK 14637 14638 GETPS1, CDFBUF undefined ^ 037667* 0000 14639 037670* 1531 TAD I PSTPTR / GET NEXT CHAR 14640 037671* 7440 SZA 14641 037672* 5655 JMP I GETPST / RETURN IF NOT EOF 14642 GETPS2, AC7777 undefined ^ 037673* 0000 14643 037674* 3154 DCA GETPSF / ELSE SET EOF FLAG 14644 037675* 5655 JMP I GETPST / AND RETURN 14645 14646 DOINSR, XX / ROUTINE TO CHECK INSERTION CHAR FOR undefined ^ 037676* 0000 14647 / & 14648 DCA T2 / SAVE CHAR. undefined ^ undefined ^ 037677* 3000 14649 TAD T2 / GET IT BACK. undefined ^ undefined ^ 037700* 1000 14650 /D164; AND P177 / MASK TO 7-BIT /A162 14651 TAD (-ECNWLN) / SEE IF undefined ^ undefined ^ 037701* 1373 14652 037702* 7440 SZA / SKIP IF YES. 14653 /D164; TAD (ECNWLN-ECNWPG) / SEE IF /M162 14654 TAD (ECNWLN-ECPGRF) / SEE IF /M164 undefined ^ undefined ^ undefined ^ undefined ^ 037703* 1373 14655 037704* 7640 SZA CLA / SKIP IF OR 14656 037705* 5310 JMP DOINSA / PROCESS CHAR BELOW. 14657 037706* 4523 OVLJMP;OVNWLN / CKECK FOR TERMINATION OF CENTERED TEXT 037707* 2403 14658 14659 /D164; TAD T2 / RESTORE CHAR /A162 14660 /D164; AND P177 / MASK TO 7-BIT /A162 14661 /D164; TAD (-ECNWPG) / SEE IF /A162 14662 /D164; SZA CLA / SKIP IF /A162 14663 /D164; JMP DOINSA / PROCESS CHAR BELOW /A162 14664 /D164; DCA CURSOR / RESET CURSOR /A162 14665 /D164; TAD LINE23 / AND /A162 14666 /D164; DCA CURPTR / CURPTR /A162 14667 DOINSA, TAD T2 / GET CHARACTER TO INSERT BACK. undefined ^ undefined ^ 037710* 1000 14668 037711* 4505 INSCHR / ELSE INSERT CHAR IN FILE 14669 037712* 5676 JMP I DOINSR / RETURN TO CALLER. 14670 14671 14672 GLDBKP, AC7777 / SET UP FOR A BACKWARD MOVEMENT undefined ^ 037713* 0000 14673 037714* 4323 JMS GLDMOV / GO MOVE BACKWARD THROUGH DOCUMENT 14674 037715* 5766 JMP EIBAD / ERROR, CAN'T BACK UP PAST TOP OF FILE 14675 037716* 5765 JMP EIFIX / FIX UP SCREEN AND GET NEXT CHARACTER 14676 14677 GLDADV, AC0001 / SET UP FOR A FORWARD MOVEMENT undefined ^ 037717* 0000 14678 037720* 4323 JMS GLDMOV / GO MOVE FORWARD THROUGH DOCUMENT 14679 037721* 5766 JMP EIBAD / ERROR, CAN'T ADVANCE PAST BOTTOM 14680 037722* 5765 JMP EIFIX / FIX UP SCREEN AND GET NEXT CHARACTER 14681 14682 GLDMOV, XX / ROUTINE TO ADVANCE OR BACKUP IN FILE undefined ^ 037723* 0000 14683 037724* 3353 DCA GLDDIR / SAVE DIRECTION INDICATOR FOR MOVE 14684 AC0001 / SET UP TO KEEP THE SCREEN UPDATED undefined ^ 037725* 0000 14685 037726* 3152 DCA ECHFLG / TURN ON THE "ALWAYS ECHO" FLAG 14686 037727* 4764 JMS FXSCRL / UPDATE THE SCREEN 14687 14688 037730* 1353 TAD GLDDIR / PICK UP MOVEMENT DIRECTION INDICATOR 14689 037731* 7710 SPA CLA / SKIP IF DIRECTION IS FORWARD 14690 AC0001 / INDICATE A BACKUP CONDITION undefined ^ 037732* 0000 14691 037733* 3763 DCA MOVMOD+1 / SET OR CLEAR EDMODE - NEEDED FOR 14692 037734* 4504 MODSET / PROPER EXECUTION OF EDITOR MATH 14693 037735* 6614 MOVMOD 14694 14695 037736* 1353 TAD GLDDIR / PICK UP MOVEMENT DIRECTION INDICATOR 14696 037737* 4513 CURMOV / TRY TO MOVE AT LEAST ONE POSITION 14697 037740* 5723 JMP I GLDMOV / COULDN'T DO IT, GO REPORT THE ERROR 14698 14699 037741* 2323 ISZ GLDMOV / BUMP RETURN PAST ERROR RETURN 14700 037742* 1353 GLDMV1, TAD GLDDIR / PICK UP MOVEMENT DIRECTION INDICATOR 14701 037743* 4513 CURMOV / MOVE THE CURSOR ONE CHARACTER POSITION 14702 037744* 5723 JMP I GLDMOV / HIT END OF DOCUMENT, ALL DONE 14703 14704 037745* 1137 TAD SCRLCT / PICK UP THE SCREEN LAG COUNT 14705 037746* 7710 SPA CLA / SKIP IF SCREEN IS OK 14706 037747* 4764 JMS FXSCRL / DON'T LET SCREEN GET BEHIND 14707 037750* 4501 HLTTST / CHECK IF USER WANTS TO STOP 14708 037751* 5765 JMP EIFIX / YES, THEN WE ARE ALL DONE 14709 037752* 5342 JMP GLDMV1 / LOOP TILL STOPPED 14710 14711 037753* 0000 GLDDIR, 0 / LOCATION TO HOLD DIRECTION INDICATOR 14712 14713 X=. / INDICATE FIRST FREE LOCATION ON PAGE 14714 /--------------------- 14715 037763* 6615 PAGE 037764* 3400 037765* 0401 037766* 0400 037767* 5030 037770* 7742 037771* 5122 037772* 4457 037773* 0000 037774* 4241 037775* 7660 037776* 7540 037777* 7661 14716 14717 /*************************************************************************** 14718 /**** START OF OVERLAY **** 14719 /*************************************************************************** 14720 14721 OVRNUM=OVRNUM+200 14722 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 14723 14724 RELOC 14725 RELOC OVLAY1 14726 037400* 2600 OVRNUM 14727 14728 OVCONT= .-OVLAY1+OVRNUM / THE USER TYPED "GOLD:SEARCH & SELECT" 14729 14730 037401* 4511 OVCON1, TSTSLT / CHECK TO SEE IF WE ARE ALREADY IN SELECT 14731 037402* 5221 JMP OVCON2 / NOT IN SELECT, GO DO THE SEARCH 14732 14733 037403* 7200 CLA / IF IN 'SELECTED' POSITION AND 14734 037404* 1173 TAD GSRF / THE USER REQUESTS 'GLOBAL SEARCH AND 14735 037405* 7650 SNA CLA / REPLACE', LET OPERATION CONTINUE 14736 037406* 5211 JMP EISRCL / OTHERWISE, DO UNSELECT AND SEARCH 14737 14738 037407* 4523 OVLJMP / CALL IN THE 'REPLACE' OVERLAY 14739 037410* 2204 OVREPL / TO CONTINUE G.S.R. FUNCTION 14740 14741 / FIX TO ALLOW CONT SEARCH AND SEL TO DELETE SEL MARK THEN SEARCH NEXT ARG 14742 14743 037411* 3133 EISRCL, DCA EDMODE / CLEAR CURRENT EDIT MODE 14744 037412* 5215 JMP EISRCN / GO LOAD CHAR 14745 14746 037413* 4506 EISRCM, ADVPTR / ADVANCE POINTER 14747 037414* 5777 JMP SLXMOD / ETX 14748 14749 037415* 4776 EISRCN, JMS LODCHR / GET THE NEXT CHARACTER 14750 037416* 5777 JMP SLXMOD / ETX 14751 14752 037417* 4775 JMS ESLCTD / IF SELECT MARK DELETE IT 14753 037420* 5213 JMP EISRCM / NOT A SELECT MARK GET NEXT CHARACTER 14754 /\ JMP OVCON2 / GO DO SEARCH - FALL THROUGH 14755 14756 037421* 3153 OVCON2, DCA SRCDIR / SET FOR SEARCHING FORWARD 14757 AC0001 undefined ^ 037422* 0000 14758 037423* 3152 DCA ECHFLG / SET FLAG TO LET SCREEN SCROLL WITH US 14759 037424* 2774 ISZ NOMOVE / KEEP CURSOR FROM PRE-INCREMENTING 14760 AC0001 / AND SET S/ S FLAG undefined ^ 037425* 0000 14761 /\ JMP EISRCG / FALL THROUGH INTO CONTINUE SEARCH 14762 14763 14764 OVSRCH= .-OVLAY1+OVRNUM / USER TYPED "GOLD:CONTINUE SEARCH" 14765 / ENTER HERE FROM REGULAR SEARCH 14766 14767 037426* 3340 EISRCG, DCA SRCSLT / RESET S/ S FLAG 14768 037427* 0000 CDFMYF / GO-TO-PAGE USES SRCDIR AS A FLAG WORD /A206 14769 / MAKE SURE DIRECTION VALUE IS VALID /A206 14770 AC0002 / SET UP AC WITH VALUE OF TWO /A206 undefined ^ 037430* 0000 14771 037431* 1153 TAD SRCDIR / COMBINE WITH VALUE IN DIRECTION FLAG /A206 14772 037432* 7640 SZA CLA / SKIP IF BACKWARD DIRECTION SET /A206 14773 037433* 3153 DCA SRCDIR / SET FORWARD DIRECTION /A206 14774 14775 037434* 1773 TAD I (EIGES4+1) / PICK UP FIRST CHARACTER IN SEARCH BUFFER 14776 037435* 7650 SNA CLA / CHECK FOR ANYTHING TO SEARCH FOR 14777 037436* 5772 JMP EIFIX / DON'T BOTHER, IF NULL /C168 14778 037437* 5242 JMP EISRCB / SKIP OVER BUFFER POINTER RESTORATION 14779 14780 037440* 1341 EISRCA, TAD EIFND4 / PICK UP SAVED BUFFER POSITION 14781 037441* 3135 DCA CURPTR / RESTORE CURPTR 14782 14783 037442* 4501 EISRCB, HLTTST / GO CHECK IF USER PRESSED THE HALT KEY 14784 037443* 5771 JMP EISRCJ / QUIT ON HALT 14785 14786 037444* 1774 TAD NOMOVE / DO WE MOVE CURSOR OR NOT? 14787 037445* 7640 SZA CLA 14788 037446* 5253 JMP EISRCQ / NO, WE DON'T 14789 14790 AC0001 / SET UP FOR A FORWARD MOVEMENT undefined ^ 037447* 0000 14791 037450* 1153 TAD SRCDIR / COMBINE WITH REAL DIRECTION 14792 037451* 4513 CURMOV / MOVE TO NEXT CHARACTER 14793 037452* 5770 JMP EISRCK / STX/ETX, QUIT AT END OF BUFFER 14794 14795 037453* 0000 EISRCQ, CDFMYF / RESET BACK TO THIS FIELD 14796 037454* 3774 DCA NOMOVE / CLEAR THE MOVEMENT FLAG 14797 14798 037455* 1135 TAD CURPTR / PICK UP THE CURRENT BUFFER POSITION 14799 037456* 3341 DCA EIFND4 / SAVE CURPTR 14800 14801 037457* 1373 TAD (EIGES4+1) / PICK UP POINTER TO SEARCH STRING 14802 037460* 3342 DCA EIFND6 / SET UP POINTER REGISTER 14803 14804 CDFBUF / SET TO BUFFER FIELD undefined ^ 037461* 0000 14805 037462* 1535 TAD I CURPTR / GET CURRENT CHARACTER 14806 037463* 5266 JMP EISRCD / SKIP OVER BUFFER MOVEMENT ROUTINE 14807 14808 037464* 4506 EISRCC, ADVPTR / MOVE POINTER ONE BUFFER POSITION /C209 14809 /D209 ADVSPC / MOVE POINTER ONE SCREEN POSITION 14810 037465* 5240 JMP EISRCA / ETX, QUIT AT END OF BUFFER 14811 14812 037466* 4767 EISRCD, JMS ESJCHK / CHECK FOR LINE OR RULER MODIFIED FLAG 14813 037467* 7450 SNA / AC = 0 OR AC = VALID CHARACTER - JCHKOF 14814 037470* 5264 JMP EISRCC / NO JUST CODES 14815 037471* 1366 TAD (JCHKOF) / RESTORE TO ORIGINAL CHARACTER 14816 14817 037472* 0000 CDFMYF / RESET TO THIS FIELD 14818 TAD (-ECSTOV) / START OF DEAD-KEY SEQUENCE? undefined ^ undefined ^ 037473* 1366 14819 037474* 7440 SZA / SKIP IF YES. 14820 037475* 5300 JMP EISRCX / 14821 037476* 1742 TAD I EIFND6 / GET CHARACTER FROM STRING 14822 037477* 5765 JMP EISRDK / GO HANDLE DEAD KEY SEQUENCE 14823 14824 EISRCX, TAD (ECSTOV) / NO, RESTORE TO ORIG. CHAR undefined ^ undefined ^ 037500* 1366 14825 037501* 7421 MQL / PUT CHARACTER IN THE MQ 14826 037502* 1742 TAD I EIFND6 / GET CHARACTER FROM STRING /A198 14827 TAD (-ECNWLN) / COMPARE WITH NEW LINE CHARACTER /A198 undefined ^ undefined ^ 037503* 1366 14828 037504* 7640 SZA CLA / IS THIS A CARRIAGE RETURN ? /A198 14829 037505* 5312 JMP EISNNL / NO, THIS IS NOT A NEW LINE /A198 14830 14831 037506* 7501 MQA / GET BACK THE BUFFER CHARACTER /A198 14832 TAD (-ECNWLN) / COMPARE WITH NEW LINE CHARACTER /A198 undefined ^ undefined ^ 037507* 1366 14833 037510* 7640 SZA CLA / IS BUFFER CHARACTER A NEW LINE ? /A198 14834 037511* 5240 JMP EISRCA / NO, NO MATCH, GO RESTART THE SEARCH /A198 14835 14836 037512* 1742 EISNNL, TAD I EIFND6 / PICK UP CHARACTER FROM SEARCH STRING 14837 037513* 7521 SWP / SWAP PLACES WITH BUFFER CHARACTER 14838 037514* 4764 JMS USCMPR / COMPARE WITH STRING BYTE 14839 037515* 5240 JMP EISRCA / JUMP IF NO MATCH 14840 14841 037516* 2342 EISRCY, ISZ EIFND6 / THEY MATCH, BUMP THE STRING POINTER 14842 037517* 1742 TAD I EIFND6 / GET THE NEXT CHARACTER 14843 037520* 7640 SZA CLA / CHECK FOR NULL CHARACTER 14844 037521* 5264 JMP EISRCC / NOT NULL, LOOP TILL END OF STRING 14845 14846 037522* 1340 TAD SRCSLT / DONE, GET THE SEARCH AND SELECT FLAG 14847 037523* 7650 SNA CLA / IS IT SET ? 14848 037524* 5335 JMP EISRCE / NO, SKIP AROUND 14849 14850 037525* 4506 ADVPTR / IF SET, PASS FINAL CHARACTER 14851 037526* 7000 NOP / ETX RETRUN, SHOULD NOT HAPPEN 14852 037527* 7200 CLA / THROW AWAY ANY CHARACTER CODE RETURNED 14853 14854 TAD (ECTMRK) / PICK UP POSITION MARK undefined ^ undefined ^ 037530* 1366 14855 037531* 4763 JMS INSERT / MARK OUR PLACE FOR SELECT 14856 14857 037532* 1341 TAD EIFND4 / PICK UP SAVED BUFFER POSITION 14858 037533* 3135 DCA CURPTR / RESTORE TO START OF STRING 14859 037534* 5762 JMP DOSLCT / JUMP TO SELECT STRING 14860 14861 037535* 1341 EISRCE, TAD EIFND4 14862 037536* 3135 DCA CURPTR / RESTORE CURPTR 14863 037537* 5772 EISRCF, JMP EIFIX /C168 14864 14865 14866 037540* 0000 SRCSLT, 0 / SEARCH AND SELECT FLAG 14867 037541* 0000 EIFND4, 0 14868 037542* 0000 EIFND6, 0 14869 14870 X=. / INDICATE FIRST FREE LOCATION ON PAGE 14871 /--------------------- 14872 037562* 6635 PAGE 037563* 2000 037564* 4252 037565* 7616 037566* 0000 037567* 5735 037570* 7600 037571* 7604 037572* 0401 037573* 6252 037574* 6536 037575* 1135 037576* 4241 037577* 0622 14873 14874 037600* 0000 EISRCK, CDFMYF 14875 037601* 7200 CLA 14876 037602* 3777 DCA GSRPRV / CLEAR PREVIOUS GLOBAL SEARCH FLAG 14877 037603* 3776 DCA NOMOVE 14878 /\ JMP EISRCJ / FALL THROUGH 14879 14880 / HERE AFTER HALT TEST - FIELD = EDITOR 14881 037604* 1215 EISRCJ, TAD XLTINI / RESTORE GSKILN AFTER FINISHING 14882 037605* 3775 DCA GSKILN / A G.S.R. OPERATION 14883 14884 037606* 4774 JMS BUZZER / DO NOT CLEAR UDK STACK(BEEPER DOES) 14885 14886 037607* 1153 TAD SRCDIR / PICK UP THE SEARCH DIRECTION 14887 037610* 7650 SNA CLA / SKIP IF NOT GOING FORWARD 14888 AC7776 / REVERSE DIRECTION undefined ^ 037611* 0000 14889 037612* 3153 DCA SRCDIR / FOR NEXT TIME 14890 037613* 3173 DCA GSRF / CLEAR GLOBAL SEARCH FLAG 14891 037614* 5773 JMP EIFIX / GO BACK FOR NEXT EDITOR COMMAND /C168 14892 14893 XLTINI, CIFSYS / INST TO PATCH UP EDITOR undefined ^ 037615* 0000 14894 14895 / DEAD KEY SEQUENCE WAS FOUND IN TEXT BUFFER. CHECK FOR TECH CHARACTER 14896 / AND REQUIRED SPACE. IF NOT, THEN RESTART THE SEARCH 14897 14898 037616* 7510 EISRDK, SPA / CHECK FOR A SPECIAL CHARACTER ? 14899 037617* 7040 CMA / YES, INVERT THE CHARACTER FOR CHECK 14900 037620* 3305 DCA EISRT1 / SAVE THE CURRENT BUFFER CHARACTER 14901 14902 037621* 4506 ADVPTR / MOVE TO THE NEXT CHARACTER OF SEQUENCE 14903 037622* 5772 JMP EISRCA / ETX, GO RESTART THE SEARCH 14904 AND P177 / Strip off attributes /A228 undefined ^ undefined ^ 037623* 0000 14905 TAD (-ECSPC) / SUBTRACT OFF THE VALUE OF A SPACE undefined ^ undefined ^ 037624* 1371 14906 037625* 7640 SZA CLA / WAS THIS CHARACTER A SPACE ? 14907 037626* 5772 JMP EISRCA / NO, MUST BE A NORMAL DEAD KEY, RESTART 14908 14909 037627* 4506 ADVPTR / MOVE TO THE NEXT CHARACTER OF SEQUENCE 14910 037630* 5772 JMP EISRCA / ETX, GO RESTART THE SEARCH 14911 037631* 3306 DCA EISRT2 / SAVE THE CHARACTER JUST OBTAINED 14912 037632* 1306 TAD EISRT2 / GET THE CHARACTER BACK AGAIN 14913 TAD (-ECSPC) / SUBTRACT OFF THE VALUE OF A SPACE undefined ^ undefined ^ 037633* 1371 14914 037634* 7640 SZA CLA / WAS THIS CHARACTER A SPACE ? 14915 037635* 5245 JMP EISRTC / NO, IT MUST BE A TECHNICAL CHARACTER 14916 14917 037636* 1305 TAD EISRT1 / GET THE SAVED BUFFER CHARACTER 14918 037637* 7450 SNA / CHECK FOR REQUIRED SPACE CODE 14919 037640* 5276 JMP EISROK / YES, IT'S A MATCH 14920 TAD (-ECSPC) / CHECK FOR A NORMAL SPACE undefined ^ undefined ^ 037641* 1371 14921 037642* 7640 SZA CLA / CHECK FOR A MATCH 14922 037643* 5772 JMP EISRCA / NO MATCH, GO RESTART THE SEARCH 14923 037644* 5276 JMP EISROK / IT'S A MATCH, GO GET END OF DEAD KEY 14924 14925 037645* 1306 EISRTC, TAD EISRT2 / GET THE CHARACTER BACK AGAIN 14926 037646* 0370 AND (174) / DROP OUT LOW ORDER BITS /M228 14927 037647* 1367 TAD (-60) / SUBTRACT OFF CHARACTER SET VALUE 14928 037650* 7640 SZA CLA / IS THIS A TECH CHARACTER ? 14929 037651* 5772 JMP EISRCA / NO, GO RESTART THE SEARCH 14930 14931 037652* 1306 TAD EISRT2 / GET THE CHARACTER BACK AGAIN 14932 037653* 0366 AND (3) / ISOLATE THE LOW ORDER BITS 14933 037654* 3307 DCA EISRT3 / SAVE FOR COMPARISON 14934 037655* 1305 TAD EISRT1 / GET THE BUFFER CHARACTER 14935 R3L / POSITION CHARACTER SET BITS undefined ^ 037656* 0000 14936 037657* 0366 AND (3) / ISOLATE THE LOW ORDER BITS 14937 037660* 7041 CIA / MAKE VALUE NEGATIVE 14938 037661* 1307 TAD EISRT3 / COMBINE WITH SAVED BITS 14939 037662* 7640 SZA CLA / IS THERE A MATCH ? 14940 037663* 5772 JMP EISRCA / NO, GO RESTART THE SEARCH 14941 14942 037664* 1305 TAD EISRT1 / YES, GET THE SAVED BUFFER CHARACTER 14943 AND P177 / ISOLATE THE LOW ORDER BITS undefined ^ undefined ^ 037665* 0000 14944 037666* 3307 DCA EISRT3 / SAVE FOR COMPARISON 14945 037667* 4506 ADVPTR / MOVE TO THE NEXT CHARACTER OF SEQUENCE 14946 037670* 5772 JMP EISRCA / ETX, GO RESTART THE SEARCH 14947 AND P177 / Strip off attributes /A228 undefined ^ undefined ^ 037671* 0000 14948 037672* 7041 CIA / NEGATE THE CHARACTER 14949 037673* 1307 TAD EISRT3 / COMBINE WITH SAVED ASCII CHARACTER 14950 037674* 7640 SZA CLA / CHECK FOR A MATCH 14951 037675* 5772 JMP EISRCA / NO MATCH, GO RESTART THE SEARCH 14952 14953 037676* 4506 EISROK, ADVPTR / MOVE TO THE NEXT CHARACTER OF SEQUENCE 14954 037677* 5772 JMP EISRCA / ETX, GO RESTART THE SEARCH 14955 TAD (-ECNDOV) / SUBTRACT OFF VALUE OF END DEAD CHARACTER undefined ^ undefined ^ 037700* 1371 14956 037701* 7640 SZA CLA / IS THIS THE END OF THE DEAD KEY ? 14957 037702* 5276 JMP EISROK / NO, GO CHECK AGAIN 14958 037703* 0000 CDFMYF / RESET BACK TO THIS FIELD FOR NEXT CHECK 14959 037704* 5765 JMP EISRCY / DONE, GO CHECK NEXT CHARACTER 14960 14961 037705* 0000 EISRT1, .-. / TEMPORARY REGISTER ONE - BUFFER CHARACTER 14962 037706* 0000 EISRT2, .-. / TEMPORARY REGISTER TWO - TEXT CHARACTER 14963 037707* 0000 EISRT3, .-. / TEMPORARY REGISTER THREE - MATCH VALUE 14964 14965 X=. / INDICATE FIRST FREE LOCATION ON PAGE 14966 14967 /--------------------- 14968 037765* 7516 PAGE 037766* 0003 037767* 7720 037770* 0174 037771* 0000 037772* 7440 037773* 0401 037774* 0331 037775* 0411 037776* 6536 037777* 6534 14969 14970 /*************************************************************************** 14971 /**** START OF OVERLAY **** 14972 /*************************************************************************** 14973 14974 OVRNUM=OVRNUM+200 14975 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 14976 14977 RELOC 14978 14979 RELOC OVLAY1 14980 037400* 3000 OVRNUM 14981 14982 14983 IFDEF LFTRGT < 14984 OVRARO= .-OVLAY1+OVRNUM 14985 JMP XVRARO / RIGHT ARROW 14986 14987 OVLARO= .-OVLAY1+OVRNUM 14988 JMP XVLARO / LEFT ARROW 14989 > 14990 14991 OVUPAR= .-OVLAY1+OVRNUM 14992 037401* 5777 JMP XVUPAR / UP ARROW 14993 14994 OVDNAR= .-OVLAY1+OVRNUM 14995 037402* 5776 JMP XVDNAR / DOWN ARROW 14996 14997 OVGRAR= .-OVLAY1+OVRNUM 14998 037403* 5775 JMP XVGRAR / GOLD RIGHT ARROW 14999 15000 OVGLAR= .-OVLAY1+OVRNUM 15001 037404* 5774 JMP XVGLAR / GOLD LEFT ARROW 15002 15003 OVSUPS= .-OVLAY1+OVRNUM 15004 037405* 5267 JMP XVSUPS 15005 15006 OVHYP2= .-OVLAY1+OVRNUM 15007 037406* 5773 JMP XVHYP2 15008 15009 15010 15011 / LCMAP defines the end of the alphabet that is to be considered for 15012 / UPPER/ lower casing commands. 133 includes "A"-"Z", and 136 15013 / includes "A"-"Z" and the national standard characters "[","\" and "]" 15014 15015 IFDEF SCANDI / Scandinavian: include extra characters 15016 IFNDEF SCANDI / American: use only ASCII set 15017 OVCASE= .-OVLAY1+OVRNUM / SET UPPER-LOWER CASE 15018 15019 037407* 4772 JMS SCRNMD / SHOW SCREEN (TO BE) MODIFIED 15020 037410* 4771 JMS GETUNT 15021 CASNXT, XX undefined ^ 037411* 0000 15022 037412* 7450 SNA 15023 037413* 5770 JMP EINEXT 15024 037414* 4767 JMS BHOOK / Call Blaster /A230 15025 MNCUCS / Case any valid char /A230 undefined ^ 037415* 0000 15026 037416* 5766 JMP GETUNY / Finished with invalid or dead /A230 15027 037417* 5611 JMP I CASNXT / Exit /A230 15028 15029 /d230 TAD (-ECSTOV) / Is it a dead key sequence /A207 15030 /d230 SNA / No /A207 15031 /d230 JMP GETUNY / Yes, curmov over it /A207 15032 /d230 TAD (ECSTOV) / Restore character to original value /A207 15033 /d230 JMS CHKALP 15034 /d230 JMP I CASNXT 15035 /d230 AND (137) / SET UPPER CASE 15036 /d230 TAD (-133) / CHECK FOR PROPER RANGE 15037 /d230 SMA 15038 /d230 JMP CASUN1 15039 /d230 TAD (133-101) 15040 /d230 SPA 15041 /d230 JMP CASUN1 15042 /d230 CLA MQA 15043 /d230 AND (7737) 15044 /d230 TAD CASBIT 15045 /d230 MQL 15046 /d230CASUN1, CLA MQA 15047 /d230 JMP I CASNXT 15048 15049 15050 OVBOLD= .-OVLAY1+OVRNUM 15051 15052 037420* 4772 XVBOLD, JMS SCRNMD / SET BOLD - SHOW SCREEN (TO BE) MODIFIED 15053 037421* 4771 JMS GETUNT 15054 BLDNXT, XX undefined ^ 037422* 0000 15055 037423* 7450 SNA 15056 037424* 5770 JMP EINEXT 15057 037425* 4765 JMS CHKALP 15058 037426* 5232 JMP BLDUN2 15059 037427* 0364 BLDUN3, AND (7577) / CLEAR THE BIT 15060 037430* 1154 TAD BLDBIT / SO WE CAN (SET) IT 15061 037431* 5622 BLDUN1, JMP I BLDNXT 15062 15063 037432* 0363 BLDUN2, AND (2177) 15064 037433* 1362 TAD (-40) 15065 037434* 7440 SZA 15066 TAD (40-ECTAB) / ALLOW TABS TO BE BOLDED undefined ^ undefined ^ 037435* 1361 15067 037436* 7640 SZA CLA 15068 037437* 5231 JMP BLDUN1 15069 037440* 7701 CLA MQA 15070 037441* 5227 JMP BLDUN3 15071 15072 15073 OVUNDL= .-OVLAY1+OVRNUM 15074 15075 037442* 4772 XVUNDL, JMS SCRNMD / UNDERLINING - SHOW SCREEN (TO BE) MODIFIED 15076 037443* 4771 JMS GETUNT 15077 UDLNXT, XX undefined ^ 037444* 0000 15078 037445* 7450 SNA 15079 037446* 5770 JMP EINEXT 15080 037447* 4765 JMS CHKALP 15081 037450* 5260 JMP UDLUN2 15082 037451* 7006 RTL 15083 037452* 7710 SPA CLA 15084 037453* 5257 JMP UDLUN1 / IGNORE IF SUPERSCRPTED 15085 037454* 7701 UDLUN3, CLA MQA / RESTORE CHAR 15086 037455* 0360 AND (7377) / CLEAR THE BIT 15087 037456* 1154 TAD UDLBIT / SO WE CAN (SET) IT 15088 037457* 5644 UDLUN1, JMP I UDLNXT 15089 15090 037460* 0357 UDLUN2, AND (3177) 15091 037461* 1362 TAD (-40) 15092 037462* 7440 SZA 15093 TAD (40-ECTAB) undefined ^ undefined ^ 037463* 1361 15094 037464* 7640 SZA CLA 15095 037465* 5257 JMP UDLUN1 15096 037466* 5254 JMP UDLUN3 15097 15098 037467* 4511 XVSUPS, TSTSLT / SUPER-SUBSCRPT 15099 037470* 7610 SKP CLA 15100 037471* 1356 TAD (SLCTMD) 15101 037472* 3134 DCA GRAMUN 15102 037473* 4755 JMS SETUNT 15103 037474* 4771 JMS GETUNT 15104 SUPNXT, XX undefined ^ 037475* 0000 15105 037476* 7450 SNA 15106 037477* 5754 JMP EIFIX /C168 15107 037500* 4765 JMS CHKALP 15108 037501* 5675 JMP I SUPNXT 15109 037502* 0353 AND (2377) 15110 037503* 7521 SWP 15111 037504* 7006 RTL 15112 037505* 7004 RAL 15113 037506* 7420 SNL 15114 037507* 7200 CLA / CLEAR IF NOT SUP-SUB 15115 037510* 7710 SPA CLA 15116 037511* 7140 CMA CLL / -1 IF SUB 15117 037512* 7430 SZL 15118 037513* 7001 IAC / +1 IF SUP 15119 037514* 1154 TAD CASBIT / ADJUST FOR MODE IN EFFECT 15120 037515* 1352 TAD (TAD EISUP1) / THIS INSURES A CURRENT PAGE REFERENCE 15121 / AVOIDING ANY DATA FIELD PROBLEMS 15122 037516* 3317 DCA .+1 15123 037517* 0000 .-. 15124 037520* 7501 MQA 15125 037521* 5675 JMP I SUPNXT 15126 15127 037522* 1400 1400 / SUB OF SUB 15128 037523* 1400 1400 / SUB OF NORMAL 15129 037524* 0000 0000 / SUB OF SUP (OR SUP OF SUB) 15130 037525* 1000 EISUP1, 1000 / SUP OF NORMAL 15131 037526* 1000 1000 / SUP OF SUP 15132 15133 / 15134 / We are here because the user tried to Hyphenate a char which /A231 15135 / was not alpha , so check for 8 bit /A231 15136 / 15137 15138 XVHYP3, TAD (-ECNDOV) / Check if we are on a dead /A231 undefined ^ undefined ^ 037527* 1351 15139 037530* 7640 SZA CLA / Yes , go check it out /A231 15140 037531* 5750 JMP XVHYP4 / No , go on as normal /A231 15141 037532* 4767 JMS BHOOK / Call the Blaster again /A231 15142 XVMNPH / Check for Mutli Nat for Hyphen /A231 undefined ^ 037533* 0000 15143 037534* 5750 JMP XVHYP4 / And exit /A231 15144 15145 15146 15147 15148 X=. / INDICATE FIRST FREE LOCATION ON PAGE 15149 /--------------------- 15150 037550* 7607 PAGE 037551* 0000 037552* 1325 037553* 2377 037554* 0401 037555* 0650 037556* 0010 037557* 3177 037560* 7377 037561* 0040 037562* 7740 037563* 2177 037564* 7577 037565* 3553 037566* 0511 037567* 5324 037570* 0406 037571* 0463 037572* 2267 037573* 7600 037574* 7613 037575* 7614 037576* 7626 037577* 7625 15151 15152 037600* 4507 XVHYP2, BKPPTR 15153 037601* 5612 JMP I TLITDA 15154 037602* 4777 JMS CHKALP 15155 037603* 5776 JMP XVHYP3 / Go check for 8 bit /M231 15156 AC2000 undefined ^ 037604* 0000 15157 037605* 7501 MQA / SET BREAK BIT 15158 037606* 3535 DCA I CURPTR / STORE UPDATED CHAR 15159 037607* 4506 XVHYP4, ADVPTR 15160 037610* 7000 NOP / RESTORE CURSOR 15161 037611* 5775 JMP EIFIX /C168 15162 15163 037612* 0400 TLITDA, EIBAD / **TEMP FOR OS/ 8 LIT POOL LIMIT BYPASS 15164 15165 15166 /*********************************************************************** 15167 /**** LEFT AND RIGHT ARROW ROUTINES **** 15168 /*********************************************************************** 15169 15170 IFDEF LFTRGT < / LEFT AND RIGHT CURSOR 15171 XVLARO, IAC / MOVE MODE 15172 XVRARO, JMS ARMSET / SET MOVE MODE 15173 JMS ARCURM / GO MOVE CURSOR 15174 JMP EIBAD / (STX/ETX OR SCROLL) 15175 JMP EINEXT / DIDN'T SCROLL, SUPER! 15176 > / END IFDEF LFTRGT 15177 15178 15179 /*********************************************************************** 15180 /**** GOLD LEFT AND RIGHT ARROW ROUTINES **** 15181 /*********************************************************************** 15182 15183 037613* 7001 XVGLAR, IAC / MOVE MODE 15184 037614* 4353 XVGRAR, JMS ARMSET / SET MOVE MODE 15185 037615* 3365 DCA ARCTMP / SAVE CURSOR DIRECTION 15186 037616* 1365 TAD ARCTMP 15187 037617* 4316 JMS ARCURM / MOVE CURSOR 15188 037620* 5774 JMP EIBAD / (CAN'T, GO BUZZ) 15189 15190 037621* 1365 GLDARR, TAD ARCTMP 15191 037622* 4316 JMS ARCURM / KEEP MOVING TILL WE GET 15192 037623* 5773 JMP EINEXT / TO THE END OF THE LINE 15193 037624* 5221 JMP GLDARR 15194 15195 15196 /*********************************************************************** 15197 /**** UP AND DOWN ARROW ROUTINES **** 15198 /*********************************************************************** 15199 15200 037625* 7001 XVUPAR, IAC / MOVE MODE 15201 037626* 4353 XVDNAR, JMS ARMSET / SET MOVE MODE 15202 037627* 4232 JMS UPDNAR / GO MOVE THE CURSOR 15203 037630* 5773 JMP EINEXT / OKAY 15204 037631* 5774 JMP EIBAD / (CAN'T) 15205 15206 15207 /*********************************************************************** 15208 / COMMON CODE FOR UP/DOWN ARROW 15209 / ENTER: AC = CURSOR DIRECTION (+1=ADV, -1=BKP) 15210 / EXIT: 1ST RETURN IF WE ARE SITTING ON THE FIRST OR 15211 / LAST LINE OF TEXT (CURSOR UNCHANGED) 15212 / SKIP RETURN IF WE ACTUALLY SCROLL A LINE 15213 / (CURSOR MOVED TO PROPER POSITION W/IN LINE) 15214 /*********************************************************************** 15215 15216 UPDNAR, XX undefined ^ 037632* 0000 15217 037633* 3365 DCA ARCTMP / SAVE DIRECTION 15218 037634* 1772 TAD REMCUR / DO WE HAVE A REMEMBERED POSITION? 15219 037635* 7700 SMA CLA 15220 037636* 5241 JMP UPDN0 / YES, ALL SET 15221 037637* 1136 TAD CURSOR / NO, SAVE WHERE WE ARE NOW 15222 037640* 3772 DCA REMCUR 15223 15224 037641* 1365 UPDN0, TAD ARCTMP / GOING FORWARD OR BACK? 15225 037642* 7710 SPA CLA 15226 037643* 5251 JMP UPDNUP / (BACK) 15227 15228 / GOING FORWARD (DOWN ARROW) 15229 15230 AC0001 undefined ^ 037644* 0000 15231 037645* 4337 JMS ARMVSC / FORWARD TILL WE SCROLL 15232 037646* 2232 ISZ UPDNAR / ETX, TAKE SKIP RETURN 15233 037647* 4771 JMS FXSCRL / FIX FOR DOWN ARROW AND MATH /A194 15234 037650* 5270 JMP UPDNXT / THEN GO POSITION CURSOR 15235 15236 / GOING BACKWARD (UP ARROW) 15237 15238 037651* 4770 UPDNUP, JMS SAVLMD / SAVE LINE MODE IF NECESSARY 15239 AC7777 / BACK UP TILL WE SCROLL undefined ^ 037652* 0000 15240 037653* 4337 JMS ARMVSC 15241 037654* 7410 SKP / (STX) 15242 037655* 5262 JMP UPDNU0 15243 037656* 2232 ISZ UPDNAR / STX, TAKE SKIP RETURN 15244 037657* 4513 UPDNU1, CURMOV / FIX CURSOR AT STX 15245 037660* 7000 NOP 15246 037661* 5270 JMP UPDNXT / GO POSITION CURSOR 15247 UPDNU0, AC7777 undefined ^ 037662* 0000 15248 037663* 4337 JMS ARMVSC / BACK UP TILL WE SCROLL AGAIN 15249 037664* 5257 JMP UPDNU1 / (STX, GO FIX -- NO ERROR THIS TIME) 15250 AC0001 / AND FORWARD undefined ^ 037665* 0000 15251 037666* 4337 JMS ARMVSC 15252 037667* 7000 NOP 15253 15254 / COMMON EXIT PROCESSING FOR UP & DOWN POSITION THE CURSOR ON THE LINE 15255 15256 037670* 7200 UPDNXT, CLA 15257 CDFEDT undefined ^ 037671* 0000 15258 037672* 1772 TAD REMCUR / WHERE ARE WE NOW? 15259 037673* 7041 CIA 15260 037674* 1136 TAD CURSOR 15261 037675* 7700 SMA CLA / (NOT THERE YET) 15262 037676* 5632 JMP I UPDNAR / ALL DONE, RETURN 15263 CDFBUF / SET FIELD TO EDIT BUFFER /A202 undefined ^ 037677* 0000 15264 037700* 1535 TAD I CURPTR / GET CURRENT CHARACTER /A202 15265 037701* 0000 CDFMYF / RESET DATA FIELD /A202 15266 AND P177 / MASK OUT CHARACER /A202 undefined ^ undefined ^ 037702* 0000 15267 037703* 4500 ZZCASE / TEST FOR LINE ENDER CONDITIONS /A202 15268 037704* 7710 UPDNX9-1 / TABLE /A202 15269 AC0001 / NO MATCH ADVANCE CURSOR undefined ^ 037705* 0000 15270 037706* 4316 JMS ARCURM / MOVE WITHOUT LEAVING LINE /C211 15271 037707* 5632 UPDNX1, JMP I UPDNAR / HIT STX OR ETX 15272 037710* 5270 JMP UPDNXT / HAVE WE REACHED THE PROPER COLUMN COUNT 15273 15274 UPDNX9, ECNWLN; UPDNX1 / LINE ENDER CHARACTERS /A202 undefined ^ 037711* 0000 037712* 7707 15275 ECNWPG; UPDNX1 / /A202 undefined ^ 037713* 0000 037714* 7707 15276 037715* 0000 0000 / /A202 15277 15278 15279 / ARROW KEYPAD CURSOR MOVE (MOVE W/O LEAVING LINE) 15280 / ENTER: AC = CURSOR DIRECTION (+1=ADV, -1=BKP) 15281 / EXIT: AC = 0 15282 / 1ST RETURN IF WE CAN'T MOVE ON THE LINE 15283 15284 ARCURM, XX undefined ^ 037716* 0000 15285 037717* 3365 DCA ARCTMP / SAVE DIRECTION 15286 037720* 3141 DCA SCRLFL / ENSURE SCROLL FLAG 0 15287 037721* 1365 TAD ARCTMP 15288 037722* 4513 CURMOV / MOVE THE CURSOR 15289 037723* 5716 JMP I ARCURM / (STX OR ETX) 15290 037724* 7200 CLA 15291 037725* 1141 TAD SCRLFL / DID WE SCROLL? 15292 037726* 7640 SZA CLA 15293 037727* 5332 JMP ARCRM0 / (YES, THAT'S A NO-NO) 15294 037730* 2316 ISZ ARCURM / NO, GREAT! TAKE SKIP 15295 037731* 5716 JMP I ARCURM 15296 15297 037732* 1365 ARCRM0, TAD ARCTMP / PROBLEM -- WE SCROLLED 15298 037733* 7041 CIA 15299 037734* 4337 JMS ARMVSC / UNDO THE SCROLL 15300 037735* 7000 NOP 15301 037736* 5716 JMP I ARCURM / TAKE FIRST RETURN 15302 15303 15304 15305 / ROUTINE TO MOVE CURSOR TILL WE SCROLL 15306 / ENTER: AC = CURSOR DIRECTION (+1=ADV, -1=BKP) 15307 / EXIT: AC = 0 15308 / 1ST RETURN - WE HIT STX OR ETX (IF STX, WE SCROLLED) 15309 / 2ND RETURN - OKAY 15310 15311 ARMVSC, XX undefined ^ 037737* 0000 15312 037740* 3365 DCA ARCTMP / SAVE DIRECTION 15313 037741* 3141 DCA SCRLFL / ENSURE FLAG = 0 15314 15315 037742* 1365 ARMVS0, TAD ARCTMP 15316 037743* 4513 CURMOV / MOVE THE CURSOR 15317 037744* 5737 JMP I ARMVSC / (STX OR ETX) 15318 037745* 7200 CLA 15319 037746* 1141 TAD SCRLFL / DID WE SCROLL? 15320 037747* 7650 SNA CLA 15321 037750* 5342 JMP ARMVS0 / NO, GO AGAIN 15322 037751* 2337 ISZ ARMVSC / YES, TAKE SKIP 15323 037752* 5737 JMP I ARMVSC / RETURN 15324 15325 15326 15327 / SET MOVE MODE FOR ARROW KEYPAD 15328 / ENTER: AC = MOVE MODE (0=ADV, 1=BKP) 15329 / EXIT: AC = CURSOR DIRECTION (+1=ADV, -1=BKP) 15330 15331 ARMSET, XX undefined ^ 037753* 0000 15332 037754* 3365 DCA ARCTMP 15333 037755* 4504 MODSET / SET MOVE MODE 15334 037756* 7764 ARMODE 15335 037757* 1365 TAD ARCTMP / NOW SET THE CURSOR DIRECTION 15336 037760* 7440 SZA 15337 AC7776 / (BACKUP) undefined ^ 037761* 0000 15338 037762* 7001 IAC / (ADVANCE) 15339 037763* 5753 JMP I ARMSET 15340 15341 037764* 0030 ARMODE, SCHMOD!SLTMOD 15342 037765* 0000 ARCTMP, .-. / TEMP STORAGE FOR THIS PAGE 15343 15344 15345 X=. / INDICATE FIRST FREE LOCATION ON PAGE 15346 /--------------------- 15347 037770* 2244 PAGE 037771* 3400 037772* 2362 037773* 0406 037774* 0400 037775* 0401 037776* 7527 037777* 3553 15348 15349 15350 / OVERLAY TO MERGE LIST DOCUMENT 15351 15352 / THE CHARACTER "<" IN A FORM DOCUMENT IS TREATED IN A SPECIAL WAY DEPENDING ON 15353 / WHAT FOLLOWS IT: 15354 15355 / - SUBSTITIUTE THE TEXT OF THE NAMED FIELD IN THE 15356 / CURRENT RECORD AT THIS POINT IN THE OUTPUT. 15357 15358 / - START THE REPETITIVE ZONE HERE, NOT AT THE TOP OF THE 15359 / FORM DOCUMENT. (PRECEDING TEXT IS THE HEADER.) 15360 15361 / - END THE REPETITIVE ZONE HERE, NOT AT THE BOTTOM OF THE 15362 / FORM DOCUMENT. (FOLLOWING TEXT IS A TRAILER.) 15363 15364 / - COPY THE TEXT OF THE CURRENT RECORD FROM THE LIST 15365 / DOCUMENT TO THE OUTPUT. 15366 15367 / <> - ADVANCE TO THE NEXT RECORD IN THE LIST DOCUMENT. 15368 15369 / << - OUTPUT A SINGLE "<" AT THIS POINT. 15370 15371 / NO OTHER CHARACTERS IN THE FORM DOCUMENT ARE TREATED SPECIALLY. 15372 15373 15374 /*************************************************************************** 15375 /**** START OF OVERLAY **** 15376 /*************************************************************************** 15377 15378 OVRNUM=OVRNUM+200 / NEW OVERLAY NUMBER 15379 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 15380 15381 RELOC 15382 15383 RELOC OVLAY1 15384 037400* 3200 OVRNUM 15385 15386 OVMRG2= .-OVLAY1+OVRNUM / SECOND MERGE OVERLAY 15387 037401* 2152 ISZ ECHFLG / SET FLAG TO LET SCREEN SCROLL WITH US 15388 037402* 2154 ISZ MRGRSF / INIT RESYNC FLAG FOR: NO RESYNC 15389 037403* 4513 MRGFSA, CURMOV 15390 037404* 7000 NOP 15391 15392 037405* 4777 MRGFSB, JMS LODCHR / LOOKING FOR START OF FIELD 15393 037406* 5776 JMP MRGEOF / WE HIT END OF THE FORM DOCUMENT 15394 15395 AND P177 / STRIP MODE BITS FROM CHARACTER undefined ^ undefined ^ 037407* 0000 15396 037410* 1375 TAD (-"<+200) / IS CHARACTER = "<"? 15397 037411* 7640 SZA CLA / SKIP IF: SO 15398 037412* 5774 JMP MRGADV / JUMP IF NOT 15399 15400 037413* 1135 TAD CURPTR / GET POINTER TO LEFT ANGLE BRACKET 15401 037414* 3156 DCA MRGPT2 / SAVE POINTER TO LEFT ANGLE BRACKET 15402 037415* 4514 SLNMOD / SET LINE MODIFIED FLAG 15403 037416* 4773 JMS JCLEAN / WE'RE GOING TO CHANGE SOMETHING 15404 037417* 4506 ADVPTR / GET NEXT CHARACTER 15405 037420* 5772 JMP MRGETX / WE HIT END OF TEXT 15406 15407 AND P177 / STRIP MODE BITS undefined ^ undefined ^ 037421* 0000 15408 037422* 1375 TAD (-"<+200) / IS CHARACTER ANOTHER "<"? 15409 037423* 7450 SNA / SKIP IF: NOT 15410 037424* 5270 JMP MRGS1A / GO PROCESS A "<<" SEQUENCE 15411 15412 037425* 1371 TAD ("<-">) / IS CHARACTER = ">"? 15413 037426* 7450 SNA / SKIP IF: NOT 15414 037427* 5770 JMP MRGS2A / GO PROCESS "<>"(NULL FIELD NAME) 15415 15416 037430* 1367 TAD (">-"!) / IS CHARACTER = "!"? 15417 037431* 7650 SNA CLA / SKIP IF: NOT 15418 037432* 5766 JMP MRGS3A / GO PROCESS SPECIAL NAME (!E, !R, !S) 15419 15420 / MATCH FIELD NAME IN FORM DOCUMENT TO A FIELD NAME FROM THE MATH 15421 / RESULT BUFFER AND THEN THE RECORD BUFFER 15422 037433* 4242 JMS MFNIFD / MATCH FIELD NAME IN FORM DOCUMENT TO 15423 RESBUF / FIELD NAME IN MATH RESULT BUFFER undefined ^ 037434* 0000 15424 15425 CDFLP / RESBUF IS IN LIST PROCESS. FIELD undefined ^ 037435* 0000 15426 / IF NO MATCH IS FOUND WE WILL RETURN 15427 / HERE FROM THE JMS SO WE CAN TRY TO 15428 / FIND A MATCH IN RECBUF. IF A MATCH 15429 / WAS FOUND IN RESBUF THEN MFNIFD 15430 / RETURNS TO MRGFSA (NOT HERE!!!!). 15431 / ALL FOR THE NEED OF SPACE. 15432 15433 037436* 4242 JMS MFNIFD / MATCH FIELD NAME IN FORM DOCUMENT TO 15434 037437* 0010 RECBUF / FIELD NAME IN RECORD BUFFER 15435 CDFBUF / DF TO THE EDITOR BUFFER FIELD undefined ^ 037440* 0000 15436 037441* 5765 JMP MRGFNF / NO MATCH - FIELD NAME NOT FOUND IN 15437 / EITHER RESBUF OR RECBUF. 15438 / IF NO MATCH IS FOUND WE WILL RETURN 15439 / HERE FROM THE JMS SO WE CAN GO TO 15440 / FIELD NOT FOUND ROUTINE. IF A 15441 / MATCH WAS FOUND IN RECBUF THEN 15442 / MFNIFD RETURNS TO MRGFSA (NOT 15443 / HERE!!!!). ALL FOR THE NEED OF 15444 / SPACE. 15445 15446 15447 15448 15449 /**************************************************************************** 15450 / 15451 / The following routine has been made into a blasted routine /a224 15452 / to make space for the multinational and technical character set /a224 15453 / changes (see WPHOLE.PA for explanation). /a224 15454 / 15455 /**************************************************************************** 15456 15457 /d224 MFNIFD, XX / MATCH FIELD NAME IN FORM DOCUMENT 15458 /d224 CDFMYF / CHANGE DF TO MY FIELD 15459 /d224 TAD I MFNIFD / GET ADDRESS OF BUFFER TO MATCH 15460 /d224 DCA MRGPT1 / SAVE IT 15461 /d224 ISZ MFNIFD / BUMP RETURN 15462 /d224 TAD I MFNIFD / GET FIELD OF THAT BUFFER 15463 /d224 DCA TADIM1 / SAVE IT 15464 /d224 ISZ MFNIFD / BUMP RETURN 15465 /d224 MRGFS1, TAD MRGPT2 / POINT TO TEXT BRACKET IN FORM 15466 /d224 DCA CURPTR / RESET POINTER 15467 /d224 MRGFS2, JMS TADIMRGPT1 / GET NEXT CHAR FROM RECORD ISZ MRGPT1 / BUMP RECORD PTR 15468 /d224 SNA / SKIP IF: NOT END OF RECORD 15469 /d224 JMP I MFNIFD / FIELD NOT FOUND, END OF RECORD / RETURN TO CALLER 15470 /d224 TAD (-"<+200) / IS CHARACTER = "<"? 15471 /d224 SZA CLA / SKIP IF: SO 15472 /d224 JMP MRGFS2 / LOOP TIL FIELD START 15473 /d224 TAD (-GPBSIZ / Field found, so init max siz counter /a224 15474 /d224 DCA T2 / to ignore end comparison if max siz /a224 15475 /d224 / for significant field name reached /a224 15476 /d224 MRGFS3, ADVPTR / GET NEXT FIELD VALUE CHAR. FROM TEXT 15477 /d224 JMP MRGETX / WE HIT THE END OF TEXT 15478 /d224 AND P177 / STRIP MODE BITS 15479 /d224 XLTUPR / XLAT CHAR TO UPPER CASE 15480 /d224 CIA / SET UP FOR COMPARE WITH RECORD'S 15481 /d224 DCA T1 / FIELD NAME VALUE 15482 /d224 JMS TADIMRGPT1 / GET NEXT CHAR FROM RECORD 15483 /d224 XLTUPR / XLAT TO UPPER CASE 15484 /d224 TAD T1 / COMPARE WITH CHARACTER FROM TEXT 15485 /d224 ISZ T2 / Has the max length of FN been reached?/a224 15486 /d224 SNA CLA / NO, SKIP IF: CHARACTERS DON'T MATCH 15487 /d224 SKP CLA / Yes, or match, skip on. /a224 15488 /d224 JMP MRGFS1 / LOOP IF NOT EQUAL 15489 /d224 JMS TADIMRGPT1 / GET NEXT RECORD CHARACTER 15490 /d224 ISZ MRGPT1 / BUMP POINTER INTO RECORD 15491 /d224 TAD (-">+200) / IS CHARACTER = ">"? 15492 /d224 SZA CLA / SKIP IF:SO 15493 /d224 JMP MRGFS3 / CHECK FOR END OF NAME 15494 /d224 TAD MRGPT2 / RESET TEXT BUFFER POINTER TO START OF 15495 /d224 DCA CURPTR / FIELD NAME WE JUST MATCHED. 15496 /d224 JMS MRGDLF / DELETE THAT FIELD NAME FROM TEXT 15497 /d224 MRGFS4, DCA MRGPT2 / SET LOOKAHEAD 15498 /d224 JMS TADIMRGPT1 / CHECK FOR END OF FIELD IN RECORD 15499 /d224 TAD (-"<+200) / IS CHARACTER = "<"? 15500 /d224 SNA CLA / SKIP IF: NOT 15501 /d224 JMP MRGFS5 / JUMP IF END OF FIELD VALUE 15502 /d224 TAD MRGPT2 / GET LOOK AHEAD CHARACTER 15503 /d224 SZA / SKIP IF: 0 15504 /d224 INSCHR / OUTPUT LOOKAHEAD 15505 /d224 JMS TADIMRGPT1 / LOAD NEW LOOKAHEAD 15506 /d224 CLA SWP / ATTRIBUTED CHAR. COMES BACK IN THE MQ 15507 /d224 / NOW RESTORE IT TO THE AC 15508 /d224 ISZ MRGPT1 / BUMP POINTER INTO FIELD VALUE 15509 /d224 JMP MRGFS4 / LOOP TO OUTPUT NEXT FIELD VALUE CHAR. 15510 /d224 / INTO RESULT DOCUMENT 15511 /d224 15512 /d224 MRGFS5, TAD MRGPT2 / OUTPUT LAST CHAR AT END OF FIELD 15513 /d224 TAD (-40) / WAS THIS A SPECIAL CHAR.? 15514 /d224 SPA SNA CLA / SKIP IF: NOT 15515 /d224 JMP MRGFS6 / SPECIAL CHARACTER. DO NOT INSERT 15516 /d224 TAD MRGPT2 / REGULAR CHARACTER. INSERT INTO TEXT 15517 /d224 INSCHR 15518 /d224 MRGFS6, JMP MRGFSA / BUMP RETURN FOR MATCH 15519 15520 /**************************************************************************** 15521 / 15522 / The following routine is the replacement for the above. It /a224 15523 / calls the blaster hook for this field to blast in the field /a224 15524 / name search routine moved. /a224 15525 / 15526 /**************************************************************************** 15527 15528 MFNIFD, XX / Replacement field name search /a224 undefined ^ 037442* 0000 15529 037443* 0000 CDFMYF / Return to home data field /a224 15530 037444* 1642 TAD I MFNIFD / Set up the parameters passed after the/a224 15531 037445* 3155 DCA MRGPT1 / call, which can not be done by the /a224 15532 037446* 2242 ISZ MFNIFD / blasted routine, as the return addres /a224 15533 037447* 1642 TAD I MFNIFD / points to the blaster, not the call to/a224 15534 037450* 3261 DCA TADIM1 / here. /a224 15535 037451* 2242 ISZ MFNIFD / /a224 15536 037452* 4764 JMS BHOOK / Blast in the routine /a224 15537 MFNHLR / Merge_Field_Name_HoLe_Routine /a224 undefined ^ 037453* 0000 15538 037454* 5642 JMP I MFNIFD / Return here if not found, and exit /a224 15539 037455* 7640 SZA CLA / Return here if found or EOF of form /a224 15540 037456* 5203 JMP MRGFSA / If found, continue /a224 15541 037457* 5772 JMP MRGETX / If EOF, deal with it /a224 15542 15543 15544 / THIS ROUTINE WILL READ A CHARACTER FROM THE BUFFER SPECIFIED WHEN 15545 / MFNIFD WAS CALLED. TADIM1 IS PRIMED UPON CALL TO MFNIFD. UPON 15546 / READING A CHARACTER THE DF IS ALWAYS RETURNED TO THE EDITOR BUFFER 15547 / FIELD SINCE OTHER ROUTINES CALLED DURING OVMRG2 DEPEND ON DF SET 15548 / TO THE EDITOR BUFFER FIELD. 15549 / THE MQ IS USED TO HOLD THE ATTRIBUTED CHARACTER SO THAT WHEN 15550 / LOADING CHARACTERS FROM THE LIST DOCUMENT TO THE RESULT DOC. 15551 / ATTRIBUTES OF CHARACTERS ARE NOT DROPPED 15552 TADIMRGPT1, 15553 XX undefined ^ 037460* 0000 15554 037461* 0000 TADIM1, .-. / LOADED WITH CDF INSTRUCTION 15555 037462* 1555 TAD I MRGPT1 / READ CHARACTER FROM RECORD 15556 037463* 7421 MQL / LOAD THE ATTRIBUTED CHAR INTO THE MQ 15557 037464* 7501 MQA / RESTORE THE CHAR INTO THE AC 15558 AND P177 / STRIP MODE BITS undefined ^ undefined ^ 037465* 0000 15559 CDFBUF / SET DF TO EDITOR BUFFER FIELD undefined ^ 037466* 0000 15560 037467* 5660 JMP I TADIMRGPT1 / RETURN 15561 15562 / MULTIPLE LEFT ANGE BRACKET SEQUENCE HANDLER ("<<...ETC.") - DELETE 15563 / ONE OF THE LEFT ANGLE BRACKETS IN THE TEXT AND IGNORE ANY THAT 15564 / IMMEDIATELY FOLLOW. WHEN THE FIRST CHARACTER THAT IS NOT A "<" IS 15565 / READ REENTER SCAN LOOP. THIS ENABLES US TO USE FIELD NAMES AS 15566 / TEXT WITHIN A DOCUMENT WITHOUT TRYING TO FIND A MATCH WITH A 15567 / FIELD NAME IN THE CURRENT RECORD. 15568 037470* 3535 MRGS1A, DCA I CURPTR / DELETE ONE OF THE LEFT ANGLE BRACKETS 15569 037471* 1156 TAD MRGPT2 / RESTORE POINTER TO START OF FIELD 15570 037472* 3135 DCA CURPTR 15571 037473* 4514 SLNMOD / SET LINE MODIFIED FLAG 15572 MRGS1B, AC0001 / ADVANCE CURSOR 1 CHARACTER undefined ^ 037474* 0000 15573 037475* 4513 CURMOV 15574 037476* 5776 JMP MRGEOF / EOF RETURN FROM CURMOV 15575 15576 037477* 4763 JMS CHKSPC / CHECK DISKETTE SPACE 15577 15578 037500* 4777 JMS LODCHR / GET THE NEXT CHARACTER 15579 037501* 5776 JMP MRGEOF / EOF RETURN 15580 15581 AND P177 / STRIP MODE BITS undefined ^ undefined ^ 037502* 0000 15582 037503* 1375 TAD (-"<+200) / IS CHARACTER = "<"? 15583 037504* 7650 SNA CLA / SKIP IF: NOT 15584 037505* 5274 JMP MRGS1B / CHARACTER = "<". GET NEXT ONE 15585 15586 037506* 5205 JMP MRGFSB / REENTER SCAN LOOP 15587 15588 15589 X=. / INDICATE FIRST FREE LOCATION ON PAGE 15590 /--------------------- 15591 037563* 4200 PAGE 037564* 5324 037565* 7605 037566* 7662 037567* 0035 037570* 7611 037571* 7776 037572* 7715 037573* 3645 037574* 7600 037575* 7704 037576* 7720 037577* 4241 15592 15593 15594 15595 / ADVANCE CURSOR ONE CHARACTER AT A TIME THROUGH RESULT DOCUMENT, 15596 / CHECKING FOR ENOUGH ROOM ON DISKETTE TO CONTINUE THROUGH THE DOC. 15597 MRGADV, AC0001 / ADVANCE CURSOR 1 CHARACTER undefined ^ 037600* 0000 15598 037601* 4513 CURMOV 15599 037602* 5320 JMP MRGEOF / EOF RETURN FROM CURMOV 15600 037603* 4777 JMS CHKSPC / CHECK DISKETTE SPACE 15601 037604* 5776 JMP MRGFSB / GO CHECK NEXT CHAR 15602 15603 15604 / FIELD NOT FOUND (NO MATCH BETWEEN FORM DOCUMENT FIELD AND ANY OF THE 15605 / FIELDS OF THE CURRENT RECORD BEING PROCESSED). THEREFOR DELETE THIS 15606 / FIELD FROM THE RESULT DOCUMENT. 15607 037605* 1156 MRGFNF, TAD MRGPT2 / POINT TO START OF FIELD IN RESULT DOC. 15608 037606* 3135 DCA CURPTR 15609 037607* 4241 JMS MRGDLF / AND DELETE THE FIELD 15610 037610* 5775 JMP MRGFSA / THEN CONTINUE SCAN LOOP 15611 15612 / EMPTY LEFT AND RIGHT ANGLE BRACKET HANDLER ("<>") - DELETE "<>" FROM 15613 / THE RESULT DOCUMENT AND LOAD THE NEXT RECORD TO BE PROCESSED. 15614 037611* 1156 MRGS2A, TAD MRGPT2 / RESET POINTER TO "<" 15615 037612* 3135 DCA CURPTR 15616 037613* 4241 JMS MRGDLF / DELETE "<>" FROM RESULT DOCUMENT 15617 037614* 4251 JMS MRGNXT / GET NEXT RECORD 15618 037615* 7410 SKP / NO MORE RECORDS 15619 037616* 5775 JMP MRGFSA / REENTER SCAN LOOP IF WE GOT ONE 15620 / ELSE SKIP TO 15621 15622 / DELETE TO AND INCLUSIVE OF THE CONTROL SEQUENCE "" IN THE RESULT 15623 / DOCUMENT. IF "" IS NOT ENCOUNTED THEN DELETE TO END OF RESULT 15624 / DOCUMENT. 15625 037617* 4336 MRGS2B, JMS MRGDLS / DELETE TO AND INCLUSIVE OF "+200) / WAS CHARACTER JUST DELETED A ">"? 15658 037645* 7640 SZA CLA / SKIP IF: SO 15659 037646* 5242 JMP .-4 / DELETE TIL END 15660 037647* 4514 SLNMOD / SET LINE MODIFIED 15661 037650* 5641 JMP I MRGDLF / THEN RETURN 15662 15663 / MERGE NEXT RECORD - LOAD THE NEXT RECORD OF THE LIST DOCUMENT INTO 15664 / RECBUF. IF THERE ARE NO MORE RECORDS LEFT THEN DON'T SKIP RETURN. 15665 MRGNXT, XX / GET NEXT RECORD undefined ^ 037651* 0000 15666 037652* 4514 SLNMOD / SET LINE MODIFIED 15667 037653* 4771 JMS FXSCRL / UPDATE SCREEN 15668 037654* 0000 CDFMYF / CHANGE DATA FIELD MYFIELD 15669 CIFLP / CHANGE INSTRUCTION FIELD TO LP FIELD. undefined ^ 037655* 0000 15670 JMS I (SELCT) / LOAD THE NEXT RECORD undefined ^ undefined ^ 037656* 4770 15671 037657* 7650 SNA CLA / SKIP IF: NO RECORDS LEFT 15672 037660* 2251 ISZ MRGNXT / BUMP RETURN - WE'VE LOADED A RECORD 15673 037661* 5651 JMP I MRGNXT / RETURN 15674 15675 15676 15677 / ANALYZE THE SPECIAL FIELD NAMES (E, R, S) 15678 037662* 4506 MRGS3A, ADVPTR / GET THE NAME 15679 037663* 5315 JMP MRGETX / NO CHARACTERS LEFT 15680 037664* 3155 DCA MRGPT1 / SAVE IT, WHILE 15681 15682 037665* 1156 TAD MRGPT2 / DELETE REST OF THE FIELD NAME 15683 037666* 3135 DCA CURPTR 15684 037667* 4241 JMS MRGDLF 15685 15686 037670* 1155 TAD MRGPT1 / GET THE NAME BACK 15687 AND P177 / STRIP THE MODE BITS undefined ^ undefined ^ 037671* 0000 15688 037672* 4516 XLTUPR / XLAT NAME TO UPPER CASE 15689 037673* 1374 TAD (-"E+200) / IS THE FIELD NAME = "E"? 15690 037674* 7450 SNA / SKIP IF: NOT 15691 037675* 5320 JMP MRGSEA / PROCESS START OF TRAILER 15692 037676* 1367 TAD ("E-"R) / IS THE FIELD NAME = "R"? 15693 037677* 7450 SNA / SKIP IF: NOT 15694 037700* 5305 JMP MRGSRA / PROCESS INSERT WHOLE RECORD 15695 037701* 1366 TAD ("R-"S) / IS THE FIELD NAME = "S"? 15696 037702* 7650 SNA CLA / SKIP IF: NOT 15697 037703* 3154 DCA MRGRSF / SET RESYNC FLAG FOR: RESYNC 15698 037704* 5775 JMP MRGFSA / NONE OF THE ABOVE - IGNORE THIS FIELD 15699 15700 / PROCESS INSERT WHOLE RECORD - INSERT RECORD COMMAND 15701 15702 037705* 1365 MRGSRA, TAD (RECBUF) / INIT POINTER TO TOP OF RECORD 15703 037706* 3155 DCA MRGPT1 15704 037707* 1555 MRGSRB, TAD I MRGPT1 / GET NEXT CHAR FROM RECORD 15705 037710* 7450 SNA / SKIP IF: NOT END OF RECORD IN BUFFER 15706 037711* 5775 JMP MRGFSA / QUIT IF NO MORE 15707 037712* 4505 INSCHR / INSERT INTO TEXT 15708 037713* 2155 ISZ MRGPT1 / BUMP TO NEXT CHAR 15709 037714* 5307 JMP MRGSRB / AND LOOP FOR ALL 15710 15711 / DELETE A PARTIAL FIELD (FIELD NAME WITH NO TERMINATING ">") 15712 037715* 1156 MRGETX, TAD MRGPT2 / RESET POINTER TO START OF FIELD NAME 15713 037716* 3135 DCA CURPTR 15714 037717* 4241 JMS MRGDLF / DELETE THIS PARTIAL FIELD THEN JOIN 15715 / COMMON CODE FOR EOF PROCESSING BELOW 15716 15717 / PROCESS START OF TRAILER 15718 MRGSEA, / LOOP BACK POINT 15719 MRGEOF, / OR EOF 15720 037720* 4251 JMS MRGNXT / GET NEXT RECORD 15721 037721* 5224 JMP MRGTRL / SKIP TO TRAILER IF NO MORE 15722 15723 037722* 1166 TAD FORMNO / REINIT FORM DOCUMENT FOR READ 15724 037723* 4764 JMS DSKCAL 15725 XRDFIN undefined ^ 037724* 0000 15726 15727 037725* 1154 TAD MRGRSF / IS A RESYNC NEEDED? 15728 037726* 7640 SZA CLA / SKIP IF: SO (MRGRSF=0) 15729 037727* 5775 JMP MRGFSA / JUMP IF NO RESYNC NEEDED 15730 037730* 4336 MRGSEB, JMS MRGDLS / ELSE DELETE TO RESYNC POINT 15731 037731* 1363 TAD (-"S+200) / IS THE CHAR. FOLLOWING "" 15734 037734* 4241 JMS MRGDLF / DELETE REST OF RESYNC FIELD 15735 037735* 5775 JMP MRGFSA / AND REENTER SCAN LOOP 15736 15737 / DELETE UPTO AND INCLUSIVE OF THE " / END IFDEF PERDEC 16005 16006 IFDEF COLDEC < 16007 RLXIT, TAD (5572) 16008 DCA OKSTR 16009 > / END IFDEF COLDEC 16010 16011 IFDEF COMDEC < 16012 RLXIT, TAD (5554) 16013 DCA OKSTR 16014 > / END IFDEF COMDEC 16015 16016 037663* 0000 CDFMYF / PROPER FIELD /A192 16017 037664* 1765 TAD SPLTFL / SPLIT SCREEN? 16018 037665* 7700 SMA CLA /M192 16019 037666* 5302 JMP RLXIT1 / NO, OR NO CHANGE /M192 16020 16021 037667* 1764 TAD WIDPRV / WAS SCREEN WIDE BEFORE? 16022 037670* 7640 SZA CLA 16023 037671* 5301 JMP RLXIT2 / YES, DO NOTHING 16024 16025 CDFMNU undefined ^ 037672* 0000 16026 037673* 1763 TAD NWRMAR / REMOVE SPLIT, IF NEC. 16027 037674* 0000 CDFMYF 16028 037675* 1362 TAD (-COLM80) / (I.E., IF R .LT. 80) 16029 037676* 7740 SMA SZA CLA 16030 037677* 5302 JMP RLXIT1 16031 16032 037700* 3765 DCA SPLTFL 16033 /D192 JMS CLR132 / REVERT TO 80-COLUMN DISPLAY AND 16034 /D192 / DO FINAL EXIT STUFF. 16035 16036 037701* 4761 RLXIT2, JMS CLSSET / INITIALIZE SCROLL VALUES FOR STATUS 16037 16038 / 16039 / END OF PROCESSING FOR GOLD:RULER COMMAND. 16040 / THE USER HAS JUST INSERTED A NEW RULER INTO THE DOCUMENT. 16041 / 16042 / FIX UP RULERS (I.E., CONCATENATE ADJACENT RULERS, AND DELETE RULERS 16043 / THAT MAKE NO NET CHANGE) BY MOVING THE CURSOR BACK THEN FORWARD 16044 / OVER RULER(S). 16045 / 16046 16047 / BEFORE FIXING UP RULERS TURN MATH OFF SO THAT MATH IS NOT REDUNDANT 16048 / ON THE SAME LINE. WHEN FINISHED FIXING UP LINE THEN RESTORE MATH 16049 / TO ON/OFF STATE AT ENTRY TO RLXIT1. 16050 / NOTE: IT MIGHT SEEM THAT SUBR SWTHMA WOULD BE SUITABLE FOR USE HERE. 16051 / ALTHOUGH SWTHMA WILL PREVENT REDUNDANT CALCULATIONS FROM BEING 16052 / PERFORMED WHEN MOVING FORWARD, IT WILL PERMIT MATH TO BE TURNED OFF 16053 / UNDER CERTAIN CONDITIONS (WHEN MOVING BACKWARDS IN A WPSMATH CONTROL 16054 / BLOCK??), WHICH COULD MEAN THAT A SIDE EFFECT OF CHANGING A RULER 16055 / IS TO TURN OFF MATH. WE MUST AVOID THIS, SO WE CAN'T USE SWTHMA ... 16056 16057 037702* 4760 RLXIT1, JMS MNUGET / GET A VALUE FROM THE MENU FIELD 16058 MNOPTC / ACTIVE FEATURES CONTROL WORD undefined ^ 037703* 0000 16059 037704* 3246 DCA RXLIT2 / SAVE IT IN TEMPORARY LOCATION 16060 16061 037705* 1246 TAD RXLIT2 / RESTORE ACTIVE FEATURES CONTROL WORD 16062 AND (-MABIT-1) / BUT WITH THE MATH INACTIVATED undefined ^ undefined ^ 037706* 0357 16063 037707* 4756 JMS MNUPUT / PUT A VALUE INTO THE MENU FIELD 16064 MNOPTC / ACTIVE FEATURES CONTROL WORD undefined ^ 037710* 0000 16065 16066 AC7777 / SETUP FOR A BACKWARD MOVE undefined ^ 037711* 0000 16067 037712* 4513 CURMOV / MOVE CURSOR BACKWARD ONE POSITION 16068 037713* 7610 SKP CLA / IF TOP OF DOCUMENT, THEN DON'T 16069 / CURMOV FORWARD 16070 16071 RLXIT3, AC0001 / MOVE PTR FORWARD ONE undefined ^ 037714* 0000 16072 037715* 4513 CURMOV 16073 037716* 5325 JMP RLXIT4 / EOF. MAYBE HALT CAUSE THIS IS AN ERROR/a176 16074 16075 037717* 1535 TAD I CURPTR / IS THIS CHAR THE TEMP MARKER? /a176 16076 TAD (-ECTMRK) /a176 undefined ^ undefined ^ 037720* 1372 16077 037721* 7640 SZA CLA /a176 16078 037722* 5314 JMP RLXIT3 / NO, KEEP LOOKING /a176 16079 16080 TAD (ECMDFL) / YES, REPLACE IT WITH A LINE MODIFIED /a176 undefined ^ undefined ^ 037723* 1372 16081 037724* 3535 DCA I CURPTR /a176 16082 16083 037725* 1246 RLXIT4, TAD RXLIT2 / RESTORE ACTIVE FEATURES CONTROL WORD 16084 / TO IT'S VALUE AT ENTRY TO RXLIT1 16085 037726* 4756 JMS MNUPUT / PUT A VALUE INTO THE MENU FIELD 16086 MNOPTC / ACTIVE FEATURES CONTROL WORD undefined ^ 037727* 0000 16087 16088 / 16089 / TERMINATE NORMAL GOLD:RULER COMMAND 16090 / 16091 037730* 1755 TAD RRDIR / IS THIS GOTO-RULER? 16092 037731* 7650 SNA CLA 16093 037732* 5766 JMP EIFIX / NO (END OF NORMAL GOLD:RULER CMD): /C168 16094 / GO LISTEN FOR NEXT EDITOR COMMAND 16095 037733* 4773 JMS FXSCRL / GET RID OF THE EDITED RULER & SCALE 16096 037734* 4523 OVLJMP / YES: GO DO GOTO-RULER 16097 037735* 5015 OVRRGO 16098 16099 16100 X=. / INDICATE FIRST FREE LOCATION ON PAGE 16101 /--------------------- 16102 037755* 1764 PAGE 037756* 1655 037757* 7777 037760* 1643 037761* 2141 037762* 7661 037763* 3171 037764* 6535 037765* 2345 037766* 0401 037767* 7410 037770* 7554 037771* 0426 037772* 0000 037773* 3400 037774* 0324 037775* 7740 037776* 4241 037777* 6532 16103 16104 /*************************************************************************** 16105 /**** START OF OVERLAY **** 16106 /*************************************************************************** 16107 16108 OVRNUM=OVRNUM+200 16109 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 16110 16111 RELOC 16112 16113 RELOC OVLAY1 16114 037400* 3600 OVRNUM 16115 VIEWF1= OVRNUM / used to identify view mode overlay 16116 16117 16118 / HANDLE KEYBOARD INPUT FOR GOLD:VIEW COMMAND 16119 16120 OVVWDX= .-OVLAY1+OVRNUM 16121 037401* 5777 JMP XVVWDX 16122 16123 / "GOLD:VIEW" COMMAND 16124 16125 OVVIEW= .-OVLAY1+OVRNUM 16126 037402* 5776 JMP VIEW 16127 16128 16129 / +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 16130 / +++ Gold:Tab (Indent Tabs) +++ 16131 / +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 16132 / 16133 / This Code is called from OVRULR for processing Gold:Tab. The 16134 / purpose of which is to place a @W' (word wrap) at the current 16135 / ruler position (and perhaps, generate a new ruler). 16136 / 16137 / This will make it very easy to do such things as outlines, 16138 / where you'd like to change the word wrap margin often. 16139 / 16140 / When called, a few things could happen depending on where the 16141 / cursor (CURSOR) is in the ruler. 16142 / 16143 / 1) Cursor is on the Left Margin 16144 / Clear the Ruler of the Word Wrap: 16145 / Modify or generate a ruler without a Word Wrap. 16146 / Change the old Word Wrap (if present) to a Tab. 16147 / If too many tabs exist, the old Word Wrap is changed 16148 / to a blank. 16149 / If no Word Wrap is present in the Current ruler, 16150 / then nothing happens. 16151 / 16152 / 2) Cursor is on the Right Margin 16153 / Error: 16154 / Beep the bell. Don't clear the UDK Stack. 16155 / 16156 / 3) Cursor is neither on Left or Right Margins 16157 / Add Word Wrap to the Ruler: 16158 / Modify or generate a ruler with a Word Wrap at the Cursor. 16159 / Change the old Word Wrap (if present) to a Tab. 16160 / If too many tabs exist, the old Word Wrap is changed 16161 / to a blank. 16162 / 16163 / Upon completion of this routine, OVXRUL is called which cleans 16164 / things up, and displays the newly modified or created ruler. 16165 / 16166 / 16167 OVINTB= .-OVLAY1+OVRNUM 16168 16169 037403* 3775 DCA RRDIR / CLEAR 'GOTO-RULER' FLAG 16170 16171 037404* 1136 TAD CURSOR / CHECK FOR CURSOR=RIGHT MARGIN 16172 037405* 7041 CIA 16173 037406* 1160 TAD RGTMAR 16174 037407* 7750 SPA SNA CLA 16175 037410* 5240 JMP INTB3 / RIGHT MARGIN - BEEP AND RETURN TO EDITOR 16176 16177 037411* 4242 INTB1, JMS WTOT / CHANGE WORD WRAP TO TAB(04) OR BLANK(01) 16178 037412* 0004 CHGRUL, 04 / WTOT ARGUMENT 16179 16180 037413* 1136 TAD CURSOR / CHECK FOR CURSOR=LEFT MARGIN 16181 037414* 7041 CIA 16182 037415* 1157 TAD LFTMAR 16183 037416* 7650 SNA CLA 16184 037417* 5225 JMP INTB2 / LEFT MARGIN - ALL DONE 16185 16186 AC0001 undefined ^ 037420* 0000 16187 037421* 1136 TAD CURSOR 16188 037422* 3125 DCA RLPOSN / GET RULER POSTION OF CURSOR 16189 16190 037423* 1227 TAD WRPVAL / PUT WORD WRAP AT CURSOR IN RULER 16191 037424* 4774 JMS UPDRUL 16192 16193 037425* 4523 INTB2, OVLJMP 16194 OVXRUL / RULER COMPLEATION CODE undefined ^ 037426* 0000 16195 16196 037427* 0011 WRPVAL, 11 / INTERNAL-RULER WRAP CODE 16197 16198 16199 INTBAD= .-OVLAY1+OVRNUM 16200 16201 / +++ OVERLAY CALL WHEN THE RULER HAS AN ERROR IN IT: 16202 / NAMELY TOO MANY TABS. 16203 / 16204 / IF THERE IS NO PREVIOUSLY DEFINED WORD WRAP .. WE RESTORE 16205 / THE RULER, BEEP, AND RETURN TO THE EDITOR 16206 / 16207 / IF THERE WAS A WORD WRAP DEFINED, WE MAKE IT A SPACE INSTEAD 16208 / OF A TAB (LIKE WE DO NORMALLY) 16209 / 16210 AC0001 / SET TO PUT A SPACE IN THE RULER undefined ^ 037430* 0000 16211 037431* 3212 DCA CHGRUL 16212 16213 037432* 1157 TAD LFTMAR 16214 037433* 7041 CIA 16215 037434* 1161 TAD WRPMAR 16216 037435* 7640 SZA CLA / WAS THERE A WORD WRAP DEFINED? 16217 037436* 5211 JMP INTB1 / YES, MAKE IT A SPACE 16218 16219 037437* 4773 JMS RLEQTE / NO, RESTORE NEW-RULER TO CURRENT-RULER 16220 16221 037440* 4772 INTB3, JMS BUZZER / BEEP (BUT DON'T CLEAR UDK STACK) 16222 037441* 5225 JMP INTB2 / AND RETURN TO EDITOR 16223 16224 16225 / +++ SUBROUTINE: WTOT 16226 / 16227 / CHANGE THE WORD WRAP IN THE CURRENT RULER TO THE VALUE 16228 / SPECIFIED IN CALL+1. 16229 / 16230 / IF THERE IS NO WORD WRAP DEFINED (IE. LEFT MARGIN = WORD WRAP) 16231 / THEN NOTHING HAPPENS AND WTOT RETURNS 16232 / 16233 / CALL: JMS WTOT 16234 / XX VALUE TO CHANGE WRAP TO 16235 / (IN OUR CASE, ONLY: TAB(04) OR BLANK(01) 16236 16237 WTOT, XX undefined ^ 037442* 0000 16238 037443* 1157 TAD LFTMAR / WORD WRAP DEFINED? 16239 037444* 7041 CIA 16240 037445* 1161 TAD WRPMAR 16241 037446* 7650 SNA CLA 16242 037447* 5255 JMP WTOT1 / NO - JUST RETURN 16243 AC0001 undefined ^ 037450* 0000 16244 037451* 1161 TAD WRPMAR 16245 037452* 3125 DCA RLPOSN / GET PTR TO WORD WRAP IN RULER 16246 037453* 1642 TAD I WTOT / GET RULER VALUE ARGUMENT 16247 037454* 4774 JMS UPDRUL / CHANGE RULER 16248 037455* 2242 WTOT1, ISZ WTOT / BUMP PTR 16249 037456* 5642 JMP I WTOT / FOR RETURN ... 16250 16251 16252 / ROUTINE TO CHECK FOR KEYS USED IN GOLD VIEW /A219 16253 16254 VWTEST, XX / CHECK FOR GOLD VIEW KEYS /A219 undefined ^ 037457* 0000 16255 TAD (-EDPRSC) / CODE FOR THE PREVIOUS SCREEN KEY /A219 undefined ^ undefined ^ 037460* 1371 16256 037461* 7450 SNA / DID USER PRESS PREVIOUS SCREEN KEY ? /A219 16257 037462* 5303 JMP VWPREV / YES, GO HANDLE IT /A219 16258 037463* 7001 IAC / BUMP COUNT TO NEXT VALUE /A219 16259 037464* 7450 SNA / DID USER PRESS NEXT SCREEN KEY ? /A219 16260 037465* 5270 JMP VWNEXT / YES, GO HANDLE IT /A219 16261 TAD (EDPRSC-1-EDLINE) / CODE FOR THE LINE KEY /A219 undefined ^ undefined ^ undefined ^ undefined ^ 037466* 1370 16262 037467* 5657 JMP I VWTEST / RETURN TO INLINE CODE CHECK /A219 16263 16264 037470* 1177 VWNEXT, TAD WIDNAR / GET THE SCREEN WIDTH FLAG /A219 16265 037471* 7440 SZA / DOES IT INDICATE WIDE SCREEN ? /A219 16266 037472* 1367 TAD (4) / NO, MAKE CORRECTION FOR NARROW SCREEN /A219 16267 037473* 1366 TAD (-COLLIM-2+WIDTH) / CONSTRUCT OFFSET TO NEXT SCREEN /A219 16268 037474* 1047 TAD LOWLIM / COMBINE WITH CURRENT SCREEN OFFSET /A219 16269 037475* 3322 DCA VWTEMP / SAVE NEW OFFSET VALUE /A219 16270 037476* 1322 TAD VWTEMP / GET NEW OFFSET VALUE BACK AGAIN /A219 16271 037477* 1365 TAD (WIDTH+COLM81) / COMBINE WITH OVERFLOW VALUE /A219 16272 037500* 7710 SPA CLA / DID WE OVERFLOW THE MAXIMUM VALUE ? /A219 16273 037501* 5320 JMP VWERR / YES, IGNORE IT AND GO RING THE BELL /A219 16274 037502* 5315 JMP VWVALU / NO, GO UPDATE NEW LOWLIM VALUE /A219 16275 16276 037503* 1177 VWPREV, TAD WIDNAR / GET THE SCREEN WIDTH FLAG /A219 16277 037504* 7440 SZA / DOES IT INDICATE WIDE SCREEN ? /A219 16278 037505* 1367 TAD (4) / NO, MAKE CORRECTION FOR NARROW SCREEN /A219 16279 037506* 1366 TAD (-COLLIM-2+WIDTH) / CONSTRUCT OFFSET TO NEXT SCREEN /A219 16280 037507* 7041 CIA / NEGATE THE OFFSET VALUE /A219 16281 037510* 1047 TAD LOWLIM / COMBINE WITH CURRENT SCREEN OFFSET /A219 16282 037511* 3322 DCA VWTEMP / SAVE NEW OFFSET VALUE /A219 16283 037512* 1322 TAD VWTEMP / GET NEW OFFSET VALUE BACK AGAIN /A219 16284 037513* 7740 SMA SZA CLA / DID WE OVERFLOW THE MINIMUM VALUE ? /A219 16285 037514* 5320 JMP VWERR / YES, IGNORE IT AND GO RING THE BELL /A219 16286 037515* 1322 VWVALU, TAD VWTEMP / NO, GET NEW LOWLIM VALUE /A219 16287 037516* 3047 DCA LOWLIM / UPDATE LOMLIM WITH NEW OFFSET VALUE /A219 16288 037517* 5776 JMP VIEW / GO UPDATE THE SCREEN /A219 16289 16290 037520* 4772 VWERR, JMS BUZZER / ERROR, CAN'T MOVE, RING THE BELL /A219 16291 037521* 5764 JMP VWADX2 / GO GET NEXT CHARACTER /A219 16292 16293 VWTEMP, XX / SAVE LOCATION FOR NEW LOWLIM VALUE /A219 undefined ^ 037522* 0000 16294 16295 X=. / INDICATE FIRST FREE LOCATION ON PAGE 16296 /--------------------- 16297 037564* 7606 PAGE 037565* 0324 037566* 7622 037567* 0004 037570* 7777 037571* 0000 037572* 0331 037573* 6151 037574* 5634 037575* 1764 037576* 7677 037577* 7600 16298 16299 037600* 3144 XVVWDX, DCA CURLIN / CLEAR FOR PCUR ROUTINE TO POSN CURSOR /A161 16300 CIFMNU / CHANGE TO MENU FIELD FOR STATUS CHECK /A161 undefined ^ 037601* 0000 16301 037602* 4777 JMS I (CALLN2) / GO CHECK IF STATUS VALUES HAVE CHANGED/A161 16302 VWADX1, AC7777 undefined ^ 037603* 0000 16303 037604* 3144 DCA CURLIN / SET CURLIN BACK TO CORRECT VALUE FOR VIEW 16304 037605* 4776 JMS SETCUR / AND CURSOR TO BE ON SCREEN 16305 037606* 4502 VWADX2, GETINP / WAIT FOR KEYBOARD INPUT /C219 16306 037607* 3340 DCA VIEWCX / SAVE IT ... 16307 037610* 1340 TAD VIEWCX 16308 /D219 TAD (-EDLINE) 16309 037611* 4775 JMS VWTEST / GO CHECK FOR THE GOLD VIEW KEYS /A219 16310 037612* 7650 SNA CLA 16311 037613* 5225 JMP VWADLN 16312 037614* 3341 DCA VIEWF2 / clear view mode flag, then exit 16313 037615* 4774 JMS CLSSET / CLAER SCREEN UPDATE FLAGS /A219 16314 16315 /D219 AC2000 16316 /D219 DCA SCRLCT 16317 /D219 AC2000 16318 /D219 DCA SCRNFL 16319 16320 037616* 3144 DCA CURLIN 16321 037617* 1340 TAD VIEWCX / THEN GET INPUT CHAR 16322 TAD (-EDVIEW) / TREAT VIEW AS NOP/RETURN undefined ^ undefined ^ 037620* 1373 16323 037621* 7650 SNA CLA 16324 037622* 5772 JMP EINEXT 16325 037623* 1340 TAD VIEWCX / ELSE RELOAD INPUT CHAR 16326 037624* 5771 JMP EINEXB / AND JUMP TO PROCESS IT 16327 16328 037625* 3137 VWADLN, DCA SCRLCT 16329 037626* 3140 DCA SCRNFL 16330 037627* 3152 DCA ECHFLG 16331 AC7777 / set view mode flag in case CURMOV undefined ^ 037630* 0000 16332 037631* 3341 DCA VIEWF2 / calls editor math 16333 VWADL1, AC0001 undefined ^ 037632* 0000 16334 037633* 4513 CURMOV 16335 037634* 5240 JMP VWADL2 16336 037635* 1137 TAD SCRLCT 16337 037636* 7650 SNA CLA 16338 037637* 5232 JMP VWADL1 16339 037640* 0000 VWADL2, CDFMYF 16340 /D219 TAD WIDNAR / WIDE SCREEN? /M192 16341 /D219 SNA CLA /M192 16342 /D219 JMP VWADL4 / JUMP IF WIDE NEEDED 16343 037641* 1137 TAD SCRLCT / DID WE MOVE? 16344 037642* 7450 SNA 16345 037643* 4770 JMS BEEPER / COMPLAIN IF NOT (MUST BE AT END OF FILE) 16346 037644* 7710 SPA CLA 16347 037645* 5277 JMP VIEW / ...JUST IN CASE... /C219 16348 037646* 4767 JMS SCRNSZ / CHECK FOR STILL ON SCREEN 16349 037647* 7110 CLL RAR 16350 037650* 7041 CIA 16351 037651* 1137 TAD SCRLCT 16352 037652* 7700 SMA CLA 16353 037653* 5277 JMP VIEW / JUMP IF NOT /C219 16354 037654* 1137 TAD SCRLCT 16355 037655* 7450 SNA 16356 037656* 5274 JMP VWADL3 / JUMP IF NO MOVEMENT 16357 037657* 7041 CIA 16358 037660* 7104 CLL RAL 16359 037661* 3340 DCA VIEWCX / SET -COUNT OF LINES TO SCROLL UP 16360 037662* 4766 JMS PCUR / ERASE BOTTOM LINES 16361 037663* 4765 JMS CLREOL / Clear to end of line 16362 037664* 4764 JMS NWLN / CR LF 16363 037665* 4765 JMS CLREOL / Clear to end of line 16364 037666* 1340 TAD VIEWCX / COMPUTE NEW CURLIN 16365 037667* 1144 TAD CURLIN 16366 037670* 3144 DCA CURLIN 16367 037671* 4764 JMS NWLN 16368 037672* 2340 ISZ VIEWCX 16369 037673* 5271 JMP .-2 / SCROLL SCREEN UPWARDS 16370 16371 037674* 1137 VWADL3, TAD SCRLCT / GET NEW LOOP COUNTER 16372 037675* 7040 CMA 16373 037676* 5304 JMP VIEWA0 16374 16375 16376 /D219 VWADL4, 16377 /D192 AC0001 16378 /D192 DCA SPLTFL / FIX SPLIT SCREEN FLAG 16379 /D219 JMS SET132 / MAKE SCREEN WIDE 16380 /D219 / FALL THRU INTO OVVIEW ... 16381 16382 16383 / "GOLD:VIEW" COMMAND 16384 16385 037677* 3144 VIEW, DCA CURLIN / CLEAR FOR PCUR ROUTINE TO POSN CURSOR /A219 16386 037700* 4763 JMS CLSCRN / CLEAR SCREEN, GO TO HOME POS. 16387 037701* 4767 JMS SCRNSZ / GET SCREEN SIZE 16388 037702* 7110 CLL RAR 16389 037703* 7041 CIA 16390 037704* 0000 VIEWA0, CDFMYF 16391 037705* 3337 DCA VWX2 / -COUNT OF LINES TO DO 16392 037706* 1337 TAD VWX2 / GET PTR TO FIRST LINE 16393 037707* 1362 TAD (PTRBLK+NPTRS) 16394 037710* 3336 DCA VWX1 16395 16396 037711* 1136 TAD CURSOR / SAVE CURSOR POSITION 16397 037712* 3174 DCA CURTMP 16398 037713* 3136 DCA CURSOR 16399 16400 037714* 1736 TAD I VWX1 / FIND FIRST REAL LINE 16401 037715* 7640 SZA CLA 16402 037716* 5334 JMP VIEWA3 / QUIT QUICK IF OK 16403 037717* 2336 VIEWA1, ISZ VWX1 / ELSE LOOP 16404 037720* 1736 TAD I VWX1 16405 037721* 7640 SZA CLA 16406 037722* 5325 JMP VIEWA2 16407 037723* 2337 ISZ VWX2 16408 037724* 5317 JMP VIEWA1 16409 16410 / MOVE CURSOR TO START OF TOP LINE 16411 037725* 1337 VIEWA2, TAD VWX2 / GET LINE LOOP COUNTER 16412 037726* 7124 STL RAL / TIMES 2 + 1 16413 037727* 3144 DCA CURLIN / = LINE NUMBER FOR PCUR 16414 037730* 4766 JMS PCUR / MOVE CURSOR 16415 / DISPLAY "...----- TOP -----..." 16416 037731* 1361 TAD (STXMSG) 16417 037732* 4760 JMS PGMSG / ----- TOP ----- 16418 037733* 2337 ISZ VWX2 / BETTER NOT SKIP! 16419 16420 VIEWA3, 16421 /D219 / TEMPORARILY COPY VWX1 & VWX2 INTO SUBR ENTRY POINTS 16422 /D219 / TO TRANSFER VALUES TO NEXT OVERLAY. 16423 /D219 TAD VWX1 16424 /D219 DCA I ADVSPC&177 16425 /D219 TAD VWX2 16426 /D219 DCA I BKPSPC&177 16427 037734* 4757 JMS OV2JMP 16428 OVVWB1 undefined ^ 037735* 0000 16429 16430 037736* 0000 VWX1, .-. / PTR INTO PTRBLK FOR FIRST LINE 16431 / (COPIED TO VIEWX1 IN NEXT OVERLAY) 16432 037737* 0000 VWX2, .-. / -(# OF TEXT LINES TO DISPLAY) 16433 / (COPIED TO VIEWX2 IN NEXT OVERLAY) 16434 037740* 0000 VIEWCX, .-. 16435 037741* 0000 VIEWF2, .-. / view mode flag (if this overlay is in) 16436 16437 / 16438 / Code from VIEWBA which won't fit there 16439 / 16440 / It checks to see what type of Dead sequence is next in the buffer 16441 / 16442 16443 VIEWBZ, CIFMNU / Move to Menu field /A231 undefined ^ 037742* 0000 16444 037743* 4756 JMS I (TCCHK) / Go check this dead thing /A231 16445 JMP VIEWBA / Vanilla dead , display as text /A231 undefined ^ undefined ^ 037744* 5000 16446 JMP VIEWSP / req space dead , go print it /A231 undefined ^ undefined ^ 037745* 5000 16447 CDFMNU / Point to Menu field /A231 undefined ^ 037746* 0000 16448 037747* 1755 TAD TCTMP1 / get char itself /A231 16449 JMP VIEWBB / and get back /A231 undefined ^ undefined ^ 037750* 5000 16450 16451 16452 16453 X=. / INDICATE FIRST FREE LOCATION ON PAGE 16454 /--------------------- 16455 037755* 2533 PAGE 037756* 2424 037757* 5124 037760* 4707 037761* 7635 037762* 6251 037763* 2134 037764* 4557 037765* 4563 037766* 1400 037767* 2335 037770* 0324 037771* 0426 037772* 0406 037773* 0000 037774* 2141 037775* 7457 037776* 1744 037777* 0004 16456 16457 FIELD 4 16458 RELOC 16459 *0 16460 16461 /*************************************************************************** 16462 /**** START OF OVERLAY **** 16463 /*************************************************************************** 16464 16465 OVRNUM=OVRNUM+200 16466 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 16467 16468 RELOC 16469 16470 RELOC OVLAY1 16471 047400* 4000 OVRNUM / EDIT EXIT PROCESSING 16472 16473 OVUDKS= .-OVLAY1+OVRNUM / FIRST ENTRY USED ONLY AT THE VERY END 16474 047401* 5777 JMP XVUDKS / OF AN EDIT (IE, NOT AT GOLD TOP) 16475 16476 OVXITF= .-OVLAY1+OVRNUM 16477 047402* 7001 IAC / 1 IN AC INDICATES FIRST ENTRY 16478 16479 OVEXIT= .-OVLAY1+OVRNUM / EXIT OVERLAY 16480 047403* 3340 DCA LSTPAS / IF ZERO, THIS IS NOT LAST CALL OF THIS EDIT 16481 047404* 4511 TSTSLT / IF EDITOR IS IN SELECT MODE 16482 047405* 7410 SKP 16483 047406* 4322 JMS UNSLCS / THEN DELETE SELECT MARK 16484 047407* 0000 CDFMYF / IF SELECTED, RETURN TO THIS FIELD 16485 16486 16487 /******************** EDITOR MATH INIT CALL **************************** 16488 / THE FOLLOWING CALL IS MADE TO THE MATH FIELD TO INITIALIZE THE MATH 16489 / MODULE CODE AND SET "MTHTYP" TO 1 IN THE MATH FIELD WHEN A GOLD TOP HAS 16490 / BEEN DONE IN A CTRL BLOCK WITHIN A EDITOR MATH WORK AREA. OTHERWISE 16491 / MATH WOULD NOT GET REINITALIZED AND EDITOR MATH ENDS UP BROKEN. A 1 IS 16492 / PLACED IN THE AC BEFORE THE CALL TO TELL "RTRN4" THAT IT IS TO INIT FOR 16493 / EDITOR MATH NOT LIST PROCESSING MATH. NOTE THAT THIS SAME INIT CALL 16494 / TAKES PLACE IN "OVINI1" AND HERE IN "OVEXIT". 16495 16496 AC0001 / SET THE AC = 1 undefined ^ 047410* 0000 16497 CIFMTH / CHANGE PROGRAM CONTROL TO MATH FIELD undefined ^ 047411* 0000 16498 JMS RTRN4 / GO SET "MTHTYP" = 1; AND INIT MATH MODULE undefined ^ undefined ^ 047412* 4000 16499 16500 /****************** END MATH INIT CALL ***************************** 16501 16502 16503 047413* 4776 JMS RPCHK / IF GOTO PAGE, DON'T ALTER SCREEN IMAGE 16504 047414* 4775 JMS SAVLMD / SAVE MOD FLAG IN TEXT 16505 16506 / *** CLOSE FILE AND EXIT 16507 047415* 7610 SKP CLA 16508 AC0001 undefined ^ 047416* 0000 16509 047417* 4510 CHKPTR 16510 047420* 7700 SMA CLA 16511 047421* 5216 JMP .-3 / GET TO ETX 16512 EDEXI1, AC7777 undefined ^ 047422* 0000 16513 047423* 4510 CHKPTR 16514 047424* 7450 SNA 16515 047425* 5222 JMP .-3 / COPY TO STX 16516 047426* 7710 SPA CLA 16517 047427* 5234 JMP EDEXI2 16518 047430* 1535 TAD I CURPTR 16519 047431* 4774 JMS DSKCAL 16520 XPUTET undefined ^ 047432* 0000 16521 047433* 5222 JMP EDEXI1 16522 16523 EDEXI2, / NEXT, DETERMINE TIME THIS EDIT 16524 / AND NEW TOTAL EDIT TIME 16525 047434* 1340 TAD LSTPAS 16526 047435* 7650 SNA CLA / IF FINAL PASS, OK 16527 047436* 5303 JMP TOLVED / ELSE DONT UPDATE TIMES, AND DON'T 16528 / INCREMENT THE VERSION NUMBER 16529 CDFSYS undefined ^ 047437* 0000 16530 TAD I (CLOCK+3) undefined ^ undefined ^ 047440* 1773 16531 047441* 3336 DCA MIN / CURRENT MINUTES 16532 TAD I (CLOCK+4) / CURRENT HOUR undefined ^ undefined ^ 047442* 1772 16533 047443* 0000 CDFMYF 16534 047444* 4771 JMS TOMIN 16535 047445* 3335 DCA TMPMIN 16536 047446* 1770 TAD OLDMIN 16537 047447* 3336 DCA MIN / INITIAL MINUTES 16538 047450* 1767 TAD OLDHR / INITIAL HOURS 16539 047451* 4771 JMS TOMIN 16540 047452* 7041 CIA 16541 047453* 1335 TAD TMPMIN / CURRENT TIME - INITIAL TIME 16542 047454* 7510 SPA 16543 047455* 1366 TAD (30^74) / IF NEGATIVE, THE CLOCK ROLLED OVER.. 16544 / ADD 60 * 24 = MINUTES IN A DAY 16545 047456* 3335 DCA TMPMIN 16546 047457* 1365 TAD (15) 16547 CIFFIO undefined ^ 047460* 0000 16548 FILEIO undefined ^ 047461* 0000 16549 XHDRGT / GET OLD TOTAL TIME undefined ^ 047462* 0000 16550 047463* 7100 CLL / DONE TO CHECK FOR OVERFLOW IN NEXT ADD 16551 047464* 1335 TAD TMPMIN / NEW TOTAL TIME 16552 047465* 7430 SZL / SKIP IF TIME < 68:15 16553 AC7777 / TIME WAS RESET, SET TO MAX undefined ^ 047466* 0000 16554 047467* 7421 MQL 16555 047470* 1365 TAD (15) 16556 CIFFIO undefined ^ 047471* 0000 16557 FILEIO undefined ^ 047472* 0000 16558 XHDRPT / STORE NEW TOTAL TIME undefined ^ 047473* 0000 16559 047474* 1335 TAD TMPMIN 16560 047475* 7421 MQL 16561 047476* 1364 TAD (14) 16562 CIFFIO undefined ^ 047477* 0000 16563 FILEIO undefined ^ 047500* 0000 16564 XHDRPT / SAVE TIME THIS EDIT undefined ^ 047501* 0000 16565 047502* 5316 JMP LVED 16566 16567 047503* 0000 TOLVED, CDFMYF 16568 047504* 1363 TAD (10) 16569 CIFFIO undefined ^ 047505* 0000 16570 FILEIO / GET THE VERSION NUMBER (THE NUMBER undefined ^ 047506* 0000 16571 XHDRGT / OF TIMES THE DOCUMENT HAS BEEN EDITED) undefined ^ 047507* 0000 16572 047510* 1362 TAD (-1) / DECREMENT THIS NUMBER BY ONE, SO THAT 16573 / GOLD TOP, GOLD BOTTOM AND GO-TO-PAGE 16574 047511* 7421 MQL / DON'T ALTER IT 16575 047512* 1363 TAD (10) 16576 CIFFIO undefined ^ 047513* 0000 16577 FILEIO undefined ^ 047514* 0000 16578 XHDRPT / REPLACE THE VERSION NUMBER undefined ^ 047515* 0000 16579 16580 047516* 4774 LVED, JMS DSKCAL 16581 XDSKCL / AND CLOSE IT undefined ^ 047517* 0000 16582 047520* 0000 CDFMYF 16583 047521* 5761 JMP OVJRTN / THEN RETURN TO MAIN LINE EXIT 16584 16585 UNSLCS, XX / UNSELECT SUBROUTINE undefined ^ 047522* 0000 16586 047523* 4504 MODSET 16587 047524* 1742 EDTMOD / SET ADVANCE MODE 16588 047525* 1363 TAD (SLCTMD) 16589 047526* 3134 DCA GRAMUN 16590 047527* 4760 JMS SETUNT 16591 047530* 4757 JMS GETUNT 16592 047531* 0000 .-. 16593 047532* 7640 SZA CLA 16594 047533* 5731 JMP I .-2 16595 047534* 5722 JMP I UNSLCS 16596 16597 047535* 0000 TMPMIN, 0 / TEMP., ALWAYS CONTAINS MINUTES 16598 047536* 0000 MIN, 0 / MINUTES FOR TOMIN 16599 047537* 0000 HR, 0 / NEG OF HOURS IN TOMIN 16600 047540* 0000 LSTPAS, 0 / FLAG - ZERO INDICATES ENTRY THRU OVEXIT, 16601 / OTHER WHEN ENTRY THRU OVXITF. 16602 16603 X=. / INDICATE FIRST FREE LOCATION ON PAGE 16604 /--------------------- 16605 047557* 0463 PAGE 047560* 0650 047561* 5122 047562* 7777 047563* 0010 047564* 0014 047565* 0015 047566* 2640 047567* 0235 047570* 0236 047571* 7677 047572* 0004 047573* 0003 047574* 5014 047575* 2244 047576* 7711 047577* 7600 16606 16607 047600* 4215 XVUDKS, JMS BFOVLY 16608 047601* 7607 UDKOVL 16609 16610 AC7777 / SET AC = -1 undefined ^ 047602* 0000 16611 CIFMNU / CHANGE INSTRUCTION FIELD TO MENU FIELD undefined ^ 047603* 0000 16612 PGSWAP / AC=-1 SO JUST LOAD IN THE SAVE AREA undefined ^ 047604* 0000 16613 16614 047605* 4523 OVLJMP 16615 047606* 2020 OVMENU / RETURN TO EDITOR MENU WHEN DONE 16616 16617 UDKONM=15 / OVERLAY NUMBER FOR DK 16618 BUFONM=17 / DUMMY OVERLAY FOR BUFFLD LOCK WORD 16619 UDKOVL, -DSOUDK / -(LENGTH OF WPUDKS CODE) /M183 undefined ^ 047607* 0000 16620 047610* 0000 0 / LOCAL START LOC OF WPUDKS CODE 16621 DSOUDK-DSSEDT / -(LENGTH OF UDK BUFFER) /M183 undefined ^ undefined ^ 047611* 0000 16622 UDKSTR / LOCNS OF BUFFLD TO WRITE OUT (READ BACK) undefined ^ 047612* 0000 16623 047613* 0015 UDKONM 16624 047614* 0200 200 / OVERLAY TO CALL & START ADDR IN BUFFLD 16625 16626 16627 BFOVLY, XX / LOAD OVERLAY INTO BUFFLD undefined ^ 047615* 0000 16628 / AFTER SAVEING RELEVANT LOCATIONS 16629 / RESTORE THOSE LOCATIONS ON RETURN FROM OVERLAY 16630 TAD (RXEWT+2000) / LOAD OP CODE undefined ^ undefined ^ 047616* 1377 16631 047617* 4245 JMS BFSVRS / WRITE OUT BUFFLD LOCATIONS 16632 047620* 3223 DCA BFOVT4 / SAVE OVERLAY NUMBER 16633 CIFMNU undefined ^ 047621* 0000 16634 JMS I OLAYCL / LOAD OVERLAY undefined ^ undefined ^ 047622* 4400 16635 047623* 0000 BFOVT4, .-. 16636 047624* 2244 ISZ BFOVT1 / BUMP ARG PTR TO ENTRY ADDR 16637 047625* 6224 RIF 16638 047626* 1376 TAD (CIF+10) 16639 047627* 3232 DCA BFOVT2 / STORE CIF TO BUFFLD 16640 047630* 1644 TAD I BFOVT1 16641 047631* 3223 DCA BFOVT4 / STORE ENTRY ADDR 16642 047632* 0000 BFOVT2, .-. / ---CIF BUFFLD--- 16643 047633* 4623 JMS I BFOVT4 / CALL OVERLAY 16644 TAD (RXERD) / RESTORE BUFFLD CONTENTS undefined ^ undefined ^ 047634* 1375 16645 047635* 4245 JMS BFSVRS 16646 047636* 7200 CLA / OVERLAY NUM NOT NEEDED THIS TIME! 16647 CIFMNU undefined ^ 047637* 0000 16648 JMS I OLAYCL undefined ^ undefined ^ 047640* 4400 16649 047641* 0017 BUFONM / CLEAR BUFFLD LOCK WORD 16650 047642* 2215 ISZ BFOVLY / BUMP TO RETURN ADDR 16651 047643* 5615 JMP I BFOVLY 16652 16653 047644* 0000 BFOVT1, .-. / TEMP 16654 16655 BFSVRS, XX / BUFFLD SAVE-RESTORE SUBROUTINE undefined ^ 047645* 0000 16656 047646* 3266 DCA BFOVT5 / SAVE RXHAN OP-CODE (READ/ WRITE) 16657 047647* 1615 TAD I BFOVLY / GET ARG PTR 16658 047650* 3244 DCA BFOVT1 16659 TAD (DLSEDT) undefined ^ undefined ^ 047651* 1375 16660 047652* 3223 DCA BFOVT4 / SET DISK LOCN 16661 047653* 1644 BFOVL1, TAD I BFOVT1 / GET NEXT -COUNT 16662 047654* 7500 SMA 16663 047655* 5645 JMP I BFSVRS / RETURN IF NOT COUNT 16664 047656* 3232 DCA BFOVT2 16665 047657* 2244 ISZ BFOVT1 16666 047660* 1644 TAD I BFOVT1 / GET ADDR 16667 047661* 3267 DCA BFOVT3 16668 047662* 2244 ISZ BFOVT1 16669 047663* 1223 BFOVL2, TAD BFOVT4 / LOAD DISK BLOCK # 16670 CDFBUF undefined ^ 047664* 0000 16671 047665* 4774 JMS SYSIO 16672 047666* 0000 BFOVT5, .-. / READ-WRITE OP-CODE 16673 047667* 0000 BFOVT3, .-. / ADDR 16674 047670* 2223 ISZ BFOVT4 / BUMP DISK BLOCK # 16675 047671* 1373 TAD (400) 16676 047672* 1267 TAD BFOVT3 16677 047673* 3267 DCA BFOVT3 / BUMP ADDR 16678 047674* 2232 ISZ BFOVT2 16679 047675* 5263 JMP BFOVL2 / LOOP TIL COUNT COMPLETE 16680 047676* 5253 JMP BFOVL1 16681 16682 / SUBROUTINE TO CONVERT HOURS AND MINUTES TO MINTUTES 16683 16684 047677* 0000 TOMIN, 0 16685 047700* 7450 SNA 16686 047701* 5307 JMP MIN2 / IF ZERO AC (NO HOURS), JUMP 16687 047702* 7041 CIA 16688 047703* 3772 DCA HR / LOOP CONTROL 16689 047704* 1371 LOOP, TAD (74) 16690 047705* 2772 ISZ HR 16691 047706* 5304 JMP LOOP 16692 047707* 1770 MIN2, TAD MIN / ADD MINUTES-FROM-HOURS TO MINUTES 16693 047710* 5677 JMP I TOMIN 16694 16695 047711* 0000 RPCHK, 0 / IF GOTO PAGE, LEAVE SCREEN ALONE 16696 047712* 1767 TAD RPBIN1 / GOTO PAGE FLAG 16697 047713* 7710 SPA CLA / SKIP IF NOT GOTO PAGE 16698 047714* 5327 JMP RPXCHK / CONTINUE GOTO PAGE CLOSE 16699 16700 047715* 4766 JMS CLR132 / 80-COL. MODE 16701 047716* 7200 CLA 16702 047717* 3765 DCA SPLTFL / THIS MAKES FOR 24 LINES 16703 16704 CIFMNU / CHANGE TO MENU INSTRUCTION FIELD undefined ^ 047720* 0000 16705 AC0003 / SET UP FOR CLEAR SCREEN REQUEST undefined ^ 047721* 0000 16706 047722* 4775 JMS I (CALLN1) / GO TO STATUS LINE ROUTINE FOR CLEAR 16707 16708 047723* 1364 TAD (NPTRS) / PICK UP MAXIMUM NUMBER OF LINES 16709 047724* 3176 DCA SCRNLN / SAVE FOR USE BY PROMPT ROUTINE 16710 16711 047725* 4763 JMS PROMPT /"...FILING BEING DONE" MSG 16712 047726* 7635 MSGF / MSG POINTER 16713 16714 RPXCHK, CIFMNU / CHANGE INSTRUCTION FIELD TO MENU FIELD undefined ^ 047727* 0000 16715 PGSWAP / AC=0, SAVE SWAP AREA & RELOAD MENU CODE undefined ^ 047730* 0000 16716 16717 047731* 5711 JMP I RPCHK / RESUME CLOSE PROCESS 16718 16719 X=. / INDICATE FIRST FREE LOCATION ON PAGE 16720 /--------------------- 16721 047763* 4470 PAGE 047764* 0030 047765* 2345 047766* 6740 047767* 6737 047770* 7536 047771* 0074 047772* 7537 047773* 0400 047774* 5041 047775* 0000 047776* 6212 047777* 2000 16722 16723 /*************************************************************************** 16724 /**** START OF OVERLAY **** 16725 /*************************************************************************** 16726 16727 OVRNUM=OVRNUM+200 16728 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 16729 16730 RELOC 16731 16732 RELOC OVLAY1 16733 047400* 4200 OVRNUM 16734 16735 OVDEAD= .-OVLAY1+OVRNUM / THE USER TYPED "GOLD:DEAD" 16736 047401* 5777 JMP XVDEAD 16737 16738 16739 OVRQSP= .-OVLAY1+OVRNUM / THE USER TYPED "GOLD:SPACE" 16740 047402* 5776 JMP XVRQSP / (REQUIRED OR NONBREAKING SPACE) 16741 16742 16743 RPPER9= .-OVLAY1+OVRNUM 16744 047403* 5211 JMP XPPER9 / MULTIPLE MATH 'START' BLOCKS FOUND 16745 16746 RPPER5= .-OVLAY1+OVRNUM 16747 047404* 5207 JMP XPPER5 / REPORT INVALID CHARACTER STRING 16748 16749 RPPER3= .-OVLAY1+OVRNUM 16750 / JMP XPPER3 16751 16752 047405* 1375 XPPER3, TAD (RANBAD) 16753 047406* 7410 SKP 16754 047407* 1375 XPPER5, TAD (CHABAD) / AC => ADDR. OF MSG. STRING 16755 047410* 7410 SKP 16756 047411* 1375 XPPER9, TAD (RPPME9) 16757 047412* 3214 DCA RPMSG / SUPPLY FOR OUTPUT TO SCREEN 16758 047413* 4774 JMS PUTMSG / DISPLAY AN ERROR MSG. ON THE 16759 / SAME LINE AS PAGE NUMBER MSG. 16760 047414* 0000 RPMSG, .-. / ADDR. OF DESIRED ERROR MSG. 16761 047415* 4774 JMS PUTMSG 16762 047416* 3400 RPPRETRY 16763 047417* 4773 JMS GETLIN 16764 047420* 7423 RPBUF /C206 16765 047421* 4523 OVLJMP; OVRPP4 / STARTUP REPOSITIONING AGAIN... 047422* 4601 16766 16767 047423* 7777 RPBUF, -1 /C206 16768 047424* 0000 ZBLOCK 1 16769 16770 /*********************************************************************** 16771 /**** PREVIOUS AND NEXT SCREEN ROUTINES **** 16772 /*********************************************************************** 16773 16774 OVPRSC= .-OVLAY1+OVRNUM / ENTER FOR PREVIOUS SCREEN 16775 047425* 7001 IAC 16776 16777 OVNXSC= .-OVLAY1+OVRNUM / ENTER FOR NEXT SCREEN 16778 047426* 3276 DCA ARTMP / AC = MOVE MODE (0=ADV, 1=BKP) 16779 047427* 4504 MODSET 16780 047430* 7475 ARCMOD / SET MOVE MODE 16781 AC0001 undefined ^ 047431* 0000 16782 047432* 3134 DCA GRAMUN / SET UNIT TO LINE 16783 047433* 1276 TAD ARTMP / NOW GET MOVE MODE BACK AGAIN 16784 047434* 7650 SNA CLA / DISPATCH TO PROPER ROUTINE 16785 047435* 5252 JMP NXSCR1 / (NEXT SCREEN) 16786 16787 047436* 4772 JMS SCRNSZ / PREVIOUS SCREEN ROUTINE 16788 047437* 3771 DCA CNSCRL / STORE SCROLL COUNT 16789 047440* 4770 JMS BACKUN / TRY 1ST BACKUP 16790 047441* 5767 JMP EIBAD / (CAN'T, GO BUZZ) 16791 16792 047442* 7200 PRVSC1, CLA 16793 047443* 0000 CDFMYF 16794 047444* 1771 TAD CNSCRL / DONE? 16795 047445* 7650 SNA CLA 16796 047446* 5766 JMP EINEXT / YES 16797 047447* 4770 JMS BACKUN / NO, TRY BACKING UP AGAIN 16798 047450* 5766 JMP EINEXT / (FAIL NOW IS OKAY) 16799 047451* 5242 JMP PRVSC1 / LOOP TO TEST IF DONE 16800 16801 047452* 4772 NXSCR1, JMS SCRNSZ / NEXT SCREEN ROUTINE 16802 047453* 7041 CIA / NEGATE THE SCROLL COUNT 16803 047454* 7001 IAC / SET TO DO ONE LESS 16804 047455* 3771 DCA CNSCRL 16805 047456* 4765 JMS SETUNT / SET UNIT CODE 16806 047457* 4764 JMS LODCHR / START US OFF 16807 047460* 5767 JMP EIBAD / (CAN'T, GO BUZZ) 16808 047461* 4763 NXSCR2, JMS GETUNT / CK FOR END OF LINE 16809 047462* 0000 NXSCR3, .-. 16810 047463* 7640 SZA CLA / DONE WITH LINE? 16811 047464* 5662 JMP I NXSCR3 / NO, CONTINUE LOOKING 16812 16813 047465* 0000 CDFMYF 16814 047466* 1771 TAD CNSCRL / DONE? 16815 047467* 7650 SNA CLA 16816 047470* 5766 JMP EINEXT / YES 16817 047471* 3141 DCA SCRLFL / NO, ENSURE SCROLL FLAG 0 16818 047472* 4764 JMS LODCHR / AND GO ANOTHER LINE 16819 047473* 5766 JMP EINEXT / (FAIL NOW IS OKAY) 16820 047474* 5261 JMP NXSCR2 / LOOP TO GET END OF LINE 16821 16822 047475* 0030 ARCMOD, SCHMOD!SLTMOD 16823 047476* 0000 ARTMP, .-. 16824 16825 16826 / 16827 / We got here because we entered into a tech dead thing and now we/A226 16828 / want to get out /A226 16829 / 16830 DEDKYX, 16831 047477* 7200 CLA / /A226 16832 047500* 1535 TAD I CURPTR / get current char /A226 16833 DEDBNX, TAD (-ECSTOV) / Are we at the start yet ? /A226 undefined ^ undefined ^ 047501* 1362 16834 047502* 7650 SNA CLA / /A226 16835 047503* 5767 JMP EIBAD / Yes ,Must have been a req space /A226 16836 / so beep and get out /A226 16837 047504* 4507 BKPPTR / Not there yet so keep backing up /A226 16838 047505* 7000 NOP / /A226 16839 047506* 5301 JMP DEDBNX / Try previous one /A226 16840 16841 / 16842 / The compound Tech-Mcs dead has been split now back up to 2nd /A226 16843 / 1st non-tech char in string /A226 16844 / 16845 16846 16847 047507* 4507 DEDBKP, BKPPTR / Backup /A226 16848 047510* 7000 NOP / Shouldn't happen /A226 16849 047511* 4514 SLNMOD / Set line modified /A226 16850 AC0001 / /A226 undefined ^ 047512* 0000 16851 047513* 5761 JMP EIFIX1 / Go listen for more /A226 16852 16853 16854 16855 16856 X=. / INDICATE FIRST FREE LOCATION ON PAGE 16857 /--------------------- 16858 047561* 0402 PAGE 047562* 0000 047563* 0463 047564* 4241 047565* 0650 047566* 0406 047567* 0400 047570* 2203 047571* 1763 047572* 2335 047573* 4506 047574* 6000 047575* 3400 047576* 7707 047577* 7600 16859 16860 16861 16862 / HANDLE "GOLD:DEAD" COMMAND (DEAD KEY = EDDEAD) 16863 16864 047600* 4777 XVDEAD, JMS LODCHR 16865 047601* 5776 JMP EIBAD 16866 047602* 4775 JMS CHKALP 16867 047603* 5227 JMP DEDKYA / JUMP IF NOT ALPHA 16868 047604* 4507 BKPPTR 16869 047605* 5776 JMP EIBAD 16870 047606* 4775 JMS CHKALP 16871 047607* 5260 JMP DEDKYB / JUMP IF PREV NOT ALPHA 16872 AC7777 / SET CURSOR TO START OF DEAD- undefined ^ 047610* 0000 16873 047611* 1136 TAD CURSOR / KEY SEQUENCE. FROM HERE GETS 16874 047612* 3136 DCA CURSOR / REFRESHED. 16875 047613* 4514 SLNMOD / SAVE LINE POSN FOR REFRESH. 16876 TAD (ECSTOV) undefined ^ undefined ^ 047614* 1374 16877 047615* 4773 JMS INSRL1 / BOTH ALPHA, START OVERSTRIKE 16878 047616* 4506 DEDKYE, ADVPTR 16879 047617* 5776 JMP EIBAD / ADVANCE OVER BOTH 16880 047620* 4506 ADVPTR 16881 047621* 7000 NOP 16882 047622* 7200 CLA 16883 TAD (ECNDOV) undefined ^ undefined ^ 047623* 1374 16884 047624* 4773 JMS INSRL1 / END OVERSTRIKE 16885 047625* 4514 SLNMOD 16886 047626* 5772 JMP EIFIX / JUMP TO LISTEN FOR MORE 16887 16888 DEDKYA, TAD (-ECSTOV) / IS CURRENT OVERSTRIKE? undefined ^ undefined ^ 047627* 1374 16889 047630* 7640 SZA CLA 16890 047631* 5776 JMP EIBAD / JUMP IF NOT 16891 047632* 4506 ADVPTR / AND NOT A "REQUIRED SPACE"? 16892 047633* 5247 JMP DEDKYC / (BUG) 16893 AND P177 / IGNORE ATTRIBUTES undefined ^ undefined ^ 047634* 0000 16894 TAD (-ECSPC) undefined ^ undefined ^ 047635* 1374 16895 047636* 7640 SZA CLA /M172 16896 047637* 5241 JMP DEDKA1 /A172 16897 /d226 BKPPTR / Restore pointer to beginning /A172 16898 /d226 NOP / of dead key seq /A172 16899 /d226 JMP EIBAD / NO-I MEAN YES IT'S A REQUIRED SPACE 16900 / SO USER CAN'T BREAK APART OVERSTRIKE 16901 / SEQUENCE BECAUSE, CONCEPTUALLY, IT'S 16902 047640* 5321 JMP DEDKYH / Check if he wants to Undead a tech /A226 16903 16904 16905 / NOT AN OVERSTRIKE 16906 047641* 4506 DEDKA1, ADVPTR 16907 047642* 5247 JMP DEDKYC / ADVANCE TO END 16908 TAD (-ECNDOV) undefined ^ undefined ^ 047643* 1374 16909 047644* 7640 SZA CLA 16910 047645* 5241 JMP .-4 16911 047646* 3535 DCA I CURPTR / DELETE END MARKER 16912 047647* 4507 DEDKYC, BKPPTR 16913 047650* 5776 JMP EIBAD / BACK UP TO START 16914 TAD (-ECSTOV) undefined ^ undefined ^ 047651* 1374 16915 047652* 7640 SZA CLA 16916 047653* 5247 JMP .-4 16917 047654* 3535 DCA I CURPTR / DELETE START 16918 047655* 4514 SLNMOD 16919 AC0001 undefined ^ 047656* 0000 16920 047657* 5771 JMP EIFIX1 / ADVANCE CURSOR AND LISTEN 16921 16922 16923 / 16924 / PREVIOUS CHAR (NOW CURRENT CHAR) IS NOT PRINTABLE. 16925 / IF IT'S AN OVERSTRIKE SEQUENCE, THEN APPEND TO IT. 16926 / IF IT'S A REQUIRED SPACE OR ANYTHING ELSE, THEN USER ERROR (BEEP). 16927 / 16928 DEDKYB, TAD (-ECNDOV) / IS PREVIOUS CHAR AN OVERSTRIKE? undefined ^ undefined ^ 047660* 1374 16929 047661* 7640 SZA CLA 16930 047662* 5273 JMP DEDKYG / NO: USER ERROR 16931 047663* 4507 BKPPTR / YES: IS PREVIOUS CHAR A REQUIRED SPACE? 16932 047664* 5273 JMP DEDKYG / (BUG - FIX CURSOR POS) 16933 AND P177 / (IGNORE ATTRIBUTES) undefined ^ undefined ^ 047665* 0000 16934 TAD (-ECSPC) undefined ^ undefined ^ 047666* 1374 16935 047667* 7640 SZA CLA 16936 047670* 5276 JMP DEDKYD / NO: APPEND TO OVERSTRIKE SEQUENCE 16937 047671* 4506 ADVPTR / YES: USER ERROR - RESTORE CURPTR ... 16938 047672* 5776 JMP EIBAD / (BUG) 16939 047673* 4506 DEDKYG, ADVPTR / ... TO POSITION AT ENTRY TO XVDEAD ... 16940 047674* 5776 JMP EIBAD / (BUG) 16941 047675* 5776 JMP EIBAD / ... AND COMPLAIN 16942 16943 / 16944 / AT ENTRY TO XVDEAD, THE CURSOR WAS ON A PRINTING CHARACTER, 16945 / AND A NON-REQUIRED-SPACE OVERSTRIKE SEQUENCE PRECEEDED THE CURSOR. 16946 / THUS, WE NEED TO APPEND THE PRINTING CHARACTER TO THE OVERSTRIKE 16947 / SEQUENCE. 16948 / (CURPTR IS NOW ON CHAR BEFORE ECNDOV) 16949 / 16950 047676* 4506 DEDKYD, ADVPTR / ADVANCE CURPTR TO ECNDOV 16951 047677* 5776 JMP EIBAD / (BUG) 16952 047700* 7200 CLA / DELETE ECNDOV 16953 047701* 3535 DCA I CURPTR / IN EDIT BUFFER 16954 AC0010 / Incase it is a technical re-display hash/A172 undefined ^ 047702* 0000 16955 047703* 4503 PUTOUT /A172 16956 047704* 4770 JMS PUTSPC /A172 16957 EXGOVS /A172 undefined ^ 047705* 0000 16958 047706* 5216 JMP DEDKYE / GO INSERT ECNDOV AFTER PRINTING CHAR 16959 16960 / 16961 / HANDLE "GOLD SPACE" (REQUIRED SPACE = EDRQSP) 16962 / 16963 / A "REQUIRED SPACE" IS A SPACE THAT WILL NOT BE USED AS A LINE BREAK 16964 / BY THE JUSTIFICATION ROUTINES (A NONBREAKING SPACE). 16965 / 16966 / "REQUIRED SPACE" IS IMPLEMENTED AS AN OVERSTRIKE SEQUENCE CONTAINING 16967 / TWO SPACES. THIS APPEARS IN THE EDIT BUFFER AS: 16968 / ECSTOV ECSPC ECSPC ECNDOV 16969 / (THE ECSPC CHARS MAY HAVE ATTRIBUTES SET.) 16970 / SUCH A SEQUENCE IS IMPOSSIBLE TO ENTER MANUALLY BECAUSE OVERSTRIKE 16971 / SEQUENCES MAY ONLY CONTAIN PRINTING CHARACTERS. 16972 / CONCEPTUALLY, SUCH SEQUENCES ARE HEREBY REDEFINED AS A "REQUIRED SPACE", 16973 / AND THUS MAY NOT BE MANIPULATED OR DISPLAYED AS OVERSTRIKE SEQUENCES. 16974 / 16975 / THIS ROUTINE INSERTS A "REQUIRED SPACE" INTO THE EDIT BUFFER. 16976 / 16977 047707* 4514 XVRQSP, SLNMOD / TELL FXSCRL WE'RE MODIFYING EDIT BUFFER 16978 TAD (ECSTOV) / INSERT ECSTOV INTO EDIT BUFFER undefined ^ undefined ^ 047710* 1374 16979 047711* 4773 JMS INSRL1 16980 TAD (ECSPC) / INSERT ECSPC undefined ^ undefined ^ 047712* 1374 16981 047713* 4773 JMS INSRL1 16982 TAD (ECSPC) / INSERT ECSPC undefined ^ undefined ^ 047714* 1374 16983 047715* 4773 JMS INSRL1 16984 TAD (ECNDOV) / INSERT ECNDOV undefined ^ undefined ^ 047716* 1374 16985 047717* 4773 JMS INSRL1 16986 047720* 5772 JMP EIFIX / DONE 16987 16988 16989 / 16990 / Test if user is trying to UNDEAD a tech-MCs-Linedrawing compose /A226 16991 / seq which he has previously extended with extra chars /A226 16992 / 16993 DEDKYH, 16994 047721* 4506 ADVPTR / Look at char after space /A226 16995 047722* 5776 JMP EIBAD / Bug .. /A226 16996 AND P177 / Strip off attributes /A226 undefined ^ undefined ^ 047723* 0000 16997 047724* 1367 TAD (-60) / Is it greater than 60 /A226 16998 047725* 7550 SPA SNA / ? /A226 16999 047726* 5766 JMP DEDKYX / No , back pointer up and get out /A226 17000 047727* 1365 TAD (60-64) / Is it less than or equal to 63 /A226 17001 047730* 7540 SMA SZA / /A226 17002 047731* 5766 JMP DEDKYX / No , Backup and get out /A226 17003 047732* 7200 CLA / /A226 17004 047733* 4506 ADVPTR / Move on to "real" char /A226 17005 047734* 5776 JMP EIBAD / Bug.. shouldn't happen /A226 17006 047735* 4506 ADVPTR / Now we should be on the End Dead /A226 17007 047736* 5776 JMP EIBAD / Bug.. shouldn't happen /A226 17008 TAD (-ECNDOV) / Is it really the end of dead ? /A226 undefined ^ undefined ^ 047737* 1374 17009 047740* 7650 SNA CLA / /A226 17010 047741* 5766 JMP DEDKYX / Yes , backup and get out /A226 17011 TAD (ECNDOV) / Put End of Dead here /A226 undefined ^ undefined ^ 047742* 1374 17012 047743* 4773 JMS INSRL1 / Now insert it /A226 17013 DEDSNX, TAD (-ECNDOV) / Is it end of dead ? /A226 undefined ^ undefined ^ 047744* 1374 17014 047745* 7650 SNA CLA / /A226 17015 047746* 5352 JMP DEDKRB / Yes , go rubout End of dead /A226 17016 047747* 4506 ADVPTR / Try the next one /A226 17017 047750* 5776 JMP EIBAD / Bug.. shouldn't happen /A226 17018 047751* 5344 JMP DEDSNX / Try next /A226 17019 047752* 3535 DEDKRB, DCA I CURPTR / Rubout the end of dead /A226 17020 047753* 5764 JMP DEDBKP / Go back to 2nd char in dead seq /A226 17021 17022 X=. / INDICATE FIRST FREE LOCATION ON PAGE 17023 /--------------------- 17024 047764* 7507 PAGE 047765* 7774 047766* 7477 047767* 7720 047770* 2147 047771* 0402 047772* 0401 047773* 5260 047774* 0000 047775* 3553 047776* 0400 047777* 4241 17025 17026 17027 /*************************************************************************** 17028 /**** START OF OVERLAY **** 17029 /*************************************************************************** 17030 17031 OVRNUM=OVRNUM+200 / NEW OVERLAY NUMBER 17032 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 17033 17034 RELOC 17035 17036 RELOC OVLAY1 17037 047400* 4400 OVRNUM 17038 17039 17040 / MERGE TRAILER FOR LIST PROCESSING. 17041 / 17042 / THE CHARACTER "<" IN A FORM DOCUMENT TRAILER IS TREATED IN A SPECIAL WAY 17043 / DEPENDING ON WHAT FOLLOWS IT: 17044 / 17045 / - SUBSTITIUTE THE TEXT OF THE NAMED FIELD IN THE 17046 / CURRENT RECORD AT THIS POINT IN THE OUTPUT. IF A 17047 / MATCH FOR THIS FIELD IS NOT FOUND WITHIN THE CURRENT 17048 / MATH RESULT BUFFER THEN THIS FIELD IS OUTPUT JUST AS 17049 / IT APPEARS IN THE FORM DOCUMENT. 17050 / 17051 / - OUTPUT THIS FIELD AS IS. DO NOT TREAT THIS FIELD AS 17052 / THE START OF A REPETITIVE ZONE. 17053 / 17054 / - OUTPUT THIS FIELD AS IS. DO NOT TREAT THIS FIELD AS 17055 / THE END OF A REPETITIVE ZONE. 17056 / 17057 / - OUTPUT THIS FIELD AS IS. DO NOT TREAT THIS FIELD AS 17058 / A COMMAND TO COPY THE TEXT OF THE CURRENT RECORD FROM 17059 / THE LIST DOCUMENT TO THE OUTPUT. 17060 / 17061 / <> - OUTPUT THIS FIELD AS IS. DO NOT TREAT THIS FIELD AS 17062 / A COMMAND TO ADVANCE TO THE NEXT RECORD IN THE LIST 17063 / DOCUMENT. 17064 / 17065 / << - OUTPUT A SINGLE "<" AT THIS POINT. 17066 / 17067 / NO OTHER CHARACTERS IN THE FORM DOCUMENT ARE TREATED SPECIALLY. 17068 17069 17070 OVMRG5= .-OVLAY1+OVRNUM / FIFTH MERGE OVERLAY 17071 17072 047401* 4513 TMRGSA, CURMOV 17073 047402* 7000 NOP 17074 047403* 4777 TMRGSB, JMS LODCHR / LOOKING FOR START OF FIELD 17075 047404* 5776 JMP TMRGDON / WE HIT END OF THE FORM DOCUMENT 17076 17077 AND P177 / STRIP MODE BITS FROM CHARACTER undefined ^ undefined ^ 047405* 0000 17078 047406* 1375 TAD (-"<+200) / IS CHARACTER = "<"? 17079 047407* 7650 SNA CLA / SKIP IF: NOT 17080 047410* 5213 JMP TMRGS7 / START OF FIELD NAME - PROCESS IT 17081 047411* 4340 TMRGSC, JMS TMRGADV / ADVANCE CURSOR BY ONE CHARACTER 17082 047412* 5203 JMP TMRGSB / CONTINUE LOOKING FOR START OF FIELD 17083 17084 047413* 1135 TMRGS7, TAD CURPTR / GET POINTER TO LEFT ANGLE BRACKET 17085 047414* 3156 DCA MRGPT2 / SAVE POINTER TO LEFT ANGLE BRACKET 17086 047415* 4514 SLNMOD / SET LINE MODIFIED FLAG 17087 047416* 4774 JMS JCLEAN / WE'RE GOING TO CHANGE SOMETHING 17088 047417* 4506 ADVPTR / GET NEXT CHARACTER 17089 047420* 5776 JMP TMRGDON / WE HIT END OF TEXT 17090 17091 AND P177 / STRIP MODE BITS undefined ^ undefined ^ 047421* 0000 17092 047422* 1375 TAD (-"<+200) / IS CHARACTER ANOTHER "<"? 17093 047423* 7450 SNA / SKIP IF: NOT 17094 047424* 5346 JMP TMLLAB / GO PROCESS A "<<" SEQUENCE 17095 17096 047425* 1373 TAD ("<-">) / IS CHARACTER = ">"? 17097 047426* 7450 SNA / SKIP IF: NOT 17098 047427* 5201 JMP TMRGSA / NULL FIELD NAME - IGNORE 17099 17100 047430* 1372 TAD (">-"!) / IS CHARACTER = "!"? 17101 047431* 7650 SNA CLA / SKIP IF: NOT 17102 047432* 5201 JMP TMRGSA / SPECIAL NAME - IGNORE 17103 17104 17105 / MATCH TRAILER FIELD NAME IN FORM DOCUMENT TO FIELD NAME FROM MATH 17106 / RESULT BUFFER. 17107 047433* 0000 CDFMYF / CHANGE DF TO MY FIELD 17108 047434* 4241 JMS TMFNIF / MATCH FIELD NAME IN FORM DOCUMENT TO 17109 RESBUF / FIELD NAME IN MATH RESULT BUFFER undefined ^ 047435* 0000 17110 17111 CDFLP / RESBUF IS IN LIST PROCESS. FIELD undefined ^ 047436* 0000 17112 047437* 5211 JMP TMRGSC / NO MATCH FOUND 17113 047440* 5201 JMP TMRGSA / MATCH - SCAN DOCUMENT FOR NEXT FN 17114 17115 17116 / MATCH FIELD NAME IN FORM DOCUMENT TO A FIELD NAME FROM RECORD. 17117 17118 TMFNIF, XX / MATCH FIELD NAME IN FORM DOCUMENT undefined ^ 047441* 0000 17119 047442* 1641 TAD I TMFNIF / GET ADDRESS OF BUFFER TO MATCH 17120 047443* 3155 DCA MRGPT1 / SAVE IT 17121 047444* 2241 ISZ TMFNIF / BUMP RETURN 17122 047445* 1641 TAD I TMFNIF / GET FIELD OF THAT BUFFER 17123 047446* 3331 DCA TTADI1 / SAVE IT 17124 047447* 2241 ISZ TMFNIF / BUMP RETURN 17125 047450* 1156 TMRGS1, TAD MRGPT2 / POINT TO TEXT BRACKET IN FORM 17126 047451* 3135 DCA CURPTR / RESET POINTER 17127 047452* 4330 TMRGS2, JMS TTADIMRGPT1 / GET NEXT CHAR FROM RECORD 17128 047453* 2155 ISZ MRGPT1 / BUMP RECORD PTR 17129 047454* 7450 SNA / SKIP IF: NOT END OF RECORD 17130 047455* 5327 JMP TMRGS8 / FIELD NOT FOUND, END OF RECORD 17131 047456* 1375 TAD (-"<+200) / IS CHARACTER = "<"? 17132 047457* 7640 SZA CLA / SKIP IF: SO 17133 047460* 5252 JMP TMRGS2 / LOOP TIL FIELD START 17134 047461* 4506 TMRGS3, ADVPTR / GET NEXT FIELD VALUE CHAR. FROM TEXT 17135 047462* 5776 JMP TMRGDON / WE HIT THE END OF TEXT 17136 AND P177 / STRIP MODE BITS undefined ^ undefined ^ 047463* 0000 17137 047464* 4516 XLTUPR / XLAT CHAR TO UPPER CASE 17138 047465* 7041 CIA / SET UP FOR COMPARE WITH RECORD'S 17139 DCA T1 / FIELD NAME VALUE undefined ^ undefined ^ 047466* 3000 17140 047467* 4330 JMS TTADIMRGPT1 / GET NEXT CHAR FROM RECORD 17141 047470* 4516 XLTUPR / XLAT TO UPPER CASE 17142 TAD T1 / COMPARE WITH CHARACTER FROM TEXT undefined ^ undefined ^ 047471* 1000 17143 047472* 7640 SZA CLA / SKIP IF: CHARACTERS MATCH 17144 047473* 5250 JMP TMRGS1 / LOOP IF NOT EQUAL 17145 047474* 4330 JMS TTADIMRGPT1 / GET NEXT RECORD CHARACTER 17146 047475* 2155 ISZ MRGPT1 / BUMP POINTER INTO RECORD 17147 047476* 1371 TAD (-">+200) / IS CHARACTER = ">"? 17148 047477* 7640 SZA CLA / SKIP IF:SO 17149 047500* 5261 JMP TMRGS3 / CHECK FOR END OF NAME 17150 047501* 1156 TAD MRGPT2 / RESET TEXT BUFFER POINTER TO START OF 17151 047502* 3135 DCA CURPTR / FIELD NAME WE JUST MATCHED. 17152 047503* 4770 JMS TMRGDLF / DELETE THAT FIELD NAME FROM TEXT 17153 047504* 3156 TMRGS4, DCA MRGPT2 / SET LOOKAHEAD 17154 047505* 4330 JMS TTADIMRGPT1 / CHECK FOR END OF FIELD IN RECORD 17155 047506* 1375 TAD (-"<+200) / IS CHARACTER = "<"? 17156 047507* 7650 SNA CLA / SKIP IF: NOT 17157 047510* 5320 JMP TMRGS5 / JUMP IF END OF FIELD VALUE 17158 047511* 1156 TAD MRGPT2 / GET LOOK AHEAD CHARACTER 17159 047512* 7440 SZA / SKIP IF: 0 17160 047513* 4505 INSCHR / OUTPUT LOOKAHEAD 17161 047514* 4330 JMS TTADIMRGPT1 / LOAD NEW LOOKAHEAD 17162 047515* 7721 CLA SWP / ATTRIBUTED CHAR COMES BACK IN THE MQ 17163 / SO RESTORE IT TO THE AC 17164 047516* 2155 ISZ MRGPT1 / BUMP POINTER INTO FIELD VALUE 17165 047517* 5304 JMP TMRGS4 / LOOP TO OUTPUT NEXT FIELD VALUE CHAR. 17166 / INTO RESULT DOCUMENT 17167 17168 047520* 1156 TMRGS5, TAD MRGPT2 / OUTPUT LAST CHAR AT END OF FIELD 17169 047521* 1367 TAD (-40) / WAS THIS A SPECIAL CHAR.? 17170 047522* 7750 SPA SNA CLA / SKIP IF: NOT 17171 047523* 5326 JMP TMRGS6 / SPECIAL CHARACTER. DO NOT INSERT 17172 047524* 1156 TAD MRGPT2 / REGULAR CHARACTER. INSERT INTO TEXT 17173 047525* 4505 INSCHR 17174 047526* 2241 TMRGS6, ISZ TMFNIF / BUMP RETURN FOR MATCH 17175 047527* 5641 TMRGS8, JMP I TMFNIF / RETURN 17176 17177 17178 / THIS ROUTINE WILL READ A CHARACTER FROM THE BUFFER SPECIFIED WHEN 17179 / MFNIFD WAS CALLED. TADIM1 IS PRIMED UPON CALL TO MFNIFD. UPON 17180 / READING A CHARACTER THE DF IS ALWAYS RETURNED TO THE EDITOR BUFFER 17181 / FIELD SINCE OTHER ROUTINES CALLED DURING OVMRG2 DEPEND ON DF SET 17182 / TO THE EDITOR BUFFER FIELD. 17183 / THE MQ IS USED TO SAVE THE CHARACTER WITH IT'S ATTRIBUTES SO THAT 17184 / ANY ATTRIBUTES IT HAS WILL BE CARRIED OVER FROM THE LIST DOCUMENT 17185 / TO THE RESULT DOCUMENT 17186 TTADIMRGPT1, 17187 XX undefined ^ 047530* 0000 17188 047531* 0000 TTADI1,.-. / LOADED WITH CDF INSTRUCTION 17189 047532* 1555 TAD I MRGPT1 / READ CHARACTER FROM RECORD 17190 047533* 7421 MQL / SAVE THE ATTRIBUTED CHAR IN THE MQ 17191 047534* 7501 MQA / RESTORE CHAR TO THE AC 17192 AND P177 / STRIP MODE BITS undefined ^ undefined ^ 047535* 0000 17193 CDFBUF / SET DF TO EDITOR BUFFER FIELD undefined ^ 047536* 0000 17194 047537* 5730 JMP I TTADIMRGPT1 / RETURN 17195 17196 17197 17198 17199 / ADVANCE CURSOR ONE CHARACTER AT A TIME THROUGH RESULT DOCUMENT, 17200 / CHECKING FOR ENOUGH ROOM ON DISKETTE TO CONTINUE THROUGH THE DOC. 17201 TMRGADV,XX undefined ^ 047540* 0000 17202 AC0001 / ADVANCE CURSOR 1 CHARACTER undefined ^ 047541* 0000 17203 047542* 4513 CURMOV 17204 047543* 5776 JMP TMRGDON / EOF RETURN FROM CURMOV 17205 047544* 4766 JMS CHKSPC / CHECK DISKETTE SPACE 17206 047545* 5740 JMP I TMRGADV / RETURN 17207 17208 17209 / MULTIPLE LEFT ANGLE BRACKET SEQUENCE HANDLER ("<<...ETC.") - DELETE A 17210 / LEFT ANGLE BRACKET FROM THIS FIELD NAME . WHEN THE FIRST CHARACTER 17211 / THAT IS NOT A "<" IS READ REENTER SCAN LOOP. 17212 17213 TMLLAB, / TRAILER_MULTIPLE_LEFT_ANGLE_BRACKET_PROCESSOR 17214 047546* 3535 DCA I CURPTR / DELETE A LEFT ANGLE BRACKET 17215 047547* 1156 TAD MRGPT2 / RESTORE POINTER TO START OF FIELD 17216 047550* 3135 DCA CURPTR 17217 047551* 4514 SLNMOD / SET LINE MODIFIED FLAG 17218 047552* 4340 TMLLA1, JMS TMRGADV / ADVANCE CURSOR ONE CHARACTER 17219 17220 047553* 4777 JMS LODCHR / GET THE NEXT CHARACTER 17221 047554* 5776 JMP TMRGDON / EOF RETURN 17222 17223 AND P177 / STRIP MODE BITS undefined ^ undefined ^ 047555* 0000 17224 047556* 1375 TAD (-"<+200) / IS CHARACTER = "<"? 17225 047557* 7650 SNA CLA / SKIP IF: NOT 17226 047560* 5352 JMP TMLLA1 / CHARACTER = "<". GET NEXT ONE 17227 17228 047561* 5203 JMP TMRGSB / REENTER SCAN LOOP 17229 17230 X=. / INDICATE FIRST FREE LOCATION ON PAGE 17231 /--------------------- 17232 047566* 4200 PAGE 047567* 7740 047570* 7611 047571* 7702 047572* 0035 047573* 7776 047574* 3645 047575* 7704 047576* 7621 047577* 4241 17233 17234 17235 / DELETE A CHARACTER IN THE RESULT DOCUMENT 17236 TMRGDEL,XX / DELETE CHAR SUBROUTINE undefined ^ 047600* 0000 17237 047601* 4777 JMS LODCHR / READ A CHARACTER 17238 047602* 5600 JMP I TMRGDEL / NONE LEFT - EXIT 17239 047603* 2200 ISZ TMRGDEL / BUMP TO OK RETURN 17240 AND P177 / STRIP MODE BITS undefined ^ undefined ^ 047604* 0000 17241 047605* 7421 MQL / HOLD CHARACTER IN MQ 17242 047606* 3535 DCA I CURPTR / DELETE CHARACTER FROM TEXT 17243 047607* 7501 MQA / RESTORE CHAR TO AC 17244 047610* 5600 JMP I TMRGDEL / AND RETURN 17245 17246 / DELETE A FIELD 17247 TMRGDLF,XX / DELETE FIELD SUBROUTINE undefined ^ 047611* 0000 17248 047612* 4200 JMS TMRGDEL / DELETE ONE CHARACTER OF THE FIELD 17249 047613* 5611 JMP I TMRGDLF / QUIT IF NO MORE 17250 047614* 1376 TAD (-">+200) / WAS CHARACTER JUST DELETED A ">"? 17251 047615* 7640 SZA CLA / SKIP IF: SO 17252 047616* 5212 JMP .-4 / DELETE TIL END 17253 047617* 4514 SLNMOD / SET LINE MODIFIED 17254 047620* 5611 JMP I TMRGDLF / THEN RETURN 17255 17256 17257 047621* 4523 TMRGDON,OVLJMP / DO EXIT OVERLAY 17258 047622* 0204 OVMRG3 17259 17260 17261 X=. / INDICATE FIRST FREE LOCATION ON PAGE 17262 /--------------------- 17263 047776* 7702 PAGE 047777* 4241 17264 17265 /*************************************************************************** 17266 /**** START OF OVERLAY **** 17267 /*************************************************************************** 17268 17269 OVRNUM=OVRNUM+200 17270 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 17271 17272 RELOC 17273 17274 RELOC OVLAY1 17275 047400* 4600 OVRNUM 17276 17277 OVRPP4= .-OVLAY1+OVRNUM 17278 047401* 5205 JMP RPERR / SECONDARY ENTRY POINT AFTER 17279 / REPORTING INPUT STRING ERROR 17280 17281 17282 /**************************************************************** 17283 17284 / START OF THE NEW V2 FAST FORWARD AND REVERSE (GOTO PAGE) 17285 17286 /**************************************************************** 17287 17288 OVRPPG= .-OVLAY1+OVRNUM / BEGINNING OF V2.0 GO-TO-PAGE 17289 17290 17291 17292 RPCMMA= ",-200 / ASCII COMMA 17293 RPPLUS= "+-200 / ASCII PLUS SIGN 17294 RPMINU= "--200 / ASCII MINUS SIGN 17295 RPPRCT= "%-200 / ASCII PERCENT SIGN 17296 /D206 TMP= EIGES4+1 / BUFFER CONTIANING ASCZI CHARS. 17297 17298 / ----------------------------------------------------------------------------- 17299 / SHARING MAIN MEMORY LOCATIONS TO CONSERVE SPACE HERE PLUS 17300 / PERMITTING ACCESS TO THESE VALUES FROM ANY V2.0 GO-TO-PAGE 17301 / OVERLAY... 17302 17303 17304 RPWORD= SRCDIR / FLAG WORD FOR POSITIONING INFO. 17305 / (STORED IN MAIN EDITOR MEMORY PAGE 0) 17306 ABSOL= 4000 / BIT0 ON = ABSOLUTE PAGE/BLK # 17307 / OFF = OFFSET PAGE/BLK # 17308 REVERS= 2000 / BIT1 ON = REVERSE (-) DIRECTION 17309 / OFF = FORWARD (+) DIRECTION 17310 PGMODE= 1000 / BIT2 ON = POSITION TO A PAGE 17311 / OFF = POSITION TO A BLOCK 17312 / ----------------------------------------------------------------------------- 17313 17314 / RPINIT - Rapid Positioning INITialization 17315 17316 / Here whenever the response to the "ENTER PHRASE:" 17317 / message was terminated via the PAGE key. 17318 / Begin the V2.0 repositioning procedure to a user 17319 / defined page or block. 17320 17321 / RPINIT PSEUDO CODE: 17322 17323 /begin 17324 / if the reply to the "ENTER PHRASE:" message was the 17325 / PAGE key preceeded by data, error exit back 17326 / to request the search string again 17327 / else, continue by displaying the "ENTER PAGE NUMBER:" 17328 / message and inputting the user response 17329 / 17330 / if the reply to the "ENTER PAGE NUMBER:" message was 17331 / solely the RETURN key, abort process by returning 17332 / to the Editor keyboard loop routine 17333 / else, 17334 / if the 1st char. supplied in response to the 17335 / "ENTER PAGE NUMBER:" message was the - 17336 / sign, set BIT1 on in RPWORD 17337 / else 17338 / leave BIT1 reset 17339 / set Range Factor (T1) to -1 to account for 17340 / special character in input buffer and 17341 / set buffer offset (T2) to 1 to skip first 17342 / input buffer char. 17343 / else, clear Range Factor (T1) and 17344 / start buffer offset (T2) 17345 / set BIT0 in RPWORD 17346 / 17347 / 17348 / 17349 / WITH THE PAGE KEY IN RESPONSE 17350 / TO THE "ENTER PHRASE:" MSG. 17351 17352 047402* 1126 TAD GETLEN / # OF CHARS (from French bug fix 112 17353 047403* 7640 SZA CLA / SKIP IF VALID USER RESPONSE 17354 047404* 5777 JMP EIFIND / EXIT:USER SUPPLIED CHARS. WITH 17355 / THE PAGE KEY. ASK FOR PHRASE AGAIN. 17356 / REPEAT THE SEARCH PROCESS; NOTE 17357 / THAT THE AC MUST BE ZERO 17358 17359 047405* 4776 RPERR, JMS PROMPT / CLEAR SCROLL LINE THEN ASK FOR PAGE NUMBER 17360 047406* 3400 EIRPG1 / POINTER TO "ENTER PAGE NUMBER:" 17361 047407* 4775 JMS GETLIN / GET PAGE INFO. FROM USER 17362 047410* 7522 EIRPG2 / POINTER TO NEG. INPUT RANGE VALUE; 17363 / OUR INPUT BUFFER ALSO STARTS IN THAT 17364 / WORD IMMEDIATELY FOLLOWING EIRPG2 17365 17366 / NOW SEE IF THE USER HAS DECIDED AGAINST CONTINUING THIS 17367 / POSITIONING REQUEST BY LOOKING FOR THE 'RETURN' KEY AS THE 17368 / ONLY RESPONSE TO THE "ENTER PAGE NUMBER:" MSG... 17369 17370 047411* 1126 TAD GETLEN / # OF CHARS. IN THE INPUT BUFFER 17371 047412* 7650 SNA CLA / SKIP IF OTHER THAN 'RETURN' 17372 047413* 5774 JMP EINEXT / ABORT POSITIONING REQ. 17373 17374 17375 / USER INPUT IS IN BUFFER AT EIRPG2+1. STRIP ALLOWABLE SPECIAL 17376 / CHARS. (+,-,%) BEFORE CONVERTING ASCII NUMERICS INTO THEIR 17377 / CUMULATIVE BINARY VALUE... 17378 047414* 3153 DCA RPWORD / CLEAR POSITIONING FLAGS' WORD 17379 DCA T1 / INIT. 'RANGE' FACTOR undefined ^ undefined ^ 047415* 3000 17380 DCA T2 / AND INPUT BUFFER CHAR. OFFSET undefined ^ undefined ^ 047416* 3000 17381 047417* 1773 TAD I (EIRPG2+1) / GET THE 1ST INPUT CHAR. 17382 047420* 1372 TAD (-RPPLUS) / COMPARE TO + SIGN 17383 047421* 7450 SNA / SKIP IF NOT + 17384 047422* 5233 JMP SETSPC / LEAVE BIT 1 OFF 17385 047423* 1371 TAD (RPPLUS-RPMINU) / COMPARE TO - SIGN 17386 047424* 7650 SNA CLA / SKIP IF NOT + OR - 17387 047425* 5231 JMP SETNEG / GO SET REVERSE DIRECTION FLAG 17388 047426* 1370 TAD (ABSOL) / BIT0 ON (ABSOLUTE #, NOT OFFSET) 17389 047427* 3153 DCA RPWORD / SET BIT0 ON IN POSITION WORD 17390 047430* 5236 JMP PAGBLK / NOW SEE IF PAGE OR BLOCK POSITIONING 17391 17392 047431* 1367 SETNEG, TAD (REVERS) / BIT1 ON = REVERSE DIRECTION 17393 047432* 3153 DCA RPWORD / OFF = FORWARD DIRECTION 17394 SETSPC, AC7777 / TAKE 1 AWAY FROM RANGE VALUE LATER undefined ^ 047433* 0000 17395 DCA T1 / TO ACCOUNT FOR THE SPECIAL DIRECTION SIGN undefined ^ undefined ^ 047434* 3000 17396 ISZ T2 / T2 => OFFSET OF 1 BEYOND 1ST CHAR. undefined ^ undefined ^ 047435* 2000 17397 17398 / THE ONLY OTHER ALLOWABLE SPECIAL CHAR. IS THE % SIGN (AS THE 17399 / LAST INPUT CHAR. ONLY). IF PRESENT, POSITION TO A BLOCK, ELSE 17400 / POSITION TO A PAGE 17401 047436* 1126 PAGBLK, TAD GETLEN / # OF ACTUAL CHARS. IN BUFFER 17402 047437* 1366 TAD (EIRPG2) / PLUS THE ADDR. OF INPUT BUFFER-1 17403 DCA T3 / T3 => PTR. TO LAST CHAR. IN EIRPG2 undefined ^ undefined ^ 047440* 3000 17404 TAD I T3 / GET THE LAST CHAR. FROM THE INPUT BUFFER undefined ^ undefined ^ 047441* 1400 17405 047442* 1365 TAD (-60) / COMPARE TO ASCII 0 17406 047443* 7510 SPA / SKIP IF = OR > 0 17407 047444* 5316 JMP RPERCH / EXIT: INVALID CHAR. 17408 047445* 1364 TAD (-11) / COMPARE REMAINDER TO 9 17409 047446* 7740 SMA SZA CLA / SKIP IF CHAR. 0-9 17410 047447* 5316 JMP RPERCH / EXIT:INVALID CHAR. 17411 17412 047450* 1363 TAD (PGMODE) / BIT2 ON FOR PAGE MODE 17413 047451* 1153 TAD RPWORD / INCLUDE IN POSITION FLAGS' WORD 17414 047452* 3153 DCA RPWORD / UPDATE MEMORY 17415 17416 TAD T2 / AC=> OFFSET BEYOND +/- IF PRESENT undefined ^ undefined ^ 047453* 1000 17417 047454* 1366 TAD (EIRPG2) / + ADDR. OF 1ST INPUT CHAR.-1 17418 DCA X0 / INIT. AUTO-INDEX REG. TO POINT AT undefined ^ undefined ^ 047455* 3000 17419 / FIRST NUMERIC CHAR. 17420 TAD T1 / -1 FOR +/- AND -1 FOR % undefined ^ undefined ^ 047456* 1000 17421 047457* 1126 TAD GETLEN / GET # OF INPUT CHARS. 17422 047460* 1362 TAD (-3) / SEE IF MORE THAN 3 NORMAL CHARS. 17423 047461* 7540 SMA SZA / SKIP WITH 1-3 CHARS. ONLY 17424 047462* 5267 JMP DOTHOU / > 3 = THOUSANDS AND HUNDREDS 17425 047463* 1361 TAD (3) / GET ORIG. RANGE VALUE 17426 047464* 7041 CIA / MAKE INTO NEG. CHAR. CTR. 17427 DCA T3 / T3 => # OF HUNDREDS CHARS TO MOVE undefined ^ undefined ^ 047465* 3000 17428 047466* 5760 JMP DOHUNS / CLEAR THOUS. COUNT AND DO HUNDR. 17429 047467* 7200 DOTHOU, CLA / AC => 0 17430 TAD I X0 / GET THE THOUS. DIGIT undefined ^ undefined ^ 047470* 1400 17431 047471* 3331 DCA EIRPG3 / SUPPLY IT FOR CONVERSION /A206 17432 047472* 3332 DCA EIRPG3+1 / ASCIZ TERMINATOR... /A206 17433 17434 /D206 DCA TMP / SUPPLY IT FOR CONVERSION 17435 /D206 DCA TMP+1 / ASCIZ TERMINATOR... 17436 17437 / If current string char. is a comma bump string pointer (X0) 17438 / beyond it to point at hundreds and account for the 17439 / presence of a special char. in string range (-1) 17440 / else string pointer (X0) is at hundreds and don't have to 17441 / account for the presence of a special char. 17442 / if total # of input chars. (GETLEN) less the presence of any 17443 / special chars. (T1&AC) is greater than 4 17444 / then exit to report 'RANGE' error 17445 / else convert ASCII chars. (EIRPG2) to binary 17446 17447 17448 TAD X0 / POINTS AT CURRENT CHAR. undefined ^ undefined ^ 047473* 1000 17449 DCA T2 / MAKE A COPY, LEAVING X0 ALONE undefined ^ undefined ^ 047474* 3000 17450 ISZ T2 / PERFORM AUTO-INDEX TO... undefined ^ undefined ^ 047475* 2000 17451 TAD I T2 / GET THE CHAR. AFTER THE THOU. undefined ^ undefined ^ 047476* 1400 17452 047477* 1357 TAD (-RPCMMA) / IS IT A COMMA? 17453 047500* 7640 SZA CLA / SKIP TO ACCOUNT FOR COMMA 17454 047501* 5304 JMP CKRANG / PROCESS AS IS... 17455 ISZ X0 / BUMP PTR. TO HUNDREDS CHAR. undefined ^ undefined ^ 047502* 2000 17456 AC7777 / AC => -1 TO ACCOUNT FOR COMMA undefined ^ 047503* 0000 17457 / VALIDATE THE # OF DIGITS IN STRING 17458 047504* 1126 CKRANG, TAD GETLEN / GETLIN SUPPLIED # OF INPUT CHARS. 17459 TAD T1 / MINUS 1 FOR +/- AND -1 FOR % undefined ^ undefined ^ 047505* 1000 17460 047506* 1356 TAD (-4) / - MAX. # OF NUMERICS ALLOWED (9999) 17461 047507* 7740 SMA SZA CLA / SKIP WITH VALID RANGE 17462 047510* 5314 JMP RPERRG / ERROR:INVALID # OF NUMERICS SUPPLIED 17463 / BY THE USER 17464 AC7775 / AC => -3 undefined ^ 047511* 0000 17465 DCA T3 / T3 => MOVE 3 CHARS. AFTER THOUS. MOVED undefined ^ undefined ^ 047512* 3000 17466 047513* 5755 JMP TOMNU / PAGE JUMP... 17467 17468 047514* 4523 RPERRG, OVLJMP;RPPER3 / ERROR:MORE THAN 4 NUMERICS SUPPLIED 047515* 4205 17469 17470 047516* 7200 RPERCH, CLA 17471 047517* 4523 OVLJMP;RPPER5 / ERROR:CHAR. WASN'T A VALID NUMERIC 047520* 4204 17472 / OR ONE OF THE ALLOWABLE SPECIAL 17473 / CHARS. (+,-,% OR ,) 17474 17475 047521* 7402 EIRPP2, HLT / CODE NOT USED ? CLA / AC MUST BE 0 TO INFORM OVEXIT THAT 17476 / THIS IS NOT THE FINAL END OF THIS EDIT 17477 17478 17479 /? JMP RPTOP / GO CLOSE DOC. 17480 / THEN RE-OPEN IT, THEREBY SUPPLYING 17481 / THE MAIN HDR. BLOCK AND ITS NEW 17482 / PARELLEL RAPID PAGE DATA STRUCTURE 17483 / IN THEIR RESPECTIVE SCROLL BUFFERS 17484 17485 047522* 7772 EIRPG2, -6 / 6 CHAR. MAX. INPUT RANGE (+9,999) 17486 047523* 0000 ZBLOCK 6 / START OF 6 CHAR. INPUT BUFFER 047524* 0000 047525* 0000 047526* 0000 047527* 0000 047530* 0000 17487 17488 047531* 0000 EIRPG3, ZBLOCK 6 / START OF 6 CHAR. WORK BUFFER /A206 047532* 0000 047533* 0000 047534* 0000 047535* 0000 047536* 0000 17489 17490 X=. / INDICATE FIRST FREE LOCATION ON PAGE 17491 /--------------------- 17492 047555* 7600 PAGE 047556* 7774 047557* 7724 047560* 7604 047561* 0003 047562* 7775 047563* 1000 047564* 7767 047565* 7720 047566* 7522 047567* 2000 047570* 4000 047571* 7776 047572* 7725 047573* 7523 047574* 0406 047575* 4506 047576* 4470 047577* 2553 17493 17494 TOMNU, CIFMNU / CHANGE FOR MENU FLD undefined ^ 047600* 0000 17495 JMS I CVDCAL / ASCIZ TO BINARY VIA CVDBN undefined ^ undefined ^ 047601* 4400 17496 047602* 7531 EIRPG3 / GET ASCIZ CHARS. HERE /A206 17497 /D206 TMP / GET ASCIZ CHARS. HERE 17498 17499 047603* 5777 JMP RPERCH / CHAR. WASN'T 0-9 17500 047604* 3776 DOHUNS, DCA RPBIN2 / UPDATE BINARY # OF THOUSANDS 17501 047605* 1375 TAD (EIRPG3-1) /A206 17502 /D206 TAD (TMP-1) 17503 DCA X1 / X1 => MOVE TO THIS BUFFER undefined ^ undefined ^ 047606* 3000 17504 TAD I X0 / GET INPUT CHAR. undefined ^ undefined ^ 047607* 1400 17505 DCA I X1 / MOVE INTO TEMP. BUFFER undefined ^ undefined ^ 047610* 3400 17506 ISZ T3 / T3 => # OF CHARS. TO MOVE undefined ^ undefined ^ 047611* 2000 17507 047612* 5207 JMP .-3 / LOOP IF MORE TO MOVE 17508 DCA I X1 / SUPPLY ASCIZ DELIMTER undefined ^ undefined ^ 047613* 3400 17509 CIFMNU / CHANGE TO MENU FLD undefined ^ 047614* 0000 17510 JMS I CVDCAL / ASCIZ TO BINARY VIA CVDBN undefined ^ undefined ^ 047615* 4400 17511 047616* 7531 EIRPG3 / GET ASCIZ CHARS. HERE /A206 17512 /D206 TMP / GET ASCIZ CHARS. HERE 17513 047617* 5777 JMP RPERCH / CHAR. WASN'T 0-9 17514 047620* 3774 DCA RPBIN1 / UPDATE BINARY # OF HUNDREDS 17515 17516 / initialize GOTO PAGE pointers 17517 17518 047621* 1373 TAD (55) 17519 047622* 3772 DCA RPCUOF / OFFSET TO 1ST DESCRIPTOR WORD IN 1ST RPPGDS BLOCK ONLY 17520 047623* 1373 TAD (55) 17521 047624* 3771 DCA RPMTRL / OFFSET TO DEFAULT RULER BLOCK 17522 047625* 3770 DCA RPMTBK / NO MATH BLOCK OFFSET 17523 047626* 3767 DCA RPPG0 / 0 = NOT OVER --TOP-- 17524 AC0001 undefined ^ 047627* 0000 17525 047630* 3766 DCA RPCUBK / START WITH 1ST RPPGDS BLOCK 17526 AC0001 undefined ^ 047631* 0000 17527 047632* 3765 DCA RPRLHN / DEFAULT RULER BLOCK IS IN 1ST RPPGDS BLOCK 17528 17529 17530 / RaPid POSItioning 17531 17532 / HERE TO BEGIN THE ACTUAL REPOSITIONING TO THAT PAGE OR BLOCK 17533 / SPECIFIED BY USER INPUT. 17534 17535 / RPPOSI PSEUDO CODE: 17536 17537 / if RPWORD = "absolute" positioning go test block or page 17538 / else if RPWORD = "forward" direction leave RPBIN1 and RPBIN2 17539 / as is 17540 / else convert the positive binary page value in RPBIN1 17541 / and RPBIN2 into negative values (-) 17542 17543 / DETERMINE WHAT THE PAGE NUMBER VALUE SUPPLIED BY THE USER WAS. 17544 / IF IT WAS AN ABOSULTE NUMBER, THEN RPBIN1 AND RPBIN2 CAN 17545 / REMAIN AS IS; OTHERWISE, THE OFFSET VALUE STORED WITHIN 17546 / RPBIN1 AND RPBIN2 MUST BE CONVERTED TO AN ABSOLUTE BLOCK 17547 / NUMBER OR PAGE NUMBER. HOWEVER, THE DISTINCTION BETWEEN PAGE 17548 / AND BLOCK POSITIONING MUST BE MADE PRIOR TO THIS CONVERSION, 17549 / SO THAT BLOCK CALCULATION DOES NOT USE CURPG1 AN CURPG2 17550 17551 17552 / START THE ACTUAL REPOSITIONING... 17553 047633* 1153 TAD RPWORD / GET POSITIONING FLAGS 17554 047634* 0364 AND (REVERS) / TEST REVERSE (-) OFFSET FLAG 17555 047635* 7650 SNA CLA / SKIP TO COMPLEMENT OFFSET 17556 047636* 5245 JMP CKMODE / NOT - SO CHECK MODE TYPE 17557 047637* 1776 TAD RPBIN2 / GET # OF THOUSANDS SUPPLIED 17558 047640* 7041 CIA / MAKE NEGITIVE TO BACKUP 17559 047641* 3776 DCA RPBIN2 / SAVE -THOUSANDS # 17560 047642* 1774 TAD RPBIN1 / GET # OF HUNDREDS SUPPLIED 17561 047643* 7041 CIA / MAKE NEGITIVE TO BACKUP 17562 047644* 3774 DCA RPBIN1 / SAVE -HUNDREDS # 17563 17564 / DETERMINE IF REPOSITIONING TO A PAGE OR BLOCK TO CONTINUE 17565 / OFFSET CONVERSION, IF NECESSARY... 17566 17567 / If RPWORD = "offset" calculate absolute page # 17568 / if RPWORD = positive offset set CURPTR direction 17569 / offset (T1) to +1 17570 / else set CURPTR direction offset (T1) to -1 17571 / else set CURPTR direction offset (T1) to +1 17572 17573 047645* 1153 CKMODE, TAD RPWORD / POSITION FLAGS 17574 047646* 7710 SPA CLA / SKIP TO PROCESS OFFSET 17575 047647* 5261 JMP FORDIR / JMP TO SET CURPTR OFFSET +1 17576 17577 AC7777 / GOTO PAGE "REQ" FLAG undefined ^ 047650* 0000 17578 CDILP / DF & IF TO FIELD 5 undefined ^ 047651* 0000 17579 047652* 4763 JMS RPPMENU / GET CURRENT EDIT BUFFER PAGE VALUE 17580 / INTO CURPG1 & CURPG2 17581 17582 047653* 1762 TAD CURPG2 / CURRENT THOUS. PAGE # 17583 047654* 1776 TAD RPBIN2 / + OFFSET = DESIRED THOUSANDS # 17584 047655* 3776 DCA RPBIN2 / ABSOLUTE THOUSANDS PAGE # 17585 047656* 1761 TAD CURPG1 / CURRENT HUNDREDS PAGE # 17586 047657* 1774 TAD RPBIN1 / + OFFSET = DESIRED HUNDREDS # 17587 047660* 3774 DCA RPBIN1 / ABSOLUTE HUNDREDS PAGE # 17588 047661* 3760 FORDIR, DCA RPBOTF / RPBOTF = 0 => DOING V2 GOTO PAGE, NOT V2 GOLD BOTTOM 17589 17590 AC7777 undefined ^ 047662* 0000 17591 047663* 1774 TAD RPBIN1 / FORCE TO TOP OF DESIRED PAGE 17592 047664* 7500 SMA / SKIP IF TOP-OF-PAGE NOT AVAILABLE 17593 047665* 5276 JMP FORDR / TOP-OF-PAGE AVAILABLE 17594 047666* 3767 DCA RPPG0 / RESULT INTO --TOP-- FLAG 17595 047667* 1776 TAD RPBIN2 / CHECK FOR THOUSANDS 17596 047670* 7450 SNA / SKIP IF THOUSANDS 17597 047671* 5276 JMP FORDR / NO THOUSANDS 17598 047672* 1357 TAD (-1) / DECREMENT BY ONE 17599 047673* 3776 DCA RPBIN2 / AND SAVE AS NEW THOUSANDS COUNT 17600 047674* 1356 TAD (1747) / PAGE 1000 OR 2000 OR 3000 WAS DESIRED 17601 / SO SET RPBIN1 TO 999 AND DECREMENT 17602 / RPBIN2 BY ONE 17603 047675* 1774 TAD RPBIN1 / ADDED TO CURRENT HUNDREDS 17604 047676* 3774 FORDR, DCA RPBIN1 / RPBIN1 = DESIRED PAGE NUMBER 17605 17606 AC4000 / MINUS FLAG FOR GOTO PAGE INIT. undefined ^ 047677* 0000 17607 047700* 1774 TAD RPBIN1 / USE AVAIL. MEMORY WORD 17608 047701* 3774 DCA RPBIN1 / DON'T DISPLAY FILE INFO. AT OPEN TIME... 17609 047702* 3761 DCA CURPG1 / CLEAR PAGE MARK COUNTER 17610 17611 047703* 1767 TAD RPPG0 / GET --TOP-- FLAG 17612 047704* 7450 SNA / SKIP IF AT --TOP-- OF DOC 17613 047705* 5315 JMP OVL2 / JUMP IF NOT APPLICABLE 17614 17615 047706* 1355 TAD (1) / FOR INCR. OF --TOP-- FLAG 17616 047707* 7640 SZA CLA / SKIP IF REALLY AT --TOP-- 17617 047710* 5315 JMP OVL2 / JUMP IF BEYOND --TOP-- 17618 17619 047711* 1153 TAD RPWORD / WHAT TYPE OF POSITION REQ.? 17620 047712* 0364 AND (2000) / WAS IT RELATIVE POSITIONING? 17621 047713* 7640 SZA CLA / SKIP IF ERROR W/ ABSOLUTE PAGE0 17622 047714* 3767 DCA RPPG0 / CLEAR --TOP--FLAG 17623 / RPPG0 = + IF OK 17624 / RPPG0 = - IF ERROR 17625 047715* 4523 OVL2, OVLJMP; OVPAGE / show "REPOSITIONING TO..." message... 047716* 5601 17626 17627 / tell the user to standby while the doc. is closed (updating 17628 / descriptor words) and then re-opened (supplies the doc. header 17629 / block and the RPPGDS block in their repective buffers) 17630 17631 17632 X=. / INDICATE FIRST FREE LOCATION ON PAGE 17633 /--------------------- 17634 047755* 0001 PAGE 047756* 1747 047757* 7777 047760* 3753 047761* 1751 047762* 2552 047763* 6427 047764* 2000 047765* 6537 047766* 0761 047767* 6736 047770* 3363 047771* 5162 047772* 2756 047773* 0055 047774* 6737 047775* 7530 047776* 4302 047777* 7516 17635 17636 /*************************************************************************** 17637 /**** START OF OVERLAY **** 17638 /*************************************************************************** 17639 17640 OVRNUM=OVRNUM+200 17641 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 17642 17643 RELOC 17644 RELOC OVLAY1 17645 047400* 5000 OVRNUM 17646 17647 17648 / GOLD:SEARCH GOLD:RULER COMMAND (GOTO-RULER) 17649 17650 OVGSGR= .-OVLAY1+OVRNUM 17651 17652 / PROMPT FOR "ADVANCE" OR "BACKUP" 17653 17654 047401* 4777 JMS PROMPT / CLEAR SCROLL LINE THEN DISPLAY PROMPT 17655 047402* 3400 EIRRAB / PTR TO "Press ADVANCE or BACK UP" 17656 17657 / WAIT UNTIL USER TYPES "ADVANCE" OR "BACKUP", 17658 / AND SET RRDIR ACCORDINGLY 17659 17660 047403* 4502 RRPRLP, GETINP / GET KEYBOARD CHAR 17661 17662 047404* 4500 ZZCASE / DISPATCH ADVANCE,BACKUP 17663 047405* 7415 RRDISP-1 17664 047406* 4776 JMS BEEPER / NEITHER ADVANCE NOR BACKUP - ERROR 17665 047407* 5203 JMP RRPRLP / TRY AGAIN 17666 17667 / USER TYPED "ADVANCE" KEY 17668 17669 RRPRAD, AC0001 / SET RRDIR:=1 TO INDICATE ADVANCE undefined ^ 047410* 0000 17670 047411* 7410 SKP 17671 17672 / USER TYPED "BACKUP" KEY 17673 17674 RRPRBK, AC7777 / SET RRDIR:=-1 TO INDICATE BACKUP undefined ^ 047412* 0000 17675 047413* 3775 DCA RRDIR 17676 047414* 4774 JMS FXSCRL / GET RID OF PROMPT 17677 / (REPLACE PROMPT LINE WITH DOCMT TEXT) 17678 17679 / START GOTO-RULER PROCESSING 17680 17681 OVRRGO= .-OVLAY1+OVRNUM 17682 047415* 5773 JMP XVRRGO 17683 17684 17685 / DISPATCH TABLE FOR GOLD:SEARCH GOLD:RULER PROMPT 17686 RRDISP, EDADVN; RRPRAD / ADVANCE undefined ^ 047416* 0000 047417* 7410 17687 EDGADV; RRPRAD / GOLD:ADVANCE undefined ^ 047420* 0000 047421* 7410 17688 EDBKUP; RRPRBK / BACKUP undefined ^ 047422* 0000 047423* 7412 17689 EDGBKP; RRPRBK / GOLD:BACKUP undefined ^ 047424* 0000 047425* 7412 17690 EDNWLN; RRABOR / RETURN (ABORT GOTO-RULER) undefined ^ 047426* 0000 047427* 7730 17691 047430* 0000 0 17692 17693 / SUBR RRGETN -- MOVE CURSOR IN TEXT BUFFER, /M157 17694 / EXHAUSTING ETX (STX) BUFFER, 17695 / BUT STOP WHEN DISK ACTIVITY OCCURS. 17696 / AC DETERMINES DIRECTION 17697 / RROROF MUST BE SET UP WITH OFFSET OF ORIGINAL ETX (STX) BLOCK. 17698 / 17699 / CALL: 17700 / / DF = DOESN'T MATTER 17701 / TAD RRDIR / AC=DIRECTION TO MOVE: +=>FORWARD, -=>BACKWARD 17702 / JMS RRGETN / GET NEXT (OR LAST) CHARACTER 17703 / JMP ETXSTX / REACHED ETX (OR STX), AC=0 17704 / JMP ETBSTB / NO MORE CHARS AVAILABLE WITHOUT DISK INPUT 17705 / / (ACTUALLY, THE NEXT DOCUMENT BLOCK HAS BEEN 17706 / / READ INTO THE ETX (OR STX) BUFFER, 17707 / / BUT LITTLE OF ITS DATA HAS BEEN USED YET/M157 17708 / ... / MOVED CURSOR 1 POSITION. /M157 17709 / / MAY HAVE MOVED CHAR FROM ETX (OR STX) 17710 / / BUFFER TO TEXT BUFFER, 17711 / / BUT DID NO DISK I/O. 17712 / / ON ALL RETURNS, DF = CDFMYF, AC=0 /M157 17713 / 17714 17715 RRGETN, XX undefined ^ 047431* 0000 17716 047432* 0000 CDFMYF / MAKE SURE WERE LOOKING AT OUR FIELD /A199 17717 047433* 1775 TAD RRDIR / AC=DIRECTION OF NEXT CHAR /A199 17718 047434* 7500 SMA / MOVE FORWARD OR BACKWARD? 17719 047435* 5250 JMP RRGEFW / FORWARD 17720 17721 / MOVING BACKWARD 17722 17723 047436* 4513 CURMOV 17724 047437* 5247 JMP RRGEX1 / REACHED STX: TAKE 1ST RETURN 17725 047440* 4256 JMS RRGTTP / GET CURRENT SCTOP,SCTPH INTO AC,MQ 17726 17727 / CHECK WHETHER ANOTHER DOCUMENT BLOCK WAS READ INTO 17728 / THE ETX (OR STX) BUFFER. 17729 / ASSUME AC = OFFSET OF CURRENT ETX (STX) BLOCK. 17730 17731 047441* 7041 RRGETS, CIA / DID ANY DISK INPUT OCCUR? 17732 047442* 0000 CDFMYF 17733 047443* 1772 TAD RROROF / (COMPARE OFFSETS INTO HDR BLK) 17734 047444* 7650 SNA CLA / (SKIP IF THERE WAS DISK INPUT) 17735 047445* 2231 ISZ RRGETN / NO: TAKE 3RD (NORMAL) RETURN 17736 047446* 2231 RRGEX2, ISZ RRGETN 17737 047447* 5631 RRGEX1, JMP I RRGETN 17738 17739 / MOVING FORWARD 17740 17741 047450* 4513 RRGEFW, CURMOV 17742 047451* 5247 JMP RRGEX1 / REACHED ETX: TAKE 1ST RETURN 17743 047452* 1371 TAD (-5) / AC=FUNCT # TO READ SCBOT,SCBTH 17744 047453* 4770 JMS DSKCAL / GET AC=CURRENT SCBOT 17745 XRPRD / (&MQ=CURRENT SCBTH, NOT NEEDED) undefined ^ 047454* 0000 17746 047455* 5241 JMP RRGETS / GO CHECK FOR DISK I/O 17747 17748 / SUBR RRGTTP -- Rapid Ruler GeT ToP ptrs sctop,sctph 17749 / 17750 / RETURNS WPFILS VARIABLES SCTOP,SCTPH IN AC,MQ. 17751 / 17752 / CALL: 17753 / / AC = DOESN'T MATTER 17754 / / DF = DOESN'T MATTER 17755 / JMS RRGTTP / GET SCTOP,SCTPH IN AC,MQ 17756 / / AC = SCTOP FROM WPFILS 17757 / / MQ = SCTPH FROM WPFILS 17758 / / DF = CDFMYF 17759 / 17760 / TEMPS USED: 17761 / CURID,CURTOP(=CURID+1) 17762 / 17763 / DUE TO THE CLUMSINESS OF THE AVAILABLE WPFILS CALLS, 17764 / A RATHER ROUNDABOUT APPROACH MUST BE USED TO GET 17765 / THE TOP POINTERS. 17766 17767 RRGTTP, XX undefined ^ 047456* 0000 17768 AC7777 undefined ^ 047457* 0000 17769 047460* 1367 TAD (CURID) / MQ=PTR TO LOCS TO RETURN CURRENT SCTOP,SCTPH 17770 047461* 7421 MQL / (CURID IS USED AS A TEMP) 17771 AC7775 / WPFILS-GET ORIG & CUR SCTOP,SCTPH undefined ^ 047462* 0000 17772 047463* 4770 JMS DSKCAL 17773 XRPRD / (MISC GOTO-PAGE FUNCTIONS) undefined ^ 047464* 0000 17774 047465* 7200 CLA / FORGET "ORIGINAL" SCTOP 17775 CDFLP undefined ^ 047466* 0000 17776 047467* 1767 TAD I (CURID) / GET CURRENT SCTPH FROM WPFILS 17777 047470* 7421 MQL / RETURN SCTPH IN MQ 17778 047471* 1766 TAD I (CURTOP) / RETURN CURRENT SCTOP FROM WPFILS IN AC 17779 047472* 0000 CDFMYF 17780 047473* 5656 JMP I RRGTTP / EXIT 17781 17782 / SUBR RRRFSP -- Rapid Ruler Restore File System Pointers 17783 / 17784 / (CREATED TO SAVE A LITTLE SPACE ON CALLING PAGE) 17785 17786 RRRFSP, XX undefined ^ 047474* 0000 17787 047475* 1365 TAD (-4) 17788 047476* 4770 JMS DSKCAL 17789 XRPRD undefined ^ 047477* 0000 17790 047500* 5674 JMP I RRRFSP 17791 17792 / SUBR RRSVBK -- 17793 / PREPARE TO USE RANDOM-ACCESS TO JUMP TO RULER, 17794 / USING BLOCK POINTERS (SCTOP,SCTPH). 17795 / (CREATED TO SAVE SPACE ON CALLING PAGE.) 17796 17797 / RPCUOF := EXTRA OVERSHOOT CORRECTION IF NO RULER FOUND; /A157 17798 17799 RRSVBK, XX undefined ^ 047501* 0000 17800 047502* 0000 CDFMYF /A157 17801 047503* 7041 CIA / REVERSE DIRECTION TO CANCEL OVERSHOOT /A157 17802 047504* 3764 DCA RPCUOF / SAVE 'HIT ETX OR STX' FLAG /A157 17803 17804 / (SCTOP,SCTPH HAVE OVERSHOT RULER BY AT LEAST ONE BLOCK - 17805 / CORRECT OVERSHOOT) 17806 / IF ADVANCING TO RULER, THEN 17807 / DECREMENT SCTOP,SCTPH BY 1 BLOCK; 17808 / IF BACKING UP TO RULER, THEN 17809 / (LATER ON WE WILL WANT TO OPEN BLOCK *AFTER* THE 17810 / BLOCK THAT CONTAINS THE RULER, THEN BACKUP TO RULER, 17811 / SO ADVANCE AN EXTRA BLOCK) 17812 / INCREMENT SCTOP,SCTPH BY 2 BLOCKS; 17813 / INCREMENT SCTOP,SCTPH BY RPCUOF; /A157 17814 17815 047505* 1775 TAD RRDIR / ADVANCING OR BACKING UP TO RULER? 17816 047506* 7700 SMA CLA 17817 AC7775 / ADVANCING: DECREMENT 1 BLOCK undefined ^ 047507* 0000 17818 047510* 1363 TAD (2) / BACKING UP: INCREMENT 2 BLOCKS 17819 047511* 1764 TAD RPCUOF / CORRECT EXTRA OVERSHOOT IF REACHED /A157 17820 / ETX OR STX /A157 17821 047512* 7421 MQL / MQ = BLOCK INCREMENT TO CORRECT OVERSHOOT 17822 047513* 1362 TAD (-6) / READ DESC WORD, INC SCTOP,SCTPH BY MQ 17823 047514* 4770 JMS DSKCAL 17824 XRPRD undefined ^ 047515* 0000 17825 17826 / CONVERT SCTOP,SCTPH TO A PHYSICAL BLOCK #. /A157 17827 17828 047516* 4256 JMS RRGTTP / GET SCTTOP IN AC /A157 17829 047517* 1361 TAD (HDRBUF+2) / + ADDR OF DOCMT HEADER BUFFER /A157 17830 / + SKIP OVER COS COMPATABILY WORDS /A157 17831 DCA T1 / SAVE PTR TO CORRESPONDING PHYS BLK # /A157 undefined ^ undefined ^ 047520* 3000 17832 CDFBUF / FIELD OF DOCUMENT HEADER BUFFER /A157 undefined ^ 047521* 0000 17833 TAD I T1 / GET PHYSICAL BLOCK # /A157 undefined ^ undefined ^ 047522* 1400 17834 17835 / SAVE PHYSICAL BLOCK # OF BLOCK WITH RULER /A157 17836 / (OR OF LAST BLOCK DEFINED IN GOTO-PAGE STRUCTURE) INTO RPCUBK, /A157 17837 / TO BE USED MUCH LATER AFTER DOCUMENT HAS BEEN CLOSED (FILED OUT) /A157 17838 / AND THE REOPENED. /A157 17839 / NOTE: THE PHYSICAL BLOCK # IS SAVED BECAUSE SCTOP,SCTPH ARE /A157 17840 / RELATIVE BLOCK #S. THE ACTUAL BLOCK REFERED TO BY SCTOP,SCTPH /A157 17841 / MAY BE PUSHED DOWN OR UP WHEN THE DOCUMENT IS FILED, /A157 17842 / RENDERING SCTOP,SCTPH INVALID, BUT THE PHYSICAL BLOCK # /A157 17843 / WILL NOT CHANGE. /A157 17844 17845 047523* 0000 CDFMYF /A157 17846 047524* 3760 DCA RPCUBK /A157 17847 047525* 4274 JMS RRRFSP / RESTORE FILE SYSTEM POINTERS 17848 047526* 5701 JMP I RRSVBK / EXIT 17849 17850 / CHECK BUFFER FOR ACTUAL RULER CODE. THE ABOVE CODE FOR RULER CHECK /A199 17851 / FAILS WHEN THE BUFFER IS FULL AND ESPECIALLY WHEN CURMOVING BACKWARD /A199 17852 17853 RRSAVE= RRRFSP / DEFINE TEMPORARY STORAGE LOCATION /A199 17854 17855 RRCBUF, XX / CHECK BUFFER FOR RULER CODE /A199 undefined ^ 047527* 0000 17856 047530* 1135 TAD CURPTR / GET THE CURRENT CURSOR POSITION /A199 17857 047531* 3274 DCA RRSAVE / SAVE FOR LATER RESTORE /A199 17858 17859 047532* 0000 RRCHK1, CDFMYF / SWITCH BACK TO THIS FIELD /A199 17860 047533* 1775 TAD RRDIR / GET THE DIRECTION VALUE /A199 17861 047534* 4510 CHKPTR / MOVE AND CHECK THE POINTER /A199 17862 047535* 7450 SNA / CHECK FOR A NULL CHARACTER /A199 17863 047536* 5332 JMP RRCHK1 / YES, IGNORE THE NULL /A199 17864 17865 047537* 7510 SPA / CHECK FOR A END OF BUFFER INDICATOR /A199 17866 047540* 5347 JMP RRCHK2 / YES, GO HANDLE END OF BUFFER /A199 17867 17868 TAD (-ECNDRL) / CHECK FOR A END OF RULER CODE /A199 undefined ^ undefined ^ 047541* 1357 17869 047542* 7440 SZA / SKIP IF SO /A199 17870 047543* 7001 IAC / CHECK FOR A START OF RULER CODE /A199 17871 047544* 7640 SZA CLA / SKIP IF SO /A199 17872 047545* 5332 JMP RRCHK1 / NO MATCH, GO CHECK NEXT CHARACTER /A199 17873 17874 047546* 2327 ISZ RRCBUF / BUMP RETURN ADDRESS FOR FOUND RULER /A199 17875 047547* 7200 RRCHK2, CLA / CLEAN UP FROM END OF BUFFER CHECK /A199 17876 047550* 1274 TAD RRSAVE / PICK UP ORIGINAL CURSOR POSITION /A199 17877 047551* 3135 DCA CURPTR / RESTORE CURSOR POINTER /A199 17878 047552* 5727 JMP I RRCBUF /RETURN TO CALLER /A199 17879 17880 17881 X=. / INDICATE FIRST FREE LOCATION ON PAGE 17882 /--------------------- 17883 047557* 0000 PAGE 047560* 0761 047561* 6002 047562* 7772 047563* 0002 047564* 2756 047565* 7774 047566* 6626 047567* 6625 047570* 5014 047571* 7773 047572* 7743 047573* 7600 047574* 3400 047575* 1764 047576* 0324 047577* 4470 17884 17885 /******************************************************************* 17886 / 17887 / START GOTO-RULER PROCESSING 17888 / 17889 / 17890 / COME HERE TO GOTO THE NEXT (OR PREVIOUS) RULER. 17891 / 17892 / 'RRDIR' MUST BE SET TO INDICATE DIRECTION: 17893 / RRDIR=+1 => ADVANCE TO NEXT RULER; 17894 / RRDIR=-1 => BACKUP TO PREVIOUS RULER. 17895 / 17896 /******************************************************************* 17897 / 17898 / 17899 / 17900 / IF WE ARE ADVANCING TO NEXT RULER THEN 17901 / IF RULER MODIFIED FLAG IS SET THEN 17902 / SCROLL FORWARD TO RULER; 17903 / DONE. 17904 / ELSE (RULER MODIFIED FLAG IS NOT SET) 17905 / (PREPARE TO SCAN FORWARD THROUGH TEXT & STX BUFFERS) 17906 / GET CURRENT VALUE OF SCBOT FOR RRGETN; 17907 / 17908 047600* 3152 XVRRGO, DCA ECHFLG / DON'T DISPLAY CURMOV'S 17909 047601* 0000 CDFMYF / MAKE SURE WE ARE IN THIS FIELD 17910 17911 047602* 1777 TAD RRDIR / ARE WE ADVANCING? 17912 047603* 7710 SPA CLA 17913 047604* 5214 JMP RRBK / NO: MUST BE BACKING UP 17914 17915 047605* 1124 TAD RLRMOD / YES: IS THE RULER MODIFIED FLAG SET? 17916 047606* 7640 SZA CLA 17917 047607* 5245 JMP RRSC / YES AND YES: GO SCROLL TO RULER 17918 17919 047610* 1376 TAD (-5) / NO: GET SCBOT IN AC FOR RRGETN 17920 047611* 4775 JMS DSKCAL 17921 XRPRD undefined ^ 047612* 0000 17922 047613* 5223 JMP RRSNEB / GO SCAN TEXT&ETX(STX) BUFFERS FOR RULER 17923 / 17924 / IF MOVING BACKWARDS, THEN 17925 / (WE MAY BE AT A RULER NOW. WE DON'T WANT TO FIND THIS 17926 / CURRENT RULER AS THE PREVIOUS RULER, SO WE MOVE THE CURSOR 17927 / BACK 1 CHAR. THE BACKUP IS HARMLESS IF THERE WAS NO 17928 / RULER PRESENT.) 17929 / MOVE CURSOR TO START OF LINE; 17930 / BACKUP CURSOR 1 CHAR; (TO SKIP OVER CURRENT RULER IF ANY) 17931 / GET SCTOP FOR RRGETN. 17932 / 17933 / THE CONVENTION IS THAT CURSOR IS "AT" A RULER IF CURSOR 17934 / IS ANYWHERE ON LINE FOLLOWING RULER. 17935 047614* 1171 RRBK, TAD LINE23 / MOVE CURSOR TO START OF LINE /M157 17936 047615* 3135 DCA CURPTR 17937 047616* 3136 DCA CURSOR 17938 17939 AC7777 / BACKUP 1 CHAR undefined ^ 047617* 0000 17940 047620* 4513 CURMOV / SKIP OVER CURRENT RULER IF ANY 17941 047621* 5325 JMP RRERRB / REACHED STX: NO PREVIOUS RULER 17942 047622* 4774 JMS RRGTTP / GET SCTOP IN AC FOR RRGETN 17943 / 17944 / SCAN FORWARD (OR BACKWARD) THROUGH EDIT BUFFER SEARCHING FOR A RULER. 17945 / CONTINUE SCAN UNTIL ETX (OR STX) BUFFER IS EXHAUSTED. 17946 / 17947 047623* 3343 RRSNEB, DCA RROROF / SAVE OFFSET OF ORIGINAL ETX(STX) BLOCK 17948 047624* 7501 MQA 17949 047625* 3344 DCA RRORID / SAVE HDR BLK ID # OF ORIGINAL BLOCK 17950 17951 / CLEAR ENTRY POINT OF SUBR SETRUL, WHICH IS USED DURING RULER PROCESSING. 17952 / SETRUL'S ENTRY POINT IS USED HERE AS A FLAG 17953 / WHICH TELLS US WHEN CURMOV HAS ENCOUNTERED A RULER. 17954 17955 047626* 0000 CDFMYF 17956 047627* 3773 DCA SETRUL 17957 17958 RRSNEL, 17959 /D214 CDFSYS / CHECK FOR PENDING GOLD:HALT 17960 /D214 TAD I HLTFLG / WITHOUT UPDATING STATUS LINE (FOR SPEED) 17961 /D199 CDFMYF 17962 /D214 SZA CLA / SKIP IF NO GOLD:HALT 17963 /D214 JMP RRABOR / GOLD:HALT: ABORT GOTO-RULER 17964 17965 /D199 TAD RRDIR / AC=DIRECTION OF NEXT CHAR 17966 047630* 4772 JMS RRGETN / MOVE CURRSOR TO NEXT CHAR 17967 047631* 5322 JMP RRERRT / ETX (OR STX) - NO NEXT RULER 17968 047632* 5237 JMP RR3X / END OF EDIT & ETX (STX) BUFFERS /C199 17969 17970 047633* 1773 TAD SETRUL / HAS CURSOR PASSED OVER A RULER? 17971 047634* 7650 SNA CLA 17972 047635* 5230 JMP RRSNEL / NO: CONTINUE SCAN FOR RULER 17973 047636* 5265 JMP RRSCDN / YES: FOUND DESTINATION RULER 17974 17975 / CHECK REAL BUFFER FOR RULER /A199 17976 17977 047637* 1773 RR3X, TAD SETRUL / HAS CURSOR PASSED OVER A RULER? /A199 17978 047640* 7640 SZA CLA /A199 17979 047641* 5265 JMP RRSCDN / YES: FOUND DESTINATION RULER /A199 17980 047642* 4771 JMS RRCBUF / NO: GO CHECK BUFFER FOR RULER CODE /A199 17981 047643* 5273 JMP RR3 / REAL END OF BUFFER, CHECK STRUCTURE /A199 17982 047644* 5247 JMP RRSCLP / JUMP INTO RRSC CODE BELOW /A199 17983 17984 / SCROLL FORWARD (OR BACKWARD) TO NEXT RULER 17985 17986 RRSC, AC0001 / ECHO TEXT WE SCROLL OVER undefined ^ 047645* 0000 17987 047646* 3152 DCA ECHFLG 17988 17989 / MOVE FORWARD OR BACKWARD TO START OF NEXT RULER 17990 17991 047647* 0000 RRSCLP, CDFMYF / SETRUL'S ENTRY POINT IS USED AS A FLAG /A199 17992 047650* 3773 DCA SETRUL / INDICATES CURMOV HAS CROSSED A RULER. /A199 17993 17994 047651* 1777 TAD RRDIR / PICK UP DIRECTION TO MOVE 17995 047652* 4513 CURMOV / MOVE FORWARD OR BACKWARD 17996 047653* 5322 JMP RRERRT / ETX OR STX 17997 17998 /D214 TAD ECHFLG / ARE WE ECHOING CURMOV'S? 17999 /D214 SZA CLA 18000 /D214 HLTTST / YES: UPDATE STATUS LINE 18001 /D214 NOP / IGNORE HLTTST RESULT 18002 /D214 CDFSYS / CHECK FOR PENDING GOLD:HALT 18003 /D214 TAD I HLTFLG / WITHOUT UPDATING STATUS LINE(FOR SPEED) 18004 /D214 SZA CLA / SKIP IF NO GOLD:HALT REQUEST 18005 /D214 JMP RRABOR / GOLD:HALT: ABORT GOTO-RULER 18006 18007 047654* 1152 TAD ECHFLG / GET THE ECHO FLAG /C214 18008 047655* 7650 SNA CLA / ARE WE ECHOING CURMOV'S? /C214 18009 047656* 5261 JMP RRSC2 / NO, SKIP THE HALT TEST /C214 18010 047657* 4501 HLTTST / YES: UPDATE STATUS LINE & CHECK FLAG /C214 18011 047660* 5330 JMP RRABOR / GOLD:HALT: ABORT GOTO-RULER /C214 18012 18013 047661* 0000 RRSC2, CDFMYF / DID CURMOV PASS OVER A RULER? 18014 047662* 1773 TAD SETRUL 18015 047663* 7650 SNA CLA / (CURMOV CALLS SETRUL TO PROCESS A RULER) 18016 047664* 5247 JMP RRSCLP / NO: KEEP LOOKING FOR RULER 18017 18018 / FOUND RULER. LEAVE CURSOR JUST AFTER RULER. 18019 18020 047665* 1777 RRSCDN, TAD RRDIR / WERE WE ADVANCING OR BACKING UP? 18021 047666* 7710 SPA CLA / ADVANCING: DON'T MOVE CURSOR 18022 AC0001 / BACKING UP: ADVANCE CURSOR TO AFTER RULER undefined ^ 047667* 0000 18023 047670* 4513 CURMOV 18024 047671* 7000 NOP / IMPOSSIBLE 18025 18026 / GOTO-RULER IS DONE! (SUCCESS) 18027 18028 047672* 5770 JMP EIFIX / GO LISTEN FOR NEXT EDITOR CMD 18029 18030 18031 / NEXT RULER IS NOT IN TEXT BUFFER OR ORIGINAL ETX (OR STX) BUFFER, 18032 / THEREFORE WE MUST USE GOTO-PAGE STRUCTURE TO FIND NEXT RULER. 18033 / 18034 / FIRST, SAVE WPFILS' FILE SYSTEM POINTERS, BECAUSE 18035 / READING SUCCESSIVE GOTO-PAGE DESCRIPTOR WORDS MODIFIES THE 18036 / FILE SYSTEM POINTERS, AND AFTER SCANNING DESC WORDS FOR A RULER, 18037 / WE NEED A WAY TO RETURN TO OUR STARTING POINT IN THE DOCUMENT. 18038 / WARNING: DO NOT PERFORM ANY CURMOV, ADVCHR, ETC. THAT INVOLVES 18039 / DISK SCROLLING AFTER MODIFYING THE FILE SYSTEM POINTERS, 18040 / OR ELSE THE DOCUMENT WILL BE CORRUPTED! 18041 18042 RR3, AC7776 / AC=-2 => SAVE FILE SYSTEM POINTERS undefined ^ 047673* 0000 18043 047674* 4775 JMS DSKCAL 18044 XRPRD undefined ^ 047675* 0000 18045 047676* 7200 CLA / FORGET # OF PAGES IN STX BUFFER 18046 18047 / SET UP SCTOP,SCTPH TO ACCESS THE GOTO-PAGE DESCRIPTOR WORD 18048 / FOR THE BLOCK CURRENTLY LOADED IN THE ETX (OR STX) BUFFER 18049 18050 047677* 1344 TAD RRORID / COPY RRORID ... 18051 047700* 7421 MQL 18052 047701* 1343 TAD RROROF / ... AND RROROF ... 18053 047702* 4775 JMS DSKCAL / ... TO SCTPH AND SCTOP 18054 XRSCTP undefined ^ 047703* 0000 18055 18056 / SCAN GOTO-PAGE STRUCTURE FORWARD (OR BACKWARD) UNTIL A BLOCK 18057 / CONTAINING A RULER IS FOUND. 18058 / KEEP TRACK OF THE # OF BLOCKS SKIPPED, SO WE CAN ESTIMATE 18059 / WHETHER IT'S FASTER TO SCROLL TO RULER OR JUMP TO IT. 18060 18061 047704* 3342 DCA RRBLCT / CLEAR # OF BLOCKS SKIPPED OVER 18062 18063 / SCANNING FORWARD (BACKWARD): /A157 18064 / START AT ORIGINAL SCTOP,SCTPH (SCBOT,SCBTH) DESCRIPTOR WORD, AND /A157 18065 / INCREMENT (DECREMENT) UNTIL ETX (STX) OR RULER FOUND. /A157 18066 18067 RRDW, 18068 /D214 CDFSYS /A157 18069 /D214 TAD I HLTFLG / DID USER TYPE GOLD:HALT? /A157 18070 /D214 SZA CLA /A157 18071 /D214 JMP RRHLT / YES: STOP WHERE YOU ARE /A157 18072 047705* 0000 CDFMYF /A157 18073 047706* 1777 TAD RRDIR / GET DIRECTION TO SCAN /A157 18074 047707* 7421 MQL / SET INCREMENT OR DECREMENT /A157 18075 047710* 1367 TAD (-6) / READ G-T-P DESC WORD, INC /A157 18076 047711* 4775 JMS DSKCAL / (AC=DESC WORD, -1==ETX OR STX) /A157 18077 XRPRD /A157 undefined ^ 047712* 0000 18078 047713* 7040 CMA / REACHED ETX OR STX? /A157 18079 047714* 7450 SNA /A157 18080 047715* 5331 JMP RRFNDE / YES-NO NEXT RULER, OR GTP STRUCT /A157 18081 / INCOMPLETE /A157 18082 047716* 2342 ISZ RRBLCT / NO: COUNT # OF BLOCKS SCANNED /A157 18083 RRAER2, IFNZRO RPRULR-4000 < ? >/ PREFIX FILE CHANGED /A157 18084 047717* 7710 SPA CLA / DOES CURRENT BLK CONTAIN A RULER? /A157 18085 047720* 5305 JMP RRDW / NO: CONTINUE LOOKING FOR A RULER /A157 18086 047721* 5333 JMP RRFND / YES-FOUND DESTINATION RULER /A157 18087 18088 / REACHED ETX OR STX WHILE SCANNING TEXT & ETX (STX) BUFFERS FOR RULER 18089 / OR WHILE SCROLLING TO RULER -- 18090 / ERROR (BEEP) IF HAVEN'T FOUND RULER YET; 18091 / LEAVE CURSOR AT BOTTOM (OR TOP) OF DOCUMENT. 18092 18093 047722* 0000 RRERRT, CDFMYF 18094 047723* 1773 TAD SETRUL / FOUND RULER JUST BEFORE ETX OR STX? 18095 047724* 7650 SNA CLA / SKIP IF: YES /M163 18096 047725* 4766 RRERRB, JMS BUZZER / WARN USER, GET NEXT EDITOR COMMAND /M163 18097 047726* 5770 JMP EIFIX / YES-NO ERROR: GET NEXT EDITOR CMD /M163 18098 18099 / USER TYPED GOLD:HALT 18100 18101 047727* 4765 RRHLT, JMS RRRFSP / RESTORE FILE SYSTEM POINTERS 18102 047730* 5770 RRABOR, JMP EIFIX / GO LISTEN FOR NEXT EDITOR COMMAND 18103 18104 18105 / HIT ETX (OR STX IF CORRUPT GTP STRUCT) WHILE SCANNING GTP DESC WORDS. 18106 / EITHER THERE IS NO NEXT RULER, OR THE GTP STRUCTURE IS INCOMPLETE. 18107 / PREPARE TO OPEN AT LAST KNOWN BLOCK, THEN CURMOV TO RULER OR ETX. 18108 18109 047731* 0000 RRFNDE, CDFMYF 18110 047732* 1777 TAD RRDIR / AC=FLAG TO CORRECT OVERSHOOT AT ETX(STX) 18111 18112 / RRFND: FOUND NEXT RULER USING GOTO-PAGE DESCRIPTOR WORDS. 18113 / PREPARE TO USE RANDOM-ACCESS TO JUMP TO RULER, 18114 / USING BLOCK POINTERS (SCTOP,SCTPH) SET BY SCAN LOOP ABOVE. 18115 / NO HARM DONE IF WE LATER DECIDE TO SCROLL INSTEAD. 18116 18117 047733* 4764 RRFND, JMS RRSVBK 18118 18119 / ESTIMATE WHETHER RULER IS CLOSE ENOUGH TO SCROLL DIRECTLY TO IT, 18120 / OR IF IT WOULD BE FASTER TO USE GOTO-PAGE TECHNIQUES TO JUMP TO 18121 / RULER (RANDOM-ACCESS) 18122 18123 047734* 1342 TAD RRBLCT / IS RULER WITHIN 20 BLOCKS? 18124 047735* 1363 TAD (-20) / (TO PULL A # OUT OF MY EAR) 18125 047736* 7750 SPA SNA CLA 18126 047737* 5261 JMP RRSC2 / YES: SCROLL TO THE RULER (NO ECHO) 18127 / NO: JUMP TO THE RULER 18128 18129 / NOW ENTER COMMON CODE FOR GOTO-RULER, GOTO-PAGE, 18130 / GOLD:BOTTOM, (GOLD:TOP?,) AND FILE-DOCUMENT (GOLD:F) 18131 / 18132 / THE FOLLOWING FLAGS ARE VALID ONLY DURING AND IMMEDIATELY 18133 / FOLLOWING THIS COMMON CODE: 18134 / 18135 / 'RRDIR' IS THE FLAG THAT DISTINGUISHES GOTO-RULER FROM 18136 / GOTO-PAGE AND GOLD:BOTTOM. 18137 / RRDIR=+1 == GOTO-RULER (ADVANCING) 18138 / RRDIR=-1 == GOTO-RULER (BACKING UP) 18139 / RRDIR=0 == GOTO-PAGE OR GOLD:BOTTOM (*NOT* GOLD-RULER) 18140 / 18141 / 'RPBIN1' BIT 0 IS THE FLAG THAT DISTINGUISHES A 18142 / GOTO-PAGE, GOTO-RULER, OR GOLD:BOTTOM FROM A GOLD:F 18143 / (FILE DOCUMENT): 18144 / RPBIN1<0 == GOTO-PAGE, GOTO-RULER, OR GOLD:BOTTOM 18145 / (INHIBITS CERTAIN SCREEN MESSAGES) 18146 / RPBIN1>=0 == FILE DOCUMENT 18147 / AT EXIT FROM OVINIT, RPBIN1 BIT 0 := 1, BITS 1-11 ARE UNCHANGED. 18148 / 18149 / 'RPBOTF' IS A FLAG TO DISTINGUISH BETWEEN GOTO-PAGE & GOLD:BOTTOM 18150 / (NOT USED FOR GOTO-RULER): 18151 / RPBOTF>=0 == GOTO-PAGE 18152 / RPBOTF<0 == GOLD:BOTTOM 18153 / 18154 / 18155 / OUTLINE OF WHAT HAPPENS NEXT: 18156 / 18157 / OVRRDS DISPLAYS A MESSAGE SIMILAR TO THE GOTO-PAGE MESSAGE, 18158 / AND SETS RPBIN1:=4000 SO COMMON CODE LEAVES SCREEN ALONE; 18159 / THE COMMON CODE CALLS 2 OVERLAYS AS SUBROUTINES: 18160 / OVEXIT: 18161 / FILES THE DOCUMENT; 18162 / OVINIT: 18163 / INITIALIZES THE EDITOR (INCLUDING THE EDIT BUFFER & WPFILS); 18164 / OPENS THE DOCUMENT AT THE TOP; 18165 / THE GOTO-RULER/GOTO-PAGE/GOLD:BOTTOM OVERLAY RUNS: 18166 / OVRRP2: 18167 / JUMP TO ORIGINAL GOTO-PAGE/GOLD:BOT OVERLAY (OVRPP2) 18168 / IF NOT DOING GOTO-RULER; 18169 / OPEN THE DOCUMENT AT THE PHYSICAL BLOCK SPECIFIED BY RPCUBK; 18170 / CURMOV FORWARD OR BACKWARD TO THE NEXT RULER; AND 18171 / REPAINT THE SCREEN; 18172 / JUMP TO GET NEXT EDITOR COMMAND (DONE!). 18173 / 18174 18175 047740* 4523 OVLJMP / GO DISPLAY GOTO-RULER SCREEN, ETC... 18176 047741* 5616 OVRRDS 18177 18178 / VARIABLES 18179 18180 047742* 0000 RRBLCT, .-. / BLOCK COUNT WHILE SCANNING DESCRIPTOR 18181 / WORDS FOR NEXT RULER 18182 / = # OF BLOCKS FROM ETB (OR STB) TO 18183 / NEXT RULER. 18184 18185 / OFFSET OF [[ORIGINAL BLOCK IN ETX (OR STX) BUFFER] + 1]. 18186 / THIS VALUE IS COMPARED TO CURRENT SCBOT (OR SCTOP) TO TELL 18187 / WHEN A NEW BLOCK HAS BEEN READ (THEREFORE ALL OF THE OLD 18188 / BLOCK HAS BEEN COPIED INTO THE EDIT BUFFER). 18189 / ALSO USED WHEN SCANNING GOTO-PAGE DESC WORDS FOR A RULER. 18190 18191 047743* 0000 RROROF, .-. 18192 18193 / HEADER ID # OF [[ORIGINAL BLOCK IN ETX (OR STX) BUFFER] + 1]. 18194 18195 047744* 0000 RRORID, .-. 18196 18197 X=. / INDICATE FIRST FREE LOCATION ON PAGE 18198 /--------------------- 18199 047763* 7760 PAGE 047764* 7501 047765* 7474 047766* 0331 047767* 7772 047770* 0401 047771* 7527 047772* 7431 047773* 5600 047774* 7456 047775* 5014 047776* 7773 047777* 1764 18200 18201 /*************************************************************************** 18202 /**** START OF OVERLAY **** 18203 /*************************************************************************** 18204 18205 OVRNUM=OVRNUM+200 18206 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 18207 18208 RELOC 18209 RELOC OVLAY1 18210 047400* 5200 OVRNUM 18211 18212 18213 OVRPRL= .-OVLAY1+OVRNUM 18214 CDILP / NO ROOM HERE undefined ^ 047401* 0000 18215 047402* 5777 JMP RPERRE / GO FIX POINTERS FOR SCROLL AT EXIT TIME 18216 18217 18218 / 18219 / CONTINUE NORMAL GOTO-PAGE OR GOLD:BOTTOM 18220 / 18221 OVRPP2= .-OVLAY1+OVRNUM 18222 / /A157 18223 / CLEAR CURRENT RULER (CURUL) FOR GOTO-PAGE AND GOLD:BOTTOM. /A157 18224 / THIS IS USUALLY NOT NEEDED UNLESS DESTINATION PAGE IS IN FIRST BLOCK. /A157 18225 / (OVINIT USED TO CLEAR CURUL, BUT NO LONGER DOES SO FOR GOTO-PAGE, /A157 18226 / GOLD:BOTTOM, OR GOTO-RULER, FOR THE CONVENIENCE OF GOTO-RULER) /A157 18227 / /A157 18228 047403* 4776 JMS CLRULR / CLEAR NWRUL /A157 18229 047404* 4775 JMS COPRUL / COPY NWRUL TO CURUL (CLEAR CURUL) /A157 18230 047405* 5210 JMP RP7777 / SETUP 18231 18232 18233 / Enter here to continue V2 GOTO PAGE request. 18234 18235 / The edit buffer has been flushed; thereby updating the RPPGDS 18236 / block descriptors and closing the document. 18237 18238 / The document has been re-opened thereby loading the HEADER block 18239 / and the RPPGDS block into the appropriate scroll buffers. 18240 18241 18242 / ***************************************************************** 18243 / *** *** 18244 18245 / 'SRCDIR' HAS THE WORKING COPY OF THE RPPGDS DESCRIPTOR WORD 18246 / 'RPCUOF' HAS + OFFSET TO THE BLOCK CONTAINING THE DESIRED PAGE (END LOAD) 18247 / 'RPMTRL' HAS + OFFSET TO RULER BLOCK (LOAD RULER) 18248 18249 / *** *** 18250 / ***************************************************************** 18251 18252 / BEGIN LOOKING FOR DESIRED PAGE 18253 18254 RPDESC, AC0001 / ('JMP' HERE AFTER SETUP AT 'XVRPP2') undefined ^ 047406* 0000 18255 047407* 4774 JMS ADJUST 18256 RP7777, AC7777 / RPDSCP FLAG INTO AC undefined ^ 047410* 0000 18257 047411* 4773 JMS DSKCAL / CALL WPFILS TO READ THE DESCRIPTOR WORD 18258 XRPRD / WPFILS ENTRY FOR 'RPINIT' undefined ^ 047412* 0000 18259 18260 047413* 0000 CDFMYF / DATA FIELD SET TO 'BUFFER' AT 'DSKCAL' EXIT 18261 047414* 3153 DCA SRCDIR / SAVE THE PRESENT RPPGDS WORD 18262 18263 047415* 1153 TAD SRCDIR / GET IT BACK FOR SOME TESTS 18264 047416* 7040 CMA / -1 IS RPPGDS TERMINATOR 18265 047417* 7650 SNA CLA / SKIP NEXT IF REAL DESCRIPTOR 18266 047420* 5255 JMP TRYBOT / FOUND DESCRIPTOR LIST TERMINATOR 18267 / IF NOT PROCESSING V2 GOLD BOTTOM, 18268 / THEN THIS IS AN ERROR CONDITION 18269 AC4000 / RPRULR undefined ^ 047421* 0000 18270 047422* 0153 AND SRCDIR / 18271 047423* 7650 SNA CLA / SKIP WITH A RULER IN THIS BLOCK 18272 047424* 5235 JMP TRYPGE / JMP WITHOUT A RULER 18273 047425* 1772 TAD RPMTRL / SAVE PREVIOUS RULER OFFSET. 18274 047426* 3771 DCA RPMTBK / ... 18275 18276 047427* 1770 TAD RPRLHN / BLK. ID # OF EX-RULER 18277 047430* 3767 DCA RPPRRL / BLK ID # FOR PREVIOUS RULER 18278 18279 047431* 1766 TAD RPCUOF / AC = OFFSET TO CURRENT DESCRIPTOR WORD 18280 047432* 3772 DCA RPMTRL / THIS IS LATEST RULER BLOCK 18281 18282 047433* 1765 TAD RPCUBK / RPPGDS BLOCK IDENTIFIER 18283 047434* 3770 DCA RPRLHN / SAVE UNTIL RULER LOAD REQUIRED / A78 18284 18285 TRYPGE, CDILP / FOR ROOM undefined ^ 047435* 0000 18286 047436* 4764 JMS RPXHLT / TEST desc. for desired page-blk. 18287 047437* 5206 JMP RPDESC / return here if LO page not found 18288 / not honoring GOLD_HALT any longer /A154 18289 047440* 7450 SNA / return here if LO page found 18290 / SKIP IF USER DESIRED PAGE GREATER THAN 999 18291 / AC = 0 IF NO 1000'S PAGE # SUPPLIED 18292 / SO WE'RE AT THE BLOCK CONTAINING THE PAGE 18293 /D154 JMP RPNOHLT / not honoring GOLD_HALT anymore 18294 047441* 5763 JMP RPSURL / jump with blk. containing desired page /A154 18295 047442* 1362 TAD (-1) / TAKE AWAY A THOUSAND 18296 047443* 3761 DCA RPBIN2 / UPDATE MEMORY THOUSAND PAGE # 18297 047444* 2266 ISZ CURPG3 / UPDATE THOUSANDS # OF PAGES COUNTED 18298 047445* 1153 TAD SRCDIR / TOTAL PAGES IN THIS BLOCK 18299 047446* 0360 AND (37) / INTO THE AC 18300 047447* 1757 TAD CURPG1 / -REMAINDER OF PAGES IN THIS BLOCK 18301 047450* 7041 CIA / NEG COUNT OF PAGES LEFT IN BLOCK 18302 047451* 1356 TAD (1750) / FROM 1000 = NEW HUNDREDS PAGE # 18303 047452* 3755 DCA RPBIN1 / UPDATE MEMORY HUNDREDS PAGE # 18304 047453* 3757 DCA CURPG1 / RESET PAGE COUNTER 18305 047454* 5206 JMP RPDESC / CONTINUE WITH NEXT DESCRIPTOR 18306 18307 18308 18309 / here only if the -1 GTP desc. found. /A154 18310 / if GOLD_BOTTOM flag negative then pursue GOLD_BOTTOM /A154 18311 / else pursue PAGE_NOT_FOUND error condition /A154 18312 / 18313 047455* 1754 TRYBOT, TAD RPBOTF / get the GOLD_BOTTOM flag /A154 18314 047456* 7710 SPA CLA / skip if NOT GOLD_BOTTOM /A154 18315 047457* 5267 JMP TORPSURL / jump to perform a GOLD_BOTTOM /A154 18316 18317 047460* 1757 TAD CURPG1 / these 2 words will contain pages /A154 18318 047461* 1266 TAD CURPG3 / found upto the -1 desc. word /A154 18319 047462* 7650 SNA CLA / if pages counted, then this is a /A154 18320 / paginated doc. /A154 18321 AC7776 / else, no pages so GO-TO-TOP /A154 undefined ^ 047463* 0000 18322 047464* 3753 DCA RPPG0 / will = 0 when page # too large /A154 18323 047465* 5752 JMP RPPGER / -2 when no pages avail. to /A154 18324 / paint screen after err-report/A154 18325 047466* 0000 CURPG3, 0 /count of # of 1000's pages /A154 18326 18327 / user has depressed the GOLD_BOTTOM key and GTP has found the 18328 / logical end_of_file (-1 desc. word). Backup the descriptor 18329 / pointer to indirectly point at the last text block. 18330 / intialize CURPG1 to 1 for two reasons: enables correct flow 18331 / thru RPRULE with a GOLD_BOTTOM using a doc. without pages and 18332 / secondly, insures that RPADVNW reads all of the BOTTOM block into 18333 / the edit-buffer before filling PTRBLK prior to exit... 18334 18335 18336 TORPSURL, / -1 desc. word OK when doing GOLD_BOT /A154 18337 AC7777 / get to GTP desc. word immediately /A154 undefined ^ 047467* 0000 18338 047470* 4774 JMS ADJUST / preceeding the -1 to find the ruler /A154 18339 AC0001 / init.'d in order to share /A154 undefined ^ 047471* 0000 18340 047472* 3757 DCA CURPG1 / GTP exit logic 18341 047473* 5763 JMP RPSURL / SETUP TO LOAD RULER /A157 18342 18343 18344 / FOLLOWING CODE WAS MOVED IN SPACE WAR /A157 18345 /D157 / if PAGE (or BOTTOM) & RULER are within the SAME block 18346 /D157 / then use previous RULER block (RPMTBK) in case 18347 /D157 / the ruler within the desired PAGE block is 18348 /D157 / beyond the desired PAGE 18349 /D157 / else use the latest RULER block (RPMTRL) found 18350 /D157 18351 /D157 RPSURL, / Set-Up RuLer 18352 /D157 TAD RPCUOF / POINTS TO DESIRED PAGE or BOTTOM BLOCK 18353 /D157 CIA / FOR COMPARE TO 18354 /D157 TAD RPMTRL / LATEST RULER BLOCK POINTER 18355 /D157 SZA CLA / SKIP TO MAKE PRIOR THE LATEST RULER 18356 /D157 JMP SURLEX / JUMP TO RETAIN LATEST RULER 18357 /D157 TAD RPMTBK / RULER PRIOR TO LATEST RULER 18358 /D157 DCA RPMTRL / INSURE PRESENCE OF A RULER 18359 /D157 18360 /D157 TAD RPPRRL / BLK ID # FOR PREVIOUS RULER 18361 /D157 DCA RPRLHN / TO BE LOADED 18362 /D157 18363 /D157 SURLEX, TAD (-55) / OFFSET TO 1ST TEXT-BLOCK 18364 /D157 TAD RPCUOF / IF PAGE NOT IN 1ST TEXT-BLOCK 18365 /D157 SNA CLA / THEN LOAD ITS' RULER NOW 18366 /D157 JMP RPPAGE / ELSE, LOAD IT W/ PAGE or BOTTOM 18367 /D157 JMP RPRULE / GO SET-UP WPFILS SCTOP&SCBOT 18368 18369 18370 / the block being loaded into the EDIT buf. is pointed at by 18371 / the offset within RPMTRL; SCBOT points at this block -2 (COS). 18372 / when all chars. within this block have been moved into the 18373 / EDIT buf., WPFILS will automatically read in the next seq. 18374 / block and bump SCBOT. when SCBOT and RPMTRL no longer match 18375 / then a new block has just been read (we are done w/ current blk) 18376 18377 047474* 0000 RPCKBT, 0 / ChecK scBoT 18378 DCA T2 / CHAR. JUST LOADED INTO ED. BUF. undefined ^ undefined ^ 047475* 3000 18379 047476* 1351 TAD (-5) / F.C. TO REQ. SCBOT CONTENTS 18380 047477* 4773 JMS DSKCAL / WPFILS WILL SUPPLY SCBOT IN AC 18381 XRPRD undefined ^ 047500* 0000 18382 047501* 0000 CDFMYF / BACK FROM BUFFER FIELD 18383 18384 047502* 7041 CIA / FOR COMPARE TO 18385 047503* 1772 TAD RPMTRL / CURRENT BLOCK OFFSET 18386 047504* 7650 SNA CLA / NO CHANGE MEANS SAME BLOCK 18387 047505* 2274 ISZ RPCKBT / CHANGED WHEN NEXT SEQ. BLK. READ 18388 047506* 5674 JMP I RPCKBT / RETURN + 1 = CONTINUE W/ THIS BLK. 18389 / RETURN + 0 = ENTIRE BLOCK PROCESSED 18390 18391 18392 18393 / SPA / SKIP NEXT IF POSITIVE MEANING ADJUST FORWARD 18394 / JMP ADJBACK / ADJUST IN THE REVERSE DIRECTION 18395 18396 / adjust in the forward direction 18397 18398 / ISZ RPCUOF / ADJUST FORWARD BY 1 COUNT (ALWAYS) 18399 / CLA 18400 / TAD RPCUOF 18401 / TAD (-400) 18402 / SPA CLA 18403 / JMP I ADJUST / EXIT 18404 18405 / gone to far forward 18406 18407 / AC0002 / 2 18408 /\ DCA RPCUOF 18409 / ISZ RPCUBK 18410 / JMP ADJEX2 / EXIT 18411 18412 / adjust in the backward direction 18413 18414 / ADJBACK,TAD RPCUOF / GET POINTER VALUE BEFORE ADJUSTMENT 18415 / DCA RPCUOF / SAVE BACKWARD ADJUSTED VALUE 18416 / TAD RPCUBK 18417 / CLL RAR 18418 / SNA CLA 18419 / JMP RPPH01 18420 / AC7776 / -2 18421 / TAD RPCUOF 18422 / SMA 18423 / JMP ADJEX1 / STILL WITHIN LIMITS OF RPPGDS BLOCK AFTER ADJUSTMENT 18424 18425 / the contents of the AC is a negative number 18426 / which means out of the logical boundries 18427 / of the RPPGDS block after the backward adjustment 18428 18429 / TAD (400) 18430 / DCA RPCUOF / RPCUOF IS NOW CORRECTED 18431 / AC7777 / -1 18432 / TAD RPCUBK 18433 / DCA RPCUBK 18434 / JMP I ADJUST / EXIT 18435 18436 / special boundry testing 18437 / because the pointer adjusted 18438 / is in the 1st RPPGDS descriptor block 18439 / (which has unique limits) 18440 18441 / 55 - is the 'top' of the block where the 1st RPPGDS descriptor word is 18442 / 377 - is the 'bottom' of the block where the last descriptor word is 18443 18444 / RPPH01, TAD (-55) 18445 / TAD RPCUOF 18446 / ADJEX1, SMA CLA 18447 / JMP I ADJUST / EXIT - STILL WITHIN LIMITS AFTER ADJUSTMENT 18448 / TAD (55) 18449 / ADJEX2, DCA RPCUOF 18450 / JMP I ADJUST / EXIT 18451 18452 / after reporting that the desired page was not found, 18453 / backup to the previous descriptor word to get the block 18454 / containing the last available page..... 18455 18456 SETBLK, XX / SAVE CALLERS RETURN ADDRESS undefined ^ 047507* 0000 18457 047510* 1351 TAD (-5) / F.C. TO REQ. SCBOT CONTENTS 18458 047511* 4773 JMS DSKCAL / WPFILS WILL SUPPLY SCBOT IN AC 18459 XRPRD / GTP ENTRY POINT undefined ^ 047512* 0000 18460 047513* 0000 CDFMYF 18461 18462 047514* 1350 TAD (1) / INIT. RPMTRL TO BE THE 18463 047515* 3772 DCA RPMTRL / BLK BEING LOADED 18464 18465 AC7775 / -3 undefined ^ 047516* 0000 18466 047517* 1765 TAD RPCUBK / ARE WE IN THE 3RD EXT?? 18467 047520* 7640 SZA CLA / SKIP IF 3RD EXT 18468 047521* 1347 TAD (16) 18469 047522* 1346 TAD (360) / IF IN 3RD EXT. SCBOT CANNOT BE >= 360 18470 / ANY OTHER EXT. SCBOT CANNOT BE >= 376 18471 047523* 7041 CIA / MAKE NEG FOR COMPARE 18472 047524* 1772 TAD RPMTRL / TO BLK BEING LOADED 18473 047525* 7650 SNA CLA / SKIP W/ VALID BLOCK 18474 047526* 3772 DCA RPMTRL / CORRECT BLOCK OFFSET 18475 18476 047527* 5707 JMP I SETBLK / RETURN 18477 18478 X=. / INDICATE FIRST FREE LOCATION ON PAGE 18479 /--------------------- 18480 047546* 0360 PAGE 047547* 0016 047550* 0001 047551* 7773 047552* 7664 047553* 6736 047554* 3753 047555* 6737 047556* 1750 047557* 1751 047560* 0037 047561* 4302 047562* 7777 047563* 7600 047564* 6670 047565* 0761 047566* 2756 047567* 6735 047570* 6537 047571* 3363 047572* 5162 047573* 5014 047574* 7740 047575* 5217 047576* 5406 047577* 6716 18481 18482 / can delete all this because GOLD_BOTTOM now takes GTP path... /A154 18483 18484 /D157 / ENTRY TO 'RPXRULE' FROM 'TRYBOT' 18485 /D157 / A -1 RPPGDS DESCRIPTOR LIST TERMINATOR WAS FOUND 18486 /D157 / BACKUP THE LIST POINTER 10 POSITIONS 18487 /D157 / 10 POSITIONS = 1 TO GET BEFORE -1 DESCRIPTOR 18488 /D157 / 9 TO INSURE THAT THERE WILL BE ENOUGH TEXT 18489 /D157 / TO PAINT THE SCREEN 18490 /D157 18491 /D154 RPXRULE, / was called only by TRYBOT 18492 /D154 TAD (-12) / ADJUST BACK 10 BLOCKS 18493 /D154 JMS ADJUST / ADJUST 'RPCUOF' 18494 /D154 CIFLP / FIELD 5 18495 /D154 JMS RULCHK / CHECK TO LOAD CORRECT RULER 18496 /D154 TAD RPBKID / RESTORE BLK ID # 18497 /D154 DCA RPCUBK / FOR SCROLL... 18498 /D154 JMP RPRUL1 18499 18500 / IF DESIRED PAGE (OR BOT DOC) & LATEST RULER ARE WITHIN THE SAME BLOCK THEN/A157 18501 / USE PREVIOUS RULER BLOCK (RPMTBK,RPPRRL) IN CASE /A157 18502 / THE RULER WITHIN THE DESIRED PAGE BLOCK IS /A157 18503 / BEYOND THE DESIRED PAGE; /A157 18504 / ELSE (NOT WITHIN THE SAME BLOCK) /A157 18505 / USE THE LATEST RULER BLOCK (RPMTRL,RPRLHN) FOUND. /A157 18506 /A157 18507 RPSURL, / Set-Up RuLer /A157 18508 047600* 1777 TAD RPCUOF / OFFSET OF DESIRED PAGE OR BOTTOM BLOCK/A157 18509 047601* 7041 CIA / FOR COMPARE TO /A157 18510 047602* 1776 TAD RPMTRL / LATEST RULER BLOCK OFFSET /A157 18511 047603* 7640 SZA CLA / SKIP IF BLOCKS MAY BE THE SAME /A157 18512 047604* 5216 JMP SURLEX / JUMP TO RETAIN LATEST RULER /A157 18513 047605* 1775 TAD RPCUBK / DO BLOCK ID #S ALSO MATCH? /A157 18514 047606* 7041 CIA / (COMPARE BLK ID # FOR DESIRED PAGE /A157 18515 047607* 1774 TAD RPRLHN / WITH BLK ID # FOR LATEST RULER) /A157 18516 047610* 7640 SZA CLA / SKIP IF YES:SET LATEST RUL:=PREVIOUS RUL/A157 18517 047611* 5216 JMP SURLEX / NO: RETAIN LATEST RULER /A157 18518 /A157 18519 047612* 1773 TAD RPMTBK / RULER PRIOR TO LATEST RULER /A157 18520 047613* 3776 DCA RPMTRL / INSURE PRESENCE OF A RULER /A157 18521 /A157 18522 047614* 1772 TAD RPPRRL / BLK ID # FOR PREVIOUS RULER /A157 18523 047615* 3774 DCA RPRLHN / TO BE LOADED /A157 18524 /A157 18525 047616* 1371 SURLEX, TAD (-55) / OFFSET TO 1ST TEXT BLOCK /A157 18526 047617* 1777 TAD RPCUOF / IS PAGE OR BOTTOM IN 1ST TEXT BLOCK? /A157 18527 047620* 7640 SZA CLA /A157 18528 047621* 5226 JMP RPRULE / NO: GO LOAD IT'S RULER /A157 18529 AC7777 / (MAYBE: CHECK BLOCK ID #S) /A157 undefined ^ 047622* 0000 18530 047623* 1775 TAD RPCUBK /A157 18531 047624* 7650 SNA CLA / SKIP IF NO: LOAD RULER SEPARATELY /A157 18532 047625* 5257 JMP RPPAGE / YES: LOAD RULER W/ PAGE OR BOTTOM /A157 18533 18534 / Request the initialization of WPFILS' SCTOP & SCBOT to enable 18535 / the READ of our RULER block. The contents of SCTOP & SCBOT 18536 / are used as offsets within the HEADER BLOCK BLOCK-LIST to 18537 / obtain the block # of the desired text block. They are always 18538 / a -2 away from the desired block list offset. SCGETR of WPFILS 18539 / takes the contents of SCTOP or SCBOT and adds 2 to obtain the 18540 / desired text block # from the block list. This module does not 18541 / alter the actual contents of either SCTOP or SCBOT. 18542 18543 / Load the RULER into the edit buffer ; fill the edit ruler area (NWRUL) 18544 / with the contents of this RULER. 18545 18546 047626* 1770 RPRULE, TAD CURPG1 / PAGE NUMBER 18547 047627* 7650 SNA CLA / SKIP IF VALID 18548 047630* 5262 JMP RPPAG1 / USER SUPPLIED A PAGE VALUE 18549 / = OR < 0, OR NON-PAGINATED 18550 18551 047631* 1774 TAD RPRLHN / RPCUBK - IDENTIFY WHICH HEADER BLOCK CONTIANS 18552 047632* 7421 MQL / THE RULER BLOCK OFFSET 18553 AC7776 / -2 / MAKES FOR WPFILS 'SCBOT' undefined ^ 047633* 0000 18554 / / COS-310 COMPATABILITY 18555 047634* 1776 TAD RPMTRL / RPCUOF - OFFSET TO THE BLOCK -2 18556 / CONTAINING THE RULER 18557 047635* 4767 JMS DSKCAL / REQUEST THAT SCBOT & SCTOP BE SETUP 18558 / FOR OUR READ 18559 XRPRD / ENTRY POINT FOR V2 GOTO PAGE undefined ^ 047636* 0000 18560 / RANDOM BLOCK READ 18561 047637* 4275 JMS RPBFIN / GO INITIALIZE THE EDIT BUFFER 18562 18563 / the EDIT BUFFER is now logically empty. 18564 / WPFILS has been primed to start reading text blocks (SCBOT & SCTOP). 18565 / using ADVPTR because CURMOV doesn't know what to do with 18566 / an END-RULER (17) that may come before a START-RULER (16) 18567 / which is possible now with random block access employed 18568 / by GOTO-PAGE... 18569 18570 18571 047640* 4766 JMS SETBLK / SET UP RPMTRL TO POINT AT THE 18572 / BLOCK TO BE LOADED 18573 RPRLSR, / START SEARCH FOR START-OF-RULER 18574 047641* 4506 ADVPTR / READ/ LOAD 1 CHAR. 18575 047642* 7000 NOP / ETX WILL NOT OCCUR 18576 047643* 0000 CDFMYF / BACK TO THIS FIELD 18577 047644* 4765 JMS RPCKBT / SEE IF ENTIRE BLOCK LOADED 18578 047645* 5257 JMP RPPAGE / YES - ALL RULERS LOADED 18579 18580 TAD T2 / CHAR. JUST LOADED undefined ^ undefined ^ 047646* 1000 18581 TAD (-ECSTRL) / IS IT START-OF-RULER? undefined ^ undefined ^ 047647* 1364 18582 047650* 7640 SZA CLA / SKIP IF RULER FOUND 18583 047651* 5241 JMP RPRLSR / NO RULER - KEEP LOOKING 18584 18585 / load BOTTOM ruler just like GTP ruler /A154 18586 18587 /D154 TAD RPBOTF / IF THIS IS A 18588 /D154 SPA CLA / GOLD-BOTTOM REQUEST 18589 /D154 JMP TOBOTF / THEN JUMP TO CONT. IT 18590 18591 047652* 4763 JMS ADVRUL / LOAD RULER JUST FOUND 18592 047653* 7000 NOP / ETX WILL NOT OCCUR 18593 047654* 4765 JMS RPCKBT / DID IT FORCE READ OF NEW BLOCK? 18594 047655* 5257 JMP RPPAGE / YES - ENTIRE BLOCK PROCESSED 18595 047656* 5241 JMP RPRLSR / NO - DO UNTIL ENTIRE BLOCK READ 18596 18597 18598 / request the initialization of WPFILS' SCTOP & SCBOT to enable the 18599 / read of our PAGE block. 18600 / Exit to final overlay to paint the screen with the first line of 18601 / the new page in the bottom line of the screen. Set scroll pointers 18602 / with the edit buffer lines preceeding the first line of the new page. 18603 18604 18605 047657* 4275 RPPAGE, JMS RPBFIN / GO INIT. THE EDIT BUFFER 18606 047660* 4523 OVLJMP; OVRPWP / GO INIT. WPFILS'S SCTOP & SCBOT AND 047661* 5440 18607 / TEST FOR ACTIVE CONTROL-BLOCK 18608 18609 047662* 4523 RPPAG1, OVLJMP; OVRPEX / LOAD PAGE INTO BUFFER;PAINT SCREEN; EXIT 047663* 5441 18610 18611 18612 / can delete all this now because GOLD_BOTTOM handled like GTP /A154 18613 / was called by RPRLSR only... /A154 18614 18615 /D154TOBOTF, TAD RPCUBK / HEADER BLOCK ID # 18616 /D154 CLL RAR 18617 /D154 SZA CLA / SKIP IF THIS IS 1ST HEADER BLOCK 18618 /D154 JMP BOTRLR / GO LOAD THE RULER INTO EDITOR RULER AREA 18619 /D154 TAD (-55) / 1ST TEXT BLOCK POINTER OFFSET 18620 /D154 TAD RPCUOF / COMPARE TO CURRENT BLOCK (BOTTOM OF DOC) 18621 /D154 SNA CLA / IF NOT 1ST DESCRIPTOR WORD 18622 /D154 JMP BOTEM / GO LOAD RULER 18623 / IF WE ARE IN THE FIRST BLOCK OF THE FIRST EXTENSION, LOAD THE RULER 18624 /D154BOTRLR, TAD (376) / READ IN THE NEWEST RULER 18625 /D154 CURMOV 18626 /D154 NOP 18627 /D154BOTRL1, JMS RPBFIN / CLEAN-UP EDIT BUFFER FROM RULER 18628 /D154 OVLJMP; OVRPWP / INIT. WPFIL'S SCTOP & SCBOT, 18629 / AND READ PAGE DESC. FOR PRINT CONTROL 18630 18631 / error condition recognized.... 18632 18633 047664* 1770 RPPGER, TAD CURPG1 / -1 DESCRIPTOR FOUND 18634 047665* 7450 SNA / IF NO PAGES IN THE DOCUMENT 18635 047666* 1762 TAD CURPG3 / THEN REPORT ERROR AND 18636 047667* 7650 SNA CLA 18637 047670* 5262 JMP RPPAG1 / GO TO TOP OF DOCUMENT 18638 / ELSE 18639 18640 AC2000 / ERROR RECOVERY FLAG undefined ^ 047671* 0000 18641 047672* 3761 DCA RPBOTF / FOR -1 DESC. FOUND CONDITION 18642 18643 047673* 4523 OVLJMP; RPPER7 / GO REPORT ERROR: RAN OUT OF 047674* 6001 18644 / DESCRIPTOR WORDS BEFORE PAGE FOUND 18645 18646 18647 / INIT. THE EDIT BUFFER JUST LIKE AT OVINIT TIME... 18648 18649 RPBFIN, XX undefined ^ 047675* 0000 18650 CDFBUF undefined ^ 047676* 0000 18651 AC7777 / TAKE 1 AWAY FROM THE FOLLOWING ADDR. undefined ^ 047677* 0000 18652 047700* 1164 TAD BUFBEG / START OF THE EDIT BUFFER 18653 DCA X0 / X0 = EDIT BUFFER LOC. POINTER undefined ^ undefined ^ 047701* 3000 18654 TAD (ECBFBG) / BUFFER BEGIN WORD undefined ^ undefined ^ 047702* 1364 18655 DCA I X0 / INTO 1ST EDIT BUFFER WORD undefined ^ undefined ^ 047703* 3400 18656 TAD (ECSTX) / START OF TEXT WORD undefined ^ undefined ^ 047704* 1364 18657 DCA I X0 / INTO 2ND EDIT BUFFER WORD undefined ^ undefined ^ 047705* 3400 18658 TAD (ECETX) / END OF TEXT WORD undefined ^ undefined ^ 047706* 1364 18659 DCA I X0 / INTO 3RD EDIT BUFFER WORD undefined ^ undefined ^ 047707* 3400 18660 047710* 1165 TAD BUFSIZ / # OF TOTAL BUFFER WORDS 18661 047711* 7041 CIA / INTO A COUNTER 18662 047712* 1360 TAD (4) / ACCOUNT FOR WORDS WE ALREADY INIT'D 18663 DCA X1 / X1 = # OF WORDS TO CLEAR undefined ^ undefined ^ 047713* 3000 18664 TAD X0 undefined ^ undefined ^ 047714* 1000 18665 047715* 3135 DCA CURPTR 18666 DCA I X0 / CLEAR A BUFFER LOC. undefined ^ undefined ^ 047716* 3400 18667 ISZ X1 / SKIP IF ENTIRE BUFFER = 0 undefined ^ undefined ^ 047717* 2000 18668 047720* 5316 JMP .-2 / NOT DONE CLEARING YET 18669 TAD (ECBFND) / PHYSICAL END OF BUFFER WORD undefined ^ undefined ^ 047721* 1364 18670 DCA I X0 / INTO LAST BUFFER LOC. undefined ^ undefined ^ 047722* 3400 18671 047723* 0000 CDFMYF 18672 18673 / INITIALIZE SCREEN 18674 18675 047724* 1357 TAD (PTRBLK-1) 18676 DCA X0 undefined ^ undefined ^ 047725* 3000 18677 047726* 1356 TAD (-NPTRS+1) 18678 DCA X1 undefined ^ undefined ^ 047727* 3000 18679 DCA I X0 undefined ^ undefined ^ 047730* 3400 18680 ISZ X1 undefined ^ undefined ^ 047731* 2000 18681 047732* 5330 JMP .-2 18682 / GPT MUST USE INIT PTR BLK, 18683 DCA I X0 / UNLIKE OVINIT THAT INITS BOTTOM ENTRY TO 2 undefined ^ undefined ^ 047733* 3400 18684 047734* 1135 TAD CURPTR 18685 047735* 3171 DCA LINE23 / INIT SEPARATE LINE 23 POINTER 18686 047736* 3136 DCA CURSOR 18687 047737* 5675 JMP I RPBFIN / RETURN TO CALLER 18688 18689 18690 / this routine was moved to field 5 for more room 18691 / offset ADJUSTMENT subroutine 18692 18693 / adjust (INCREMENT OR DECREMENT) the offset to the rppgds; 18694 / and the pointer to the rppgds block 18695 18696 / the contents of the AC at entry = positive for forward adjustment, or 18697 / = negative for backward adjustment 18698 18699 ADJUST, XX / THE CONTENTS OF THE AC IS THE COUNT undefined ^ 047740* 0000 18700 CIFLP / FOR ROOM..... undefined ^ 047741* 0000 18701 047742* 4755 JMS ADJUS0 18702 047743* 5740 JMP I ADJUST / RETURN TO CALLER 18703 18704 / BOTEM called by TOBOTF only. Just deleted TOBOTF logic so this call /A154 18705 / can also be deleted. /A154 18706 18707 / IF WE ARE IN THE FIRST BLOCK OF THE FIRST EXTENTION, LOAD THE RULER 18708 18709 /D154BOTEM, OVLJMP;OVRBTM / MUST LOAD RULER, ELSE IT WON'T GET 18710 / PAINTED IF PTRBLK ISN'T FULL 18711 18712 X=. / INDICATE FIRST FREE LOCATION ON PAGE 18713 /--------------------- 18714 047755* 3544 PAGE 047756* 7751 047757* 6220 047760* 0004 047761* 3753 047762* 7466 047763* 6073 047764* 0000 047765* 7474 047766* 7507 047767* 5014 047770* 1751 047771* 7723 047772* 6735 047773* 3363 047774* 6537 047775* 0761 047776* 5162 047777* 2756 18715 18716 /*************************************************************************** 18717 /**** START OF OVERLAY **** 18718 /*************************************************************************** 18719 18720 OVRNUM=OVRNUM+200 18721 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 18722 18723 RELOC 18724 RELOC OVLAY1 18725 047400* 5400 OVRNUM 18726 18727 18728 /D155 OVRPEX= .-OVLAY1+OVRNUM 18729 /D155 JMP RPFPG / CONTINUE NORMAL GOTO PAGE 18730 18731 18732 /D157 OVRPWP= .-OVLAY1+OVRNUM / INIT. WPFILS;TEST FOR PRINT-CONTROL AREA 18733 /D157 JMP TORPWP 18734 18735 18736 / BOTEM just deleted, so this goes also /A154 18737 /D154 OVRBTM= .-OVLAY1+OVRNUM 18738 /D154 JMP BOTRUL / LOAD RULER FOR SHORT DOC. GOLD BOTTOM 18739 18740 18741 OVRRP2= .-OVLAY1+OVRNUM 18742 / 18743 / COME HERE FOR GOTO-PAGE, GOLD:BOTTOM, AND GOTO-RULER. 18744 / 18745 / THE DOCUMENT HAS BEEN CLOSED, 18746 / THEN RE-OPENED, AND NOW WE FIND OURSELVES HERE. 18747 / 18748 / IF THIS IS GOTO-PAGE REQUEST, THEN 18749 / GOTO OVRPP2 TO COMPUTE WHICH BLOCK # HAS DESIRED 18750 / PAGE AND RULER(S); 18751 / IF THIS IS GOTO-RULER, THEN 18752 / WE ALREADY HAVE BLOCK # OF DESIRED RULER IN RPCUOF & RPCUBK, 18753 / SO OPEN DOCUMENT AT THAT BLOCK & POSITION CURSOR AT RULER. 18754 / 18755 047401* 1777 TAD RRDIR / IS THIS GOTO-RULER? 18756 047402* 7640 SZA CLA 18757 047403* 5206 JMP RRPOS / YES 18758 047404* 4523 OVLJMP / NO: GOTO ORIGINAL GOTO-PAGE,GOLD:BOTTOM 18759 047405* 5203 OVRPP2 / OVERLAY (CURRENT OVERLAY DOESN'T DO 18760 / MUCH FOR GOTO-PAGE UNTIL LATER!) 18761 18762 / OPEN DOCUMENT AT BLOCK WITH RULER (PHYSICAL BLOCK RPCUBK) 18763 / (ALSO INITIALIZES PCTLFL FROM GOTO-PAGE DESCRIPTOR WORD) 18764 18765 047406* 4776 RRPOS, JMS RROPP 18766 18767 047407* 4775 JMS MNUPUT / MAKE LINE # IN STATUS LINE = "N/A" (UNKNOWN) 18768 LINNUM-MUBUF / DONE AS EARLY AS POSSIBLE TO MAXIMIZE THE undefined ^ 047410* 0175 18769 / CHANCE IT WILL BE SET TO SOMETHING USEFUL. 18770 18771 / TURN MATH OFF BECAUSE 'RRPS' EXPECTS IT TO BE OFF 18772 18773 AC0001 / FUNCTION TO SAVE "MA" SWITCH undefined ^ 047411* 0000 18774 047412* 4774 JMS SWTHMA / AND DEACTIVATE MATH 18775 18776 / SET UP PTRBLK IF NECCESSARY. (MOVING CURSOR BACKWARDS (SCRLDN) 18777 / REQUIRES THAT AT LEAST LAST 2 ENTRIES IN PTRBLK BE FILLED.) 18778 18779 047413* 1777 TAD RRDIR / BACKING UP TO RULER? 18780 047414* 7710 SPA CLA 18781 047415* 4303 JMS RRPS / YES: MUST FILL PTRBLK NOW 18782 18783 / CLEAR ENTRY POINT OF SUBROUTINE SETRUL, WHICH IS USED DURING RULER PROCESSING. 18784 / ENTRY POINT IS USED AS FLAG WHICH TELLS WHEN CURMOV HAS ENCOUNTERED A RULER. 18785 18786 047416* 3773 DCA SETRUL 18787 18788 / BEGIN LOOP TO ADVANCE ( OR BACKUP) CURSOR TO RULER. 18789 / (NEXT RULER IS DESTINATION RULER.) 18790 18791 047417* 1777 RRJMLP, TAD RRDIR / GET DIRECTION 18792 047420* 4513 CURMOV / MOVE CURSOR 18793 047421* 5231 JMP RRJMET / ETX OR STX-MAYBE RULER NOT FOUND 18794 18795 /D214 CDFSYS / IF USER PRESSED GOLD:HALT THEN ABORT 18796 /D214 TAD I HLTFLG / IS GOLD:HALT REQUEST PENDING? 18797 /D214 SZA CLA 18798 /D214 JMP RREXT / YES: ABORT LOOP 18799 18800 047422* 0000 CDFMYF / LOOP BACK UNTIL CURSOR HAS PASSED OVER RULER 18801 047423* 1773 TAD SETRUL / DID CURMOV PROCESS A RULER? 18802 047424* 7650 SNA CLA 18803 047425* 5217 JMP RRJMLP / NO: LOOP BACK 18804 18805 / FOUND DESTINATION RULER. IF WE WERE BACKING UP, CURSOR WILL BE 18806 / BEFORE RULER. MAKE SURE CURSOR IS JUST AFTER DESIRED RULER. 18807 18808 047426* 1777 TAD RRDIR / ADVANCING OR BACKING UP? 18809 047427* 7710 SPA CLA 18810 AC0001 / BACKING UP: MOVE CURSOR AFTER RULER(DIST=1) undefined ^ 047430* 0000 18811 047431* 4513 RRJMET, CURMOV / ADVANCING: DON'T MOVE CURSOR(DIST=0) 18812 047432* 7000 NOP / HIT ETX-THAT'S OK 18813 18814 / CURSOR HIT ETX (OR STX). IF RULER NOT FOUND THEN BEEP TO WARN USER; 18815 / GO EXIT FROM GOTO-RULER (COMMON CODE WITH GTP, GOLD:BOT) 18816 18817 047433* 0000 CDFMYF 18818 047434* 1773 TAD SETRUL / DID CURSOR PASS RULER JUST BEFORE ETX(STX)? 18819 047435* 7650 SNA CLA 18820 047436* 4772 JMS BUZZER / NO: BEEP TO WARN USER /M163 18821 047437* 5275 JMP RREXT / PREPARE TO PAINT SCREEN 18822 18823 / CONTINUE NORMAL GOTO-PAGE OR GOLD:BOTTOM 18824 18825 OVRPWP= .-OVLAY1+OVRNUM / --OVERLAY ENTRY POINT-- 18826 047440* 4771 JMS RROPR / OPEN FILE FOR SCROLLING AT RELATIVE /A157 18827 / BLOCK DEFINED BY RPCUOF,RPCUBK /A157 18828 18829 / CONTINUE NORMAL GOTO-PAGE OR GOLD:BOTTOM /A155 18830 18831 OVRPEX= .-OVLAY1+OVRNUM / --OVERLAY ENTRY POINT-- /A155 18832 AC0001 / SET UP TO SHUT "MA" SWITCH & DEACTIVATE MATH undefined ^ 047441* 0000 18833 047442* 4774 JMS SWTHMA / GO SHUT OFF "MA" SWITCH & SAVE ORIGINAL 18834 / SETTING THIS KEEPS GO-TO-PAGE FUNCTION FROM 18835 / REACTIVATING MATH AS IT USES "CURMOV" IN THE 18836 / PROCESS OF POSITIONING ITSELF CORRECTLY FOR 18837 / THE RIGHT PAGE. (NOTE: "CKCTRL"CALLED BY 18838 / "SCRLUP" CALLED BY "CURMOV" THUS ACTIVATING 18839 / EDITOR MATH.) 18840 /D157 / IF GOLD-HLT IS HIT DURING G-T-P THE EXIT TO 18841 /D157 / G-T-P IS DONE VIA "EIBOT2" (I.E. GOLD-BOTTOM) 18842 /D157 / WHICH IS SET TO HANDLE A "HLTTST". 18843 / IF G-T-P OR GOLD:BOTTOM EXITS NORMALLY THEN 18844 / MATH "MA" IS RESTORED IN "RREXT" 18845 / /A158 18846 / CONTINUE GOTO-PAGE AFTER ERROR MSG RE REQUEST FOR PAGE ABOVE --TOP--. /A158 18847 / SKIPS "JMS SWTHMA" BECAUSE IT HAS ALREADY BEEN CALLED (WE'VE COME /A158 18848 / THROUGH HERE BEFORE!); /A158 18849 / WILL GO TO 'RPPTOP', THEN 'TOTOP'. /A158 18850 / /A158 18851 OVRPZZ= .-OVLAY1+OVRNUM / --OVERLAY ENTRY POINT-- /A158 18852 18853 / SET STATUS LINE # = "N/A" (UNKNOWN). /A157 18854 / THIS IS DONE AS EARLY AS POSSIBLE TO MAXIMIZE /A157 18855 / THE CHANCE IT WILL BE SET TO SOMETHING MEANINGFUL. /A157 18856 047443* 4775 JMS MNUPUT /A157 18857 LINNUM-MUBUF /A157 undefined ^ 047444* 0175 18858 18859 / CHECK DESTINATION PAGE "OFFSET" 18860 047445* 1770 TAD CURPG1 / - # OF PAGES TO READ INTO BUFFER 18861 047446* 7650 SNA CLA / SKIP IF VALID 18862 047447* 5767 JMP RPPTOP / EITHER THIS DOC. IS NOT PAGINATED, OR 18863 / THE USER SUPPLIED A PAGE # = < 0 18864 18865 / start loading text into the EDIT BUFFER, 18866 / from the block containing the desired page (or end of GTP structure), 18867 / stopping when the top of the desired page (or the bottom of 18868 / the document) has been loaded... 18869 18870 047450* 5252 JMP RPADV2 / CHECK CHAR CURSOR IS ON /A158 18871 18872 / LOOP TO ADVANCE TO DESIRED PAGE (FOR GOTO-PAGE), /A158 18873 / OR BOTTOM OF DOCUMENT (FOR GOLD:BOTTOM) /A158 18874 18875 RPADV1, 18876 /D214 CDFSYS / HAS USER PRESSED GOLD:HALT? /A158 18877 /D214 TAD I HLTFLG /A158 18878 /D214 SZA CLA /A158 18879 /D214 JMP RREXT / YES-ABORT: LEAVE CURSOR WHERE IT IS. /A158 18880 18881 AC0001 / ADVANCE CURSOR TO NEXT CHARACTER /A158 undefined ^ 047451* 0000 18882 047452* 4513 RPADV2, CURMOV /A158 18883 047453* 5275 JMP RREXT / HIT ETX (NORMAL EXIT FOR GOLD:BOT) /A158 18884 047454* 1535 TAD I CURPTR / GET CURRENT CHAR /A158 18885 AND P177 / IGNORE ATTRIBUTE BITS /A158 undefined ^ undefined ^ 047455* 0000 18886 TAD (-ECNWPG) / IS CURRENT CHAR A NEW-PAGE-MARKER? /A158 undefined ^ undefined ^ 047456* 1366 18887 047457* 0000 CDFMYF /A158 18888 047460* 7650 SNA CLA /A158 18889 047461* 2770 ISZ CURPG1 / YES: IS MARKER FOR DESIRED PAGE? /A158 18890 047462* 5251 JMP RPADV1 / NO OR NO: LOOP BACK TO KEEP LOOKING /A158 18891 / HANDLE CASE OF HAVING MORE THAN 4095 PAGES AFTER LOGICAL /A158 18892 / END OF DOCUMENT (AS DETERMINED BY THE END OF THE GOTO-PAGE /A158 18893 / DESCRIPTOR WORDS) /A158 18894 047463* 1765 TAD RPBOTF / IS THIS GOLD:BOTTOM? /A158 18895 047464* 7710 SPA CLA / SKIP IF GOTO-PAGE /A158 18896 047465* 5251 JMP RPADV1 / YES: ADVANCE UNTIL ETX /A158 18897 18898 / /A158 18899 / FOUND DESIRED PAGE. /A158 18900 / ADVANCE CURSOR TO NEXT PRINTABLE CHAR. /A158 18901 / /A158 18902 RPADV3, AC0001 / ADVANCE CURSOR /A158 undefined ^ 047466* 0000 18903 047467* 4513 CURMOV /A158 18904 047470* 5275 JMP RREXT / HIT ETX /A158 18905 047471* 1535 TAD I CURPTR / GET CURRENT CHAR /A158 18906 047472* 4764 JMS WRDTST / IS IT A WORD TERMINATOR? /A158 18907 047473* 7650 SNA CLA /A158 18908 047474* 5266 JMP RPADV3 / YES: LOOP TO FIND NON-TERMINATOR /A158 18909 / NO: FOUND PRINTABLE CHARACTER /A158 18910 18911 /D158 / ADVANCE PAGE to desired page... 18912 /D158 18913 /D158 RPADVUNT, / EMULATE ADVANCE PAGE 18914 /D158 AC0006 / AC => 6 FOR PAGE ID 18915 /D158 DCA GRAMUN / SUPPLY UNIT ID 18916 /D158 JMS SETUNT / SET PAGE-UNIT 18917 /D158 18918 /D158 JMS LODCHR / LOOK FOR PAGE-MARKER 18919 /D158 JMP RREXT / ETX WILL now occur if GOLD_BOTTOM /M154 18920 /D158 JMS RPGETUNT / SEE IF A PAGE-MARKER FOUND 18921 /D158 RPADVNW, 18922 /D158 .-. 18923 /D158 SZA CLA / RECOGNIZE PAGE-UNIT? 18924 /D158 JMP I RPADVNW / NO, KEEP SCROLLING... 18925 /D158 / CHECK GOLD:HALT AFTER EVERY PAGE /A157 18926 /D158 / (THERE MAY BE NO PAGES! IS THIS A BUG?) /A157 18927 /D158 CDFSYS /A157 18928 /D158 TAD I HLTFLG / IS THERE A PENDING GOLD:HALT? /A157 18929 /D158 SZA CLA / SKIP IF NO /A157 18930 /D158 JMP RREXT / YES: ABORT, LEAVE CURSOR WHERE IT IS /A157 18931 /D158 / LOOP BACK IF NOT AT DESIRED PAGE 18932 /D158 CDFMYF / FROM BUFFER FIELD 18933 /D158 ISZ CURPG1 / SKIP W/DESIRED PAGE IN BUFFER 18934 /D158 JMP RPADVUNT / JUMP TO SCROLL ANOTHER PAGE 18935 /D158 18936 /D158 / HANDLE CASE OF HAVING MORE THAN 4095 PAGES AFTER LOGICAL /A157 18937 /D158 / END OF DOCUMENT (AS DETERMINED BY THE END OF THE GOTO-PAGE /A157 18938 /D158 / DESCRIPTOR WORDS) /A157 18939 /D158 TAD RPBOTF / IS THIS GOLD:BOTTOM? /A157 18940 /D158 SPA CLA / SKIP IF GOTO-PAGE /A157 18941 /D158 JMP RPADVUNT / YES: ADVANCE UNTIL ETX /A157 18942 /D157 JMP RPGBOT / can't use CURPG1 for GOLD_BOTTOM /A154 18943 18944 18945 18946 / 18947 / CURSOR IS AT DESIRED FINAL PLACE IN TEXT FOR GOTO-PAGE, GOTO-RULER 18948 / OR GOLD-BOTTOM, BUT PTRBLK MIGHT NOT BE COMPLETELY FULL. 18949 / 18950 047475* 4303 RREXT, JMS RRPS / FILL PTRBLK IF NECESSARY & POSSIBLE /A157 18951 AC2000 / SET FLAG THAT TELLS FXSCRL TO undefined ^ 047476* 0000 18952 047477* 3140 DCA SCRNFL / REPAINT THE ENTIRE SCREEN 18953 18954 / THE BLOCK CONTAINING THE DESIRED PAGE, RULER, OR DOCUMENT BOTTOM 18955 / IS IN THE EDIT BUFFER, AND THE CURSOR IS POSITIONED AT THE 18956 / DESIRED ENTITY IF IT EXISTS; OTHERWISE THE CURSOR IS AT THE 18957 / BOTTOM OF THE DOCUMENT -- UNLESS THE USER PRESSED GOLD:HALT! 18958 / IN ANY EVENT, PTRBLK HAS BEEN SET UP TO PAINT THE SCREEN PROPERLY. 18959 18960 047500* 4774 JMS SWTHMA / GO RESTORE THE ORIGINAL "MA" SWITCH SETTING 18961 / FROM BEFORE ENTERING GTP, G:BOT, OR GTR 18962 / (SEE COMMENT AT START OF "OVRPEX" 18963 / OR "RRPOS" ROUTINES.) 18964 18965 /D157 CDFSYS / GET TO FIELD 0 TO 18966 /D157 DCA I HLTFLG / CLEAR A POSSIBLE GOLD-HALT FLAG 18967 /D157 CDFLP / NOW TO FIELD 5 TO 18968 /D157 DCA RPACTIVE / CLEAR GTP 'ACTIVE' FLAG 18969 18970 / GO FINISH UP SOME BUSY WORK, 18971 / CALCULATE & SET THE STATUS LINE'S PAGE NUMBER LOCATIONS, AND THEN 18972 / GO RE-PAINT THE SCREEN, CLEAR MOVEMENT AND EDIT MODES, AND 18973 / WAIT FOR NEXT EDIT COMMAND 18974 047501* 4523 OVLJMP;OVBOTB / END OF REPOSITIONING REQUEST 047502* 5635 18975 18976 / 18977 / SUBR RRPS -- PTRBLK SETUP 18978 / FILLS UP PTRBLK WITH THE DESIRED SCREEN IMAGE, 18979 / AND LEAVES THE CURSOR AT THE SAME PLACE IN THE TEXT WHEN DONE. 18980 / 18981 / ENTRY CONDITIONS: 18982 / RRPS ASSUMES THE CURSOR IS IN COLUMN 0. /A157 18983 / PTRBLK MAY BE TOTALLY EMPTY, PARTIALLY FULL, OR COMPLETELY FULL, /A157 18984 / BUT IT MUST NOT BE GARBAGE. /A157 18985 / MATH MUST BE TURNED OFF. /A157 18986 / IT IS BEST IF EDITOR'S STATUS LINE'S LINE # IS INITIALIZED 18987 / (SO IF PAGE IS FOUND BY RRPS, THEN LINE # WILL BE SET). 18988 / 18989 RRPS, XX undefined ^ 047503* 0000 18990 / CHECK WHETHER PTRBLK IS PRIMED FOR SCRLDN /A157 18991 / (SCRLDN REQUIRES THAT LAST 2 PTRBLK ENTRIES BE FULL) /A157 18992 047504* 0000 CDFMYF /A157 18993 047505* 1763 TAD PTRBLK+26 / GET PTRBLK ENTRY FOR LAST LINE - 1 /A157 18994 047506* 7640 SZA CLA / IS PTRBLK PRIMED? /A157 18995 047507* 5314 JMP RRPS1 / YES-DON'T PRIME IT AGAIN /A157 18996 / PTRBLK NOT PRIMED - SO PRIME IT FOR MOVING CURSOR BACKWARDS /A157 18997 / SCRLDN WILL ACT STRANGE THE 1ST TIME IT'S CALLED /A157 18998 / (IT WILL PLACE CURSOR AFTER CURRENT POSITION, NOT BEFORE), /A157 18999 / BUT IF WE CONTINUE BACKING UP LINES (WHICH WE WILL), /A157 19000 / THEN EVERYTHING WILL BE OK. /A157 19001 047510* 1171 TAD LINE23 /A157 19002 047511* 3763 DCA PTRBLK+26 / SET UP LAST LINE-1 IN WINDOW /A157 19003 047512* 1171 TAD LINE23 /A157 19004 047513* 3762 DCA PTRBLK+27 / SET UP LAST LINE IN WINDOW /A157 19005 RRPS1, / PREPARE TO BACKUP A LINE /M157 19006 AC0001 / AC:=1 FOR "LINE" UNIT MODE undefined ^ 047514* 0000 19007 047515* 3134 DCA GRAMUN / 1 = "LINE" MOVEMENT 19008 / INSERT MARKER TO REMEMBER CURRENT PLACE IN DOCUMENT 19009 TAD (ECTMRK) / POSITION MARK UNAFFECTED BY JUSTIFICATION undefined ^ undefined ^ 047516* 1366 19010 047517* 4761 JMS INSRL1 / INSERT POSITION MARKER /M155 19011 / NOTE: INSRL1 LEAVES CURPTR AFTER /A155 19012 / INSERTED CHAR. THUS RULER MODIFIED /A155 19013 / FLAG WILL BE INSERTED AFTER ECTMRK, /A155 19014 / ELSE THE ECTMRK MIGHT BE REJUSTIFIED! /A155 19015 / 19016 / BACKUP A LINE UNTIL PTRBLK IS FULL OR STX IS REACHED. 19017 / 19018 /D157 RRPSLP, CLA 19019 /D157 CDFMYF 19020 /D157 TAD PTRBLK / IS PTRBLK FULL? 19021 /D157 / (COULD BE FINE TUNED FOR WIDE 19022 /D157 / SCREEN AND STATUS LINE) 19023 /D157 SZA CLA 19024 /D157 JMP RRPSFM / YES: GO FIND POSITION MARKER 19025 047520* 4760 RRPSLP, JMS BACKUN / BACK CURSOR UP A LINE. /M157 19026 / FOR SOME OBSCURE REASON, BACKUN 19027 / FILLS IN AN EXTRA ENTRY TOWARD THE 19028 / TOP OF PTRBLK (AND THE SCREEN) 19029 / EACH TIME IT IS CALLED. 19030 / IF THIS WERE NOT SO, THIS ROUTINE 19031 / WOULD BACKUP TO STX! (OHHHH NOOOO!) 19032 047521* 5330 JMP RRPSGM / HIT STX: GO FIND POSITION MARKER /M158 19033 047522* 0000 CDFMYF 19034 047523* 1757 TAD PTRBLK / IS PTRBLK FULL YET? 19035 047524* 7650 SNA CLA 19036 047525* 5320 JMP RRPSLP / NO: LOOP UNTIL IT IS /M157 19037 19038 / 19039 / PTRBLK IS NOW AS FULL AS IT CAN GET BY BACKING UP. 19040 / MOVE FORWARD TO POSITION MARKER (WHICH MARKS DESIRED 19041 / RULER OR PAGE). 19042 / 19043 / AS WE MOVE FORWARD TO POSITION MARKER, 19044 / PTRBLK MAY FILL UP MORE IF WE HAD REACHED STX; 19045 / REJUSTIFICATION WILL OCCUR IF NEEDED (USUALLY IT WON'T BE); 19046 / AND MATH MUST BE TURNED OFF IN CASE CURSOR PASSES OVER 19047 / A WPSMATH CONTROL BLOCK (SEE SWTHMA). 19048 / 19049 / 19050 /D158 RRPSFM, JMS LODCHR / AC=CURRENT CHAR 19051 /D158 JMP RRPSLM / AT EOT: BUG-LOST MARKER 19052 /D158 / MARKER IS PROBABLY STILL IN TEXT 19053 /D158 / SOMEWHERE-TRY SEMI GRACEFUL RECOVERY 19054 /D158 TAD (-ECTMRK) / IS CURSOR AT POSITION MARKER? 19055 /D158 SNA CLA 19056 /D158 JMP RRPSAM / YES-AT MARKER 19057 19058 047526* 7610 SKP CLA / Start checking w/ current char. /A200 19059 RRPSFM, AC0001 / ADVANCE CURSOR /M158 undefined ^ 047527* 0000 19060 047530* 4513 RRPSGM, CURMOV /M158 19061 047531* 5341 JMP RRPSLM / AT EOT: BUG-LOST MARKER 19062 / MARKER IS PROBABLY STILL IN TEXT 19063 / SOMEWHERE-TRY SEMI GRACEFUL RECOVERY 19064 047532* 1535 TAD I CURPTR / GET CURRENT CHAR /A158 19065 TAD (-ECTMRK) / IS IT THE POSITION MARKER? /A158 undefined ^ undefined ^ 047533* 1366 19066 047534* 7640 SZA CLA /A158 19067 047535* 5327 JMP RRPSFM / NO: LOOP BACK TO FIND MARKER 19068 / 19069 / FOUND POSITION MARKER. 19070 / DELETE POSITION MARKER, THEN 19071 / ADVANCE TO CHAR BEING MARKED (CURSOR'S FINAL RESTING PLACE) 19072 / 19073 047536* 3535 RRPSAM, DCA I CURPTR / DELETE POSITION MARKER 19074 047537* 4506 ADVPTR / MOVE TO 1ST REAL CHAR ON LINE 19075 047540* 7000 NOP / REACHED ETX-THAT'S OK 19076 / 19077 047541* 7200 RRPSLM, CLA / FORGET CURRENT CHAR 19078 047542* 0000 CDFMYF 19079 047543* 5703 JMP I RRPS / EXIT RRPS! 19080 19081 19082 X=. / INDICATE FIRST FREE LOCATION ON PAGE 19083 /--------------------- 19084 047557* 6221 PAGE 047560* 2203 047561* 5260 047562* 6250 047563* 6247 047564* 1016 047565* 3753 047566* 0000 047567* 7600 047570* 1751 047571* 7611 047572* 0331 047573* 5600 047574* 1320 047575* 1655 047576* 7620 047577* 1764 19085 19086 / here when this document has not been paginated or, if it has, 19087 / the user supplied a page # value = or < 0. 19088 / for either case, go to the top of the document and continue the edit cycle 19089 19090 / Pseudo-OVINIT... Want to set the pointers to the top of the document. Upon 19091 / entering, the buffer contains the start of a ruler, which we want to remove. 19092 / When entering, the edit buffer looks like: 7777 When exiting: 7777 19093 / 7775 7775 19094 / 0016 7775 19095 / 7775 0000 19096 / 0000 0000 19097 / . . 19098 / . . 19099 / . . 19100 19101 047600* 1777 RPPTOP, TAD RPPG0 / --TOP-- FLAG 19102 047601* 7700 SMA CLA / SKIP IF ABSOLUTE PAGE 0 OR, 19103 / NEG. OFFSET WENT BEYOND --TOP-- 19104 19105 047602* 5205 JMP TOTOP / JUMP IF PAGE 1 OR, 19106 / NEG. OFFSET = CURRENT PAGE # 19107 047603* 4523 OVLJMP;RPPER7 / REPORT ERROR AND RETURN AT OVRPEX... 047604* 6001 19108 19109 TOTOP, / GET TO ---TOP--- 19110 047605* 4320 JMS RPOVIN / CLEAR EDIT BUFFER /M157 19111 047606* 4350 JMS RRPBIN / CLEAR PTRBLK & INIT LAST ENTRY /A157 19112 047607* 4523 OVLJMP / JUMP TO OVERLAY WITH ABOVE CODE 19113 OVRPTP undefined ^ 047610* 0000 19114 19115 19116 /D157 TORPWP, JMS RROPR / OPEN DOCUMENT AT DESIRED BLOCK 19117 /D157 CDFMYF 19118 /D154 TAD RPBOTF / GET THE 'GOLD BOTTOM' FLAG 19119 /D154 SPA CLA / SKIP IF NOT GOLD BOTTOM 19120 /D154 JMP EIBOTA / JUMP IF GOLD BOTTOM 19121 /D157 JMP RPFPG / CONTINUE GOTO-PAGE and GOLD_BOTTOM 19122 19123 19124 /D155 / 19125 /D155 / SUBR RRRAND -- RANDOM-ACCESS OPEN 19126 /D155 / 19127 /D155 / 19128 /D155 / PSUEDO-CODE: 19129 /D155 / 19130 /D155 / CALL WPFILS TO OPEN DOCUMENT FOR SCROLLING AT DESIRED BLOCK 19131 /D155 / (DEFINED BY RPCUOF,RPCUBK); 19132 /D155 / READ GOTO-PAGE DESCRIPTOR WORD FOR THIS BLOCK (CHANGES BLOCK); 19133 /D155 / IF BIT RPMTHB IS ON THEN 19134 /D155 / PCTLFL := 1 ( INDICATE WITHIN CONTROL BLOCK ) 19135 /D155 / ELSE 19136 /D155 / PCTLFL := 0 ( INDICATE NOT WITHIN CONTROL BLOCK ) 19137 /D155 / CALL WPFILS TO OPEN DOCUMENT FOR SCROLLING AT DESIRED BLOCK 19138 /D155 / (DEFINED BY RPCUOF,RPCUBK); 19139 /D155 / 19140 /D155 / 19141 /D155 / CALL: 19142 /D155 / / IT IS ASSUMED TEXT, ETX, & STX BUFFERS ARE ALL EMPTY 19143 /D155 / / RPCUOF= OFFSET INTO DOCUMENT HEADER BLOCK FOR DESIRED BLOCK 19144 /D155 / / RPCUBK= HEADER BLOCK ID # FOR DESIRED BLOCK 19145 /D155 / CDFMYF 19146 /D155 / CLA 19147 /D155 / JMS RRRAND / RANDOM-ACCESS OPEN FOR SCROLLING 19148 /D155 / / DOCUMENT IS NOW OPEN FOR SCROLLING USING STANDARD METHODS 19149 /D155 / / (ADVPTR,BAKPTR,ETC.). 19150 /D155 / / PCTLFL IS SET UP TO INDICATE WHETHER OR NOT CURSOR IS 19151 /D155 / / IN A CONTROL BLOCK. 19152 /D155 / / AC= 0. 19153 /D155 / / DF= CDFBUF 19154 /D155 / 19155 /D155 / 19156 /D155 RRRAND, XX 19157 /D155 / 19158 /D155 / OPEN DOCUMENT AT DESIRED BLOCK 19159 /D155 / 19160 /D155 JMS RRRAOP 19161 /D155 / 19162 /D155 / READ GOTO-PAGE DESCRIPTOR WORD OF "DESIRED BLOCK" 19163 /D155 / 19164 /D155 AC7777 / SUBFUNCTION TO READ "NEXT" DESC WORD 19165 /D155 JMS DSKCAL 19166 /D155 XRPRD 19167 /D155 / 19168 /D155 / SET PCTLFL FROM GOTO-PAGE DESCRIPTOR WORD 19169 /D155 / 19170 /D155 AND (RPMTHB) / TEST "WITHIN CONTROL BLOCK" BIT 19171 /D155 SZA CLA / SKIP IF NOT IN CONTROL BLOCK 19172 /D155 AC7777 / INDICATE IN CONTROL BLOCK 19173 /D155 DCA PCTLFL 19174 /D155 / 19175 /D155 / RE-OPEN DOCUMENT AT "DESIRED BLOCK", 19176 /D155 / SINCE "READ DESC WORD" ABOVE INCREMENTED BLOCK POINTERS 19177 /D155 / 19178 /D155 JMS RRRAOP 19179 /D155 JMP I RRRAND / EXIT 19180 /D155 19181 /D155 / 19182 /D155 / SUBR RRRAOP -- OPEN DOCUMENT AT "DESIRED BLOCK" 19183 /D155 / 19184 /D155 RRRAOP, XX 19185 /D155 CDFMYF 19186 /D155 TAD RPCUBK / HEADER BLOCK ID # 19187 /D155 MQL 19188 /D155 AC7776 / ADJUST OFFSET TO 0..375 19189 /D155 TAD RPCUOF / OFFSET INTO HEADER FOR DESIRED BLOCK 19190 /D155 JMS DSKCAL / OPEN DOCUMENT AT THIS BLOCK 19191 /D155 XRPRD / (SPECIAL GOTO-PAGE FUNCTION) 19192 /D155 JMP I RRRAOP / EXIT 19193 19194 / START OF "/A155" BLOCK ... /A155 19195 19196 19197 / 19198 / SUBR RROPR -- RANDOM-ACCESS OPEN FILE FOR SCROLLING 19199 / AT RELATIVE BLOCK RPCUOF,RPCUBK 19200 / CLEARS TEXT BUFFER AND PTRBLK. 19201 / FIRST FILE SCROLLING OPERATION MAY BE ADVPTR OR BAKPTR. 19202 / RROPR IS USED BY GOTO-PAGE AND GOLD:BOTTOM. 19203 / 19204 / CALL: 19205 / / RPCUOF= OFFSET INTO DOCUMENT HEADER BLOCK FOR DESIRED BLOCK 19206 / / RPCUBK= HEADER BLOCK ID # FOR DESIRED BLOCK 19207 / CDFMYF 19208 / CLA 19209 / JMS RROPR / RANDOM-ACCESS OPEN AT RELATIVE BLOCK 19210 / / AC= 0 19211 / / DF= CDFMYF 19212 / 19213 RROPR, XX undefined ^ 047611* 0000 19214 047612* 1776 TAD RPCUBK / HEADER BLOCK ID # 19215 047613* 7421 MQL 19216 AC7776 / ADJUST OFFSET TO 0..375 undefined ^ 047614* 0000 19217 047615* 1775 TAD RPCUOF / OFFSET INTO HEADER FOR DESIRED BLOCK 19218 047616* 4256 JMS RROPN / OPEN DOCMT AT RELATIVE BLOCK 19219 047617* 5611 JMP I RROPR 19220 19221 19222 / 19223 / SUBR RROPP -- RANDOM-ACCESS OPEN FILE FOR SCROLLING 19224 / AT PHYSICAL BLOCK RPCUBK 19225 / ASSUMES FILE IS OPEN AND SCTOP,SCTPH POINT TO FIRST DOCMT BLOCK-1. /A157 19226 / CLEARS TEXT BUFFER AND PTRBLK. 19227 / FIRST FILE SCROLLING OPERATION MAY BE ADVPTR OR BKPPTR. 19228 / RROPR IS USED BY GOTO-RULER. 19229 / 19230 / CALL: 19231 / / RPCUBK= PHYSICAL BLOCK # OF DESIRED BLOCK 19232 / CDFMYF 19233 / CLA 19234 / JMS RROPP / RANDOM-ACCESS OPEN AT PHYSICAL BLOCK 19235 / / AC= 0 19236 / / DF= CDFMYF 19237 / 19238 RROPP, XX undefined ^ 047620* 0000 19239 / /A157 19240 / TRANSLATE PHYSICAL BLOCK # (RPCUBK) /A157 19241 / TO RELATIVE BLOCK # (HDR BLOCK OFFSET, HDR BLK ID #) /A157 19242 / /A157 19243 RROPPL, / GET GTP DESC WORD FOR NEXT DOCMT BLK /A157 19244 AC7777 / FUNCTION=INC SCTOP,SCTPH & READ DESC /A157 undefined ^ 047621* 0000 19245 047622* 4774 JMS DSKCAL /A157 19246 XRPRD /A157 undefined ^ 047623* 0000 19247 047624* 7040 CMA / HIT ETX? /A157 19248 047625* 7650 SNA CLA /A157 19249 047626* 7402 HLT / YES-COULDN'T FIND PHYS BLK # IN DOCMT /A157 19250 / GET CURRENT SCTOP (WPFILS MAKES THIS AWKWARD) /A157 19251 047627* 1373 TAD (CURID-1) / RETURN SCTOP,SCTPH AT CURID,CURID+1 /A157 19252 047630* 7421 MQL / (USES CURID AS A TEMP) /A157 19253 AC7775 / FUNCTION=RETURN SAVED & CURRENT /A157 undefined ^ 047631* 0000 19254 047632* 4774 JMS DSKCAL / SCTOP,SCTPH IN AC,MQ & @(ORIG MQ) /A157 19255 XRPRD /A157 undefined ^ 047633* 0000 19256 047634* 7200 CLA / FORGET SAVED SCTOP IF ANY /A157 19257 CDFLP /A157 undefined ^ 047635* 0000 19258 047636* 1772 TAD I (CURID+1) / GET SCTOP (FINALLY!) /A157 19259 / GET PHYSICAL BLOCK # CORRESPONDING TO SCTOP /A157 19260 047637* 1371 TAD (HDRBUF+2) / CONVERT SCTOP TO PTR INTO DOCMT HDR BLK/A157 19261 DCA T1 / SAVE PTR TO PHYS BLK # /A157 undefined ^ undefined ^ 047640* 3000 19262 CDFBUF / FIELD OF DOCMT HDR BLOCK BUFFER /A157 undefined ^ 047641* 0000 19263 TAD I T1 / GET PHYSICAL BLOCK # /A157 undefined ^ undefined ^ 047642* 1400 19264 / LOOP IF NOT AT DESIRED PHYSICAL BLOCK # /A157 19265 047643* 7041 CIA / COMPARE CURRENT PHYSICAL BLK # TO ... /A157 19266 047644* 0000 CDFMYF /A157 19267 047645* 1776 TAD RPCUBK / ... DESIRED PHYSICAL BLOCK # /A157 19268 047646* 7640 SZA CLA /A157 19269 047647* 5221 JMP RROPPL / NO MATCH: KEEP LOOKING /A157 19270 / FOUND PHYSICAL BLOCK! /A157 19271 / PUT RELATIVE BLOCK # IN AC,MQ FOR OPEN /A157 19272 CDFLP / FIELD OF CURID, WHERE CURRENT SCTOP, /A157 undefined ^ 047650* 0000 19273 / SCTPH WERE STORED BY WPFILS CALL ABOVE/A157 19274 047651* 1770 TAD I (CURID) / GET CURRENT SCTPH /A157 19275 047652* 7421 MQL / MQ=DOCMT HDR BLOCK ID (0..17?) /A157 19276 047653* 1772 TAD I (CURID+1) / GET CURRENT SCTOP=OFFSET INTO HDR BLK /A157 19277 / RANDOM-ACCESS OPEN AT DESIRED PHYSICAL BLOCK (USING REL BLK) /A157 19278 047654* 4256 JMS RROPN /A157 19279 / WPFILS HAS A BUG SUCH THAT IF BKPPTR IS FIRST FILE SCROLLING 19280 / OPERATION AFTER A RANDOM-ACCESS OPEN, THE FILE MODE (LOWER CASE, 19281 / UNDERLINE, ETC) CAN BE LOST. THIS PROBLEM IS AVOIDED 19282 / BECAUSE RROPN ALWAYS DOES AN ADVPTR FIRST. 19283 047655* 5620 JMP I RROPP / EXIT 19284 19285 19286 / 19287 / SUBR RROPN -- RANDOM-ACCESS OPEN FILE FOR SCROLLING 19288 / AT BLOCK IN AC (OFFSET), MQ (HEADER ID #) 19289 / 19290 RROPN, XX undefined ^ 047656* 0000 19291 / 19292 / OPEN DOCUMENT AT DESIRED BLOCK 19293 / 19294 047657* 4774 JMS DSKCAL 19295 XRPRD undefined ^ 047660* 0000 19296 / 19297 / NOTE: SCBOT,SCBTH POINT TO DESIRED BLOCK; 19298 / SCTOP,SCTPH POINT TO DESIRED BLOCK - 1. 19299 / READ GOTO-PAGE DESCRIPTOR WORD OF "DESIRED BLOCK" 19300 / 19301 AC7777 / (FUNCTION=READ "NEXT" DESC WORD) undefined ^ 047661* 0000 19302 047662* 4774 JMS DSKCAL / INC SCTOP,SCTPH TO "DESIRED BLOCK" 19303 XRPRD undefined ^ 047663* 0000 19304 AC7777 / FORGET DESC WORD(WE'LL GET IT AGAIN) undefined ^ 047664* 0000 19305 047665* 7421 MQL / DEC SCTOP,SCTPH TO ORIGINAL BLOCK 19306 047666* 1367 TAD (-6) / BUT FIRST READ GTP DESC WORD 19307 047667* 4774 JMS DSKCAL / FOR "DESIRED BLOCK" INTO AC AGAIN 19308 XRPRD undefined ^ 047670* 0000 19309 / 19310 / SET PCTLFL FROM GOTO-PAGE DESCRIPTOR WORD 19311 / 19312 047671* 0366 AND (RPMTHB) / TEST "WITHIN CONTROL BLOCK" BIT 19313 047672* 7640 SZA CLA / SKIP IF NOT IN CONTROL BLOCK 19314 AC7777 / INDICATE IN CONTROL BLOCK undefined ^ 047673* 0000 19315 047674* 3142 DCA PCTLFL 19316 / /A157 19317 / ADVANCE TO START OF LINE. /A157 19318 / (CURMOV IS CLEANER IF IT STARTS AT THE START OF A LINE. /A157 19319 / THIS AVOIDS A COUPLE OF RATHER UNLIKELY BUGS.) /A157 19320 / /A157 19321 047675* 4320 JMS RPOVIN / CLEAR EDIT BUFFER /A157 19322 047676* 4506 RROPLN, ADVPTR / GET NEXT CHAR FROM START OF "DESIRED BLOCK"/A157 19323 047677* 5307 JMP RROPX / AT ETX /A157 19324 AND P177 / IGNORE ATTRIBUTE BITS /A157 undefined ^ undefined ^ 047700* 0000 19325 047701* 4500 ZZCASE / AT START OF NEW LINE? /A157 19326 047702* 7710 RROPTB-1 /A157 19327 / ECSTRL; RROPX / YES /A157 19328 / ECNWPG; RROPX / YES /A157 19329 / ECNWLN; RROPL2 / ALMOST (NEXT CHAR IS START OF LINE) /A157 19330 047703* 5276 JMP RROPLN / NO: ADVANCE UNTIL START OF LINE /A157 19331 /A157 19332 047704* 4506 RROPL2, ADVPTR / SKIP OVER LINE END /A157 19333 047705* 7000 NOP / REACHED ETX /A157 19334 047706* 7200 CLA / THROW OUT LINE ENDING CHAR /A157 19335 047707* 4350 RROPX, JMS RRPBIN / CLEAR PTRBLK & INIT LAST ENTRY /A157 19336 047710* 5656 JMP I RROPN / EXIT /A157 19337 /A157 19338 / ZZCASE JUMP TABLE /A157 19339 RROPTB, ECSTRL; RROPX / START OF RULER /A157 undefined ^ 047711* 0000 047712* 7707 19340 ECNWPG; RROPX / NEW PAGE /A157 undefined ^ 047713* 0000 047714* 7707 19341 ECNWLN; RROPL2 / NEW LINE /A157 undefined ^ 047715* 0000 047716* 7704 19342 047717* 0000 0 19343 19344 / END OF "/A155" BLOCK ... /A155 19345 19346 19347 / 19348 / SUBR RPOVIN -- INITIALIZE EDIT BUFFER /M157 19349 / 19350 / ASSUMES EDIT BUFFER STARTS AT LOC 0000 AND IS 6000(8) WORDS LONG; /M155 19351 / THUS WILL NOT WORK WITH LIST PROCESSING. 19352 / ADDITIONAL ASSUMPTIONS COULD BE MADE WHICH WOULD 19353 / SHORTEN THE CODE EVEN MORE. 19354 / 19355 RPOVIN, XX undefined ^ 047720* 0000 19356 CDFBUF / GET TO BUFFER FIELD undefined ^ 047721* 0000 19357 AC7777 / POINTER TO START undefined ^ 047722* 0000 19358 DCA X0 / X0 => EDIT BUFFER POINTER undefined ^ undefined ^ 047723* 3000 19359 /D155 TAD (ECBFBG) / 7777 19360 IFNZRO ECBFBG-7777 < ? > / PREFIX FILE CHANGED /A155 undefined ^ illegal char ^ 047724* 0000 19361 AC7777 / AC := ECBFBG /A155 undefined ^ 047725* 0000 19362 DCA I X0 / 1ST LOC. undefined ^ undefined ^ 047726* 3400 19363 /D155 TAD (ECSTX) / 7775 19364 IFNZRO ECSTX-7775 < ? > / PREFIX FILE CHANGED /A155 undefined ^ illegal char ^ 047727* 0000 19365 AC7775 / AC := ECSTX /A155 undefined ^ 047730* 0000 19366 DCA I X0 / 2ND LOC. undefined ^ undefined ^ 047731* 3400 19367 /D155 TAD (ECETX) / 7775 19368 IFNZRO ECETX-7775 < ? > / PREFIX FILE CHANGED /A155 undefined ^ illegal char ^ 047732* 0000 19369 AC7775 / AC := ECETX /A155 undefined ^ 047733* 0000 19370 DCA I X0 / 3RD LOC. undefined ^ undefined ^ 047734* 3400 19371 19372 /D155 TAD BUFSIZ / SIZE OF EDIT BUFFER 19373 /D155 CIA / - # OF WORDS IN EDIT BUFFER 19374 /D155 TAD (4) / ALREADY USED THESE MANY 19375 047735* 1365 TAD (-6000+4) / -(LENGTH OF EDIT BUFFER - 4) /A155 19376 / (WILL FAIL DURING LIST PROCESSING) /A155 19377 DCA X1 / X1 => # OF LOC. TO CLEAR undefined ^ undefined ^ 047736* 3000 19378 TAD X0 / 2ND LOC. undefined ^ undefined ^ 047737* 1000 19379 047740* 3135 DCA CURPTR / CURPTR => PTR. AT ETX 19380 DCA I X0 / CLEAR A LOC. undefined ^ undefined ^ 047741* 3400 19381 ISZ X1 / SKIP IF EDIT BUFFER CLEARED undefined ^ undefined ^ 047742* 2000 19382 047743* 5341 JMP .-2 / LOOP UNTIL CLEARED 19383 /D155 TAD (ECBFND) / 7776 19384 IFNZRO ECBFND-7776 < ? > / PREFIX FILE CHANGED /A155 undefined ^ illegal char ^ 047744* 0000 19385 AC7776 / AC := ECBFND /A155 undefined ^ 047745* 0000 19386 DCA I X0 / LAST BUFFER LOC. undefined ^ undefined ^ 047746* 3400 19387 19388 /D157 JMS RRPBIN / INITIALIZE PTRBLK 19389 /D157 TAD CURPTR / POINTS AT ETX 19390 /D157 DCA LINE23 / INIT. SCREEN LINE 19391 /D157 DCA CURSOR / INIT. 19392 047747* 5720 JMP I RPOVIN / RETURN TO CALLER 19393 19394 19395 / called by OVRBTM which was called by BOTEM to do old GOLD_BOTTOM /A154 19396 / don't need this anymore... /A154 19397 /D154 BOTRUL, JMS RRPBIN / INITIALIZE PTRBLK 19398 /D154 AC0001 / finish loading the ruler 19399 /D154 CURMOV 19400 /D154 NOP / etx will never occur 19401 /D154 EIBOTA, OVLJMP;OVBOTA / GO TO NEXT OVERLAY TO FINISH UP 19402 19403 19404 / 19405 / SUBR RRPBIN - PTRBLK INITIALIZATION 19406 / 19407 / CLEARS PTRBLK & INITIALIZES LAST ENTRY; 19408 / INITIALIZES LINE23 & CURSOR. /A157 19409 / ASSUMES CURPTR IS AT THE START OF A LINE. 19410 / 19411 RRPBIN, XX undefined ^ 047750* 0000 19412 047751* 0000 CDFMYF / FROM BUFFER FIELD 19413 047752* 1364 TAD (PTRBLK-1) / START OF SCROLL POINTERS 19414 DCA X0 undefined ^ undefined ^ 047753* 3000 19415 047754* 1363 TAD (-NPTRS+1) / # OF POINTERS 19416 DCA X1 undefined ^ undefined ^ 047755* 3000 19417 DCA I X0 / CLEAR A POINTER undefined ^ undefined ^ 047756* 3400 19418 ISZ X1 / SKIP IF ALL POINTERS CLEARED undefined ^ undefined ^ 047757* 2000 19419 047760* 5356 JMP .-2 / LOOP UNTIL ALL CLEARED 19420 19421 047761* 1135 TAD CURPTR / GET PTR TO (ASSUMED) START OF LINE /M157 19422 DCA I X0 / INIT. 1ST SCROLL POINTER undefined ^ undefined ^ 047762* 3400 19423 19424 047763* 1135 TAD CURPTR / POINTS AT ETX /A157 19425 047764* 3171 DCA LINE23 / INIT. SCREEN LINE /A157 19426 047765* 3136 DCA CURSOR / INIT. /A157 19427 047766* 5750 JMP I RRPBIN 19428 19429 19430 /D157 / here to close a very small GOLD_BOTTOM window, that being the presence 19431 /D157 / of a document that contains 4095 page markers between the logical_EOF 19432 /D157 / ( -1 desc. word) and physical_EOF 19433 /D157 19434 /D157 RPGBOT, TAD RPBOTF / get the GOLD_BOTTOM flag /A154 19435 /D157 SMA CLA / skip if doing a GOLD_BOTTOM /A154 19436 /D157 JMP RRPS / jump to conclude GTP /A154 19437 /D157 AC0001 / initial for furthur scrolling /A154 19438 /D157 DCA CURPG1 / won't come here for every page /A154 19439 /D157 JMP RPADVUNT / scroll_until_EOF /A154 19440 19441 X=. / INDICATE FIRST FREE LOCATION ON PAGE 19442 /--------------------- 19443 PAGE overrun ^ 047763* 7751 047764* 6220 047765* 2004 047766* 0100 047767* 7772 047770* 6625 047771* 6002 047772* 6626 047773* 6624 047774* 5014 047775* 2756 047776* 0761 047777* 6736 19444 19445 /*************************************************************************** 19446 /**** START OF OVERLAY **** 19447 /*************************************************************************** 19448 19449 OVRNUM=OVRNUM+200 19450 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 19451 19452 RELOC 19453 RELOC OVLAY1 19454 047400* 5600 OVRNUM 19455 19456 19457 / 19458 / DISPLAY THE GOTO-PAGE SCREEN 19459 / ("REPOSITIONING TO YOUR DESIRED PAGE...") 19460 / 19461 OVPAGE= .-OVLAY1+OVRNUM / --OVERLAY ENTRY POINT-- 19462 19463 047401* 4777 JMS CLR132 / CLEAR 132 MODE ON GOLD BOTTOM 19464 19465 CIFMNU / CHANGE TO MENU INSTRUCTION FIELD undefined ^ 047402* 0000 19466 AC0003 / SET UP FOR CLEAR SCREEN REQUEST undefined ^ 047403* 0000 19467 047404* 4776 JMS I (CALLN1) / GO TO STATUS LINE ROUTINE FOR CLEAR 19468 19469 CIFMNU / ...GOING TO 'IOA' FOR SCREEN DISPLAYS undefined ^ 047405* 0000 19470 JMS I IOACAL undefined ^ undefined ^ 047406* 4400 19471 047407* 0000 0 / NO SPECIAL OUTPUT ROUTINE 19472 047410* 7600 M2PAGE / ADDR OF MESSAGE 19473 047411* 1125 1125 / ^P (SCREEN POSITION) 19474 047412* 7600 M2PAG / ^S (STRING ARG="PAGE") 19475 047413* 1437 1437 / ^P 19476 047414* 2700 2700 / ^P 19477 047415* 5272 JMP XVGOPG 19478 19479 19480 / 19481 / DISPLAY THE GOTO-RULER SCREEN 19482 / ("REPOSITIONING TO YOUR DESIRED RULER...") 19483 / 19484 OVRRDS= .-OVLAY1+OVRNUM 19485 / 19486 / SET UP SOME FLAGS TO DO GOTO-RULER 19487 / SEE LARGE COMMENT BLOCK SHORTLY AFTER 'RRFND1' FOR DETAILS 19488 / 19489 AC4000 / INHIBITS CLEARING OF SCREEN undefined ^ 047416* 0000 19490 047417* 3775 DCA RPBIN1 / WE ARE ABOUT TO CREATE 19491 / 19492 / DISPLAY "REPOSITIONING TO DESIRED RULER..." SCREEN 19493 / 19494 047420* 4777 JMS CLR132 / CLEAR 132 MODE ON GOLD BOTTOM 19495 19496 CIFMNU / CHANGE TO MENU INSTRUCTION FIELD undefined ^ 047421* 0000 19497 AC0003 / SET UP FOR CLEAR SCREEN REQUEST undefined ^ 047422* 0000 19498 047423* 4776 JMS I (CALLN1) / GO TO STATUS LINE ROUTINE FOR CLEAR 19499 19500 CIFMNU / ...GOING TO 'IOA' FOR SCREEN DISPLAYS undefined ^ 047424* 0000 19501 JMS I IOACAL undefined ^ undefined ^ 047425* 4400 19502 047426* 0000 0 / NO SPECIAL OUTPUT ROUTINE 19503 047427* 7600 M2PAGE / ADDR OF MESSAGE 19504 047430* 1125 1125 / ^P (SCREEN POSITION) 19505 047431* 7600 M2RUL / ^S (STRING ARG="RULER") 19506 047432* 1437 1437 / ^P 19507 047433* 2700 2700 / ^P 19508 / 19509 / GO TO COMMON CODE 19510 / 19511 047434* 5774 JMP RPTOP / GO CLOSE DOCUMENT, OPEN AT TOP, ETC, 19512 19513 19514 / GOLD_BOTTOM now paints the screen and exits in the same way as /A154 19515 / GTP does... /A154 19516 19517 19518 / 19519 / FINISH GO-TO-PAGE, GOLD:BOTTOM AND GO-TO-RULER FOR STATUS LINE 19520 / 19521 OVBOTB= .-OVLAY1+OVRNUM / --OVERLAY ENTRY POINT-- 19522 19523 /D157 CLA /A154 19524 /D157 DCA RPBOTF / clear doing GOLD_BOTTOM flag /A154 19525 19526 CDFLP / NOW TO FIELD 5 TO /A157 undefined ^ 047435* 0000 19527 047436* 3773 DCA RPACTIVE / CLEAR GTP 'ACTIVE' FLAG /A157 19528 19529 AC7777 / SET FLAG TO RETURN THE VALUES undefined ^ 047437* 0000 19530 CDILP / SET TO FIELD FIVE FOR ROUTINE undefined ^ 047440* 0000 19531 047441* 4772 JMS RPPMENU / CALCULATE CURRENT PAGE VALUE 19532 19533 047442* 1771 TAD CURPG2 / PICK UP THOUSANDS COUNT OF PAGES 19534 047443* 4770 JMS MNUPUT / STORE VALUE IN HIGH ORDER PAGE COUNT 19535 LINPGH-MUBUF / STATUS LINE HIGH ORDER PAGE NUMBER undefined ^ 047444* 0174 19536 19537 047445* 1767 TAD CURPG1 / PICK UP HUNDREDS COUNT OF PAGES 19538 047446* 4770 JMS MNUPUT / STORE VALUE IN LOW ORDER PAGE COUNT 19539 LINPGL-MUBUF / STATUS LINE LOW ORDER PAGE NUMBER undefined ^ 047447* 0173 19540 19541 047450* 5766 JMP EIFIX / GO PUT UP THE SCREEN CONTENTS 19542 19543 19544 / 19545 / "GOLD:BOTTOM" COMMAND 19546 / 19547 OVRBOT= .-OVLAY1+OVRNUM / --OVERLAY ENTRY POINT-- 19548 / DISPLAY THE GOLD BOTTOM SCREEN 19549 19550 /D158 AC0001 / SET UP TO SHUT DOWN THE "MA" SWTCH 19551 /D158 JMS SWTHMA / DEACTIVATE MATH & SAVE ORIGINAL "MA". 19552 AC4000 undefined ^ 047451* 0000 19553 047452* 3775 DCA RPBIN1 19554 AC0100 undefined ^ 047453* 0000 19555 047454* 3765 DCA RPBIN2 19556 /D157 AC7777 19557 /D157 DCA RPBOTF / [-1] MEANS GOLD BOTTOM REQUEST 19558 047455* 3764 DCA RPPG0 / 0 = NOT AT ---TOP-- FLAG 19559 19560 047456* 4777 JMS CLR132 / CLEAR 132 MODE ON GOLD BOTTOM 19561 19562 CIFMNU / CHANGE TO MENU INSTRUCTION FIELD undefined ^ 047457* 0000 19563 AC0003 / SET UP FOR CLEAR SCREEN REQUEST undefined ^ 047460* 0000 19564 047461* 4776 JMS I (CALLN1) / GO TO STATUS LINE ROUTINE FOR CLEAR 19565 19566 CIFMNU / ...GOING TO 'IOA' FOR SCREEN DISPLAYS undefined ^ 047462* 0000 19567 JMS I IOACAL undefined ^ undefined ^ 047463* 4400 19568 047464* 0000 0 / NO SPECIAL OUTPUT ROUTINE 19569 047465* 7600 M2BOT / ADDR OF MESSAGE 19570 047466* 1125 1125 / ^P 19571 047467* 1437 1437 / ^P 19572 047470* 2700 2700 / ^P 19573 AC7777 / NEG RPBOTF MEANS DO GOLD:BOTTOM /A157 undefined ^ 047471* 0000 19574 047472* 3763 XVGOPG, DCA RPBOTF / POS RPBOTF MEANS DO GOTO-PAGE /A157 19575 19576 / initialize common GOLD:BOTTOM and GOTO-PAGE pointers 19577 19578 047473* 3762 DCA RRDIR / INDICATE THIS IS NOT GOTO-RULER /M157 19579 047474* 1361 TAD (55) 19580 047475* 3760 DCA RPCUOF / POINTS AT 1ST DESCRIPTOR WORD 19581 047476* 1361 TAD (55) 19582 047477* 3757 DCA RPMTRL / DEFAULT RULER-BLOCK OFFSET 19583 047500* 3756 DCA RPMTBK / NO MATH BLOCK 19584 AC0001 undefined ^ 047501* 0000 19585 047502* 3755 DCA RPCUBK / START WITH 1ST RPPGDS BLOCK 19586 AC0001 undefined ^ 047503* 0000 19587 047504* 3754 DCA RPRLHN / DEFAULT RULER IN 1ST RPPGDS BLOCK 19588 19589 / DOING A GTP or GOLD_BOTTOM REQUEST, IGNORE GOLD-HALT WHILE 19590 / PREPARING THE SCREEN AND LOADING A RULER 19591 / NOTE: I DON'T THINK THIS IS NEEDED--MY BET IS THAT ALL /A157 19592 / REFERENCES TO 'RPACTIVE' COULD BE DELETED! /A157 19593 CDFLP / FIELD 5 FOR OUR FLAG undefined ^ 047505* 0000 19594 AC7777 / WAS 0; SET TO 'ACTIVE' undefined ^ 047506* 0000 19595 047507* 3773 DCA RPACTIVE / SO GOLD-HALT GETS IGNORED BY HLTTST 19596 047510* 0000 CDFMYF / BACK TO THIS FIELD 19597 047511* 5774 JMP RPTOP / 'TOP' THE DOC THEN TO OVERLAY OVRRP2 19598 19599 X=. / INDICATE FIRST FREE LOCATION ON PAGE 19600 /--------------------- 19601 047554* 6537 PAGE 047555* 0761 047556* 3363 047557* 5162 047560* 2756 047561* 0055 047562* 1764 047563* 3753 047564* 6736 047565* 4302 047566* 0401 047567* 1751 047570* 1655 047571* 2552 047572* 6427 047573* 6426 047574* 0541 047575* 6737 047576* 0000 047577* 6740 19602 19603 19604 TRANTP=. / TOP OF TRANSLATION PAGE /A240 19605 19606 M2BOT, 19607 IFDEF ENGLSH < 19608 TEXT '^P&REPOSITIONING TO BOTTOM OF DOCUMENT. ' / 1133 19609 *.-1 19610 TEXT '^P&PLEASE STAND BY.^P' / 1450 / 2700 19611 > 19612 19613 IFDEF V30NOR < 19614 TEXT '^P&MARK\XREN FLYTTES TIL BUNNEN AV DOKUMENTET. ' / 1133 19615 *.-1 19616 TEXT '^P&VENT.^P' / 1450 / 2700 19617 > 19618 19619 IFDEF V30SWE < 19620 TEXT '^P&FLYTTAR TILLBAKA TILL SLUTET AV DOKUMENTET. ' / 1133 19621 *.-1 19622 TEXT '^P&V\DNTA.^P' / 1450 / 2700 19623 > 19624 19625 IFDEF SPANISH < /A236 19626 TEXT '^P&REAJUSTE DE PARTE INFERIOR DEL DOCUMENTO. ' / 1133 19627 *.-1 19628 TEXT '^P&ESPERE.^P' / 1450 / 2700 19629 > /A236 19630 19631 IFDEF ITALIAN < 19632 TEXT '^P&REPOSIZIONAMENTO ALLA FINE DEL DOCUMENTO.^P&ATTENDERE.^P' 19633 > 19634 IFDEF DUTCH < 19635 TEXT '^P&OP WEG NAAR HET EINDE VAN HET DOCUMENT.' 19636 *.-1 19637 TEXT '^P&EVEN GEDULD...^P' 19638 > 19639 19640 M2PAGE, 19641 IFDEF ENGLSH < 19642 TEXT '^P&REPOSITIONING TO YOUR DESIRED ^S. ' / 1133 19643 *.-1 19644 TEXT '^P&PLEASE STAND BY.^P' / 1450 / 2700 19645 > 19646 19647 IFDEF V30NOR < 19648 TEXT '^P&MARK\XREN FLYTTES TIL ANGITT ^S. ' / 1133 19649 *.-1 19650 TEXT '^P&VENT^P' / 1450 / 2700 19651 > 19652 19653 IFDEF V30SWE < 19654 TEXT '^P&FLYTTAR TILLBAKA TILL \VNSKAD ^S. ' / 1133 19655 *.-1 19656 TEXT '^P&V\DNTA^P' / 1450 / 2700 19657 > 19658 19659 IFDEF SPANISH < /A236 19660 TEXT '^P&REAJUSTE COMO DESEE ^S. ' / 1133 19661 *.-1 19662 TEXT '^P&ESPERE.^P' / 1450 / 2700 19663 > /A236 19664 19665 IFDEF ITALIAN < 19666 TEXT '^PRIPOSIZIONAMENTO SUL^S.^P&ATTENDERE.^P' 19667 > 19668 19669 IFDEF DUTCH < 19670 TEXT '^P&OP WEG NAAR DE GEWENSTE ^S.' 19671 *.-1 19672 TEXT '^P&EVEN GEDULD...' 19673 > 19674 19675 M2PAG, 19676 IFDEF ENGLSH < TEXT 'PAGE' > 19677 IFDEF V30NOR < TEXT 'SIDE' > 19678 IFDEF V30SWE < TEXT 'SIDA' > 19679 IFDEF SPANISH < TEXT 'P\AGINA' > /A236 19680 IFDEF ITALIAN < TEXT 'LA PAGINA VOLUTA' > 19681 IFDEF DUTCH < TEXT 'PAGINA' > 19682 M2RUL, 19683 IFDEF ENGLSH < TEXT 'RULER' > 19684 IFDEF V30NOR < TEXT 'FORMATERINGSLINJE' > 19685 IFDEF V30SWE < TEXT 'LINJAL' > 19686 IFDEF SPANISH < TEXT 'REGLA' > /A236 19687 IFDEF ITALIAN < TEXT ' DESCRITTORE RIGA VOLUTO' > 19688 IFDEF DUTCH < TEXT 'REGELINDELING' > 19689 19690 X=. / INDICATE FIRST FREE LOCATION ON PAGE 19691 /--------------------- 19692 PAGE 19693 IFNZRO . /A240 illegal char ^ undefined ^ expression ^ 047600* 0000 illegal char ^ 047601* 0000 19694 19695 19696 /*************************************************************************** 19697 /**** START OF OVERLAY **** 19698 /*************************************************************************** 19699 19700 OVRNUM=OVRNUM+200 19701 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 19702 19703 RELOC 19704 RELOC OVLAY1 19705 047400* 6000 OVRNUM 19706 RPPER7= .-OVLAY1+OVRNUM / --OVERLAY ENTRY POINT-- 19707 / JMP XPPER7 19708 19709 /D192 CDFEDT 19710 047401* 4777 JMS CLR132 / 80 column mode for error display /A192 19711 19712 CIFMNU / CHANGE TO MENU INSTRUCTION FIELD undefined ^ 047402* 0000 19713 AC0003 / SET UP FOR CLEAR SCREEN REQUEST undefined ^ 047403* 0000 19714 047404* 4776 JMS I (CALLN1) / GO TO STATUS LINE ROUTINE FOR CLEAR 19715 19716 CIFMNU / ...GOING TO 'IOA' FOR SCREEN DISPLAYS undefined ^ 047405* 0000 19717 JMS I IOACAL undefined ^ undefined ^ 047406* 4400 19718 047407* 0000 0 19719 MER7 undefined ^ 047410* 0000 19720 047411* 0031 0031 / ^P 19721 047412* 0431 0431 / ^P 19722 047413* 1317 1317 / ^P 19723 047414* 1417 1417 / ^P 19724 19725 047415* 4523 OVLJMP; RPER7B / 2ND HALF OF GOTO PAGE ERROR #7 undefined ^ 047416* 0000 19726 19727 / ========================================================================= 19728 / +++ CHANGES FOR EDIT HISTORY #176 FOR GOLD:TAB +++ 19729 / ========================================================================= 19730 / 19731 / Double Entry Point routine to process either 19732 / Gold:tab or Gold:ruler. 19733 / 19734 / 19735 OVRULR= .-OVLAY1+OVRNUM / Gold:Ruler /c176 19736 19737 047417* 3217 VECFLG, DCA VECFLG / VECFLG="0" /a176 19738 19739 OVGLTB= .-OVLAY1+OVRNUM / Gold:Tab /a176 19740 19741 / VECFLG="DCA VECFLG" (Non-Zero) /a176 19742 19743 / PREPARE TO MODIFY RULER BY CONCATENATING ADJACENT RULERS, IF ANY. 19744 19745 JMS RLCKNR / CHECK FOR NEW RULER undefined ^ undefined ^ 047420* 4000 19746 JMP RLCONA / NO NEW RULER undefined ^ undefined ^ 047421* 5000 19747 19748 / THERE IS A NEW RULER. 19749 / CHECK FOR ADJACENT RULER. 19750 19751 047422* 4507 BKPPTR / BACKUP TO ECNDRL OF ADJ RULER, IF ANY 19752 047423* 5227 JMP RLCONB / NO ADJACENT RULER 19753 TAD (-ECNDRL) / IS THERE AN ADJACENT RULER? undefined ^ undefined ^ 047424* 1376 19754 047425* 7650 SNA CLA 19755 047426* 5232 JMP RLCONC / YES: CONCATENATE ADJACENT RULERS 19756 19757 / THERE IS A NEW RULER, BUT NO ADJACENT RULER(S), SO 19758 / THERE IS NO INITIAL RULER CONCATENATION, AND 19759 / CURPTR IS RESTORED TO VALUE ON ENTRY TO OVRULR. 19760 19761 RLCONB, TAD RLCURP undefined ^ undefined ^ 047427* 1000 19762 047430* 3135 DCA CURPTR 19763 JMP RLCONA undefined ^ undefined ^ 047431* 5000 19764 / 19765 / +++ RLCONA was moved to the next page for space /m176 19766 / 19767 / THERE ARE ADJACENT RULERS. 19768 / TO SIMPLIFY THE "DELETE RULER" FUNCTION WHICH MAY 19769 / BE INVOKED LATER, WE WILL NOW CONCATENATE THESE 19770 / ADJACENT RULERS (WHICH MAY BE DELETED IN THE PROCESS). 19771 / 19772 / WE WILL CONCATENATE ADJACENT RULERS BY MOVING THE CURSOR 19773 / BACK THEN FORWARD OVER THEM. WHEN WE DO THIS, 19774 / WE WILL FORGET THE CURRENT CURSOR LOCATION WITHIN 19775 / THE LINE, SINCE THERE IS A TINY CHANCE THAT THERE 19776 / ARE 50 OR MORE ADJACENT RULERS, AND THAT MOVING 19777 / OVER THEM WILL CAUSE DATA TO BE SCROLLED IN FROM 19778 / DISK OVER THE PLACE IN THE EDIT BUFFER CORRESPSN$. 19779 / 19780 / WE WILL CONCATRSOR LOCATION! 19781 / PARANOID, ISN'T IT? 19782 / 19783 / AT ANY RATE, THE CURSOR WILL BE LEFT AT THE 19784 / BEGINNING OF THE LINE. 19785 19786 047432* 1171 RLCONC, TAD LINE23 / MOVE TO BEGINNING OF THE LINE 19787 047433* 3135 DCA CURPTR 19788 047434* 3136 DCA CURSOR 19789 AC7777 / BACK UP CURSOR OVER ALL ADJACENT RULERS undefined ^ 047435* 0000 19790 047436* 4513 CURMOV 19791 047437* 7610 SKP CLA / AT STX: GLIDE OVER RULER(S) TO 1ST TEXT CHAR 19792 AC0001 / ADVANCE CURSOR OVER ALL ADJACENT RULERS, undefined ^ 047440* 0000 19793 047441* 4513 CURMOV / AND CONCATENATE OR DELETE THEM. 19794 JMP RLCONA undefined ^ undefined ^ 047442* 5000 19795 JMP RLCONA undefined ^ undefined ^ 047443* 5000 19796 19797 19798 / 19799 / DELETE RULER COMMAND 19800 / 19801 19802 OVRLDL= .-OVLAY1+OVRNUM 19803 19804 / IF CURPTR IS AT A RULER, THEN 19805 / IF CURPTR IS AT THE FIRST RULER IN THE DOCUMENT, THEN 19806 / BEEP TO WARN THE USER; 19807 / ELSE (* NOT FIRST RULER *) 19808 / SET NWRUL := BACKWARD POINTING HALF OF RULER; 19809 / (*WHEN THIS RULER IS INSERTED AFTER THE EXISTING RULER, 19810 / THE RULER CLEAN-UP CODE WILL DELETE BOTH RULERS. 19811 / NOTE THAT IF THERE IS A NEW RULER, IT CANNOT HAVE AN 19812 / ADJACENT RULER, SINCE WE CAREFULLY CONCATENATED ANY 19813 / SUCH RULERS WHEN WE STARTED (AT OVRULR). 19814 / *) 19815 / RESTORE CURPTR TO VALUE AT TIME OF ENTRY TO OVRLDL; 19816 / ELSE (* NO NEW RULER *) 19817 / (* SAME AS "=" COMMAND *) 19818 / SET NWRUL := CURUL; 19819 / GOTO DISPLAY NWRUL AND ACCEPT RULER EDITING COMMAND 19820 19821 JMS RLCKNR / CHECK FOR EXISTING RULER undefined ^ undefined ^ 047444* 4000 19822 047445* 5261 JMP RLOJER / NONE: SAME AS "=" 19823 047446* 4507 BKPPTR / AT STX? 19824 JMP RLDLER / YES: AT FIRST RULER, CAN'T DELETE IT undefined ^ undefined ^ 047447* 5000 19825 047450* 4506 ADVPTR / NO: RESTORE CURPTR 19826 047451* 7000 NOP / (AT ETX--THAT'S OK) 19827 047452* 7200 CLA / FORGET ECSTRL IN AC FROM ADVPTR 19828 047453* 4775 JMS SETRUL / SET NWRUL FROM BACKWARDS POINTING 19829 / HALF OF EXISTING RULER 19830 047454* 6136 ESADRL / (GET RULER CHAR ROUTINE) 19831 RLDL2, TAD RLCURP / RESTORE CURPTR undefined ^ undefined ^ 047455* 1000 19832 047456* 3135 DCA CURPTR 19833 047457* 4523 OVLJMP / GO DISPLAY RULER AND WAIT FOR CMD 19834 047460* 1403 OVDRUL 19835 19836 / THERE IS NO NEW RULER IN TEXT TO DELETE, SO 19837 / JUST AVOID INSERTING A NEW ONE. 19838 047461* 4523 RLOJER, OVLJMP / PERFORM "=" COMMAND 19839 047462* 1402 OVERUL 19840 19841 / ERROR: ATTEMPT TO DELETE FIRST RULER IN DOCUMENT 19842 RLDLER, JMS BEEPER / CHASTISE USER SEVERELY full ^ 047463* 4774 19843 047464* 5255 JMP RLDL2 / EXIT, LEAVING THINGS AS THEY WERE 19844 19845 19846 / 19847 / SUBR RLCKNR -- CHECK FOR NEW RULER JUST BEFORE CURRENT LINE 19848 / 19849 / CALL: 19850 / CLA 19851 / JMS RLCKNR / CHECK FOR NEW RULER 19852 / / 19853 / JMP NORULR / NONE THERE. 19854 / / 'CURPTR' AND 'CURSOR' ARE UNCHANGED. 19855 / / 19856 / JMP RULR / FOUND NEW RULER. 19857 / / 'CURPTR' POINTS TO START OF RULER 19858 / / (ANOTHER RULER MAY IMMEDIATELY 19859 / / PRECEED 'CURPTR'). 19860 / / 'CURSOR' IS UNCHANGED. 19861 / / 'RLCURP' = VALUE OF 'CURPTR' ON 19862 / / ENTRY TO RLCKNW. 19863 / / ON ALL EXITS, AC=0, DF=CDFBUF 19864 / 19865 19866 RLCKNR, XX / CHECK FOR NEW RULER full ^ undefined ^ 047465* 0000 19867 047466* 1135 TAD CURPTR / SAVE 'CURPTR' (STILL SAME VALUE AS BEFORE 19868 DCA RLCURP / USER HIT GOLD:RULER). undefined ^ undefined ^ 047467* 3000 19869 / THIS IS NEEDED SO THAT IF RULER IS NOT 19870 / MODIFIED, CURSOR CAN BE RESTORED TO 19871 / WHERE IT WAS BEFORE GOLD:RULER CMD. 19872 047470* 1171 TAD LINE23 / MOVE TO START OF LINE 19873 047471* 3135 DCA CURPTR 19874 047472* 4507 BKPPTR / MOVE TO END OF RULER, IF ANY 19875 JMP RLCKNB / (HIT TOP, NO RULER) undefined ^ undefined ^ 047473* 5000 19876 TAD (-ECNDRL) / IS A RULER THERE? undefined ^ undefined ^ 047474* 1376 19877 047475* 7650 SNA CLA 19878 JMP RLCKNA / YES undefined ^ undefined ^ 047476* 5000 19879 RLCKNB, TAD RLCURP / NO: RESTORE CURPTR full ^ undefined ^ undefined ^ 047477* 1000 19880 047500* 3135 DCA CURPTR 19881 JMP I RLCKNR / TAKE "NO NEW RULER" RETURN undefined ^ undefined ^ 047501* 5400 19882 19883 / THERE IS A NEW RULER. 19884 / BACKUP TO START OF NEW RULER. 19885 19886 RLCKNA, BKPPTR full ^ 047502* 4507 19887 047503* 7402 HLT / BUG (BROKEN RULER--MISSING ECSTRL) 19888 TAD (-ECSTRL) / AT START OF RULER? undefined ^ undefined ^ 047504* 1376 19889 047505* 7640 SZA CLA 19890 JMP RLCKNA / NO: BACKUP UNTIL WE ARE undefined ^ undefined ^ 047506* 5000 19891 19892 / CURPTR IS AT START OF NEW RULER. (IGNORE POSSIBILITY 19893 / THAT ANOTHER NEW RULER MAY IMMEDIATELY PRECEED CURRENT 19894 / NEW RULER.) 19895 19896 ISZ RLCKNR / TAKE "FOUND NEW RULER" RETURN undefined ^ undefined ^ 047507* 2000 19897 JMP I RLCKNR undefined ^ undefined ^ 047510* 5400 19898 19899 RLCURP, 0 / VARIABLE: SAVE CURPTR full ^ 047511* 0000 19900 19901 19902 / /M155 19903 / CONTINUATION OF CODE TO GET TO ---TOP--- /M155 19904 / /M155 19905 OVRPTP= .-OVLAY1+OVRNUM /M155 full ^ 19906 047512* 4773 JMS CLSSET / INITIALIZE SCROLL VALUES FOR STATUS /M155 19907 /M155 19908 AC0001 /M155 undefined ^ 047513* 0000 19909 047514* 7421 MQL / MAIN HEADER BLOCK /M155 19910 047515* 1372 TAD (53) /M155 19911 047516* 4771 JMS DSKCAL / INITIALIZE SCTOP & SCBOT TO /M155 19912 XRPRD / BE 52 & 53 RESPECTIVELY /M155 undefined ^ 047517* 0000 19913 /M155 19914 / INITIALIZE BUFFER AND SCREEN /M155 19915 /M155 19916 /D155 JMS RPOVIN / CLEAR EDIT BUFFER AND PTRBLK /M155 19917 047520* 4770 JMS SWTHMA / TAKE CARE OF MATH-FLAG SETTINGS /M155 19918 /M155 19919 CDFSYS / GET TO FIELD 0 TO /M155 undefined ^ 047521* 0000 19920 DCA I HLTFLG / CLEAR A POSSIBLE GOLD-HALT FLAG /M155 undefined ^ undefined ^ 047522* 3400 19921 CDFLP / NOW TO FIELD 5 TO /M155 undefined ^ 047523* 0000 19922 047524* 3767 DCA RPACTIVE / CLEAR GTP 'ACTIVE' FLAG /M155 19923 047525* 0000 CDFMYF / BACK TO THIS FIELD /M155 19924 /M155 19925 047526* 4766 JMS LODCHR / GET FIRST CHAR (RULER) /M155 19926 047527* 7000 NOP /M155 19927 /M155 19928 AC0001 / SET UP FOR PAGE NUMBER ONE /M155 undefined ^ 047530* 0000 19929 047531* 4765 JMS MNUPUT / STORE LOW ORDER PAGE NUMBER /M155 19930 LINPGL-MUBUF / STATUS LINE LOW ORDER PAGE NUMBER /M155 undefined ^ 047532* 0173 19931 /M155 19932 047533* 4765 JMS MNUPUT / CLEAR HIGH ORDER PAGE NUMBER /M155 19933 LINPGH-MUBUF / STATUS LINE HIGH ORDER PAGE NUMBER /M155 undefined ^ 047534* 0174 19934 /M155 19935 AC0001 / SET UP TO INDICATE FIRST LINE OF FILE /M155 undefined ^ 047535* 0000 19936 047536* 4765 JMS MNUPUT / STORE NEW LINE NUMBER /M155 19937 LINNUM-MUBUF / LOCATION OF LINE NUMBER IN MENU FIELD /M155 undefined ^ 047537* 0175 19938 /M155 19939 AC0001 / SET UP TO INDICATE STATUS HAS CHANGED /M155 undefined ^ 047540* 0000 19940 047541* 4765 JMS MNUPUT / STORE VALUE IN STATUS CHANGE FLAG /M155 19941 LINDIF-MUBUF / STATUS CHANGE FLAG IN MENU FIELD /M155 undefined ^ 047542* 0172 19942 047543* 5764 JMP EIFIX / FIX UP SCREEN AND GET NEXT CHARACTER /M155 19943 19944 19945 X=. / INDICATE FIRST FREE LOCATION ON PAGE 19946 /--------------------- 19947 047564* 0401 PAGE 047565* 1655 047566* 4241 047567* 6426 047570* 1320 047571* 5014 047572* 0053 047573* 2141 047574* 0324 047575* 5600 047576* 0000 047577* 6740 19948 19949 / ========================================================================= 19950 / +++ MOVED HERE PER EDIT #176 +++ 19951 / ========================================================================= 19952 / 19953 / PREPARE TO EDIT RULER. 19954 19955 RLCONA, CDFMYF full ^ 047600* 0000 19956 047601* 1777 TAD SPLTFL / KEEP A COPY OF SPLTFL 19957 047602* 3776 DCA WIDPRV 19958 047603* 4775 JMS RLEQTE / EQUATE THIS RULER TO OLD ONE 19959 047604* 4774 JMS FXSCRL / GET SCREEN UP TO DATE 19960 047605* 1136 TAD CURSOR / GET CURRENT CURSOR POSN. 19961 047606* 3773 DCA CURSAV / SAVE. 19962 / 19963 047607* 1772 TAD VECFLG / SAVE VECFLG FOR OTHER ROUTINES /a176 19964 047610* 4771 JMS MNUPUT / (PUT IT IN THE MENU FIELD) /a176 19965 MNTMP1 /a176 undefined ^ 047611* 0000 19966 19967 047612* 1772 TAD VECFLG / HOW DID WE GET HERE /a176 19968 047613* 7640 SZA CLA /a176 19969 JMP RLCOND / GOLD:TAB /a176 undefined ^ undefined ^ 047614* 5000 19970 / 19971 047615* 4523 OVLJMP / GOLD:RULER 19972 047616* 1202 OVXRL1 19973 / 19974 RLCOND, OVLJMP /a176 full ^ 047617* 4523 19975 047620* 3603 OVINTB /a176 19976 19977 19978 19979 19980 MER7, (0) / GIVES PE ERROR IF XLATIONS O/F /A236 full ^ 047621* 7770 19981 IFDEF ENGLSH < 19982 TEXT '^P-- !&GO-!&TO-!&PAGE !&ERROR -- ' / 0031 19983 *.-1 19984 TEXT '^P&YOUR PAGE WAS NOT FOUND. ' / 0431 19985 *.-1 19986 TEXT '^P&YOU MAY USE A !&GO-!&TO-!&PAGE REQUEST, BUT ONLY ' / 1317 19987 *.-1 19988 TEXT '^PENTER A PAGE NUMBER WITHIN THE RANGE OF PAGES ' / 1417 19989 > 19990 19991 IFDEF V30NOR < 19992 TEXT '^P-- &FEIL I !&G\E-!&TIL-!&SIDE -- ' / 0031 19993 *.-1 19994 TEXT '^P&FANT IKKE ANGITT SIDE. ' / 0431 19995 *.-1 19996 TEXT '^P&N\ER DU BRUKER FUNKSJONEN !&G\E-!&TIL-!&SIDE, M\E DU ' / 1317 19997 *.-1 19998 TEXT '^PANGI ET SIDETALL SOM FINNES I DETTE ' / 1417 19999 > 20000 20001 IFDEF V30SWE < 20002 TEXT '^P-- "!&G\E-!&TILL-!&SIDA"-FEL -- ' / 0031 20003 *.-1 20004 TEXT '^P&DEN SIDAN KUNDE INTE HITTAS ' / 0431 20005 *.-1 20006 TEXT '^P&DU KAN S\VKA EN SIDA MED HJ\DLP AV "!&G\E-!&TILL-!&SIDA", MEN ENDAST ' 20007 *.-1 20008 TEXT '^POM DU SKRIVER ETT SIDNUMMER SOM INTE \VVERSKRIDER DET ANTAL SIDOR ' 20009 / 1417 20010 > 20011 20012 IFDEF SPANISH < /A236 20013 TEXT '^P-- !&IR-!&A-!&ERROR !&PAGINA -- ' / 0031 20014 *.-1 20015 TEXT '^P&IMPOSIBLE ENCONTRAR SU P\AGINA. ' / 0431 20016 *.-1 20017 TEXT '^P&PUEDE USAR EL PEDIDO DE !&IR-&A-!&PAGINA, PERO S\SLO '/ 1317 20018 *.-1 20019 TEXT '^PTECLEE UN N\ZMERO DE P\AGINA DENTRO DEL MARGEN DE P\AGINAS ' / 1417 20020 > /A236 20021 20022 IFDEF DUTCH < /A236 20023 TEXT '^P-- !&FOUT !&BIJ !&ZOEKEN !&PAGINA -- ' / 0031 20024 *.-1 20025 TEXT '^P&PAGINA NIET GEVONDEN ' / 0431 20026 *.-1 20027 TEXT '^P&GEBRUIK ALLEEN PAGINA-NUMMERS BINNEN DE GRENZEN '/ 1317 20028 *.-1 20029 TEXT '^PVAN HET DOCUMENT. ' / 1417 20030 > /A236 20031 20032 IFDEF ITALIAN < 20033 TEXT '^P-- !&ERRORE !&DI !&RICERCH !&PAGINA -- ' 20034 *.-1 20035 TEXT '^P&LA PAGINA RICHIESTA NON \H STATA TROVATA. ' 20036 *.-1 20037 TEXT '^P&\H POSSIBILE EFFETTUARE UN !&CERCA !&PAGINA SOLO ' 20038 *.-1 20039 TEXT '^PINTRODUCENDO UN NUMERO DI PAGINA MINORE O UGUALE AL ' 20040 > 20041 20042 X=. / INDICATE FIRST FREE LOCATION ON PAGE 20043 /--------------------- 20044 047770* 0000 PAGE 047771* 1655 047772* 7417 047773* 0456 047774* 3400 047775* 6151 047776* 6535 047777* 2345 20045 20046 /*************************************************************************** 20047 /**** START OF OVERLAY **** 20048 /*************************************************************************** 20049 20050 OVRNUM=OVRNUM+200 20051 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 20052 20053 RELOC 20054 RELOC OVLAY1 20055 047400* 6200 OVRNUM 20056 20057 RPER7B= .-OVLAY1+OVRNUM / --OVERLAY ENTRY POINT-- full ^ 20058 / JMP XPER7B 20059 20060 RPCHKREPLY, / RETURN-KEY only valid terminator FOR INPUT /M154 full ^ 20061 CIFMNU / CHANGE TO MENU FIELD undefined ^ 047401* 0000 20062 JMS I IOACAL undefined ^ undefined ^ 047402* 4400 20063 047403* 0000 0 20064 MER7B undefined ^ 047404* 0000 20065 047405* 1517 1517 / ^P 20066 047406* 1717 1717 / ^P 20067 047407* 2017 2017 / ^P 20068 047410* 2700 2700 / ^P 20069 20070 /D154 JMS CLREOL / done, when needed, by BEEPER 20071 CIFMNU / menu-field (fix to automatic exit-problem)/A154 undefined ^ 047411* 0000 20072 JMS I INACAL / get reply to PAGE NOT FOUND msg. undefined ^ undefined ^ 047412* 4400 20073 ER7BUF / arg 1 undefined ^ 047413* 0000 20074 20075 047414* 7410 SKP / for normal INA return 20076 TAD (EDNWLN) / for special INA return undefined ^ undefined ^ 047415* 1377 20077 TAD (-EDNWLN) / look for RETURN key undefined ^ undefined ^ 047416* 1377 20078 047417* 7640 SZA CLA / skip if valid-input 20079 JMP CHKAGAIN / inform user of invalid-input undefined ^ undefined ^ 047420* 5000 20080 20081 047421* 4776 JMS SET132 / SET TO 132 COL. MODE IF WIDE FLAG SET /A192 20082 047422* 1775 TAD RPPG0 / ---TOP-- DOC. FLAG 20083 047423* 7640 SZA CLA / SKIP IF NOT PAGE0 PROBLEM 20084 JMP RPOVRT / JUMP IF BEYOND --TOP-- undefined ^ undefined ^ 047424* 5000 20085 20086 / INPUT PAGE # WAS TOO LARGE. BACKUP TO DESC. CONTAINING 20087 / LAST AVAILABLE PAGE AND GOTO IT... 20088 FIXPTR, AC7777 / BACKUP 1 DESCRIPTOR WORD full ^ undefined ^ 047425* 0000 20089 CIFLP / LP FIELD undefined ^ 047426* 0000 20090 047427* 4774 JMS ADJUS0 / CHECKING RPCUOF FOR <55 OR <2 20091 20092 047430* 1773 TAD RPCUBK / CURRENT HDR # 20093 047431* 7421 MQL 20094 AC7776 / FC TO SET SCTOP AND SCBOT undefined ^ 047432* 0000 20095 047433* 1772 TAD RPCUOF / IDENTIFIES CURRENT BLOCK 20096 047434* 4771 JMS DSKCAL / SET TO DESIRED BLOCK/ HDR # 20097 XRPRD / GTP ENTRY POINT undefined ^ 047435* 0000 20098 047436* 0000 CDFMYF 20099 20100 AC7777 / FC TO READ A DESC. undefined ^ 047437* 0000 20101 047440* 4771 JMS DSKCAL 20102 XRPRD undefined ^ 047441* 0000 20103 20104 047442* 0000 CDFMYF / BACK TO THIS FIELD 20105 20106 047443* 7421 MQL / SAVE CONTENTS OF DESC. 20107 TAD RULFLG / IF POSITIVE undefined ^ undefined ^ 047444* 1000 20108 047445* 7710 SPA CLA / LOOKING FOR PAGE 20109 JMP TSTRUL / ELSE LOOKING FOR RULER undefined ^ undefined ^ 047446* 5000 20110 20111 047447* 7701 ACL / RETRIEVE CURRENT DESC. WRD 20112 047450* 0370 AND (37) / SAVE # OF PAGES IN THIS BLOCK 20113 047451* 7650 SNA CLA / SKIP IF PAGES IN THIS BLOCK 20114 JMP FIXPTR / NO PAGES, FIND LAST ONE undefined ^ undefined ^ 047452* 5000 20115 20116 047453* 1773 TAD RPCUBK 20117 DCA CUBKTMP / SAVE HDR ID # FOR LAST PG undefined ^ undefined ^ 047454* 3000 20118 047455* 1772 TAD RPCUOF 20119 DCA CUOFTMP / AND OFFSET FOR LAST PG undefined ^ undefined ^ 047456* 3000 20120 20121 AC7777 undefined ^ 047457* 0000 20122 DCA RULFLG / INDICATE PG FOUND, LOOK FOR VALID RULER undefined ^ undefined ^ 047460* 3000 20123 JMP FIXPTR undefined ^ undefined ^ 047461* 5000 20124 20125 TSTRUL, ACL / RETRIEVE DESC. full ^ 047462* 7701 20126 047463* 0367 AND (4000) / RULER IN THIS DESC??? 20127 047464* 7650 SNA CLA / SKIP W/ RULER 20128 JMP FIXPTR / BACK UP ANOTHER undefined ^ undefined ^ 047465* 5000 20129 20130 047466* 1772 TAD RPCUOF / CURRENT OFFSET FOR RULER 20131 047467* 3766 DCA RPMTRL / LATEST RULER 20132 047470* 1772 TAD RPCUOF 20133 047471* 3765 DCA RPMTBK / SAME AS PREVIOUS RULER 20134 20135 047472* 1773 TAD RPCUBK / HDR ID # FOR RULER 20136 047473* 3764 DCA RPRLHN / LATEST RULER HDR 20137 047474* 1773 TAD RPCUBK 20138 047475* 3763 DCA RPPRRL / PREVIOUS RULER HDR 20139 20140 TAD CUBKTMP undefined ^ undefined ^ 047476* 1000 20141 047477* 3773 DCA RPCUBK / RESTORE PAGE HDR ID # 20142 TAD CUOFTMP undefined ^ undefined ^ 047500* 1000 20143 047501* 3772 DCA RPCUOF / AND PAGE OFFSET 20144 20145 047502* 1773 TAD RPCUBK / HDR ID # 20146 047503* 7421 MQL 20147 AC7776 / F.C. TO SET SCTOP & SCBOT undefined ^ 047504* 0000 20148 047505* 1772 TAD RPCUOF / BLK CONTAINING DESIRED PG 20149 047506* 4771 JMS DSKCAL 20150 XRPRD / GTP ENTRY PT undefined ^ 047507* 0000 20151 047510* 0000 CDFMYF 20152 20153 047511* 4523 OVLJMP; OVRPRL / REPAINT SCREEN--THEN EXIT BACK TO EDITOR 047512* 5201 20154 20155 RULFLG, 0 / + = LOOKING FOR LAST PAGE full ^ 047513* 0000 20156 / - = LOOKING FOR VALID RULER 20157 CUBKTMP, 0 / PAGE HDR ID # TMP STORAGE full ^ 047514* 0000 20158 CUOFTMP, 0 / PAGE OFFSET TMP STORAGE full ^ 047515* 0000 20159 20160 20161 RPOVRT, DCA RPPG0 / CLEAR ---TOP--- FLAG TO RESUME full ^ 047516* 3775 20162 047517* 4523 OVLJMP;OVRPZZ / RESUME EDIT AT ---TOP--- /M158 047520* 5443 20163 20164 20165 ER7BUF, -1 full ^ 047521* 7777 20166 047522* 0000 ZBLOCK 1 20167 20168 CHKAGAIN, / input wasn't RETURN key full ^ 20169 047523* 4762 JMS BEEPER / inform the user 20170 JMP RPCHKREPLY / do until RETURN key undefined ^ undefined ^ 047524* 5000 20171 20172 X=. / INDICATE FIRST FREE LOCATION ON PAGE 20173 /--------------------- 20174 047562* 0324 PAGE 047563* 6735 047564* 6537 047565* 3363 047566* 5162 047567* 4000 047570* 0037 047571* 5014 047572* 2756 047573* 0761 047574* 3544 047575* 6736 047576* 6744 047577* 0000 20175 20176 MER7B, (0) full ^ 047600* 7777 20177 IFDEF ENGLSH < 20178 TEXT '^PCONTAINED IN THIS DOCUMENT, OR ' / 1517 20179 *.-1 / 1717 20180 TEXT '^P&YOU MAY USE &GOLD !&BOT !&DOCMT OR &GOLD !&ADVANCE TO UPDATE ' 20181 *.-1 20182 TEXT '^PTHE RANGE OF PAGES FOR THIS DOCUMENT. ' / 2017 20183 *.-1 20184 TEXT '^P&BUT FIRST PRESS !&RETURN TO CONTINUE. ' / 2700 20185 > 20186 20187 IFDEF V30NOR < 20188 TEXT '^PDOKUMENTET. &DU KAN OGS\E BRUKE ' / 1517 20189 *.-1 / 1717 20190 TEXT '^P&GULL !&BUNN EL. &GULL !&FREM FOR \E AJOURF\XRE ' 20191 *.-1 20192 TEXT '^PANTALL SIDER I DETTE DOKUMENTET. ' / 2017 20193 *.-1 20194 TEXT '^P&TRYKK P\E !&RETUR FOR \E FORTSETTE. ' / 2700 20195 > 20196 20197 IFDEF V30SWE < 20198 TEXT '^PSOM FINNS I DETTA DOKUMENT. &DU KAN OCKS\E ANV\DNDA GULD SLUT DOK ' / 1517 20199 *.-1 / 1717 20200 TEXT '^P&ELLER GULD FRAM\ET F\VR ATT \DNDRA ANTAL SIDOR I DETTA ' 20201 *.-1 20202 TEXT '^PDOKUMENT. ' / 2017 20203 *.-1 20204 TEXT '^P&TRYCK F\VRST P\E RETUR F\VR ATT FORTS\DTTA ' / 2700 20205 > 20206 20207 IFDEF SPANISH < /A236 20208 TEXT '^PCONTIEN ESTE DOCUMENTO, O ' / 1517 20209 *.-1 / 1717 20210 TEXT '^P&PUEDE USAR &DORADA !&FINAL !&DOCUMENTO O &DORADA !&ADELANTE PARA ' 20211 *.-1 20212 TEXT 'PONER AL D\MA ' 20213 *.-1 20214 TEXT '^PLAS P\AGINAS PARA ESTE DOCUMENTO SON. ' / 2017 20215 *.-1 20216 TEXT '^P&PERO PRIMERO PULSE !&RETORNO PARA CONTINUAR. ' / 2700 20217 > /A236 20218 20219 IFDEF DUTCH < /A236 20220 TEXT '^P ' / 1517 20221 *.-1 / 1717 20222 TEXT '^P&DEZE FUNCTIE WERKT NIET MET DOCUMENTEN ' 20223 *.-1 20224 TEXT '^PAANGEMAAKT MET VORIGE VERSIES VAN !&WPS. ' 20225 *.-1 20226 TEXT '^P&DRUK OP !&RETURN OM VERDER TE GAAN. ' / 2700 20227 > /A236 20228 20229 IFDEF ITALIAN < 20230 TEXT '^PNUMERO DELLE PAGINE DI CUI \H COMPOSTO IL DOCUMENTO. ' 20231 *.-1 20232 TEXT '^P&OPPURE \H POSSIBILE USARE &ORO !&FINE !&DOCUMEN OPPURE ' 20233 *.-1 20234 TEXT '^P&ORO !&AVANTI PER AGGIORNARE LA NUMERAZIONE DELLE PAGINE. ' 20235 *.-1 20236 TEXT /^P&PRIMA PER\R PREMERE !&RITORNO PER CONTINUARE L'OPERAZIONE./ 20237 > 20238 20239 X=. / INDICATE FIRST FREE LOCATION ON PAGE 20240 20241 20242 /--------------------- 20243 047777* 0000 PAGE 20244 20245 /*************************************************************************** 20246 /**** START OF OVERLAY **** 20247 /*************************************************************************** 20248 20249 RELOC 20250 20251 RELOC OVLAY1 20252 20253 OVRNUM= OVRNUM+200 20254 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 20255 20256 047400* 6400 OVRNUM 20257 20258 OVSSTP= .-OVLAY1+OVRNUM /SETUP COLUMN STRIP PARAMETERS full ^ 20259 20260 JMP ESSSTP undefined ^ undefined ^ 047401* 5000 20261 20262 / ESCLPS COLUMNAR PASTE 20263 / 20264 / 20265 OVCLPS= .-OVLAY1+OVRNUM full ^ 20266 20267 ESCLPS, JMS FNCLLM /FIND THE LIMITS OF THE COLUMN IN WHICH full ^ undefined ^ undefined ^ 047402* 4000 20268 /PASTE 20269 047403* 3777 DCA PSBFOF /CLEAR PASTE FLAG 20270 047404* 4776 JMS SETPST 20271 047405* 1375 TAD (-PSTEBG) /FIRST BLOCK OF PASTE BUFFER ONLY BLOCK? 20272 047406* 1130 TAD PSTBLK 20273 JMP ESCP01 undefined ^ undefined ^ 047407* 5000 20274 20275 / ESCLCT COLUMNAR CUT 20276 / 20277 / 20278 OVCLCT= .-OVLAY1+OVRNUM full ^ 20279 20280 ESCLCT, JMS SETCUT /INITIALIZE COLUMNAR CUT VARIABLES full ^ undefined ^ undefined ^ 047410* 4000 20281 047411* 0000 CDFMYF 20282 047412* 1374 TAD (DCA I CURPTR) /SET FOR CUT NOT COPY 20283 JMP ESCLCX /GO JOIN COMMON CODE /A213 undefined ^ undefined ^ 047413* 5000 20284 /D213 DCA CLCTSW 20285 /D213 OVLJMP /GO DO CUT 20286 /D213 OVDOCC 20287 20288 / ESCLGC COLUMNAR GOLD CUT 20289 / 20290 / 20291 OVCGCT= .-OVLAY1+OVRNUM full ^ 20292 20293 ESCLGC, JMS SETCUT /INITIALIZE COLUMNAR CUT VARIABLES full ^ undefined ^ undefined ^ 047414* 4000 20294 047415* 0000 CDFMYF 20295 047416* 1373 TAD (CLA) /SET TO COPY NOT CUT 20296 ESCLCX, DCA CLCTSW /C213 full ^ 047417* 3772 20297 047420* 4523 OVLJMP /GO DO CUT 20298 OVDOCC undefined ^ 047421* 0000 20299 20300 / CLCTER COLUMNAR CUT ERROR PROCESSING 20301 / 20302 / 20303 20304 CLCTER, CLA full ^ 047422* 7200 20305 047423* 4771 JMS BEEPER /RING DA BELL 20306 047424* 5770 JMP UNSLCT /AND UNSELECT THE TEXT 20307 20308 / FNCLLM FIND COLUMN LIMITS 20309 / 20310 / THIS ROUTINE WILL FIND THE UPPER AND LOWER CHARACTER POSITION 20311 / LIMITS OF A COLUMN; RELATIVE TO THE CURRENT CURSOR POSITION. 20312 / 20313 / INPUTS ARE CURPTR POINTING TO A CHARACTER OR TRAILING TAB FOR THE 20314 / DESIRED COLUMN. 20315 / 20316 20317 FNCLLM, XX /ENTRY POINT full ^ undefined ^ 047425* 0000 20318 20319 FCLM01, BKPSPC /SEARCH BACKWARDS FOR THE BEGINNING OF THE full ^ 047426* 4520 20320 /BEGINNING OF THE COLUMN OR FOR AN INVALID 20321 /CONDITION 20322 JMP FCLM03 /START OF FILE IS LEGAL COLUMN BOUNDARY BUT undefined ^ undefined ^ 047427* 5000 20323 /SHOULD NEVER HAPPEN DUE TO INITIAL RULER 20324 AND P177 /STRIP THE MODE BITS FOR COMPARISONS undefined ^ undefined ^ 047430* 0000 20325 20326 047431* 4500 ZZCASE /MATCH AGAINST SPECIAL CHARACTERS 20327 FCLTB1-1 undefined ^ 047432* 7777 20328 20329 / ECNWLN; FCLM04 /NEW LINE COULD BE COLUMN DELIMITER 20330 / ECNWPG; FCLM07 /NEW PAGE IS COLUMN DELIMITER 20331 / ECNDRL; FCLM06 /END RULER IS COLUMN DELIMITER 20332 / ECTAB; FCLM05 /TAB IS COLUMN DELIMITER 20333 / ECMDFL; FCLM01 /MODIFIED FLAG IS BOGUS CHAR SO SKIP 20334 / 0 20335 20336 AC7777 /NO MATCH SO DECREMENT CURSOR POSITION undefined ^ 047433* 0000 20337 047434* 1136 TAD CURSOR 20338 047435* 7510 SPA /SHOULD NEVER GET BELOW POSITION ZERO 20339 JMP CLCTER /DID GO TO NEGATIVE POSITION SO ERROR undefined ^ undefined ^ 047436* 5000 20340 047437* 3136 DCA CURSOR /SAVE UPDATED CURSOR 20341 JMP FCLM01 /AND TRY AGAIN undefined ^ undefined ^ 047440* 5000 20342 20343 FCLM06, ADVSPC /POSITION BAK AT FIRST CHAR AFTER END RULER/C213 full ^ 047441* 4517 20344 047442* 7000 NOP 20345 047443* 7200 CLA /ELIMINATE UNWANTED CHARACTER VALUE /A213 20346 JMP FCLM08 /C213 undefined ^ undefined ^ 047444* 5000 20347 20348 FCLM04, TAD I CURPTR /CHECK THAT THE NEW LINE IS A HARD RETURN full ^ 047445* 1535 20349 TAD (-ECNWLN) undefined ^ undefined ^ 047446* 1375 20350 047447* 7640 SZA CLA 20351 JMP CLCTER /NOT A CARRIAGE RETURN SO ERROR undefined ^ undefined ^ 047450* 5000 20352 FCLM07, ADVSPC /ADVANCE OVER THE CHARACTER full ^ 047451* 4517 20353 047452* 7000 NOP /SHOULD NEVER HAPPEN BUT REALLY DON'T CARE 20354 AC7777 /BACKUP KEEPING PTRBLK HAPPY undefined ^ 047453* 0000 20355 047454* 4513 CURMOV 20356 047455* 7402 HLT /HAVE ALREADY BEEN AT THIS CHAR SO NO END OF 20357 /FILE IS POSSIBLE. 20358 JMP FCLM02 undefined ^ undefined ^ 047456* 5000 20359 20360 FCLM05, AC7777 /dec cursor pos full ^ undefined ^ 047457* 0000 20361 047460* 1136 TAD CURSOR 20362 047461* 3136 DCA CURSOR 20363 FCLM02, AC0001 /POSITION AT FIRST CHAR IN COLUMN full ^ undefined ^ 047462* 0000 20364 FCLM08, CURMOV /SET CURSOR POSITION /C213 full ^ 047463* 4513 20365 047464* 7000 NOP 20366 20367 FCLM03, CLA /MAKE SURE EVERYTHING OK full ^ 047465* 7200 20368 047466* 1136 TAD CURSOR /AND SEE IF THERE IS A TAB STOP HERE 20369 JMS GTRLCD undefined ^ undefined ^ 047467* 4000 20370 DCA T2 /SAVE RULER CODE undefined ^ undefined ^ 047470* 3000 20371 TAD T2 undefined ^ undefined ^ 047471* 1000 20372 TAD (FCLJTB-1) /BUILD JUMP ADDRESS undefined ^ undefined ^ 047472* 1367 20373 DCA T1 undefined ^ undefined ^ 047473* 3000 20374 TAD I T1 undefined ^ undefined ^ 047474* 1400 20375 DCA T1 undefined ^ undefined ^ 047475* 3000 20376 JMP I T1 /GO DO APPROPRIATE undefined ^ undefined ^ 047476* 5400 20377 20378 / FCLMRJ /"-" DO RIGHT JUSTIFIED 20379 / FCLMRJ /"." DO RIGHT JUSTIFIED 20380 / FCLMRJ /">" DO RIGHT JUSTIFIED 20381 / FCLMLJ /"T" DO LEFT JUSTIFIED 20382 / FCLMLJ /"L" DO LEFT JUSTIFIED 20383 / FCLMRJ /"R" DO RIGHT JUSTIFIED 20384 / FCLMLJ /"D" DO LEFT JUSTIFIED 20385 / FCLMRJ /"J" DO RIGHT JUSTIFIED 20386 / FCLMLJ /"W" DO LEFT JUSTIFIED 20387 / FCLMLJ /"P" DO LEFT JUSTIFIED 20388 / FCLMRJ /"C" DO RIGHT JUSTIFIED 20389 / FCLMLJ /"N" DO LEFT JUSTIFIED 20390 / FCLMRJ /"H" DO RIGHT JUSTIFIED 20391 / FCLMLJ /"F" DO LEFT JUSTIFIED 20392 20393 20394 / FCLMLJ FIND COLUMN LIMITS FOR LEFT JUSTIFIED TAB 20395 / 20396 / BEGIN; 20397 / TEMP:=CLMPLL:=CURSOR; 20398 / WHILE( CURUL[TEMP+1] <> NOSTOP OR 20399 / CURUL[TEMP+1] <> HSTOP OR 20400 / CURUL[TEMP+1] <> CSTOP) TEMP:=TEMP+1; 20401 / CLMPUL:=TEMP; 20402 / END; 20403 / 20404 20405 FCLMLJ, TAD CURSOR /GET CURRENT POSITION full ^ 047477* 1136 20406 047500* 3766 DCA CLMPLL /SAVE AS COLUMN LOWER LIMIT 20407 047501* 1766 TAD CLMPLL /SET UP COUNTER TO FIND UPPER LIMIT 20408 DCA T1 undefined ^ undefined ^ 047502* 3000 20409 20410 FCLLJ1, AC0001 /EXAMINE FOLLOWING TAB STOP full ^ undefined ^ 047503* 0000 20411 TAD T1 undefined ^ undefined ^ 047504* 1000 20412 JMS GTRLCD undefined ^ undefined ^ 047505* 4000 20413 20414 047506* 4500 ZZCASE /MATCH AGAINST NON-TABS 20415 FCLTB2-1 undefined ^ 047507* 7777 20416 20417 / 1; FCLLJ2 /"-" 20418 / 12; FCLLJ2 /"C" 20419 / 14; FCLLJ2 /"H" 20420 / 0 20421 20422 TAD T1 /SAVE UPPER LIMIT undefined ^ undefined ^ 047510* 1000 20423 047511* 3765 DCA CLMPUL 20424 JMP I FNCLLM /DONE! undefined ^ undefined ^ 047512* 5400 20425 20426 / 20427 / 20428 20429 FCLLJ2, ISZ T1 /BUMP TO NEXT POSITION full ^ undefined ^ undefined ^ 047513* 2000 20430 JMP FCLLJ1 /AND TRY NEXT undefined ^ undefined ^ 047514* 5000 20431 20432 20433 / FCLMRJ FIND COLUMN LIMITS FOR RIGHT JUSTIFIED TAB STOP 20434 / 20435 / 20436 / BEGIN; 20437 / TEMP:=CURSOR; 20438 / WHILE( CURUL[TEMP-1] = NOSTOP OR 20439 / CURUL[TEMP-1] = CSTOP OR 20440 / CURUL[TEMP-1] = HSTOP) TEMP:=TEMP-1; 20441 / IF CURUL[TEMP-1] = RIGHT.MARGIN OR 20442 / CURUL[TEMP-1] = RIGHT.JUST.STOP THEN TEMP:=TEMP+1; 20443 / CLMPLL:=TEMP; 20444 / TEMP:=CURSOR-1; 20445 / SEEN.DECIMAL.FLAG=FALSE; 20446 / WHILE( CURUL[TEMP+1] = NOSTOP OR 20447 / CURUL[TEMP+1] = CSTOP OR 20448 / CURUL[TEMP+1] = HSTOP OR 20449 / ( CURUL[TEMP+1 = DECIMAL.STOP AND 20450 / SEEN.DECIMAL.FLAG = FALSE)) 20451 / BEGIN; 20452 / TEMP:=TEMP+1; 20453 / IF CURUL[TEMP] = DECIMAL.STOP THEN 20454 / SEEN.DECIMAL.FLAG = TRUE; 20455 / END; 20456 / CLMPUL:=TEMP; 20457 / END; 20458 / 20459 20460 FCLMRJ, DCA FTHRU /FIRST TIME THRU FLAG full ^ undefined ^ undefined ^ 047515* 3000 20461 047516* 1136 TAD CURSOR /SETUP FOR BACK COUNT 20462 DCA T1 undefined ^ undefined ^ 047517* 3000 20463 FCLRJ1, AC7777 /DECREMENT COUNT full ^ undefined ^ 047520* 0000 20464 TAD T1 /AND CHECK PREVIOUS POSITION undefined ^ undefined ^ 047521* 1000 20465 047522* 7510 SPA /IF IT GOES BELOW ZERO THEN DEEP SHIT 20466 JMP CLCTER /ERROR, ERROR, DIVE! DIVE! DIVE! undefined ^ undefined ^ 047523* 5000 20467 JMS GTRLCD undefined ^ undefined ^ 047524* 4000 20468 TAD (FCLJT3-1) /BUILD PTR TO PROCESSING LOCATION undefined ^ undefined ^ 047525* 1367 20469 DCA T2 undefined ^ undefined ^ 047526* 3000 20470 TAD I T2 undefined ^ undefined ^ 047527* 1400 20471 DCA T2 undefined ^ undefined ^ 047530* 3000 20472 JMP I T2 /AND EXECUTE undefined ^ undefined ^ 047531* 5400 20473 20474 / FCLRJ2 /"-" 20475 / FCLRJ3 /"." 20476 / FCLRJ4 /">" 20477 / FCLRJ3 /"T" 20478 / FCLRJ3 /"L" 20479 20480 / FCLRJ2 /"R" 20481 / FCLRJ3 /"D" 20482 / FCLRJ2 /"J" 20483 / FCLRJ3 /"W" 20484 20485 / FCLRJ3 /"P" 20486 / FCLRJ2 /"C" 20487 / FCLRJ3 /"N" 20488 / FCLRJ2 /"H" 20489 / FCLRJ3 /"F" 20490 20491 20492 20493 FCLRJ4, ISZ FTHRU full ^ undefined ^ undefined ^ 047532* 2000 20494 JMP FCLRJ2 undefined ^ undefined ^ 047533* 5000 20495 AC0001 /INCREMENT POSITION undefined ^ 047534* 0000 20496 20497 FCLRJ3, TAD T1 /SAVE POSITION AS LOWER LIMIT full ^ undefined ^ undefined ^ 047535* 1000 20498 047536* 3766 DCA CLMPLL 20499 AC7777 /STARTING FROM CURSOR POS -1 undefined ^ 047537* 0000 20500 047540* 1136 TAD CURSOR /EXAMINE FOR UPPER LIMIT 20501 DCA T1 undefined ^ undefined ^ 047541* 3000 20502 DCA T3 /CLEAR DECIMAL POINT TAB SEEN FLAG undefined ^ undefined ^ 047542* 3000 20503 FCLRJ5, AC0001 /EXAMINE FOLLOWING TAB STOP full ^ undefined ^ 047543* 0000 20504 TAD T1 undefined ^ undefined ^ 047544* 1000 20505 JMS GTRLCD undefined ^ undefined ^ 047545* 4000 20506 20507 047546* 4500 ZZCASE /MATCH AGAINST NON-TABS 20508 FCLTB3-1 undefined ^ 047547* 7777 20509 20510 / 1; FCLRJ6 /"-" 20511 / 2; FCLRJ7 /"." 20512 / 12; FCLRJ6 /"C" 20513 / 14; FCLRJ6 /"H" 20514 / 0 20515 20516 FCLRJ8, AC0002 full ^ undefined ^ 047550* 0000 20517 TAD T1 /SAVE UPPER LIMIT undefined ^ undefined ^ 047551* 1000 20518 047552* 3765 DCA CLMPUL 20519 JMP I FNCLLM /DONE! undefined ^ undefined ^ 047553* 5400 20520 20521 FTHRU, ZBLOCK 1 full ^ 047554* 0000 20522 X=. 20523 /--------------------- 20524 047565* 3051 PAGE 047566* 3050 047567* 7777 047570* 2547 047571* 0324 047572* 3053 047573* 7200 047574* 3535 047575* 0000 047576* 5316 047577* 3052 20525 20526 / 20527 / 20528 FCLRJ2, AC7777 /DECREMENT POSITION AND TRY AGAIN full ^ undefined ^ 047600* 0000 20529 TAD T1 undefined ^ undefined ^ 047601* 1000 20530 DCA T1 undefined ^ undefined ^ 047602* 3000 20531 AC7777 undefined ^ 047603* 0000 20532 DCA FTHRU undefined ^ undefined ^ 047604* 3000 20533 JMP FCLRJ1 undefined ^ undefined ^ 047605* 5000 20534 20535 FCLRJ7, TAD T3 /FIRST TIME THROUGH? full ^ undefined ^ undefined ^ 047606* 1000 20536 047607* 7440 SZA 20537 JMP FCLRJ8 /NO, FINISH UP undefined ^ undefined ^ 047610* 5000 20538 ISZ T3 /SET FLAG undefined ^ undefined ^ 047611* 2000 20539 20540 FCLRJ6, ISZ T1 /BUMP TO NEXT POSITION full ^ undefined ^ undefined ^ 047612* 2000 20541 JMP FCLRJ5 /AND TRY NEXT undefined ^ undefined ^ 047613* 5000 20542 20543 20544 20545 / GTRLCD GET RULER CODE 20546 / 20547 / THIS ROUTINE IS PASSED A VALUE CORRESPONDING TO A POSITION IN THE 20548 / CURRENTLY ACTIVE RULER. IT RETURNS THE TAB STOP TYPE CODE FOR THE 20549 / DESIGNATED POSITION. 20550 / 20551 / CALL: 20552 / 20553 / (AC := POSITION IN RULER) 20554 / JMS GTRLCD 20555 / 20556 / 20557 20558 GTRLCD, XX /ENTRY POINT full ^ undefined ^ 047614* 0000 20559 047615* 7110 CLL RAR /DIVIDE BY TWO SAVE ODD FLAG 20560 047616* 1377 TAD (CURUL) /BUILD PTR TO RULER CODE 20561 047617* 0000 CDFMYF 20562 DCA GRCTMP /SAVE PTR FOR ACCESS undefined ^ undefined ^ 047620* 3000 20563 TAD I GRCTMP /AND ACCESS RULER undefined ^ undefined ^ 047621* 1400 20564 047622* 7420 SNL /HIGH BYTE OR LOW? 20565 047623* 7002 BSW /HIGH BYTE SO SWAP 20566 AND P77 /MASK CODE undefined ^ undefined ^ 047624* 0000 20567 JMP I GTRLCD /RETURN undefined ^ undefined ^ 047625* 5400 20568 20569 GRCTMP, ZBLOCK 1 full ^ 047626* 0000 20570 20571 / SETCUT SETUP COLUMNAR CUT VARIABLES 20572 / 20573 / 20574 20575 SETCUT, XX /ENTRY POINT full ^ undefined ^ 047627* 0000 20576 047630* 4511 TSTSLT /IN SELECT MODE? 20577 047631* 5776 JMP EIBAD /NO, ERROR! ERROR! THAT DOES NOT COMPUTE! 20578 JMS FNCLLM /GO FIND COLUMN LIMITS undefined ^ undefined ^ 047632* 4000 20579 047633* 1775 TAD CLMPLL /SELECT >= LOWER LIMIT? 20580 047634* 7041 CIA 20581 047635* 1774 TAD SLCRPT 20582 047636* 7710 SPA CLA 20583 JMP CLCTER /NEGATIVE NEGATIVE DIE! undefined ^ undefined ^ 047637* 5000 20584 047640* 1774 TAD SLCRPT /SELECT <=UPPER LIMIT? 20585 047641* 7041 CIA 20586 047642* 1773 TAD CLMPUL 20587 047643* 7710 SPA CLA 20588 JMP CLCTER /NFW BADASS undefined ^ undefined ^ 047644* 5000 20589 047645* 1372 TAD (PSTEBG) /SET BEGINNING BLOCK NUMBER 20590 047646* 3130 DCA PSTBLK 20591 047647* 3771 DCA PSBFOF /CLEAR BUFFER OVERFLOW FLAG 20592 047650* 4770 JMS SETPST /SETUP PASTE BUFFER I/O 20593 JMP I SETCUT /RETURN undefined ^ undefined ^ 047651* 5400 20594 20595 / ESCP01 SETUP PASTE BUFFER FOR PASTE 20596 / 20597 / 20598 20599 ESCP01, SNA CLA full ^ 047652* 7650 20600 JMP ESCP02 /YES undefined ^ undefined ^ 047653* 5000 20601 047654* 1372 TAD (PSTEBG) /SETUP PASTE BUFFER AND READ IN FIRST BLOCK 20602 047655* 3130 DCA PSTBLK 20603 TAD (RXERD) undefined ^ undefined ^ 047656* 1372 20604 047657* 4767 JMS PSTIO 20605 ESCP02, JMS OV2JMP /DO THE PASTE full ^ 047660* 4766 20606 OVDOPS undefined ^ 047661* 0000 20607 20608 / SETUP COLUMN STRIP PARAMETERS 20609 / 20610 / 20611 20612 ESSSTP, JMS SETCUT full ^ undefined ^ undefined ^ 047662* 4000 20613 047663* 5765 JMP OVJRTN 20614 20615 20616 / COLUMNAR CUT SETUP CASE TABLES 20617 / 20618 / 20619 20620 FCLTB1, ECNWLN; FCLM04 /NEW LINE COULD BE COLUMN DELIMITER full ^ undefined ^ 047664* 0000 undefined ^ 047665* 0000 20621 ECNWPG; FCLM07 /NEW PAGE IS COLUMN DELIMITER undefined ^ 047666* 0000 undefined ^ 047667* 0000 20622 ECNDRL; FCLM06 /END RULER IS COLUMN DELIMITER undefined ^ 047670* 0000 undefined ^ 047671* 0000 20623 ECTAB; FCLM05 /TAB IS COLUMN DELIMITER undefined ^ 047672* 0000 undefined ^ 047673* 0000 20624 ECMDFL; FCLM01 /MODIFIED FLAG IS BOGUS CHAR SO SKIP undefined ^ 047674* 0000 undefined ^ 047675* 0000 20625 047676* 0000 0 20626 20627 FCLTB2, 1; FCLLJ2 /"-" full ^ 047677* 0001 undefined ^ 047700* 0000 20628 047701* 0012 12; FCLLJ2 /"C" undefined ^ 047702* 0000 20629 047703* 0014 14; FCLLJ2 /"H" undefined ^ 047704* 0000 20630 047705* 0000 0 20631 20632 FCLTB3, 1; FCLRJ6 /"-" full ^ 047706* 0001 undefined ^ 047707* 0000 20633 047710* 0002 2; FCLRJ7 /"." undefined ^ 047711* 0000 20634 047712* 0012 12; FCLRJ6 /"C" undefined ^ 047713* 0000 20635 047714* 0014 14; FCLRJ6 /"H" undefined ^ 047715* 0000 20636 047716* 0000 0 20637 20638 / COLUMNAR CUT SETUP JUMP TABLES 20639 / 20640 / 20641 20642 FCLJTB, FCLMRJ /"-" DO RIGHT JUSTIFIED full ^ undefined ^ 047717* 0000 20643 FCLMRJ /"." DO RIGHT JUSTIFIED undefined ^ 047720* 0000 20644 FCLMRJ /">" DO RIGHT JUSTIFIED undefined ^ 047721* 0000 20645 FCLMLJ /"T" DO LEFT JUSTIFIED undefined ^ 047722* 0000 20646 FCLMLJ /"L" DO LEFT JUSTIFIED undefined ^ 047723* 0000 20647 FCLMRJ /"R" DO RIGHT JUSTIFIED undefined ^ 047724* 0000 20648 FCLMLJ /"D" DO LEFT JUSTIFIED undefined ^ 047725* 0000 20649 FCLMRJ /"J" DO RIGHT JUSTIFIED undefined ^ 047726* 0000 20650 FCLMLJ /"W" DO LEFT JUSTIFIED undefined ^ 047727* 0000 20651 FCLMLJ /"P" DO LEFT JUSTIFIED undefined ^ 047730* 0000 20652 FCLMRJ /"C" DO RIGHT JUSTIFIED undefined ^ 047731* 0000 20653 FCLMLJ /"N" DO LEFT JUSTIFIED undefined ^ 047732* 0000 20654 FCLMRJ /"H" DO RIGHT JUSTIFIED undefined ^ 047733* 0000 20655 FCLMLJ /"F" DO LEFT JUSTIFIED undefined ^ 047734* 0000 20656 20657 FCLJT3, FCLRJ2 /"-" full ^ undefined ^ 047735* 0000 20658 FCLRJ3 /"." undefined ^ 047736* 0000 20659 FCLRJ4 /">" undefined ^ 047737* 0000 20660 FCLRJ3 /"T" undefined ^ 047740* 0000 20661 FCLRJ3 /"L" undefined ^ 047741* 0000 20662 20663 FCLRJ2 /"R" undefined ^ 047742* 0000 20664 FCLRJ3 /"D" undefined ^ 047743* 0000 20665 FCLRJ2 /"J" undefined ^ 047744* 0000 20666 FCLRJ3 /"W" undefined ^ 047745* 0000 20667 20668 FCLRJ3 /"P" undefined ^ 047746* 0000 20669 FCLRJ2 /"C" undefined ^ 047747* 0000 20670 FCLRJ3 /"N" undefined ^ 047750* 0000 20671 FCLRJ2 /"H" undefined ^ 047751* 0000 20672 FCLRJ3 /"F" undefined ^ 047752* 0000 20673 20674 047765* 5122 PAGE 047766* 5124 047767* 5030 047770* 5316 047771* 3052 047772* 0000 047773* 3051 047774* 1353 047775* 3050 047776* 0400 047777* 6335 20675 RELOC 20676 20677 /*************************************************************************** 20678 /**** START OF OVERLAY **** 20679 /*************************************************************************** 20680 20681 RELOC 20682 20683 RELOC OVLAY1 20684 20685 OVRNUM= OVRNUM+200 20686 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 20687 20688 047400* 6600 OVRNUM 20689 20690 CLCTDN= X5 undefined ^ full ^ 20691 TBCTFL= X4 undefined ^ full ^ 20692 20693 / OVDOER DO COLUMN ERROR HANDLING 20694 / 20695 / 20696 OVDOER= .-OVLAY1+OVRNUM full ^ 20697 20698 CCDOER, JMP DOCCER full ^ undefined ^ undefined ^ 047401* 5000 20699 20700 20701 / ESDOCC DO COLUMN CUT/COPY 20702 / 20703 / 20704 OVDOCC= .-OVLAY1+OVRNUM full ^ 20705 20706 ESDOCC, TAD CLCTSW /SET FOR CUT OR COPY full ^ 047402* 1777 20707 DCA CONCTC /CUTTING CHARACTERS undefined ^ undefined ^ 047403* 3000 20708 20709 / 20710 / THE LOCATION CONCTC IS LOADED WITH A DCA I CURPTR OR 20711 / A CLA DEPENDING ON WHETHER THE TEXT IS TO BE CUT TO 20712 / THE PASTE BUFFER OR COPIED. 20713 / 20714 DCA CLCTDN /CLEAR DONE FLAG undefined ^ undefined ^ 047404* 3000 20715 20716 OVDCC5= .-OVLAY1+OVRNUM full ^ 20717 20718 DOCC05, TAD (ECTMRK) /MARK THE BEGINNING OF THE COLUMN full ^ undefined ^ undefined ^ 047405* 1376 20719 047406* 4775 JMS INSERT 20720 DCA TBCTFL /CLEAR TAB CUT FLAG undefined ^ undefined ^ 047407* 3000 20721 047410* 4506 ADVPTR /SKIP OVER THE MARK 20722 JMP DOC1ER /ERROR PREMATURE EOF undefined ^ undefined ^ 047411* 5000 20723 TAD (-ECSLPT) /IS IT A SELECT POINT AT BEGINNING OF COLUMN undefined ^ undefined ^ 047412* 1376 20724 047413* 7640 SZA CLA 20725 JMP DOCC24 /NO GO PROCESS undefined ^ undefined ^ 047414* 5000 20726 ISZ CLCTDN /YES, SO MARK LAST COLUMN undefined ^ undefined ^ 047415* 2000 20727 047416* 3535 DCA I CURPTR /CLEAR IT OUT OF THE TEXT BUFFER 20728 047417* 4507 BKPPTR /KILL THE MARKER 20729 047420* 7402 HLT 20730 047421* 7200 CLA 20731 047422* 3535 DCA I CURPTR 20732 047423* 4514 SLNMOD /REJUSTIFY THE LINE 20733 047424* 4774 JMS REJUST 20734 JMP DOCC05 /AND START PROCESSING AT THE BEGINNING OF undefined ^ undefined ^ 047425* 5000 20735 /THE COLUMN 20736 DOCC24, TAD I CURPTR full ^ 047426* 1535 20737 JMP DOCC23 undefined ^ undefined ^ 047427* 5000 20738 20739 DOCC01, ADVSPC /FORWARD SPACE UNTIL AN END OF COLUMN full ^ 047430* 4517 20740 /DELIMITER IS FOUND 20741 JMP DOCC06 /END OF FILE - TREAT AS END OF LINE /C218 undefined ^ undefined ^ 047431* 5000 20742 DOCC23, AND P177 /STRIP MODE BITS full ^ undefined ^ undefined ^ 047432* 0000 20743 20744 047433* 4500 ZZCASE /MATCH AGAINST DELIMITERS 20745 DCCTB1-1 undefined ^ 047434* 7777 20746 20747 / ECNWLN; DOCC03 /NEW LINE COULD BE 20748 / ECNWPG; DOC1ER /NEW PAGE HERE IS ERROR 20749 / ECSTRL; DOC1ER /START RULER ALWAYS ERROR 20750 / ECTAB; DOCC02 /TAB IS GOOD BOY 20751 / ECMDFL; DOCC01 /SKIP MODIFIED FLAG 20752 / 0 20753 20754 047435* 2136 ISZ CURSOR /BUMP CURSOR COUNT 20755 JMP DOCC01 /AND TRY NEXT CHAR undefined ^ undefined ^ 047436* 5000 20756 20757 DOCC03, TAD I CURPTR /CHECK EOL CHAR full ^ 047437* 1535 20758 TAD (-ECNWLN) /HARD RETURN BONAFIDE undefined ^ undefined ^ 047440* 1376 20759 047441* 7450 SNA 20760 JMP DOCC02 /GOOD BOY GO CUT undefined ^ undefined ^ 047442* 5000 20761 TAD (ECNWLN-ECSLPT) /SELECT POINT? undefined ^ undefined ^ undefined ^ undefined ^ 047443* 1376 20762 047444* 7640 SZA CLA 20763 JMP DOC1ER /NOPE ERROR ERROR undefined ^ undefined ^ 047445* 5000 20764 047446* 3535 DCA I CURPTR /DELETE SELECT POINT 20765 047447* 3136 DCA CURSOR /RESET POINTER /A201 20766 ISZ CLCTDN /SET DONE FLAG undefined ^ undefined ^ 047450* 2000 20767 JMP DOCC01 /AND FETCH NEXT CHAR undefined ^ undefined ^ 047451* 5000 20768 20769 DOCC02, CDFMYF full ^ 047452* 0000 20770 047453* 1136 TAD CURSOR /CHECK POSITION AGAINST UPPER LIMIT 20771 047454* 7041 CIA 20772 047455* 1773 TAD CLMPUL 20773 047456* 7710 SPA CLA /IF CLMPUL >= CURSOR THEN OK 20774 JMP DOC1ER /ERROR YOU GRAVY SUCKING PIG undefined ^ undefined ^ 047457* 5000 20775 047460* 4772 JMS LODCHR /GET EOC CHAR 20776 047461* 7402 HLT /EOF CAN'T BE HERE 20777 TAD (-ECTAB) /IF TAB DO CUT OPERATION undefined ^ undefined ^ 047462* 1376 20778 047463* 7640 SZA CLA 20779 JMP DOCC06 /DON'T CUT HARD RETURN undefined ^ undefined ^ 047464* 5000 20780 JMS CUTNOT /CUT OR COPY undefined ^ undefined ^ 047465* 4000 20781 ISZ TBCTFL /SET EOC TAB CUT FLAG undefined ^ undefined ^ 047466* 2000 20782 20783 DOCC06, TAD (ECTMRK) /MARK END OF COLUMN full ^ undefined ^ undefined ^ 047467* 1376 20784 047470* 4775 JMS INSERT 20785 20786 DOCC09, BKPPTR /FIND BEGINNING OF COLUMN MARK full ^ 047471* 4507 20787 047472* 7402 HLT /CAN'T HAPPEN UNLESS TOTALLY CORRUPTED 20788 TAD (-ECTMRK) /FOUND MARKER? undefined ^ undefined ^ 047473* 1376 20789 047474* 7640 SZA CLA 20790 JMP DOCC09 /NO, PERSEVERE THEN undefined ^ undefined ^ 047475* 5000 20791 20792 TAD TBCTFL /CHECK FOR A TAB CUT? undefined ^ undefined ^ 047476* 1000 20793 047477* 7640 SZA CLA 20794 JMP DOCC07 /YES EVERYTHING IS HUNKY DORY undefined ^ undefined ^ 047500* 5000 20795 20796 DOCC19, BKPPTR /SEE IF PREVIOUS TAB TO CUT full ^ 047501* 4507 20797 JMP DOCC08 /NO, NEVER GETS HERE ANYWAY undefined ^ undefined ^ 047502* 5000 20798 047503* 4500 ZZCASE 20799 DCCTB2-1 undefined ^ 047504* 7777 20800 20801 / ECTAB; DOCC20 /YES GO DO IT 20802 / ECNWLN; DOCC08 20803 / ECNWPG; DOCC08 20804 / ECNDRL; DOCC08 20805 / 0 20806 JMP DOCC19 undefined ^ undefined ^ 047505* 5000 20807 20808 DOCC20, JMS CUTNOT /CUT OR COPY full ^ undefined ^ undefined ^ 047506* 4000 20809 20810 DOCC08, ADVPTR /FIND THE MARK AGAIN full ^ 047507* 4506 20811 047510* 7402 HLT 20812 TAD (-ECTMRK) undefined ^ undefined ^ 047511* 1376 20813 047512* 7640 SZA CLA 20814 JMP DOCC08 undefined ^ undefined ^ 047513* 5000 20815 20816 DOCC07, DCA I CURPTR /KILL THE MARKER full ^ 047514* 3535 20817 20818 DOCC10, ADVPTR /GET CHARACTER full ^ 047515* 4506 20819 047516* 7402 HLT /NO WAY 20820 TAD (-ECTMRK) /END OF COLUMN? undefined ^ undefined ^ 047517* 1376 20821 047520* 7650 SNA CLA 20822 JMP DOCC11 /YES, GO FINISH UP THE COLUMN undefined ^ undefined ^ 047521* 5000 20823 047522* 1535 TAD I CURPTR /REFETCH CHAR 20824 DCA T1 /SAVE CHAR undefined ^ undefined ^ 047523* 3000 20825 JMS CUTNOT /CUT OR COPY undefined ^ undefined ^ 047524* 4000 20826 TAD T1 /GET CHAR undefined ^ undefined ^ 047525* 1000 20827 JMS PUTPST /PUT IT TO PASTE BUFFER undefined ^ undefined ^ 047526* 4000 20828 JMP DOCC10 /DO NEXT CHARACTER undefined ^ undefined ^ 047527* 5000 20829 JMP DNCCOV /BUFFER OVERFLOW GO CLEAN UP undefined ^ undefined ^ 047530* 5000 20830 20831 20832 /D203 OVDC11= .-OVLAY1+OVRNUM 20833 20834 DOCC11, DCA I CURPTR /KILL END MARKER full ^ 047531* 3535 20835 20836 OVDC12= .-OVLAY1+OVRNUM /A203 full ^ 20837 20838 DOCC12, TAD (ECNWLN) /PUT COLUMN MARKER IN PASTE BUFFER /C203 full ^ undefined ^ undefined ^ 047532* 1376 20839 JMS PUTPST undefined ^ undefined ^ 047533* 4000 20840 047534* 7610 SKP CLA /PUT AWAY OK SKIP ERROR RETURN 20841 JMP DNCCOV /BUFFER OVERFLOW GO CLEAN UP undefined ^ undefined ^ 047535* 5000 20842 047536* 1171 TAD LINE23 /SETUP AND REJUSTIFY THE LINE 20843 047537* 3135 DCA CURPTR 20844 047540* 3136 DCA CURSOR 20845 047541* 4514 SLNMOD 20846 047542* 4774 JMS REJUST 20847 047543* 7200 CLA /SEE IF THAT WAS LAST COLUMN 20848 TAD CLCTDN undefined ^ undefined ^ 047544* 1000 20849 047545* 7640 SZA CLA 20850 JMP DONCCT /YES, HURRAY!!!!! undefined ^ undefined ^ 047546* 5000 20851 047547* 4771 JMS OV2JMP 20852 OVDCEL undefined ^ 047550* 0000 20853 20854 X=. 20855 /--------------------- 20856 20857 047571* 5124 PAGE 047572* 4241 047573* 3051 047574* 2400 047575* 2000 047576* 0000 047577* 3053 20858 20859 20860 / DOC1ER ERROR HANDLING AFTER COLUMN FOUND 20861 / 20862 / 20863 20864 DOC1ER, TAD LINE23 /SEARCH FOR THE MARKER TO DELETE full ^ 047600* 1171 20865 047601* 3135 DCA CURPTR /FROM THE BEGINNING OF THE LINE 20866 047602* 3136 DCA CURSOR 20867 047603* 7410 SKP /DON'T FORWARD SPACE THE FIRST TIME 20868 20869 DOC1E1, AC0001 /SEARCH FOR MARKER full ^ undefined ^ 047604* 0000 20870 047605* 4513 CURMOV 20871 047606* 7402 HLT /EOF BEFORE MARKER FOUND MEANS 20872 /CATASTROPHIC DOCUMENT FAILURE 20873 047607* 1535 TAD I CURPTR 20874 TAD (-ECTMRK) /FOUND? undefined ^ undefined ^ 047610* 1377 20875 047611* 7640 SZA CLA 20876 JMP DOC1E1 /NO, TRY NEXT undefined ^ undefined ^ 047612* 5000 20877 20878 047613* 3535 DCA I CURPTR /DELETE MARK 20879 047614* 4514 SLNMOD /REJUSTIFY THE LINE 20880 047615* 4776 JMS REJUST 20881 20882 20883 / DOCERR ERROR FINISH UP HANDLING 20884 / 20885 / 20886 20887 DOCCER, JMS BEEPER /RIND DA BELL full ^ 047616* 4775 20888 JMS PUTPST /CLOSE PASTE BUFFER undefined ^ undefined ^ 047617* 4000 20889 047620* 7000 NOP 20890 TAD (RXEWT+2000) undefined ^ undefined ^ 047621* 1374 20891 047622* 4773 JMS PSTIO 20892 047623* 4514 SLNMOD 20893 TAD CLCTDN /CHECK IF SELECT FOUND undefined ^ undefined ^ 047624* 1000 20894 047625* 7650 SNA CLA 20895 047626* 5772 JMP UNSLCT /NO SO GO FIND IT 20896 047627* 3133 DCA EDMODE /CLEAR MODES 20897 047630* 5771 JMP EIBAD /AND LEAVE 20898 20899 20900 / DNCCOV COLUMN CUT ABORTED DUT TO OVERFLOW HANDLING 20901 / 20902 / 20903 20904 DNCCOV, AC0001 /SEARCH FOR SELECT POINT AND MARKER full ^ undefined ^ 047631* 0000 20905 047632* 4513 CURMOV 20906 047633* 7402 HLT /BETTER NOT FIND EOF 20907 047634* 1535 TAD I CURPTR 20908 TAD (-ECTMRK) /MARKER? undefined ^ undefined ^ 047635* 1377 20909 047636* 7450 SNA 20910 JMP DNCOV1 /YES DELETE IT undefined ^ undefined ^ 047637* 5000 20911 TAD (ECTMRK-ECSLPT) /SELECT POINT? undefined ^ undefined ^ undefined ^ undefined ^ 047640* 1377 20912 047641* 7440 SZA 20913 JMP DNCCOV /NO, TRY NEXT CHAR undefined ^ undefined ^ 047642* 5000 20914 20915 047643* 3535 DCA I CURPTR /DELETE SELECT MARK 20916 047644* 4775 JMS BEEPER /SIGNAL ERROR 20917 JMP DNCCT1 /GO TERMINATE CUT undefined ^ undefined ^ 047645* 5000 20918 20919 DNCOV1, DCA I CURPTR /DELETE MARKER full ^ 047646* 3535 20920 047647* 4514 SLNMOD /REJUSTIFY LINE 20921 047650* 4776 JMS REJUST 20922 JMP DNCCOV /SEARCH FOR SELECT POINT undefined ^ undefined ^ 047651* 5000 20923 20924 / DONCCT DONE COLUMN CUT HANDLING 20925 / 20926 / 20927 DONCCT, JMS PUTPST /PUT TERMINATOR BYTE INTO BUFFER full ^ undefined ^ undefined ^ 047652* 4000 20928 047653* 7000 NOP /IGNORE OVERFLOW 20929 TAD (RXEWT+2000) /WRITE OUT FINAL BLOCK undefined ^ undefined ^ 047654* 1374 20930 047655* 4773 JMS PSTIO 20931 20932 DNCCT1, TAD LINE23 /RESET POINTERS full ^ 047656* 1171 20933 047657* 3135 DCA CURPTR 20934 047660* 3136 DCA CURSOR 20935 047661* 3133 DCA EDMODE /RESET MODE 20936 047662* 4514 SLNMOD /REJUSTIFY LINE 20937 047663* 4776 JMS REJUST 20938 047664* 5770 JMP EIFIX /CONTINUE PROCESSING 20939 20940 / PUTPST WRITE TO PASTE BUFFER 20941 / 20942 / THIS ROUTINE TAKES CHARACTERS PASSED IN THE AC AND PUTS THEM IN 20943 / THE PASTE DISK BUFFER. WHEN THE BUFFER IS FULL IT WRITES THE 20944 / BUFFER TO DISK. WHEN THE LAST ALLOCATED DISK BLOCK IS WRITTEN 20945 / IT SETS THE CUT OVERFLOW FLAG AND TAKES A SKIP RETURN. 20946 / 20947 / CALL: 20948 / 20949 / JMS PUTPST (AC := CHARACTER TO WRITEOUT) 20950 / 20951 / 20952 / 20953 / RETURNS WITH AC:=0 IN ALL CASES 20954 / 20955 PUTPST, XX /ENTRY POINT full ^ undefined ^ 047665* 0000 20956 CDFBUF /SET TO BUFFER FIELD undefined ^ 047666* 0000 20957 047667* 3531 DCA I PSTPTR /PUT CHARACTER IN BUFFER 20958 047670* 2131 ISZ PSTPTR /BUMP PTR AND CHECK FOR BLOCK FULL 20959 JMP I PUTPST /BLOCK NOT FULL SO RETURN DIRECTLY undefined ^ undefined ^ 047671* 5400 20960 TAD (RXEWT+2000) /BLOCK I/O WRITE CODE undefined ^ undefined ^ 047672* 1374 20961 047673* 4773 JMS PSTIO /PERFORM WRITE TO DISK 20962 047674* 2130 ISZ PSTBLK /INCREMENT BLOCK NO 20963 047675* 1130 TAD PSTBLK /CHECK FOR END OF ALLOCATED BLOCKS 20964 047676* 1367 TAD (-PSTEND) /FOR PASTE BUFFER 20965 047677* 7640 SZA CLA /END OF ALLOCATION? 20966 JMP I PUTPST /NO, SO STRAIGHT RETURN undefined ^ undefined ^ 047700* 5400 20967 AC7777 /EOA FOR PASTE BUFFER undefined ^ 047701* 0000 20968 047702* 3766 DCA PSBFOF /SET PASTE BUFFER OVERFLOW FLAG 20969 ISZ PUTPST /AND TAKE A SKIP RETURN undefined ^ undefined ^ 047703* 2000 20970 JMP I PUTPST /B-B undefined ^ undefined ^ 047704* 5400 20971 20972 / CUTNOT CUT OR COPY A CHARACTER 20973 / 20974 / 20975 20976 CUTNOT, XX full ^ undefined ^ 047705* 0000 20977 CONCTC, HLT /THIS LOCATION HAS EITHER A DCA I CURPTR full ^ 047706* 7402 20978 /OR A CLA WRITTEN IN UPON ENTRY. THE 20979 /DCA I CURPTR WILL CUT THE TAB. THE CLA 20980 /DOES NOTHING. 20981 JMP I CUTNOT undefined ^ undefined ^ 047707* 5400 20982 20983 20984 / CASE TABLES FOR COLUMNAR CUT 20985 / 20986 / 20987 20988 DCCTB1, ECNWLN; DOCC03 /NEW LINE COULD BE full ^ undefined ^ 047710* 0000 undefined ^ 047711* 0000 20989 ECNWPG; DOC1ER /NEW PAGE HERE IS ERROR undefined ^ 047712* 0000 undefined ^ 047713* 0000 20990 ECSTRL; DOC1ER /START RULER ALWAYS ERROR undefined ^ 047714* 0000 undefined ^ 047715* 0000 20991 ECTAB; DOCC02 /TAB IS GOOD BOY undefined ^ 047716* 0000 undefined ^ 047717* 0000 20992 ECMDFL; DOCC01 /SKIP MODIFIED FLAG undefined ^ 047720* 0000 undefined ^ 047721* 0000 20993 047722* 0000 0 20994 20995 DCCTB2, ECTAB; DOCC20 /YES GO DO IT full ^ undefined ^ 047723* 0000 undefined ^ 047724* 0000 20996 ECNWLN; DOCC08 undefined ^ 047725* 0000 undefined ^ 047726* 0000 20997 ECNWPG; DOCC08 undefined ^ 047727* 0000 undefined ^ 047730* 0000 20998 ECNDRL; DOCC08 undefined ^ 047731* 0000 undefined ^ 047732* 0000 20999 047733* 0000 0 21000 21001 X=. 21002 /--------------------- 21003 21004 047766* 3052 PAGE 047767* 7742 047770* 0401 047771* 0400 047772* 2547 047773* 5030 047774* 2000 047775* 0324 047776* 2400 047777* 0000 21005 21006 21007 /*************************************************************************** 21008 /**** START OF OVERLAY **** 21009 /*************************************************************************** 21010 21011 OVRNUM=OVRNUM+200 21012 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 21013 21014 RELOC 21015 RELOC OVLAY1 21016 047400* 7000 OVRNUM 21017 21018 / BEGIN HELP OVERLAY........ 21019 OVHELP= .-OVLAY1+OVRNUM full ^ 21020 JMP OVHLP1 / CALL CLEAR SCREEN AND SAVE MENU DATA /A185 undefined ^ undefined ^ 047401* 5000 21021 21022 / 21023 / Moved here on edit 225 for space reasons 21024 / 21025 OVSWAP= .-OVLAY1+OVRNUM full ^ 21026 JMP XVSWAP / Call Gold swap routine undefined ^ undefined ^ 047402* 5000 21027 21028 OVTIME= .-OVLAY1+OVRNUM full ^ 21029 JMP XVTIME undefined ^ undefined ^ 047403* 5000 21030 21031 21032 /D185 OVHLP1= .-OVLAY1+OVRNUM / --OVERLAY ENTRY POINT-- 21033 21034 / OVERLAY HELP EDIT 21035 21036 OVHLP0, CIFMNU full ^ undefined ^ 047404* 0000 21037 JMS I MNUCAL / PRINT HELP MENU undefined ^ undefined ^ 047405* 4400 21038 DLHLP0 / BLOCK NUM ARG.. undefined ^ 047406* 0000 21039 JMP HLPBKC / SKIP INC FIRST TIME AND DISPLAY undefined ^ undefined ^ 047407* 5000 21040 21041 HLPADV, TAD HLPSPC / GET SPACE CHAR full ^ undefined ^ undefined ^ 047410* 1000 21042 JMS HLPDP0 / PRINT IT undefined ^ undefined ^ 047411* 4000 21043 ISZ NOWPTR undefined ^ undefined ^ 047412* 2000 21044 JMP HLPBKC / PRINT '*' undefined ^ undefined ^ 047413* 5000 21045 21046 / BACKUP POINTER 21047 21048 HLPBAK, TAD HLPSPC / GET SPACE CHAR full ^ undefined ^ undefined ^ 047414* 1000 21049 JMS HLPDP0 / PRINT IT undefined ^ undefined ^ 047415* 4000 21050 047416* 7240 CLA CMA / -1 FOR BACKUP 21051 HLPBKC, TAD NOWPTR full ^ undefined ^ undefined ^ 047417* 1000 21052 047420* 7450 SNA / BEG OF SCREEN 21053 JMP HLPDST / YES IS OK undefined ^ undefined ^ 047421* 5000 21054 047422* 7510 SPA / IS IT BEFORE 1ST COMMENT 21055 JMP HLPSTZ / YES SET TO LAST undefined ^ undefined ^ 047423* 5000 21056 TAD HLPNMX / CHECK END (-HLPMAX) undefined ^ undefined ^ 047424* 1000 21057 047425* 7510 SPA / PAST LAST? 21058 HLPSTZ, TAD HLPMAX / YES RESET full ^ undefined ^ undefined ^ 047426* 1000 21059 HLPDST, DCA NOWPTR / SET POINTER full ^ undefined ^ undefined ^ 047427* 3000 21060 TAD HLPCSR / GET CURSOR CHAR undefined ^ undefined ^ 047430* 1000 21061 JMS HLPDP0 / PRINT IT undefined ^ undefined ^ 047431* 4000 21062 21063 HLPNXT, GETINP / GET A CHAR full ^ 047432* 4502 21064 047433* 7450 SNA / IS=0 21065 JMP HLPNXT / YES MAY BE NULL FROM PRINT SCREEN undefined ^ undefined ^ 047434* 5000 21066 TAD (-EDHELP) / =HELP undefined ^ undefined ^ 047435* 1377 21067 047436* 7450 SNA 21068 JMP HLPHLP / IS HELP MENU 2ND LEVEL undefined ^ undefined ^ 047437* 5000 21069 TAD (-EDADVN+EDHELP)/ ADVANCE CHAR undefined ^ undefined ^ undefined ^ undefined ^ 047440* 1377 21070 047441* 7450 SNA 21071 JMP HLPADV / IS ADVANCE undefined ^ undefined ^ 047442* 5000 21072 TAD (-EDBKUP+EDADVN)/ CHECK BACKUP undefined ^ undefined ^ undefined ^ undefined ^ 047443* 1377 21073 047444* 7450 SNA 21074 JMP HLPBAK / IS BACKUP PTR undefined ^ undefined ^ 047445* 5000 21075 21076 IFDEF HELPDO < 21077 TAD (-EDDO+EDBKUP) / ****UPPER IS TEMP****IS DO IT COMMAND 21078 SNA 21079 JMP HLPDO / YES EXEC COMMAND 21080 TAD (-EDNWLN+EDDO) / IS RETURN 21081 > / END IFDEF HELPDO 21082 21083 IFNDEF HELPDO < 21084 TAD (-EDNWLN+EDBKUP) undefined ^ undefined ^ undefined ^ undefined ^ 047446* 1377 21085 > / END IFNDEF HELPDO 21086 21087 047447* 7450 SNA 21088 JMP HLPRET / RETURN TO EDIT MODE undefined ^ undefined ^ 047450* 5000 21089 TAD (-EDMENU+EDNWLN)/ GOLD MENU? undefined ^ undefined ^ undefined ^ undefined ^ 047451* 1377 21090 047452* 7650 SNA CLA 21091 JMP HLPRET / RETURN TO EDIT MODE undefined ^ undefined ^ 047453* 5000 21092 047454* 4776 JMS BUZZER / ILLEGAL CHAR 21093 JMP HLPNXT / GET ANOTHER CHAR undefined ^ undefined ^ 047455* 5000 21094 21095 / SET UP LINE AND COL PRINT POSITION 21096 21097 HLPDP0, 0 full ^ 047456* 0000 21098 DCA HLPCHR / SAVE CHAR TO BE DISPLAYED undefined ^ undefined ^ 047457* 3000 21099 TAD NOWPTR / GET POSITION undefined ^ undefined ^ 047460* 1000 21100 DCA HLPTM1 / SAVE POSITION PTR undefined ^ undefined ^ 047461* 3000 21101 DCA COLCNT / INIT COL PTR undefined ^ undefined ^ 047462* 3000 21102 DCA HLPRW1 / INIT ROW PTR undefined ^ undefined ^ 047463* 3000 21103 DCA COLNUM / TAB COLUMN NUMBER undefined ^ undefined ^ 047464* 3000 21104 21105 HLPNX1, full ^ 21106 SETLSC, JMS SETLST / CHECK LAST COLUMN full ^ undefined ^ undefined ^ 047465* 4000 21107 21108 SETCOL, TAD COLNUM / GET TAB COL NUMBER full ^ undefined ^ undefined ^ 047466* 1000 21109 047467* 7104 CLL RAL / *2 21110 TAD COLPT1 / POINTER TO TABLE undefined ^ undefined ^ 047470* 1000 21111 DCA COLPT2 / TEMP POINTER undefined ^ undefined ^ 047471* 3000 21112 TAD I COLPT2 / GET 1ST CHAR ENTRY undefined ^ undefined ^ 047472* 1400 21113 DCA HLPCL1 / SET 2ND POS(0,2,5) undefined ^ undefined ^ 047473* 3000 21114 ISZ COLPT2 / GET 2ND ENTRY IN TABLE undefined ^ undefined ^ 047474* 2000 21115 TAD I COLPT2 / SET L/ O=(3,7,1) undefined ^ undefined ^ 047475* 1400 21116 DCA HLPCL2 / SET L/ O POS. PNTR undefined ^ undefined ^ 047476* 3000 21117 21118 TAD HLPK04 / 4=FIRST PRINT LINE undefined ^ undefined ^ 047477* 1000 21119 TAD HLPTM1 / LINE OFFSET undefined ^ undefined ^ 047500* 1000 21120 DCA HLPTM1 undefined ^ undefined ^ 047501* 3000 21121 SETCLB, TAD HLPKM9 / -9 full ^ undefined ^ undefined ^ 047502* 1000 21122 TAD HLPTM1 undefined ^ undefined ^ 047503* 1000 21123 047504* 7510 SPA / IS GREATER THAN 9 21124 JMP HLPST1 / NO CONT undefined ^ undefined ^ 047505* 5000 21125 DCA HLPTM1 / SAVE LINE # undefined ^ undefined ^ 047506* 3000 21126 ISZ HLPRW1 / INC ROW NUMBER ASSUMES L.T.20 undefined ^ undefined ^ 047507* 2000 21127 JMP SETCLB / REPEAT (FOR G.T. 20 undefined ^ undefined ^ 047510* 5000 21128 21129 HLPST1, CLA CLL CML RAR / 4000 full ^ 047511* 7330 21130 TAD HLPRW1 undefined ^ undefined ^ 047512* 1000 21131 TAD HLPK60 / ASCII undefined ^ undefined ^ 047513* 1000 21132 DCA HLPRW1 / ADD ROW NUM undefined ^ undefined ^ 047514* 3000 21133 047515* 7330 CLA CLL CML RAR / 4000 21134 TAD HLPK60 / ASCII undefined ^ undefined ^ 047516* 1000 21135 TAD HLPTM1 undefined ^ undefined ^ 047517* 1000 21136 DCA HLPRW2 undefined ^ undefined ^ 047520* 3000 21137 21138 / PUT COMMAND STRING 21139 21140 047521* 4515 PUTESC 21141 047522* 4133 "[+4000-200 21142 HLPRW1, "0+4000-200 / ROW TENS DIGIT full ^ 047523* 4060 21143 HLPRW2, "1+4000-200 / ROW L/ O DIGIT full ^ 047524* 4061 21144 047525* 4073 ";+4000-200 / SEPARATOR 21145 047526* 4060 "0+4000-200 / COL H/ O 21146 COLCNT, full ^ 21147 HLPCL1, "0+4000-200 / =0,3,6 full ^ 047527* 4060 21148 HLPCL2, "3+4000-200 full ^ 047530* 4063 21149 047531* 4110 "H+4000-200 / CUROR POSITION 21150 HLPCHR, "0-200 / CHARACTER TO PRINT full ^ 047532* 0060 21151 JMP I HLPDP0 undefined ^ undefined ^ 047533* 5400 21152 21153 / THIS ROUTINE COMPARES ARG PASSED AGAINST NOWPTR 21154 / LIKE RESULTS RETURN +1 ELSE+2 21155 21156 CHKSPL, 0 full ^ 047534* 0000 21157 TAD NOWPTR / POINTER TO CODE undefined ^ undefined ^ 047535* 1000 21158 TAD I CHKSPL / GET CODE TO COMPARE AGAINST undefined ^ undefined ^ 047536* 1400 21159 047537* 7640 SZA CLA / IS IT SPECIAL CODE? 21160 ISZ CHKSPL / NO SET RETURN undefined ^ undefined ^ 047540* 2000 21161 ISZ CHKSPL undefined ^ undefined ^ 047541* 2000 21162 JMP I CHKSPL undefined ^ undefined ^ 047542* 5400 21163 21164 / SET DIRECTION FOR ADV/ BACKUP LINE OR PARA 21165 21166 SETDIR, 0 full ^ 047543* 0000 21167 047544* 4504 MODSET / SET IT 21168 047545* 6614 MOVMOD 21169 JMP I SETDIR / RET undefined ^ undefined ^ 047546* 5400 21170 21171 IFDEF CONDOR / TOTAL NUM OF LIST IN MENU /C212 21172 21173 IFNDEF CONDOR /C222 full ^ 21174 NUMLPC, -17 / NUMBER LINES PER COLUMN full ^ 047547* 7761 21175 21176 HLPTM1, 0 / TEMP STOREAGE full ^ 047550* 0000 21177 HLPMAX, LSTLNT / MAX NUM COMMANDS full ^ undefined ^ 047551* 0000 21178 HLPNMX, -LSTLNT / NEG HLP MAX full ^ undefined ^ 047552* 0000 21179 HLPSPC, " -200 / SPACE full ^ 047553* 0040 21180 HLPCSR, "*-200 / CURSOR CHAR=* full ^ 047554* 0052 21181 HLPK60, 60 / " full ^ 047555* 0060 21182 HLPKM9, -12 / -9 full ^ 047556* 7766 21183 21184 IFDEF HELPDO < 21185 HLPPTR, HLPTBL / POINTER TO COMMAND TABLE 21186 > / END IFDEF HELPDO 21187 NOWPTR, 0 / CURRENT POSITION POINTER full ^ 047557* 0000 21188 HLPK04, 4 / FIRST LINE OF PRINT full ^ 047560* 0004 21189 COLNUM, 0 / TAB POSITION full ^ 047561* 0000 21190 COLPT1, COLPT3 / POINTER TO TABLE full ^ undefined ^ 047562* 0000 21191 COLPT2, 0 / TEMP POINTER POS. full ^ 047563* 0000 21192 21193 21194 X=. / INDICATE FIRST FREE LOCATION ON PAGE 21195 /--------------------- 21196 047576* 0331 PAGE 047577* 0000 21197 21198 IFDEF HELPDO < 21199 21200 / DO COMMAND POINTED TO PY CURSOR POSITION 21201 HLPCOD, 0 / POINTER TO COMMAND LOC 21202 21203 HLPDO, TAD NOWPTR / GET POINTER TO CURRENT COMMAND 21204 CLL RAR / DIV 2 2 ENTRIES PER WD. 21205 TAD HLPPTR / ADD START OF TABLE 21206 DCA HLPCOD / SET POINTER TO COMMAND 21207 TAD I HLPCOD / GET COMMAND CODE 21208 SNL / HI OR LO BYTE 0=HI 21209 BSW / =HI 21210 AND (77) / MASK 6 BITS 21211 SZA / 0=NO CODE 21212 TAD (7700) / REPLACE 6 BITS IN CODE 21213 21214 DCA HLPCOD / SAVE NEW CODE 21215 JMS CHKSPL / CHECK SPECIAL CODE 21216 -BAKLIN / IS = BACKUP LINE(UP ARRW) 21217 JMP SETBKW / SET TO BACKWARD 21218 JMS CHKSPL / CHECK SPECIAL CODE 21219 -ADVLIN / IS = ADV LINE(DWN ARRW) 21220 JMP SETFWD / SET TO FORWARD 21221 JMS CHKSPL / CHECK SPECIAL CODE 21222 -NXTSCR / IS = ADVANCE PARA(NXT SCREEN) 21223 JMP SETFWD / SET TO FORWARD 21224 JMS CHKSPL / CHECK SPECIAL CODE 21225 -PRVSCR / IS = BACKUP PARA(PREV SCREEN) 21226 JMP SETBKW / SET TO FORWARD 21227 JMP SETCNT / CONTINUE 21228 SETBKW, IAC / 1=BACKUP DIRECTION 21229 SETFWD, / 0=FORWARD DIRECTION 21230 DCA MOVMOD+1 / 0=BACK 1=FWRD 21231 JMS SETDIR / SET THE DIRECTION 21232 SETCNT, TAD HLPCOD / GET THE CODE 21233 > / END IFDEF HELPDO 21234 21235 / RETURN TO EDIT MODE 21236 21237 HLPRET, DCA T2 / SAVE RETURN CODE full ^ undefined ^ undefined ^ 047600* 3000 21238 TAD T3 / GET BASKET COUNT undefined ^ undefined ^ 047601* 1000 21239 047602* 3132 DCA BASKCT / RESET 21240 21241 /D185 OVLJMP;OVHLPE / END HELP OVERLAY RESTORE MENU DATA AND POINTERS 21242 21243 047603* 1177 TAD WIDNAR / CHECK FOR WIDE SCREEN /M192 21244 047604* 7650 SNA CLA /M192 21245 047605* 4777 JMS SET132 / CONVERT TO 132 COLUMN MODE /A185 21246 047606* 4776 JMS CLSSET / INITIALIZE SCROLL VALUES FOR STATUS /A185 21247 21248 AC7777 / SET AC = -1 /A185 undefined ^ 047607* 0000 21249 CIFMNU / CHANGE INSTRUCTION FIELD TO MENU FIELD/A185 undefined ^ 047610* 0000 21250 PGSWAP / AC=-1 SO JUST LOAD IN THE SAVE AREA /A185 undefined ^ 047611* 0000 21251 21252 TAD T2 / FINISH - GET RETURN CODE /A185 undefined ^ undefined ^ 047612* 1000 21253 047613* 7450 SNA / IS CODE OR NULL(RET TO EDITOR) /A185 21254 047614* 5775 JMP EINEXT / RETURN TO NORMAL EDITOR FUNCTIONS /A185 21255 047615* 5774 JMP EINEXB / RETURN TO EDITOR ...WITH NEG CODE IN AC/A185 21256 21257 21258 21259 OVHLP1, TAD BASKCT / GET WASTEBASKET COUNT /A185 full ^ 047616* 1132 21260 DCA T3 / SAVE FOR HELP UNDELETE /A185 undefined ^ undefined ^ 047617* 3000 21261 047620* 3130 DCA PSTBLK /A185 21262 047621* 3132 DCA BASKCT / CLEAR PASTE BUF FLAGS /A185 21263 21264 047622* 4773 JMS CLR132 / MAKE SURE THE SCREEN IS IN NARROW MODE/A185 21265 AC0003 / SET UP TO RESET SCROLL REGION /A185 undefined ^ 047623* 0000 21266 CIFMNU / CHANGE INSTRUCTION FIELD TO MENU FIELD/A185 undefined ^ 047624* 0000 21267 047625* 4772 JMS I (CALLN1) / RESET SCROLL REGION SET ABSOLUTE MODE /A185 21268 CIFMNU / CHANGE INSTRUCTION FIELD TO MENU FIELD/A185 undefined ^ 047626* 0000 21269 PGSWAP / AC=0, SAVE SWAP AREA & RELOAD MENU CODE/A185 undefined ^ 047627* 0000 21270 21271 JMP OVHLP0 / START OF HELP OVERLAY undefined ^ undefined ^ 047630* 5000 21272 21273 HLPHLP, TAD NOWPTR / NEXT LEVEL HELP TEXT - GET ARG full ^ undefined ^ undefined ^ 047631* 1000 21274 CDFMNU undefined ^ 047632* 0000 21275 DCA I (MUBUF+MNTMP1) undefined ^ undefined ^ undefined ^ undefined ^ 047633* 3772 21276 CDFEDT undefined ^ 047634* 0000 21277 CIFMNU undefined ^ 047635* 0000 21278 JMS I MNUCAL / CAL MENU undefined ^ undefined ^ 047636* 4400 21279 DLHL01 / MENU BLOK(ARG PASSED IN MNTMP1) undefined ^ 047637* 0000 21280 CDFMNU undefined ^ 047640* 0000 21281 TAD I (MUBUF+MNTMP1) / ARG RET HERE(0=NEXT NOT 0=DO) undefined ^ undefined ^ undefined ^ undefined ^ 047641* 1772 21282 CDFEDT undefined ^ 047642* 0000 21283 21284 IFNDEF HELPDO < 21285 047643* 7650 SNA CLA / IS DISPLAY MENU? 21286 JMP OVHLP0 / YES undefined ^ undefined ^ 047644* 5000 21287 JMP HLPRET / YES RESUME EDITING undefined ^ undefined ^ 047645* 5000 21288 > / END END IFNDEF HELP DO 21289 21290 IFDEF HELPDO < 21291 SNA / IS DISPLAY MENU? 21292 JMP OVHLP0 / YES 21293 SMA CLA / IS IT GOLD MENU 21294 JMP HLPRET / YES RESUME EDITING 21295 JMP HLPDO / DO FUNCTION CODE 21296 > / END IFDEF HELPDO 21297 21298 IFDEF ENGLSH < 21299 COLPT3, "0+4000-200 / (01) 21300 "1+4000-200 21301 "1+4000-200 / (19) 21302 "9+4000-200 21303 "3+4000-200 / (37) /C212 21304 "7+4000-200 /C212 21305 "5+4000-200 / (52) /C212 21306 "2+4000-200 /C212 21307 "6+4000-200 / (65) /C212 21308 "5+4000-200 /C212 21309 > 21310 IFDEF V30SWE < 21311 COLPT3, "0+4000-200 / (01) 21312 "1+4000-200 21313 "1+4000-200 / (19) 21314 "9+4000-200 21315 "3+4000-200 / (37) /C212 21316 "7+4000-200 /C212 21317 "5+4000-200 / (52) /C212 21318 "2+4000-200 /C212 21319 "6+4000-200 / (65) /C212 21320 "5+4000-200 /C212 21321 > 21322 IFDEF V30NOR < 21323 COLPT3, "0+4000-200 / (01) 21324 "1+4000-200 21325 "1+4000-200 / (19) 21326 "9+4000-200 21327 "3+4000-200 / (37) /C212 21328 "7+4000-200 /C212 21329 "5+4000-200 / (52) /C212 21330 "2+4000-200 /C212 21331 "6+4000-200 / (65) /C212 21332 "5+4000-200 /C212 21333 > 21334 IFDEF SPANISH < 21335 COLPT3, "0+4000-200 / (01) /A236 21336 "1+4000-200 / " 21337 "1+4000-200 / (19) / " 21338 "9+4000-200 / " 21339 "3+4000-200 / (37) / " 21340 "7+4000-200 / " 21341 "5+4000-200 / (52) / " 21342 "2+4000-200 / " 21343 "6+4000-200 / (65) / " 21344 "5+4000-200 /A236 21345 > 21346 IFDEF ITALIAN < 21347 COLPT3, "0+4000-200 / (01) 21348 "1+4000-200 21349 "2+4000-200 / (20) 21350 "0+4000-200 21351 "3+4000-200 / (41) /C212 21352 "9+4000-200 /C212 21353 "5+4000-200 / (52) /C212 21354 "2+4000-200 /C212 21355 "6+4000-200 / (65) /C212 21356 "5+4000-200 /C212 21357 > 21358 IFDEF DUTCH < 21359 COLPT3, "0+4000-200 / (01) 21360 "1+4000-200 21361 "1+4000-200 / (19) 21362 "9+4000-200 21363 "3+4000-200 / (36) /C212 21364 "6+4000-200 /C212 21365 "5+4000-200 / (52) /C212 21366 "2+4000-200 /C212 21367 "6+4000-200 / (65) /C212 21368 "5+4000-200 /C212 21369 > 21370 21371 SETLST, XX / CHECK LAST COLUMN full ^ undefined ^ 047646* 0000 21372 TAD LNTPTR / LENGTH TABLE POINTER undefined ^ undefined ^ 047647* 1000 21373 DCA LNTTMP / SAVE TEMP undefined ^ undefined ^ 047650* 3000 21374 SETNXT, TAD HLPTM1 / POSITION POINTER full ^ undefined ^ undefined ^ 047651* 1000 21375 TAD I LNTTMP / GET LNGTH undefined ^ undefined ^ 047652* 1400 21376 047653* 7510 SPA / L.T. THAN POINTER 21377 JMP SETEXT / YES undefined ^ undefined ^ 047654* 5000 21378 DCA HLPTM1 / NO undefined ^ undefined ^ 047655* 3000 21379 ISZ COLNUM / INC COL NUMBER undefined ^ undefined ^ 047656* 2000 21380 ISZ LNTTMP / INC PTR undefined ^ undefined ^ 047657* 2000 21381 JMP SETNXT undefined ^ undefined ^ 047660* 5000 21382 SETEXT, CLA / SET POSITION IN COL full ^ 047661* 7200 21383 JMP I SETLST / RET undefined ^ undefined ^ 047662* 5400 21384 LNTPTR, LNTTBL / POINTER full ^ undefined ^ 047663* 0000 21385 LNTTMP, 0 / TEMP full ^ 047664* 0000 21386 21387 LNTTBL, /A166 full ^ 21388 IFNDEF CONDOR < /A166 21389 047665* 7761 -17 / NEG LNTH COL 1 /C212 21390 047666* 7760 -20 / NEG LNTH COL 2 /C212 21391 047667* 7763 -15 / NEG LNTH COL 3 /C222 21392 047670* 7757 -21 / NEG LNTH COL 4 /A166 21393 047671* 7771 -7 / NEG LNTH COL 5 /C222 21394 > / END IFNDEF CONDOR /A166 21395 21396 IFDEF CONDOR < /A166 21397 -21 / NEG LNTH COL 1 /C212 21398 -21 / NEG LNTH COL 2 /C212 21399 -16 / NEG LNTH COL 3 /C212 21400 -21 / NEG LNTH COL 4 21401 -17 / NEG LNTH COL 5 /C212 21402 > / END IFDEF CONDOR /A166 21403 047672* 0000 0 / END TABLE 21404 21405 IFDEF HELPDO < 21406 21407 / FOLLOWING TABLE ASSUMES ALL CODES START WITH 77XX IN H/ O 6 BITS 21408 / IT IS USED WITH 6 BITS FROM 1ST CODE STORED IN H/ O 6 BITS 21409 / AND 6 BITS FROM NEXT CODE STORED IN L/ O 6 BITS 21410 21411 HLPTBL, / COMMAND TABLE 21412 EDDICT^100+EDGADV+100 / ABBREVIATION / GOLD ADVANCE 21413 EDGBKP^100+EDUBLD+100 / GOLD BACKUP / GOLD:BOLD 21414 EDBOTM^100+EDCENT+100 / BOTTOM / CENTER 21415 EDPCMD^100+EDSRCH+100 / COMMAND / CONT. SEARCH 21416 EDCONT^100+EDRBSE+100 / CONTINUE SEARCH & SELECT/ RUB SENTENCE 21417 EDGCUT^100+EDTIME+100 / GOLD CUT / GOLD:DATE & TIME 21418 EDDEAD^100+EDUDLT+100 / DEAD KEY / GOLD:DELETE 21419 EDFILE^100+EDDCMT+100 / FILE / GOLD:G GET DOC 21420 0000000^100+EDHYPL+100 / NO HELP CODE RESUME EDITEDHALT / HYPHEN PULL 21421 EDGPST^100+EDGETC+100 / INSERT HERE=GOLD PASTE/ LIBRARY 21422 EDMENU^100+EDNPAG+100 / MENU / NEW PAGE 21423 EDGPGE^100+EDPMRK+100 / GOLD:PAGE / PAGE MARKER 21424 EDCRET^100+EDGPST+100 / PARAGRAPH MARKER / GOLD:PASTE 21425 EDHYP1^100+EDGCUT+100 / PRINT HYP / GOLD REMOVE= GOLD CUT 21426 EDREPL^100+EDRBLN+100 / REPLACE / RUB LINE 21427 EDRULR^100+EDHYP2+100 / RULER / INVISIBLE HYP 21428 EDFIND^100+EDFIND+100 / SEARCH / SEARCH PAGE (TEMP DO SEARCH) 21429 EDSUBS^100+EDSUPS+100 / SUBSCRIPT / SUPERSCRIPT 21430 EDSWAP^100+EDTOP+100 / SWAP / TOP 21431 EDUUDL^100+EDLOWR+100 / GOLD:UNDERLINE / GOLD:UPPERCASE 21432 EDVIEW^100+EDGBKP+100 / VIEW / UP ARROW=BACKUP LINE(**) 21433 EDGADV^100+EDGBKP+100 / DN ARROW=ADVANCE LINE(**)/ LFT ARROW=BACKUP LINE(**) 21434 EDGADV^100+EDADVN+100 / RHT ARROW=ADVANCE LINE(**) / ADVANCE 21435 EDBKUP^100+EDBOLD+100 / BACKUP / BOLD 21436 EDSCUT^100+EDDLTC+100 / CUT / DELETE CHAR 21437 EDDLTW^100+EDLINE+100 / DELTE WORD / LINE 21438 EDPAGE^100+EDPARA+100 / PAGE / PARAGRAPH 21439 EDPSTE^100+EDSLCT+100 / PASTE / SELECT 21440 EDSENT^100+EDTABP+100 / SENTENCE / TABPOSITION 21441 EDUNDL^100+EDUPPR+100 / UNDERLINE / UPPERCASE 21442 EDWORD^100+EDENTR+100 / WORD / ENTER 21443 EDFIND^100+EDHYPS+100 / FIND=GOLD SRCH / HYPH PULL(**) 21444 21445 / FOLLOWING DEFINE USED TO DETERMINE OFFSET IN TABLE 21446 / USED TO LOCATE FUNCTIONS REQUIRING 2 CODES TO BE EXECUTED 21447 21448 NXTSCR=.-HLPTBL^2+1 / NXT SCRN=ADV PARA L/ O BYTE 21449 EDPSTE^100+EDPARA+100 / INSERT HERE=PASTE/NEXT SCREEN=ADVANCE PARA(**) 21450 PRVSCR=.-HLPTBL^2 / PREV SCRN=BKUP PARA H/ O BYTE 21451 EDPARA^100+EDSCUT+100 / PREV SCREEN=BACKUP PARA(**)/REMOVE=CUT 21452 BAKLIN=.-HLPTBL^2+1 / UP ARROW=BK LINE L/ O BYTE 21453 EDSLCT^100+EDLINE+100 / SELECT=SEL/ UP ARROW=BACKUP LINE(**) 21454 ADVLIN=.-HLPTBL^2 / DWN ARROW=ADV LINE L/ O BYTE 21455 EDLINE^100+EDBKUP+100 / DN ARROW=ADVANCE LINE(**)/ LFT ARROW=BACKUP LINE(**) 21456 EDADVN^100+007700+100 / RHTARROW=ADVANCE LINE(**) 21457 21458 HLPTBE, / END OF TABLE+1 21459 > / END IFDEF HELPDO 21460 / END HELP MENU 21461 21462 21463 / 21464 / Moved here on edit 225 for space reasons 21465 / 21466 / Modified on edit 229 to allow Swap on dead key sequences. 21467 / 21468 21469 XVSWAP, JMS BHOOK / Call Blaster /A229 full ^ 047673* 4771 21470 SWPDED / To swap a dead thing /A229 undefined ^ 047674* 0000 21471 047675* 5770 JMP EIBAD / Bad Swap /A229 21472 047676* 5767 JMP EIFIX / Char has been inserted , wait for more/A229 21473 21474 21475 21476 EISWPA, XX / Check current char for Swap full ^ undefined ^ 047677* 0000 21477 047700* 4766 JMS LODCHR / 21478 JMP EISWBD / Bad if ETX undefined ^ undefined ^ 047701* 5000 21479 AND P177 undefined ^ undefined ^ 047702* 0000 21480 TAD (-ECNWLN) / Or if EOL undefined ^ undefined ^ 047703* 1372 21481 047704* 7450 SNA 21482 JMP EISWBD / undefined ^ undefined ^ 047705* 5000 21483 TAD (ECNWLN-ECNWPG) / Or if PAGE undefined ^ undefined ^ undefined ^ undefined ^ 047706* 1372 21484 047707* 7650 SNA CLA / /M229 21485 /D229 TAD (ECNWPG-ECSTOV) / Or if Overstruck 21486 /D229 SNA CLA 21487 JMP EISWBD undefined ^ undefined ^ 047710* 5000 21488 ISZ EISWPA undefined ^ undefined ^ 047711* 2000 21489 EISWBD, JMP I EISWPA / Return only if OK full ^ undefined ^ undefined ^ 047712* 5400 21490 21491 21492 / OVTIME moved here on edit 231 to allow room for hyphenation of /A231 21493 / 8 bit chars /A231 21494 21495 / OVTIME= .-OVLAY1+OVRNUM /TIME ENTRY 21496 21497 XVTIME, CIFMNU full ^ undefined ^ 047713* 0000 21498 JMS I TIMCAL undefined ^ undefined ^ 047714* 4400 21499 047715* 7000 NOP / UPDATE TIMER 21500 CDFMNU undefined ^ 047716* 0000 21501 AC7777 undefined ^ 047717* 0000 21502 TAD I (DATESP) / GET DATE STRING undefined ^ undefined ^ 047720* 1772 21503 DCA OVTIMX / SAVE PTR-1 undefined ^ undefined ^ 047721* 3000 21504 XVTIM1, CDFMNU full ^ undefined ^ 047722* 0000 21505 TAD I OVTIMX / GET NEXT CHAR undefined ^ undefined ^ 047723* 1400 21506 047724* 7450 SNA 21507 047725* 5767 JMP EIFIX / QUIT IF NULL 21508 047726* 4505 INSCHR / ELSE INSERT 21509 JMP XVTIM1 / AND LOOP FOR MORE undefined ^ undefined ^ 047727* 5000 21510 21511 OVTIMX=X5 / STRING INDEX REGISTER undefined ^ full ^ 21512 21513 21514 21515 X=. / INDICATE FIRST FREE LOCATION ON PAGE 21516 21517 /--------------------- 21518 047766* 4241 PAGE 047767* 0401 047770* 0400 047771* 5324 047772* 0000 047773* 6740 047774* 0426 047775* 0406 047776* 2141 047777* 6744 21519 21520 /*************************************************************************** 21521 /**** START OF OVERLAY **** 21522 /*************************************************************************** 21523 21524 OVRNUM=OVRNUM+200 21525 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 21526 21527 RELOC 21528 RELOC OVLAY1 21529 047400* 7200 OVRNUM 21530 21531 /*************************************************************************** 21532 /**** MOVED DURING EDIT #176 FOR GOLD:TAB STUFF **** 21533 /*************************************************************************** 21534 21535 21536 OVXRUL= .-OVLAY1+OVRNUM full ^ 21537 21538 / 21539 / RULER CLEAN UP CODE 21540 / 21541 / ENTERED HERE FROM EDIT-RULER MODE AND COMPLETION OF GOLD:TAB 21542 / 21543 / "GOLD:TAB" 21544 / "GOLD:RULER" 21545 / "ENTER" 21546 / "GOLD:ADVANCE" OR "GOLD:BACKUP" 21547 / 21548 JMS CHKRUL / CHECK NEW RULER undefined ^ undefined ^ 047401* 4000 21549 JMP RLBADX / NEW RULER IS BAD, RETURN TO RULER OR TAB undefined ^ undefined ^ 047402* 5000 21550 21551 047403* 1777 TAD CURSAV / GET SAVED CURSOR POSN FROM RESIDENT 21552 047404* 3136 DCA CURSOR / RESTORE CURSOR POSN. 21553 21554 TAD (ECTMRK) / PUT THE TEMP MARKING IN THE DOCUMENT /a176 undefined ^ undefined ^ 047405* 1376 21555 047406* 4775 JMS INSERT /a176 21556 21557 047407* 4774 JMS CMPRUL 21558 JMP RLEXIT / NO CHANGE IN RULER undefined ^ undefined ^ 047410* 5000 21559 / 21560 / +++ THE RULER CHANGED. /a176 21561 / WE JUST PUT THE MARKER IN THE EDIT BUFFER, NOW, INSERT /a176 21562 / THE NEW RULER AND RULER-MODIFIED CODE. THEN WHEN WE /a176 21563 / GET TO THE NEXT OVERLAY, WE WILL PLACE THE CURSOR AT THE /a176 21564 / SCREEN LOCATION BEFORE THE GOLD:TAB OR GOLD:RULER COMMAND. /a176 21565 / WAS ISSUED. /a176 21566 / 21567 / Also, we are going to Erase the Current line from the screen /a177 21568 / Because of problems with Gold:tab and Editor-Status-Word /a177 21569 / Defined to Display the Ruler on the 24th Line (but not in /a177 21570 / the body of the text). /a177 21571 / /a177 21572 047411* 4515 PUTESC / LETS OUTPUT AN ESCAPE SEQUENCE /a177 21573 047412* 4133 "[&177+4000 / WHICH WILL ERASE THE CURRENT LINE /a177 21574 047413* 4062 "2&177+4000 /a177 21575 047414* 0113 "K&177 /a177 21576 / 21577 / 21578 047415* 1171 TAD LINE23 / MOVE EDIT BUFFER POINTER /c177 21579 047416* 3135 DCA CURPTR / AND SCREEN CURSOR POINTER 21580 047417* 3136 DCA CURSOR / TO LEFT MARGIN 21581 21582 047420* 4773 JMS INSRUL / INSERT NEW RULER 21583 21584 TAD (ECRMFL) undefined ^ undefined ^ 047421* 1376 21585 047422* 3151 DCA LINMOD / SET RULER MODIFIED FLAG 21586 047423* 4772 JMS SAVLMD / INSERT IT 21587 21588 047424* 1171 TAD LINE23 / MOVE EDIT PTR TO BEFORE NEW RULER 21589 047425* 3135 DCA CURPTR 21590 21591 RLEXIT, OVLJMP / TRANSFER TO ANOTHER OVERLAY TO FINISH full ^ 047426* 4523 21592 047427* 3401 OVRLXT 21593 21594 / 21595 / 21596 / +++ THERE IS SOME KIND OF PROBLEM WITH THE NEW-RULER /a176 21597 / /a176 21598 / IF WE GOT HERE FROM GOLD:RULER, IT COULD BE ANYTHING. /a176 21599 / IF WE GOT HERE FROM GOLD:TAB, THEN WE MUST HAVE TOO MANY TABS /a176 21600 / /a176 21601 / WE RETURN TO THE PROPER OVERLAY BY VECTORING ON MNTMP1 IN THE /a176 21602 / MENU FIELD. /a176 21603 / 21604 21605 RLBADX, JMS MNUGET /a176 full ^ 047430* 4771 21606 MNTMP1 / GET VECTOR FLAG /a176 undefined ^ 047431* 0000 21607 047432* 7640 SZA CLA / .EQ.0 = RULER .NE.0 = TAB /a176 21608 JMP RLBAD1 / TAB /a176 undefined ^ undefined ^ 047433* 5000 21609 21610 047434* 4523 OVLJMP / RULER /a176 21611 047435* 1401 OVRBAD /a176 21612 21613 RLBAD1, OVLJMP / TAB /a176 full ^ 047436* 4523 21614 047437* 3630 INTBAD /a176 21615 21616 21617 OVGSRL= .-OVLAY1+OVRNUM full ^ 21618 21619 JMS CHKRUL / CHECK FOR VALID RULER undefined ^ undefined ^ 047440* 4000 21620 JMP RLBADX / ERROR - INVALID RULER undefined ^ undefined ^ 047441* 5000 21621 21622 / READ THE BLOCK WHICH CONTAINS THE STORED RULER WE WANT TO /A184 21623 / OVERWRITE AND THEN COPY THE NWRUL BUFFER INTO THAT READ BUFFER. /A184 21624 / THE MODIFIED BUFFER IS THEN WRITTEN OUT TO THE DISK. /A184 21625 21626 TAD T3 / RULER VALID - PUT IT TO DISK /A184 undefined ^ undefined ^ 047442* 1000 21627 047443* 4770 JMS RLGETX / GO READ EDITOR RULER BLOCK /A184 21628 DCA RLPUT1 / RETURN WITH ADDRESS - 1 OF RULER AND /A184 undefined ^ undefined ^ 047444* 3000 21629 / SET UP FOR COPY /A184 21630 21631 047445* 4767 JMS CPYBUF / COPY NWRUL TO WRITE OUT BUFFER /A184 21632 047446* 7601 -RULSIZ / MINUS SIZE OF NEW RULL /A184 21633 CDFMNU / RESIDES IN MENU FIELD /A184 undefined ^ 047447* 0000 21634 047450* 2777 NWRUL-1 / AT THIS LOCATION /A184 21635 CDFBUF / COPY TO THIS FIELD /A184 undefined ^ 047451* 0000 21636 RLPUT1, .-. / AT THIS LOCATION /A184 full ^ 047452* 0000 21637 21638 TAD (RXEWT+2000) / GET WRITE OUT FUNCTION CODE /A184 undefined ^ undefined ^ 047453* 1375 21639 047454* 4766 JMS PSTIO / WRITE TO DISK /A184 21640 21641 047455* 4523 OVLJMP / GOTO RULER MODIFICATION ROUTINE TO 21642 047456* 1406 OVPRUL / DISPLAY RULER AND GET NEXT INPUT CHAR. 21643 21644 21645 X=. / INDICATE FIRST FREE LOCATION ON PAGE 21646 21647 /------------------------------ 21648 21649 047566* 5030 PAGE 047567* 6054 047570* 5301 047571* 1643 047572* 2244 047573* 5242 047574* 5400 047575* 2000 047576* 0000 047577* 0456 21650 21651 / 21652 / SUBR CHKRUL -- CHECK NEW RULER TO SEE IF IT ADHERES TO THE FOLLOWING 21653 / RULES: 21654 / (1) THERE MUST BE A LEFT MARGIN; 21655 / (2) THE LEFT MARGIN, WORD WRAP INDENT MARK, PARA INDENT MARK, 21656 / AND CENTERING POINT MUST ALL BE TO THE LEFT OF THE 21657 / RIGHT MARGIN; 21658 / (3) # OF MARKERS (TABS, ETC) < (20 IF RIGHT MARGIN<80, ELSE 41); 21659 / ALSO DELETES MARKERS PAST RIGHT MARGIN. 21660 / 21661 / CALL: 21662 / TAD JUNK / AC DOESN'T MATTER 21663 / JMS CHKRUL / CHECK NEW RULER (NWRUL) 21664 / JMP RULBAD / RULER BAD (VIOLATES 1 OR MORE RULES) 21665 / JMP RULOK / RULER OK 21666 / 21667 CHKRUL, XX / CHECK NEW RULER full ^ undefined ^ 047600* 0000 21668 AC0001 undefined ^ 047601* 0000 21669 DCA T1 / INIT POSN undefined ^ undefined ^ 047602* 3000 21670 CDFMNU undefined ^ 047603* 0000 21671 047604* 1777 TAD NWLMAR 21672 047605* 7450 SNA 21673 JMP MCHK1 / ERROR IF NO L undefined ^ undefined ^ 047606* 5000 21674 JMS MCHK undefined ^ undefined ^ 047607* 4000 21675 047610* 1776 TAD NWWMAR 21676 JMS MCHK undefined ^ undefined ^ 047611* 4000 21677 047612* 1775 TAD NWPMAR 21678 JMS MCHK undefined ^ undefined ^ 047613* 4000 21679 047614* 1774 TAD NWCMAR 21680 JMS MCHK undefined ^ undefined ^ 047615* 4000 21681 047616* 1773 TAD NWRMAR 21682 047617* 1372 TAD (-COLM81) / NOW CHECK TOTAL SIZE OF RULER 21683 047620* 7700 SMA CLA 21684 047621* 1371 TAD (-25) 21685 047622* 1371 TAD (-25) 21686 DCA RLTMP / -(MAX COUNT OF MARKS)-1 undefined ^ undefined ^ 047623* 3000 21687 DCA MCHK undefined ^ undefined ^ 047624* 3000 21688 RLXCH1, ISZ MCHK / BUMP POSITION full ^ undefined ^ undefined ^ 047625* 2000 21689 TAD MCHK undefined ^ undefined ^ 047626* 1000 21690 047627* 4770 JMS GETBYT 21691 047630* 3000 NWRUL / LOOK AT IT 21692 047631* 7450 SNA 21693 JMP RLXCH2 / JUMP IF DONE undefined ^ undefined ^ 047632* 5000 21694 047633* 1367 TAD (-1) 21695 047634* 7650 SNA CLA 21696 JMP RLXCH1 / IGNORE IF NOTHING THERE undefined ^ undefined ^ 047635* 5000 21697 TAD MCHK undefined ^ undefined ^ 047636* 1000 21698 047637* 7041 CIA 21699 CDFMNU undefined ^ 047640* 0000 21700 047641* 1773 TAD NWRMAR 21701 047642* 7700 SMA CLA 21702 JMP RLXCH3 / COUNT IF INSIDE MARGIN undefined ^ undefined ^ 047643* 5000 21703 TAD MCHK undefined ^ undefined ^ 047644* 1000 21704 047645* 7421 MQL 21705 047646* 7001 IAC / ELSE DELETE 21706 047647* 4766 JMS PUTBYT 21707 047650* 3000 NWRUL 21708 JMP RLXCH1 undefined ^ undefined ^ 047651* 5000 21709 21710 / COUNT MARKER AT LEFT OF RIGHT MARGIN 21711 21712 RLXCH3, ISZ RLTMP full ^ undefined ^ undefined ^ 047652* 2000 21713 JMP RLXCH1 / IGNORE IF OK SO FAR undefined ^ undefined ^ 047653* 5000 21714 TAD MCHK / ELSE COMPLAIN IF TOO MANY MARKS undefined ^ undefined ^ 047654* 1000 21715 JMP MCHK2 undefined ^ undefined ^ 047655* 5000 21716 21717 RLTMP, 0 full ^ 047656* 0000 21718 21719 / NEW RULER IS OK. TAKE OK RETURN. 21720 21721 RLXCH2, ISZ CHKRUL full ^ undefined ^ undefined ^ 047657* 2000 21722 RLXCH4, CDFMYF full ^ 047660* 0000 21723 JMP I CHKRUL undefined ^ undefined ^ 047661* 5400 21724 21725 / 21726 / SUBR MCHK -- 21727 / ENTER WITH AC = NEW RULER SETTING. 21728 / *** THIS SUBROUTINE MAY ONLY BE CALLED FROM WITHIN SUBR CHKRUL! 21729 / MCHK MAKES SURE NEW RULER SETTING IS TO THE LEFT OF NEW RIGHT MARGIN. 21730 / IF IT IS, THEN EXIT MCHK WITH AC=0; 21731 / ELSE (BAD NEW RULER) TAKE ERROR RETURN FROM ***CHKRUL*** !! 21732 21733 MCHK, XX full ^ undefined ^ 047662* 0000 21734 DCA T1 undefined ^ undefined ^ 047663* 3000 21735 TAD T1 undefined ^ undefined ^ 047664* 1000 21736 047665* 7041 CIA 21737 047666* 1773 TAD NWRMAR 21738 047667* 7740 SMA SZA CLA 21739 JMP I MCHK undefined ^ undefined ^ 047670* 5400 21740 MCHK1, TAD T1 full ^ undefined ^ undefined ^ 047671* 1000 21741 MCHK2, DCA RLPOSN full ^ 047672* 3125 21742 JMP RLXCH4 undefined ^ undefined ^ 047673* 5000 21743 21744 21745 21746 21747 X=. / INDICATE FIRST FREE LOCATION ON PAGE 21748 21749 /------------------------------ 21750 21751 047766* 6026 PAGE 047767* 7777 047770* 6006 047771* 7753 047772* 7660 047773* 3171 047774* 3174 047775* 3173 047776* 3172 047777* 3170 21752 21753 /*************************************************************************** 21754 /**** START OF OVERLAY **** 21755 /*************************************************************************** 21756 21757 OVRNUM=OVRNUM+200 21758 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 21759 21760 RELOC 21761 RELOC OVLAY1 21762 047400* 7400 OVRNUM 21763 21764 OVINCH=.-OVLAY1+OVRNUM full ^ 21765 JMP INOVCH / Handle chars in Overstrike /A235 undefined ^ undefined ^ 047401* 5000 21766 / mode /A235 21767 21768 OVINOF=.-OVLAY1+OVRNUM / Switch INSOV Flag On - Off /A235 full ^ 21769 21770 21771 INONOF, CLA / Clear Acc /A235 full ^ 047402* 7200 21772 047403* 1777 TAD INSOVF / Get Overstrike flag /A235 21773 047404* 7040 CMA / Flip bits /A235 21774 047405* 0376 AND (1) / Mask out everything else /A235 21775 047406* 3777 DCA INSOVF / Now re-store it /A235 21776 AC0001 / Set Acc up /A235 undefined ^ 047407* 0000 21777 CDFMNU / Point to Menu field /A235 undefined ^ 047410* 0000 21778 DCA I XLINDIF / Set line different flag /A235 undefined ^ undefined ^ 047411* 3400 21779 047412* 0000 CDFMYF / and back here /A235 21780 047413* 5775 JMP EIFIX / Go back for more /A235 21781 21782 INOVCH, CDFBUF / Point to User buff /A235 full ^ undefined ^ 047414* 0000 21783 047415* 1535 TAD I CURPTR / Get next char /A235 21784 AND P177 / Strip off attributes /A235 undefined ^ undefined ^ 047416* 0000 21785 047417* 0000 CDFMYF / Now back here /A235 21786 TAD (-ECSPC) / Check if alpha /A235 undefined ^ undefined ^ 047420* 1374 21787 047421* 7510 SPA / /A235 21788 JMP INONAL / Not alpha /A235 undefined ^ undefined ^ 047422* 5000 21789 047423* 7200 CLA / Clear out results of test /A235 21790 CDFBUF / Point to user buffer /A235 undefined ^ 047424* 0000 21791 047425* 3535 DCA I CURPTR / And kill char /A235 21792 047426* 0000 CDFMYF / Now point back here /A235 21793 047427* 1773 TAD INCHTM / Get char just input /A235 21794 047430* 5772 JMP EINSRT / And wait for more /A235 21795 INONAL, TAD (ECSPC-ECSTOV) / Is it the start of a dead seq /A235 full ^ undefined ^ undefined ^ undefined ^ undefined ^ 047431* 1374 21796 047432* 7650 SNA CLA / /A235 21797 JMP INOVDED / yes , Kill it then return /A235 undefined ^ undefined ^ 047433* 5000 21798 047434* 1773 TAD INCHTM / No get char back /A235 21799 047435* 5772 JMP EINSRT / And insert it instead /A235 21800 21801 INOVDED,JMS INVKIL / Kill char /A235 full ^ undefined ^ undefined ^ 047436* 4000 21802 047437* 4506 ADVPTR / Get next /A235 21803 047440* 7000 NOP / /A235 21804 TAD (-ECNDOV) / End of the dead seq ? /A235 undefined ^ undefined ^ 047441* 1374 21805 047442* 7640 SZA CLA / /A235 21806 JMP INOVDED / No , keep trying /A235 undefined ^ undefined ^ 047443* 5000 21807 JMS INVKIL / Yes , kill it /A235 undefined ^ undefined ^ 047444* 4000 21808 047445* 1773 TAD INCHTM / Now get back original char /A235 21809 047446* 5772 JMP EINSRT / And insert it /A235 21810 / 21811 / Small routine to kill next char in user buffer /A235 21812 / 21813 21814 INVKIL, XX full ^ undefined ^ 047447* 0000 21815 CDFBUF / Point to user buffer /A235 undefined ^ 047450* 0000 21816 047451* 3535 DCA I CURPTR / And kill char /A235 21817 047452* 0000 CDFMYF / Point back here /A235 21818 JMP I INVKIL / And return /A235 undefined ^ undefined ^ 047453* 5400 21819 21820 21821 XLINDIF,LINDIF / Pointer to LINDIF in Menu field/A235 full ^ 047454* 0172 21822 21823 21824 21825 21826 21827 21828 X=. / INDICATE FIRST FREE LOCATION ON PAGE 21829 /--------------------- 21830 047572* 1314 PAGE 047573* 4360 047574* 0000 047575* 0401 047576* 0001 047577* 4357 21831 21832 047600* 0000 ZBLOCK 1 / RESERVE SPACE FOR SECOND OVERLAY PAGE 21833 21834 21835 X=. / INDICATE FIRST FREE LOCATION ON PAGE 21836 /--------------------- 21837 PAGE 21838 21839 /*************************************************************************** 21840 /**** START OF OVERLAY **** 21841 /*************************************************************************** 21842 21843 OVRNUM=OVRNUM+200 21844 OVRBLK=OVRNUM%200+DLOEDO-1 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 21845 21846 RELOC 21847 RELOC OVLAY1 21848 047400* 7600 OVRNUM 21849 21850 OVTCHR= .-OVLAY1+OVRNUM / USER TYPED "TECHNICAL CHARACTER KEY" full ^ 21851 047401* 4777 JMS OV2JMP / CALL REST OF ROUTINE IN OVERLAY 2 AREA 21852 OVTC / NECESSARY TO LOAD THIS OVERLAY & TABLE undefined ^ 047402* 0000 21853 21854 XXFIND= .-OVLAY1+OVRNUM / USER TYPED "GOLD:SEARCH" full ^ 21855 047403* 2776 ISZ NOMOVE / KEEP CURSOR FROM PRE-INCREMENTING 21856 047404* 4775 JMS FXSCRL / UPDATE SCREEN 21857 047405* 4774 JMS PROMPT / PROMPT USER 'ENTER PHRASE:' 21858 047406* 3400 EIFND1 21859 047407* 4777 JMS OV2JMP / CALL ROUTINE IN SECOND OVERLAY AREA 21860 OVAGET / ALTERNATE GETLIN ROUTINE undefined ^ 047410* 0000 21861 21862 047411* 1125 TAD GETTRM / TEST TERMINATOR FOR... 21863 TAD (-EDRULR) / RULER CODE ? undefined ^ undefined ^ 047412* 1373 21864 047413* 7450 SNA / . 21865 JMP XXGOTO / USER TYPED "GOLD:SEARCH - GOLD:RULER" undefined ^ undefined ^ 047414* 5000 21866 TAD (EDRULR-EDPAGE) / PAGE CODE ? undefined ^ undefined ^ undefined ^ undefined ^ 047415* 1373 21867 047416* 7650 SNA CLA / . /C206 21868 JMP XPGOTO / USER TYPED "GOLD:SEARCH - PAGE" undefined ^ undefined ^ 047417* 5000 21869 21870 047420* 4772 JMS CPYBUF / COPY INPUT AREA CONTAINING SEARCH STRING 21871 ALTLIM, -63 / NUMBER OF WORDS TO COPY /C196 full ^ 047421* 7715 21872 CDFMNU / FIELD TO COPY FROM undefined ^ 047422* 0000 21873 MUBUF+MNIBUF-1 / ADDRESS TO COPY FROM undefined ^ undefined ^ 047423* 7777 21874 047424* 0000 CDFMYF / FIELD TO COPY TO 21875 047425* 6251 EIGES4 / ADDRESS TO COPY TO 21876 21877 047426* 1125 TAD GETTRM / TEST TERMINATOR FOR... 21878 TAD (-EDCONT) / CONTINUE SEARCH AND SELECT ? /C206 undefined ^ undefined ^ 047427* 1373 21879 047430* 7450 SNA / . 21880 JMP XXCONT / USER TYPED "GOLD:CONTINUE SEARCH & SELECT" undefined ^ undefined ^ 047431* 5000 21881 TAD (EDCONT-EDBKUP) / BACKUP? undefined ^ undefined ^ undefined ^ undefined ^ 047432* 1373 21882 047433* 7650 SNA CLA / . 21883 AC7776 / MODIFY INDICATORS ACCORDINGLY... undefined ^ 047434* 0000 21884 047435* 3153 DCA SRCDIR / . 21885 047436* 4523 OVLJMP; OVSRCH / CONTINUE WITH "CONTINUE SEARCH" 047437* 2626 21886 21887 XXGOTO, OVLJMP; OVGSGR / USER TYPED "GOLD:SEARCH - GOLD:RULER" full ^ 047440* 4523 047441* 5001 21888 XPGOTO, OVLJMP; OVRPPG / USER TYPED "GOLD:SEARCH - PAGE" full ^ 047442* 4523 047443* 4602 21889 21890 / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 21891 / GET GLOBAL SEARCH AND REPLACE 21892 / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 21893 21894 OVGSRP= .-OVLAY1+OVRNUM / GLOBAL SEARCH AND REPLACE MAIN ENTRANCE full ^ 21895 21896 047444* 4771 JMS CLR132 / KEEP SCREEN WIDTH AT 80 21897 047445* 1770 TAD GSRPRV / GET PREVIOUS GLOBAL SEARCH FLAG 21898 047446* 7640 SZA CLA / WAS THERE A PREVIOUS GLOBAL SEARCH? 21899 AC0001 / YES, ALLOW RE-START undefined ^ 047447* 0000 21900 JMS GETALT / CALL MENU AND GET STRING undefined ^ undefined ^ 047450* 4000 21901 21902 047451* 1126 TAD GETLEN / GET LENGTH OF INPUT STRING 21903 047452* 7640 SZA CLA / WAS ANYTHING TYPED ? 21904 JMP GS2 / YES, GO HANDLE STRING undefined ^ undefined ^ 047453* 5000 21905 21906 047454* 1770 TAD GSRPRV / NO, GET PREVIOUS GLOBAL SEARCH FLAG 21907 047455* 7640 SZA CLA / WAS THERE A PREVIOUS GLOBAL SEARCH? 21908 JMP XVGSGO / YES, THEN GO CONTINUE IT undefined ^ undefined ^ 047456* 5000 21909 21910 047457* 4767 JMS SET132 / SET TO 132 COL. IF WIDNAR=WIDE /M192 21911 JMS GS1SWP / RESTORE THE SWAP AREA undefined ^ undefined ^ 047460* 4000 21912 047461* 5766 JMP EIFIX / AND RETURN TO EDITOR IF FOUND 21913 21914 GS2, JMS CPYBUF / COPY INPUT AREA CONTAINING SEARCH STRING full ^ 047462* 4772 21915 047463* 7715 -63 / NUMBER OF WORDS TO COPY 21916 CDFMNU / FIELD TO COPY FROM undefined ^ 047464* 0000 21917 MUBUF+MNIBUF-1 / ADDRESS TO COPY FROM undefined ^ undefined ^ 047465* 7777 21918 047466* 0000 CDFMYF / FIELD TO COPY TO 21919 047467* 6251 EIGES4 / ADDRESS TO COPY TO 21920 21921 / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 21922 / GET SUBSTITUTION SCREEN 21923 / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 21924 AC0002 / INDICATE REPLACEMENT MENU TEXT undefined ^ 047470* 0000 21925 JMS GETALT / CALL MENU AND GET STRING undefined ^ undefined ^ 047471* 4000 21926 21927 047472* 1125 TAD GETTRM / GET THE TERMINATING CHARACTER 21928 TAD (-EDPSTE) / COMBINE WITH PASTE KEY VALUE undefined ^ undefined ^ 047473* 1373 21929 047474* 7650 SNA CLA / IS IT THE PASTE KEY ? 21930 JMP XVGSGO / YES, GO USE CURRENT PASTE BUFFER undefined ^ undefined ^ 047475* 5000 21931 21932 047476* 1373 TAD (PSTEBG) / SET UP THE PARAMETERS TO RESET THE 21933 047477* 3130 DCA PSTBLK / CUT-PASTE BLOCK HANDLING LOGIC. 21934 047500* 4765 JMS SETPST / GO SET ADRS POINTERS 21935 21936 047501* 4777 JMS OV2JMP / CALL ROUTINE IN SECOND OVERLAY AREA 21937 OVFIXP / TRANSFER MENU BUFFER TO PASTE BUFFER undefined ^ 047502* 0000 21938 21939 TAD (RXEWT+2000) / SET UP THE CALL TO WRITE THE CUT-PASTE BLOCK undefined ^ undefined ^ 047503* 1364 21940 047504* 4763 JMS PSTIO / TO THE USER SCRATCH AREA ON THE DISK. 21941 047505* 0000 CDFMYF / RESET BACK TO THIS FIELD 21942 21943 XVGSGO, TAD (SKP) / PICK UP THE SKIP INSTRUCTION full ^ 047506* 1362 21944 047507* 3761 DCA GSKILN / STORE SO THAT GSR WILL RUN 21945 21946 047510* 2770 ISZ GSRPRV / SET THE PREVIOUS GSR FLAG 21947 047511* 2173 ISZ GSRF / SET THE GSR IN PROGRESS FLAG 21948 21949 047512* 4767 JMS SET132 / SET TO 132 COL. IF WIDNAR=WIDE /M192 21950 21951 JMS GS1SWP / RESTORE THE SWAP AREA /A189 undefined ^ undefined ^ 047513* 4000 21952 XXCONT, OVLJMP; OVCONT / GO TO CONTINUE SEARCH & SELECT OVERLAY full ^ 047514* 4523 047515* 2601 21953 21954 GETALT, XX / COMMON GSR STRING INPUT ROUTINE full ^ undefined ^ 047516* 0000 21955 047517* 4760 JMS MNUPUT / TRANSFER MESSAGE CODE TO MENU TEMP 21956 MNTMP2 / USE MENU TMEP NUMBER 2 undefined ^ 047520* 0000 21957 21958 CIFMNU / CHANGE TO MENU FIELD undefined ^ 047521* 0000 21959 JMS I MNUCAL / AND CALL THE MENU undefined ^ undefined ^ 047522* 4400 21960 DLMGS1 / USE THE FIRST GSR MENU BLOCK undefined ^ 047523* 0000 21961 21962 047524* 4777 JMS OV2JMP / CALL ROUTINE IN SECOND OVERLAY AREA 21963 OVAGET / ALTERNATE GETLIN ROUTINE undefined ^ 047525* 0000 21964 21965 047526* 1125 TAD GETTRM / GET TERMINATING CHARACTER 21966 TAD (-EDMENU) / COMBINE WITH VALUE FOR GOLD MENU undefined ^ undefined ^ 047527* 1373 21967 047530* 7640 SZA CLA / WAS GOLD MENU PRESSED ? 21968 JMP I GETALT / NO, RETURN TO CALLER undefined ^ undefined ^ 047531* 5400 21969 21970 JMS GS1SWP / YES, GO RESTORE THE SWAP AREA undefined ^ undefined ^ 047532* 4000 21971 047533* 4523 OVLJMP;OVMENU / GO CALL UP THE EDITOR MENU 047534* 2020 21972 21973 GS1SWP, XX / SUBROUTINE TO RESTORE THE SAVE AREA full ^ undefined ^ 047535* 0000 21974 047536* 4757 JMS CLSSET / INITIALIZE SCROLL VALUES FOR STATUS 21975 AC7777 / SET AC = -1 undefined ^ 047537* 0000 21976 CIFMNU / CHANGE INSTRUCTION FIELD TO MENU FIELD undefined ^ 047540* 0000 21977 PGSWAP / AC=-1 SO JUST LOAD IN THE SAVE AREA undefined ^ 047541* 0000 21978 JMP I GS1SWP / RETURN TO CALLER undefined ^ undefined ^ 047542* 5400 21979 21980 X=. / INDICATE FIRST FREE LOCATION ON PAGE 21981 /--------------------- 21982 047557* 2141 PAGE 047560* 1655 047561* 0411 047562* 7410 047563* 5030 047564* 2000 047565* 5316 047566* 0401 047567* 6744 047570* 6534 047571* 6740 047572* 6054 047573* 0000 047574* 4470 047575* 3400 047576* 6536 047577* 5124 21983 21984 21985 / Mapping table for the Technical Character Set 21986 / 21987 /** Note: If octal code of mapped character is 0 the user input will 21988 / be ignored and no technical character will be generated. 21989 / 21990 / .-- Character set selection G1, G2, G3 21991 / | .-- 7 bit octal code of Technical Character 21992 / | | .-- 7 bit octal code of character to be mapped 21993 / | | | .-- ASCII character of octal code to be mapped 21994 / | | | | .-- Mapped Technical Character description 21995 / |/ \ | | | 21996 TCMAP, full ^ 21997 IFDEF DUTCH < 21998 3042 / 041 ! Top left radical 21999 2067 / 042 " Middle dot 22000 3065 / 043 # Top right summation 22001 3066 / 044 $ Bottom right summation 22002 2061 / 045 % Plus minus 22003 3044 / 046 & Top integral 22004 3103 / 047 ' Divided by 22005 3053 / 050 ( Top left paren 22006 3055 / 051 ) Top right paren 22007 3046 / 052 * Vertical connentor 22008 3051 / 053 + Top right square bracket 22009 1133 / 054 , Left square bracket 22010 3050 / 055 - Bottom left square bracket 22011 1135 / 056 . Right square bracket 22012 3133 / 057 / Includes 22013 3056 / 060 0 Bottom right paren 22014 3041 / 061 1 Left radical 22015 3126 / 062 2 Radical 22016 3057 / 063 3 Left middle brace 22017 3060 / 064 4 Right middle brace 22018 3067 / 065 5 Right middle summation 22019 3062 / 066 6 Bottom left summation 22020 3045 / 067 7 Bottom intergral 22021 3043 / 070 8 Horizontal connector 22022 3054 / 071 9 Bottom left paren 22023 3136 / 072 : Logical and 22024 3137 / 073 ; Logical or 22025 3074 / 074 Less than - Less than or equal 22026 3052 / 075 = Bottom right square bracket 22027 3076 / 076 Greater than - Greater than or equal 22028 3132 / 077 ? Is included in 22029 3100 / 100 @ Therefore 22030 3105 / 101 A Nabla, del 22031 3102 / 102 B Inifinity 22032 3121 / 103 C Capital psi 22033 3106 / 104 D Capital phi 22034 3173 / 105 E Left arrow 22035 3140 / 106 F Logical not 22036 3114 / 107 G Capital lambda 22037 2066 / 110 H Paragraph 22038 3174 / 111 I Upward arrow 22039 3134 / 112 J Intersection 22040 2047 / 113 K Section 22041 3127 / 114 L Capital omega 22042 3157 / 115 M Partial derivative 22043 3110 / 116 N Is approximate to 22044 3176 / 117 O Downard arrow 22045 0000 / 120 P (Spare location rings bell to indicate error) 22046 3107 / 121 Q Capital gamma 22047 3112 / 122 R Capital theta 22048 3123 / 123 S Capital sigma 22049 3175 / 124 T Right arrow 22050 3130 / 125 U Captial xi 22051 3101 / 126 V Variation, proportional to 22052 3104 / 127 W Capital delta 22053 3117 / 130 X Identical to 22054 3131 / 131 Y Capital upsilon 22055 3111 / 132 Z Similar or equal to 22056 3160 / 133 [ Small pi 22057 3075 / 134 \ Not equal 22058 3116 / 135 ] Implies 22059 3061 / 136 ^ Top left summation 22060 3047 / 137 _ Top left square bracket 22061 3064 / 140 ` Bottom vertical summation connector 22062 3141 / 141 a Small alpha 22063 3142 / 142 b Small beta 22064 3161 / 143 c Small psi 22065 3146 / 144 d Small phi 22066 3145 / 145 e Small epsilon 22067 3166 / 146 f Function 22068 3154 / 147 g Small lambda 22069 3150 / 150 h Small eta 22070 3151 / 151 i Small iota 22071 3135 / 152 j Union 22072 3153 / 153 k Small kapa 22073 3167 / 154 l Small omega 22074 2065 / 155 m Small mu 22075 3156 / 156 n Small nu 22076 2060 / 157 o Degree 22077 3162 / 160 p Small rho 22078 3147 / 161 q Small gamma 22079 3152 / 162 r Small theta 22080 3163 / 163 s Small sigma 22081 3164 / 164 t Small tau 22082 3170 / 165 u Small xi 22083 3113 / 166 v Times, cross product 22084 3144 / 167 w Small delta 22085 3143 / 170 x Small chi 22086 3171 / 171 y Small upsilon 22087 3172 / 172 z Small zeta 22088 3120 / 173 { Captial pi 22089 3077 / 174 | Integral 22090 3115 / 175 } If and only if 22091 3063 / 176 ~ Top vertical summation connector 22092 0000 / 177 Delete key is not allowed 22093 > 22094 22095 IFDEF ENGLSH < 22096 IFNDEF V30FAO < 22097 3042 / 041 ! Top left radical 22098 2067 / 042 " Middle dot 22099 3065 / 043 # Top right summation 22100 3066 / 044 $ Bottom right summation 22101 2061 / 045 % Plus minus 22102 3044 / 046 & Top integral 22103 3103 / 047 ' Divided by 22104 3053 / 050 ( Top left paren 22105 3055 / 051 ) Top right paren 22106 3046 / 052 * Vertical connentor 22107 3051 / 053 + Top right square bracket 22108 1133 / 054 , Left square bracket 22109 3050 / 055 - Bottom left square bracket 22110 1135 / 056 . Right square bracket 22111 3133 / 057 / Includes 22112 3056 / 060 0 Bottom right paren 22113 3041 / 061 1 Left radical 22114 3126 / 062 2 Radical 22115 3057 / 063 3 Left middle brace 22116 3060 / 064 4 Right middle brace 22117 3067 / 065 5 Right middle summation 22118 3062 / 066 6 Bottom left summation 22119 3045 / 067 7 Bottom intergral 22120 3043 / 070 8 Horizontal connector 22121 3054 / 071 9 Bottom left paren 22122 3136 / 072 : Logical and 22123 3137 / 073 ; Logical or 22124 3074 / 074 Less than - Less than or equal 22125 3052 / 075 = Bottom right square bracket 22126 3076 / 076 Greater than - Greater than or equal 22127 3132 / 077 ? Is included in 22128 3100 / 100 @ Therefore 22129 3105 / 101 A Nabla, del 22130 3102 / 102 B Inifinity 22131 3121 / 103 C Capital psi 22132 3106 / 104 D Capital phi 22133 3173 / 105 E Left arrow 22134 3140 / 106 F Logical not 22135 3114 / 107 G Capital lambda 22136 2066 / 110 H Paragraph 22137 3174 / 111 I Upward arrow 22138 3134 / 112 J Intersection 22139 2047 / 113 K Section 22140 3127 / 114 L Capital omega 22141 3157 / 115 M Partial derivative 22142 3110 / 116 N Is approximate to 22143 3176 / 117 O Downard arrow 22144 0000 / 120 P (Spare location rings bell to indicate error) 22145 3107 / 121 Q Capital gamma 22146 3112 / 122 R Capital theta 22147 3123 / 123 S Capital sigma 22148 3175 / 124 T Right arrow 22149 3130 / 125 U Captial xi 22150 3101 / 126 V Variation, proportional to 22151 3104 / 127 W Capital delta 22152 3117 / 130 X Identical to 22153 3131 / 131 Y Capital upsilon 22154 3111 / 132 Z Similar or equal to 22155 3160 / 133 [ Small pi 22156 3075 / 134 \ Not equal 22157 3116 / 135 ] Implies 22158 3061 / 136 ^ Top left summation 22159 3047 / 137 _ Top left square bracket 22160 3064 / 140 ` Bottom vertical summation connector 22161 3141 / 141 a Small alpha 22162 3142 / 142 b Small beta 22163 3161 / 143 c Small psi 22164 3146 / 144 d Small phi 22165 3145 / 145 e Small epsilon 22166 3166 / 146 f Function 22167 3154 / 147 g Small lambda 22168 3150 / 150 h Small eta 22169 3151 / 151 i Small iota 22170 3135 / 152 j Union 22171 3153 / 153 k Small kapa 22172 3167 / 154 l Small omega 22173 2065 / 155 m Small mu 22174 3156 / 156 n Small nu 22175 2060 / 157 o Degree 22176 3162 / 160 p Small rho 22177 3147 / 161 q Small gamma 22178 3152 / 162 r Small theta 22179 3163 / 163 s Small sigma 22180 3164 / 164 t Small tau 22181 3170 / 165 u Small xi 22182 3113 / 166 v Times, cross product 22183 3144 / 167 w Small delta 22184 3143 / 170 x Small chi 22185 3171 / 171 y Small upsilon 22186 3172 / 172 z Small zeta 22187 3120 / 173 { Captial pi 22188 3077 / 174 | Integral 22189 3115 / 175 } If and only if 22190 3063 / 176 ~ Top vertical summation connector 22191 0000 / 177 Delete key is not allowed 22192 > 22193 22194 IFDEF V30FAO < 22195 3042 / 041 ! Top left radical 22196 3100 / 042 " Therefore 22197 0000 / 043 # ----- 22198 3066 / 044 $ Bottom right summation 22199 2061 / 045 % Plus minus 22200 3061 / 046 & Top left summation 22201 3050 / 047 ' Bottom left square bracket 22202 3046 / 050 ( Vertical connector 22203 3053 / 051 ) Top left paren 22204 3115 / 052 * Iff (if and only if) 22205 3116 / 053 + Implies 22206 1133 / 054 , Left square bracket 22207 3133 / 055 - Includes 22208 1135 / 056 . Right square bracket 22209 3044 / 057 / Top integral 22210 3056 / 060 0 Bottom right paren 22211 3041 / 061 1 Left radical 22212 3126 / 062 2 Radical 22213 3057 / 063 3 Left middle brace 22214 3060 / 064 4 Right middle brace 22215 3067 / 065 5 Right middle summation 22216 3062 / 066 6 Bottom left summation 22217 3045 / 067 7 Bottom intergral 22218 3043 / 070 8 Horizontal connector 22219 3054 / 071 9 Bottom left paren 22220 1135 / 072 : Right square bracket 22221 1133 / 073 ; Left square bracket 22222 3074 / 074 Less than - Less than or equal 22223 3055 / 075 = Top right paren 22224 3076 / 076 Greater than - Greater than or equal 22225 3047 / 077 ? Top left square bracket 22226 0000 / 100 @ ----------- 22227 3105 / 101 A Nabla, del 22228 3102 / 102 B Inifinity 22229 3121 / 103 C Capital psi 22230 3106 / 104 D Capital phi 22231 3173 / 105 E Left arrow 22232 3140 / 106 F Logical not 22233 3114 / 107 G Capital lambda 22234 2066 / 110 H Paragraph 22235 3174 / 111 I Upward arrow 22236 3134 / 112 J Intersection 22237 2047 / 113 K Section 22238 3127 / 114 L Capital omega 22239 3157 / 115 M Partial derivative 22240 3110 / 116 N Is approximate to 22241 3176 / 117 O Downard arrow 22242 0000 / 120 P (Spare location rings bell to indicate error) 22243 3107 / 121 Q Capital gamma 22244 3112 / 122 R Capital theta 22245 3123 / 123 S Capital sigma 22246 3175 / 124 T Right arrow 22247 3130 / 125 U Captial xi 22248 3101 / 126 V Variation, proportional to 22249 3104 / 127 W Capital delta 22250 3117 / 130 X Identical to 22251 3131 / 131 Y Capital upsilon 22252 3111 / 132 Z Similar or equal to 22253 0000 / 133 [ ------ 22254 0000 / 134 \ ------ 22255 0000 / 135 ] ------ 22256 3120 / 136 ^ Capital Pi 22257 3132 / 137 _ Is included in 22258 3160 / 140 ` Small Pi 22259 3141 / 141 a Small alpha 22260 3142 / 142 b Small beta 22261 3161 / 143 c Small psi 22262 3146 / 144 d Small phi 22263 3145 / 145 e Small epsilon 22264 3166 / 146 f Function 22265 3154 / 147 g Small lambda 22266 3150 / 150 h Small eta 22267 3151 / 151 i Small iota 22268 3135 / 152 j Union 22269 3153 / 153 k Small kapa 22270 3167 / 154 l Small omega 22271 2065 / 155 m Small mu 22272 3156 / 156 n Small nu 22273 2060 / 157 o Degree 22274 3162 / 160 p Small rho 22275 3147 / 161 q Small gamma 22276 3152 / 162 r Small theta 22277 3163 / 163 s Small sigma 22278 3164 / 164 t Small tau 22279 3170 / 165 u Small xi 22280 3113 / 166 v Times, cross product 22281 3144 / 167 w Small delta 22282 3143 / 170 x Small chi 22283 3171 / 171 y Small upsilon 22284 3172 / 172 z Small zeta 22285 0000 / 173 { Captial pi 22286 0000 / 174 | Integral 22287 0000 / 175 } If and only if 22288 3077 / 176 ~ Integral 22289 0000 / 177 Delete key is not allowed 22290 > 22291 > 22292 22293 22294 IFDEF V30NOR < 22295 3042 / 041 ! Top left Radical 22296 3100 / 042 " Therefor 22297 3065 / 043 # Top Right Summ 22298 3066 / 044 $ Bott Right Summ 22299 2061 / 045 % +/- 22300 3061 / 046 & Top Left Summ 22301 3052 / 047 ' Divide by 22302 3046 / 050 ( Vertical Conn 22303 3053 / 051 ) Top Left Paren 22304 3077 / 052 * Vertical Bar 22305 3050 / 053 + Bott left Square bracket 22306 1133 / 054 , Left Sq Bracket 22307 3133 / 055 - Includes 22308 1135 / 056 . Right Sq Bracket 22309 3044 / 057 / Top Integral 22310 3056 / 060 0 Bott Right Paren 22311 3041 / 061 1 Left Radical 22312 3126 / 062 2 Radical 22313 3057 / 063 3 Left Midd Brace 22314 3060 / 064 4 Right Midd Brace 22315 3067 / 065 5 Right Midd Summ 22316 3062 / 066 6 Bott Right Summ 22317 3045 / 067 7 Bott Integral 22318 3043 / 070 8 Horr Conn 22319 3054 / 071 9 Bott Left Paren 22320 1135 / 072 : Right Sq Bracket 22321 1133 / 073 ; Left Sq Bracket 22322 3074 / 074 Less than - Lessthan or = 22323 3055 / 075 = Top Right Paren 22324 3076 / 076 G.T. Greater than Or = 22325 3047 / 077 ? Top Left Sq Bracket 22326 0000 / 100 @ ------- 22327 3105 / 101 A Nabla, del 22328 3102 / 102 B Inifinity 22329 3121 / 103 C Capital psi 22330 3106 / 104 D Capital phi 22331 3173 / 105 E Left arrow 22332 3140 / 106 F Logical not 22333 3114 / 107 G Capital lambda 22334 2066 / 110 H Paragraph 22335 3174 / 111 I Upward arrow 22336 3134 / 112 J Intersection 22337 2047 / 113 K Section 22338 3127 / 114 L Capital omega 22339 3157 / 115 M Partial derivative 22340 3110 / 116 N Is approximate to 22341 3176 / 117 O Downard arrow 22342 0000 / 120 P (Spare location rings bell to indicate error) 22343 3107 / 121 Q Capital gamma 22344 3112 / 122 R Capital theta 22345 3123 / 123 S Capital sigma 22346 3175 / 124 T Right arrow 22347 3130 / 125 U Captial xi 22348 3101 / 126 V Variation, proportional to 22349 3104 / 127 W Capital delta 22350 3117 / 130 X Identical to 22351 3131 / 131 Y Capital upsilon 22352 3111 / 132 Z Similar or equal to 22353 0000 / 133 ] ------- 22354 0000 / 134 \ ------- 22355 0000 / 135 ) ------- 22356 3115 / 136 ^ Iff 22357 3132 / 137 _ Is included in 22358 3051 / 140 ` Top Right Sq Bracket 22359 3141 / 141 a Small alpha 22360 3142 / 142 b Small beta 22361 3161 / 143 c Small psi 22362 3146 / 144 d Small phi 22363 3145 / 145 e Small epsilon 22364 3166 / 146 f Function 22365 3154 / 147 g Small lambda 22366 3150 / 150 h Small eta 22367 3151 / 151 i Small iota 22368 3135 / 152 j Union 22369 3153 / 153 k Small kapa 22370 3167 / 154 l Small omega 22371 2065 / 155 m Small mu 22372 3156 / 156 n Small nu 22373 2060 / 157 o Degree 22374 3162 / 160 p Small rho 22375 3147 / 161 q Small gamma 22376 3152 / 162 r Small theta 22377 3163 / 163 s Small sigma 22378 3164 / 164 t Small tau 22379 3170 / 165 u Small xi 22380 3113 / 166 v Times, cross product 22381 3144 / 167 w Small delta 22382 3143 / 170 x Small chi 22383 3171 / 171 y Small upsilon 22384 3172 / 172 z Small zeta 22385 0000 / 173 { ------- 22386 0000 / 174 | ------- 22387 0000 / 175 } ------- 22388 3064 / 176 ~ Bott Vertical Summ Conn 22389 > 22390 22391 22392 22393 IFDEF V30SWE < 22394 3042 / 041 ! Top left Radical 22395 3100 / 042 " Therefor 22396 3065 / 043 # Top Right Summ 22397 3066 / 044 $ Bott Right Summ 22398 2061 / 045 % +/- 22399 3061 / 046 & Top Left Summ 22400 3052 / 047 ' Divide by 22401 3046 / 050 ( Vertical Conn 22402 3053 / 051 ) Top Left Paren 22403 3077 / 052 * Vertical Bar 22404 3050 / 053 + Bott left Square bracket 22405 1133 / 054 , Left Sq Bracket 22406 3133 / 055 - Includes 22407 1135 / 056 . Right Sq Bracket 22408 3044 / 057 / Top Integral 22409 3056 / 060 0 Bott Right Paren 22410 3041 / 061 1 Left Radical 22411 3126 / 062 2 Radical 22412 3057 / 063 3 Left Midd Brace 22413 3060 / 064 4 Right Midd Brace 22414 3067 / 065 5 Right Midd Summ 22415 3062 / 066 6 Bott Right Summ 22416 3045 / 067 7 Bott Integral 22417 3043 / 070 8 Horr Conn 22418 3054 / 071 9 Bott Left Paren 22419 1135 / 072 : Right Sq Bracket 22420 1133 / 073 ; Left Sq Bracket 22421 3074 / 074 Less than - Lessthan or = 22422 3055 / 075 = Top Right Paren 22423 3076 / 076 G.T. Greater than Or = 22424 3047 / 077 ? Top Left Sq Bracket 22425 0000 / 100 @ ------- 22426 3105 / 101 A Nabla, del 22427 3102 / 102 B Inifinity 22428 3121 / 103 C Capital psi 22429 3106 / 104 D Capital phi 22430 3173 / 105 E Left arrow 22431 3140 / 106 F Logical not 22432 3114 / 107 G Capital lambda 22433 2066 / 110 H Paragraph 22434 3174 / 111 I Upward arrow 22435 3134 / 112 J Intersection 22436 2047 / 113 K Section 22437 3127 / 114 L Capital omega 22438 3157 / 115 M Partial derivative 22439 3110 / 116 N Is approximate to 22440 3176 / 117 O Downard arrow 22441 0000 / 120 P (Spare location rings bell to indicate error) 22442 3107 / 121 Q Capital gamma 22443 3112 / 122 R Capital theta 22444 3123 / 123 S Capital sigma 22445 3175 / 124 T Right arrow 22446 3130 / 125 U Captial xi 22447 3101 / 126 V Variation, proportional to 22448 3104 / 127 W Capital delta 22449 3117 / 130 X Identical to 22450 3131 / 131 Y Capital upsilon 22451 3111 / 132 Z Similar or equal to 22452 0000 / 133 ] ------- 22453 0000 / 134 \ ------- 22454 0000 / 135 ) ------- 22455 0000 / 136 ^ ------- 22456 3132 / 137 _ Is included in 22457 3051 / 140 ` Top Right Sq Bracket 22458 3141 / 141 a Small alpha 22459 3142 / 142 b Small beta 22460 3161 / 143 c Small psi 22461 3146 / 144 d Small phi 22462 3145 / 145 e Small epsilon 22463 3166 / 146 f Function 22464 3154 / 147 g Small lambda 22465 3150 / 150 h Small eta 22466 3151 / 151 i Small iota 22467 3135 / 152 j Union 22468 3153 / 153 k Small kapa 22469 3167 / 154 l Small omega 22470 2065 / 155 m Small mu 22471 3156 / 156 n Small nu 22472 2060 / 157 o Degree 22473 3162 / 160 p Small rho 22474 3147 / 161 q Small gamma 22475 3152 / 162 r Small theta 22476 3163 / 163 s Small sigma 22477 3164 / 164 t Small tau 22478 3170 / 165 u Small xi 22479 3113 / 166 v Times, cross product 22480 3144 / 167 w Small delta 22481 3143 / 170 x Small chi 22482 3171 / 171 y Small upsilon 22483 3172 / 172 z Small zeta 22484 0000 / 173 { ------- 22485 0000 / 174 | ------- 22486 0000 / 175 } ------- 22487 3064 / 176 ~ Bott Vertical Summ Conn 22488 > 22489 22490 22491 22492 22493 IFDEF SPANISH < 22494 3042 / 041 ! Top left radical 22495 3100 / 042 " Therefore 22496 0000 / 043 # ----- 22497 3066 / 044 $ Bottom right summation 22498 2061 / 045 % Plus minus 22499 3061 / 046 & Top left summation 22500 3050 / 047 ' Bottom left square bracket 22501 3046 / 050 ( Vertical connector 22502 3053 / 051 ) Top left paren 22503 3115 / 052 * Iff (if and only if) 22504 3116 / 053 + Implies 22505 1133 / 054 , Left square bracket 22506 3133 / 055 - Includes 22507 1135 / 056 . Right square bracket 22508 3044 / 057 / Top integral 22509 3056 / 060 0 Bottom right paren 22510 3041 / 061 1 Left radical 22511 3126 / 062 2 Radical 22512 3057 / 063 3 Left middle brace 22513 3060 / 064 4 Right middle brace 22514 3067 / 065 5 Right middle summation 22515 3062 / 066 6 Bottom left summation 22516 3045 / 067 7 Bottom intergral 22517 3043 / 070 8 Horizontal connector 22518 3054 / 071 9 Bottom left paren 22519 1135 / 072 : Right square bracket 22520 1133 / 073 ; Left square bracket 22521 3074 / 074 Less than - Less than or equal 22522 3055 / 075 = Top right paren 22523 3076 / 076 Greater than - Greater than or equal 22524 3047 / 077 ? Top left square bracket 22525 0000 / 100 @ ----------- 22526 3105 / 101 A Nabla, del 22527 3102 / 102 B Inifinity 22528 3121 / 103 C Capital psi 22529 3106 / 104 D Capital phi 22530 3173 / 105 E Left arrow 22531 3140 / 106 F Logical not 22532 3114 / 107 G Capital lambda 22533 2066 / 110 H Paragraph 22534 3174 / 111 I Upward arrow 22535 3134 / 112 J Intersection 22536 2047 / 113 K Section 22537 3127 / 114 L Capital omega 22538 3157 / 115 M Partial derivative 22539 3110 / 116 N Is approximate to 22540 3176 / 117 O Downard arrow 22541 0000 / 120 P (Spare location rings bell to indicate error) 22542 3107 / 121 Q Capital gamma 22543 3112 / 122 R Capital theta 22544 3123 / 123 S Capital sigma 22545 3175 / 124 T Right arrow 22546 3130 / 125 U Captial xi 22547 3101 / 126 V Variation, proportional to 22548 3104 / 127 W Capital delta 22549 3117 / 130 X Identical to 22550 3131 / 131 Y Capital upsilon 22551 3111 / 132 Z Similar or equal to 22552 0000 / 133 [ ------ 22553 0000 / 134 \ ------ 22554 0000 / 135 ] ------ 22555 3120 / 136 ^ Capital Pi 22556 3132 / 137 _ Is included in 22557 3160 / 140 ` Small Pi 22558 3141 / 141 a Small alpha 22559 3142 / 142 b Small beta 22560 3161 / 143 c Small psi 22561 3146 / 144 d Small phi 22562 3145 / 145 e Small epsilon 22563 3166 / 146 f Function 22564 3154 / 147 g Small lambda 22565 3150 / 150 h Small eta 22566 3151 / 151 i Small iota 22567 3135 / 152 j Union 22568 3153 / 153 k Small kapa 22569 3167 / 154 l Small omega 22570 2065 / 155 m Small mu 22571 3156 / 156 n Small nu 22572 2060 / 157 o Degree 22573 3162 / 160 p Small rho 22574 3147 / 161 q Small gamma 22575 3152 / 162 r Small theta 22576 3163 / 163 s Small sigma 22577 3164 / 164 t Small tau 22578 3170 / 165 u Small xi 22579 3113 / 166 v Times, cross product 22580 3144 / 167 w Small delta 22581 3143 / 170 x Small chi 22582 3171 / 171 y Small upsilon 22583 3172 / 172 z Small zeta 22584 0000 / 173 { Captial pi 22585 0000 / 174 | Integral 22586 0000 / 175 } If and only if 22587 3077 / 176 ~ Integral 22588 0000 / 177 Delete key is not allowed 22589 > 22590 22591 22592 22593 IFDEF ITALIAN < 22594 3132 / 041 ! Is included in 22595 3057 / 042 " Left middle brace 22596 0000 / 043 # --------------- 22597 3116 / 044 $ Implies 22598 2067 / 045 % Middle dot 22599 3115 / 046 & If and only if 22600 3060 / 047 ' Right middle brace 22601 3067 / 050 ( Right middle summation 22602 3050 / 051 ) Bottom left square bracket 22603 3075 / 052 * Not equal 22604 3051 / 053 + Top right square bracket 22605 2065 / 054 , Small mu 22606 3052 / 055 - Bottom right square bracket 22607 1133 / 056 . Left square bracket 22608 1135 / 057 / Right square bracket 22609 3055 / 060 0 Top right paren 22610 3042 / 061 1 Top left radical 22611 3100 / 062 2 Therefore 22612 3065 / 063 3 Top right summation 22613 3066 / 064 4 Bottom right summation 22614 2061 / 065 5 Plus/minus 22615 3061 / 066 6 Top left summation 22616 3044 / 067 7 Top intergral 22617 3046 / 070 8 Vertical connector 22618 3053 / 071 9 Top left paren 22619 1135 / 072 : Right square bracket 22620 1133 / 073 ; Left square bracket 22621 3074 / 074 Less than - Less than or equal 22622 3120 / 075 = Capital Pi 22623 3076 / 076 Greater than - Greater than or equal 22624 3157 / 077 ? Partial derivative 22625 0000 / 100 @ ------------ 22626 3105 / 101 A Nabla, del 22627 3102 / 102 B Inifinity 22628 3121 / 103 C Capital psi 22629 3106 / 104 D Capital phi 22630 3173 / 105 E Left arrow 22631 3140 / 106 F Logical not 22632 3114 / 107 G Capital lambda 22633 2066 / 110 H Paragraph 22634 3174 / 111 I Upward arrow 22635 3134 / 112 J Intersection 22636 2047 / 113 K Section 22637 3127 / 114 L Capital omega 22638 3136 / 115 M Logical and 22639 3110 / 116 N Is approximate to 22640 3176 / 117 O Downard arrow 22641 0000 / 120 P (Spare location rings bell to indicate error) 22642 3107 / 121 Q Capital gamma 22643 3112 / 122 R Capital theta 22644 3123 / 123 S Capital sigma 22645 3175 / 124 T Right arrow 22646 3130 / 125 U Captial xi 22647 3101 / 126 V Variation, proportional to 22648 3111 / 127 W Similar or equal to 22649 3117 / 130 X Identical to 22650 3131 / 131 Y Capital upsilon 22651 3104 / 132 Z Capital Delta 22652 0000 / 133 [ -------------- 22653 0000 / 134 \ -------------- 22654 0000 / 135 ] -------------- 22655 3043 / 136 ^ Horizantal Connector 22656 3062 / 137 _ Bottom left summation 22657 3064 / 140 ` Bottom vertical summation connector 22658 3141 / 141 a Small alpha 22659 3142 / 142 b Small beta 22660 3161 / 143 c Small psi 22661 3146 / 144 d Small phi 22662 3145 / 145 e Small epsilon 22663 3166 / 146 f Function 22664 3154 / 147 g Small lambda 22665 3150 / 150 h Small eta 22666 3151 / 151 i Small iota 22667 3135 / 152 j Union 22668 3153 / 153 k Small kapa 22669 3167 / 154 l Small omega 22670 3137 / 155 m Logical or 22671 3156 / 156 n Small nu 22672 2060 / 157 o Degree 22673 3162 / 160 p Small rho 22674 3147 / 161 q Small gamma 22675 3152 / 162 r Small theta 22676 3163 / 163 s Small sigma 22677 3164 / 164 t Small tau 22678 3170 / 165 u Small xi 22679 3113 / 166 v Times, cross product 22680 3172 / 167 w Small zeta 22681 3143 / 170 x Small chi 22682 3171 / 171 y Small upsilon 22683 3144 / 172 z Small delta 22684 0000 / 173 { --------------- 22685 0000 / 174 | --------------- 22686 0000 / 175 } --------------- 22687 3063 / 176 ~ Top vertical summation connector 22688 0000 / 177 Delete key is not allowed 22689 > 22690 22691 / E N D O F T A B L E 22692 22693 / ROUTINE TO VALIDATE AND EXTRACT A TECH CHARACTER CODE FROM THE TABLE 22694 22695 TECVAL, XX / VALIDATE TECH CHARACTER full ^ undefined ^ 047600* 0000 22696 047601* 4777 JMS BHOOK / HOOK to BLAST to 22697 TEC8VAL / check for 8 bit character comming in /a233 undefined ^ 047602* 0000 22698 JMP TEC8CH / No skip return if char was 8 bit /A237 undefined ^ undefined ^ 047603* 5000 22699 22700 / Skip return if 7 bit was I/P /A237 22701 / NEXT BIT DONE IN BLAST AS NO ROOM FOR IT HERE /A237 22702 /D237TEC7BIT,TAD TECTMP / Get the character for translation /a233 22703 /D237 AND P177 / MASK OFF TO 7 BIT CHARACTER 22704 /D237 TAD (-41) / SUBTRACT OFF UNUSED CODES 22705 047604* 7510 SPA / IS CHARACTER IN LEGAL RANGE? 22706 JMP I TECVAL / NO, TAKE ERROR RETURN undefined ^ undefined ^ 047605* 5400 22707 TAD (TCMAP) / YES, COMBINE WITH TABLE ADDRESS undefined ^ undefined ^ 047606* 1376 22708 DCA TECTMP / STORE POINTER INTO MAP TABLE undefined ^ undefined ^ 047607* 3000 22709 TAD I TECTMP / PICK UP MAPED TECH CHARACTER CODE undefined ^ undefined ^ 047610* 1400 22710 047611* 7450 SNA / IS IT A VALID CHARACTER ? 22711 JMP I TECVAL / NO, TAKE ERROR RETURN undefined ^ undefined ^ 047612* 5400 22712 22713 TEC8CH, / HERE IF 8 BIT I/P. /A237 full ^ 22714 047613* 7450 SNA / AC=0 IF NOT IN 8 BIT TABLE /A237 22715 JMP TEC8RTN / IF SO, JUST RETURN /A237 undefined ^ undefined ^ 047614* 5000 22716 22717 DCA TECTMP / STORE CHARACTER FOR LATER USE /m233 undefined ^ undefined ^ 047615* 3000 22718 TAD TECTMP / BUILD GRAPHIC SET SELECTION undefined ^ undefined ^ 047616* 1000 22719 / G1 = 61, G2 = 62, G3 = 63 22720 R3L / SELECTION CONTAINED IN AC 0 - 2 undefined ^ 047617* 0000 22721 047620* 0375 AND (3) / MASK OFF LOW ORDER BITS 22722 047621* 1374 TAD (60) / BUILD ASCII CHARACTER 22723 DCA TECSET / STORE ASCII CHARACTER IN LIST undefined ^ undefined ^ 047622* 3000 22724 TAD TECTMP / GET SAVED TECH CHARACTER undefined ^ undefined ^ 047623* 1000 22725 AND P177 / MASK FOR 7 BIT CHARACTER undefined ^ undefined ^ 047624* 0000 22726 DCA TECMAP / STORE ASCII CHARACTER IN LIST undefined ^ undefined ^ 047625* 3000 22727 ISZ TECVAL / BUMP TO NORMAL RETURN undefined ^ undefined ^ 047626* 2000 22728 TEC8RTN,JMP I TECVAL / RETURN TO CALLER /m233 full ^ undefined ^ undefined ^ 047627* 5400 22729 22730 TECTMP, .-. / TEMPORARY LOCATION TO HOLD TECH CHARACTER full ^ 047630* 0000 22731 TECSET, .-. / VALUE OF G SET FOR TECH CHARACTER full ^ 047631* 0000 22732 TECMAP, .-. / VALUE OF MAPPED TECH CHARACTER full ^ 047632* 0000 22733 22734 X=. / INDICATE FIRST FREE LOCATION ON PAGE 22735 22736 /--------------------- 22737 047774* 0060 PAGE 047775* 0003 047776* 0000 047777* 5324 22738 22739 22740 FIELD 5 22741 RELOC 22742 *0 22743 22744 /*************************************************************************** 22745 /**** START OF OVERLAY **** 22746 /*************************************************************************** 22747 22748 OV2NUM=OV2NUM+200 / NEW OVERLAY 22749 OVRBLK=OV2NUM%200+DLOEDO+36 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 22750 22751 RELOC 22752 RELOC OVLAY2 22753 057000* 0200 OV2NUM 22754 22755 /*************************************************************************** 22756 / ALTERNATE INPUT LINE ROUTINE ENTRY POINT (RETURNS TO SEARCH OVERLAY) 22757 /*************************************************************************** 22758 22759 OVAGET= .-OVLAY2+OV2NUM / ALTERNATE GET OVERLAY ENTRY full ^ 22760 22761 ALTGET, JMS CLREOL / CLEAR TO END OF LINE AFTER PROMPT TEXT full ^ 057001* 4777 22762 22763 ALTCLR, CLA / SET UP FOR A CLEAR OPERATION full ^ 057002* 7200 22764 057003* 3126 DCA GETLEN / CLEAR NUMBER OF CHARACTERS IN BUFFER 22765 22766 ALTNXT, JMS ALTCHR / GO GET CHARACTER FROM KEYBOARD full ^ undefined ^ undefined ^ 057004* 4000 22767 057005* 3125 DCA GETTRM / SAVE THE CHARACTER JUST ENTERED BY USER 22768 22769 057006* 1125 TAD GETTRM / PICK UP THE CHARACTER JUST ENTERED BY USER 22770 057007* 1376 TAD (-40) / COMBINE WITH SPACE CODE 22771 057010* 7640 SZA CLA / IS CHARACTER A SPACE ? /C189 22772 JMP ALTNEG / NO, GO CHECK FOR A NEGATIVE VALUE undefined ^ undefined ^ 057011* 5000 22773 22774 057012* 1375 TAD (176) / YES, PICK UP GRAPHIC DISPLAY CHARACTER 22775 DCA ALTMS2 / STORE FOR GRAPHIC DISPLAY ROUTINE undefined ^ undefined ^ 057013* 3000 22776 JMP ALTGRA / GO DISPLAY SPACE. /C190 undefined ^ undefined ^ 057014* 5000 22777 22778 ALTNEG, TAD GETTRM / PICK UP THE CHARACTER JUST ENTERED BY USER full ^ 057015* 1125 22779 057016* 7510 SPA / CHECK FOR A REGULAR CHARACTER 22780 JMP ALTCAS / IT'S MINUS, IT'S A SPECIAL CHARACTER undefined ^ undefined ^ 057017* 5000 22781 22782 / DISPLAY REGULAR TEXT CHARACTER 22783 22784 JMS ALTTST / CHECK FOR OVERFLOW /A196 undefined ^ undefined ^ 057020* 4000 22785 057021* 1125 TAD GETTRM / GET CHARACTER ENTERED BY THE USER 22786 JMP ALTOX2 / SKIP OVER INITIAL JWAIT INSTRUCTION undefined ^ undefined ^ 057022* 5000 22787 ALTOX1, CIFSYS / CHANGE TO SYSTEM FIELD full ^ undefined ^ 057023* 0000 22788 JWAIT / WAIT FOR SIGNIFICANT EVENT undefined ^ 057024* 0000 22789 22790 ALTOX2, JMP ALT8BF / Test for 8 bit /A228 full ^ undefined ^ undefined ^ 057025* 5000 22791 / 22792 / Here because the char is NOT 8 bit 22793 / 22794 ALT7DP, TAD GETTRM / Get char back /A228 full ^ 057026* 1125 22795 CIFSYS / CHANGE TO SYSTEM FIELD undefined ^ 057027* 0000 22796 TTYOU / OUTPUT THE CHARACTER TO THE SCREEN undefined ^ 057030* 0000 22797 JMP ALTOX1 / BUSY, GO WAIT SOME MORE undefined ^ undefined ^ 057031* 5000 22798 JMP ALTBUF / GO STORE CHARACTER IN MENU TEXT BUFFER undefined ^ undefined ^ 057032* 5000 22799 22800 22801 ALTCAS, ZZCASE / CASE CHECK CHARACTER IN AC full ^ 057033* 4500 22802 XXFTBL-1 / CHARACTER TABLE. undefined ^ 057034* 7777 22803 22804 / EDPWFL; ALTRO / POWER FAIL CODE 22805 / EDRBCH; ALTRO / RUBOUT CHARACTER CODE 22806 / EDRBWD; ALTRW / RUB WORD CHARACTER CODE 22807 / EDNWLN; ALTCR / CARRIAGE RETURN CODE 22808 / EDTAB; ALTTAB / TAB 22809 / EDRULR; ALTXIT / GOLD:RULER KEYS 22810 / EDPAGE; ALTCHK / PAGE KEY 22811 / EDCONT; ALTXIT / CONTINUE 22812 / EDADVN; ALTXIT / ADVANCE KEY 22813 / EDBKUP; ALTXIT / BACKUP KEY 22814 / EDSRCH; ALTXIT / SEARCH KEY 22815 / EDCONT; ALTXIT / CONTINUE SEARCH KEY 22816 / EDPSTE; ALTCHK / PASTE KEY 22817 / EDDO; ALTXIT / DO KEY 22818 / EDENTR; ALTXIT / ENTER KEY 22819 / EDMENU; ALTXIT / GOLD:MENU KEY 22820 / EDRQSP; ALTRQS / GOLD:SPACE (REQUIRED SPACE) 22821 / EDTC; ALTTEC / TECHNICAL CHARACTER KEY 22822 / 0 22823 22824 ALTBAD, JMS BEEPER / ELSE ERROR full ^ 057035* 4774 22825 JMP ALTNXT / AND IGNORE RETURN undefined ^ undefined ^ 057036* 5000 22826 22827 ALTTEC, JMS ALTCHR / GO GET A CHARACTER FROM THE USER full ^ undefined ^ undefined ^ 057037* 4000 22828 057040* 7510 SPA / CHECK FOR A COMMAND CODE 22829 JMP ALTCAS / YES, IGNORE TECH CHAR KEY undefined ^ undefined ^ 057041* 5000 22830 JMS TECVAL / GO VALIDATE AND MAP TECH CHARACTER CODE undefined ^ undefined ^ 057042* 4000 22831 JMP ALTBAD / NOT A VALID KEY, GO REPORT THE ERROR undefined ^ undefined ^ 057043* 5000 22832 ALTFND, TAD TECTMP / PICK UP THE MAPPED TECH CHARACTER CODE full ^ undefined ^ undefined ^ 057044* 1000 22833 057045* 7040 CMA / MAKE IT NEGATIVE FOR SEARCH STRING 22834 057046* 3125 DCA GETTRM / SAVE CHARACTER FOR SEARCH 22835 TAD TECMAP / GET THE MAPPED ASCII CHARACTER CODE undefined ^ undefined ^ 057047* 1000 22836 DCA ALTMS2 / STORE FOR GRAPHIC DISPLAY ROUTINE undefined ^ undefined ^ 057050* 3000 22837 TAD TECSET / PICK UP THE GRAPHICS SET NUMBER undefined ^ undefined ^ 057051* 1000 22838 057052* 1373 TAD (-62) / SUBTRACT OFF MIDDLE VALUE 22839 057053* 7440 SZA / CHECK FOR G2 CHARACTER SET 22840 JMP ALTTC1 / NO, GO CONTINUE CHECK undefined ^ undefined ^ 057054* 5000 22841 057055* 1372 TAD (7400) / YES, SET DEC MULTI NATIONAL SET 22842 JMP ALTSET / GO SAVE IT & DISPLAY GRAPHIC CHARACTER undefined ^ undefined ^ 057056* 5000 22843 ALTTC1, SPA CLA / CHECK FOR G3 CHARACTER SET full ^ 057057* 7710 22844 JMP ALTTC2 / NO, GO SET UP FOR THE G1 SET undefined ^ undefined ^ 057060* 5000 22845 057061* 1371 TAD (7600) / YES, SET DEC TECHNICAL CHARACTER SET 22846 JMP ALTSET / GO SAVE IT & DISPLAY GRAPHIC CHARACTER undefined ^ undefined ^ 057062* 5000 22847 ALTTC2, TAD ("B&77^100) / G1 SET, SET TO US ASCII CHARACTER SET full ^ 057063* 1370 22848 JMP ALTSET / GO SAVE IT & DISPLAY GRAPHIC CHARACTER undefined ^ undefined ^ 057064* 5000 22849 22850 ALTRQS, TAD (166) / REQUIRED SPACE. DISPLAY GRAPHIC BOTTOM "T" full ^ 057065* 1367 22851 DCA ALTMS2 / STORE FOR GRAPHIC DISPLAY ROUTINE undefined ^ undefined ^ 057066* 3000 22852 AC7777 / GET EDIT BUFFER CHARACTER FOR SEARCH undefined ^ 057067* 0000 22853 JMP ALTSAV / GO SAVE IT & DISPLAY GRAPHIC CHARACTER undefined ^ undefined ^ 057070* 5000 22854 22855 ALTTAB, TAD ("b&177) / TAB CHARACTER. DISPLAY GRAPHIC "HT" CODE full ^ 057071* 1366 22856 DCA ALTMS2 / STORE FOR GRAPHIC DISPLAY ROUTINE undefined ^ undefined ^ 057072* 3000 22857 TAD (ECTAB) / GET EDIT BUFFER CHARACTER FOR SEARCH undefined ^ undefined ^ 057073* 1365 22858 JMP ALTSAV / GO SAVE IT & DISPLAY GRAPHIC CHARACTER undefined ^ undefined ^ 057074* 5000 22859 22860 ALTCR, TAD ("d&177) / CARRIAGE RETURN. DISPLAY GRAPHIC "CR" CODE full ^ 057075* 1364 22861 DCA ALTMS2 / STORE FOR GRAPHIC DISPLAY ROUTINE undefined ^ undefined ^ 057076* 3000 22862 TAD (ECNWLN) / GET EDIT BUFFER CHARACTER FOR SEARCH undefined ^ undefined ^ 057077* 1365 22863 22864 ALTSAV, DCA GETTRM / SAVE CHARACTER FOR SEARCH full ^ 057100* 3125 22865 ALTGRA, TAD ("0&77^100) / PICK UP GRAPHIC CHARACTER SET SELECTION full ^ 057101* 1363 22866 ALTSET, DCA ALTMS1 / STORE FOR CHARACTER SET SELECTION full ^ undefined ^ undefined ^ 057102* 3000 22867 22868 JMS ALTTST / CHECK FOR OVERFLOW /A220 undefined ^ undefined ^ 057103* 4000 22869 057104* 4762 JMS MNUGET / GET VALUE OF LANGUAGE WORD 22870 MNLANG / LOCATION OF LANGUAGE WORD undefined ^ 057105* 0000 22871 DCA ALTMS3 / SAVE WORD FOR SCREEN OUTPUT undefined ^ undefined ^ 057106* 3000 22872 22873 CIFMNU / CHANGE TO MENU FIELD undefined ^ 057107* 0000 22874 JMS I IOACAL / CALL SYSTEM DISPLAY ROUTINE undefined ^ undefined ^ 057110* 4400 22875 057111* 0000 0 / USE DEFAULT OUTPUT ROUTINE 22876 ALTMSG / CONTROL STRING TO SELECT LANGUAGE undefined ^ 057112* 0000 22877 ALTMS1 / POINTER TO CHARACTER SET SELECTION CODE undefined ^ 057113* 0000 22878 ALTMS2 / ASCII CHARACTER TO BE OUTPUT undefined ^ 057114* 0000 22879 ALTMS3 / POINTER TO COPY OF LANGUAGE WORD undefined ^ 057115* 0000 22880 22881 ALTBUF, TAD GETTRM / GET CHARACTER ENTERED BY THE USER full ^ 057116* 1125 22882 JMS ALTST1 / SAVE CHARACTER IN MENU FIELD BUFFER undefined ^ undefined ^ 057117* 4000 22883 057120* 2126 ISZ GETLEN / INCREMENT THE CHARACTER COUNTER 22884 JMP ALTNXT / GO GET NEXT CHARACTER undefined ^ undefined ^ 057121* 5000 22885 22886 / TEST FOR OVERFLOW 22887 22888 ALTTST, XX / CHECK FOR CHARACTER OVERFLOW full ^ undefined ^ 057122* 0000 22889 AC0001 / BUMP THE COUNT FOR THIS CHARACTER undefined ^ 057123* 0000 22890 057124* 1126 TAD GETLEN / COMBINE WITH THE CHARACTER COUNT 22891 TAD ALTLIM / COMPARE AGAINST THE LIMIT undefined ^ undefined ^ 057125* 1000 22892 057126* 7700 SMA CLA / OVERFLOW IF POSITIVE OR ZERO 22893 JMP ALTBAD / ERROR - OVERFLOW HAS OCCURED undefined ^ undefined ^ 057127* 5000 22894 JMP I ALTTST / RETURN TO CALLER undefined ^ undefined ^ 057130* 5400 22895 22896 / SEE IF OK TO DO PAGE OR PASTE EXIT. 22897 22898 ALTCHK, TAD GETLEN / GET CURRENT LENGTH full ^ 057131* 1126 22899 057132* 7640 SZA CLA / ACC ZERO ? 22900 JMP ALTBAD / NO, GO BEEP THE BUZZER -- undefined ^ undefined ^ 057133* 5000 22901 /\ JMP ALTXIT / YES, ALLOW EXIT -- 22902 22903 ALTXIT, JMS ALTST1 / STORE ZERO IN LAST LOCATION OF BUFFER full ^ undefined ^ undefined ^ 057134* 4000 22904 057135* 5761 JMP OV2JRT / RETURN TO CALLER IN SEARCH OVERLAY 22905 22906 ALTMS1, XX / CHARACTER SET SELECTION CODE full ^ undefined ^ 057136* 0000 22907 ALTMS2, XX / ASCII CHARACTER TO BE OUTPUT full ^ undefined ^ 057137* 0000 22908 057140* 0000 0 / TERMINATOR FOR ASCII STRING 22909 ALTMS3, XX / COPY OF LANGUAGE WORD FROM MENU full ^ undefined ^ 057141* 0000 22910 22911 X=. / INDICATE FIRST FREE LOCATION ON PAGE 22912 22913 /------------------------------ 22914 057161* 5135 PAGE 057162* 1643 057163* 6000 057164* 0144 057165* 0000 057166* 0142 057167* 0166 057170* 0200 057171* 7600 057172* 7400 057173* 7716 057174* 0324 057175* 0176 057176* 7740 057177* 4563 22915 22916 / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 22917 / EXIT DISPATCH TABLE. 22918 / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 22919 XXFTBL, EDPWFL; ALTRO / POWER FAIL CODE full ^ undefined ^ 057200* 0000 undefined ^ 057201* 0000 22920 EDRBCH; ALTRO / RUBOUT CHARACTER CODE undefined ^ 057202* 0000 undefined ^ 057203* 0000 22921 EDRBWD; ALTRW / RUB WORD CHARACTER CODE undefined ^ 057204* 0000 undefined ^ 057205* 0000 22922 EDNWLN; ALTCR / CARRIAGE RETURN CODE undefined ^ 057206* 0000 undefined ^ 057207* 0000 22923 EDTAB; ALTTAB / TAB undefined ^ 057210* 0000 undefined ^ 057211* 0000 22924 EDRULR; ALTXIT / GOLD:RULER KEYS undefined ^ 057212* 0000 undefined ^ 057213* 0000 22925 EDPAGE; ALTCHK / PAGE KEY undefined ^ 057214* 0000 undefined ^ 057215* 0000 22926 EDCONT; ALTXIT / CONTINUE undefined ^ 057216* 0000 undefined ^ 057217* 0000 22927 EDADVN; ALTXIT / ADVANCE KEY undefined ^ 057220* 0000 undefined ^ 057221* 0000 22928 EDBKUP; ALTXIT / BACKUP KEY undefined ^ 057222* 0000 undefined ^ 057223* 0000 22929 EDSRCH; ALTXIT / SEARCH KEY undefined ^ 057224* 0000 undefined ^ 057225* 0000 22930 EDCONT; ALTXIT / CONTINUE SEARCH KEY undefined ^ 057226* 0000 undefined ^ 057227* 0000 22931 EDPSTE; ALTCHK / PASTE undefined ^ 057230* 0000 undefined ^ 057231* 0000 22932 /D189 EDDO; ALTXIT / DO 22933 EDDO; ALTBAD / DO - DISABLE KEY FOR NOW /A189 undefined ^ 057232* 0000 undefined ^ 057233* 0000 22934 EDENTR; ALTXIT / ENTER KEY undefined ^ 057234* 0000 undefined ^ 057235* 0000 22935 /D189 EDENTR; ALTBAD / ENTER KEY - DISABLE KEY FOR NOW /A189 22936 EDMENU; ALTXIT / GOLD:MENU KEY undefined ^ 057236* 0000 undefined ^ 057237* 0000 22937 EDRQSP; ALTRQS / GOLD:SPACE (REQUIRED SPACE) undefined ^ 057240* 0000 undefined ^ 057241* 0000 22938 EDTC; ALTTEC / TECHNICAL CHARACTER KEY undefined ^ 057242* 0000 undefined ^ 057243* 0000 22939 057244* 0000 0 / END OF TABLE INDICATOR 22940 22941 22942 / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 22943 / RUBOUT. 22944 / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 22945 ALTRO, JMS ALTROR / CALL RUBOUT ROUTINE ONCE full ^ undefined ^ undefined ^ 057245* 4000 22946 JMP ALTNXT / GO GET NEXT CHARACTER undefined ^ undefined ^ 057246* 5000 22947 22948 / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 22949 / RUBOUT WORD. 22950 / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 22951 ALTRW, JMS ALTROR / DO A RUBOUT full ^ undefined ^ undefined ^ 057247* 4000 22952 JMS ALTGT1 / PICK UP CHARACTER FROM MENU TEXT BUFFER undefined ^ undefined ^ 057250* 4000 22953 057251* 1377 TAD (-40) / SUBTRACT VALUE FOR A SPACE 22954 057252* 7640 SZA CLA / SITTING ON A BLANK? 22955 JMP ALTRW / NO - DO RUBOUT AGAIN undefined ^ undefined ^ 057253* 5000 22956 JMP ALTNXT / YES - DONE, GO GET NEXT CHARACTER undefined ^ undefined ^ 057254* 5000 22957 22958 / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 22959 / DO SCREEN RUBOUT. 22960 / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 22961 ALTROR, XX / ROUTINE TO RUBOUT A CHARACTER full ^ undefined ^ 057255* 0000 22962 AC7777 / SET UP TO DECREMENT THE COUNT undefined ^ 057256* 0000 22963 057257* 1126 TAD GETLEN / GET THE COUNT OF CHARACTERS ENTERED SO FAR 22964 057260* 7510 SPA / CHECK FOR A ZERO COUNT 22965 JMP ALTCLR / NONE, SO JUST IGNORE THE RUBOUT FUNCTION undefined ^ undefined ^ 057261* 5000 22966 22967 057262* 3126 DCA GETLEN / STORE THE DECREMENTED COUNT OF CHARACTERS 22968 CIFMNU / CHANGE TO MENU FIELD undefined ^ 057263* 0000 22969 JMS I IOACAL / CALL SYSTEM DISPLAY ROUTINE undefined ^ undefined ^ 057264* 4400 22970 057265* 0000 0 / USE DEFAULT OUTPUT ROUTINE 22971 ALTRUB / CONTROL STRING TO RUBOUT FUNCTION undefined ^ 057266* 0000 22972 JMP I ALTROR / RETURN TO CALLER undefined ^ undefined ^ 057267* 5400 22973 22974 ALTRUB, TEXT '^R' / RUBOUT BY BAKSPACE-SPACE-BACKSPACE full ^ 057270* 3622 057271* 0000 22975 22976 / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 22977 / SETUP ADDRESS VECTOR INTO MENU TEXT BUFFER. 22978 / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 22979 ALTADR, XX / ROUTINE TO SET THE BUFFER POINTER full ^ undefined ^ 057272* 0000 22980 AC0001 / SET THE ACCUMULATOR TO A VALUE OF ONE undefined ^ 057273* 0000 22981 057274* 1126 TAD GETLEN / PICK UP THE CHARACTER COUNT 22982 TAD (MNIBUF-1) / ADD TO THE USER'S BUFFER ADDRESS undefined ^ undefined ^ 057275* 1376 22983 JMP I ALTADR / RETURN TO CALLER undefined ^ undefined ^ 057276* 5400 22984 22985 / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 22986 / STORE CHARACTER IN THE MENU TEXT BUFFER. 22987 / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 22988 ALTST1, XX full ^ undefined ^ 057277* 0000 22989 DCA T1 / SAVE ACCUMULATOR FOR NOW. undefined ^ undefined ^ 057300* 3000 22990 JMS ALTADR / COMPUTE CURRENT ADDRESS undefined ^ undefined ^ 057301* 4000 22991 DCA ALTS04 / SAVE ADDRESS. undefined ^ undefined ^ 057302* 3000 22992 TAD T1 / RESTORE ACCUMULATOR undefined ^ undefined ^ 057303* 1000 22993 057304* 4775 JMS MNUPUT / SAVE IN MENU BUFFER 22994 ALTS04, .-. full ^ 057305* 0000 22995 JMP I ALTST1 undefined ^ undefined ^ 057306* 5400 22996 22997 / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 22998 / GET CHARACTER FROM MENU TEXT BUFFER. 22999 / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 23000 ALTGT1, XX full ^ undefined ^ 057307* 0000 23001 JMS ALTADR / COMPUTE CURRENT ADDRESS undefined ^ undefined ^ 057310* 4000 23002 DCA ALTG04 / SAVE ADDRESS. undefined ^ undefined ^ 057311* 3000 23003 057312* 4774 JMS MNUGET / SAVE IN MENU BUFFER 23004 ALTG04, .-. full ^ 057313* 0000 23005 JMP I ALTGT1 undefined ^ undefined ^ 057314* 5400 23006 23007 / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 23008 / GET CHARACTER FROM KEYBOARD BUFFER. 23009 / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 23010 ALTCHR, XX / GET CHARACTER FROM USER full ^ undefined ^ 057315* 0000 23011 JMP ALTINP / SKIP OVER JWAIT INSTRUCTION undefined ^ undefined ^ 057316* 5000 23012 23013 ALTWAT, CIFSYS / CHANGE TO SYSTEM FIELD full ^ undefined ^ 057317* 0000 23014 JWAIT / WAIT FOR SIGNIFICANT EVENT undefined ^ 057320* 0000 23015 23016 ALTINP, CIFSYS / CHANGE TO SYSTEM FIELD full ^ undefined ^ 057321* 0000 23017 XLTIN / GET A CHARACTER FROM THE KEYBOARD undefined ^ 057322* 0000 23018 JMP ALTWAT / NONE THERE, GO WAIT FOR SOME undefined ^ undefined ^ 057323* 5000 23019 JMP I ALTCHR / RETURN TO CALLER undefined ^ undefined ^ 057324* 5400 23020 23021 ALTMSG, TEXT '![(&^S^A![(&^S' / CONTROL STRING FOR GRAPHICS OUTPUT full ^ 057325* 4133 057326* 5046 057327* 3623 057330* 3601 057331* 4133 057332* 5046 057333* 3623 057334* 0000 23022 23023 23024 ALT8BF, AND (200) / Check 8th bit /A228 full ^ 057335* 0373 23025 057336* 7650 SNA CLA / /A228 23026 JMP ALT7DP / 7 bit job display and Insert it /A228 undefined ^ undefined ^ 057337* 5000 23027 057340* 1372 TAD (62) / Its 8 bit so must be MNC /A228 23028 DCA TECSET / Pretend its a tech /A228 undefined ^ undefined ^ 057341* 3000 23029 057342* 1125 TAD GETTRM / Get char /A228 23030 AND P177 / Strip 8th bit /A228 undefined ^ undefined ^ 057343* 0000 23031 DCA TECMAP / Store it /A228 undefined ^ undefined ^ 057344* 3000 23032 TAD TECMAP / Get it back /A228 undefined ^ undefined ^ 057345* 1000 23033 057346* 1371 TAD (2000) / Set precedence of 2 /A228 23034 / We can now rejoin main code as if we /A228 23035 / had found a Tech Char and set up the /A228 23036 / things that TECVAL would do ! /A228 23037 JMP ALTFND undefined ^ undefined ^ 057347* 5000 23038 23039 X=. / INDICATE FIRST FREE LOCATION ON PAGE 23040 23041 /------------------------------ 23042 23043 057371* 2000 PAGE 057372* 0062 057373* 0200 057374* 1643 057375* 1655 057376* 7777 057377* 7740 23044 23045 23046 /*************************************************************************** 23047 /**** START OF OVERLAY **** 23048 /*************************************************************************** 23049 23050 OV2NUM=OV2NUM+200 / NEW OVERLAY 23051 OVRBLK=OV2NUM%200+DLOEDO+36 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 23052 23053 RELOC 23054 RELOC OVLAY2 23055 057000* 0400 OV2NUM 23056 / 23057 / THIS IS A CONTINUATION OF OVVIEW. 23058 / IT IS A LOOP THAT PUTS UP THE VIEW MODE SCREEN. 23059 / 23060 23061 OVVWB1= .-OVLAY2+OV2NUM full ^ 23062 23063 / COPY VARIABLES FROM LAST OVERLAY TO THIS OVERLAY 23064 / FROM SUBR ENTRY POINTS USED AS TEMP VARIABLES ACROSS OVLJMP 23065 23066 /D219 TAD I ADVSPC&177 23067 057001* 1777 TAD VWX1 /A219 23068 DCA VIEWX1 undefined ^ undefined ^ 057002* 3000 23069 /D219 TAD I BKPSPC&177 23070 057003* 1776 TAD VWX2 /A219 23071 DCA VIEWX2 undefined ^ undefined ^ 057004* 3000 23072 / 23073 057005* 1135 TAD CURPTR / SAVE CURRENT TEXT PTR 23074 DCA VIEWCP undefined ^ undefined ^ 057006* 3000 23075 / 23076 / DISPLAY NEXT TEXT LINE 23077 / 23078 VIEWB1, JMS VIEWAC / POSITION CURSOR AT NEXT TEXT LINE full ^ undefined ^ undefined ^ 057007* 4000 23079 TAD I VIEWX1 undefined ^ undefined ^ 057010* 1400 23080 057011* 3135 DCA CURPTR / SET TO START OF LINE 23081 057012* 4775 JMS LODCHR 23082 JMP VIEWB2 / QUIT IF EOF undefined ^ undefined ^ 057013* 5000 23083 / 23084 / DISPLAY NEXT TEXT LINE 23085 / 23086 VIEWB3, JMS VIEWLK / LOOK UP IN SPECIAL TABLE full ^ undefined ^ undefined ^ 057014* 4000 23087 JMP VIEWB4 / JUMP IF NORMAL (NOT IN TABLE) undefined ^ undefined ^ 057015* 5000 23088 057016* 7450 SNA / AC=SPECIAL GRAPHICS CHAR TO DISPLAY 23089 JMP VIEWB5 / JUMP IF IGNORE CHAR undefined ^ undefined ^ 057017* 5000 23090 DCA VIEWTP / ELSE SAVE TYPE undefined ^ undefined ^ 057020* 3000 23091 TAD VIEWTP / CHECK FOR PAGE-RULER undefined ^ undefined ^ 057021* 1000 23092 057022* 7004 RAL 23093 057023* 7700 SMA CLA 23094 JMP VIEWB6 / JUMP IF NOT undefined ^ undefined ^ 057024* 5000 23095 TAD VIEWX3 / PAGES AND RULERS undefined ^ undefined ^ 057025* 1000 23096 057026* 7640 SZA CLA 23097 JMP VIEWC1 / QUIT IF NOT WHOLE LINE undefined ^ undefined ^ 057027* 5000 23098 TAD VIEWTP undefined ^ undefined ^ 057030* 1000 23099 057031* 7006 RTL 23100 057032* 7700 SMA CLA 23101 JMP VIEWPG / JUMP IF PAGE undefined ^ undefined ^ 057033* 5000 23102 057034* 4774 JMS DSPRLN / ELSE DO RULER 23103 JMP VIEWC1 / AND QUIT undefined ^ undefined ^ 057035* 5000 23104 23105 23106 /D190 JMS VWMODE 23107 /D190 IFDEF ENGLSH < 23108 /D190 IFNDEF ENGCAN < 23109 /D190 "B&177 / LEAVE GRAPHICS MODE 23110 /D190 > / END IFNDEF ENGCAN 23111 /D190 IFDEF ENGCAN < 23112 /D190 "3-200 23113 /D190 > / END IFDEF ENGCAN 23114 /D190 > / END ENGLSH 23115 /D190 IFDEF CANADA < 23116 /D190 "3-200 23117 /D190 > / END IFDEF CANADA 23118 /D190 IFDEF FRENCH < 23119 /D190 "R-200 23120 /D190 > / END IFDEF FRENCH 23121 /D190 IFDEF DUTCH < 23122 /D190 "4-200 23123 /D190 > / END IFDEF DUTCH 23124 23125 VIEWB4, CDFBUF / PUT NORMAL CHAR full ^ undefined ^ 057036* 0000 23126 057037* 1535 TAD I CURPTR 23127 DCA VIEWTP / SAVE IN TEMP. undefined ^ undefined ^ 057040* 3000 23128 TAD VIEWTP / GET BACK. undefined ^ undefined ^ 057041* 1000 23129 AND P177 / CHECK FOR TAB CHARACTER. undefined ^ undefined ^ 057042* 0000 23130 TAD LITV01 / ... undefined ^ undefined ^ 057043* 1000 23131 057044* 7650 SNA CLA / SKIP IF NOT TAB. 23132 JMP VIEWB8 / JMP TO PROCESS THE TAB CHARACTER. undefined ^ undefined ^ 057045* 5000 23133 / 23134 / NOW CONSIDER WHAT TO DISPLAY BELOW TEXT CHAR. 23135 / IF CHAR WAS A "REQUIRED SPACE", THEN DISPLAY A "^" UNDERNEATH; 23136 / ELSE ATTRIBUTES WILL DETERMINE CHAR BELOW. 23137 / 23138 TAD VIEWTP / GET TEXT CHAR undefined ^ undefined ^ 057046* 1000 23139 TAD (-ECSTOV) / WAS CHAR AN OVERSTRIKE SEQUENCE? undefined ^ undefined ^ 057047* 1373 23140 057050* 7650 SNA CLA /M231 23141 057051* 5772 JMP VIEWBZ / Dead , find out what type bypass test /A231 23142 JMP VIEWBA / Not dead , display text char /A231 undefined ^ undefined ^ 057052* 5000 23143 /d231 TAD PUTSC6 / YES: WAS IT REALLY A REQUIRED SPACE? 23144 /d231 AND P177 / (IGNORE ATTRIBUTES) 23145 /d231 TAD (-ECSPC) 23146 /d231 SZA CLA 23147 /d231 JMP VIEWBA / NOT REQ SPC , CHECK MCS 23148 23149 / 23150 / We are here because we found a required space 23151 / 23152 23153 VIEWSP, TAD VIEWTP / GET CHARACTER TO OUTPUT BACK. /A231 full ^ undefined ^ undefined ^ 057053* 1000 23154 057054* 4771 JMS PUTSCH / DISPLAY TEXT CHAR /A231 23155 057055* 1370 TAD ("^&177+4000) / YES: DISPLAY "^" BELOW REQUIRED SPACE 23156 JMP VIEWB9 undefined ^ undefined ^ 057056* 5000 23157 23158 / SHOW ATTRIBUTES (SUPERSCRIPT, SUBSCRIPT, "BREAKING", AND 23159 / REDUNDANT BOLD) BENEATH TEXT CHAR. 23160 / 23161 23162 VIEWBA, TAD VIEWTP / GET CHARACTER TO OUTPUT BACK. /M231 full ^ undefined ^ undefined ^ 057057* 1000 23163 057060* 4771 JMS PUTSCH / DISPLAY TEXT CHAR /M231 23164 JMP VIEWBC / And now attributes /M231 undefined ^ undefined ^ 057061* 5000 23165 VIEWBB, full ^ 23166 057062* 0000 CDFMYF / Rejoined here from VIEWBZ so change /A231 23167 / back to buffer field /A231 23168 DCA VIEWTP / Save char with attributes /A231 undefined ^ undefined ^ 057063* 3000 23169 23170 23171 VIEWBC, TAD VIEWTP / GET CHAR BACK (FOR ATTRIBUTE BITS) full ^ undefined ^ undefined ^ 057064* 1000 23172 057065* 7010 RAR 23173 057066* 7002 BSW 23174 057067* 0367 AND (17) 23175 TAD (VIEWTD) undefined ^ undefined ^ 057070* 1373 23176 DCA T1 undefined ^ undefined ^ 057071* 3000 23177 TAD I T1 undefined ^ undefined ^ 057072* 1400 23178 057073* 7450 SNA 23179 JMP VIEWB7 / DON'T BOTHER WITH SPACES. undefined ^ undefined ^ 057074* 5000 23180 VIEWB9, DCA ATR / AND OUTPUT IT (ON THE NEXT LINE). full ^ undefined ^ undefined ^ 057075* 3000 23181 057076* 4515 PUTESC / ... 23182 057077* 4133 "[&177+4000 / "CURSOR DOWN" 23183 057100* 4102 "B&177+4000 / ... 23184 057101* 4010 10+4000 / "BACK SPACE" 23185 ATR, 0+4000 / THE ATTRIBUTE OF CHARACTER (OR "^") full ^ 057102* 4000 23186 057103* 4033 33+4000 / "CURSOR UP". 23187 057104* 4133 "[&177+4000 / ... 23188 057105* 0101 "A&177 / .... 23189 VIEWB7, JMS VIEWAD / BUMP COUNTER full ^ undefined ^ undefined ^ 057106* 4000 23190 JMP VIEWC1 / JUMP IF DONE undefined ^ undefined ^ 057107* 5000 23191 VIEWB5, ADVSPC full ^ 057110* 4517 23192 JMP VIEWB2 / ELSE ADVANCE PTR undefined ^ undefined ^ 057111* 5000 23193 JMP VIEWB3 / AND LOOP undefined ^ undefined ^ 057112* 5000 23194 23195 VIEWB8, TAD VIEWTP / GET THE TAB BACK (WITH ATTRIBUTES) full ^ undefined ^ undefined ^ 057113* 1000 23196 TAD LITV02 / TRANSLATE TO GRAPHICS undefined ^ undefined ^ 057114* 1000 23197 VIEWB2, TAD (4000+EXGETX) / ETX SYMBOL full ^ undefined ^ undefined ^ 057115* 1366 23198 DCA VIEWTP undefined ^ undefined ^ 057116* 3000 23199 23200 /D190 JMS VWMODE 23201 /D190 "0-200 / ENTER GRAPHICS MODE 23202 23203 VIEWB6, CDFMYF / /A192 full ^ 057117* 0000 23204 057120* 4515 PUTESC / ENTER GRAPHICS MODE /A192 23205 057121* 4050 "(+3600 / /A192 23206 057122* 0060 "0-200 / /A192 23207 TAD VIEWTP / GET CHAR undefined ^ undefined ^ 057123* 1000 23208 057124* 4771 JMS PUTSCH 23209 057125* 4765 JMS MNUGET / PICK UP CURRENT LANGUAGE WORD /A192 23210 MNLANG / LOCATION FOR LANGUAGE WORD /A192 undefined ^ 057126* 0000 23211 057127* 7500 SMA / SKIP IF A NUMBER CODE /A192 23212 057130* 7001 IAC / CONVERT TO UPPER CASE ASCII /A192 23213 057131* 7002 BSW / PUT BITS INTO PROPER ORDER /A192 23214 DCA VWLNG / STORE IN LINE FOR PUTESC ROUTINE /A192 undefined ^ undefined ^ 057132* 3000 23215 23216 057133* 4515 PUTESC 23217 057134* 4050 "(+3600 23218 VWLNG, "0 / OVERLAYED WITH LANGUAGE CODE VALUE /A224 full ^ 057135* 0260 23219 23220 23221 TAD VIEWTP / CHECK FOR END undefined ^ undefined ^ 057136* 1000 23222 057137* 7700 SMA CLA 23223 JMP VIEWB7 / JUMP IF NOT undefined ^ undefined ^ 057140* 5000 23224 23225 /D190 JMS VWMODE 23226 /D190 IFDEF ENGLSH < 23227 /D190 IFNDEF ENGCAN < 23228 /D190 "B-200 / LEAVE GRAPHICS MODE 23229 /D190 > / END IFNDEF ENGCAN 23230 /D190 IFDEF ENGCAN < 23231 /D190 "3-200 23232 /D190 > / END IFDEF ENGCAN 23233 /D190 > / END IFDEF ENGLSH 23234 /D190 IFDEF CANADA < 23235 /D190 "3-200 23236 /D190 > / END IFDEF CANADA 23237 /D190 IFDEF FRENCH < 23238 /D190 "R-200 23239 /D190 > / END IFDEF FRENCH 23240 /D190 IFDEF DUTCH < 23241 /D190 "4-200 23242 /D190 > / END IFDEF DUTCH 23243 23244 VIEWC1, JMP VIEWD1 / GET FIRST CHAR full ^ undefined ^ undefined ^ 057141* 5000 23245 23246 LITV01, -ECTAB full ^ undefined ^ 057142* 0000 23247 LITV02, EXGTAB-ECTAB-4000-EXGETX full ^ undefined ^ undefined ^ undefined ^ 057143* 4000 23248 23249 VIEWX1, 0 / -(# OF TEXT BUF LINES LEFT TO DISPLAY) full ^ 057144* 0000 23250 VIEWX2, 0 / PTR INTO PTRBLK FOR CURRENT DISPLAY LINE full ^ 057145* 0000 23251 VIEWX3, 0 / CURRENT COLUMN # full ^ 057146* 0000 23252 VIEWCP, 0 / SAVED CURPTR full ^ 057147* 0000 23253 VIEWTP, 0 / CURRENT CHARACTER BEING DISPLAYED full ^ 057150* 0000 23254 23255 OVRLOF= .-OVLAY2+OV2NUM full ^ 23256 JMP RLONOF /A192 undefined ^ undefined ^ 057151* 5000 23257 23258 X=. / INDICATE FIRST FREE LOCATION ON PAGE 23259 /--------------------- 23260 057165* 1643 PAGE 057166* 4000 057167* 0017 057170* 4136 057171* 3054 057172* 7742 057173* 0000 057174* 5541 057175* 4241 057176* 7737 057177* 7736 23261 23262 VIEWPG, CDFBUF / GET CHAR BACK full ^ undefined ^ 057200* 0000 23263 057201* 1535 TAD I CURPTR 23264 JMS I TLITEA / PUT PROPER PAGE MARKER undefined ^ undefined ^ 057202* 4400 23265 JMP VIEWC1 / AND QUIT undefined ^ undefined ^ 057203* 5000 23266 23267 TLITEA, PGECHO / **TEMP FOR OS/ 8 LIT POOL LIMIT BYPASS full ^ 057204* 4340 23268 23269 / 23270 / SET LOOP COUNTER AND CURLIN AND CURSOR POSITION 23271 / 23272 VIEWAC, XX full ^ undefined ^ 057205* 0000 23273 057206* 0000 CDFMYF 23274 TAD VIEWX2 / GET LINE LOOP COUNTER undefined ^ undefined ^ 057207* 1000 23275 057210* 7124 STL RAL / TIMES 2, +1 23276 057211* 3144 DCA CURLIN / =LINE NUMBER FOR PCUR 23277 DCA VIEWX3 / CLEAR CHAR LOOP COUNTER undefined ^ undefined ^ 057212* 3000 23278 057213* 4777 JMS PCUR / MOVE CURSOR TO START OF LINE 23279 JMP I VIEWAC / AND RETURN undefined ^ undefined ^ 057214* 5400 23280 23281 23282 / 23283 / TEST LOOP COUNTER, TAKE SKIP RTN IF NOT DONE 23284 / 23285 VIEWAD, XX full ^ undefined ^ 057215* 0000 23286 057216* 0000 CDFMYF 23287 ISZ VIEWX3 / BUMP COUNTER undefined ^ undefined ^ 057217* 2000 23288 057220* 1177 TAD WIDNAR / WIDE SCREEN MODE? /M192 23289 057221* 7650 SNA CLA / SKIP IF NOT. COMPUTE MAX NARO WIDTH /M192 23290 057222* 1376 TAD (-WIDTH+COLM81) / COMPUTE MAX WIDE WIDTH 23291 057223* 1375 TAD (-COLM81) / COMPUTE MAX NARO WIDTH 23292 057224* 1047 TAD LOWLIM / Bais by start colm #. 23293 TAD VIEWX3 / SEE IF WITHIN LINE undefined ^ undefined ^ 057225* 1000 23294 057226* 7710 SPA CLA / SKIP IF YES. 23295 ISZ VIEWAD / SKIP RETURN WHEN DONE undefined ^ undefined ^ 057227* 2000 23296 JMP I VIEWAD undefined ^ undefined ^ 057230* 5400 23297 23298 /D190 / SUBR VWMODE -- ENTER/EXIT GRAPHICS MODE. 23299 /D190 / DOES NOT OUTPUT REDUNDANT ESCAPE SEQUENCES. 23300 /D190 / CHANGED TO PUT OUT "(" BEFORE CHARACTER FOR VT-278. 23301 /D190 / 23302 /D190 / CALL: 23303 /D190 / / AC & DF DON'T MATTER 23304 /D190 / JMS VWMODE 23305 /D190 / CHAR / ASCII CODE OF CHAR TO OUTPUT 23306 /D190 / 23307 /D190 VWMODE, XX 23308 /D190 CLA 23309 /D190 CDFMYF 23310 /D190 TAD I VWMODE 23311 /D190 CIA 23312 /D190 TAD VWMOD1 23313 /D190 SNA CLA 23314 /D190 JMP VWMOD2 23315 /D190 TAD I VWMODE 23316 /D190 DCA VWMOD1 23317 /D190 PUTESC 23318 /D190 "(+3600 23319 /D190 VWMOD1, .-. 23320 /D190 VWMOD2, ISZ VWMODE 23321 /D190 JMP I VWMODE 23322 23323 VIEWD1, CDFMYF full ^ 057231* 0000 23324 ISZ VIEWX1 / BUMP LINE PTR undefined ^ undefined ^ 057232* 2000 23325 ISZ VIEWX2 / AND COUNTER undefined ^ undefined ^ 057233* 2000 23326 JMP VIEWB1 / LOOP IF MORE LINES TO DO undefined ^ undefined ^ 057234* 5000 23327 TAD VIEWCP undefined ^ undefined ^ 057235* 1000 23328 057236* 3135 DCA CURPTR / ELSE RESTORE CURPTR 23329 23330 057237* 1174 TAD CURTMP / RESTORE CURSOR POSITION 23331 057240* 3136 DCA CURSOR 23332 23333 057241* 4523 OVLJMP 23334 057242* 3601 OVVWDX 23335 23336 VIEWLK, XX / LOOK UP FOR SPECIALS full ^ undefined ^ 057243* 0000 23337 057244* 0000 CDFMYF 23338 057245* 0374 AND (7777-200) / IGNORE BOLD BIT 23339 DCA T1 undefined ^ undefined ^ 057246* 3000 23340 TAD (VIEWTB-1) undefined ^ undefined ^ 057247* 1373 23341 DCA X0 / INIT TABLE SEARCH PTR undefined ^ undefined ^ 057250* 3000 23342 VIEWL1, TAD I X0 full ^ undefined ^ undefined ^ 057251* 1400 23343 057252* 7450 SNA 23344 JMP I VIEWLK / ZERO MARKS END (NOT SPECIAL) undefined ^ undefined ^ 057253* 5400 23345 TAD T1 / COMPARE undefined ^ undefined ^ 057254* 1000 23346 057255* 7640 SZA CLA 23347 JMP VIEWL1 / LOOP IF NOT EQUAL undefined ^ undefined ^ 057256* 5000 23348 TAD (VIEWTC-VIEWTB) / ELSE GET VALUE undefined ^ undefined ^ undefined ^ undefined ^ 057257* 1372 23349 TAD X0 undefined ^ undefined ^ 057260* 1000 23350 DCA T1 undefined ^ undefined ^ 057261* 3000 23351 TAD I T1 undefined ^ undefined ^ 057262* 1400 23352 057263* 7540 SMA SZA 23353 057264* 1175 TAD CHRATR / ADD ATTRIBUTES TO SOFT SPACES 23354 ISZ VIEWLK / BUMP TO OK RETURN undefined ^ undefined ^ 057265* 2000 23355 JMP I VIEWLK / AND TAKE IT undefined ^ undefined ^ 057266* 5400 23356 23357 VIEWTB, / LOOK UP TABLE full ^ 23358 -ECMDFL / LINE MOD FLAG undefined ^ 057267* 0000 23359 -ECNWLN / NEW LINE undefined ^ 057270* 0000 23360 -ECWWLN / WORD WRAP undefined ^ 057271* 0000 23361 -ECHYLN / HYPH WRAP undefined ^ 057272* 0000 23362 -ECPGRF / END PARA undefined ^ 057273* 0000 23363 -ECENLN / CENTERED LINE undefined ^ 057274* 0000 23364 -ECSLPT / SELECT POINT undefined ^ 057275* 0000 23365 -ECNWPG / NEW PAGE undefined ^ 057276* 0000 23366 -ECPMRK / PAGE MARKER undefined ^ 057277* 0000 23367 -ECPCT1 / START PRINT CONT. undefined ^ 057300* 0000 23368 -ECPCT2 / END PRINT CONT. undefined ^ 057301* 0000 23369 -ECSTRL / RULER START undefined ^ 057302* 0000 23370 -ECJSPC / JUSTIFY SPACE undefined ^ 057303* 0000 23371 VIEWTC, 0 / *** BELONGS TO TWO TABLES: full ^ 057304* 0000 23372 / VIEWTB: END OF TABLE 23373 / VIEWTC: VALUE FOR ECMDFL 23374 / FLAG BITS USED IN VIEWTC: 23375 / 4000=END OF LINE 23376 / 6000=PAGE 23377 / 7000=RULER 23378 23379 4000+EXGNLN / NEW LINE (CR) undefined ^ 057305* 4000 23380 4000+EXGWLN / WORD WRAPPED LINE (DEGREE) undefined ^ 057306* 4000 23381 4000+EXGHLN / HYPH WRAPPED (-) undefined ^ 057307* 4000 23382 4000+EXGPGF / PARA (T) undefined ^ 057310* 4000 23383 4000+EXGCEN / CENTERED LINE (+) undefined ^ 057311* 4000 23384 4000+EXGSLC / SELECT POINT (SOLID DIAMOND) undefined ^ 057312* 4000 23385 057313* 6000 6000 23386 057314* 6000 6000 23387 057315* 6000 6000 23388 057316* 6000 6000 23389 057317* 7000 7000 23390 EXGJSP undefined ^ 057320* 0000 23391 23392 / 23393 / VIEWTD -- ATTRIBUTE TRANSLATE TABLE 23394 / 23395 / TABLE VIEWTD IS INDEXED BY THE ATTRIBUTE FIELD OF THE 23396 / CURRENT CHAR (BITS 1-4). 23397 / VIEWTD CONTAINS THE CHARACTER THAT APPEARS DIRECTLY BELOW 23398 / EACH DOCUMENT CHARACTER IN VIEW MODE TO REVEAL THE 23399 / ATTRIBUTES OF THE DOCUMENT CHARACTER. 23400 / 23401 VIEWTD, / ATTRIBUTE TRANSLATE TABLE full ^ 23402 057321* 0000 0 / " " - NO ATTRIBUTE 23403 057322* 0000 0 / " " - BOLDED - NO SPECIAL CHAR 23404 057323* 0000 0 / " " - UNDERLINED - NO SPECIAL CHAR 23405 057324* 0000 0 / " " - BOLD & UNDERLINED - NO SPEC CHR 23406 23407 IFNDEF FRENCH < 23408 057325* 4161 "Q&177+40+4000 / "q" - SUPERSCRIPT 23409 057326* 4121 "Q&177+4000 / "Q" - BOLDED SUPERSCRIPT 23410 057327* 4141 "A&177+40+4000 / "a" - SUBSCRIPT 23411 057330* 4101 "A&177+4000 / "A" - BOLDED SUBSCRIPT 23412 > / END IFNDEF FRENCH 23413 23414 IFDEF FRENCH < 23415 "A+40+4000 / "a" - SUPERSCRIPT 23416 "A+4000 / "A" - BOLDED SUPERSCRIPT 23417 "Q+40+4000 / "q" - SUBSCRIPT 23418 "Q+4000 / "Q" - BOLDED SUBSCRIPT 23419 > / END IFDEF FRENCH 23420 23421 057331* 4057 "/&177+4000 / "/" - HYPHEN 23422 057332* 4057 "/&177+4000 / "/" - HYPHEN & BOLDED 23423 057333* 4057 "/&177+4000 / "/" - HYPHEN & UNDERLINED 23424 057334* 4057 "/&177+4000 / "/" - HYPHEN, UNDERLINED, & BOLDED 23425 23426 IFNDEF FRENCH < 23427 057335* 4161 "Q&177+40+4000 / "q" - HYPHEN & SUPERSCRIPT 23428 057336* 4121 "Q&177+4000 / "Q" - HYPHEN & BOLDED SUPERSCRIPT 23429 057337* 4141 "A&177+40+4000 / "a" - HYPHEN & SUBSCRIPT 23430 057340* 4101 "A&177+4000 / "A" - HYPHEN & BOLDED SUBSCRIPT 23431 > / END IFNDEF FRENCH 23432 23433 IFDEF FRENCH < 23434 "A+40+4000 / "a" - HYPHEN & SUPERSCRIPT 23435 "A+4000 / "A" - HYPHEN & BOLDED SUPERSCRIPT 23436 "Q+40+4000 / "q" - HYPHEN & SUBSCRIPT 23437 "Q+4000 / "Q" - HYPHEN & BOLDED SUBSCRIPT 23438 > / END IFDEF FRENCH 23439 23440 23441 23442 / +++ WE JUST GOT CALLED FROM EITHER OVINIT OR OVMENU IN OVERLAY #1 /A177 23443 / /A177 23444 / THIS ROUTINE IS CALLED FROM OVINIT AND OVMENU TO CHECK /A177 23445 / THE MNSTAT (EDITOR STATUS WORD) AND MODIFY THE CASE-TABLE /A177 23446 / AT RULOFF (IN WPEDIT) SUCH THAT RULERS ARE EITHER ON OR OFF /A177 23447 / /A177 23448 / MNSTAT = 0 OR 1 ... RULERS ON /A177 23449 / MNSTAT = 2 OR 3 ... RULERS OFF /A177 23450 / /A177 23451 23452 RLONOF, JMS MNUGET / GET THE EDITOR-STATUS-WORD /A177 full ^ 057341* 4771 23453 MNSTAT /A177 undefined ^ 057342* 0000 23454 057343* 1370 TAD (-2) /A177 23455 23456 057344* 7200 CLA / (FORCE RULERS TO BE ON ALL THE TIME) 23457 /D177 SPA CLA / RULERS ON OR OFF? /A177 23458 057345* 1367 TAD (PUTLNR-PUTLN3) / ...ON... /A177 23459 057346* 1366 TAD (PUTLN3) / ...OFF.. /A177 23460 057347* 3765 DCA RULOFF / MODIFY THE TABLE /A177 23461 057350* 5764 JMP OV2JRT / RETURN TO OVERLAY 2 JUMP ROUTINE /A177 23462 23463 X=. / INDICATE FIRST FREE LOCATION ON PAGE 23464 /--------------------- 23465 057364* 5135 PAGE 057365* 4675 057366* 4621 057367* 7775 057370* 7776 057371* 1643 057372* 0000 057373* 7777 057374* 7577 057375* 7660 057376* 7714 057377* 1400 23466 23467 /*************************************************************************** 23468 /**** START OF OVERLAY **** 23469 /*************************************************************************** 23470 23471 OV2NUM=OV2NUM+200 23472 OVRBLK=OV2NUM%200+DLOEDO+36 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 23473 23474 RELOC 23475 RELOC OVLAY2 23476 057000* 0600 OV2NUM 23477 23478 OVSLID= .-OVLAY2+OV2NUM / SOLIDIFY TEXT ENTRY full ^ 23479 23480 JMP ESOLID undefined ^ undefined ^ 057001* 5000 23481 23482 OVSOFT= .-OVLAY2+OV2NUM / SOFTEN TEXT ENTRY full ^ 23483 23484 JMP ESOFT undefined ^ undefined ^ 057002* 5000 23485 23486 OVDCEL= .-OVLAY2+OV2NUM / FIND NEXT SEGMENT PROCESSING full ^ 23487 23488 DOCCEL, CDFBUF full ^ undefined ^ 057003* 0000 23489 057004* 1535 TAD I CURPTR 23490 JMP DOCC21 undefined ^ undefined ^ 057005* 5000 23491 DOCC22, ADVPTR /FIND THE EOL MARK full ^ 057006* 4506 23492 057007* 7402 HLT /SHOULDN'T HAPPEN TO A DOG 23493 DOCC21, AND P177 full ^ undefined ^ undefined ^ 057010* 0000 23494 TAD (-ECNWLN) undefined ^ undefined ^ 057011* 1377 23495 057012* 7640 SZA CLA 23496 JMP DOCC22 /NOT FOUND YET undefined ^ undefined ^ 057013* 5000 23497 23498 057014* 1535 TAD I CURPTR /CHECK IT BETTER BE A HARD RETURN 23499 TAD (-ECNWLN) undefined ^ undefined ^ 057015* 1377 23500 057016* 7640 SZA CLA 23501 JMP GODOER /ERROR WRAP RETURN undefined ^ undefined ^ 057017* 5000 23502 DOCC17, AC0001 /FORWARD TO BEGINNING OF NEXT LINE full ^ undefined ^ 057020* 0000 23503 057021* 4513 CURMOV 23504 057022* 7000 NOP /DON'T CAR ABOUT EOF 23505 057023* 1135 TAD CURPTR /SAVE CURRENT PTR 23506 DCA IX1 undefined ^ undefined ^ 057024* 3000 23507 057025* 1171 TAD LINE23 /FIND OUT WHAT PREVIOUS LINE ENDER 23508 057026* 3135 DCA CURPTR /WAS 23509 057027* 4507 BKPPTR 23510 057030* 7402 HLT /CAN'T HAPPEN 23511 TAD (-ECNDRL) /END RULER? undefined ^ undefined ^ 057031* 1377 23512 057032* 7650 SNA CLA 23513 JMP GODOER /YES ERROR undefined ^ undefined ^ 057033* 5000 23514 TAD IX1 /RESTORE PTR undefined ^ undefined ^ 057034* 1000 23515 057035* 3135 DCA CURPTR 23516 057036* 1535 TAD I CURPTR /CHECK IF SKIPPING IS NECESSARY 23517 AND P177 /STRIP MODE BITS undefined ^ undefined ^ 057037* 0000 23518 TAD (-ECNWPG) /SKIP PAGE MARKS CONTROL BLOCKS ETC. undefined ^ undefined ^ 057040* 1377 23519 057041* 7650 SNA CLA 23520 JMP DOCCPG /GO CHECK IT OUT undefined ^ undefined ^ 057042* 5000 23521 23522 DOCC13, CDFMYF full ^ 057043* 0000 23523 057044* 1776 TAD CLMPLL /CHECK FOR LOWER LIMIT OF COLUMN 23524 057045* 7041 CIA /<=CURSOR 23525 057046* 1136 TAD CURSOR 23526 057047* 7700 SMA CLA 23527 JMP DOCC18 /YES GO EXECUTE undefined ^ undefined ^ 057050* 5000 23528 23529 DOCC14, JMS LODCHR /GET CHAR UNDER PTR full ^ 057051* 4775 23530 057052* 7402 HLT /CATASTROPHIC ERROR 23531 AND P177 /CHECK FOR TAB OR EOL undefined ^ undefined ^ 057053* 0000 23532 057054* 4500 ZZCASE 23533 DCCTB3-1 undefined ^ 057055* 7777 23534 23535 / ECTAB; DOCC15 /TAB DO LIMIT CHECK 23536 / ECNWLN; GODO11 /NEWLINE DO EMPTY COLUMN 23537 / ECMDFL; DOCC16 /MODIFIED FLAG SKIP 23538 / ECSTRL; GODOER /START RULER ERROR 23539 / ECNWPG; GODOER /NEW PAGE ERROR 23540 / 0 23541 23542 057056* 2136 ISZ CURSOR /BUMP CURSOR 23543 DOCC16, ADVSPC /TRY NEXT CHARACTER full ^ 057057* 4517 23544 057060* 7402 HLT 23545 JMP DOCC14 undefined ^ undefined ^ 057061* 5000 23546 23547 DOCC15, AC0001 /FIND FIRST CHAR OF COLUMN full ^ undefined ^ 057062* 0000 23548 057063* 4513 CURMOV 23549 057064* 7402 HLT 23550 JMP DOCC13 /GO CHECK BOUNDARIES undefined ^ undefined ^ 057065* 5000 23551 23552 DOCC18, OVLJMP /GO TRY NEXT COLUMN full ^ 057066* 4523 23553 OVDOCC undefined ^ 057067* 0000 23554 23555 23556 / DOCCPG DO PAGE AND CONTROL BLOCK HANDLING 23557 / 23558 / 23559 23560 DOCCPG, TAD I CURPTR /GET CHARACTER AND CHECK TYPE full ^ 057070* 1535 23561 057071* 4500 ZZCASE 23562 DCCTB4-1 undefined ^ 057072* 7777 23563 23564 / ECNWPG; DOCC17 /NEW PAGE CHECK NEXT LINE 23565 / ECPMRK; DOCC17 /PAGE MARK GO CHECK NEXT LINE 23566 / ECPCT1; DCPG01 /CONTROL BLOCK SKIP 23567 / ECPCT2; GODOER /END CONTROL BLOCK IS ERROR 23568 / 0 23569 23570 057073* 7402 HLT /SHOULD NOT BE ABLE TO GET HERE 23571 23572 DCPG01, CDFMYF full ^ 057074* 0000 23573 057075* 3774 DCA SETRUL /SET FLAG TO FIND OUT IF RULER PASSED 23574 23575 DCPG02, AC0001 /SEARCH FOR END CONTROL full ^ undefined ^ 057076* 0000 23576 057077* 4513 CURMOV 23577 057100* 7402 HLT 23578 057101* 1535 TAD I CURPTR /CHECK FOR END CONTROL AND SELECT POINT 23579 TAD (-ECPCT2) undefined ^ undefined ^ 057102* 1377 23580 057103* 7450 SNA 23581 JMP DCPG03 /END CONTROL FOUND BREAK OUT undefined ^ undefined ^ 057104* 5000 23582 TAD (ECPCT2-ECSLPT) undefined ^ undefined ^ undefined ^ undefined ^ 057105* 1377 23583 057106* 7440 SZA 23584 JMP DCPG02 /NOT THIS TIME CHARLEY undefined ^ undefined ^ 057107* 5000 23585 23586 057110* 3535 DCA I CURPTR /DELETE SELECT POINT 23587 057111* 4514 SLNMOD /SET LINE MODIFIED 23588 057112* 4773 JMS REJUST /REJUSTIFY THE LINE 23589 057113* 5772 JMP EIFIX /DONE 23590 23591 DCPG03, CDFMYF full ^ 057114* 0000 23592 057115* 1774 TAD SETRUL /RULER PASSED? 23593 057116* 7650 SNA CLA 23594 JMP DOCC17 /NO GO DO NEXT COLUMN undefined ^ undefined ^ 057117* 5000 23595 057120* 4771 JMS BEEPER /DIE YOU GRAVY SUCKING PIG 23596 057121* 5770 JMP UNSLCT 23597 23598 / GODO11 - SELECT OR END OF LINE DETECTED 23599 23600 GODO11, TAD I CURPTR /PICK UP THE BUFFER CHARACTER /A221 full ^ 057122* 1535 23601 TAD (-ECNWLN) /COMPARE AGAINST END OF LINE /A221 undefined ^ undefined ^ 057123* 1377 23602 057124* 7640 SZA CLA /IS THIS A REAL END OF LINE /A221 23603 JMP GODOSE /NO, GO HANDLE SELECT ERROR /A221 undefined ^ undefined ^ 057125* 5000 23604 057126* 4523 OVLJMP /OVERLAY TRANSFER TO DOCC11 23605 OVDC12 /C203 undefined ^ 057127* 0000 23606 23607 / GODOSE - SELECT MARK ERROR DETECTED ON TEXT LINE /A221 23608 23609 GODOSE, TAD LINE23 /PICK UP BEGINNING OF LINE POINTER /A221 full ^ 057130* 1171 23610 JMP GODOBP /GO STORE BUFFER POINTER /A221 undefined ^ undefined ^ 057131* 5000 23611 23612 / GODOER - ERROR CONDITION DETECTED 23613 23614 GODOER, TAD IX1 /PICK UP THE SAVED BUFFER POINTER full ^ undefined ^ undefined ^ 057132* 1000 23615 GODOBP, DCA CURPTR /RESET THE BUFFER POINTER /C221 full ^ 057133* 3135 23616 057134* 4523 OVLJMP /OVERLAY TRANSFER TO DOCCER 23617 OVDOER undefined ^ 057135* 0000 23618 23619 / COLUMNAR CUT CASE TABLES 23620 / 23621 / 23622 23623 DCCTB3, ECTAB; DOCC15 /TAB DO LIMIT CHECK full ^ undefined ^ 057136* 0000 undefined ^ 057137* 0000 23624 ECNWLN; GODO11 /NEWLINE DO EMPTY COLUMN undefined ^ 057140* 0000 undefined ^ 057141* 0000 23625 ECMDFL; DOCC16 /MODIFIED FLAG SKIP undefined ^ 057142* 0000 undefined ^ 057143* 0000 23626 ECSTRL; GODOER /START RULER ERROR undefined ^ 057144* 0000 undefined ^ 057145* 0000 23627 ECNWPG; GODOER /NEW PAGE ERROR undefined ^ 057146* 0000 undefined ^ 057147* 0000 23628 057150* 0000 0 23629 23630 DCCTB4, ECNWPG; DOCC17 /NEW PAGE CHECK NEXT LINE full ^ undefined ^ 057151* 0000 undefined ^ 057152* 0000 23631 ECPMRK; DOCC17 /PAGE MARK GO CHECK NEXT LINE undefined ^ 057153* 0000 undefined ^ 057154* 0000 23632 ECPCT1; DCPG01 /CONTROL BLOCK SKIP undefined ^ 057155* 0000 undefined ^ 057156* 0000 23633 ECPCT2; GODOER /END CONTROL BLOCK IS ERROR undefined ^ 057157* 0000 undefined ^ 057160* 0000 23634 057161* 0000 0 23635 23636 X=. 23637 /--------------------- 23638 057170* 2547 PAGE 057171* 0324 057172* 0401 057173* 2400 057174* 5600 057175* 4241 057176* 3050 057177* 0000 23639 23640 / ESOLID SOLIDIFY TEXT BY REPLACINF SOFT RETURNS 23641 / 23642 / 23643 23644 ESOLID, TSTSLT full ^ 057200* 4511 23645 057201* 5777 JMP EIBAD 23646 SOLID1, CDFBUF full ^ undefined ^ 057202* 0000 23647 057203* 1535 TAD I CURPTR 23648 JMP SOLID2 undefined ^ undefined ^ 057204* 5000 23649 SOLID3, ADVSPC full ^ 057205* 4517 23650 057206* 5777 JMP EIBAD 23651 SOLID2, ZZCASE full ^ 057207* 4500 23652 SLIDTB-1 undefined ^ 057210* 7777 23653 23654 / ECNWLN; SOLID4 / HARD RETURN DO NOTHING 23655 / ECPGRF; SOLID4 / PARA. MARK DO NOTHING 23656 / ECENLN; SOLID4 / CENTER DO NOTHING 23657 / ECWWLN; SOLID5 / WORD WRAP SOLIDIFY 23658 / ECHYLN; SOLID5 / HYPHEN WRAP SOLIDIFY 23659 / ECSLPT; SDSFEX / SELECT POINT DELETE AND EXIT 23660 / ECMDFL; SOLID7 / MODIFIED FLAG EXECUTE 23661 / ECRMFL; SOLID7 / DITTO 23662 / ECSTRL; SOLID4 / SKIP RULERS 23663 / ECPMRK; SOLID4 / SKIP PAGE MARKS 23664 / ECPCT1; SOLID4 / SKIP PRINT CONTROL 23665 / ECPCT2; SOLID4 / DITTO 23666 / ECNWPG; SOLID4 / SKIP NEW PAGE 23667 / 0 23668 23669 057211* 2136 ISZ CURSOR / BUMP CURSOR TO REFLECT 23670 057212* 4513 CURMOV / KEEP CURMOV HAPPY 23671 057213* 5777 JMP EIBAD / CATASTROPHIC ERROR 23672 JMP SOLID3 / DO NEXT CHAR undefined ^ undefined ^ 057214* 5000 23673 23674 SOLID5, TAD (ECNWLN) / SOLIDIFY LINE ENDER full ^ undefined ^ undefined ^ 057215* 1376 23675 057216* 3535 DCA I CURPTR 23676 23677 SOLID4, AC0001 full ^ undefined ^ 057217* 0000 23678 057220* 4513 CURMOV 23679 057221* 5777 JMP EIBAD 23680 JMP SOLID1 undefined ^ undefined ^ 057222* 5000 23681 23682 SOLID7, CURMOV / REJUSTIFY ON FLAG full ^ 057223* 4513 23683 057224* 5777 JMP EIBAD 23684 JMP SOLID1 / FETCH CHAR DIRECT undefined ^ undefined ^ 057225* 5000 23685 23686 / ESOFT SOFTEN TEXT BY REPLACING HARD RETURNS 23687 / 23688 / 23689 23690 ESOFT, TSTSLT full ^ 057226* 4511 23691 057227* 5777 JMP EIBAD 23692 CDFBUF undefined ^ 057230* 0000 23693 JMP SOFT2 undefined ^ undefined ^ 057231* 5000 23694 SOFT3, AC0001 full ^ undefined ^ 057232* 0000 23695 057233* 4513 CURMOV 23696 057234* 5777 JMP EIBAD 23697 SOFT2, TAD I CURPTR full ^ 057235* 1535 23698 TAD (-ECNWLN) undefined ^ undefined ^ 057236* 1376 23699 057237* 7450 SNA 23700 JMP SOFT5 undefined ^ undefined ^ 057240* 5000 23701 TAD (ECNWLN-ECSLPT) undefined ^ undefined ^ undefined ^ undefined ^ 057241* 1376 23702 057242* 7640 SZA CLA 23703 JMP SOFT3 undefined ^ undefined ^ 057243* 5000 23704 23705 SDSFEX, TAD (ECMDFL) / PUT MODIFIED FLAG IN TO full ^ undefined ^ undefined ^ 057244* 1376 23706 057245* 3535 DCA I CURPTR / DELETE SELECT POINT 23707 057246* 3133 DCA EDMODE / RESET EDIT MODE 23708 057247* 5775 JMP EIFIX / GO GET NEXT COMMAND 23709 23710 SOFT5, TAD (ECMDFL) / SOFTIFY LINE ENDER full ^ undefined ^ undefined ^ 057250* 1376 23711 057251* 3535 DCA I CURPTR 23712 057252* 4513 CURMOV 23713 057253* 5777 JMP EIBAD 23714 JMP SOFT2 undefined ^ undefined ^ 057254* 5000 23715 23716 / SOLIDIFY AND SOFTEN TEXT CASE TABLES 23717 / 23718 / 23719 SLIDTB, ECNWLN; SOLID4 / HARD RETURN DO NOTHING full ^ undefined ^ 057255* 0000 undefined ^ 057256* 0000 23720 ECPGRF; SOLID4 / PARA. MARK DO NOTHING undefined ^ 057257* 0000 undefined ^ 057260* 0000 23721 ECENLN; SOLID4 / CENTER DO NOTHING undefined ^ 057261* 0000 undefined ^ 057262* 0000 23722 ECWWLN; SOLID5 / WORD WRAP SOLIDIFY undefined ^ 057263* 0000 undefined ^ 057264* 0000 23723 ECHYLN; SOLID5 / HYPHEN WRAP SOLIDIFY undefined ^ 057265* 0000 undefined ^ 057266* 0000 23724 ECSLPT; SDSFEX / SELECT POINT DELETE AND EXIT undefined ^ 057267* 0000 undefined ^ 057270* 0000 23725 ECMDFL; SOLID7 / MODIFIED FLAG EXECUTE undefined ^ 057271* 0000 undefined ^ 057272* 0000 23726 ECRMFL; SOLID7 / DITTO undefined ^ 057273* 0000 undefined ^ 057274* 0000 23727 ECSTRL; SOLID4 / SKIP RULERS undefined ^ 057275* 0000 undefined ^ 057276* 0000 23728 ECPMRK; SOLID4 / SKIP PAGE MARKS undefined ^ 057277* 0000 undefined ^ 057300* 0000 23729 ECPCT1; SOLID4 / SKIP PRINT CONTROL undefined ^ 057301* 0000 undefined ^ 057302* 0000 23730 ECPCT2; SOLID4 / DITTO undefined ^ 057303* 0000 undefined ^ 057304* 0000 23731 ECNWPG; SOLID4 / SKIP NEW PAGE undefined ^ 057305* 0000 undefined ^ 057306* 0000 23732 057307* 0000 0 23733 23734 X=. 23735 /--------------------- 23736 057375* 0401 PAGE 057376* 0000 057377* 0400 23737 23738 /*************************************************************************** 23739 /**** START OF OVERLAY **** 23740 /*************************************************************************** 23741 23742 OV2NUM=OV2NUM+200 / NEW OVERLAY 23743 OVRBLK=OV2NUM%200+DLOEDO-1+37 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 23744 23745 RELOC 23746 23747 RELOC OVLAY2 23748 057000* 1000 OV2NUM 23749 23750 / DOCLPS DO COLUMN PASTE 23751 / 23752 / PASTE CHARACTERS INTO THE TEXT BUFFER UNTIL THE PASTE BUFFER IS 23753 / EMPTY, OR THE END OF A LINE SEGMENT IS REACHED, OR AN ILLEGAL 23754 / CHARACTER IS FOUND IN THE PASTE BUFFER. 23755 23756 OVDOPS= .-OVLAY2+OV2NUM full ^ 23757 23758 DOCLPS, CDFBUF full ^ undefined ^ 057001* 0000 23759 057002* 1531 TAD I PSTPTR /GET CHAR FROM PASTE BUFFER 23760 057003* 7450 SNA /ZERO IS END OF PASTE BUFFER /M215 23761 /(SHOULDN'T HAPPEN HERE) /M215 23762 057004* 5777 JMP EIFIX /DONE NO MORE TO PASTE /M215 23763 23764 DCP001, AND P177 /STRIP MODE BITS full ^ undefined ^ undefined ^ 057005* 0000 23765 057006* 4500 ZZCASE /COMPARE AGAINST LIST 23766 CLPTB1-1 undefined ^ 057007* 7777 23767 23768 / ECNWLN; DCP002 /END OF SEGMENT 23769 / ECNWPG; DCP003 /ILLEGAL CHAR TO PASTE DUMP TEXT 23770 / ECSTRL; DCP021 /START OF RULER, SKIP TO END OF RULER 23771 / 0 23772 23773 057010* 1531 TAD I PSTPTR /RETRIEVE CHAR 23774 057011* 4505 INSCHR /PASTE IT IN 23775 23776 DCP017, JMS DCPGNC /GO GET NEXT CHAR full ^ undefined ^ undefined ^ 057012* 4000 23777 JMP DCPXIT /RAN OUT OF PASTE TEXT SO QUIT /C215 undefined ^ undefined ^ 057013* 5000 23778 057014* 7440 SZA /ZERO IS END OF PASTE BUFFER /A215 23779 JMP DCP001 /GO PASTE NEXT CHAR IN undefined ^ undefined ^ 057015* 5000 23780 DCPXIT, JMS DCPEOL /DO END OF SEGMENT PROCESSING /A215 full ^ undefined ^ undefined ^ 057016* 4000 23781 057017* 7000 NOP /END OF BUFFER RETURN /A215 23782 057020* 5777 JMP EIFIX /ALL DONE, GO GET NEXT EDIT COMMAND /A215 23783 23784 23785 / DCP003 DUMP PASTE TO TEXT BUFFER 23786 / 23787 / UNDER AN ERROR CONDITION THE PASTE BUFFER IS DUMPED TO THE 23788 / TEXT BUFFER WITHOUT AND FURTHER FORMATTING. 23789 23790 DCP003, CDFBUF /CHANGE TO BUFFER FIELD /A215 full ^ undefined ^ 057021* 0000 23791 057022* 1531 TAD I PSTPTR /FETCH PASTE CHAR 23792 DCP004, SNA full ^ 057023* 7450 23793 057024* 5777 JMP EIFIX /END OF PASTE BUFFER 23794 TAD (-ECSTRL) /IS IT A RULER? undefined ^ undefined ^ 057025* 1376 23795 057026* 7650 SNA CLA 23796 JMP DCP005 /SKIP TO END OF RULER BEFORE RESUMING undefined ^ undefined ^ 057027* 5000 23797 /PASTE 23798 057030* 1531 TAD I PSTPTR /PASTE CHAR INTO TEXT BUFFER 23799 057031* 4505 INSCHR 23800 DCP006, JMS DCPGNC /FETCH NEXT CHARACTER full ^ undefined ^ undefined ^ 057032* 4000 23801 057033* 5777 JMP EIFIX /DONE NO MORE PASTE 23802 JMP DCP004 /PROCESS NEXT CHARACTER undefined ^ undefined ^ 057034* 5000 23803 23804 DCP005, JMS DCPGNC /SKIP TO END OF RULER full ^ undefined ^ undefined ^ 057035* 4000 23805 057036* 5777 JMP EIFIX 23806 TAD (-ECNDRL) undefined ^ undefined ^ 057037* 1376 23807 057040* 7650 SNA CLA 23808 JMP DCP006 undefined ^ undefined ^ 057041* 5000 23809 JMP DCP005 undefined ^ undefined ^ 057042* 5000 23810 23811 / DCP021 SKIP RULERS IN PASTE BUFFER 23812 23813 DCP021, JMS DCPGNC /SKIP TO END OF RULER full ^ undefined ^ undefined ^ 057043* 4000 23814 057044* 5777 JMP EIFIX 23815 TAD (-ECNDRL) undefined ^ undefined ^ 057045* 1376 23816 057046* 7650 SNA CLA 23817 JMP DCP017 undefined ^ undefined ^ 057047* 5000 23818 JMP DCP021 undefined ^ undefined ^ 057050* 5000 23819 23820 23821 23822 23823 / DCPEOL END OF SEGMENT PROCESSING /C215 23824 / 23825 / WHEN AN EOL MARK IS FOUND IN THE PASTE BUFFER THIS IS TAKEN AS 23826 / DELIMITING A SEGMENT OF COLUMN TEXT. IF THE NEXT CHARACTER AFTER 23827 / THE END OF THE SEGMENT IS A HARD RETURN THEN DON'T INSERT A 23828 / TRAILING TAB AFTER THE SEGMENT. 23829 23830 DCPEOL, XX /DO END OF SEGMENT PROCESSING /A215 full ^ undefined ^ 057051* 0000 23831 057052* 4775 JMS LODCHR /GET NEXT CHAR FROM TEXT BUFFER 23832 JMP I DCPEOL /END OF FILE - RETURN TO CALLER /C215 undefined ^ undefined ^ 057053* 5400 23833 TAD (-ECNWLN) undefined ^ undefined ^ 057054* 1376 23834 057055* 7650 SNA CLA 23835 JMP DCP007 /GO FIND THE NEXT PLACE TO PASTE TEXT undefined ^ undefined ^ 057056* 5000 23836 TAD (ECTAB) undefined ^ undefined ^ 057057* 1376 23837 057060* 4505 INSCHR 23838 23839 DCP007, SLNMOD full ^ 057061* 4514 23840 057062* 4774 JMS REJUST 23841 ISZ DCPEOL /BUMP RETRUN ADDRESS /A215 undefined ^ undefined ^ 057063* 2000 23842 JMP I DCPEOL /RETURN TO CALLER /A215 undefined ^ undefined ^ 057064* 5400 23843 23844 23845 23846 / FOUND END OF SEGMENT IN PASTE BUFFER 23847 23848 DCP002, JMS DCPEOL /GO DO END OF SEGMENT PROCESSING /C215 full ^ undefined ^ undefined ^ 057065* 4000 23849 057066* 7410 SKP /END OF TEXT BUFFER DETECTED /C215 23850 JMP DCP008 /GO FIND THE NEXT LINE ENDER undefined ^ undefined ^ 057067* 5000 23851 23852 DCPNWL, TAD (ECNWLN) /PICK UP LINE ENDER TO FINISH COLUMN /A215 full ^ undefined ^ undefined ^ 057070* 1376 23853 057071* 4505 INSCHR /INSERT THE LINE ENDER /A215 23854 057072* 4514 SLNMOD /SET THE LINE MODIFIED FLAG /A215 23855 057073* 4774 JMS REJUST /FIX THE LINE /A215 23856 JMP DCP009 /NOW TREAT END OF TEXT AS A SHORT LINE /A215 undefined ^ undefined ^ 057074* 5000 23857 23858 / DCP008 FIND NEXT LINE ENDER 23859 / 23860 / THE LINE FOLLOWING THE NEXT LINE ENDING IN A HARD RETURN IS THE 23861 / LINE IN WHICH TO INSERT THE NEXT COLUMN SEGMENT FROM THE PASTE 23862 / BUFFER. IF A PAGE MARK/CONTROL BLOCK IS FOUND THEN THE PAGE 23863 / MARK OR THESTART CONTROL END CONTROL PAIR IS SKIPPED AND THE 23864 / SEARCH PROCEEDS FOR THE HARD RETURN. IF A RULER OR END OF 23865 / TEXT IS FOUND PRIOR TO A LINE ENDING IN A HARD RETURN THEN 23866 / DUMP THE TEXT WITHOUT CROSSING THIS VIRTUAL BOUNDARY. IF THE 23867 / HARD RETURN IS FOUND THEN GO FIND THE CORRECT COLUMN POSITION. 23868 23869 DCP008, TAD I CURPTR /FETCH THE NEXT CHAR FROM THE TEXT /C216 full ^ 057075* 1535 23870 TAD (-ECNWLN) /HARD RETURN? /C216 undefined ^ undefined ^ 057076* 1376 23871 057077* 7650 SNA CLA 23872 JMP DCP009 /YES GO FIND COLUMN POSITION undefined ^ undefined ^ 057100* 5000 23873 057101* 1535 TAD I CURPTR /IS CHAR A PAGE MARK? 23874 AND P177 undefined ^ undefined ^ 057102* 0000 23875 TAD (-ECNWPG) undefined ^ undefined ^ 057103* 1376 23876 057104* 7650 SNA CLA /C216 23877 JMP DCP010 /YES, GO SKIP TO NEXT LOGICAL POSITION undefined ^ undefined ^ 057105* 5000 23878 057106* 7410 SKP / NOT NECESSARY TO SET THE LINE MOD /A193 23879 DCP011, SLNMOD / FLAG AFTER EVERY CHARACTER full ^ 057107* 4514 23880 057110* 4517 ADVSPC /GO GET NEXT CHAR 23881 JMP DCPNWL /RAN OUT OF TEXT SO GO ADD A LINE ENDER /C215 undefined ^ undefined ^ 057111* 5000 23882 TAD (-ECSTRL) /IS CHAR A RULER? /C216 undefined ^ undefined ^ 057112* 1376 23883 057113* 7650 SNA CLA /M216 23884 JMP DCP006 /YES, GO DUMP THE REST OF TEXT /M216 undefined ^ undefined ^ 057114* 5000 23885 057115* 4513 CURMOV /FIXUP PTRBLK /M216 23886 057116* 7402 HLT /SHOULD NEVER HIT EOF HERE /M216 23887 JMP DCP008 /TEST NEXT CHARACTER undefined ^ undefined ^ 057117* 5000 23888 23889 / DCP010 CHECK PAGE MARKS 23890 / 23891 / IF WHILE SEARCHING FOR THE HARD RETURN EOL A PAGE MARK, NEW 23892 / PAGE, OR START/END CONTROL IS SEEN THEN CHECK. SKIP NEW PAGE 23893 / AND PAGE MARK. SKIP TO END OF CONTROL BLOCK ON START CONTROL 23894 / AND DUMP TEXT DUE TO ERROR ON END CONTROL. 23895 23896 DCP010, TAD I CURPTR full ^ 057120* 1535 23897 057121* 4500 ZZCASE 23898 CLPTB2-1 undefined ^ 057122* 7777 23899 23900 / ECNWPG; DCP011 /NEW PAGE 23901 / ECPMRK; DCP011 /PAGE MARK 23902 / ECPCT1; DCP012 /START CONTROL 23903 / ECPCT2; DCP006 /END CONTROL 23904 / 0 23905 23906 DCP012, AC0001 full ^ undefined ^ 057123* 0000 23907 057124* 4513 CURMOV 23908 JMP DCP006 undefined ^ undefined ^ 057125* 5000 23909 057126* 1535 TAD I CURPTR 23910 TAD (-ECPCT2) undefined ^ undefined ^ 057127* 1376 23911 057130* 7650 SNA CLA 23912 JMP DCP011 undefined ^ undefined ^ 057131* 5000 23913 JMP DCP012 undefined ^ undefined ^ 057132* 5000 23914 23915 23916 / DCP015 SKIP TO END OF CONTROL BLOCK 23917 23918 DCP015, AC0001 /MOVE FORWARD A CHARACTER full ^ undefined ^ 057133* 0000 23919 057134* 4513 CURMOV 23920 JMP DCP006 /END OF TEXT DUMP PASTE BUFFER undefined ^ undefined ^ 057135* 5000 23921 057136* 1535 TAD I CURPTR /FETCH CHARACTER 23922 TAD (-ECPCT2) /END CONTROL? undefined ^ undefined ^ 057137* 1376 23923 057140* 7650 SNA CLA 23924 JMP DCP009 /YES GO PROCESS BEGINNING OF LINE undefined ^ undefined ^ 057141* 5000 23925 JMP DCP015 /TRY NEXT CHARACTER undefined ^ undefined ^ 057142* 5000 23926 23927 / DCP013 DUMP TEXT BEFORE RULER 23928 / 23929 / IF A RULER CHANGE OCCURS DUMP THE PASTE BUFFER BEFORE THE 23930 / RULER. 23931 23932 DCP013, TAD X5 /RESTORE THE CURSOR POSITION full ^ undefined ^ undefined ^ 057143* 1000 23933 057144* 3135 DCA CURPTR 23934 AC7777 /BACK UP OVER THE RULER undefined ^ 057145* 0000 23935 057146* 4513 CURMOV 23936 057147* 7402 HLT 23937 JMP DCP006 /AND DUMP THE REST OF THE PASTE BUFFER undefined ^ undefined ^ 057150* 5000 23938 23939 X=. 23940 /--------------------- 23941 23942 057174* 2400 PAGE 057175* 4241 057176* 0000 057177* 0401 23943 23944 / DCP009 CHECK LINE FOLLOWING 23945 / 23946 / FINDING THE CORRECT COLUMN POSITION REQUIRES THAT THE LINE IN 23947 / WHICH THE HARD RETURN LINE ENDER WAS FOUND HAVE NO INTERVENING 23948 / RULERS BETWEEN IT AND THE LINE IN WHICH THE COLUMN IS TO GO. 23949 / IF THE LINE IMMEDIATELY FOLLOWING THE LINE WITH A HARD RETURN IS 23950 / A PAGE MARK OR CONTROL BLOCK THEN YOU WANT TO SKIP OVER THAT AND 23951 / GO TO THE NEXT TEXT LINE FOLLOWING SO AS TO CONFORM WITH COLUMN 23952 / CUT. 23953 23954 DCP009, AC0001 /POSITION TO FIRST CHAR OF NEXT LINE full ^ undefined ^ 057200* 0000 23955 057201* 4513 CURMOV 23956 JMP DCPCHK /RAN OUT OF TEXT - TREAT AS SHORT LINE /C215 undefined ^ undefined ^ 057202* 5000 23957 057203* 1135 TAD CURPTR /SAVE CURRENT PTR POSITION 23958 DCA X5 undefined ^ undefined ^ 057204* 3000 23959 057205* 1171 TAD LINE23 /AND CHECK LINE ENDER IMMEDIATELY 23960 057206* 3135 DCA CURPTR /PRECEDING 23961 057207* 4507 BKPPTR 23962 057210* 7402 HLT /NFW 23963 TAD (-ECNDRL) /WASN'T A RULER WAS IT? undefined ^ undefined ^ 057211* 1377 23964 057212* 7650 SNA CLA 23965 JMP DCP013 /BACKUP OVER IT AND DUMP THE TEXT OUT undefined ^ undefined ^ 057213* 5000 23966 TAD X5 /RESTORE PTR undefined ^ undefined ^ 057214* 1000 23967 057215* 3135 DCA CURPTR 23968 057216* 1535 TAD I CURPTR /CHECK FOR PAGE MARK OR CONTROL BLOCK 23969 057217* 4500 ZZCASE 23970 CLPTB3-1 undefined ^ 057220* 7777 23971 23972 / ECNWPG; DCP009 /NEW PAGE SKIP TO NEXT LINE 23973 / ECPMRK; DCP009 /PAGE MARK SKIP TO NEXT LINE 23974 / ECPCT1; DCP015 /START CONTROL SKIP TO LINE AFTER END CONTROL 23975 / ECPCT2; DCP006 /END CONTROL ERROR DUMP REMAINING TEXT 23976 / 0 23977 23978 /\ JMP DCPCHK /NOT A BAD SITUATION GO DO COLUMN FIND /C215 23979 23980 / DCPCHK CHECK TO SEE IF THERE IS ANY MORE TEXT IN PASTE BUFFER /A215 23981 23982 DCPCHK, JMS DCPGNC /GO GET NEXT CHAR FROM PASTE BUFFER /A215 full ^ undefined ^ undefined ^ 057221* 4000 23983 057222* 5776 JMP EIFIX /RAN OUT OF PASTE TEXT SO QUIT /A215 23984 057223* 7650 SNA CLA /ZERO IS END OF PASTE BUFFER /A215 23985 057224* 5776 JMP EIFIX /DONE NO MORE TO PASTE /A215 23986 /\ JMP DCP014 /FALL INTO DCP014 ROUTINE /A215 23987 23988 23989 / DCP014 FIND PROPER COLUMN POSITION 23990 / 23991 / THE CURSOR POSITION IN THE LINE IS CHECKED AGAINST THE UPPER 23992 / AND LOWER LIMITS OF THE COLUMN. IF IT IS WITHIN THE RANGE 23993 / THEN THE COLUMN IS FOUND AND THE NEXT LINE SEGMENT IS PASTED 23994 / IN. OTHERWISE THE SEARCH CONTINUES FOR THE COLUMN. 23995 23996 DCP014, CDFMYF /CHECK POSITION AGAINST LOWER LIMIT OF full ^ 057225* 0000 23997 057226* 1775 TAD CLMPLL /COLUMN 23998 057227* 7041 CIA 23999 057230* 1136 TAD CURSOR 24000 057231* 7710 SPA CLA 24001 JMP DCP016 /MOVE FORWARD undefined ^ undefined ^ 057232* 5000 24002 057233* 1136 TAD CURSOR /CHECK UPPER LIMIT 24003 057234* 7041 CIA 24004 057235* 1774 TAD CLMPUL 24005 057236* 7700 SMA CLA 24006 JMP DOCLPS /GO PASTE IN NEXT SEGMENT /C215 undefined ^ undefined ^ 057237* 5000 24007 24008 / IF THERE IS NO COLUMN BREAK IN THE APPROPRIATE POSITION THEN 24009 / THE CURSOR IS MOVE BACKED TO THE BEGINNING OF THE LINE AND THE 24010 / REST OF THE PASTE BUFFER IS DUMPED THERE. 24011 24012 057240* 1171 TAD LINE23 /LINE HAS NO COLUMN BREAK 24013 057241* 3135 DCA CURPTR /DUMP PASTE BEFORE BEGINNING OF LINE 24014 057242* 3136 DCA CURSOR 24015 057243* 4513 CURMOV 24016 057244* 7402 HLT /NO CAN DO CHARLIE 24017 JMP DCP003 /GO DUMP THE PASTE BUFFER /C215 undefined ^ undefined ^ 057245* 5000 24018 24019 / DCP016 CHECK FOR THE NEXT COLUMN DELIMITER 24020 / 24021 / 24022 24023 DCP016, JMS LODCHR /GET CHAR UNDER PTR full ^ 057246* 4773 24024 JMP DCP019 /END OF TEXT - TREAT AS SHORT LINE /C215 undefined ^ undefined ^ 057247* 5000 24025 AND P177 /CHECK FOR TABS AND EOLS undefined ^ undefined ^ 057250* 0000 24026 057251* 4500 ZZCASE 24027 CLPTB4-1 undefined ^ 057252* 7777 24028 24029 / ECTAB; DCP018 /TAB DO LIMIT CHECK 24030 / ECNWLN; DCP019 /EOL SAYS SHORT LINE OF BAD LINE 24031 / ECMDFL; DCP020 /DON'T COUNT MODIFIED FLAGS 24032 / ECSTRL; DCP003 /GO DUMP THE REST OF PASTE ON A RULER /C215 24033 / ECNWPG; DCP003 /SAME AS RULER FOR PAGE AND CONTROL /C215 24034 / 0 24035 24036 057253* 2136 ISZ CURSOR /UPGRADE POSITION 24037 057254* 4517 ADVSPC /TRY OUT NEXT CHAR 24038 JMP DCP019 /END OF TEXT - TREAT AS SHORT LINE /C215 undefined ^ undefined ^ 057255* 5000 24039 JMP DCP016 /GO CHECK NEXT undefined ^ undefined ^ 057256* 5000 24040 24041 DCP020, DCA I CURPTR /DELETE LINE MODIFIED FLAG full ^ 057257* 3535 24042 057260* 4514 SLNMOD /AND REJUSTIFY LINE 24043 057261* 4772 JMS REJUST 24044 JMP DCP016 /GO CHECK NEXT undefined ^ undefined ^ 057262* 5000 24045 24046 DCP019, TAD I PSTPTR /GET CHARACTER FROM PASTE BUFFER /A215 full ^ 057263* 1531 24047 TAD (-ECNWLN) /CHECK FOR A HARD RETURN /A215 undefined ^ undefined ^ 057264* 1377 24048 057265* 7650 SNA CLA /IS THIS A BLANK PASTE LINE ? /A215 24049 JMP DCP002 /YES, GO DO END OF SEGMENT PROCESSING /A215 undefined ^ undefined ^ 057266* 5000 24050 TAD (ECTAB) /NO, INSERT TAB TO PAD OUT LINE undefined ^ undefined ^ 057267* 1377 24051 057270* 4771 JMS INSERT 24052 057271* 4514 SLNMOD 24053 24054 DCP018, AC0001 /JUSTIFY THE DAMN TAB SO AS TO FIND full ^ undefined ^ 057272* 0000 24055 057273* 4513 CURMOV /FIRST CHAR IN COLUMN 24056 JMP DCP003 /RAN OUT OF TEXT SO DUMP PASTE BUFFER /C215 undefined ^ undefined ^ 057274* 5000 24057 JMP DCP014 /GO CHECK COLUMN BOUNDARY undefined ^ undefined ^ 057275* 5000 24058 24059 24060 / DCPGNC GET NEXT CHAR FROM PASTE BUFFER 24061 / 24062 / THIS ROUTINE RETRIEVES THE NEXT CHARACTER FROM THE PASTE BUFFER. 24063 / IF A CHARACTER IS FETCHED THEN A SKIP RETURN IS TAKEN. ON 24064 / FAILURE THE DIRECT RETURN. THE CHARACTER IS RETURNED IN THE AC. 24065 / 24066 24067 DCPGNC, XX full ^ undefined ^ 057276* 0000 24068 057277* 2131 ISZ PSTPTR /POINT TO NEXT CHAR IN PASTE BUFFER 24069 JMP DCGNC1 /THERE IS ANOTHER CHAR IN THE CURRENT undefined ^ undefined ^ 057300* 5000 24070 /BUFFER 24071 057301* 2130 ISZ PSTBLK /LAST BUFFER EMPTY TRY NEXT 24072 057302* 1130 TAD PSTBLK /WAS THAT THE LAST BLOCK AVAILABLE 24073 057303* 1370 TAD (-PSTEND) 24074 057304* 7650 SNA CLA 24075 JMP I DCPGNC /YES NO MORE AVAILABLE undefined ^ undefined ^ 057305* 5400 24076 TAD (RXERD) /READ NEXT BLOCK OF PASTE BUFFER undefined ^ undefined ^ 057306* 1377 24077 057307* 4767 JMS PSTIO 24078 DCGNC1, CDFBUF /FETCH A CHAR full ^ undefined ^ 057310* 0000 24079 057311* 1531 TAD I PSTPTR 24080 ISZ DCPGNC /TAKE SKIP RETURN undefined ^ undefined ^ 057312* 2000 24081 JMP I DCPGNC undefined ^ undefined ^ 057313* 5400 24082 24083 / COLUMN PASTE CASE TABLES 24084 / 24085 / 24086 24087 CLPTB1, ECNWLN; DCP002 /END OF SEGMENT full ^ undefined ^ 057314* 0000 undefined ^ 057315* 0000 24088 ECNWPG; DCP003 /ILLEGAL CHAR TO PASTE DUMP TEXT undefined ^ 057316* 0000 undefined ^ 057317* 0000 24089 ECSTRL; DCP021 /START OF RULER, SKIP TO END OF RULER /C208 undefined ^ 057320* 0000 undefined ^ 057321* 0000 24090 057322* 0000 0 24091 24092 CLPTB2, ECNWPG; DCP011 /NEW PAGE full ^ undefined ^ 057323* 0000 undefined ^ 057324* 0000 24093 ECPMRK; DCP011 /PAGE MARK undefined ^ 057325* 0000 undefined ^ 057326* 0000 24094 ECPCT1; DCP012 /START CONTROL undefined ^ 057327* 0000 undefined ^ 057330* 0000 24095 ECPCT2; DCP006 /END CONTROL undefined ^ 057331* 0000 undefined ^ 057332* 0000 24096 057333* 0000 0 24097 24098 CLPTB3, ECNWPG; DCP009 /NEW PAGE SKIP TO NEXT LINE full ^ undefined ^ 057334* 0000 undefined ^ 057335* 0000 24099 ECPMRK; DCP009 /PAGE MARK SKIP TO NEXT LINE undefined ^ 057336* 0000 undefined ^ 057337* 0000 24100 ECPCT1; DCP015 /START CONTROL SKIP TO LINE AFTER END CONTROL undefined ^ 057340* 0000 undefined ^ 057341* 0000 24101 ECPCT2; DCP006 /END CONTROL ERROR DUMP REMAINING TEXT undefined ^ 057342* 0000 undefined ^ 057343* 0000 24102 057344* 0000 0 24103 24104 CLPTB4, ECTAB; DCP018 /TAB DO LIMIT CHECK full ^ undefined ^ 057345* 0000 undefined ^ 057346* 0000 24105 ECNWLN; DCP019 /EOL SAYS SHORT LINE OF BAD LINE undefined ^ 057347* 0000 undefined ^ 057350* 0000 24106 ECMDFL; DCP020 /DON'T COUNT MODIFIED FLAGS undefined ^ 057351* 0000 undefined ^ 057352* 0000 24107 ECSTRL; DCP003 /GO DUMP THE REST OF PASTE ON A RULER /C215 undefined ^ 057353* 0000 undefined ^ 057354* 0000 24108 ECNWPG; DCP003 /SAME AS RULER FOR PAGE AND CONTROL /C215 undefined ^ 057355* 0000 undefined ^ 057356* 0000 24109 057357* 0000 0 24110 24111 X=. 24112 /---------------------- 24113 24114 057367* 5030 PAGE 057370* 7742 057371* 2000 057372* 2400 057373* 4241 057374* 3051 057375* 3050 057376* 0401 057377* 0000 24115 24116 /*************************************************************************** 24117 /**** START OF OVERLAY **** 24118 /*************************************************************************** 24119 24120 OV2NUM=OV2NUM+200 24121 OVRBLK=OV2NUM%200+DLOEDO+36 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 24122 24123 RELOC 24124 RELOC OVLAY2 24125 057000* 1200 OV2NUM 24126 24127 OVTC= .-OVLAY2+OV2NUM / USER REQUESTED A TECHNICAL CHARACTER full ^ 24128 24129 / BUILD A TECHNICAL CHARACTER 24130 / 24131 / FORMAT 24132 / 24133 / SD SP GS CH TC ED 24134 / 24135 / SD = START DEAD 24136 / SP = SPACE 24137 / GS = GRAPHICS SET G1 - G3 (OCTAL CODE 61 - 63) 24138 / TC = TECHNICAL CHARACTER 24139 / ED = END DEAD 24140 24141 TCCHAR, DCA LNDSUB / Clear temp for line drawing set full ^ undefined ^ undefined ^ 057001* 3000 24142 057002* 4502 GETINP / GET NEXT CHARACTER 24143 057003* 7510 SPA / -AC MEANS COMMAND KEY 24144 JMP LNDTST / Test for line drawing set /M223 undefined ^ undefined ^ 057004* 5000 24145 24146 JMS TECVAL / GO VALIDATE AND MAP TEC CHARACTER undefined ^ undefined ^ 057005* 4000 24147 057006* 5777 JMP EIBAD / BEEP USER, NOT A VALID TECHNICAL CHARACTER 24148 TCINS, SLNMOD / SET LINE MODIFIED FLAG full ^ 057007* 4514 24149 TAD (ECSTOV) / YES. BUILD DEAD KEY SEQUENCE undefined ^ undefined ^ 057010* 1376 24150 057011* 4775 JMS INSRL1 / INSERT START DEAD CODE 24151 TAD (ECSPC) undefined ^ undefined ^ 057012* 1376 24152 057013* 4775 JMS INSRL1 / INSERT SPACE 24153 TAD TECSET / GRAPHIC SET G1 = 61, G2 = 62, G3 = 63 undefined ^ undefined ^ 057014* 1000 24154 057015* 4775 JMS INSRL1 / AND INSERT IT 24155 TAD TECMAP / GET MAPPED TECH CHARACTER undefined ^ undefined ^ 057016* 1000 24156 057017* 4775 JMS INSRL1 / AND INSERT IT 24157 TAD (ECNDOV) / INSERT END DEAD CODE undefined ^ undefined ^ 057020* 1376 24158 057021* 4775 JMS INSRL1 24159 057022* 5774 JMP EIFIX / ALL DONE. GET NEXT INPUT 24160 24161 OVFIXP= .-OVLAY2+OV2NUM / TRANSFER MENU BUFFER TO PASTE BUFFER full ^ 24162 24163 TAD (MUBUF+MNIBUF-1) / ADDRESS TO COPY FROM undefined ^ undefined ^ undefined ^ undefined ^ 057023* 1373 24164 DCA X0 / SET UP POINTER ADDRESS undefined ^ undefined ^ 057024* 3000 24165 057025* 1372 TAD (PSTEBF-1) / ADDRESS TO COPY TO 24166 DCA X1 / SET UP POINTER ADDRESS undefined ^ undefined ^ 057026* 3000 24167 24168 AAFIXP, CDFMNU / FIELD TO COPY FROM full ^ undefined ^ 057027* 0000 24169 TAD I X0 / PICK UP WORD FROM MENU BUFFER undefined ^ undefined ^ 057030* 1400 24170 CDFBUF / FIELD TO COPY TO undefined ^ 057031* 0000 24171 057032* 7450 SNA / CHECK FOR THE LAST WORD TO COPY 24172 JMP XXFIXP / GO STORE A FINAL ZERO TO END PASTE BUFFER undefined ^ undefined ^ 057033* 5000 24173 057034* 7510 SPA / CHECK FOR A TECHNICAL CHARACTER CODE 24174 JMP CCFIXP / YES, GO HANDLE SPECIAL CODE undefined ^ undefined ^ 057035* 5000 24175 BBFIXP, DCA I X1 / NO, STORE WORD IN PASTE BUFFER full ^ undefined ^ undefined ^ 057036* 3400 24176 JMP AAFIXP / GO GET NEXT WORD undefined ^ undefined ^ 057037* 5000 24177 24178 CCFIXP, CMA / INVERT TO CORRECT FORM full ^ 057040* 7040 24179 057041* 7440 SZA / CHECK FOR A REQUIRED SPACE CODE 24180 JMP DDFIXP / NO, GO HANDLE TECHNICAL CHARACTER undefined ^ undefined ^ 057042* 5000 24181 24182 / BUILD REQUIRED SPACE IN PASTE BUFFER 24183 24184 TAD (ECSTOV) / PICK UP START DEAD CODE undefined ^ undefined ^ 057043* 1376 24185 DCA I X1 / STORE WORD IN PASTE BUFFER undefined ^ undefined ^ 057044* 3400 24186 TAD (ECSPC) / PICK UP SPACE CHARACTER CODE undefined ^ undefined ^ 057045* 1376 24187 DCA I X1 / STORE WORD IN PASTE BUFFER undefined ^ undefined ^ 057046* 3400 24188 TAD (ECSPC) / PICK UP SPACE CHARACTER CODE undefined ^ undefined ^ 057047* 1376 24189 JMP EEFIXP / GO STORE WORD AND FINISH SEQUENCE undefined ^ undefined ^ 057050* 5000 24190 24191 / BUILD TECHNICAL CHARACTER IN PASTE BUFFER 24192 24193 DDFIXP, DCA ZZFIXP / SAVE MAPPED TECHNICAL CHARACTER full ^ undefined ^ undefined ^ 057051* 3000 24194 TAD (ECSTOV) / PICK UP START DEAD CODE undefined ^ undefined ^ 057052* 1376 24195 DCA I X1 / STORE WORD IN PASTE BUFFER undefined ^ undefined ^ 057053* 3400 24196 TAD (ECSPC) / PICK UP SPACE CHARACTER CODE undefined ^ undefined ^ 057054* 1376 24197 DCA I X1 / STORE WORD IN PASTE BUFFER undefined ^ undefined ^ 057055* 3400 24198 TAD ZZFIXP / PICK UP SAVED TECHNICAL CHARACTER undefined ^ undefined ^ 057056* 1000 24199 R3L / POSITION SELECTION BITS IN AC, 0 - 2 undefined ^ 057057* 0000 24200 057060* 0371 AND (3) / MASK OFF LOW ORDER BITS 24201 057061* 1370 TAD (60) / GRAPHIC SET G1 = 61, G2 = 62, G3 = 63 24202 DCA I X1 / STORE WORD IN PASTE BUFFER undefined ^ undefined ^ 057062* 3400 24203 TAD ZZFIXP / GET MAPPED TECH CHARACTER undefined ^ undefined ^ 057063* 1000 24204 AND P177 / MASK OFF 7 BIT ASCII CHARACTER undefined ^ undefined ^ 057064* 0000 24205 EEFIXP, DCA I X1 / STORE WORD IN PASTE BUFFER full ^ undefined ^ undefined ^ 057065* 3400 24206 TAD (ECNDOV) / PICK UP END DEAD CODE undefined ^ undefined ^ 057066* 1376 24207 JMP BBFIXP / GO STORE WORD IN PASTE BUFFER undefined ^ undefined ^ 057067* 5000 24208 24209 XXFIXP, DCA I X1 / STORE ZERO IN PASTE BUFFER full ^ undefined ^ undefined ^ 057070* 3400 24210 057071* 5767 JMP OV2JRT / ALL DONE, RETURN TO CALLER 24211 24212 ZZFIXP, .-. / LOCATION TO SAVE MAPPED TECHNICAL CHARACTER full ^ 057072* 0000 24213 24214 / THE FOLLOWING ROUTINE MOVED TO BLASTER ON EDIT 237 //////////////////////// 24215 / The following code handles 8 bit characters typed after the ALT key /a233 24216 / as the table for TECVAR would be sparse and too large if it was just /a233 24217 / extended to cope with 8 bits. So a table search algorithm is used /a233 24218 / here for the few keys returning 8 bit characters on multinational /a233 24219 / keyboards. /a233 24220 / 24221 /TEC8VAL,DCA TECTMP / Save temprarily /a233 24222 / TAD TECTMP / Get it back for test /a233 24223 / AND (200) / Is this a multinational character /a233 24224 / SNA CLA / .....? /a233 24225 / JMP TEC7BIT / No, deal with it elsewhere /a233 24226 / TAD TECTMP / Yes, get the char to be translated. /a233 24227 / AND P377 / Make sure its only 8 bits /a233 24228 / CIA / Make it negative to subtract from /a233 24229 / DCA TECTMP / table entries. Store for later /a233 24230 / TAD (TEC8TB-2) / Get the address of the 8 bit TEC table/a233 24231 / DCA X0 / We know X0 is free as is reset later /a233 24232 / / (Famous last words) /a233 24233 /TEC8LP, ISZ X0 / Skip over TEC char /a233 24234 / TAD I X0 / Get first 8 bit char /a233 24235 / TAD TECTMP / Compare with the 8 bit char entered /a233 24236 / SMA SZA / Are we still before the table entry? /a233 24237 / JMP TEC8RTN / No, therefore not in table /a233 24238 / SZA CLA / Same? /a233 24239 / JMP TEC8LP / No, check rest of table /a233 24240 / TAD I X0 / Yes, get the representative TEC char /a233 24241 / JMP TEC8FND / and process it /a233 24242 / 24243 / The next table is O R D E R I M P O R T A N T --------------------- 24244 / 24245 /TEC8TB, IFDEF ENGLSH < 24246 / IFDEF V30FAO < 24247 / 0241; 3063 / Upsidedown Bang = Top Vert Summ Connect 24248 / 0243; 3065 / Pound Sterling = Top right Summ 24249 / 0252; 3051 / a ordinal = Top right Sq Brkt 24250 / 0272; 3052 / o ordinal = Bot right Sq Brkt 24251 / 0277; 3064 / Upsidedown Question = Bot Vert sum Connect 24252 / 0321; 3136 / N tilde = Logical And 24253 / 0347; 3075 / c cedilla = Not Equal 24254 / 0361; 3137 / n tilde = Logical Or 24255 / > 24256 / 7777 24257 / > 24258 / 24259 / IFDEF SPANISH < 24260 / 0241; 3063 / Upsidedown Bang = Top Vert Summ Connect 24261 / 0243; 3065 / Pound Sterling = Top right Summ 24262 / 0252; 3051 / a ordinal = Top right Sq Brkt 24263 / 0272; 3052 / o ordinal = Bot right Sq Brkt 24264 / 0277; 3064 / Upsidedown Question = Bot Vert sum Connect 24265 / 0321; 3136 / N tilde = Logical And 24266 / 0347; 3075 / c cedilla = Not Equal 24267 / 0361; 3137 / n tilde = Logical Or 24268 / 7777 24269 / > 24270 / 24271 / IFDEF ITALIAN < 24272 / 0243; 3041 / Lira symbol = Radical 24273 / 0247; 3077 / Section symbol = Integral 24274 / 0260; 3047 / Degree symbol = Top left square bkt 24275 / 0340; 3056 / a-grave = Bottom right paren 24276 / 0347; 3054 / c-cidila = Bottom left paren 24277 / 0350; 3045 / e-grave = Bottom integral 24278 / 0351; 3126 / e-accute = Radical 24279 / 0354; 3160 / i-grave = Small pi 24280 / 0362; 3133 / o-grave = Includes 24281 / 0371; 3103 / u-grave = Divide 24282 / 7777 24283 / > 24284 / IFDEF DUTCH < 24285 / 7777 24286 / > 24287 / 24288 / End of -------------- O R D E R I M P O R T A N T -------------------- 24289 /D237D237D237D237D237D237D237D237D237D237D237D237D237D237D237D237D237D237D237 24290 24291 24292 24293 X=. / INDICATE FIRST FREE LOCATION ON PAGE 24294 24295 /--------------------- 24296 057167* 5135 PAGE 057170* 0060 057171* 0003 057172* 7377 057173* 7777 057174* 0401 057175* 5260 057176* 0000 057177* 0400 24297 24298 24299 / 24300 / The next "bit" tests for line drawing characters typed from 24301 / the F11 alt char key. 24302 / 24303 / The characters are arranged to coincide with the keys on the 24304 / alternate keypad i.e. 24305 / 24306 / Sent Tab Under - - - - 24307 / Pos Line | | | 24308 / 24309 / 24310 / | | | 24311 / Word Para Bold - - - - 24312 / | | | 24313 / 24314 / 24315 / Back Line Upper | | | 24316 / Up Case - - - - 24317 / 24318 / 24319 / Horizontal line is the Advance key or Left/Right arrows 24320 / Vertical line is the Enter key or Up/Down arrows. 24321 / 24322 24323 24324 LNDTST, full ^ 24325 057200* 4500 ZZCASE / Check Input command /A223 24326 LNDTBL-1 / Against Despatch table/A223 undefined ^ 057201* 7777 24327 24328 057202* 5777 JMP EIBAD / Not matched , Beep BiBi/A223 24329 24330 TLHC, ISZ LNDSUB /Top Left hand Corner /A223 full ^ undefined ^ undefined ^ 057203* 2000 24331 TMT, ISZ LNDSUB /Top Middle T /A223 full ^ undefined ^ undefined ^ 057204* 2000 24332 TRHC, ISZ LNDSUB /Top Right hand corner /A223 full ^ undefined ^ undefined ^ 057205* 2000 24333 LMT, ISZ LNDSUB /Left Middle T /A223 full ^ undefined ^ undefined ^ 057206* 2000 24334 MCRS, ISZ LNDSUB /Middle Cross /A223 full ^ undefined ^ undefined ^ 057207* 2000 24335 RMT, ISZ LNDSUB /Right Middle T /A223 full ^ undefined ^ undefined ^ 057210* 2000 24336 BLHC, ISZ LNDSUB /Bottom Left Hand Corner /A223 full ^ undefined ^ undefined ^ 057211* 2000 24337 BMT, ISZ LNDSUB /Bottom Middle T /A223 full ^ undefined ^ undefined ^ 057212* 2000 24338 BRHC, ISZ LNDSUB /Bottom Right Hand Corner /A223 full ^ undefined ^ undefined ^ 057213* 2000 24339 VLINE, ISZ LNDSUB /Vertical Line /A223 full ^ undefined ^ undefined ^ 057214* 2000 24340 HLINE, ISZ LNDSUB /Horizontal line /A223 full ^ undefined ^ undefined ^ 057215* 2000 24341 24342 057216* 7200 CLA / /A223 24343 TAD (LNDCHRS-1) /Address of correspoding chars /A223 undefined ^ undefined ^ 057217* 1376 24344 TAD LNDSUB /Add offset into table /A223 undefined ^ undefined ^ 057220* 1000 24345 DCA LNDPTR /Save as a pointer /A223 undefined ^ undefined ^ 057221* 3000 24346 TAD I LNDPTR /Get Line drawing character /A223 undefined ^ undefined ^ 057222* 1400 24347 DCA TECMAP /Put that away /A223 undefined ^ undefined ^ 057223* 3000 24348 057224* 1375 TAD (61) /Line drawing from set 1 /A223 24349 DCA TECSET /Put that away too /A223 undefined ^ undefined ^ 057225* 3000 24350 JMP TCINS /Rejoin main code /A223 undefined ^ undefined ^ 057226* 5000 24351 24352 24353 LNDCHRS, 161 / Horiz line /q /A223 full ^ 057227* 0161 24354 057230* 0170 170 / Vert Line /x /A223 24355 057231* 0152 152 / Bottom Right Hand Corner /j /A223 24356 057232* 0166 166 / Bottom Middle T /v /A223 24357 057233* 0155 155 / Bottom Left Hand Corner /m /A223 24358 057234* 0165 165 / Right Hand middle T /u /A223 24359 057235* 0156 156 / Middle Cross /n /23 24360 057236* 0164 164 / left Middle T /t /A223 24361 057237* 0153 153 / Top Right Hand Corner /k /A223 24362 057240* 0167 167 / Top Middle T /w /A223 24363 057241* 0154 154 / Top Left Hand Corner /l /A223 24364 24365 24366 24367 24368 LNDTBL, EDSENT; TLHC /A223 full ^ undefined ^ 057242* 0000 undefined ^ 057243* 0000 24369 EDTABP; TMT /A223 undefined ^ 057244* 0000 undefined ^ 057245* 0000 24370 EDUNDL; TRHC /A223 undefined ^ 057246* 0000 undefined ^ 057247* 0000 24371 EDWORD; LMT /A223 undefined ^ 057250* 0000 undefined ^ 057251* 0000 24372 EDPARA; MCRS /A223 undefined ^ 057252* 0000 undefined ^ 057253* 0000 24373 EDBOLD; RMT /A223 undefined ^ 057254* 0000 undefined ^ 057255* 0000 24374 EDBKUP; BLHC /A223 undefined ^ 057256* 0000 undefined ^ 057257* 0000 24375 EDLINE; BMT /A223 undefined ^ 057260* 0000 undefined ^ 057261* 0000 24376 EDUPPR; BRHC /A223 undefined ^ 057262* 0000 undefined ^ 057263* 0000 24377 EDUPAR; VLINE /A223 undefined ^ 057264* 0000 undefined ^ 057265* 0000 24378 EDDNAR; VLINE /A223 undefined ^ 057266* 0000 undefined ^ 057267* 0000 24379 EDRARO; HLINE /A223 undefined ^ 057270* 0000 undefined ^ 057271* 0000 24380 EDLARO; HLINE /A223 undefined ^ 057272* 0000 undefined ^ 057273* 0000 24381 EDENTR; VLINE /A223 undefined ^ 057274* 0000 undefined ^ 057275* 0000 24382 EDADVN; HLINE /A223 undefined ^ 057276* 0000 undefined ^ 057277* 0000 24383 057300* 0000 0 /A223 24384 24385 LNDPTR, 0 /Pointer to Char table /A223 full ^ 057301* 0000 24386 LNDSUB, 0 / temp subscript for line drawing table /A223 full ^ 057302* 0000 24387 24388 X=. / INDICATE FIRST FREE LOCATION ON PAGE 24389 /--------------------- 24390 057375* 0061 PAGE 057376* 7777 057377* 0400 24391 24392 24393 /*************************************************************************** 24394 /**** START OF OVERLAY **** 24395 /*************************************************************************** 24396 24397 OV2NUM=OV2NUM+200 24398 OVRBLK=OV2NUM%200+DLOEDO+36 / DISK BLOCK WHERE OVERLAY IS LOADED undefined ^ 24399 24400 RELOC 24401 24402 RELOC OVLAY2 24403 057000* 1400 OV2NUM 24404 24405 OVSNFG= .-OVLAY2+OV2NUM full ^ 24406 24407 JMP STPNFG undefined ^ undefined ^ 057001* 5000 24408 24409 OVSEXB= .-OVLAY2+OV2NUM full ^ 24410 24411 JMP STPEXB undefined ^ undefined ^ 057002* 5000 24412 24413 OVCLRS= .-OVLAY2+OV2NUM /ESCLRS RIGHT STRIP FUNCTION full ^ 24414 24415 ESCLRS, TAD SLCRPT /SAVE BEGINNING STRIP POS full ^ 057003* 1777 24416 057004* 3776 DCA CLCTSW 24417 057005* 4523 OVLJMP 24418 OVSSTP /SETUP STRIP PARAMETERS undefined ^ 057006* 0000 24419 057007* 0000 CDFMYF 24420 057010* 1776 TAD CLCTSW /SET UP BEGIN AND END POINTS 24421 057011* 3775 DCA CLSBEG 24422 057012* 1774 TAD CLMPUL 24423 057013* 3773 DCA CLSEND 24424 AC7777 undefined ^ 057014* 0000 24425 JMP ESCLGO /GO DO STRIP /C213 undefined ^ undefined ^ 057015* 5000 24426 /D213 DCA CLCTSW 24427 /D213 JMP ESTRIP-1 /GO DO STRIP 24428 24429 OVCLLS= .-OVLAY2+OV2NUM /ESCLLS LEFT STRIP FUNCTION full ^ 24430 24431 ESCLLS, TAD SLCRPT /SAVE BEGINNING STRIP POS full ^ 057016* 1777 24432 057017* 3776 DCA CLCTSW 24433 057020* 4523 OVLJMP 24434 OVSSTP /SETUP STRIP PARAMETERS undefined ^ 057021* 0000 24435 057022* 0000 CDFMYF 24436 057023* 1772 TAD CLMPLL 24437 057024* 3775 DCA CLSBEG 24438 057025* 1776 TAD CLCTSW /SET UP BEGIN AND END POINTS 24439 057026* 3773 DCA CLSEND 24440 ESCLGO, DCA CLCTSW /C213 full ^ 057027* 3776 24441 DCA CLCTDN /FALL INTO STRIP CODE undefined ^ undefined ^ 057030* 3000 24442 24443 OVSTRP= .-OVLAY2+OV2NUM /ESTRIP STRIP TEXT FROM A COLUMN full ^ 24444 24445 ESTRIP, OVLJMP full ^ 057031* 4523 24446 057032* 0201 OVSTLD 24447 057033* 0000 CDFMYF 24448 057034* 1776 TAD CLCTSW /CHECK IF LEFT STRIP 24449 057035* 7640 SZA CLA 24450 JMP STRP05 /NO RIGHT DOES'NT NEED COL CHECK undefined ^ undefined ^ 057036* 5000 24451 AC7777 /CHECK PREVIOUS CHAR undefined ^ 057037* 0000 24452 057040* 4513 CURMOV 24453 JMP STRPA5 /START OF FILE GO FIX UP RULER /C213 undefined ^ undefined ^ 057041* 5000 24454 057042* 1535 TAD I CURPTR /CHECK FOR COL DELIMITER 24455 AND P177 undefined ^ undefined ^ 057043* 0000 24456 057044* 4500 ZZCASE 24457 057045* 7711 STPTB4-1 24458 24459 / ECNWLN; STRP28 24460 / ECNWPG; STRP28 24461 / ECTAB; 2TRP28 24462 / 0 24463 24464 STRP29, AC0001 /FORWARD SPACE TO NEXT COLUMN full ^ undefined ^ 057046* 0000 24465 057047* 4513 CURMOV 24466 JMP STPNFG undefined ^ undefined ^ 057050* 5000 24467 057051* 1535 TAD I CURPTR 24468 AND P177 undefined ^ undefined ^ 057052* 0000 24469 057053* 4500 ZZCASE 24470 057054* 7720 STPTB5-1 24471 24472 / ECNWLN; STRP12 /NO COLUMN TO STRIP 24473 / ECNWPG; STPNFG /BAD DATA FORMAT 24474 / ECTAB; STRP28 24475 / 0 24476 24477 JMP STRP29 undefined ^ undefined ^ 057055* 5000 24478 24479 STRP28, AC0001 /FORWARD TO BEGINNING CHAR OF COLUMN full ^ undefined ^ 057056* 0000 24480 STRPA5, CURMOV /HERE TO MOVE OFF START OF RULER/C213 full ^ 057057* 4513 24481 JMP STPNFG undefined ^ undefined ^ 057060* 5000 24482 24483 STRP05, CDFMYF full ^ 057061* 0000 24484 057062* 1136 TAD CURSOR /CHECK FOR LOWER LIMIT OF STRIP 24485 057063* 7041 CIA 24486 057064* 1775 TAD CLSBEG 24487 057065* 7750 SPA SNA CLA 24488 JMP STRP01 /STRIP BEGINNING FOUND undefined ^ undefined ^ 057066* 5000 24489 CDFBUF undefined ^ 057067* 0000 24490 057070* 1535 TAD I CURPTR 24491 AND P177 undefined ^ undefined ^ 057071* 0000 24492 057072* 4500 ZZCASE 24493 STPTB1-1 undefined ^ 057073* 7777 24494 24495 / ECMDFL; STRP02 /MODIFIED FLAG REJUST REST 24496 / ECNWLN; STRP03 /NEWLINE CHECK CONDITIONS 24497 / ECNWPG; STPEXB /BAD MOVE CHARLIE SHOULD BE HARD 24498 /RETURN 24499 / ECSTRL; STPEXB /SO ARE RULERS AND OTHER TYRANTS 24500 / 0 24501 24502 057074* 4517 ADVSPC /FORWARD SPACE ONE PRINT POS 24503 JMP STPNFG /REALLY A CATO. ERROR CAN'T HAPPEN undefined ^ undefined ^ 057075* 5000 24504 057076* 7200 CLA 24505 057077* 2136 ISZ CURSOR /UP THE BODY COUNT 24506 JMP ESTRIP /AND TRY FOR A TRUE KILL undefined ^ undefined ^ 057100* 5000 24507 24508 / STRP01 INSERT MARKERS FOR STRIP DELIMITING 24509 / 24510 / 24511 24512 STRP01, CDFMYF full ^ 057101* 0000 24513 057102* 1136 TAD CURSOR /CHECK AGAINST UPPER LIMIT 24514 057103* 7041 CIA 24515 057104* 1773 TAD CLSEND 24516 057105* 7750 SPA SNA CLA 24517 JMP STPNFG /NO WAY BEYOND THE REALM undefined ^ undefined ^ 057106* 5000 24518 CDFBUF undefined ^ 057107* 0000 24519 TAD (ECTMRK) /INSERT LOWER MARKER undefined ^ undefined ^ 057110* 1371 24520 057111* 4770 JMS INSERT 24521 STRP04, AC7777 / CURSOR LESS ONE BECAUSE OF INSERT full ^ undefined ^ 057112* 0000 24522 057113* 1136 TAD CURSOR 24523 057114* 3136 DCA CURSOR 24524 STRP06, ADVSPC full ^ 057115* 4517 24525 JMP STRP07 /INSERT OTHER MARKER undefined ^ undefined ^ 057116* 5000 24526 AND P177 undefined ^ undefined ^ 057117* 0000 24527 057120* 4500 ZZCASE 24528 STPTB2-1 undefined ^ 057121* 7777 24529 / ECNWLN; STRP08 24530 / ECNWPG; STPNFW 24531 / ECSTRL; STPNFW 24532 / ECTAB; STRP07 24533 / ECMDFL; STRP06 24534 / 0 24535 24536 057122* 2136 ISZ CURSOR 24537 057123* 7000 NOP /FIX FOR CURSOR = 0 /A213 24538 057124* 0000 CDFMYF 24539 057125* 1136 TAD CURSOR 24540 057126* 7041 CIA 24541 057127* 1773 TAD CLSEND 24542 057130* 7740 SMA SZA CLA 24543 JMP STRP06 undefined ^ undefined ^ 057131* 5000 24544 24545 / STRP07 INSERT END MARKER 24546 / 24547 / 24548 24549 STRP07, CDFBUF full ^ undefined ^ 057132* 0000 24550 TAD (ECTMRK) undefined ^ undefined ^ 057133* 1371 24551 057134* 4770 JMS INSERT 24552 STRP09, BKPPTR full ^ 057135* 4507 24553 057136* 7402 HLT 24554 TAD (-ECTMRK) undefined ^ undefined ^ 057137* 1371 24555 057140* 7640 SZA CLA 24556 JMP STRP09 undefined ^ undefined ^ 057141* 5000 24557 TAD (ECMDFL) undefined ^ undefined ^ 057142* 1371 24558 24559 24560 / STRP10 STRIP BETWEEN MARKERS 24561 / 24562 / 24563 24564 STRP10, DCA I CURPTR /DELETE MARKER full ^ 057143* 3535 24565 057144* 4506 ADVPTR 24566 057145* 7402 HLT 24567 TAD (-ECTMRK) /END OF STRIP? undefined ^ undefined ^ 057146* 1371 24568 057147* 7650 SNA CLA 24569 JMP STRP11 undefined ^ undefined ^ 057150* 5000 24570 057151* 1535 TAD I CURPTR 24571 JMS PUTSTP undefined ^ undefined ^ 057152* 4000 24572 JMP STRP10 /PROCESS NEXT CHAR undefined ^ undefined ^ 057153* 5000 24573 JMP STPNFW /PASTE BUFFER OVERFLOW undefined ^ undefined ^ 057154* 5000 24574 24575 X=. 24576 /-------------------------- 24577 057170* 2000 PAGE 057171* 0000 057172* 3050 057173* 4304 057174* 3051 057175* 4303 057176* 3053 057177* 1353 24578 24579 / STRP11 PROCESS END OF STRIP 24580 / 24581 / 24582 24583 STRP11, DCA I CURPTR /DELETE MARKER full ^ 057200* 3535 24584 STRP12, TAD (ECNWLN) /PUT EOS IN PASTE full ^ undefined ^ undefined ^ 057201* 1377 24585 JMS PUTSTP undefined ^ undefined ^ 057202* 4000 24586 057203* 7410 SKP 24587 JMP STPNFG /BUFFER OVERFLOW EXIT undefined ^ undefined ^ 057204* 5000 24588 057205* 1171 TAD LINE23 /RESET LINE PTRS FOR EOL SEARCH 24589 057206* 3135 DCA CURPTR 24590 057207* 3136 DCA CURSOR 24591 057210* 4514 SLNMOD 24592 057211* 4776 JMS REJUST 24593 TAD CLCTDN /CHECK IF STRIP DONE undefined ^ undefined ^ 057212* 1000 24594 057213* 7640 SZA CLA 24595 JMP STPGEX undefined ^ undefined ^ 057214* 5000 24596 057215* 4523 OVLJMP 24597 057216* 0202 OVSTPX 24598 24599 / STRP03 HANDLE NEWLINE IN COLUMN 24600 / 24601 / 24602 24603 STRP03, TAD I CURPTR full ^ 057217* 1535 24604 TAD (-ECNWLN) /END OF COLUMN AND LINE? undefined ^ undefined ^ 057220* 1377 24605 057221* 7450 SNA 24606 JMP STRP12 /YES undefined ^ undefined ^ 057222* 5000 24607 TAD (ECNWLN-ECSLPT) /SELECT POINT undefined ^ undefined ^ undefined ^ undefined ^ 057223* 1377 24608 057224* 7640 SZA CLA 24609 JMP STPEXB /NO WRAPPED OR CENTERED IS A SCREW UP undefined ^ undefined ^ 057225* 5000 24610 TAD (ECMDFL) /PROCESS AS MODIFIED FLAG undefined ^ undefined ^ 057226* 1377 24611 057227* 3535 DCA I CURPTR 24612 ISZ CLCTDN /MARK DONE undefined ^ undefined ^ 057230* 2000 24613 24614 / STRP02 HANDLE MODIFIED FLAG IN COLUMN 24615 / 24616 / 24617 24618 STRP02, CURMOV full ^ 057231* 4513 24619 JMP STPNFG undefined ^ undefined ^ 057232* 5000 24620 JMP ESTRIP undefined ^ undefined ^ 057233* 5000 24621 24622 / STRP08 HANDLE NEWLINE IN COLUMN 24623 / 24624 / 24625 24626 STRP08, TAD I CURPTR /CHECK FOR NEWLINE full ^ 057234* 1535 24627 TAD (-ECNWLN) undefined ^ undefined ^ 057235* 1377 24628 057236* 7450 SNA 24629 JMP STRP07 undefined ^ undefined ^ 057237* 5000 24630 TAD (ECNWLN-ECSLPT) /CHECK FOR SELECT POINT undefined ^ undefined ^ undefined ^ undefined ^ 057240* 1377 24631 057241* 7640 SZA CLA 24632 JMP STPNFW undefined ^ undefined ^ 057242* 5000 24633 TAD (ECMDFL) undefined ^ undefined ^ 057243* 1377 24634 057244* 3535 DCA I CURPTR 24635 ISZ CLCTDN undefined ^ undefined ^ 057245* 2000 24636 057246* 4513 CURMOV 24637 JMP STPNFW undefined ^ undefined ^ 057247* 5000 24638 057250* 4507 BKPPTR 24639 057251* 7402 HLT 24640 JMP STRP04 undefined ^ undefined ^ 057252* 5000 24641 24642 / BAD EXITS FROM STRIP 24643 / 24644 / 24645 24646 STPNFW, TAD LINE23 /RESET PTRS TO BEGINNING OF LINE full ^ 057253* 1171 24647 057254* 3135 DCA CURPTR 24648 057255* 3136 DCA CURSOR 24649 STPNF1, CURMOV /SEARCH FORWARD FOR MARKER full ^ 057256* 4513 24650 057257* 7402 HLT 24651 057260* 1535 TAD I CURPTR 24652 TAD (-ECTMRK) undefined ^ undefined ^ 057261* 1377 24653 057262* 7650 SNA CLA 24654 JMP STPNF2 undefined ^ undefined ^ 057263* 5000 24655 AC0001 undefined ^ 057264* 0000 24656 JMP STPNF1 undefined ^ undefined ^ 057265* 5000 24657 STPNF2, DCA I CURPTR /DELETE MARKER full ^ 057266* 3535 24658 057267* 4514 SLNMOD 24659 JMP STPNFG undefined ^ undefined ^ 057270* 5000 24660 24661 STPEXB, BKPPTR /BACKUP TO PREVIOUS LINE full ^ 057271* 4507 24662 057272* 7402 HLT /SEVERE CORRUPTION 24663 STPNFG, CLA full ^ 057273* 7200 24664 057274* 1775 TAD PSBFOF /PASTE FILLED? 24665 057275* 7650 SNA CLA 24666 JMS PUTSTP undefined ^ undefined ^ 057276* 4000 24667 057277* 7000 NOP 24668 057300* 4523 OVLJMP 24669 OVDOER undefined ^ 057301* 0000 24670 24671 STRP17, DCA I CURPTR full ^ 057302* 3535 24672 STPGEX, DCA EDMODE full ^ 057303* 3133 24673 JMS PUTSTP undefined ^ undefined ^ 057304* 4000 24674 057305* 7000 NOP 24675 057306* 5774 JMP EIFIX 24676 24677 / PUTSTP WRITE TO PASTE BUFFER 24678 / 24679 / THIS ROUTINE TAKES CHARACTERS PASSED IN THE AC AND PUTS THEM IN 24680 / THE PASTE DISK BUFFER. WHEN THE BUFFER IS FULL IT WRITES THE 24681 / BUFFER TO DISK. WHEN THE LAST ALLOCATED DISK BLOCK IS WRITTEN 24682 / IT SETS THE CUT OVERFLOW FLAG AND TAKES A SKIP RETURN. 24683 / 24684 / CALL: 24685 / 24686 / JMS PUTSTP (AC := CHARACTER TO WRITEOUT) 24687 / (RETURNS HERE IF OK) 24688 / (RETURNS HERE ON END OF PASTE BUFFER) 24689 / 24690 / RETURNS WITH AC:=0 IN ALL CASES 24691 / 24692 PUTSTP, XX /ENTRY POINT full ^ undefined ^ 057307* 0000 24693 CDFBUF /SET TO BUFFER FIELD undefined ^ 057310* 0000 24694 057311* 3531 DCA I PSTPTR /PUT CHARACTER IN BUFFER 24695 057312* 2131 ISZ PSTPTR /BUMP PTR AND CHECK FOR BLOCK FULL 24696 JMP I PUTSTP /BLOCK NOT FULL SO RETURN DIRECTLY undefined ^ undefined ^ 057313* 5400 24697 TAD (RXEWT+2000) /BLOCK I/O WRITE CODE undefined ^ undefined ^ 057314* 1373 24698 057315* 4772 JMS PSTIO /PERFORM WRITE TO DISK 24699 057316* 2130 ISZ PSTBLK /INCREMENT BLOCK NO 24700 057317* 1130 TAD PSTBLK /CHECK FOR END OF ALLOCATED BLOCKS 24701 057320* 1371 TAD (-PSTEND) /FOR PASTE BUFFER 24702 057321* 7640 SZA CLA /END OF ALLOCATION? 24703 JMP I PUTSTP /NO, SO STRAIGHT RETURN undefined ^ undefined ^ 057322* 5400 24704 AC7777 /EOA FOR PASTE BUFFER undefined ^ 057323* 0000 24705 057324* 3775 DCA PSBFOF /SET PASTE BUFFER OVERFLOW FLAG 24706 ISZ PUTSTP /AND TAKE A SKIP RETURN undefined ^ undefined ^ 057325* 2000 24707 JMP I PUTSTP /B-B undefined ^ undefined ^ 057326* 5400 24708 24709 STPTB1, ECMDFL; STRP02 / Modified Flag rejust REST full ^ undefined ^ 057327* 0000 undefined ^ 057330* 0000 24710 ECNWLN; STRP03 / Newline Check conditions undefined ^ 057331* 0000 undefined ^ 057332* 0000 24711 ECNWPG; STPEXB / Bad move Charlie should be hard undefined ^ 057333* 0000 undefined ^ 057334* 0000 24712 / return 24713 ECSTRL; STPEXB / So are rulers and other tyrants undefined ^ 057335* 0000 undefined ^ 057336* 0000 24714 057337* 0000 0 24715 STPTB2, ECNWLN; STRP08 full ^ undefined ^ 057340* 0000 undefined ^ 057341* 0000 24716 ECNWPG; STPNFW undefined ^ 057342* 0000 undefined ^ 057343* 0000 24717 ECSTRL; STPNFW undefined ^ 057344* 0000 undefined ^ 057345* 0000 24718 ECTAB; STRP07 undefined ^ 057346* 0000 undefined ^ 057347* 0000 24719 ECMDFL; STRP06 undefined ^ 057350* 0000 undefined ^ 057351* 0000 24720 057352* 0000 0 24721 X=. 24722 24723 24724 / WPSC.PA - DECSPELL STARTUP CODE 24725 / 24726 / ******* EDIT HISTORY ******* 24727 / 24728 / 013 EMcD 29-Sep-85 Add Dutch- Spanish Xlations 24729 / 012 RCME 22-May-85 Enable use of multinational characters in the 24730 / personal dictionary. 24731 / 24732 / ---------------- All below refer to V2.0 and earlier ------------------- 24733 / 24734 / 011 WJY 22-OCT-84 Put OpeN FILe flag into MQ & pass control 24735 / off to WPSPEL to check & report file open 24736 / error (WPSV2-240). 24737 / 010 WJY 11-OCT-84 Give error message if drive specified for 24738 / utility and/or dictionary disk is already 24739 / in use (WPSV2-225). 24740 / 009 WJY 09-AUG-84 Return to main menu when the SPELL overlay 24741 / INITSP is unable to open the file. 24742 / 008 WJY 02-AUG-84 Support "Update personal dictionary ..." 24743 / 007 WJY 29-JUN-84 Fix mixed screen on "Loading ...." screen. 24744 / 006 BC 4-JUN-84 Modify FILLIO to do writes as well as reads. 24745 / 005 WJY 26-MAY-84 XPU support & American/British on same Utility dsk 24746 / 004 WCE 23-APR-84 ELIMINATED SECOND QURX ROUTINE IN FIELD TWO 24747 / 003 WCE 12-APR-84 REMOVED NECESSITY FOR MENU INTERPERTER BY 24748 / ADDING ONCE ONLY MENU MODULE FOR FIELD FOUR 24749 / 002 WCE 26-MAR-84 CHANGE DISK NAME FROM DECSPL TO WPSUTL 24750 / 001 GDH/EH AUG/SEP-83 Initial version 24751 / 24752 24753 24754 /*************************************************************************** 24755 /**** WRITE OUT CODE FOR WPSC **** 24756 /*************************************************************************** 24757 24758 24759 057371* 7742 FIELD 0 / FIELD WHERE RXHAN IS LOCATED 057372* 5030 057373* 2000 057374* 0401 057375* 3052 057376* 2400 057377* 0000 24760 *200 / START ADDRESS USED BY OS8 "GO" COMMAND 24761 000200* 5603 JMP I .+3 / LOCATION USED TO START UP RXHAN 24762 000201* 5602 JMP I .+1 / LOCATION USED TO RETURN TO OS8 MONITOR 24763 000202* 7605 7605 / ADDRESS OF OS8 MONITOR RETURN POINT 24764 RXLOAD / ADDRESS OF START LOCATION FOR RXHAN undefined ^ 000203* 0000 24765 24766 *RXLDLS / ADDRESS WITHIN RXHAN TO OVERLAY undefined ^ 24767 RXEWT / WRITE FUNCTION CODE undefined ^ 000000* 0000 24768 000001* 0000 0 24769 RXQBLK / ADDRESS OF QUEUE BLOCK TO USE undefined ^ 000002* 0000 24770 000003* 0003 . / ADDRESS OF TABLE OF DISK COMMANDS 24771 24772 IFNDEF DECDEV < 24773 DLOSPI;SPINIT;CDF 10;-DSOSPI / Write-out spell check init code. undefined ^ 000004* 0000 undefined ^ 000005* 0000 000006* 6211 undefined ^ 000007* 0000 24774 DLOSPS;SPSTAT;CDF 10;-DSOSPS / Write-out spell check status line stuff. undefined ^ 000010* 0000 undefined ^ 000011* 0000 000012* 6211 undefined ^ 000013* 0000 24775 DLOSPM;SPMENU;CDF 10;-DSOSPM / Write-out spell check menu routine undefined ^ 000014* 0000 undefined ^ 000015* 0000 000016* 6211 undefined ^ 000017* 0000 24776 > 24777 IFDEF DECDEV < 24778 DLOSPI;SPINIT;CDF 50;-DSOSPI / Write-out spell check init code. 24779 DLOSPS;SPSTAT;CDF 50;-DSOSPS / Write-out spell check status line stuff. 24780 DLOSPM;SPMENU;CDF 50;-DSOSPM / Write-out spell check menu routine 24781 > 24782 DLSPHL;SPHOLE;CDF 60;-DSSPHL / Write-out spell hole code /a012 undefined ^ 000020* 0000 undefined ^ 000021* 0000 000022* 6261 undefined ^ 000023* 0000 24783 000024* 0000 0 / END OF LIST INDICATOR 24784 24785 IFNDEF DECDEV < 24786 FIELD 1 / This is the auxillary field. 24787 > 24788 IFDEF DECDEV < 24789 FIELD 5 24790 > 24791 / Note that the editor loads into 6400-7777 of this field and that several 24792 / editor routines use some of the globaly defined temps (X0, X1, X2, T1, etc.) 24793 24794 IFNDEF OVLAY1 / for 1st pass only. OVLAY1 is defined in WPEDIT 24795 IFNDEF OVLAYM / for 1st pass only. OVLAYM is defined in WPEDIT 24796 24797 *SWPBEG / Start assembling code at the begining of the SWAP area. undefined ^ 24798 / That is where the code will eventually load 24799 / at run-time (in field 2). 24800 CDFMYF=CDFMNU / A CDF to current field. undefined ^ 24801 SPSTAT=. full ^ 24802 24803 DSKBLK= .-3000%400+DLOSPS / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 24804 24805 24806 /*************************************************************************** 24807 /**** TRANSFER VECTOR ENTRY POINTS FOR EDITOR SWAP AREA ROUTINES **** 24808 /*************************************************************************** 24809 24810 CALLN1, XX / ENTRY POINT FOR ROUTINE NUMBER 1 undefined ^ 010000* 0000 24811 010001* 4044 JMS CALSUB / SET UP RETURN ADDRESS AND RETURN FIELD 24812 JMS UPDTSC / GO UPDATE STATUS LINE (SCREEN) INFO. undefined ^ undefined ^ 010002* 4000 24813 010003* 5060 JMP CALXIT / GO TO RETURN TO CALLER CODE 24814 24815 CALLN2, XX / ENTRY POINT FOR ROUTINE NUMBER 2 undefined ^ 010004* 0000 24816 010005* 4044 JMS CALSUB / SET UP RETURN ADDRESS AND RETURN FIELD 24817 010006* 7000 NOP / GO CHECK FOR STATUS VALUE CHANGES 24818 010007* 5060 JMP CALXIT / GO TO RETURN TO CALLER CODE 24819 24820 CALLN3, XX / ENTRY POINT FOR ROUTINE NUMBER 3 undefined ^ 010010* 0000 24821 010011* 4044 JMS CALSUB / SET UP RETURN ADDRESS AND RETURN FIELD 24822 010012* 7000 NOP / GO HANDLE SCROLL DOWN EVENT 24823 010013* 5060 JMP CALXIT / GO TO RETURN TO CALLER CODE 24824 24825 CALLN4, XX / ENTRY POINT FOR ROUTINE NUMBER 4 undefined ^ 010014* 0000 24826 010015* 4044 JMS CALSUB / SET UP RETURN ADDRESS AND RETURN FIELD 24827 010016* 7000 NOP / GO HANDLE SCROLL UP EVENT 24828 010017* 5060 JMP CALXIT / GO TO RETURN TO CALLER CODE 24829 24830 CALLN5, XX / ENTRY POINT FOR ROUTINE NUMBER 5 undefined ^ 010020* 0000 24831 010021* 4044 JMS CALSUB / SET UP RETURN ADDRESS AND RETURN FIELD 24832 010022* 7000 NOP / PLACE FOR TRANSFER TO SPECIAL CODE 24833 010023* 5060 JMP CALXIT / GO TO RETURN TO CALLER CODE 24834 24835 CALLN6, XX / ENTRY POINT FOR ROUTINE NUMBER 6 undefined ^ 010024* 0000 24836 010025* 4044 JMS CALSUB / SET UP RETURN ADDRESS AND RETURN FIELD 24837 010026* 7000 NOP / PLACE FOR TRANSFER TO SPECIAL CODE 24838 010027* 5060 JMP CALXIT / GO TO RETURN TO CALLER CODE 24839 24840 CALLN7, XX / ENTRY POINT FOR ROUTINE NUMBER 7 undefined ^ 010030* 0000 24841 010031* 4044 JMS CALSUB / SET UP RETURN ADDRESS AND RETURN FIELD 24842 010032* 7000 NOP / PLACE FOR TRANSFER TO SPECIAL CODE 24843 010033* 5060 JMP CALXIT / GO TO RETURN TO CALLER CODE 24844 24845 CALLN8, XX / ENTRY POINT FOR ROUTINE NUMBER 8 undefined ^ 010034* 0000 24846 010035* 4044 JMS CALSUB / SET UP RETURN ADDRESS AND RETURN FIELD 24847 010036* 7000 NOP / PLACE FOR TRANSFER TO SPECIAL CODE 24848 010037* 5060 JMP CALXIT / GO TO RETURN TO CALLER CODE 24849 24850 CALLN9, XX / ENTRY POINT FOR ROUTINE NUMBER 9 undefined ^ 010040* 0000 24851 010041* 4044 JMS CALSUB / SET UP RETURN ADDRESS AND RETURN FIELD 24852 010042* 7000 NOP / PLACE FOR TRANSFER TO SPECIAL CODE 24853 010043* 5060 JMP CALXIT / GO TO RETURN TO CALLER CODE 24854 24855 24856 24857 /*************************************************************************** 24858 /**** SET UP RETURN FIELD AND ADDRESS FOR CALLN# ROUTINES **** 24859 /*************************************************************************** 24860 24861 CALSUB, XX / ROUTINE TO SET UP RETURN FIELD AND ADDRESS undefined ^ 010044* 0000 24862 DCA T1 / SAVE CONTENTS OF ACCUMULATOR undefined ^ undefined ^ 010045* 3000 24863 24864 010046* 6214 RDF / READ CALLERS DATA FIELD 24865 TAD CIDF0 / MAKE CDF-CIF INSTRUCTION BACK TO CALLER undefined ^ undefined ^ 010047* 1000 24866 010050* 3060 DCA CALXIT / STORE FOR RETURN TO CALLER 24867 CDFMNU / SET DATA FIELD BACK TO MY FIELD undefined ^ 010051* 0000 24868 24869 AC7776 / SET UP TO SUBTRACT A VALUE OF TWO undefined ^ 010052* 0000 24870 010053* 1044 TAD CALSUB / MAKE POINTER TO VECTOR ENTRY POINT 24871 DCA T2 / STORE FOR USE IN AN INDIRECT LOOKUP undefined ^ undefined ^ 010054* 3000 24872 TAD I T2 / PICK UP CALLERS RETURN ADDRESS undefined ^ undefined ^ 010055* 1400 24873 010056* 3062 DCA CALRTN / STORE ADDRESS FOR LATER RETURN TO CALLER 24874 24875 010057* 5444 JMP I CALSUB / GO TRANSFER TO SPECIALIZED ROUTINES 24876 24877 CALXIT, XX / LOCATION FOR CDF-CIF INSTRUCTION TO CALLER undefined ^ 010060* 0000 24878 010061* 5462 JMP I CALRTN / RETURN BACK TO CALLER 24879 CALRTN, XX / LOCATION FOR CALLERS RETURN ADDRESS undefined ^ 010062* 0000 24880 24881 /*************************************************************************** 24882 /**** THE CODE ASSEMBLED HERE IS USED BY THE EDITOR FOR STATUS LINE **** 24883 /*************************************************************************** 24884 24885 / UPDTSC ROUTINE IS USED TO DISPLAY THE STATUS LINE INFORMATION IN THE EDITOR 24886 / 24887 / THE STATUS LINE AREA CONSISTS OF TWO LINES AS FOLLOWS: 24888 / LINE 1 = TOP LINE OF SCREEN - CURRENT PAGE NUMBER, CURRENT LINE NUMBER, 24889 / DRIVE NUMBER, DOCUMENT NUMBER AND DOCUMENT NAME BEING EDITED 24890 / LINE 24 = CURRENT RULER IN EFFECT FOR EDITING 24891 / 24892 / UPON ENTRY, THE VALUE CONTAINED IN THE T1 DETERMINES FUNCTION AS FOLLOWS: 24893 / 24894 / T1 = 0 CLEAR THE SCREEN AND DISPLAY COMPLETE STATUS AREA 24895 / DEFINE SCROLLING REGION AND SET RELITIVE SCREEN ADDRESSING 24896 / T1 = 1 UPDATE DISPLAY OF TOP STATUS LINE ONLY 24897 / T1 = 2 UPDATE DISPLAY OF BOTTOM STATUS LINE ONLY (DISPLAY RULER) 24898 / T1 = 3 CLEAR THE SCREEN AND RESET SCROLLING AREA TO FULL SCREEN 24899 24900 UPDTSC, XX / Entry point. full ^ undefined ^ 010063* 0000 24901 TAD T1 / PICK UP SAVED CONTENTS OF T1CUMULATOR undefined ^ undefined ^ 010064* 1000 24902 TAD LITSC1 / Index into dispatch table. undefined ^ undefined ^ 010065* 1000 24903 010066* 3067 DCA .+1;XX / Go dispatch to routine to handle request. undefined ^ 010067* 0000 24904 24905 LITSC1, JMP I UPDTDS / Jmp thru dispatch table. full ^ undefined ^ undefined ^ 010070* 5400 24906 UPDTDS, UPDT00 / Case 0. full ^ undefined ^ 010071* 0000 24907 UPDT01 / Case 1. undefined ^ 010072* 0000 24908 UPDT02 / Case 2. undefined ^ 010073* 0000 24909 UPDT03 / and Case 3. undefined ^ 010074* 0000 24910 24911 24912 UPDT00, CIFSPL / Map speller field. full ^ undefined ^ 010075* 0000 24913 JMS I (SCRNIN) / Call screen initialization routine. page zero ^ undefined ^ page zero ^ undefined ^ 010076* 4577 24914 UPDT01, full ^ 24915 UPDT02, JMP I UPDTSC / Return to caller. full ^ undefined ^ undefined ^ 010077* 5400 24916 24917 UPDT03, JMS I IOACAL / Clear the screen & region area. full ^ undefined ^ undefined ^ 010100* 4400 24918 010101* 0000 0 / .... 24919 SCSTS1 / All the esc sequences to do it. undefined ^ 010102* 0000 24920 JMP I UPDTSC / Return to caller. undefined ^ undefined ^ 010103* 5400 24921 24922 SYPRMP, XX / Prompt for system diskette. full ^ undefined ^ 010104* 0000 24923 SYPRM1, JMS I IOACAL / ... full ^ undefined ^ undefined ^ 010105* 4400 24924 010106* 0000 0 / Display to the screen. 24925 SYDISK / Replace the system diskette, etc. undefined ^ 010107* 0000 24926 010110* 0000 0000 / Cursor Home address. 24927 010111* 1505 1505 / Error message address. 24928 010112* 2305 2305 / posn of 2nd part of prompt. 24929 JMP SYPAP2 / Merge below. undefined ^ undefined ^ 010113* 5000 24930 24931 SYPAP1, CIFSYS / JWAIT for a bit. full ^ undefined ^ 010114* 0000 24932 JWAIT / ... undefined ^ 010115* 0000 24933 SYPAP2, CIFSYS / Get an input character. full ^ undefined ^ 010116* 0000 24934 XLTIN / ... undefined ^ 010117* 0000 24935 JMP SYPAP1 / Loop & wait if none. undefined ^ undefined ^ 010120* 5000 24936 24937 TAD (-EDNWLN) / Return typed? page zero ^ undefined ^ page zero ^ undefined ^ 010121* 1177 24938 010122* 7640 SZA CLA / Skip if yes. Otherwise repeat error. 24939 JMP SYPRM1 / Repeat the message. undefined ^ undefined ^ 010123* 5000 24940 CDIEDT / Return CIF CDF instruction to EDIT field. undefined ^ 010124* 0000 24941 JMP I SYPRMP / Return to caller. undefined ^ undefined ^ 010125* 5400 24942 24943 SYDISK, IFDEF ENGLSH < full ^ 24944 TEXT '^P!E^CG^P&REPLACE THE SYSTEM DISKETTE IN DRIVE 0^P&AND &PRESS !&RETURN' 24945 > 24946 IFDEF ITALIAN < 24947 TEXT /^P!E^CG^P&INTORODURRE IL DISCO SISTEMA NELL'UNIT\@ 0 / 24948 *.-1 24949 TEXT /^P&E PREMERE RITORNO/ 24950 > 24951 IFDEF DUTCH < 24952 TEXT '^P!E^CG^P&ZET DE SYSDISKETTE WEER IN AANDRIJVER 0 ' 24953 *.-1 24954 TEXT /^P&^P EN DRUK OP !&RETURN' 24955 > 24956 IFDEF SPANISH < 24957 TEXT '^P!E^CG^P&CAMBIE EL DISKETTE SISTEMA EN LA UNIDAD 0^P&Y ' 24958 *.-1 24959 TEXT 'PULSE !&RETORNO'> 24960 24961 24962 24963 X=. / FIRST FREE LOCATION ON PAGE 24964 /--------------------- 24965 PAGE 24966 24967 DSKBLK= .-3000%400+DLOSPS / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 24968 24969 /FILLIO -- fills queue block with I/O parameters & then does I/O. 24970 / 24971 /CALL: JMS FILLIO 24972 / FUNCTION code /M006 24973 / CDF to buffer field. 24974 / ADDRESS to read/write to/from. 24975 / -# of disk blocks to read/write. 24976 / START block #. 24977 / Rtn1: Return here if I/O error. 24978 / Rtn2: Normal completion return. 24979 / 24980 24981 FILLIO, XX / Entry point. full ^ undefined ^ 010200* 0000 24982 TAD I FILLIO / Get FUNCTION code. /A006 undefined ^ undefined ^ 010201* 1400 24983 DCA FILLFN / Store in line. /A006 undefined ^ undefined ^ 010202* 3000 24984 ISZ FILLIO / Bump to CDF. /A006 undefined ^ undefined ^ 010203* 2000 24985 TAD I FILLIO / Get CDF to buffer. undefined ^ undefined ^ 010204* 1400 24986 DCA CMDBLK+RXQBFD / Set into queue block. /M004 undefined ^ undefined ^ undefined ^ 010205* 3000 24987 ISZ FILLIO / Bump to read/write address. undefined ^ undefined ^ 010206* 2000 24988 TAD I FILLIO / Get read/write address. undefined ^ undefined ^ 010207* 1400 24989 DCA CMDBLK+RXQBAD / Set into queue block. /M004 undefined ^ undefined ^ undefined ^ 010210* 3000 24990 ISZ FILLIO / Bump to size (in blocks). undefined ^ undefined ^ 010211* 2000 24991 TAD I FILLIO / Get minus number of blocks to read/write. undefined ^ undefined ^ 010212* 1400 24992 DCA CMDBLK+RXQRS1 / Set into queue block. /M004 undefined ^ undefined ^ undefined ^ 010213* 3000 24993 ISZ FILLIO / Bump to startint block #. undefined ^ undefined ^ 010214* 2000 24994 010215* 6214 RDF / Get return field. 24995 TAD CIDF0 / Convert into a return CIF CDF. undefined ^ undefined ^ 010216* 1000 24996 DCA FILXIT / Save for final return. undefined ^ undefined ^ 010217* 3000 24997 TAD I FILLIO / Get starting block #. undefined ^ undefined ^ 010220* 1400 24998 ISZ FILLIO / Bump to return address. undefined ^ undefined ^ 010221* 2000 24999 010222* 0000 CDFMYF / Map current field. 25000 JMS RDFIO / Go do the read/write. undefined ^ undefined ^ 010223* 4000 25001 FILLFN, 0 / ... /M006 full ^ 010224* 0000 25002 010225* 7700 SMA CLA / Skip if error returned. 25003 ISZ FILLIO / For normal return, bump address. undefined ^ undefined ^ 010226* 2000 25004 FILXIT, XX / Return CIF CDF goes here. full ^ undefined ^ 010227* 0000 25005 JMP I FILLIO / Return to caller. undefined ^ undefined ^ 010230* 5400 25006 25007 25008 RDFIO, XX full ^ undefined ^ 010231* 0000 25009 DCA CMDBLK+RXQBLK / STORE BLOCK NUMBER /M004 undefined ^ undefined ^ undefined ^ 010232* 3000 25010 010233* 6214 RDF / Get field of caller. 25011 TAD CIDF0 / Make a return CIF CDF. undefined ^ undefined ^ 010234* 1000 25012 DCA RDFXIT / and save for the exit. undefined ^ undefined ^ 010235* 3000 25013 TAD I RDFIO / ++++ undefined ^ undefined ^ 010236* 1400 25014 010237* 0000 CDFMYF / Now map our field. 25015 DCA CMDBLK+RXQFNC / AND FUNCTION CODE /M004 undefined ^ undefined ^ undefined ^ 010240* 3000 25016 ISZ RDFIO undefined ^ undefined ^ 010241* 2000 25017 JMS CMDQUX / USE SYSTEM QURX ROUTINE FOR CALL /A004 undefined ^ undefined ^ 010242* 4000 25018 25019 RDFXIT, XX / CIF CDF to return field goes here. full ^ undefined ^ 010243* 0000 25020 JMP I RDFIO / ELSE RETURN STATUS undefined ^ undefined ^ 010244* 5400 25021 25022 / The code immediately below is called by the startup code. This code decides 25023 / whether or not the SC disk need to be loaded. This code runs in field 2. 25024 / 25025 CHKSC, XX / Entry point. full ^ undefined ^ 010245* 0000 25026 TAD I (OLL301) / See if FIELD 5 need be re-loaded. /M005 undefined ^ undefined ^ 010246* 1777 25027 TAD (-OLL301) / Check currently loaded OLAY block. /M005 undefined ^ undefined ^ 010247* 1377 25028 010250* 7440 SZA / Skip if no. /M005 25029 DCA LOADSC / Set flag if yes. SC needs to be loaded./M005 undefined ^ undefined ^ 010251* 3000 25030 TAD I (OLL400) / Now check FIELD 6. /M005 undefined ^ undefined ^ 010252* 1777 25031 TAD (-OLL301) / ... /M005 undefined ^ undefined ^ 010253* 1377 25032 010254* 7440 SZA / Skip if no. /M005 25033 DCA LOADSC / Set flag if yes. SC needs to be loaded./M005 undefined ^ undefined ^ 010255* 3000 25034 TAD I (MUBUF+MNFMAT) / Get format word /A005 undefined ^ undefined ^ undefined ^ undefined ^ 010256* 1777 25035 AND (MNFM3X) / Mask off "British dictionary in use" bit/A005 undefined ^ undefined ^ 010257* 0377 25036 010260* 7650 SNA CLA / Skip if British /A005 25037 AC0001 / AC=1 if American /A005 undefined ^ 010261* 0000 25038 010262* 1376 TAD (-2) / AC=-2 if British else AC=-1 /A005 25039 DCA T1 / & save for later /A005 undefined ^ undefined ^ 010263* 3000 25040 TAD I (MUBUF+MNPULD) / Get APU/XPU loaded word /A005 undefined ^ undefined ^ undefined ^ undefined ^ 010264* 1777 25041 AND (MNRX0X+MNRX1X) / Mask off American & British loaded bits/A005 undefined ^ undefined ^ undefined ^ undefined ^ 010265* 0377 25042 / =0 if nothing loaded /A005 25043 / =1 if American loaded /A005 25044 / =2 if British loaded /A005 25045 TAD T1 / Add back dictionary in use value /A005 undefined ^ undefined ^ 010266* 1000 25046 010267* 7450 SNA / Skip if nothing or wrong one loaded /A005 25047 JMP NOLOAD / Else JMP, spell disk isn't needed /A005 undefined ^ undefined ^ 010270* 5000 25048 DCA LOADSC / Set flag. SC needs to be loaded /A005 undefined ^ undefined ^ 010271* 3000 25049 TAD (MNRX0X+MNRX1X) / Get American & British loaded bits /A005 undefined ^ undefined ^ undefined ^ undefined ^ 010272* 1377 25050 010273* 7040 CMA / Complement to form clearing mask /A005 25051 AND I (MUBUF+MNPULD) / & clear them in the APU/XPU loaded wd /A005 undefined ^ undefined ^ undefined ^ undefined ^ 010274* 0777 25052 DCA I (MUBUF+MNPULD) / & save the new APU/XPU loaded word /A005 undefined ^ undefined ^ undefined ^ undefined ^ 010275* 3777 25053 NOLOAD, TAD LOADSC / Do we need to (re)load the spell disk /A005 full ^ undefined ^ undefined ^ 010276* 1000 25054 010277* 7640 SZA CLA / Skip if not /A005 25055 ISZ CHKSC / Take bump return to (re)load the spell disk./M005 undefined ^ undefined ^ 010300* 2000 25056 CDIEDT / Back to caller. undefined ^ 010301* 0000 25057 JMP I CHKSC / ... undefined ^ undefined ^ 010302* 5400 25058 25059 LOADSC, 0 / Set if (re)load of spell disk is needed/A005 full ^ 010303* 0000 25060 25061 25062 SCSTS1, TEXT '![[?6L![[2&J![[R' / ESCAPE SEQUENCES DESCRIBED BELOW /M004 full ^ 010304* 4133 010305* 3377 010306* 6614 010307* 4133 010310* 3362 010311* 4612 010312* 4133 010313* 3322 010314* 0000 25063 / ESC [ ? 6 l / Set absolute mode. 25064 / ESC [ 2 J / Erase entire screen. 25065 / ESC [ r / Clear scrolling region. 25066 25067 X=. / FIRST FREE LOCATION ON PAGE 25068 /--------------------- 25069 010376* 7776 PAGE 010377* 0000 25070 25071 SPINIT=. full ^ 25072 CDFMYF=CDFEDT / This code loads in the editor field. undefined ^ 25073 RELOC 25074 25075 RELOC OVLAY1 / This code will load in editor from 7400-7777. 25076 25077 DSKBLK= .-7400%400+DLOSPI / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 25078 25079 25080 STRTUP, XX / Do initialization stuff. full ^ undefined ^ 017400* 0000 25081 CDIMNU / Map MENU field. undefined ^ 017401* 0000 25082 TAD I (MUBUF+MNOPTC) / Get options word. undefined ^ undefined ^ undefined ^ undefined ^ 017402* 1777 25083 DCA OPTNWD / save it aside. undefined ^ undefined ^ 017403* 3000 25084 25085 TAD OPTNWD / Save it for editing w/o MABIT. undefined ^ undefined ^ 017404* 1000 25086 AND (-1-MABIT) / Isolate all but MABIT. undefined ^ undefined ^ 017405* 0376 25087 DCA I (MUBUF+MNOPTC) / ... undefined ^ undefined ^ undefined ^ undefined ^ 017406* 3777 25088 25089 /d008 TAD (-7) / Get a minus 7. /A006 25090 TAD I (MUBUF+MNTMP6) / Pick up operation code from menu field undefined ^ undefined ^ undefined ^ undefined ^ 017407* 1777 25091 DCA SAVET6 / SAVET6 IS USED AS A THREE WAY SWITCH /A006 undefined ^ undefined ^ 017410* 3000 25092 / MINUS VALUE = SPELLING CORRECTOR /A006 25093 / ZERO VALUE = LOAD USER DICTIONARY /A006 25094 / PLUS VALUE = POST PROCESSING /A006 25095 25096 017411* 0000 CDFMYF / Map data field back to our field. 25097 25098 TAD (DLOSPS) / Load Spell-Check status line stuff. undefined ^ undefined ^ 017412* 1377 25099 PGSWAP / ... undefined ^ 017413* 0000 25100 CIFMNU / Map menu field, where FILLIO resides. undefined ^ 017414* 0000 25101 25102 JMS I (FILLIO) / Load ROOT-EDITOR Swap Area Code undefined ^ undefined ^ 017415* 4777 25103 RXERD+4000 / Function /A006 undefined ^ 017416* 4000 25104 CDFMNU / field two. undefined ^ 017417* 0000 25105 SWPBEG+1400 / load address offset by three blocks. undefined ^ 017420* 1400 25106 -DSSTAT+3 / size in blocks. undefined ^ 017421* 0003 25107 DLSTAT+3 / start block #. undefined ^ 017422* 0003 25108 JMP MYEXIT / If I/O error, abort. undefined ^ undefined ^ 017423* 5000 25109 25110 CIFMNU / Map menu field, where FILLIO resides. undefined ^ 017424* 0000 25111 JMS I (FILLIO) / Load Spell-Check menu text module undefined ^ undefined ^ 017425* 4777 25112 RXERD+4000 / Function /A006 undefined ^ 017426* 4000 25113 CDFBUF / field. undefined ^ 017427* 0000 25114 SPLMNU / load address. undefined ^ 017430* 0000 25115 -DSOSPM / size in blocks. undefined ^ 017431* 0000 25116 DLOSPM / start block #. undefined ^ 017432* 0000 25117 JMP MYEXIT / If I/O error, abort. undefined ^ undefined ^ 017433* 5000 25118 25119 JMS MOV100 / Go copy 100 locations from MENU field undefined ^ undefined ^ 017434* 4000 25120 CDFBUF / to field four undefined ^ 017435* 0000 25121 25122 JMS GTDKID / Get system disk id. undefined ^ undefined ^ 017436* 4000 25123 SYSID-1 / ... undefined ^ 017437* 7777 25124 25125 TAD SAVET6 / Check for Post Processor Operation /M006 undefined ^ undefined ^ 017440* 1000 25126 017441* 1375 TAD (-12) /A008 25127 017442* 7650 SNA CLA / Is this post processing ? /M006 /M008 25128 JMP UTLOAD / YES, skip test of APU loading undefined ^ undefined ^ 017443* 5000 25129 25130 CDIMNU / Map menu field. undefined ^ 017444* 0000 25131 JMS I (CHKSC) / See if SC diskette needs to be loaded. undefined ^ undefined ^ 017445* 4777 25132 JMP NOSC / JMP if no. We are currently loaded. undefined ^ undefined ^ 017446* 5000 25133 25134 UTLOAD, AC0001 / INDICATE UTILITY DISK REQUIRED full ^ undefined ^ 017447* 0000 25135 UTLDER, CDIBUF / SWITCH TO BUFFER FIELD full ^ undefined ^ 017450* 0000 25136 JMS GETDRV / ASK USER FOR DRIVE NUMBER AND VALIDATE IT undefined ^ undefined ^ 017451* 4000 25137 JMP STRTGM / USER OPTED FOR GOLD MENU RETURN undefined ^ undefined ^ 017452* 5000 25138 25139 TAD SAVET6 / Check for Post Processor Operation /M006 undefined ^ undefined ^ 017453* 1000 25140 017454* 1375 TAD (-12) /A008 25141 017455* 7640 SZA CLA / Is this post processing ? /M006 /M008 25142 JMP SCLOAD / NO, go load spelling corrector code undefined ^ undefined ^ 017456* 5000 25143 25144 PPLOAD, CIFMNU / Call routine down in menu field. full ^ undefined ^ 017457* 0000 25145 JMS I (FILLIO) / Fill queue block parameters. undefined ^ undefined ^ 017460* 4777 25146 RXERD+4000 / Function /A006 undefined ^ 017461* 4000 25147 CDFSPL / Field. undefined ^ 017462* 0000 25148 017463* 0100 100 / load address. 25149 -DSOFFF / Size in blocks. undefined ^ 017464* 0000 25150 DLOFFF / Starting block #. undefined ^ 017465* 0000 25151 JMP UTLDER / Report missing sc disk error. undefined ^ undefined ^ 017466* 5000 25152 25153 JMS MOV100 / Go copy 100 locations from MENU field undefined ^ undefined ^ 017467* 4000 25154 CDFSPL / to field six undefined ^ 017470* 0000 25155 JMP NODD / Go continue with main loop undefined ^ undefined ^ 017471* 5000 25156 25157 SCLOAD, CIFMNU / Call routine down in menu field. full ^ undefined ^ 017472* 0000 25158 JMS I (FILLIO) / Fill queue block parameters. undefined ^ undefined ^ 017473* 4777 25159 RXERD+4000 / Function /A006 undefined ^ 017474* 4000 25160 CDFSPL / Field. undefined ^ 017475* 0000 25161 017476* 0100 100 / load address. 25162 -DSOSPL / Size in blocks. undefined ^ 017477* 0000 25163 DLOSPL / Starting block #. undefined ^ 017500* 0000 25164 JMP UTLDER / Report missing sc disk error. undefined ^ undefined ^ 017501* 5000 25165 25166 JMS MOV100 / Go copy 100 locations from MENU field undefined ^ undefined ^ 017502* 4000 25167 CDFSPL / to field six undefined ^ 017503* 0000 25168 25169 CIFMNU / Call routine down in menu field. undefined ^ 017504* 0000 25170 JMS I (FILLIO) / Now read field 5 stuff. undefined ^ undefined ^ 017505* 4777 25171 RXERD+4000 / Function /A006 undefined ^ 017506* 4000 25172 CDFTXT / ... undefined ^ 017507* 0000 25173 017510* 0200 200 / Load address. 25174 -DSOSPX / size in blocks. undefined ^ 017511* 0000 25175 DLOSPX / Starting block #. undefined ^ 017512* 0000 25176 JMP UTLDER / Report missing sc disk error. undefined ^ undefined ^ 017513* 5000 25177 25178 CIFTXT / Map field 5 code. undefined ^ 017514* 0000 25179 JMS I (CHKAPU) / Do APU initialization. undefined ^ undefined ^ 017515* 4777 25180 JMP STRTGM / Return if APU init failure. undefined ^ undefined ^ 017516* 5000 25181 25182 NOSC, CIFSPL / Map spelling field. full ^ undefined ^ 017517* 0000 25183 JMS I (LODAPU) / Load the APU. undefined ^ undefined ^ 017520* 4777 25184 25185 TAD SAVET6 / See if operation is SC (6) /M006 undefined ^ undefined ^ 017521* 1000 25186 017522* 1374 TAD (-6) /A008 25187 017523* 7640 SZA CLA / If this is SC then dictionary required/M006 25188 JMP NODD / Not SC, DD is not required. undefined ^ undefined ^ 017524* 5000 25189 25190 DDLOAD, CDFMNU / Map to MENU field. /A005 full ^ undefined ^ 017525* 0000 25191 TAD I (MUBUF+MNFMAT) / Get format word. /A005 undefined ^ undefined ^ undefined ^ undefined ^ 017526* 1777 25192 AND (MNFM3X) / Mask off "British dictionary" bit /A005 undefined ^ undefined ^ 017527* 0377 25193 017530* 7640 SZA CLA / Skip if AMERICAN dictionary in use /A005 25194 AC0001 / INDICATE BRITISH DICTIONARY REQUIRED /A005 undefined ^ 017531* 0000 25195 017532* 1373 TAD (2) / INDICATE AMERICAN DICTIONARY REQUIRED /A005 25196 25197 CDIBUF / SWITCH TO BUFFER FIELD undefined ^ 017533* 0000 25198 JMS GETDRV / ASK USER FOR DRIVE NUMBER AND VALIDATE IT undefined ^ undefined ^ 017534* 4000 25199 JMP STRTGM / USER OPTED FOR GOLD MENU RETURN undefined ^ undefined ^ 017535* 5000 25200 25201 NODD, JMS INITSP / Go execute Spelling Checker editor initialization. full ^ 017536* 4772 25202 017537* 1771 TAD OPNFIL / See if file was opened. /A009 25203 /d011 SNA CLA / Skip if it was /A009 25204 /d011 JMP STRTGM / else just clean up & exit /A009 25205 017540* 7421 MQL / Leave file open flag in MQ register /A011 25206 25207 CIFSPL / Map spell field. undefined ^ 017541* 0000 25208 JMS I (SPELL) / Start up the spell checker. undefined ^ undefined ^ 017542* 4777 25209 25210 STRTGM, JMS CHKID / Make sure original system diskette is installed. full ^ undefined ^ undefined ^ 017543* 4000 25211 25212 MYEXIT, AC7777 / Restore Menu field stuff. full ^ undefined ^ 017544* 0000 25213 CIFMNU / ... undefined ^ 017545* 0000 25214 PGSWAP / .... undefined ^ 017546* 0000 25215 25216 CDIMNU / Return CDI instruction to MENU field undefined ^ 017547* 0000 25217 JMP I STRTUP / Return to caller. undefined ^ undefined ^ 017550* 5400 25218 25219 OPTNWD, 0 / Location for MNOPTC word during spell check. full ^ 017551* 0000 25220 SAVET6, 0 / Location for value of MNTMP6 operation word. full ^ 017552* 0000 25221 / *** SAVET6 = (MNTMP6) - 7 *** /A006 25222 / SAVET6 IS USED AS A THREE WAY SWITCH /A006 25223 / MINUS VALUE = SPELLING CORRECTOR /A006 25224 / ZERO VALUE = LOAD USER DICTIONARY /A006 25225 / PLUS VALUE = POST PROCESSING /A006 25226 25227 X=. / FIRST FREE LOCATION ON PAGE 25228 /--------------------- 25229 017571* 7142 PAGE 017572* 7001 017573* 0002 017574* 7772 017575* 7766 017576* 7777 017577* 0000 25230 25231 DSKBLK= .-7400%400+DLOSPI / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 25232 25233 /*********************************************************************** 25234 / CHKID - MAKE SURE ORIGINAL SYSTEM DISKETTE IS INSTALLED BEFORE 25235 / RETURN TO MAIN MENU. 25236 / 25237 / WHEN WPSPEL IS CALLED, THE NAME AND DISK "RANDOM" ID ARE READ INTO 25238 / SYSID0-3. BEFORE WPSPEL IS EXITED, THE NAME AND "RANDOM" ID FOR THE 25239 / DISK IN DRIVE 0 ARE READ INTO SYSID4-7. THIS ROUTINE CHECKS TO MAKE 25240 / SURE THAT BOTH BLOCKS MATCH 25241 / 25242 / IF NO MATCH IS FOUND, THE OPERATOR IS ASKED TO INSERT THE ORIGINAL SYSTEM 25243 / DISKETTE. THE ROUTINE IS NOT EXITED UNTIL THE NAME AND "RANDOM" ID MATCH 25244 / 25245 /*********************************************************************** 25246 25247 CHKID, XX / CHECK ORIGINAL SYSTEM DISKETTE full ^ undefined ^ 017600* 0000 25248 TAD OPTNWD / Get original option word. undefined ^ undefined ^ 017601* 1000 25249 CDFMNU / Map MENU field. undefined ^ 017602* 0000 25250 DCA I (MUBUF+MNOPTC) / Restore it. undefined ^ undefined ^ undefined ^ undefined ^ 017603* 3777 25251 017604* 0000 CDFMYF / Back to our field. 25252 017605* 1776 TAD OPNFIL / Did we open the file? 25253 017606* 7640 SZA CLA / Skip if no. nothing to close. 25254 017607* 4775 JMS CLOSEF / Call close file routine. 25255 JMS GTDKID / Go read current drive diskette name & ID. undefined ^ undefined ^ 017610* 4000 25256 CHKID0, SYSID+4-1 / ... full ^ undefined ^ 017611* 0003 25257 017612* 1374 TAD (-4 / 25258 DCA T1 / SET UP COUNTER undefined ^ undefined ^ 017613* 3000 25259 TAD (SYSID-1 / undefined ^ undefined ^ 017614* 1373 25260 DCA X1 / SET UP SOURCE INDEX undefined ^ undefined ^ 017615* 3000 25261 TAD CHKID0 / = (SYSID+4-1 /M006 undefined ^ undefined ^ 017616* 1000 25262 DCA X2 / SET UP COMPARE INDEX undefined ^ undefined ^ 017617* 3000 25263 CHKIDL, TAD I X1 / READ OLD WORD full ^ undefined ^ undefined ^ 017620* 1400 25264 017621* 7041 CIA / 25265 TAD I X2 / COMPARE WITH NEW WORD undefined ^ undefined ^ 017622* 1400 25266 017623* 7640 SZA CLA / 25267 JMP GTDKER / NO, GO ASK FOR ORIGINAL SYSTEM DISKETTE undefined ^ undefined ^ 017624* 5000 25268 ISZ T1 / SEE IF LAST WORD undefined ^ undefined ^ 017625* 2000 25269 JMP CHKIDL / NO, LOOP BACK undefined ^ undefined ^ 017626* 5000 25270 JMP I CHKID / RETURN TO CALLER undefined ^ undefined ^ 017627* 5400 25271 25272 MOV100, XX / INITIALIZE PAGE ZERO LOCATIONS full ^ undefined ^ 017630* 0000 25273 TAD I MOV100 / PICK UP FIELD TO MOVE TOO undefined ^ undefined ^ 017631* 1400 25274 DCA MOV10F / STORE CHANGE FIELD INSTRUCTION undefined ^ undefined ^ 017632* 3000 25275 ISZ MOV100 / BUMP RETURN ADDRESS OVER FIELD INSTRUCTION undefined ^ undefined ^ 017633* 2000 25276 25277 017634* 4772 JMS CPYBUF / Copy locations 0-77 to memory field X 25278 017635* 7700 -100 / 100 locations 25279 CDFMNU / from MENU field undefined ^ 017636* 0000 25280 017637* 7777 0000-1 / location 0, 25281 MOV10F, XX / to field X, full ^ undefined ^ 017640* 0000 25282 017641* 7777 0000-1 / location 0. 25283 25284 JMP I MOV100 / RETURN TO CALLER undefined ^ undefined ^ 017642* 5400 25285 25286 /*********************************************************************** 25287 / 25288 / GTDKID GETS THE DISK ID OF THE SYSTEM DISK 25289 / THE ID IS THE THREE NAME WORDS AND THE "RANDOM" WORD 25290 / IT IS USED TO INSURE THAT THE SAME SYSTEM DISK IS REINSERTED 25291 / IN CASES WHERE IT MUST BE REMOVED. 25292 / 25293 /*********************************************************************** 25294 25295 GTDKID, XX full ^ undefined ^ 017643* 0000 25296 TAD I GTDKID / Get buffer address to copy NAME & ID into. undefined ^ undefined ^ 017644* 1400 25297 ISZ GTDKID / Bump to return address. undefined ^ undefined ^ 017645* 2000 25298 DCA GTDKIA / save buffer address. undefined ^ undefined ^ 017646* 3000 25299 25300 GTDK1, CDIMNU / Get density of drive 0. full ^ undefined ^ 017647* 0000 25301 DCA I (CMDBLK+RXQDRV) / Set the drive # to 0. /M004 undefined ^ undefined ^ undefined ^ undefined ^ 017650* 3777 25302 25303 017651* 0000 CDFMYF / Back to our field & Call RDFIO in MENU field. 25304 JMS I (RDFIO) / Do a GET DENSITY to establish drive density. undefined ^ undefined ^ 017652* 4777 25305 RXEDN+4000 / "GET DENSITY" code. undefined ^ 017653* 4000 25306 25307 017654* 7710 SPA CLA / Skip if no error. 25308 JMP GTDKER / Error. Display "replace" msg. undefined ^ undefined ^ 017655* 5000 25309 25310 CIFMNU / Go read in the home block. undefined ^ 017656* 0000 25311 JMS I (FILLIO) / ... undefined ^ undefined ^ 017657* 4777 25312 RXERD+4000 / Function /A006 undefined ^ 017660* 4000 25313 CDFTXT / Read home block into block buffer. undefined ^ 017661* 0000 25314 BUFADR / buffer address. undefined ^ 017662* 0000 25315 017663* 7777 -1 / Size (1 block). 25316 DLDIR / Read the home block. undefined ^ 017664* 0000 25317 JMP GTDKER / Error. Display "replace" msg. undefined ^ undefined ^ 017665* 5000 25318 25319 017666* 4772 JMS CPYBUF 25320 017667* 7774 -4 / Size 25321 CDFTXT / Source field. undefined ^ 017670* 0000 25322 BUFADR+2-1 / Source Address undefined ^ 017671* 0001 25323 017672* 0000 CDFMYF / DESTINATION FIELD 25324 GTDKIA, XX / DESTINATION ADDRESS full ^ undefined ^ 017673* 0000 25325 25326 JMP I GTDKID / RETURN TO CALLER AFTER OBTAINING ID WORDS undefined ^ undefined ^ 017674* 5400 25327 25328 GTDKER, CDIMNU / Prompt user to insert the system diskette. full ^ undefined ^ 017675* 0000 25329 JMS I (SYPRMP) / ... undefined ^ undefined ^ 017676* 4777 25330 JMP GTDK1 / Go retry. undefined ^ undefined ^ 017677* 5000 25331 25332 SYSID, 0;0;0;0 / System disk ID. full ^ 017700* 0000 017701* 0000 017702* 0000 017703* 0000 25333 017704* 0000 0;0;0;0 / ID of diskette in drive 0 at exit time. 017705* 0000 017706* 0000 017707* 0000 25334 25335 25336 X=. / FIRST FREE LOCATION ON PAGE 25337 /--------------------- 25338 017772* 6054 PAGE 017773* 7777 017774* 7774 017775* 7211 017776* 7142 017777* 0000 25339 25340 RELOC / RESET RELOCATION COUNTER 25341 25342 CDFMYF= CDFBUF / DEFINE OUR FIELD AS FIELD FOUR. undefined ^ 25343 SPMENU= . / DEFINE OUR LOAD POINT. full ^ 25344 SPLMNU= 200 / DEFINE OUR RUN LOCATION. full ^ 25345 25346 RELOC SPLMNU / RELOCATE TO WHERE CODE RUNS IN FIELD FOUR undefined ^ 25347 25348 25349 /*************************************************************************** 25350 /**** PAGE ZERO LOCATIONS IN FIELD FOUR **** 25351 /*************************************************************************** 25352 25353 / SET COUNTER TO LOCATION 100 ON PAGE ZERO 25354 25355 X= 100; SPLFUN= X / LOCATION FOR SPELL FUNCTION CODE full ^ 25356 X= X+1; SPLDRV= X / LOCATION FOR USER SPECIFIED DRIVE NUMBER full ^ 25357 X= X+1; SPLMAX= X / LOCATION FOR MAXIMUM DRIVE NUMBER full ^ 25358 X= X+1; SPLDOC= X / LOCATION FOR CURRENT DOCUMENT NUMBER full ^ 25359 X= X+1; SPLMS1= X / LOCATION FOR POINTER TO UTILITY/DICTIONARY TEXT full ^ 25360 X= X+1; SPLMS2= X / LOCATION FOR POINTER TO DRIVE - DRIVE/DEVICE TEXT full ^ 25361 X= X+1; SPLOPT= X / LOCATION FOR SYSTEM OPTION CONFIGURATION BITS full ^ 25362 X= X+1; SPLSDR= X / LOCATION FOR USER DRIVE SELECTION FOR SPELL full ^ 25363 25364 X= X+1; REDFLG= X / LOCATION FOR READ ROUTINE DRIVE REQUEST FLAG full ^ 25365 X= X+1; REDDRV= X / LOCATION FOR READ ROUTINE DRIVE NUMBER full ^ 25366 X= X+1; REDNUM= X / LOCATION FOR READ ROUTINE CHARACTER COUNTER full ^ 25367 X= X+1; REDCHR= X / LOCATION FOR READ ROUTINE INPUT CHARACTER full ^ 25368 25369 X= X+1; VALADD= X / LOCATION FOR VALIDATION TABLE POINTER ADDRESS full ^ 25370 X= X+1; SPLFNR= X / LOCATION FOR FOOTNOTE RESULT DOC DRIVE NUMBER /A010 full ^ 25371 X= X+1; SPLOPR= X / LOCATION FOR SPell OPeRation flag /A010 full ^ 25372 / 0 IF FOOTNOTING, NOT 0 IF DECSPELL /A010 25373 25374 DSKBLK= .-200%400+DLOSPM / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 25375 25376 / GETDRV IS CALLED BY THE EDITOR TO OBTAIN A VALID DRIVE NUMBER FOR THE 25377 / UTILITY DISK AND THE DICTIONARY DISK. IT CALLS SPLGET TO PROMPT THE 25378 / USER FOR THE DRIVE NUMBER AND THEN CHECKS TO SEE IF THE USER SUPPLIED 25379 / NUMBER IS A VALID DRIVE NUMBER WITH THE PROPER DISKETTE LOADED. 25380 / IF NOT, IT CALLS SPLGET TO REPORT THE ERROR. 25381 / 25382 / GETDRV IS CALLED AS FOLLOWS: 25383 / 25384 / CDIBUF / CHANGE TO BUFFER FIELD 25385 / JMS I GETDRV / CALL ROUTINE TO GET DRIVE NUMBER 25386 / JMP GOLDMN / GOLD MENU RETURN 25387 / .... / NORMAL RETURN 25388 / 25389 / UPON ENTRY, THE AC CONTAINS ONE OF THE FOLLOWING VALUES: 25390 / 25391 / AC = 0 ERROR CALL INDICATING AN ERROR DETECTED WHILE READING 25392 / AC = 1 REQUEST FOR WPS UTILITY DISKETTE 25393 / AC = 2 REQUEST FOR AMERICAN DICTIONARY DISKETTE 25394 / AC = 3 REQUEST FOR BRITISH DICTIONARY DISKETTE 25395 25396 GETDRV, XX / ROUTINE TO GET DRIVE # VIA MENU. full ^ undefined ^ 010000* 0000 25397 GETBAD, DCA SPLFUN / SAVE SPELL FUNCTION CODE full ^ undefined ^ undefined ^ 010001* 3000 25398 CDIBUF / SWICH TO FIELD FOUR FOR MENU ROUTINE undefined ^ 010002* 0000 25399 JMS SPLGET / GO PROMPT USER FOR DRIVE NUMBER undefined ^ undefined ^ 010003* 4000 25400 JMP GETXIT / USER OPTED FOR GOLD:MENU RETURN. undefined ^ undefined ^ 010004* 5000 25401 25402 CIFMNU / MAP MENU FIELD. undefined ^ 010005* 0000 25403 JMS FILLIO / FIRST, READ IN THE ALLOC BLOCK. undefined ^ undefined ^ 010006* 4000 25404 RXERD+4000 / FUNCTION /A006 undefined ^ 010007* 4000 25405 CDFTXT / USE THE BUFFER DEFINED IN TXT FIELD. undefined ^ 010010* 0000 25406 BUFADR / BUFFER ADDRESS. undefined ^ 010011* 0000 25407 010012* 7777 -1 / 1 BLOCK. 25408 DLALOC / ALLOCATION BLOCK. undefined ^ 010013* 0000 25409 JMP GETBAD / REPORT BAD DISKETTE. undefined ^ undefined ^ 010014* 5000 25410 25411 CDFTXT / MAP BUFFER undefined ^ 010015* 0000 25412 TAD I (BUFADR+1) / SEE IF DOCUMENT DISKETTE. page zero ^ undefined ^ page zero ^ undefined ^ 010016* 1576 25413 TAD (-40) / 40 MEANS DOCUMENT DISKETTE. page zero ^ page zero ^ 010017* 1175 25414 010020* 7640 SZA CLA / SKIP IF DOCUMENT DISKETTE. 25415 JMP GETBAD / REPORT VALIDATION ERROR. undefined ^ undefined ^ 010021* 5000 25416 TAD I (BUFADR+2) / CHECK MAX NUMBER OF DOCUMENTS ALLOWED. page zero ^ undefined ^ page zero ^ undefined ^ 010022* 1574 25417 010023* 7640 SZA CLA / SKIP IF NONE. 25418 JMP GETBAD / REPORT VALIDATION ERROR. undefined ^ undefined ^ 010024* 5000 25419 25420 010025* 0000 CDFMYF / BACK TO OUR FIELD. 25421 CIFMNU / MAP MENU FIELD undefined ^ 010026* 0000 25422 JMS FILLIO / NOW READ THE HOME BLOCK. undefined ^ undefined ^ 010027* 4000 25423 RXERD+4000 / FUNCTION /A006 undefined ^ 010030* 4000 25424 CDFTXT / USE THE SAME 2 PAGES. undefined ^ 010031* 0000 25425 BUFADR / ... undefined ^ 010032* 0000 25426 010033* 7777 -1 / 1 BLOCK. 25427 DLDIR / HOME BLOCK. undefined ^ 010034* 0000 25428 JMP GETBAD / REPORT BAD DISKETTE. undefined ^ undefined ^ 010035* 5000 25429 25430 VALDAT, TAD VALADD / GET TABLE ADDRESS POINTER TO NAME full ^ undefined ^ undefined ^ 010036* 1000 25431 DCA X0 / SAVE IN AUTO INDEX REGISTER undefined ^ undefined ^ 010037* 3000 25432 AC7775 / SET UP TO COMPARE 3 WORDS. undefined ^ 010040* 0000 25433 DCA T1 / STORE COUNT IN COUNTER undefined ^ undefined ^ 010041* 3000 25434 TAD (BUFADR+2-1) / POINTER TO ACTUAL DOCUMENT NAME. page zero ^ undefined ^ page zero ^ undefined ^ 010042* 1176 25435 DCA X1 / SAVE IN AUTO INDEX REGISTER undefined ^ undefined ^ 010043* 3000 25436 25437 VAL001, CDFMYF / SWITCH BACK TO THIS FIELD full ^ 010044* 0000 25438 TAD I X0 / PICK UP PART OF DESIRED NAME. undefined ^ undefined ^ 010045* 1400 25439 010046* 7041 CIA / SEE IF IT'S SAME AS DOCUMENT NAME. 25440 CDFTXT / SWITCH TO TEXT FIELD BUFFER undefined ^ 010047* 0000 25441 TAD I X1 / GET WORD OF ACTUAL DOCUMENT NAME. undefined ^ undefined ^ 010050* 1400 25442 010051* 7640 SZA CLA / SKIP IF THE SAME. 25443 JMP GETBAD / REPORT VALIDATION ERROR. undefined ^ undefined ^ 010052* 5000 25444 ISZ T1 / BUMP COUNT OF WORDS TO COMPARE. undefined ^ undefined ^ 010053* 2000 25445 JMP VAL001 / LOOP UNTIL DONE WITH WORDS TO COMPARE undefined ^ undefined ^ 010054* 5000 25446 25447 ISZ X1 / POINT TO DATE OF BUILD. undefined ^ undefined ^ 010055* 2000 25448 ISZ X1 / ... undefined ^ undefined ^ 010056* 2000 25449 X=BLDDY^100+BLDMO / COMPUTE EXPECTED DAY-MONTH VALUE. undefined ^ undefined ^ 25450 TAD (-X) / SEE IF DATE OF BUILD MATCHES DISKETTE. page zero ^ page zero ^ 010057* 1177 25451 TAD I X1 / IF NOT THEN DISKETTE IS OF A DIFFERENT BUILD undefined ^ undefined ^ 010060* 1400 25452 010061* 7640 SZA CLA / AND THEREFORE IS TO BE REJECTED. 25453 JMP GETBAD / REJECT DISKETTE IF FROM A DIFFERENT BUILD. undefined ^ undefined ^ 010062* 5000 25454 25455 TAD (-BLDYR) / COMPARE YEAR OF BUILD TOO. page zero ^ undefined ^ page zero ^ undefined ^ 010063* 1177 25456 TAD I X1 / THAT SHOULD MATCH AS WELL. undefined ^ undefined ^ 010064* 1400 25457 010065* 7640 SZA CLA / SKIP IF MATCH. 25458 JMP GETBAD / REJECT DISKETTE IF FROM A DIFFERENT BUILD. undefined ^ undefined ^ 010066* 5000 25459 25460 010067* 0000 CDFMYF / SWITCH BACK TO THIS FIELD 25461 ISZ GETDRV / BUMP RETURN POINT PAST GOLD MENU RETURN undefined ^ undefined ^ 010070* 2000 25462 TAD SPLMS1 / GET THE MESSAGE POINTER TO UTL OR DIC undefined ^ undefined ^ 010071* 1000 25463 TAD (-SPLUTL) / SUBTRACT POINTER TO UTILITY DISK page zero ^ undefined ^ page zero ^ undefined ^ 010072* 1177 25464 010073* 7640 SZA CLA / ARE WE ABOUT TO LOAD THE UTILITY DISK ? 25465 JMP GETXIT / NO, WE ARE DOING THE DICTIONARY DISK undefined ^ undefined ^ 010074* 5000 25466 25467 CIFMNU / YES, DISPLAY MESSAGE "LOADING SOFTWARE" undefined ^ 010075* 0000 25468 JMS I IOACAL / CALL STANDARD MESSAGE OUTPUT ROUTINE undefined ^ undefined ^ 010076* 4400 25469 010077* 0000 0 / USE DEFAULT OUTPUT CHANNEL 25470 WRKTXT / POINTER TO MESSAGE CONTROL STRING undefined ^ 010100* 0000 25471 010101* 0200 0200 / CLEAR SCREEN FROM TIME DISPLAY FIRST /A007 25472 010102* 1020 1020 / SCREEN POSITION FOR FIRST TEXT LINE 25473 SPLUTL / POINTER TO "WPS UTILITY SOFTWARE" undefined ^ 010103* 0000 25474 25475 GETXIT, CDIEDT / SWITCH BACK TO EDITOR FIELD full ^ undefined ^ 010104* 0000 25476 JMP I GETDRV / RETURN TO CALLER. undefined ^ undefined ^ 010105* 5400 25477 25478 / 25479 / 25480 / SPLINU - Report IF Drive(/device) in use by spell (or footnoting) 25481 / for a document & accept user response. 25482 / 25483 / 25484 25485 SPLINU, XX /A010 full ^ undefined ^ 010106* 0000 25486 TAD SPLDOC / Get Spell or Footnote source drive no./A010 undefined ^ undefined ^ 010107* 1000 25487 010110* 7041 CIA / /A010 25488 TAD SPLDRV / Compare to Utility drive /A010 undefined ^ undefined ^ 010111* 1000 25489 010112* 7650 SNA CLA / They're different, we're ok so far /A010 25490 JMP INUDSP / Same - ERROR - Go tell user &get resp./A010 undefined ^ undefined ^ 010113* 5000 25491 TAD SPLOPR / See if we're footnoting /A010 undefined ^ undefined ^ 010114* 1000 25492 010115* 7640 SZA CLA / Yes we are - continue checking /A010 25493 JMP INUOK / No we're not - take OK exit /A010 undefined ^ undefined ^ 010116* 5000 25494 TAD SPLFNR / Get Footnote result drive no. /A010 undefined ^ undefined ^ 010117* 1000 25495 010120* 7041 CIA / /A010 25496 TAD SPLDRV / Compare to Utility drive /A010 undefined ^ undefined ^ 010121* 1000 25497 010122* 7650 SNA CLA / They're different - take OK exit /A010 25498 JMP INUDSP / Same - ERROR - Go tell user &get resp./A010 undefined ^ undefined ^ 010123* 5000 25499 INUOK, ISZ SPLINU / Begin setup of a RETURN+2 exit /A010 full ^ undefined ^ undefined ^ 010124* 2000 25500 JMP INUXIT / Go finish housekeeping /A010 undefined ^ undefined ^ 010125* 5000 25501 25502 25503 INUDSP, CIFMNU / Display IN USE message /A010 full ^ undefined ^ 010126* 0000 25504 JMS I IOACAL / /A010 undefined ^ undefined ^ 010127* 4400 25505 010130* 0000 0 / /A010 25506 INUERR / /A010 undefined ^ 010131* 0000 25507 010132* 0000 0 / /A010 25508 010133* 1002 1002 / /A010 25509 SPLMS2 / /A010 undefined ^ 010134* 0000 25510 25511 AC7777 / Signal RETURN & GOLD MENU as only resp./A010 undefined ^ 010135* 0000 25512 JMS REDSPL / & get the user response /A010 undefined ^ undefined ^ 010136* 4000 25513 JMP INUDSP / Invalid response - redisplay msg. /A010 undefined ^ undefined ^ 010137* 5000 25514 010140* 7410 SKP / GOLD MENU - take "NORMAL" return /A010 25515 / RETURN - take "RETURN+1" return /A010 25516 INUXIT, ISZ SPLINU / /A010 full ^ undefined ^ undefined ^ 010141* 2000 25517 JMP I SPLINU / /A010 undefined ^ undefined ^ 010142* 5400 25518 25519 25520 VALTAB, 7061 / 'WP' full ^ 010143* 7061 25521 010144* 6466 6466 / 'SU' 25522 010145* 6555 6555 / 'TL' Utility diskette name. 25523 010146* 6664 6664 / 'US' American 25524 010147* 4552 4552 / 'DI' 25525 010150* 4465 4465 / 'CT' Dictionary diskette name. 25526 010151* 6654 6654 / 'UK' British 25527 010152* 4552 4552 / 'DI' 25528 010153* 4465 4465 / 'CT' Dictionary diskette name. 25529 25530 25531 X=. / FIRST FREE LOCATION ON PAGE 25532 /--------------------- 25533 PAGE 25534 25535 DSKBLK= .-200%400+DLOSPM / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 25536 25537 / SPLGET IS CALLED FROM THE GETDRV ROUTINE TO PROMPT THE USER FOR A DISK 25538 / DRIVE NUMBER WHICH SHOULD CONTAIN EITHER THE WPS UTILITY SOFTWARE OR THE 25539 / AMERICAN OR BRITISH DICTIONARY. THIS ROUTINE IS ALSO CALLED TO HANDLE A 25540 / DISK ERROR THAT MAY BE CAUSED BY THE USER NOT HAVING THE PROPER DISKETTE 25541 / LOADED IN THE SPECIFIED DRIVE OR A READ ERROR ON THE SPECIFIED DRIVE. 25542 / 25543 / UPON ENTRY, THE VALUE STORED IN SPLFUN DETERMINES WHAT KIND OF REQUEST IS 25544 / BEING MADE. A ZERO ENTRY INDICATES THAT THIS ROUTINE HAS BEEN CALLED 25545 / BEFORE AND THAT ALL TEXT POINTERS ARE CORRECTLY SET UP. A NON-ZERO ENTRY 25546 / WILL CAUSE THE ROUTINE TO SET ITSELF UP TO HANDLE THE PROPER REQUEST. 25547 25548 / AFTER THE USER HAS ENTERED A DRIVE NUMBER, IF NECESSARY, THE INDICATED 25549 / DRIVE NUMBER IS CHECKED VIA A GET-DENSITY CALL TO SEE IF IT CONTAINS A 25550 / DISKETTE OR FOR A WINCHESTER SYSTEM, THAT THE VOLUME IS MOUNTED. 25551 25552 / UPON EXIT, CONTROL IS PASSED TO THE FIRST LOCATION FOLLOWING THE CALL IF 25553 / THE USER TYPED GOLD MENU TO ABORT THE OPERATION AND RETURN TO MAIN MENU. 25554 / CONTROL IS PASSED TO THE SECOND LOCATION FILLOWING THE CALL WHEN THE USER 25555 / ENTERS A VALID DRIVE NUMBER CONTAINING A MOUNTED DISKETTE OR VOLUME. 25556 25557 SPLGET, XX / ENTRY POINT TO GET A DRIVE NUMBER FROM USER full ^ undefined ^ 010200* 0000 25558 TAD SPLFUN / PICK UP THE SPELL FUNCTION CODE undefined ^ undefined ^ 010201* 1000 25559 010202* 7450 SNA / IS THIS A VALIDATION ERROR OPERATION ? 25560 JMP SPLVER / YES, GO HANDLE THE VALIDATION ERROR undefined ^ undefined ^ 010203* 5000 25561 25562 010204* 7104 CLL RAL / MULTIPLY BY TWO 25563 TAD SPLFUN / MULTIPLY BY THREE undefined ^ undefined ^ 010205* 1000 25564 TAD (VALTAB-1-3) / CONSTRUCT VALIDATION POINTER undefined ^ undefined ^ 010206* 1377 25565 DCA VALADD / STORE TABLE POINTER ADDRESS undefined ^ undefined ^ 010207* 3000 25566 25567 TAD SPLFUN / GET THE FUNCTION CODE BACK undefined ^ undefined ^ 010210* 1000 25568 010211* 1376 TAD (-1) / DECREMENT THE FUNCTION CODE 25569 010212* 7450 SNA / IS THIS A UTILITY DISK REQUEST ? 25570 JMP SPLGT1 / YES, GO SET UP FOR THE UTILITY DISK undefined ^ undefined ^ 010213* 5000 25571 25572 010214* 1376 TAD (-1) / DECREMENT THE FUNCTION CODE 25573 010215* 7640 SZA CLA / IS THIS AN AMERICAN DICTIONARY REQUEST ? 25574 TAD (SPLUKD-SPLUSD) / NO, SET UP FOR THE BRITISH DICTIONARY undefined ^ undefined ^ undefined ^ undefined ^ 010216* 1375 25575 TAD (SPLUSD-SPLUTL) / YES, SET UP FOR THE AMERICAN DICTIONARY undefined ^ undefined ^ undefined ^ undefined ^ 010217* 1375 25576 SPLGT1, TAD (SPLUTL) / ELSE SET UP FOR WPS UTILITY DISK full ^ undefined ^ undefined ^ 010220* 1375 25577 DCA SPLMS1 / STORE POINTER TO UTL. OR DIC. TEXT STRING undefined ^ undefined ^ 010221* 3000 25578 25579 CDFMNU / CHANGE DATA FIELD TO THE MENU FIELD undefined ^ 010222* 0000 25580 25581 TAD MNMXDR+MUBUF / PICK UP THE MAXIMUM DRIVE NUMBER ALLOWED undefined ^ undefined ^ undefined ^ 010223* 1000 25582 DCA SPLMAX / SAVE FOR LATER USE undefined ^ undefined ^ 010224* 3000 25583 /D010 TAD MNFNO+MUBUF / PICK UP THE CURRENT DOCUMENT DRIVE NUMBER 25584 TAD MNUTFN+MUBUF / PICK UP SPELL/FOOT.SRC. DRIVE/DOC NO. /A010 undefined ^ undefined ^ undefined ^ 010225* 1000 25585 010226* 7002 BSW;RTR;AND (17) / & ISOLATE DRIVE NO. /A010 010227* 7012 010230* 0374 25586 DCA SPLDOC / SAVE FOR LATER USE undefined ^ undefined ^ 010231* 3000 25587 TAD MNFNO+MUBUF / PICK UP FOOTNOTE RESULT DRIVE/DOC NO. /A010 undefined ^ undefined ^ undefined ^ 010232* 1000 25588 010233* 7002 BSW;RTR;AND (17) / & ISOLATE DRIVE NO. /A010 010234* 7012 010235* 0374 25589 DCA SPLFNR / SAVE FOR LATER USE /A010 undefined ^ undefined ^ 010236* 3000 25590 TAD MNTMP6+MUBUF / PICK UP OPERATION CODE /A010 undefined ^ undefined ^ undefined ^ 010237* 1000 25591 010240* 1373 TAD (-12) / ADD IN NEGATIVE VALUE OF FOOTNOTE OPER./A010 25592 DCA SPLOPR / & SAVE RESULT AS SPeLl OPeRation flag /A010 undefined ^ undefined ^ 010241* 3000 25593 TAD MNOPTN+MUBUF / PICK UP THE SYSTEM OPTION CONFIGURATION BITS undefined ^ undefined ^ undefined ^ 010242* 1000 25594 DCA SPLOPT / SAVE FOR LATER USE undefined ^ undefined ^ 010243* 3000 25595 TAD MNSDRV+MUBUF / PICK UP THE USER DRIVE SELLECTION FOR SPELL undefined ^ undefined ^ undefined ^ 010244* 1000 25596 DCA SPLSDR / SAVE FOR LATER USE undefined ^ undefined ^ 010245* 3000 25597 010246* 0000 CDFMYF / RETURN DATA FIELD TO OUR FIELD 25598 25599 TAD SPLOPT / GET OPTION CONFIGURATION BITS undefined ^ undefined ^ 010247* 1000 25600 AND (MNRX2X) / MASK OFF THE WINCHESTER ON LINE BIT undefined ^ undefined ^ 010250* 0375 25601 010251* 7640 SZA CLA / CHECK TO SEE IF THE WINCHESTER IS ON LINE 25602 TAD (DEVTXT-DRVTXT) / YES, SET UP TO DISPLAY "DRIVE/DEVICE" undefined ^ undefined ^ undefined ^ undefined ^ 010252* 1375 25603 TAD (DRVTXT) / NO, SET UP TO DISPLAY "DRIVE" undefined ^ undefined ^ 010253* 1375 25604 DCA SPLMS2 / STORE FOR MESSAGE DISPLAYS undefined ^ undefined ^ 010254* 3000 25605 25606 AC7776 / SET THE AC EQUAL TO A MINUS 2 undefined ^ 010255* 0000 25607 TAD SPLMAX / COMBINE WITH THE MAXIMUM DRIVE NUMBER undefined ^ undefined ^ 010256* 1000 25608 010257* 7700 SMA CLA / IS THIS A MULTI DRIVE SYSTEM ? 25609 JMP SPLGDR / YES, GO REQUEST THE DRIVE NUMBER undefined ^ undefined ^ 010260* 5000 25610 / NO, THIS IS A TWO DRIVE SYSTEM 25611 TAD SPLDOC / PICK UP THE DOCUMENT DRIVE NUMBER undefined ^ undefined ^ 010261* 1000 25612 010262* 7650 SNA CLA / IS DOCUMENT ON DRIVE NUMBER ONE ? 25613 AC0001 / NO, DOCUMENT IS ON DRIVE ZERO undefined ^ 010263* 0000 25614 DCA SPLDRV / SELECT OTHER DRIVE FROM DOCUMENT undefined ^ undefined ^ 010264* 3000 25615 JMP SPLVE1 / GO HANDLE AS A VALIDATION ERROR undefined ^ undefined ^ 010265* 5000 25616 25617 SPLGDR, CLA CLL CMA / SET AC TO MINUS ONE AND CLEAR THE LINK full ^ 010266* 7340 25618 TAD SPLFUN / COMBINE WITH FUNCTION CODE - SETS LINK undefined ^ undefined ^ 010267* 1000 25619 010270* 7650 SNA CLA / IS THIS A UTILITY DISK REQUEST ? 25620 010271* 7100 CLL / YES, CLEAR THE LINK FOR INDICATOR 25621 TAD SPLSDR / PICK UP THE USER DRIVE SELECTION FOR SPELL undefined ^ undefined ^ 010272* 1000 25622 010273* 7420 SNL / IS THE FLAG SET FOR THE DICTIONARY DISK 25623 JMP SPLGD1 / NO, GO HANDLE UTILITY DRIVE NUMBER undefined ^ undefined ^ 010274* 5000 25624 010275* 7002 BSW / YES, SWAP HIGH ORDER FOR LOW ORDER 25625 010276* 7012 RTR / SHIFT DOWN TWO MORE PLACES 25626 SPLGD1, AND (17) / MASK OFF THE DIRVE BITS full ^ 010277* 0374 25627 DCA SPLDRV / SAVE INDICATED DRIVE NUMBER undefined ^ undefined ^ 010300* 3000 25628 TAD SPLDRV / GET DRIVE NUMBER BACK AGAIN undefined ^ undefined ^ 010301* 1000 25629 010302* 7640 SZA CLA / WAS A DRIVE NUMBER SPECIFIED BY USER 25630 JMP SPLDEN / YES, GO CHECK ITS DENSITY undefined ^ undefined ^ 010303* 5000 25631 25632 SPLGD2, CIFMNU / NO, PRINT "TYPE THE DRIVE/DEVICE NUMBER ..." full ^ undefined ^ 010304* 0000 25633 JMS I IOACAL / CALL STANDARD MESSAGE OUTPUT ROUTINE undefined ^ undefined ^ 010305* 4400 25634 010306* 0000 0 / USE DEFAULT OUTPUT CHANNEL 25635 NUMTX1 / POINTER TO MESSAGE CONTROL STRING undefined ^ 010307* 0000 25636 010310* 0000 0 / ADDRESS FOR CLEAR SCREEN COMMAND 25637 010311* 1020 1020 / SCREEN POSITION FOR FIRST TEXT LINE 25638 SPLMS2 / POINTER TO "DRIVE" OR "DRIVE/DEVICE" undefined ^ 010312* 0000 25639 010313* 1220 1220 / SCREEN POSITION FOR SECOND TEXT LINE 25640 SPLMS1 / POINTER TO "UTILITY" OR "DICTIONARY" undefined ^ 010314* 0000 25641 SPLAND / POINTER TO "AND PRESS RETURN" undefined ^ 010315* 0000 25642 25643 JMS REDSPL / GO HANDLE USER INPUT REQUEST undefined ^ undefined ^ 010316* 4000 25644 JMP SPLGD2 / USER ERROR - GO HANDLE IT undefined ^ undefined ^ 010317* 5000 25645 JMP SPLGMR / USER TYPED "GOLD MENU", GO HANDLE IT undefined ^ undefined ^ 010320* 5000 25646 / USER TYPED "RETURN" - DO A DENSITY CHECK 25647 SPLDEN, TAD SPLMAX / PICK UP THE MAXIMUM ALLOWABLE DRIVE NUMBER full ^ undefined ^ undefined ^ 010321* 1000 25648 010322* 7040 CMA / MAKE IT NEGATIVE 25649 TAD SPLDRV / COMBINE WITH USER SELECTED DRIVE NUMBER undefined ^ undefined ^ 010323* 1000 25650 010324* 7700 SMA CLA / IS USER SELECTED DRIVE NUMBER WITHIN RANGE 25651 JMP SPLGD2 / NO, GO REQUEST A VALID DRIVE NUMBER undefined ^ undefined ^ 010325* 5000 25652 25653 /d010 TAD SPLDOC / PICK UP CURRENT DOCUMENT DRIVE NUMBER 25654 /d010 CIA / MAKE IT NEGATIVE 25655 /d010 TAD SPLDRV / COMBINE WITH USER SELECTED DRIVE NUMBER 25656 /d010 SNA CLA / DID USER SELECT THE DOCUMENT DRIVE ? 25657 /d010 JMP SPLGD2 / YES, GO REQUEST A VALID DRIVE NUMBER 25658 25659 JMS SPLINU / CHECK TO SEE IF DRIVE ALREADY IN USE /A010 undefined ^ undefined ^ 010326* 4000 25660 JMP SPLGMR / YES & USER GAVE GOLD-MENU /A010 undefined ^ undefined ^ 010327* 5000 25661 JMP SPLGD2 / " " " " RETURN - TRY AGAIN /A010 undefined ^ undefined ^ 010330* 5000 25662 25663 TAD SPLDRV / PICK UP THE DRIVE NUMBER undefined ^ undefined ^ 010331* 1000 25664 CDIMNU / GET DENSITY OF SC/DD DISKETTE. undefined ^ 010332* 0000 25665 DCA I (CMDBLK+RXQDRV) / SET TO USER SPECIFIED DRIVE NUMBER. undefined ^ undefined ^ undefined ^ undefined ^ 010333* 3775 25666 010334* 0000 CDFMYF / BACK TO OUR FIELD & CALL RDFIO IN MENU FIELD. 25667 JMS I (RDFIO) / DO A GET DENSITY TO ESTABLISH DRIVE DENSITY. undefined ^ undefined ^ 010335* 4775 25668 RXEDN+4000 / "GET DENSITY" CODE. undefined ^ 010336* 4000 25669 010337* 7710 SPA CLA / SKIP IF NO ERROR. 25670 JMP DENERR / GET DENSITY ERROR DETECTED, REPORT TO USER undefined ^ undefined ^ 010340* 5000 25671 25672 ISZ SPLGET / BUMP THE RETURN ADDRESS POINTER undefined ^ undefined ^ 010341* 2000 25673 SPLGMR, JMP I SPLGET / RETURN TO CALLER full ^ undefined ^ undefined ^ 010342* 5400 25674 25675 25676 X=. / FIRST FREE LOCATION ON PAGE 25677 /--------------------- 25678 010373* 7766 PAGE 010374* 0017 010375* 0000 010376* 7777 010377* 7774 25679 25680 DSKBLK= .-200%400+DLOSPM / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 25681 25682 / TEXT SUBROUTINES TO PLACE COMMON TEXT STRINGS ON THE SCREEN 25683 25684 SPLTX1, XX / PRINT "REMOVE THE DISKETTE FROM DRIVE ..." full ^ undefined ^ 010400* 0000 25685 CIFMNU / CHANGE INDTRUCTION FIELD TO MENU FIELD undefined ^ 010401* 0000 25686 JMS I IOACAL / CALL STANDARD MESSAGE OUTPUT ROUTINE undefined ^ undefined ^ 010402* 4400 25687 010403* 0000 0 / USE DEFAULT OUTPUT CHANNEL 25688 REMTXT / POINTER TO MESSAGE CONTROL STRING undefined ^ 010404* 0000 25689 010405* 0000 0 / ADDRESS FOR CLEAR SCREEN COMMAND 25690 010406* 1020 1020 / SCREEN POSITION FOR FIRST TEXT LINE 25691 SPLDRV / POINTER TO DRIVE NUMBER undefined ^ 010407* 0000 25692 010410* 1220 1220 / SCREEN POSITION FOR SECOND TEXT LINE 25693 SPLMS1 / POINTER TO "UTILITY" OR "DICTIONARY" undefined ^ 010411* 0000 25694 SPLAND / POINTER TO "AND PRESS RETURN" undefined ^ 010412* 0000 25695 JMP I SPLTX1 / RETURN TO CALLER undefined ^ undefined ^ 010413* 5400 25696 25697 SPLTX2, XX / PRINT "INSERT THE DISKETTE INTO DRIVE ..." full ^ undefined ^ 010414* 0000 25698 CIFMNU / CHANGE INDTRUCTION FIELD TO MENU FIELD undefined ^ 010415* 0000 25699 JMS I IOACAL / CALL STANDARD MESSAGE OUTPUT ROUTINE undefined ^ undefined ^ 010416* 4400 25700 010417* 0000 0 / USE DEFAULT OUTPUT CHANNEL 25701 INSTXT / POINTER TO MESSAGE CONTROL STRING undefined ^ 010420* 0000 25702 010421* 0000 0 / ADDRESS FOR CLEAR SCREEN COMMAND 25703 010422* 1020 1020 / SCREEN POSITION FOR FIRST TEXT LINE 25704 SPLMS1 / POINTER TO "UTILITY" OR "DICTIONARY" undefined ^ 010423* 0000 25705 010424* 1220 1220 / SCREEN POSITION FOR SECOND TEXT LINE 25706 SPLDRV / POINTER TO DRIVE NUMBER undefined ^ 010425* 0000 25707 SPLAND / POINTER TO "AND PRESS RETURN" undefined ^ 010426* 0000 25708 JMP I SPLTX2 / RETURN TO CALLER undefined ^ undefined ^ 010427* 5400 25709 25710 SPLTX3, XX / PRINT "TYPE THE DRIVE/DEVICE NUMBER ..." full ^ undefined ^ 010430* 0000 25711 CIFMNU / CHANGE INDTRUCTION FIELD TO MENU FIELD undefined ^ 010431* 0000 25712 JMS I IOACAL / CALL STANDARD MESSAGE OUTPUT ROUTINE undefined ^ undefined ^ 010432* 4400 25713 010433* 0000 0 / USE DEFAULT OUTPUT CHANNEL 25714 NUMTX1 / POINTER TO MESSAGE CONTROL STRING undefined ^ 010434* 0000 25715 010435* 1600 1600 / ADDRESS FOR CLEAR SCREEN COMMAND 25716 010436* 1620 1620 / SCREEN POSITION FOR FIRST TEXT LINE 25717 SPLMS2 / POINTER TO "DRIVE" OR "DRIVE/DEVICE" undefined ^ 010437* 0000 25718 010440* 2020 2020 / SCREEN POSITION FOR SECOND TEXT LINE 25719 SPLMS1 / POINTER TO "UTILITY" OR "DICTIONARY" undefined ^ 010441* 0000 25720 SPLAND / POINTER TO "AND PRESS RETURN" undefined ^ 010442* 0000 25721 JMP I SPLTX3 / RETURN TO CALLER undefined ^ undefined ^ 010443* 5400 25722 25723 SPLTX4, XX / PRINT "OR TYPE THE DRIVE/DEVICE NUMBER ..." full ^ undefined ^ 010444* 0000 25724 CIFMNU / CHANGE INDTRUCTION FIELD TO MENU FIELD undefined ^ 010445* 0000 25725 JMS I IOACAL / CALL STANDARD MESSAGE OUTPUT ROUTINE undefined ^ undefined ^ 010446* 4400 25726 010447* 0000 0 / USE DEFAULT OUTPUT CHANNEL 25727 NUMTX2 / POINTER TO MESSAGE CONTROL STRING undefined ^ 010450* 0000 25728 010451* 1620 1620 / SCREEN POSITION FOR FIRST TEXT LINE 25729 SPLMS2 / POINTER TO "DRIVE" OR "DRIVE/DEVICE" undefined ^ 010452* 0000 25730 010453* 2020 2020 / SCREEN POSITION FOR SECOND TEXT LINE 25731 SPLMS1 / POINTER TO "UTILITY" OR "DICTIONARY" undefined ^ 010454* 0000 25732 SPLAND / POINTER TO "AND PRESS RETURN" undefined ^ 010455* 0000 25733 JMP I SPLTX4 / RETURN TO CALLER undefined ^ undefined ^ 010456* 5400 25734 25735 / COME HERE TO HANDLE VALIDATION ERRORS 25736 25737 SPLVER, AC7776 / SET THE AC EQUAL TO A MINUS 2 full ^ undefined ^ 010457* 0000 25738 TAD SPLMAX / COMBINE WITH THE MAXIMUM DRIVE NUMBER undefined ^ undefined ^ 010460* 1000 25739 010461* 7700 SMA CLA / IS THIS A MULTI DRIVE SYSTEM ? 25740 JMP SPLTYP / YES, GO CHECK DRIVE TYPE undefined ^ undefined ^ 010462* 5000 25741 25742 SPLVE1, JMS SPLTX1 / PRINT "REMOVE THE DISKETTE FROM DRIVE ..." full ^ undefined ^ undefined ^ 010463* 4000 25743 AC7777 / SET UP FOR NO DRIVE NUMBER ALLOWED undefined ^ 010464* 0000 25744 JMS REDSPL / GO HANDLE USER INPUT REQUEST undefined ^ undefined ^ 010465* 4000 25745 JMP SPLVE1 / USER ERROR - GO HANDLE IT undefined ^ undefined ^ 010466* 5000 25746 JMP SPLGMR / USER TYPED "GOLD MENU", GO HANDLE IT undefined ^ undefined ^ 010467* 5000 25747 JMP SPLDEN / USER TYPED "RETURN", GO HANDLE IT undefined ^ undefined ^ 010470* 5000 25748 25749 SPLTYP, JMS SPLSEL / CHECK IF DRIVE IS WINCHESTER OR FLOPPY full ^ undefined ^ undefined ^ 010471* 4000 25750 JMP SPLVE3 / WINCHESTER, DISPLAY "VOLUME DOES NOT ..." undefined ^ undefined ^ 010472* 5000 25751 25752 SPLVE2, JMS SPLTX1 / PRINT "REMOVE THE DISKETTE FROM DRIVE ..." full ^ undefined ^ undefined ^ 010473* 4000 25753 JMS SPLTX4 / PRINT "OR TYPE THE DRIVE/DEVICE NUMBER ..." undefined ^ undefined ^ 010474* 4000 25754 AC0001 / SET UP FOR OPTIONAL DRIVE NUMBER undefined ^ 010475* 0000 25755 JMS REDSPL / GO HANDLE USER INPUT REQUEST undefined ^ undefined ^ 010476* 4000 25756 JMP SPLVE2 / USER ERROR - GO HANDLE IT undefined ^ undefined ^ 010477* 5000 25757 JMP SPLGMR / USER TYPED "GOLD MENU", GO HANDLE IT undefined ^ undefined ^ 010500* 5000 25758 JMP SPLDEN / USER TYPED "RETURN", GO HANDLE IT undefined ^ undefined ^ 010501* 5000 25759 25760 SPLVE3, CIFMNU / YES, HANDLE VOLUME DOES NOT CONTAIN... full ^ undefined ^ 010502* 0000 25761 JMS I IOACAL / CALL STANDARD MESSAGE OUTPUT ROUTINE undefined ^ undefined ^ 010503* 4400 25762 010504* 0000 0 / USE DEFAULT OUTPUT CHANNEL 25763 SPLVNC / POINTER TO MESSAGE CONTROL STRING undefined ^ 010505* 0000 25764 010506* 0000 0 / ADDRESS FOR CLEAR SCREEN COMMAND 25765 010507* 1020 1020 / SCREEN POSITION FOR FIRST TEXT LINE 25766 SPLDRV / POINTER TO DRIVE NUMBER undefined ^ 010510* 0000 25767 SPLMS1 / POINTER TO "UTILITY" OR "DICTIONARY" undefined ^ 010511* 0000 25768 JMS SPLTX3 / PRINT "TYPE THE DRIVE/DEVICE NUMBER ..." undefined ^ undefined ^ 010512* 4000 25769 JMS REDSPL / GO HANDLE USER INPUT REQUEST undefined ^ undefined ^ 010513* 4000 25770 JMP SPLVE3 / USER ERROR - GO HANDLE IT undefined ^ undefined ^ 010514* 5000 25771 JMP SPLGMR / USER TYPED "GOLD MENU", GO HANDLE IT undefined ^ undefined ^ 010515* 5000 25772 JMP SPLDEN / USER TYPED "RETURN", GO HANDLE IT undefined ^ undefined ^ 010516* 5000 25773 25774 / COME HERE TO HANDLE DENSITY ERRORS 25775 25776 DENERR, AC7776 / SET THE AC EQUAL TO A MINUS 2 full ^ undefined ^ 010517* 0000 25777 TAD SPLMAX / COMBINE WITH THE MAXIMUM DRIVE NUMBER undefined ^ undefined ^ 010520* 1000 25778 010521* 7700 SMA CLA / IS THIS A MULTI DRIVE SYSTEM ? 25779 JMP DENTYP / YES, GO CHECK DRIVE TYPE undefined ^ undefined ^ 010522* 5000 25780 25781 SPLDE1, JMS SPLTX2 / PRINT "INSERT THE DISKETTE INTO DRIVE ..." full ^ undefined ^ undefined ^ 010523* 4000 25782 AC7777 / SET UP FOR NO DRIVE NUMBER ALLOWED undefined ^ 010524* 0000 25783 JMS REDSPL / GO HANDLE USER INPUT REQUEST undefined ^ undefined ^ 010525* 4000 25784 JMP SPLDE1 / USER ERROR - GO HANDLE IT undefined ^ undefined ^ 010526* 5000 25785 JMP SPLGMR / USER TYPED "GOLD MENU", GO HANDLE IT undefined ^ undefined ^ 010527* 5000 25786 JMP SPLDEN / USER TYPED "RETURN", GO HANDLE IT undefined ^ undefined ^ 010530* 5000 25787 25788 DENTYP, JMS SPLSEL / CHECK IF DRIVE IS WINCHESTER OR FLOPPY full ^ undefined ^ undefined ^ 010531* 4000 25789 JMP SPLDE3 / WINCHESTER, DISPLAY "VOLUME NOT ASSIGNED" undefined ^ undefined ^ 010532* 5000 25790 25791 SPLDE2, JMS SPLTX2 / PRINT "INSERT THE DISKETTE INTO DRIVE ..." full ^ undefined ^ undefined ^ 010533* 4000 25792 JMS SPLTX4 / PRINT "OR TYPE THE DRIVE/DEVICE NUMBER ..." undefined ^ undefined ^ 010534* 4000 25793 AC0001 / SET UP FOR OPTIONAL DRIVE NUMBER undefined ^ 010535* 0000 25794 JMS REDSPL / GO HANDLE USER INPUT REQUEST undefined ^ undefined ^ 010536* 4000 25795 JMP SPLDE2 / USER ERROR - GO HANDLE IT undefined ^ undefined ^ 010537* 5000 25796 JMP SPLGMR / USER TYPED "GOLD MENU", GO HANDLE IT undefined ^ undefined ^ 010540* 5000 25797 JMP SPLDEN / USER TYPED "RETURN", GO HANDLE IT undefined ^ undefined ^ 010541* 5000 25798 25799 SPLDE3, CIFMNU / YES, HANDLE VOLUME NOT ASSIGNED full ^ undefined ^ 010542* 0000 25800 JMS I IOACAL / CALL STANDARD MESSAGE OUTPUT ROUTINE undefined ^ undefined ^ 010543* 4400 25801 010544* 0000 0 / USE DEFAULT OUTPUT CHANNEL 25802 SPLNAS / POINTER TO MESSAGE CONTROL STRING undefined ^ 010545* 0000 25803 010546* 0000 0 / ADDRESS FOR CLEAR SCREEN COMMAND 25804 010547* 1020 1020 / SCREEN POSITION FOR FIRST TEXT LINE 25805 SPLDRV / POINTER TO DRIVE NUMBER undefined ^ 010550* 0000 25806 JMS SPLTX3 / PRINT "TYPE THE DRIVE/DEVICE NUMBER ..." undefined ^ undefined ^ 010551* 4000 25807 JMS REDSPL / GO HANDLE USER INPUT REQUEST undefined ^ undefined ^ 010552* 4000 25808 JMP SPLDE3 / USER ERROR - GO HANDLE IT undefined ^ undefined ^ 010553* 5000 25809 JMP SPLGMR / USER TYPED "GOLD MENU", GO HANDLE IT undefined ^ undefined ^ 010554* 5000 25810 JMP SPLDEN / USER TYPED "RETURN", GO HANDLE IT undefined ^ undefined ^ 010555* 5000 25811 25812 X=. / FIRST FREE LOCATION ON PAGE 25813 /--------------------- 25814 PAGE 25815 25816 DSKBLK= .-200%400+DLOSPM / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 25817 25818 / REDSPL IS THE ROUTINE THAT HANDLES THE USER RESPONSE. IT DISPLAYS 25819 / THE COMMON TEXT MESSAGE AND SELECTIVLY ACCEPTS ONLY THE KEYS FOR 25820 / "RETURN" AND "GOLD-MENU" OR IT ALSO ACCEPTS A DIRVE NUMBER OF ONE DIGIT 25821 / AND ALLOWS THE USER TO RUB-OUT A MISTAKE. 25822 / 25823 / UPON ENTRY: 25824 / 25825 / A NEGATIVE VALUE IN THE AC MEANS THAT NO DRIVE NUMBER IS ALLOWED AND THAT 25826 / ONLY THE "RETURN" KEY AND THE "GOLD-MENU" KEYS ARE VALID. 25827 / 25828 / A POSITIVE VALUE IN THE AC MEANS THAT THE DRIVE NUMBER IS OPTIONAL AND 25829 / THAT THE "RETURN" KEY AND THE "GOLD-MENU" KEYS ARE VALID. 25830 / 25831 / A ZERO VALUE IN THE AC MEANS THAT THE DRIVE NUMBER IS REQUIRED AND THAT 25832 / A NUL-RESPONSE WILL GENERATE AN ERROR. THE DRIVE NUMBER CAN ONLY BE ONE 25833 / DECIMAL CHARACTER AND IS TERMINATED BY PRESSING THE "RETURN" KEY. 25834 / THE RUBOUT KEY CAN BE USED TO CORRECT AN ERROR IN THE FIRST DIGIT. 25835 / TWO DIGITS OR ANY NON DIGIT KEY TERMINATES WITH AN ERROR. 25836 / 25837 / UPON EXIT: 25838 / 25839 / CONTROL IS TRANSFERED TO THE FIRST LOCATION FOLLOWING THE CALL WHEN A USER 25840 / INPUT ERROR IS DETECTED AND CAUSES THE TERMINAL BELL TO RING. AC IS CLEAR. 25841 / 25842 / CONTROL IS TRANSFERED TO THE SECOND LOCATION FOLLOWING THE CALL IF THE USER 25843 / PRESSES THE "GOLD-MENU" KEYS. AC IS CLEAR. 25844 / 25845 / CONTROL IS TRANSFERED TO THE THIRD LOCATION FOLLOWING THE CALL WHEN THE USER 25846 / SUCCESSFULLY PRESSES THE RETURN KEY OR ENTERS A ONE DIGIT DRIVE NUMBER AND 25847 / THEN PRESSES THE RETURN KEY. THE LOCATION SPLDRV IS UPDATED WITH THE 25848 / VALUE FROM REDDRV IF THE USER ACTUALLY TYPED A DRIVE NUMBER. AC IS CLEAR. 25849 25850 REDSPL, XX / HANDLE THE USER RESPONSE full ^ undefined ^ 010600* 0000 25851 DCA REDFLG / SAVE DRIVE NUMBER REQUEST VALUE undefined ^ undefined ^ 010601* 3000 25852 25853 CIFMNU / CHANGE INDTRUCTION FIELD TO MENU FIELD undefined ^ 010602* 0000 25854 JMS I IOACAL / CALL STANDARD MESSAGE OUTPUT ROUTINE undefined ^ undefined ^ 010603* 4400 25855 010604* 0000 0 / USE DEFAULT OUTPUT CHANNEL 25856 REDTXT / POINTER TO MESSAGE CONTROL STRING undefined ^ 010605* 0000 25857 010606* 2520 2520 / ADDRESS FOR LINE OF COMMON TEXT 25858 GMTXT / "OR PRESS GOLD MENU ..." undefined ^ 010607* 0000 25859 010610* 2700 2700 / POSSITION CURSOR TO BOTTOM SCREEN LINE 25860 DCA REDDRV / CLEAR THE SAVED DRIVE NUMBER undefined ^ undefined ^ 010611* 3000 25861 25862 REDNXT, DCA REDNUM / STORE NEW CHARACTER COUNT full ^ undefined ^ undefined ^ 010612* 3000 25863 CIFMNU / CHANGE INDTRUCTION FIELD TO MENU FIELD undefined ^ 010613* 0000 25864 JMS I (INAIN) / GO GET A CHARACTER AND DISPLAY TIME undefined ^ undefined ^ 010614* 4777 25865 DCA REDCHR / SAVE CHARACTER THAT USER TYPED undefined ^ undefined ^ 010615* 3000 25866 25867 TAD REDFLG / GET THE DRIVE NUMBER REQUESTED FLAG undefined ^ undefined ^ 010616* 1000 25868 010617* 7710 SPA CLA / CAN USER ENTER A DRIVE NUMBER ? 25869 JMP RETTST / NO, ONLY RETURN AND GOLD MENU ALLOWED undefined ^ undefined ^ 010620* 5000 25870 25871 AC7777 / SET THE AC EQUAL TO A MINUS ONE undefined ^ 010621* 0000 25872 TAD REDNUM / COMBINE WITH THE CHARACTER COUNT undefined ^ undefined ^ 010622* 1000 25873 010623* 7650 SNA CLA / HAS THE USER ENTERED ONE CHARACTER ? 25874 JMP RUBTST / YES, THEN NO MORE DIGITS ARE ALLOWED undefined ^ undefined ^ 010624* 5000 25875 25876 TAD REDCHR / GET CHARACTER THAT USER ENTERED undefined ^ undefined ^ 010625* 1000 25877 010626* 7510 SPA / IS IT A SPECIAL CHARACTER ? 25878 JMP RUBTST / YES, GO CHECK FOR A VALID ONE undefined ^ undefined ^ 010627* 5000 25879 010630* 1376 TAD (-60) / NO, CHECK FOR AN ASCII "0" CHARACTER 25880 010631* 7710 SPA CLA / IS CHARACTER AT LEAST A "0" ? 25881 JMP REDERR / NO, IT'S LESS THAN "0", GO REPORT ERROR undefined ^ undefined ^ 010632* 5000 25882 25883 TAD REDCHR / GET CHARACTER THAT USER ENTERED undefined ^ undefined ^ 010633* 1000 25884 010634* 1375 TAD (-72) / CHECK FOR AN ASCII "9" CHARACTER 25885 010635* 7700 SMA CLA / IS CHARACTER GREATER THAN A "9" 25886 JMP REDERR / YES, GO REPORT THE ERROR undefined ^ undefined ^ 010636* 5000 25887 25888 TAD REDCHR / PICK UP CHARACTER USER TYPED undefined ^ undefined ^ 010637* 1000 25889 010640* 0374 AND (17) / MASK OFF DRIVE BITS 25890 DCA REDDRV / SAVE DRIVE NUMBER undefined ^ undefined ^ 010641* 3000 25891 25892 TAD REDCHR / PICK UP CHARACTER THAT USER TYPED undefined ^ undefined ^ 010642* 1000 25893 JMS REDOUT / ECHO CHARACTER ON SCREEN undefined ^ undefined ^ 010643* 4000 25894 AC0001 / SET UP FOR AN INCREMENT undefined ^ 010644* 0000 25895 JMP REDSET / GO UPDATE THE CHARACTER COUNT undefined ^ undefined ^ 010645* 5000 25896 25897 RUBTST, TAD REDCHR / PICK UP CHARACTER THAT USER TYPED full ^ undefined ^ undefined ^ 010646* 1000 25898 TAD (-EDRBCH) / CHECK FOR THE "RUB-OUT" KEY undefined ^ undefined ^ 010647* 1377 25899 010650* 7640 SZA CLA / IS IT A MATCH ? 25900 JMP RETTST / NO, GO CHECK FOR THE OTHER CHARACTERS undefined ^ undefined ^ 010651* 5000 25901 TAD REDNUM / YES, PICK UP THE CHARACTER COUNT undefined ^ undefined ^ 010652* 1000 25902 010653* 7650 SNA CLA / IS THERE ANYTHING TO RUB-OUT 25903 JMP REDNXT / NO, JUST IGNORE THE KEY undefined ^ undefined ^ 010654* 5000 25904 25905 010655* 1373 TAD (10) / PICK UP THE BACK SPACE CHARACTER CODE 25906 JMS REDOUT / OUTPUT IT TO THE SCREEN undefined ^ undefined ^ 010656* 4000 25907 010657* 1372 TAD (40) / PICK UP THE SPACE CHARACTER CODE 25908 JMS REDOUT / OUTPUT IT TO THE SCREEN undefined ^ undefined ^ 010660* 4000 25909 010661* 1373 TAD (10) / PICK UP THE BACK SPACE CHARACTER CODE 25910 JMS REDOUT / OUTPUT IT TO THE SCREEN undefined ^ undefined ^ 010662* 4000 25911 25912 DCA REDDRV / CLEAR DRIVE NUMBER undefined ^ undefined ^ 010663* 3000 25913 AC7777 / SET UP FOR A DECREMENT undefined ^ 010664* 0000 25914 REDSET, TAD REDNUM / COMBINE WITH CHARACTER COUNT full ^ undefined ^ undefined ^ 010665* 1000 25915 JMP REDNXT / GO STORE NEW CHARACTER COUNT undefined ^ undefined ^ 010666* 5000 25916 25917 RETTST, TAD REDCHR / PICK UP CHARACTER THAT USER TYPED full ^ undefined ^ undefined ^ 010667* 1000 25918 TAD (-EDMENU) / COMBINE WITH GOLD MENU CODE undefined ^ undefined ^ 010670* 1377 25919 010671* 7650 SNA CLA / DID USER TYPE "GOLD-MENU" ? 25920 JMP GMXIT / YES, GO TAKE GOLD MENU EXIT undefined ^ undefined ^ 010672* 5000 25921 25922 TAD REDCHR / PICK UP CHARACTER THAT USER TYPED undefined ^ undefined ^ 010673* 1000 25923 TAD (-EDNWLN) / COMBINE WITH RETURN KEY CODE undefined ^ undefined ^ 010674* 1377 25924 010675* 7640 SZA CLA / DID USER TYPE "RETURN" ? 25925 JMP REDERR / NO, GO REPORT ERROR undefined ^ undefined ^ 010676* 5000 25926 25927 TAD REDFLG / GET DRIVE NUMBER REQUEST FLAG undefined ^ undefined ^ 010677* 1000 25928 010700* 7640 SZA CLA / MUST THE USER ENTER A DRIVE NUMBER ? 25929 JMP RETXIT / NO, TAKE NORMAL RETURN WITH CLEAR AC undefined ^ undefined ^ 010701* 5000 25930 25931 TAD REDNUM / PICK UP THE CHARACTER COUNT undefined ^ undefined ^ 010702* 1000 25932 010703* 7650 SNA CLA / DID THE USER TYPE ANYTHING ? 25933 JMP REDERR / NO, GO REPORT THE ERROR undefined ^ undefined ^ 010704* 5000 25934 25935 RETXIT, TAD REDNUM / PICK UP THE CHARACTER COUNT full ^ undefined ^ undefined ^ 010705* 1000 25936 010706* 7650 SNA CLA / DID THE USER ENTER A DRIVE NUMBER 25937 JMP REDXIT / NO, THEN DO NOT UPDATE THE DRIVE NUMBER undefined ^ undefined ^ 010707* 5000 25938 TAD REDDRV / PICK UP THE USER SPECIFIED DRIVE NUMBER undefined ^ undefined ^ 010710* 1000 25939 DCA SPLDRV / SET UP THE NEW DRIVE NUMBER undefined ^ undefined ^ 010711* 3000 25940 25941 REDXIT, ISZ REDSPL / BUMP RETURN ADDRESS TO NORMAL RETURN full ^ undefined ^ undefined ^ 010712* 2000 25942 GMXIT, ISZ REDSPL / BUMP RETURN ADDRESS TO GOLD MENU RETURN full ^ undefined ^ undefined ^ 010713* 2000 25943 JMP I REDSPL / RETURN TO CALLER undefined ^ undefined ^ 010714* 5400 25944 25945 REDERR, CIFMNU / CHANGE INDTRUCTION FIELD TO MENU FIELD full ^ undefined ^ 010715* 0000 25946 JMS I IOACAL / CALL STANDARD MESSAGE OUTPUT ROUTINE undefined ^ undefined ^ 010716* 4400 25947 010717* 0000 0 / USE DEFAULT OUTPUT CHANNEL 25948 ERRTXT / POINTER TO CONTROL STRING TO RING BELL undefined ^ 010720* 0000 25949 JMP I REDSPL / TAKE ERROR RETURN TO CALLER undefined ^ undefined ^ 010721* 5400 25950 25951 REDOUT, XX / ROUTINE TO OUTPUT A CHARACTER full ^ undefined ^ 010722* 0000 25952 JMP REDOT2 / SKIP OVER JWAIT INSTRUCTION undefined ^ undefined ^ 010723* 5000 25953 25954 REDOT1, CIFSYS / CHANGE INSTRUCTION FIELD TO SYSTEM FIELD full ^ undefined ^ 010724* 0000 25955 JWAIT / WAIT FOR NEXT SIGNIFICENT EVENT undefined ^ 010725* 0000 25956 25957 REDOT2, CIFSYS / CHANGE INSTRUCTION FIELD TO SYSTEM FIELD full ^ undefined ^ 010726* 0000 25958 TTYOU / TRY TO OUTPUT THE CHARACTER TO THE SCREEN undefined ^ 010727* 0000 25959 JMP REDOT1 / BUSY, GO TO SYSTEM WAIT ROUTINE undefined ^ undefined ^ 010730* 5000 25960 JMP I REDOUT / DONE, RETURN TO CALLER undefined ^ undefined ^ 010731* 5400 25961 25962 / SPLSEL IS A ROUTINE THAT WILL DETERMINE IF THE SPECIFIED DRIVE NUMBER 25963 / BELONGS TO A WINCHESTER DEVICE OR A FLOPPY DISK DRIVE. 25964 / RETURN IS TO CALL+1 FOR WINCHESTER AND CALL+2 FOR FLOPPY. 25965 25966 SPLSEL, XX / CHECK DRIVE SELECTION FOR DEVICE TYPE full ^ undefined ^ 010732* 0000 25967 TAD SPLOPT / GET OPTION CONFIGURATION BITS undefined ^ undefined ^ 010733* 1000 25968 AND (MNRX2X) / MASK OFF WINCHESTER ON LINE BIT undefined ^ undefined ^ 010734* 0377 25969 010735* 7650 SNA CLA / CHECK FOR WINCHESTER ON LINE 25970 JMP SPLFLP / NO, DRIVE MUST BELONG TO A FLOPPY undefined ^ undefined ^ 010736* 5000 25971 TAD SPLDRV / PICK UP THE DRIVE NUMBER undefined ^ undefined ^ 010737* 1000 25972 010740* 1371 TAD (-10) / SUBTRACT FOR DRIVES 0 TO 7 25973 010741* 7700 SMA CLA / CHECK FOR DRIVES 8 AND 9 25974 JMP SPLFLP / YES, THEN DRIVES ARE FLOPPY undefined ^ undefined ^ 010742* 5000 25975 TAD SPLOPT / GET OPTION CONFIGURATION BITS undefined ^ undefined ^ 010743* 1000 25976 AND (MNRX4X) / MASK OFF DRIVE 0 ASSIGNED TO WINNI BIT undefined ^ undefined ^ 010744* 0377 25977 010745* 7640 SZA CLA / CHECK FOR SYSTEM RUNNING ON WINCHESTER 25978 JMP SPLWIN / YES, DRIVE MUST BELONG TO WINCHESTER undefined ^ undefined ^ 010746* 5000 25979 TAD SPLDRV / PICK UP THE DRIVE NUMBER undefined ^ undefined ^ 010747* 1000 25980 010750* 7450 SNA / CHECK FOR DRIVE ZERO 25981 JMP SPLFLP / YES, THEN IT'S A FLOPPY undefined ^ undefined ^ 010751* 5000 25982 010752* 1370 TAD (-1) / DECREMENT THE DRIVE COUNT 25983 010753* 7640 SZA CLA / CHECK FOR DRIVE ONE 25984 JMP SPLWIN / NO, DRIVE MUST BELONG TO WINCHESTER undefined ^ undefined ^ 010754* 5000 25985 TAD SPLOPT / GET OPTION CONFIGURATION BITS undefined ^ undefined ^ 010755* 1000 25986 AND (MNRX3X) / MASK OFF DRIVE ONE ASSIGNED TO WINNI BIT undefined ^ undefined ^ 010756* 0377 25987 010757* 7650 SNA CLA / CHECK FOR DRIVE ONE ASSIGNED TO WINCHESTER 25988 SPLFLP, ISZ SPLSEL / NO, DRIVE BELONGS TO FLOPPY DRIVE full ^ undefined ^ undefined ^ 010760* 2000 25989 SPLWIN, JMP I SPLSEL / YES, DRIVE BELONGS TO WINCHESTER full ^ undefined ^ undefined ^ 010761* 5400 25990 25991 25992 X=. / FIRST FREE LOCATION ON PAGE 25993 /--------------------- 25994 010770* 7777 PAGE 010771* 7770 010772* 0040 010773* 0010 010774* 0017 010775* 7706 010776* 7720 010777* 0000 25995 25996 / TEXT MESSAGES DISPLAYED WHEN REQUESTING THE WPS UTILITY SOFTWARE 25997 / 25998 /----------------------------------------------------------------------------- 25999 / TWO DRIVE SYSTEM | REMOVE THE DISKETTE FROM DRIVE 0 AND INSERT THE 26000 / VALIDATION ERROR VE1 | WPS UTILITY SOFTWARE DISKETTE AND PRESS RETURN 26001 / DRIVE NUMBER ERROR | 26002 / RETURN OR GOLD MENU | OR PRESS GOLD MENU TO RECALL THE MAIN MENU. 26003 /----------------------------------------------------------------------------- 26004 / TWO DRIVE SYSTEM | INSERT THE WPS UTILITY SOFTWARE DISKETTE 26005 / GET DENSITY ERROR DE1 | INTO DRIVE 1 AND PRESS RETURN 26006 / DRIVE NUMBER ERROR | 26007 / RETURN OR GOLD MENU | OR PRESS GOLD MENU TO RECALL THE MAIN MENU. 26008 /----------------------------------------------------------------------------- 26009 / MULTI DRIVE SYSTEM | TYPE THE DRIVE NUMBER THAT CONTAINS THE 26010 / NO DEFAULT SET GDR | WPS UTILITY SOFTWARE AND PRESS RETURN 26011 / DRIVE NUMBER REQURIED | 26012 / GOLD MENU | OR PRESS GOLD MENU TO RECALL THE MAIN MENU. 26013 /----------------------------------------------------------------------------- 26014 / MULTI DRIVE SYSTEM | REMOVE THE DISKETTE FROM DRIVE 0 AND INSERT THE 26015 / VALIDATION ERROR VE2 | WPS UTILITY SOFTWARE DISKETTE AND PRESS RETURN 26016 / | 26017 / | OR TYPE THE DRIVE NUMBER THAT CONTAINS THE 26018 / | WPS UTILITY SOFTWARE AND PRESS RETURN 26019 / DRIVE NUMBER OPTIONAL | 26020 / RETURN OR GOLD MENU | OR PRESS GOLD MENU TO RECALL THE MAIN MENU. 26021 /----------------------------------------------------------------------------- 26022 / MULTI DRIVE SYSTEM | INSERT THE WPS UTILITY SOFTWARE DISKETTE 26023 / GET DENSITY ERROR DE2 | INTO DRIVE 1 AND PRESS RETURN 26024 / | 26025 / | OR TYPE THE DRIVE NUMBER THAT CONTAINS THE 26026 / | WPS UTILITY SOFTWARE AND PRESS RETURN 26027 / DRIVE NUMBER OPTIONAL | 26028 / RETURN OR GOLD MENU | OR PRESS GOLD MENU TO RECALL THE MAIN MENU. 26029 /----------------------------------------------------------------------------- 26030 / WINCHESTER SYSTEM | TYPE THE DRIVE/DEVICE NUMBER THAT CONTAINS THE 26031 / NO DEFAULT SET GDR | WPS UTILITY SOFTWARE AND PRESS RETURN 26032 / DRIVE NUMBER REQURIED | 26033 / GOLD MENU | OR PRESS GOLD MENU TO RECALL THE MAIN MENU. 26034 /----------------------------------------------------------------------------- 26035 / WINCHESTER SYSTEM | VOLUME 5 DOES NOT CONTAIN THE WPS UTILITY SOFTWARE 26036 / VALIDATION ERROR VE3 | 26037 / | TYPE THE DRIVE/DEVICE NUMBER THAT CONTAINS THE 26038 / | WPS UTILITY SOFTWARE AND PRESS RETURN 26039 / DRIVE NUMBER REQURIED | 26040 / GOLD MENU | OR PRESS GOLD MENU TO RECALL THE MAIN MENU. 26041 /----------------------------------------------------------------------------- 26042 / WINCHESTER SYSTEM | VOLUME 5 IS NOT ASSIGNED. 26043 / GET DENSITY ERROR DE3 | 26044 / | TYPE THE DRIVE/DEVICE NUMBER THAT CONTAINS THE 26045 / | WPS UTILITY SOFTWARE AND PRESS RETURN 26046 / DRIVE NUMBER REQURIED | 26047 / GOLD MENU | OR PRESS GOLD MENU TO RECALL THE MAIN MENU. 26048 /----------------------------------------------------------------------------- 26049 26050 / TEXT MESSAGES DISPLAYED WHEN REQUESTING THE AMERICAN DICTIONARY 26051 / 26052 /----------------------------------------------------------------------------- 26053 / TWO DRIVE SYSTEM | REMOVE THE DISKETTE FROM DRIVE 0 AND INSERT THE 26054 / VALIDATION ERROR VE1 | AMERICAN DICTIONARY DISKETTE AND PRESS RETURN 26055 / DRIVE NUMBER ERROR | 26056 / RETURN OR GOLD MENU | OR PRESS GOLD MENU TO RECALL THE MAIN MENU. 26057 /----------------------------------------------------------------------------- 26058 / TWO DRIVE SYSTEM | INSERT THE AMERICAN DICTIONARY DISKETTE 26059 / GET DENSITY ERROR DE1 | INTO DRIVE 1 AND PRESS RETURN 26060 / DRIVE NUMBER ERROR | 26061 / RETURN OR GOLD MENU | OR PRESS GOLD MENU TO RECALL THE MAIN MENU. 26062 /----------------------------------------------------------------------------- 26063 / MULTI DRIVE SYSTEM | TYPE THE DRIVE NUMBER THAT CONTAINS THE 26064 / NO DEFAULT SET GDR | AMERICAN DICTIONARY AND PRESS RETURN 26065 / DRIVE NUMBER REQURIED | 26066 / GOLD MENU | OR PRESS GOLD MENU TO RECALL THE MAIN MENU. 26067 /----------------------------------------------------------------------------- 26068 / MULTI DRIVE SYSTEM | REMOVE THE DISKETTE FROM DRIVE 0 AND INSERT THE 26069 / VALIDATION ERROR VE2 | AMERICAN DICTIONARY DISKETTE AND PRESS RETURN 26070 / | 26071 / | OR TYPE THE DRIVE NUMBER THAT CONTAINS THE 26072 / | AMERICAN DICTIONARY AND PRESS RETURN 26073 / DRIVE NUMBER OPTIONAL | 26074 / RETURN OR GOLD MENU | OR PRESS GOLD MENU TO RECALL THE MAIN MENU. 26075 /----------------------------------------------------------------------------- 26076 / MULTI DRIVE SYSTEM | INSERT THE AMERICAN DICTIONARY DISKETTE 26077 / GET DENSITY ERROR DE2 | INTO DRIVE 1 AND PRESS RETURN 26078 / | 26079 / | OR TYPE THE DRIVE NUMBER THAT CONTAINS THE 26080 / | AMERICAN DICTIONARY AND PRESS RETURN 26081 / DRIVE NUMBER OPTIONAL | 26082 / RETURN OR GOLD MENU | OR PRESS GOLD MENU TO RECALL THE MAIN MENU. 26083 /----------------------------------------------------------------------------- 26084 / WINCHESTER SYSTEM | TYPE THE DRIVE/DEVICE NUMBER THAT CONTAINS THE 26085 / NO DEFAULT SET GDR | AMERICAN DICTIONARY AND PRESS RETURN 26086 / DRIVE NUMBER REQURIED | 26087 / GOLD MENU | OR PRESS GOLD MENU TO RECALL THE MAIN MENU. 26088 /----------------------------------------------------------------------------- 26089 / WINCHESTER SYSTEM | VOLUME 5 DOES NOT CONTAIN THE AMERICAN DICTIONARY 26090 / VALIDATION ERROR VE3 | 26091 / | TYPE THE DRIVE/DEVICE NUMBER THAT CONTAINS THE 26092 / | AMERICAN DICTIONARY AND PRESS RETURN 26093 / DRIVE NUMBER REQURIED | 26094 / GOLD MENU | OR PRESS GOLD MENU TO RECALL THE MAIN MENU. 26095 /----------------------------------------------------------------------------- 26096 / WINCHESTER SYSTEM | VOLUME 5 IS NOT ASSIGNED. 26097 / GET DENSITY ERROR DE3 | 26098 / | TYPE THE DRIVE/DEVICE NUMBER THAT CONTAINS THE 26099 / | AMERICAN DICTIONARY AND PRESS RETURN 26100 / DRIVE NUMBER REQURIED | 26101 / GOLD MENU | OR PRESS GOLD MENU TO RECALL THE MAIN MENU. 26102 /----------------------------------------------------------------------------- 26103 26104 / TEXT MESSAGES DISPLAYED WHEN REQUESTING THE BRITISH DICTIONARY 26105 / 26106 /----------------------------------------------------------------------------- 26107 / TWO DRIVE SYSTEM | REMOVE THE DISKETTE FROM DRIVE 0 AND INSERT THE 26108 / VALIDATION ERROR VE1 | BRITISH DICTIONARY DISKETTE AND PRESS RETURN 26109 / DRIVE NUMBER ERROR | 26110 / RETURN OR GOLD MENU | OR PRESS GOLD MENU TO RECALL THE MAIN MENU. 26111 /----------------------------------------------------------------------------- 26112 / TWO DRIVE SYSTEM | INSERT THE BRITISH DICTIONARY DISKETTE 26113 / GET DENSITY ERROR DE1 | INTO DRIVE 1 AND PRESS RETURN 26114 / DRIVE NUMBER ERROR | 26115 / RETURN OR GOLD MENU | OR PRESS GOLD MENU TO RECALL THE MAIN MENU. 26116 /----------------------------------------------------------------------------- 26117 / MULTI DRIVE SYSTEM | TYPE THE DRIVE NUMBER THAT CONTAINS THE 26118 / NO DEFAULT SET GDR | BRITISH DICTIONARY AND PRESS RETURN 26119 / DRIVE NUMBER REQURIED | 26120 / GOLD MENU | OR PRESS GOLD MENU TO RECALL THE MAIN MENU. 26121 /----------------------------------------------------------------------------- 26122 / MULTI DRIVE SYSTEM | REMOVE THE DISKETTE FROM DRIVE 0 AND INSERT THE 26123 / VALIDATION ERROR VE2 | BRITISH DICTIONARY DISKETTE AND PRESS RETURN 26124 / | 26125 / | OR TYPE THE DRIVE NUMBER THAT CONTAINS THE 26126 / | BRITISH DICTIONARY AND PRESS RETURN 26127 / DRIVE NUMBER OPTIONAL | 26128 / RETURN OR GOLD MENU | OR PRESS GOLD MENU TO RECALL THE MAIN MENU. 26129 /----------------------------------------------------------------------------- 26130 / MULTI DRIVE SYSTEM | INSERT THE BRITISH DICTIONARY DISKETTE 26131 / GET DENSITY ERROR DE2 | INTO DRIVE 1 AND PRESS RETURN 26132 / | 26133 / | OR TYPE THE DRIVE NUMBER THAT CONTAINS THE 26134 / | BRITISH DICTIONARY AND PRESS RETURN 26135 / DRIVE NUMBER OPTIONAL | 26136 / RETURN OR GOLD MENU | OR PRESS GOLD MENU TO RECALL THE MAIN MENU. 26137 /----------------------------------------------------------------------------- 26138 / WINCHESTER SYSTEM | TYPE THE DRIVE/DEVICE NUMBER THAT CONTAINS THE 26139 / NO DEFAULT SET GDR | BRITISH DICTIONARY AND PRESS RETURN 26140 / DRIVE NUMBER REQURIED | 26141 / GOLD MENU | OR PRESS GOLD MENU TO RECALL THE MAIN MENU. 26142 /----------------------------------------------------------------------------- 26143 / WINCHESTER SYSTEM | VOLUME 5 DOES NOT CONTAIN THE BRITISH DICTIONARY 26144 / VALIDATION ERROR VE3 | 26145 / | TYPE THE DRIVE/DEVICE NUMBER THAT CONTAINS THE 26146 / | BRITISH DICTIONARY AND PRESS RETURN 26147 / DRIVE NUMBER REQURIED | 26148 / GOLD MENU | OR PRESS GOLD MENU TO RECALL THE MAIN MENU. 26149 /----------------------------------------------------------------------------- 26150 / WINCHESTER SYSTEM | VOLUME 5 IS NOT ASSIGNED. 26151 / GET DENSITY ERROR DE3 | 26152 / | TYPE THE DRIVE/DEVICE NUMBER THAT CONTAINS THE 26153 / | BRITISH DICTIONARY AND PRESS RETURN 26154 / DRIVE NUMBER REQURIED | 26155 / GOLD MENU | OR PRESS GOLD MENU TO RECALL THE MAIN MENU. 26156 /----------------------------------------------------------------------------- 26157 26158 /*************************************************************************** 26159 /**** N O T E **** 26160 /**** IF YOU CHANGE ANY OF THE TEXT STRINGS BELOW, MAKE SURE YOU **** 26161 /**** CHANGE THE MESSAGE LISTINGS ON THE THREE PREVIOUS PAGES **** 26162 /*************************************************************************** 26163 26164 DSKBLK= .-200%400+DLOSPM / DISK BLOCK WHERE PAGE IS LOADED undefined ^ 26165 26166 SPLUTL, IFDEF ENGLSH full ^ 26167 IFDEF ITALIAN 26168 IFDEF DUTCH 26169 IFDEF SPANISH 26170 26171 SPLUSD, IFDEF ENGLSH full ^ 26172 IFDEF ITALIAN 26173 IFDEF DUTCH 26174 IFDEF SPANISH < TEXT '&DICCIONARIO &AMERICANO'> 26175 26176 26177 SPLUKD, IFDEF ENGLSH full ^ 26178 IFDEF ITALIAN 26179 IFDEF DUTCH 26180 IFDEF SPANISH 26181 26182 26183 DRVTXT, IFDEF ENGLSH full ^ 26184 IFDEF ITALIAN 26185 IFDEF DUTCH 26186 IFDEF SPANISH 26187 26188 26189 DEVTXT, IFDEF ENGLSH full ^ 26190 IFDEF ITALIAN 26191 IFDEF DUTCH 26192 IFDEF SPANISH 26193 26194 26195 REMTXT, IFDEF ENGLSH < full ^ 26196 TEXT '^P!E^P&REMOVE THE DISKETTE FROM DRIVE !D AND INSERT THE ' 26197 *.-1 26198 TEXT '^P!S DISKETTE^S' 26199 > 26200 IFDEF ITALIAN < 26201 TEXT /^P!E^P&TOGLIERE IL DICHETTO DALL'UNIT\@ !D ED INSERIRE IL / 26202 *.-1 26203 TEXT /^PDISCHETTO DEI !S/ 26204 > 26205 IFDEF DUTCH < 26206 TEXT '^P!E^P&VERVANG DE DISKETTE UIT AANDRIJVER !D DOOR DE ' 26207 *.-1 26208 TEXT '^P!S DISKETTE^S'> 26209 IFDEF SPANISH < 26210 TEXT '^P!E^P&RETIRE EL DISKETTE DE LA UNIDAD !D E INSERTE LOS ' 26211 *.-1 26212 TEXT '^P!S DISKETTE^S'> 26213 26214 26215 SPLAND, IFDEF ENGLSH full ^ 26216 IFDEF ITALIAN 26217 IFDEF DUTCH < TEXT ' EN DRUK OP !&RETURN'> 26218 IFDEF SPANISH < TEXT ' Y PULSE RETORNO'> 26219 26220 26221 INSTXT, IFDEF ENGLSH full ^ 26222 IFDEF ITALIAN< 26223 TEXT /^P!E^P&INSERIRE IL DISCHETTO DEI !S NELL'UNIT\@ !D^S/ > 26224 IFDEF DUTCH 26225 IFDEF SPANISH 26226 26227 26228 NUMTX1, IFDEF ENGLSH full ^ 26229 IFDEF ITALIAN< 26230 TEXT /^P!E^P&INTORDURRE IL NUMERO DELL'!SCHE CONTIENE I^P!S^S/> 26231 IFDEF DUTCH 26232 IFDEF SPANISH 26233 26234 26235 NUMTX2, IFDEF ENGLSH full ^ 26236 IFDEF ITALIAN< 26237 TEXT /^P&O INTRODURRE IL NUMERO DELL'!SCHE CONTIENE I^P!S^S/> 26238 IFDEF DUTCH 26239 IFDEF SPANISH 26240 26241 26242 SPLVNC, IFDEF ENGLSH full ^ 26243 IFDEF ITALIAN 26244 IFDEF DUTCH 26245 IFDEF SPANISH 26246 26247 26248 SPLNAS, IFDEF ENGLSH full ^ 26249 IFDEF ITALIAN 26250 IFDEF DUTCH 26251 IFDEF SPANISH 26252 26253 26254 WRKTXT, IFDEF ENGLSH /M007 full ^ 26255 IFDEF ITALIAN 26256 IFDEF DUTCH 26257 IFDEF SPANISH < TEXT '^P!E^P&CARGANDO ^S - &ESPERE'> 26258 26259 26260 26261 REDTXT, TEXT '^P^S^P' full ^ 011000* 3620 011001* 3623 011002* 3620 011003* 0000 26262 26263 GMTXT, IFDEF ENGLSH < full ^ 26264 TEXT '!&OR &PRESS &GOLD !&MENU TO RECALL THE &MAIN &MENU.'> 26265 IFDEF ITALIAN < 26266 TEXT /&O PREMERE &ORO !&MENU PER TORNARE AL &MENU &PRINCIPALE./> 26267 IFDEF DUTCH < 26268 TEXT '!&DRUK OP &GOUD !&MENU OM TERUG TE GAAN NAAR HET &HOOFDMENU'> 26269 IFDEF SPANISH < 26270 TEXT '!&O &PULSE &DORADA !&MENU PARA VOLVER AL &MEN\Z &PRINCIPAL.'> 26271 26272 26273 26274 ERRTXT, TEXT '^CG' / CONTROL STRING TO RING THE TERMINAL BELL full ^ 011004* 3603 011005* 0700 26275 26276 INUERR, IFDEF ENGLSH < full ^ 26277 TEXT '^P!E^P&THAT!SIS ALREADY IN USE. &PRESS !&RETURN TO ' /A010 26278 *.-1 /A010 26279 TEXT 'ENTER ANOTHER NUMBER.' /A010 26280 > 26281 IFDEF ITALIAN < 26282 TEXT /^P!E^P&!SGI\@ UTILIZZATA. &PREMERE !&RITORNO, USARE UN / 26283 *.-1 26284 TEXT /ALTRO NUMERO./ 26285 > 26286 IFDEF DUTCH < 26287 TEXT '^P!E^P&DIE!S IS AL IN GEBRUIK. DRUK OP !&RETURN EN ' 26288 *.-1 26289 TEXT 'PROBEER OPNIEUW.'> 26290 IFDEF SPANISH < 26291 TEXT '^P!E^P&ESTE!S YA EST\A EN USO. &PULSE !&RETORNO PARA' 26292 *.-1 26293 TEXT ' TECLEE OTRO N\ZMERO.'> 26294 26295 /*************************************************************************** 26296 /**** N O T E **** 26297 /**** IF YOU CHANGE ANY OF THE TEXT STRINGS ABOVE, MAKE SURE YOU **** 26298 /**** CHANGE THE MESSAGE LISTINGS ON THE THREE PREVIOUS PAGES **** 26299 /*************************************************************************** 26300 26301 RELOC 26302 26303 26304 010174 0002  010175 7740 010176 0001 010177 0000 ABSOL 4000 ACRSTR 4234 ACSAVE 4236 ADJBAC 3505 ADJEX1 3536 ADJEX2 3541 ADJEX3 3542 ADJEX4 3553 ADJTM1 3555 ADJTMP 3533 ADJUS0 3544 ADJUS1 3476 ADJUS2 3502 ADJUST 7740 ADUNIT 4065 ADVCHR 4512 ADVCL1 4401 ADVCL2 4414 ADVCL3 4433 ADVCL4 4453 ADVCL5 4432 ADVCL6 4450 ADVCL7 4441 ADVCL8 4413 ADVCLT 4456 ADVPTR 4506 ADVRL1 6123 ADVRLA 6076 ADVRLB 6107 ADVRLC 6120 ADVRUL 6073 ADVSPC 4517 ADVUNT 2235 ADVUNW 2240 AJUST 3461 APGFLG 7554 ARCMOD 7475 ARCRM0 7732 ARCTMP 7765 ARCURM 7716 ARMODE 7764 ARMSET 7753 ARMVS0 7742 ARMVSC 7737 ARTMP 7476 ASP 0000 AST 1034 ASTPTR 0000 ATEND 6537 AUETXT 4111 AUOKXT 4110 BACK1 7326 BACK2 7327 BACK3 3321 BACK4 7351 BACKUN 2203 BASKCT 0132 BASKET 7400 BASKSZ 0400 BEEPER 0324 BFOVL1 7653 BFOVL2 7663 BFOVLY 7615 BFOVT1 7644 BFOVT2 7632 BFOVT3 7667 BFOVT4 7623 BFOVT5 7666 BFSVRS 7645 BGNLNE 7313 BHKEXI 5342 BHOOK 5324 BKDTX1 7322 BKEDI3 7137 BKEDI4 2351 BKEDIT 7140 BKEDT1 7317 BKEDTX 7323 BKPMOD 0001 unreferenced BKPPTR 4507 BKPSPC 4520 BKPUNT 2200 BKPUNV 2232 BKPUNW 2222 BKPUNX 2224 BKPUNY 2225 BKPUNZ 2214 BLACSV 5345 BLASTH 5344 BLDBIT 0154 BLDMOD 0002 BLDNXT 7422 BLDUN1 7431 BLDUN2 7432 BLDUN3 7427 BLDUNT 0336 BLKALM 4240 BLWTCH 4237 BUFBEG 0164 BUFEND 6000 BUFONM 0017 BUFSIZ 0165 BUZZER 0331 CALADD 0312 CALCDF 0277 CALERR 2715 CALFLD 0310 CALFXS 0742 CALLAR 0251 CALLN1 0000 CALLN2 0004 CALLN3 0010 CALLN4 0014 CALLN5 0020 CALLN6 0024 unreferenced CALLN7 0030 unreferenced CALLN8 0034 unreferenced CALLN9 0040 unreferenced CALPOP 2672 CALPSH 2652 CALPTR 2721 CALREJ 1522 CALRTN 0062 CALSAC 0314 CALSKP 0313 CALSTK 2722 CALSUB 0044 CALSW1 1420 CALSW2 1413 CALSWA 1400 CALXIT 0060 CASBIT 0154 CASE01 6665 CASE02 6702 CASEXI 6701 CASMAT 6676 CASMOD 0006 unreferenced CASNXT 7411 CASTMP 0000 CASUNT 4753 CDFILS 6271 unreferenced CDFMYF 0000 CDISPL 0000 CENMAR 0163 CENTER 1475 CHABAD 3400 CHARPT 6740 unreferenced CHGRUL 7412 CHK8MR 2010 CHKALP 3553 CHKCH1 7231 CHKCHR 5726 CHKLMA 4745 CHKLMD 4733 CHKLMR 2722 CHKM2A 1662 CHKMAR 0342 CHKMR1 1621 CHKMR2 1646 CHKMR3 1677 CHKMR4 1714 CHKMR5 1642 CHKMR6 2000 CHKMR7 1671 CHKMR8 2014 CHKMR9 1741 CHKMRF 1743 CHKMRS 1744 CHKMRT 1745 CHKMRX 1736 CHKNME 3204 CHKPTR 4510 CHKREJ 2354 CHKRP1 1617 CHKRP2 1614 CHKRP3 1613 CHKRPC 1604 CHKSPC 4200 CHKTCC 2544 CHKUNH 0661 CHKUNR 0656 CHKUNT 0667 CHLINE 7110 CHRATR 0175 CHRBNT 0752 CHROVR 7104 CHRUNT 0747 CKCTR1 4036 CKCTR2 7033 CKCTR3 7037 CKCTR4 7047 CKCTR6 0212 CKCTRL 7001 CKCTRS 2551 CKCTRT 7027 unreferenced CKCTRZ 0233 CKMODE 7645 CKRANG 7504 CKRULE 7260 CKSCLT 2137 CKVALD 7252 CLCTSW 3053 CLMPLL 3050 CLMPUL 3051 CLOSE1 7220 CLOSE2 7224 CLOSE3 7234 CLOSE4 7305 CLOSEF 7211 CLOSEX 7314 CLR132 6740 CLREOL 4563 CLRGSR 7414 CLRME1 7712 CLRMEM 7700 CLRULR 5406 CLRZ1 2744 CLRZER 2735 CLSBEG 4303 CLSCRN 2134 CLSEND 4304 CLSHR 7332 CLSMIN 7331 CLSMN2 7330 CLSSET 2141 CMPRUL 5400 CNSCRL 1763 CNTMOD 0011 CNTPR1 7312 unreferenced CNTPR3 7310 CNTPRS 7277 CNTREX 1500 CNTUN1 0612 CNTUNT 0613 COLCH1 7606 COLKEY 7606 COLLIM 0360 COLM80 0117 COLM81 0120 COLTAB 7623 CONCHK 3225 unreferenced COPRUL 5217 COPTMP 7537 COPXIT 7535 COPY1 7526 COPY2 7530 CPYBUF 6054 CPYFNO 0154 CR 0015 CSNF 1000 CSNF1 1003 CSNF2 1011 CSNF4 1024 CSNF5 1033 CTB001 2140 CTB002 2343 CTB005 2600 CTB008 2711 CTB009 1354 CTB010 3335 CTB011 3346 CTB012 4136 CTB013 4540 CTB014 4674 CTB015 1621 CURID 6625 CURLIN 0144 CURMOV 4513 CURPG1 1751 CURPG2 2552 CURPG3 7466 CURPOS 0046 CURPTR 0135 CURSAV 0456 CURSOR 0136 CURTMP 0174 CURTOP 6626 CURUL 6335 CUTCHR 7716 CUTCHX 7750 CUTMOV 7600 CUTNXT 7642 CUTOUT 7754 CUTOVR 7612 CUTRUL 7736 CUTSUB 7627 CUTUN1 7607 CUTUNA 7676 CUTUNB 7707 CUTUNC 7713 CUTUND 7677 CUTUNM 7670 CUTUNR 7662 CUTUNX 7722 CUTUNY 7732 CUTXXX 7607 CVTMIN 7316 CVTMN1 7323 CVTMN2 7326 DCHAR 0200 DEAD 4077 DEADKE 4112 DEDBKP 7507 DEDBNX 7501 DEDKA1 7641 DEDKRB 7752 DEDKYA 7627 DEDKYB 7660 DEDKYC 7647 DEDKYD 7676 DEDKYE 7616 DEDKYG 7673 DEDKYH 7721 DEDKYX 7477 DEDSNX 7744 DELCOD 3344 DELNXT 7613 DELPTR 2622 DELPUT 7702 DELTEM 3357 DELUN1 7737 DELUNA 7645 DELUNB 7663 DELUNC 7660 DELUND 7665 unreferenced DELUNE 7635 unreferenced DELUNM 7723 DELUNO 7713 DELUNP 7644 DELUNR 7730 DELUNS 7726 DELUNT 1601 DELUNW 7673 unreferenced DELUNX 7666 DELUNY 7676 DELUNZ 7701 DFDONE 0741 DH1BL 0055 unreferenced DLTRLR 6061 DM1ADJ 7766 DOHUNS 7604 DOINSA 7710 DOINSR 7676 DOSLCT 6635 DOTHOU 7467 DOWTCH 4221 DSKBLK 0001 unreferenced DSKCAL 5014 DSPCUR 5551 DSPRL1 5540 DSPRLA 5522 DSPRLN 5541 DSPRLR 5525 DSPRUL 5515 DTAB 3223 DTABCO 0540 ECFIEL 0076 ECHFLG 0152 ECMTH1 0006 ECMTH2 0206 unreferenced EDCLPB 0223 EDERR 3601 EDERR1 0200 EDEXI1 7422 EDEXI2 7434 EDEXI3 0233 EDEXI4 0231 unreferenced EDICH1 5006 EDICH2 5004 EDICH3 5013 unreferenced EDICHR 5000 EDICMX 7517 EDICMY 7543 EDIOP1 0210 EDITIN 2200 EDITOR 0200 EDITOV 0207 EDMERG 0202 EDMODE 0133 EDOCHR 0354 EDRAGN 3703 EDRALP 3600 EDRBCD 3445 EDRCO1 3431 EDRCOL 3402 EDRDSP 3705 EDRDYR 3434 EDREND 3740 EDRIND 3751 EDRJ1 3617 EDRONE 3671 EDROTH 3677 EDRPSN 3456 EDRRPT 3632 EDRT1 3736 EDRT2 3737 EDRTR1 3733 EDRTR2 3732 EDRTW 3402 EDRTX 3434 EDRTYP 3716 EDRTZ 3735 EDRXTR 3674 EDTMOD 1742 EDXVEC 7400 EDXVLN 0105 EFADPT 1556 EFADSP 1472 EFBKPT 2331 EFBKSP 1504 EFBZZR 1462 EFCASE 2026 EFCKAL 1535 EFCKMR 1600 EFCNTR 2600 EFCS01 2036 EFCS02 2053 EFCSEX 2052 EFCSMT 2047 EFGTBY 2400 EFINSR 1442 EFLDCH 1516 EFLDN1 2056 EFLDNT 2055 EFPOUT 2415 EFRSLN 1547 EFSCLU 1422 EFSECO 1432 EFSLMD 1452 EFSSPT 1530 EFTJST 2220 EIABRA 7677 EIADVN 6610 EIBAD 0400 EIBKUP 6607 EIBOLD 6624 EIBOTM 5346 EICENT 1311 EICHAR 0632 EICONT 6715 EIDCMB 7507 EIDCMC 7533 EIDCMD 7707 EIDCMT 6727 EIDEAD 3152 EIDICT 2170 EIDLTC 1601 EIDLTW 1600 EIDNAR 4311 EIENTR 0623 EIFILE 0220 EIFIND 2553 EIFIX 0401 EIFIX1 0402 EIFND1 3400 EIFND4 7541 EIFND6 7542 EIFXT1 1314 EIFXT2 0401 EIGADV 1765 EIGBKP 3154 EIGCUT 2363 EIGER2 3400 EIGES1 3400 EIGES2 7523 EIGES3 7524 EIGES4 6251 EIGESL 0021 EIGETA 7406 EIGETB 7425 EIGETC 6725 EIGETD 7516 EIGETE 7514 EIGETF 7450 EIGETG 7456 EIGETH 7465 EIGETJ 7600 EIGETK 7605 EIGETX 7464 EIGETY 7404 EIGHTC 7731 EIGLAR 5560 unreferenced EIGOPN 7715 EIGPG1 7410 EIGPG2 7456 EIGPG3 7454 EIGPG5 7420 EIGPG6 7465 EIGPG7 7536 EIGPG8 7541 EIGPG9 7501 EIGPGA 7551 EIGPGB 7552 EIGPGC 7457 EIGPGD 7521 EIGPGE 6721 EIGPGF 7553 EIGPGG 7645 EIGPGH 7643 EIGPGI 7642 EIGPGJ 7646 EIGPGK 7600 EIGPGX 7545 EIGPMK 7647 EIGPST 5354 EIGRAR 5556 unreferenced EIGTM1 7517 EIGTM2 7520 EIHELP 0554 EIHYP1 1313 EIHYP2 6733 EIHYPL 2751 EIHYPS 4755 EIHYPT 7471 EIHYPW 7431 unreferenced EIHYPX 7470 EIHYPY 7426 EIHYPZ 7462 EIINOV 4345 EIINTB 0556 EILINE 0631 EILOWR 6616 EIMENU 6731 EIMLAY 7637 EIMNU0 7500 EIMNU1 7607 EIMNU2 7504 EIMNU3 7600 EIMNU4 7502 EIMNU5 7504 EIMNU6 7612 EIMNUA 7471 EIMSVU 7617 EINEXA 0413 EINEXB 0426 EINEXD 0430 unreferenced EINEXM 0442 EINEXT 0406 EINPAG 4004 EINSRT 1314 EINWLN 1304 EINXSC 3751 EIPAGE 0624 EIPARA 0625 EIPCMD 4000 EIPGRF 1303 EIPMRK 4005 EIPRSC 6552 EIPSTE 2365 EIPSWP 7642 EIPWFL 5753 EIRBCH 0603 EIRBLN 0602 EIRBSE 0600 EIRBWD 0601 EIREPL 4305 EIRPG1 3400 EIRPG2 7522 EIRPG3 7531 EIRPP2 7521 unreferenced EIRQSP 2555 EIRRAB 3400 EIRULR 5163 EISCUT 3361 EISENT 0627 EISLCT 2545 EISNNL 7512 EISPC2 7645 EISPC3 7646 EISPC4 7665 EISPCE 7637 EISRCA 7440 EISRCB 7442 EISRCC 7464 EISRCD 7466 EISRCE 7535 EISRCF 7537 unreferenced EISRCG 7426 unreferenced EISRCH 4751 EISRCJ 7604 EISRCK 7600 EISRCL 7411 EISRCM 7413 EISRCN 7415 EISRCQ 7453 EISRCX 7500 EISRCY 7516 EISRDK 7616 EISROK 7676 EISRT1 7705 EISRT2 7706 EISRT3 7707 EISRTC 7645 EISUBS 1552 EISUP1 7525 EISUPS 1553 EISWAP 5562 EITAB 1312 EITABP 0626 EITC 3156 EITIME 6723 EITOP 0237 EIUBLD 6622 EIUDLT 2747 EIUNDL 6623 EIUPAR 4307 EIUPPR 6617 EIUUDL 6621 EIVIEW 6717 EIWORD 0630 ELOOP 5423 ENASBF 0000 ENASBP 0000 ENASBS 0000 EREXIT 7667 ESACHR 4400 ESADRL 6136 ESAPT1 1225 ESAPT2 1231 ESAPT3 1243 ESAPT4 1227 ESAPTR 1213 ESASP1 1726 ESASP2 1731 ESASP3 1736 ESASPC 1717 ESATS1 4316 ESATS2 4333 ESATS3 4335 ESATST 4313 ESBPT1 1251 ESBPT2 1271 ESBPT3 1275 ESBPT4 1277 ESBPTR 1250 ESBSP1 1707 ESBSP2 1714 ESBSP3 1702 unreferenced ESBSPC 1701 ESCDF 5430 ESCUT1 7472 ESCUT3 7461 ESCUT4 7465 ESCUTX 7473 ESCUTY 7513 ESGETE 4014 ESGETS 4020 ESGETX 4034 ESICH1 2130 ESICH2 2131 ESICH3 2132 ESICH4 2133 ESICHA 2005 ESICHB 2123 ESICHC 2124 ESICHD 2125 unreferenced ESICHE 2013 ESICHF 2054 ESICHG 2063 ESICHH 2112 ESICHI 2127 ESICHJ 2070 ESICHK 2036 unreferenced ESICHR 4036 ESICHX 2025 ESICHY 2045 ESICHZ 2047 ESIMCH 5412 ESINOV 4134 ESINP1 4064 ESINP2 4076 ESINP3 4117 ESINP4 4120 ESINP5 4122 ESINP6 4126 ESINP7 4132 ESINPG 4100 ESITMP 4135 ESJCHK 5735 ESJTST 5744 ESLCT1 6633 ESLCT4 3737 ESLCT6 3745 ESLCTD 1135 ESLCTS 3724 ESLMOD 3747 ESMODE 1200 ESMVC1 2710 ESMVC2 3026 ESMVCA 2651 ESMVCB 2645 ESMVCC 2617 ESMVCD 2654 ESMVCE 2667 ESMVCG 2672 ESMVCK 2635 ESMVCL 3000 ESMVCQ 2650 ESMVCR 2611 ESMVCT 2647 ESMVCU 2675 ESMVCV 2677 unreferenced ESMVCZ 2625 ESMVLA 3001 ESMVLB 3013 unreferenced ESMVLC 3016 ESMVLR 3024 ESMVLX 2706 ESMVLZ 2707 ESMVX1 2702 ESMVX2 2704 ESNOPC 7624 ESNP3A 4115 ESNWRL 6124 ESPTES 4147 ESPUTE 4024 ESPUTS 4030 ESPUTX 4035 ESPUTY 4033 ESSTPX 7600 ESTRIN 5441 ESXLUA 4300 ESXLUP 4270 ET1 5444 ETXBUF 6400 ETXTST 6545 EXERR1 6757 EXTCHK 3274 EXTR10 0512 EXTR11 0504 EXTR13 0533 unreferenced EXTR14 0431 EXTR15 0412 EXTRA1 0454 EXTRA2 0455 EXTRA3 0506 EXTRA4 0476 EXTRA5 0473 unreferenced EXTRA6 0414 EXTRA7 0531 EXTRA8 0524 unreferenced EXTRA9 0521 EXTRAC 0400 FILENO 0167 FILOPT 0170 FINDT3 1071 FINDTP 1037 FLDBN1 0717 FLDBN2 0724 FLDBNT 0720 FLDDIM 3035 FLDER1 1512 FLDER2 1513 FLDER3 1514 FLDER4 1515 FLDERA 1462 FLDERB 1501 FLDERC 1510 FLDERR 1433 FLDNE 0740 FLDS1 2325 FLDS2 2333 FLDS3 2345 FLDSTR 2275 FLDUN3 0731 FLDUNT 0725 FMSWAP 0251 FNDEND 2606 FNTAB1 2202 FNTAB2 2326 FNTABS 2200 FORDIR 7661 FORDR 7676 FORMNO 0166 FSTCHR 7261 unreferenced FXMEUP 7600 FXSCRA 3517 FXSCRB 3541 FXSCRC 3436 FXSCRD 3466 FXSCRE 3534 FXSCRF 3415 FXSCRH 3473 FXSCRI 3430 FXSCRJ 3431 FXSCRK 3515 FXSCRL 3400 FXSCT1 3551 FXSCT2 3552 FXSCX1 3460 FXSCX2 3461 GCLIT1 7455 GCUTNX 7431 GDCASE 6655 GETBYT 6006 GETCH 7200 GETD11 0737 GETD13 0713 GETDT1 0735 GETDT2 0736 GETDT3 0632 GETDT4 0703 GETDT5 0734 unreferenced GETDT6 0714 GETDT7 0667 unreferenced GETDT8 0653 GETDT9 0716 GETDTF 0620 GETF1 2112 GETF2 2116 GETF2A 3022 GETFLD 2106 GETINP 4502 GETIT1 2656 GETIT2 2670 GETIT3 2700 GETIT4 2712 GETIT5 2716 GETIT6 2717 GETITE 2623 GETLEN 0126 GETLIN 4506 GETPRT 0400 GETPRV 0420 GETPRW 0427 GETPRX 0416 GETPRY 0404 GETPRZ 0410 GETPS1 7667 GETPS2 7673 GETPSF 0154 GETPST 7655 GETRES 2476 GETRPT 0465 GETSRL 7465 GETSRX 7475 GETTAB 2213 GETTRM 0125 GETUNO 0520 GETUNP 0517 GETUNQ 0475 GETUNR 0532 GETUNT 0463 GETUNX 0472 GETUNY 0511 GETUNZ 0477 GLDADV 7717 GLDARR 7621 GLDBKP 7713 GLDDIR 7753 GLDMOV 7723 GLDMV1 7742 GLDPSF 0155 GOTMRK 0621 GRAMUN 0134 GREG3 2520 GREG4 2521 GSKILN 0411 GSRCK 6143 GSRF 0173 GSRPRV 6534 GSRTS1 7607 GSRTS2 7612 GSRTST 7600 GT0 2216 unreferenced GT1 2234 GT2 2241 GT3 2241 GT4 2242 GT5 2253 GTREG 2721 HAFRUL 0167 HAVMTH 7553 HDRBUF 6000 HDRFSZ 0005 HDRGET 6704 HDRPSZ 0015 HDRPUT 1335 HLDCHR 0366 HLDPTR 7315 unreferenced HLDTBL 3202 HLTLST 0555 HLTSTR 0556 HLTTST 4501 HR 7537 HYBKUP 7556 HYPLFN 7535 HYPLMC 7543 HYPLMX 7546 HYPSAV 7542 IDCST 0600 IDCST1 0605 IDCST2 0615 IDTABC 4054 INCHAR 4155 INCHTM 4360 INCLR 1227 INCTLB 7000 INDEXA 7445 INDPOV 1222 unreferenced INITDN 7125 INITRL 7116 INITSP 7001 INITXT 7126 INIX00 7456 INIX01 7466 INIX02 7625 INIX03 7616 INIX04 7600 INIX05 7604 INIXLN 7532 unreferenced INMATH 3024 INMENT 4137 INMEXT 4146 INMLOO 4130 INMNXP 4143 INOVDP 1213 INSATR 4157 INSBL0 3010 INSBL1 3020 INSBLA 3000 INSCHR 4505 INSCOD 2727 INSDEL 1200 INSERT 2000 INSEXI 1516 INSEXT 2751 INSF1 1543 INSF2 1553 INSFEN 1535 INSFOR 2722 INSMCH 4113 INSOVF 4357 INSRL1 5260 INSRUL 5242 INSTAB 1750 INTB1 7411 INTB2 7425 INTB3 7440 INTBAD 3630 ISTRIN 4152 JCHKOF 0000 JCLEA1 3661 JCLEA2 3714 JCLEA3 3717 JCLEA4 3712 JCLEA6 3656 JCLEAN 3645 JCLEAX 3721 JCLEAY 3722 JCLGCT 3723 JMPIRP 6630 JNWLNP 7653 JTSTOF 0000 KBDCH1 0514 KBDCH4 0543 KBDCH5 0547 KBDCH6 0551 KBDCH7 0544 KBDCHK 0513 LCMAP 0133 unreferenced LF 0012 LFTMAR 0157 LINAD1 0351 LINAD2 0354 LINBAR 1200 LINBNT 0741 LINBOT 0510 LINCHK 1000 LINCK1 1007 LINCLR 0250 LINCOL 0200 LINCUR 0246 LINDIF 0172 LINDN1 2125 LINDN2 2137 LINDN3 2104 LINDN4 2107 LINDN5 2112 LINDN6 2115 LINDN7 2075 LINDN8 2074 LINDN9 2114 LINDNL 1037 LINDNP 1027 LINDNR 1044 LINDNS 1040 LINDNT 0242 LINDNX 1041 LINDSP 0400 LINE23 0171 LINEND 7314 LINFLG 0170 LINFRE 0177 LINLIN 0467 LINLOP 0214 LINLOW 0463 LINM1 0561 LINM2 0562 LINM3 0563 LINMID 0277 LINMOD 0151 LINNCH 0223 LINNUM 0175 LINPGH 0174 LINPGL 0173 LINPOS 0225 LINREV 0557 LINRUL 0171 LINSAM 0534 LINSDN 1016 LINSET 0314 LINSIZ 0560 LINST1 0600 LINST2 0606 LINST3 0617 LINST4 0617 LINST5 0642 LINST6 0647 LINST7 0665 LINST8 0673 LINST9 0675 LINSTA 0700 LINSTB 0702 LINSTC 0702 LINSTE 0335 LINSTF 0337 LINSTG 0347 LINSTX 1254 LINSTY 1266 LINSUP 1053 LINTOP 0437 LINTS1 1127 LINTST 1104 LINTWO 0353 LINTXT 0334 LINUKN 0505 LINUN1 0740 LINUN2 0745 LINUNT 0741 LINUPH 1076 LINUPL 1074 LINUPP 1064 LINUPX 1101 LINUSD 0176 LINXIT 0550 LMRCH1 2742 LMRCH2 2743 unreferenced LMRCH3 2744 LMRCH4 2731 LNECH1 1513 LNECH2 2606 LNECH3 2645 LNECH4 2640 LNECH6 2615 LNECHA 2651 LNECHT 1501 LODCHR 4241 LODEXI 4250 LOOP 7704 LOWLIM 0047 LP132 7600 LPXIT 7617 LSTPAS 7540 LSTUNT 0752 LVED 7516 M2BOT 7600 M2PAG 7600 M2PAGE 7600 M2RUL 7600 MAKRL1 5460 MAKRLA 5463 MAKRLB 5513 MAKRLC 5514 MAKRUL 5447 MARG 1501 MASTT1 4014 MASTTS 4000 MFNIFD 7442 MGOVLY 7600 MGPTC1 4016 MGPTC2 4021 MGPTC3 4025 MGPTC4 4031 MIN 7536 MIN2 7707 MNUGET 1643 MNUPUT 1655 MODSET 4504 MOVMOD 6614 MRGADV 7600 MRGDEL 7630 MRGDLF 7641 MRGDLS 7736 MRGDNA 7472 MRGDNB 7503 MRGDNC 7521 MRGDNF 7511 MRGDNX 7513 MRGDON 7626 MRGEOF 7720 MRGETX 7715 MRGFNF 7605 MRGFSA 7403 MRGFSB 7405 MRGHFG 0512 MRGINB 7515 MRGNXT 7651 MRGPT1 0155 MRGPT2 0156 MRGRSF 0154 MRGS1A 7470 MRGS1B 7474 MRGS2A 7611 MRGS2B 7617 MRGS3A 7662 MRGSEA 7720 MRGSEB 7730 MRGSPC 4643 MRGSRA 7705 MRGSRB 7707 MRGTRL 7624 MSG132 6552 MSGF 7635 MTHCTL 7200 MVBTAB 0675 MVCODE 0670 MVCTAB 0705 MVJTAB 0641 MVMASK 0007 NBDMOD 0004 unreferenced NBDUNT 0337 NEWLIT 3023 NEWTCH 4230 NEXPC 5436 NINZRO 0033 NLINES 0011 NO8NXC 7660 NOMOVE 6536 NORUPD 5550 NOSTMP 2620 NOT8 7665 NOTVLD 7122 NPTRS 0030 NRTST 6600 NTMATH 7106 unreferenced NUDMOD 0005 unreferenced NUDUNT 5351 NUM01 7461 NUM02 7466 NUMB 7504 NUMBUF 3040 NUMDGT 7505 NUMOUT 7500 NWCMAR 3174 NWDT 3176 NWHMAR 3175 NWLMAR 3170 NWLN 4557 NWLNA 7630 NWLNB 7632 NWLNC 7643 NWLNCT 7654 NWLND 7645 NWLNT2 7652 NWPMAR 3173 NWRLND 3177 NWRMAR 3171 NWRUL 3000 NWWMAR 3172 NXCASE 2522 NXCR0 2547 NXCR1 2546 NXCR2 2545 NXCR3 2544 NXCR4 2543 unreferenced NXCR5 2542 unreferenced NXMATH 7121 unreferenced NXSCR1 7452 NXSCR2 7461 NXSCR3 7462 OLDHR 0235 OLDMIN 0236 OPNFIL 7142 OPNFLG 7740 OUTRNG 3313 OV2JMP 5124 OV2JRT 5135 OV2NUM 1400 OVABRV 1601 OVAPAG 3402 OVBOLD 3020 OVBOTB 5635 OVCASE 3007 OVCGCX 7642 OVCLCX 7640 OVCLKY 1201 unreferenced OVCLLX 7646 OVCLPB 2202 OVCLPX 7636 OVCLRX 7644 OVCLSD 7650 unreferenced OVCLSF 7652 unreferenced OVCON1 7401 unreferenced OVCON2 7421 OVCONT 2601 OVDCM2 1603 OVDCMT 2001 OVDEAD 4201 OVDLTE 1001 OVDNAR 3002 OVDRUL 1403 OVERUL 1402 OVEXIT 4003 OVGADV 2402 OVGBKP 2401 OVGCUT 2203 OVGETC 1602 OVGLAR 3004 OVGLTB 6020 OVGPGE 3403 OVGPST 2404 OVGRAR 3003 OVGSGR 5001 OVHYP2 3006 OVHYPL 1120 OVHYPS 1002 OVINI1 0205 OVINIT 0410 OVINTB 3603 OVJMCM 5137 OVJRTN 5122 OVJUMP 5111 OVL2 7715 OVLAY1 7400 OVLAY2 7000 OVLAYM 0400 OVLJMP 4523 OVLOA1 5155 OVLOA2 5154 OVLOA3 5145 unreferenced OVLOA4 5151 OVMENU 2020 OVMRG1 0601 OVMRG2 3201 OVMRG3 0204 OVMRG4 0203 OVMRG5 4401 OVNWLN 2403 OVNXSC 4226 OVPAGE 5601 OVPRSC 4225 OVPRUL 1406 OVPSTE 2405 OVRBAD 1401 OVRBLK 0044 unreferenced OVRBOT 5651 OVREPL 2204 OVRLDL 6044 OVRLXT 3401 OVRNUM 7600 OVRPEX 5441 OVRPP2 5203 OVRPP4 4601 OVRPPG 4602 OVRPRL 5201 OVRPWP 5440 OVRPZZ 5443 OVRQSP 4202 OVRRDS 5616 OVRRGO 5015 OVRRP2 5401 OVRSCH 4355 OVRULR 6017 OVRULX 1234 OVSCHK 4347 OVSCUT 2201 OVSFLG 0540 OVSPC2 0406 unreferenced OVSPCE 0401 OVSRCH 2626 OVSTLD 0201 OVSTPX 0202 OVSUPS 3005 OVTCLR 1234 OVTOVS 1241 OVUDKS 4001 OVUDLT 2532 OVUNDL 3042 OVUPAR 3001 OVVIEW 3602 OVVWDX 3601 OVXITF 4002 OVXRL1 1202 PAGBLK 7436 PAGBN1 1122 PAGBNT 1123 PAGUN1 1126 PAGUNT 1127 PARCHK 1114 PARUN0 1064 PARUN1 1070 PARUN2 1106 PARUNT 1065 PCTLFL 0142 PCUR 1400 PGECHO 4340 PGFMAR 0162 PGMODE 1000 PGMSG 4707 PGMSG1 7635 unreferenced PGMSG2 7635 unreferenced PGMSG3 7635 unreferenced PGMSG4 7635 unreferenced PGMSGB 4732 PGMSGX 4721 PH14 1222 PH141 1231 PH142 1246 PH15 1250 PH151 1260 PH16 1263 PH161 1276 PH162 1317 PH17 1336 PH171 1357 PH21 1403 PH31 1606 PH32 1611 PH321 1620 PH3210 1633 PH3211 1645 PH3212 1650 PH322 1660 PH3221 1672 PH3222 1701 PH323 1710 PH3231 1720 PH3232 1723 PH324 1726 PH3241 1730 PH3242 1737 PH3243 1741 PH41 2010 PH411 2017 PH412 2021 PH413 2023 PH4131 2043 PH4132 2052 PH414 2070 PH415 2071 PH4151 2075 PHASE2 1400 PHASE3 1600 PHASE4 2000 PPOPEN 7130 PPORET 7070 PQBLK 5067 PRGETP 0433 PRICNT 0126 PRIST1 4537 PRISTR 4520 PROMP2 4514 PROMPT 4470 PROSTR 4504 PRPUTP 0511 PRSCHR 7064 PRSONE 3256 PRTBUF 6000 PRTSIZ 1000 PRVSC1 7442 PSBFOF 3052 PSQBLK 5072 PSTBLK 0130 PSTE1 7423 PSTE3 7421 unreferenced PSTE4 7405 unreferenced PSTE8 7435 PSTE9 7424 PSTEBF 7400 PSTEBG 0000 PSTEND 0036 PSTEXT 7456 PSTIO 5030 PSTPTR 0131 PSTRL2 7515 PSTRLX 7477 PSTRUL 7465 PSTXIT 7451 PTDASH 1630 PTDSH1 1642 PTDSHA 1634 PTLP1 6754 PTRBLK 6221 PUT4 4653 PUTAER 3115 unreferenced PUTBYT 6026 PUTESC 4515 PUTETX 4521 PUTLIN 4602 PUTLN1 4613 PUTLN2 4607 PUTLN3 4621 PUTLN4 4645 PUTLN6 4654 PUTLNB 4641 PUTLNG 2165 PUTLNL 4633 PUTLNP 4625 PUTLNR 4616 PUTLNU 4621 PUTLNV 4621 PUTLNW 4634 PUTLNX 4601 PUTLNZ 4600 unreferenced PUTLP 6747 PUTMA1 7513 PUTMA2 7516 PUTMSA 7506 PUTMSG 6000 PUTOUT 4503 PUTPA1 3066 PUTPA2 3111 PUTSC0 3112 unreferenced PUTSC2 3107 PUTSC4 3105 PUTSC6 3027 PUTSC8 3104 PUTSCH 3054 PUTSPC 2147 PUTST1 0462 PUTST2 0434 PUTST3 0507 PUTST4 0457 PUTSTX 4522 PUTXIT 0455 RADCHR 0742 RANBAD 3400 RDFIND 7625 RDFLP1 7627 RDFLP2 7631 RDFPTR 7652 RDFXI1 7650 RDNXN1 5215 RDNXNJ 5200 READNE 1073 READT1 1114 READT2 1141 READT3 1136 READT4 1126 READTA 1110 RECBUF 0010 REEDIT 0215 REJCNT 0147 REJCP1 2542 REJCP2 2543 REJCP3 2544 REJFLG 0150 REJS99 2430 REJUSA 2450 REJUSB 2455 REJUSC 2502 REJUSD 2514 REJUSE 2507 REJUSF 2442 REJUSJ 2445 REJUSK 2460 REJUSL 2512 REJUSM 2465 REJUSN 2530 REJUSQ 2432 REJUST 2400 REJUSX 2406 REJUSY 2420 REJUSZ 2470 REMCUR 2362 RESCUR 1154 REVERS 2000 RGTMAR 0160 RLADV 7644 RLADV1 7661 RLBADI 7717 RLBKP 7643 RLCHAR 7523 RLCONB 7427 RLCONC 7432 RLDBLD 7441 RLDIRN 0155 RLDL2 7455 RLEQTE 6151 RLERUL 7402 RLGET0 7420 RLGET1 5275 RLGETI 7410 RLGETS 5267 RLGETX 5301 RLGOAD 7512 RLGOBK 7514 RLINE 7677 RLINE1 7705 RLINE2 7713 RLIT1 7452 RLIT2 7453 RLMNU 7721 RLMOV 7647 RLNSTR 0000 RLNWL 7517 RLOJDL 7727 RLOJER 7461 RLPOSN 0125 RLPRUL 7406 RLQUIT 7516 RLRMOD 0124 RLSPCI 7627 RLSTOR 3170 RLSTR2 6540 RLSTR4 6546 RLTYP 5725 RLWRD 7667 RLXIT1 7702 RLXIT2 7701 RLXIT3 7714 RLXIT4 7725 RNGCHR 3277 RNGECK 3300 RP7777 7410 RPACTI 6426 RPADV1 7451 RPADV2 7452 RPADV3 7466 RPBFIN 7675 RPBIN1 6737 RPBIN2 4302 RPBOTF 3753 RPBUF 7423 RPCHK 7711 RPCKBT 7474 RPCMMA 0054 RPCUBK 0761 RPCUOF 2756 RPDESC 7406 RPERCH 7516 RPERPG 6740 RPERR 7405 RPERRE 6716 RPERRG 7514 RPGDSH 6627 RPGETU 0456 RPGOTO 4535 RPIGNO 6422 RPMINU 0055 RPMNT1 6477 RPMNT2 6476 RPMNT6 6501 RPMNT7 6500 RPMSG 7414 RPMTBK 3363 RPMTHB 0100 RPMTHE 0100 unreferenced RPMTHO 0100 unreferenced RPMTRL 5162 RPOVIN 7720 RPPAC 6475 RPPAG1 7662 RPPAGE 7657 RPPATC 6527 unreferenced RPPCAL 6631 RPPCUR 6526 RPPER3 4205 RPPER5 4204 RPPER7 6001 RPPER9 4203 unreferenced RPPETX 6530 RPPG0 6736 RPPGER 7664 RPPH01 3534 RPPINC 6655 RPPLSP 6666 RPPLUS 0053 RPPME9 3400 RPPMEN 6427 RPPMN2 6463 RPPMSP 6667 RPPNOG 6502 RPPRCT 0045 unreferenced RPPRET 3400 RPPRRL 6735 RPPSCT 6502 RPPTOP 7600 RPPVAL 6645 RPPXCH 6502 RPPXDE 6601 RPPXME 6600 RPREPL 6470 RPRLHN 6537 RPRLSR 7641 RPRULE 7626 RPRULR 4000 RPSTAR 6525 RPSURL 7600 RPTOP 0541 RPWORD 0153 RPXCHK 7727 RPXHLT 6670 RR3 7673 RR3X 7637 RRABOR 7730 RRAER2 7717 unreferenced RRBK 7614 RRBLCT 7742 RRCBUF 7527 RRCHK1 7532 RRCHK2 7547 RRDIR 1764 RRDISP 7416 RRDW 7705 RRERRB 7725 RRERRT 7722 RREXT 7475 RRFND 7733 RRFNDE 7731 RRGEFW 7450 RRGETN 7431 RRGETS 7441 RRGEX1 7447 RRGEX2 7446 unreferenced RRGOTO 4533 RRGTTP 7456 RRHLT 7727 unreferenced RRJMET 7431 RRJMLP 7417 RROPL2 7704 RROPLN 7676 RROPN 7656 RROPP 7620 RROPPL 7621 RROPR 7611 RROPTB 7711 RROPX 7707 RRORID 7744 RROROF 7743 RRPBIN 7750 RRPOS 7406 RRPRAD 7410 RRPRBK 7412 RRPRLP 7403 RRPS 7503 RRPS1 7514 RRPSAM 7536 unreferenced RRPSFM 7527 RRPSGM 7530 RRPSLM 7541 RRPSLP 7520 RRRFSP 7474 RRSAVE 7474 RRSC 7645 RRSC2 7661 RRSCDN 7665 RRSCLP 7647 RRSNEB 7623 RRSNEL 7630 RRSVBK 7501 RSTRLN 4457 RSTRT2 4467 RTNMTH 7201 unreferenced RULOFF 4675 RULSIZ 0177 RULSV2 7407 RULSV3 7416 RULSVE 7403 RULV3A 7423 RXLIT2 7646 S132MS 7621 SAVCRL 7516 SAVLMD 2244 SAVSYM 3263 SAVTP 6762 SCECHO 2346 SCHMOD 0010 SCNSZ 1474 SCRAD0 1752 SCRADJ 2314 SCREX 7551 SCRFS1 3121 SCRFS2 3145 SCRFSH 3115 SCRINI 4023 SCRLCT 0137 SCRLCU 0145 SCRLD1 3213 SCRLDA 3231 SCRLDB 3255 SCRLDC 3263 SCRLDD 3301 SCRLDE 3266 SCRLDF 3334 SCRLDG 3274 SCRLDL 3310 SCRLDN 3200 SCRLDP 3331 SCRLDS 3317 SCRLDX 3333 SCRLFL 0141 SCRLIN 0146 SCRLLN 7061 SCRLP1 3610 unreferenced SCRLPX 1671 SCRLT1 1547 SCRLT2 1550 SCRLT3 1551 SCRLTM 3040 SCRLTX 1517 SCRLTY 1541 SCRLTZ 1546 SCRLU1 3035 SCRLUB 3632 SCRLUM 3027 SCRLUP 3600 SCRMTH 7540 SCRNFL 0140 SCRNLN 0176 SCRNMD 2267 SCRNSZ 2335 SCRTM1 3046 SCRTM2 3045 SCRTM3 3047 SCRTM4 3044 SEIRF 0537 SET132 6744 SETBLK 7507 SETBNT 0671 SETCLR 7625 SETCUR 1744 SETFE1 2767 SETFEN 2756 SETLMD 2255 SETLME 2302 SETLMF 2310 SETNEG 7431 SETPST 5316 SETRL1 5625 SETRL3 5626 SETRLA 5633 SETRLB 5606 SETRT1 7124 SETRT2 7135 SETRTN 7057 unreferenced SETRUL 5600 SETSAV 7634 SETSPC 7433 SETSPT 3355 SETUNT 0650 SIMCHR 6611 SINZRO 0124 SLCRPT 1353 SLCTDR 0127 SLCTMD 0010 SLNMOD 4514 SLTMOD 0020 SLTUN1 0754 SLTUN2 1143 SLTUN4 1144 SLTUNT 0755 SLXMOD 0622 SMULOC 7642 SNTBNT 1046 SNTUN1 1027 SNTUN3 1033 SNTUNT 1050 SNTUNX 1025 SPACNG 0143 SPCCHK 0172 SPCLST 7600 SPLTFL 2345 SRCDIR 0153 SRCSLT 7540 SRHTBL 7450 STCURP 1142 STLOC1 3331 STLOC2 3330 STMPDK 2600 STORMA 1334 STPEX1 7675 STPEX2 7677 STPTB3 7701 STPTB4 7712 STPTB5 7721 STRMT1 3200 STRP13 7603 STRP14 7605 STRP15 7612 STRP16 7611 STRP18 7647 STRP20 7652 STRP22 7621 STRP23 7643 unreferenced STRP25 7662 STRPTR 3201 STXBUF 7000 STXMSG 7635 SUPNXT 7475 SURLEX 7616 SVNTO8 7635 SVREG1 1747 SVSLCR 1347 SWPEND 3200 unreferenced SWTHM1 1330 SWTHM2 1332 SWTHMA 1320 SYSIO 5041 SYSIO1 5061 TAB1 2406 TAB2 2460 TAB3 2472 TABBNT 1061 TABCHK 2400 TABCLA 2235 TABINS 2262 TABUN2 0750 TABUNT 1052 TADIM1 7461 TADIMR 7460 TBECH1 2326 TBECH2 2327 TBECH3 2330 TBECHB 2303 TBECHC 2244 TBECHD 2265 TBECHE 2307 TBECHF 2310 TBECHG 2316 TBECHX 2252 unreferenced TBJUST 0315 TBLOFS 3203 TBSTR 6177 TCBKLP 2751 TCBKUP 2750 TCCHK 2424 TCCHR 2470 TCCHX 2534 TCCONT 2455 TCDED 2466 TCEX0 2527 TCEX1 2526 TCEX2 2525 unreferenced TCGS1 2446 TCGS2 2451 TCHAR 0200 TCJMP 2436 TCRDED 2542 TCREQ 2465 TCRREQ 2541 TCTEC 2464 TCTEMP 2532 TCTMP1 2533 TLITAA 7522 TLITBA 7521 TLITBC 7522 TLITCA 7437 TLITCB 7440 TLITCC 7441 TLITCD 7442 TLITCE 7443 TLITCF 7444 TLITCG 7445 TLITCH 7446 TLITCI 7447 TLITCJ 7450 TLITDA 7612 TMFNIF 7441 TMLLA1 7552 TMLLAB 7546 TMPMIN 7535 TMRGAD 7540 TMRGDE 7600 TMRGDL 7611 TMRGDO 7621 TMRGS1 7450 TMRGS2 7452 TMRGS3 7461 TMRGS4 7504 TMRGS5 7520 TMRGS6 7526 TMRGS7 7413 TMRGS8 7527 TMRGSA 7401 TMRGSB 7403 TMRGSC 7411 TOLVED 7503 TOMIN 7677 TOMNU 7600 TOOVJR 7720 TORPSU 7467 TOTOP 7605 TRANTP 7600 TREG3 2273 TREG4 2274 TRYBOT 7455 TRYPGE 7435 TSTLIM 1426 TSTLMA 1467 TSTLMB 1472 unreferenced TSTLMD 1443 TSTLME 1457 TSTLMF 1453 TSTLMX 1473 TSTSLT 4511 TTADI1 7531 TTADIM 7530 TWODEC 7454 UDKONM 0015 UDKOVL 7607 UDLBIT 0154 UDLMOD 0003 unreferenced UDLNXT 7444 UDLTLP 7541 UDLTM1 7552 UDLTX0 0000 UDLUN1 7457 UDLUN2 7460 UDLUN3 7454 UDLUNT 5350 UNSLCS 7522 UNSLCT 2547 UPDN0 7641 UPDNAR 7632 UPDNU0 7662 UPDNU1 7657 UPDNUP 7651 UPDNX1 7707 UPDNX9 7711 UPDNXT 7670 UPDRLA 5717 UPDRLB 5714 UPDRLC 5664 UPDRLD 5677 unreferenced UPDRLE 5705 UPDRLF 5672 UPDRUL 5634 USCMP1 0000 USCMP2 4266 USCMPR 4252 USHLTS 2753 VALID 7316 VECFLG 7417 VIEW 7677 VIEWA0 7704 VIEWA1 7717 VIEWA2 7725 VIEWA3 7734 VIEWBZ 7742 VIEWCX 7740 VIEWF1 3600 VIEWF2 7741 VWADL1 7632 VWADL2 7640 VWADL3 7674 VWADLN 7625 VWADX1 7603 unreferenced VWADX2 7606 VWERR 7520 VWNEXT 7470 VWPREV 7503 VWTEMP 7522 VWTEST 7457 VWVALU 7515 VWX1 7736 VWX2 7737 WARN 4232 WIDEFL 3564 WIDNAR 0177 WIDPRV 6535 WIDSIZ 2344 WIDTH 0204 WIHLTX 6714 WOHLTX 6671 unreferenced WRDBNT 1001 WRDTST 1016 WRDUN1 1000 WRDUN2 1004 WRDUN3 1010 WRDUNT 1005 WRPMAR 0161 WRPVAL 7427 WTOT 7442 WTOT1 7455 X 0762 X7 0000 XABRVC 7750 XABXPC 7744 XFCOPY 7505 XHLTS1 6417 XHLTST 6400 XLMAR 6215 XLSTR 6206 XLTINI 7615 XLTUPR 4516 XPCTLF 3034 XPPER3 7405 unreferenced XPPER5 7407 XPPER9 7411 XTRLIN 6476 unreferenced XVABIN 7733 XVABRV 7653 XVBOLD 7420 unreferenced XVCLPB 7525 XVDCM2 7704 XVDEAD 7600 XVDLTE 7600 XVDNAR 7626 XVGCU0 7444 XVGCU1 7451 XVGCUT 7416 XVGETC 7700 XVGLAR 7613 XVGOPG 7472 XVGRAR 7614 XVHYB1 7415 XVHYP2 7600 XVHYP3 7527 XVHYP4 7607 XVHYPB 7403 XVHYPC 7421 XVHYPD 7454 XVHYPL 7520 unreferenced XVHYPR 7474 XVHYPS 7402 unreferenced XVHYPV 7503 XVMENU 7420 unreferenced XVMRG3 7454 XVNWLN 7613 XVRBAD 7717 XVRQSP 7707 XVRRGO 7600 XVSCUT 7456 XVSUPS 7467 XVTEMP 7566 XVUDKS 7600 XVUNDL 7442 unreferenced XVUPAR 7625 XVVWDX 7600 ZAP 7134 ZAP1 7136 unreferenced ZROTB1 7221 ZROTB2 7227 ZROTBL 7205 ZZCASE 4500