PW [0+8+FQ(+4)[1 0FO10F"G+Q1' +FQ()+4U1 FQ1"L0' ,Q1:M(Q1+4(]1]0)) =^n>{S 8 _ +'4j<nN_jE| w'e1_8;& BASIC20 Auto Line Numbers& Setup BASIC20 LibraryBASIC20 ModeResequence BASIC20 ProgramSet Line IncrementSet Starting Line Number^R BASIC20 Tab~DIRECTORY~%~DOC~ & BASIC20 Auto Line Numbers!~DOC~ & Setup BASIC20 Library~DOC~ BASIC20 Mode$~DOC~ Resequence BASIC20 Program~DOC~ Set Line Increment"~DOC~ Set Starting Line Number~DOC~ ^R BASIC20 Tab~DOC~ ~FILENAME~~FILENAME~ ~INVERT~+0FO..QBASIC20 Setup Hookq0"G:M0' 10M.CBASIC20 Line Number Difference* Line increments 100M.CBASIC20 Starting Line Number* Starting Line Number M.CBASIC20 Upper Line NumberValue of the next line number found. M.CBASIC20 Lower Line NumberValue of the previous line number found. }M(M.M& INIT BUFFER LOCALS) M(m.mMake Local q-register)..d 1,32M.LComment Column 1,(:i*!)M.LComment Start 1,(:i*)m.lComment End 1,1M.LDisplay Matching ParenW 100M.LBASIC20 Starting Line Number 10M.LBASIC20 Line Number Difference 0M.LBASIC20 Upper Line Number 0M.LBASIC20 Lower Line Number 1,(M.M^R Basic20 Tab)M.QI Q.0,1M(M.M& SET MODE LINE)BASIC20*[a[b[c[d[N 100000UBASIC20 Upper Line Number -100000UBASIC20 Lower Line Number .(0@lw<.-b@; 0,1A"'D:; -1@L> \F(F"GUBASIC20 Lower Line Number' )ubW)J .(1@lw<.-z; 0,1A"'D:; 1@L> \F(F"GUBASIC20 Upper Line Number' )UCW)J QB"E QC"E QBASIC20 Starting Line NumberUN' "# QC-QBASIC20 Starting Line Number-( )QBASIC20 Line Number Difference"G QBASIC20 Starting Line NumberUN' "#QC-(QBASIC20 Line Number Difference/2)UN''' "#QC"E QBASIC20 Line Number DifferenceUD QB/QD*QD+QDUN' "#QC-QB-1F"G+1/2+QBUN' "#WQBUN''' QNp-1[A .[0 .(:L.-Q0[2W)J M(M.M& BASIC20 Auto Line Number)[N FF"NUA' QA"LFShposition-7"G.,(9i.)' :LFSHPosition"EQNUA' "#0l0,1a"D\WOCheck-Tab'"#QNUA''' 0l\W0K !Line-Number! QAF"G:\U0 0K5-FQ0:"L 5-FQ0F"G,48I'WG0' "#:I*C0 is too big for a line number.fsechodisp 0fsechoactive0'' !Check-Tab! 0,1a-9F"E1COReturn' "#-23"E1D'' 9I !Return! QA:"L:Lq2R' QAF"G QBASIC20 Lower Line Number-QA:"'L+( QBASIC20 Upper Line Number-QA:"'G)"N QA:\U0 QBASIC20 Lower Line Number:\[1 QBASIC20 Upper Line Number:\[2 :I*CLine number 0 is outside the range (1,2).fsechodisp0fsechoactive'' [10UBASIC20 Line Number Difference FF"N F"GUBASIC20 Line Number Difference'' X100UBASIC20 Starting Line Number FF"N F"GUBASIC20 Starting Line Number'' N FSRUNTIME [A[B[C[D :I*`~[0 F=(QMODE)BASIC20"N W:I*CWrong Modefsechodisp0FSECHOACTIVE' B[F0[GZ[H0[Y FF"N0L.UF UG' QG"LM(M.M^R SET BOUNDS REGION) BUFZUH' QF,QHM(M.M& Save for Undo)Buffer Resequencing QG"LQF,QHFSBOUNDARIES' "#0,fszfsboundaries' [..D F[BBIND 34*5,32I940,.FX..D F]BBIND 38*5:F..D  44*5:F..D  92*5:F..D  127*5:F..D  0[L .(<.-z;W\"N%Lw'w1l> )J QBASIC20 Starting Line NumberUA QBASIC20 Line Number DifferenceUB (QL-1)*QB+QA-99999F"G+99999:\[L :I*CLine Numbers [L] will exceed the allowed maximum of 99999.( )fsechodisp ]L(99999-QA)/(QL-1):\UL :I*AThe maximum line increment is L.fsechodisp 0fsechoactive qfj 0,fszfsboundaries 0' ]L J<:SFOR; <:FB=TOSTEP; :FB"L1R 1A"DG0''> > J<:SMARGINPAGEDATA; <:FB;1R 1A"DG0' 1FWLW>> QFJ<:s00001 REM 00002 REM ; 0lG0wl> -1uK <.-Z; 1A"D QA:\UC \:\UD 0KG0 5-FQCF"G,48I'WGC .( J<:SLINO(D)D; R-FQDDWG0GC>)J QA+QBUA QA-99999"G J<:S`~;FKD> W:I*C? Cannot Continue, LINE NUMBERS are too bigfsechodisp0FSECHOACTIVE 0,FSZFSBOUNDARIES '' 1@L FQC"GFQD"G! Cfsechodisp0fsechoactive'' > J0S0W<:S;FKD> :I*CResequencing Complete in fsechodisp @:(FSRUNTIME-QE+500)/1000=@FT sec.  0FSECHOACTIVE QFJ 0,FSZFSBOUNDARIES  BASIC20=Library of macros for editing programs written in BASIC20S Sets up for Basic20 Mode7C This module sets up EMACS for editing BASIC20 programs. The following definitions are made: TAB -- move past the line number if ahead of it otherwise insert a tab /S Subroutine that gets the next line number%^R The definition for tab. A positive numeric argument will insert that value as the line number for the line. A numeric argument of 0 will remove any line number, while a negative one will either insert a line number (or a tab, if the current position on the line is greater than 6).>C Set the Default line number increments. The value of Q$Basic20 Line Number Difference$, which is also an option, gets set to 10 by default or any positive argument if any were given.C Set the Default Starting Line number. Resets the value of Q$BASIC20 Starting Line Number$ to either the positive given argument or 100 if none given.JC Resequences the buffer if in BASIC20 mode. NOTE: If for more than about 300 lines, it is suggested to use the RESEQ command in the BASIC Subsystem. The first line number is set by Q$BASIC20 Starting Line Number$ and uses Q$BASIC20 Line Number Difference$ as the difference between consecutive lines. Given a positive argument, the resequencing is done from the current location to the end of the file, updating ALL entries, even if they appear before the current location. Given a negative argument, the resequencing is ONLY done in the currently defined region. "& Setup BASIC20 Library BASIC20 Mode & BASIC20 Auto Line Numbers ^R BASIC20 Tab Set Line Increment Set Starting Line Number Resequence BASIC20 Program T+8+fq(+4)[20[3 <%3,-q2f2u3q3&1@;q3"l0'> f[BBindq3-1*5,q3*5g2q:..o(0)+q2