nput device. def_buf EQU $c2 ;default device buffer. ; it is ok for the following locations to get clobbered by host language. found_len EQU $c4 ;length of matched search string. chrgetpointer EQU $c6 ;pointer to next char 7bufferend EQU input_buffer+80 OPT list resent position. chrgottype EQU $c9 ;01=alpha, 02=other, 03=numeric. temp_copy EQU $ca ;used in screen printing. multi_copy EQU $cc ;count of # of lines deleted. orig_kbfor chrgeting. chrgotchar EQU $c8 ;char at present position. chrgottype EQU $c9 ;01=alpha, 02=other, 03=numeric. temp_copy EQU $ca ;used in screen printing. multi_copy EQU $cc ;count of # of lines deleted. orig_kb in equ $ce ;original i/ob for keyboard. pref_buf equ $d0 ;file designator prefix (eg. "(f:20)"). main_buf equ $d2 ;large working buffer for text. input_buffer EQU $0400 ;command and text working buffer. input_ EXPORT CLMUSR1 = $9026 - 15 EXPORT CLMNUMBR = $901d - 15 EXPORT CLMPARMS = $901a - 15 EXPO EXPORT CLMSAVEO = $7f7a EXPORT CLMSAVEI = $7f78 EXPORT CLMOUT = $7f76 EXPORT CLMRUN__ = $7f4c EXPORT CLMLOD__ = $7e90 EXPORT CLMRTYPE = $7f71  ; macros for use with assembly. OPT nolist ; 6800 compatabilty macros. clf MACR OPT nolist ANDCC #%10111111 ENDM sef MACR OPT nolist ORCC #%01000000 ENDM clif MACR  LDB \1 ENDC STB \0 ENDC ENDM ;conditional set memory location SEQ1 MACR OPT nolist IF EQ SET1 (\0),(\1) ENDIF ENDM ;conditional set memoryy locations SNE2 MACR OPT nolist IF NE SET2 (\0),(\1) ENDIF ENDM ;system parameter passing call. CALL MACR ;call a system procedure p0-p5. OPT nolist pcount__ SET 0 IFNC PSHS d ENDC LDD \1 ENDC JSR \0 IFNE pcount__ LEAS pcount__,s ENDC ENDM ;clean up stack and finish up a routine. DONE MACR OPT nolist  \0 ENDIF ENDM ;conditional jump. JNE MACR OPT nolist IF NE IFNC .,\1. LDD \1 ENDC JMP \0 ENDIF ENDM ;conditional jump. JHI MACR 4 STD \0 ENDM OPT list NC .,\1. LDD \1 ENDC JMP \0 ENDIF ENDM ;conditional jump. JLO MACR OPT nolist IF LO IFNC .,\1.  OPT nolist ; constant values. txtbottom EQU 23 ;bottom of screen text. cmdline EQU 24 ;command line. msgline EQU 25 ;message line. crtwidth EQU 80 ;width of screen. ; lower label locations. membeg_RT CLMCHK__ = $9032 - 15 EXPORT CLMCHECK = $9017 - 15 EXPORT CLMPARSE = $9014 - 15 EXPORT CLMFLUSH =  EXPORT CLMIN = $7f74 EXPORT CLMCMFIL = $7f72 EXPORT CLMRTYPE = $7f71  EQU $32 ;service request number. filename_ EQU $68 ;pointer to filename. ; a0 - a3 is clobbered by setup. command_buf EQU $a4 ;previous command buffer. alternate_buf EQU $a6 ;buffer used for replace strings, etc... pr OPT nolist ANDCC #%10101111 ENDM seif MACR OPT nolist ORCC #%01010000 ENDM iny MACR OPT nolist LEAY 1,y ENDM dey MACR OPT nolist LEAY location SNE1 MACR OPT nolist IF NE SET1 (\0),(\1) ENDIF ENDM ;convenient way to set two memory locations SET2 MACR OPT nolist IFNC .,\0. IFNC .,\1.  .,\1. IFNC .,\2. pcount__ SET 2 IFNC .,\3. pcount__ SET 4 IFNC .,\4. pcount__ SET 6 IFNC .,\5. pcount__ SET 8  IFNC .,\0. LEAS \0,s ENDC RTS ENDM ;conditional call. CEQ MACR OPT nolist IF EQ CALL (\0),(\1),(\2),(\3) ENDIF ENDM ;conditional call. CNE MACR  OPT nolist IF HI IFNC .,\1. LDD \1 ENDC JMP \0 ENDIF ENDM ;conditional jump. JLO MACR OPT nolist IF LO IFNC .,\1. start EQU $b2 ;specified line range start and range_end EQU $b4 ; end. old_txtcur EQU $b6 ;old screen line pointer. error_flag EQU $b8 ;flag for file error condition. modeflag EQU $b9 ;00=command, 01= EQU $20 ;start of free memory. memend_ EQU $22 ;end of free memory. txtcur EQU $24 ;pointer to current text line. txtbeg EQU $26 ;start of bof. txtend EQU $28 ;start of eof. service_ $9011 - 15 EXPORT CLMRESID = $900e - 15 EXPORT CLMMAIN = $9000 - 15 EXPORT CLMDRIVE = $7f90  EXPORT CLMCMD = $7f6f EXPORT INBUFF = $7faf EXPORT PROMPT = $7f7c evsrchstr_buf EQU $a8 ;used in searching. old_cur_line EQU $aa ;old screen line #. cur_line EQU $ac ;# of current text line. max_memory EQU $ae ;limit of text area. name_buf EQU $b0 ;file name buffer. range_ -1,y ENDM FCS MACR ;form character string OPT nolist FCC \0 FCB 0 ENDM ;convenient way to set a memory location SET1 MACR OPT nolist IFNC .,\0. IFNC .,\1.  LDD \1 ENDC STD \0 ENDC ENDM ;conditional set two memory locations SEQ2 MACR OPT nolist IF EQ SET2 (\0),(\1) ENDIF ENDM ;conditional set two memor LDD \5 PSHS d ENDC LDD \4 PSHS d ENDC LDD \3 PSHS d ENDC LDD \2  OPT nolist IF NE CALL (\0),(\1),(\2),(\3) ENDIF ENDM ;conditional jump. JEQ MACR OPT nolist IF EQ IFNC .,\1. LDD \1 ENDC JMP  LDD \1 ENDC JMP \0 ENDIF ENDM ;memory push. PUSH MACR OPT nolist LDD \0 PSHS d ENDM ;memory pull. PULL MACR OPT nolist PULS d text, $ff=input. textcol EQU $ba ;column of text cursor. textrow EQU $bb ;row of text cursor. temp_counter EQU $bc ;lines inserted, etc... eof_line EQU $be ;# of lines in text. kbin EQU $c0 ;iXEXPORT CLMLOOKE = $9833 - 15 EXPORT CLMLOOKT = $9735 - 15 EXPORT CLMNUM__ = $96f5 - 15 EXPORT CLMPRM__ = $95c0 - 15 EXPORT CLMIOCLO = $94dd - 15 EXPORT CLMIOPEN = $94b4 - 15 EXPORT CLMOPEN = $9448 - 15 EXPORT MAKENAME = $946d - 15 EXPORT TEMPNAME = $9570b4b4g2d2b42b$ݶܬݪ2d9Oֻ4'4b4g2d׹׺5~Oֻ'444dg2d2b~ ~$&&"ֻ'44g2d  Iֻ' $ݶܬݪ~}~}׺$(&"ֻ'44g2d  Iֻ  Ͻ  Ԑ'̰< ̰94'-ZZo4b5\:/2b~3Wh4愽$'h0 '0hho4h<================================END OF FILE===================================>4eaP=4bhP=À4eP=À4d4d4dK2d2h9ZP=ÀO J*9ֻֻZP=ֺ:0Ȁ & "0Ȁ94&' 4O$5'&4O$&oaO佰$&85C= 4c4m'qoa':' 4$5&jm''佰cm& B2|dQW@Bo& 4 i5 l':& 4 o5 2a@2dub'4̒m' {2bܦܦ~%S42b4{2b4d2do佰S'&佝]&׸'ܦ4̘%N2b&0 4ܦ4c2bcݬ$3'~2d9Out of memory: Aborted: &ݲ(ݴ  4-m'o44̱@2b5m'4 ܲ$&&$('h4$2bb'% E444: o2h9P2@4ܰH2bܦ42b)'ܦ4½H2bܦ4ܰQ2b $ܰ4ܦKH2b '#P42b)' ' P42b@4H2 ~'4ݼܦ4f2b4'm'b4b2bb4bK2b' ~2d9ܼ4ܦ4 ?2d94d4cH2bm&d4ܰH2b_ = $95c0 - 15 EXPORT CLMIOCLO = $94dd - 15 EXPORT CLMIOPEN = $94b4 - 15 EXPORT CLMOPEN = $9448 - 15 (' 4b2b 2b9&&&b.#4d('44d2b52b 94&, 1!:(-54XݬὝo$9Ӭ, /ܾ9& $/ (':1?& '&'01!&9' I9̝ ̝4 & 4 Oֺ4ֻZ2b4'~42b4'佰2b9O44W&iP/PbHoLZlbb &۽uobbX4̓E2blbb &~%S %D _ 2A4ܰ4̱(ݰ5ݰܦKhoa4hH2bܦ4ܦ4bK2b4ܮ(4f#( O_4ܨ4f2b'4o(0f2d2bܦ4b]2b&)0'ܦ4̙N2b&$' 4ܬ$a3'~2d9Aborted: 4'w<&l4 &< _&040d4b2b50Z A& 40佰50 2&"40佰E44d4̚%W2d2b50'Z &><!5 o 94$&O'd4½N2b adKm&d4̟%Q2bd4ܰQ2b =d94E''&'佟K&½N2bdK4b& ܰ4bH2b2bd5.'  `  & ׽ 9 Խ "  Ͻ  o Ž  U ڽ i o  EXPORT CLMUSR4 = $902f - 15 EXPORT CLMUSR3 = $902c - 15 EXPORT CLMUSR2 = $9029 - 15 9 O_4\'u]'.a&ca&o'Ya- . o/@ '<'-')P& a - m&ֹ&jaJ &La '& a'& 2 '׺a&ܤ4̞ͽ2b a'\' &S & _5%s4P=À44b4j2b' ܦ4dH2b&?b'"&]'#k4d2b'5040bEbbܮb#$mj&?o".牀0"(0'''4섽_5' j0b&m&2d}P'̱4P2bbP4dK2b׼٩̖4ܨ4̖4h2f'A(0'944&̖U1!O4$*5$&?O>&L>+'#-'O$&' 1!O4$!5$&O>& ' 1!O4$$5$&O>&5'o? 59nulsohstxetxeotenqackbelbshtlfvtffcrsosidledc1dc2dc3dc4naksynetbcanemsubescfsgsrsus4̱@2b4"0Ȁ焽rrB / 0    ޽   MQ2b $ܰ4ܦKH2b '#P42b)' ' P42b@4H2 ~'4ݼܦ4f2b4'm'b4b2bb4bK2b' ~2d9ܼ4ܦ4 ?2d94d4cH2bm&d4ܰH2b EXPORT MAKENAME = $946d - 15 EXPORT TEMPNAME = $9570 - 15 EXPORT CLMFLS__ = $93f4 - 15 bJP=0砬&2c &&o!9oX%T!'m& j9 +o⎟L'lm&m'2a9c0a4sѽDo mh'}h4̟N2bm &h4̟½N2b h4̟ĽN2bh4̟ƽN2bF 2b9:01$6 & "04db4n4l2h&&&2b2bob&oom& ܨ4d2b4d2b'ܦ4ܨH2bo&Fܦ4d2b'ܦ4H2b&&d46f2f&&Oܨ4ܦH2b& d46f2f̖4ܦ4̖4f2f P44d2dooP"14 O'0L LP" 5Ȁ焽r&݂ & &݂ &佰'rrὰ3~ &~Mܦ42b'ܦK& ~]4ܦ{2b4̛sQ2b~M.'$4 ?2b9'H2~'-ܲ$ݬܴ &$턟(ݾ4kM!&1̐}Nܤ4bH2ḇ4̱K2b44b2b52b2$~̱4̱K2b9g &Gܲ'"$$&#-($( M,'$ݶܬݪ 944& *&oa/'00cc00003406cc01f9bd0000fc0000bd000032643506fd000039b600008e0000e684a780 27041f9820f639524553554c5420455843454544532036353533352e205265636f6d707574652069 6e20466c6f6174696e6720506f696e742e0600454e545259204552524f523a203129204120446967 69742061626f76652034ܦ~f\k2~/' \'' (&&42d_& P+&(442d 1-&&442d .& $&($4$ݬ9$4f$&4` ]/'\'$ O4&& +C$54'/'NHB<60ݟ*$ "$ݶܬݪx4' %Ā&  0 &o m'9O' 0L'#M'"#14 b4bH2b2b Î_\m&4\O4$2b&$\4H2b$:焽2c9Z4cj' $ j䧠Z&  o2a94 aseMake lower caseShow line numberRun editorLeave editor & save textSet ACIA chipEnter ML monitorEnter 'PASSTHROUGH' modeOne column directoryTwo column directory (sorted)Rename textRedefine assumed deviceRemove file from diskChange name of f "/&"C&BTܲ$&佑bb$$ $#ܬ$b4&2b2d9ܦ4'$/' %&&'~' ʀ504 o/&2b9444$&'('4$2b4ܨ4d2d& 'J 佰&Ad' 'd (4ܦ4d22d 33237363720282437666666292c206f72203229204469766973696f6e2062 7920300600524553554c542045584345454453202b333237363720446563696d616c2e205265636f 6d7075746520696e20466c6f6174696e6720506f696e740600524553554c5420494e2054776f2773 20436f6d706c656d656e742e205661 \'& $i&&c$_2e9a$ $2d9$ݼ*& &ݲ( T|& (ݲ& E'T$ݲ,&$'>$ &ܲ$^& 콞 &&  ܲݴ$ ݼ _4a$ݬ59ܴ$ 4ܲݴ5ݲ9 & ]9Ƚ!' Ƚ$ 2|(넉hb""d4fj4hK2d(h(ܴhݴ2f94(:4bf4bd4f4dK2b2b(h(ܴhݴ2f9"0ݟ4̞NH504̞HH50o0o0o02v@@4 44K2do 4ܮ 4̝ܽ2P42bo̟~ %ile on diskInitialize diskTransfer fileShow/rename date and timeShow time, rename date and timeShow/set tabstopsShow command summaryMacro keyboard entryFree memory availableSend command to diskExamines a filePrints formatted textqz'b0bd&'504 b'x$b2f9b2`B46d4dH2bm'om'm&0& d'<&60404b4bH2b2bĮb:4oc4gN2b5O dE4ExĂ# "bĉ4d4bH2b2bb4hN2b56c75652062656c6f77207a65726f2069733a202d2425730600 b600008e0000e684a780 27041f9820f639524553554c5420455843454544532036353533352e205265636f6d707574652069 6e20466c6f6174696e6720506f696e742e0600454e545259204552524f523a203129204120446967 69742061626f7665203' O9h'4ƽhT2b9 &9 '9 " O4UZ'm&m&4g4g4d2db'~2c9Say what?Missing Filename.!Illegal line range.Illegal search string.Search string not found.Search string required.No search string defined.nEDITOR :Copyright 1984 by Joe Bostic%n%n %d bytes free.%n%nDate: %s%nTime: %s%n%nEnter date and time.%ndisk.text:e42@4*..4bH2b.oO_2,9P 0 ` i o I    ٽ ^  /  7ؔؔݔߔqߔݔ䔅䔅ݔݔݔݔqݔݔݔꔑꔑqꔨqꔑꔨꔑꔴꔴ”ݔqݔɔqqFileName/srch/repldestination[FileName] to FileNamedevice-name[date] [time]{tabs}command-stringtextlinerange̐b29ܲ'"$ݬ$(&o2~׹ֻZP="ܦ"׺'2Z&̔4?2b&oj&C aEP-50悌P-] $'' &04ܦ4bH2b5 '0o&н4̃5&#$ݶܬݪa 'Ra ' ~b9]* - " -"/'X~Ƙ?d_iUZmiښ   I~}Oֻ4ܬ,"0Ȁ׺Oֻ׻44bS2b2b5cI$ݶܬݪ~}9׹~}4$2b~bc~`IIllegal default device.%S%S - Lines transferred %D.%DNo line range allowed.%D Occurrences changed.%D lines of text.Memory full.Replacing string too long.%D bytes of free memory.*Illegal destination line.Not enough free memory.2~   ½ 9   0 뽰  콰      ֽ 3 M I L     u     ~  Q ? V D   > c b  ̑e̓٩ 큌P%_ 큌.%m'[42b] 4h2bfbm'"何'[4 2b何']:./4fH2bE0.턮dm&d"0Ȁ' b0b0&& m&-`~'92b9$ݶܬݪ9.ƃ$ܴ4ܲ4ܼ2d4'$aa$ݬm&2b94ܨ4' b&_' &EӨ_'D%&8^'$' .'~' ʀ*&䜨'' &9瀯 oܨE& & _2c944f'& & fb''m4ܤH2bֹ 4ֺ4$(& I'`2c9$ݶܬݪ}5׺׹~ $&'('ܤ4$2b$ٽ7}94^4Z2b4̘2b2b9%Sc4Z2b94̘2b94̘ӽ2b9<'RETURN' or Command>4 'Am'-$&'#('a'$' 佞a'2b9a '佞a'2b9?&'2b9ܤ2b 'ܤ4H2b$ݲݴ̽&P4' ' '2b 05ƽ&~c&'' '' \# ~&::섽9o⽗$444ܲܲ/ݬܲ$$''ܼI (&ܾ42b_944&l 9#'/'\'@'&la laa'O4d4̐W2d佟2d9 prINTprINTpUTpUTcHANGE/\dELETEgETiNPUTeCHOmOVEuPPERlOWER#runexitsetUPmonITORtaLKb' 9o⽟"''' 佟㽟' & mb&oƽ_' b''&2c9h4h4̖dW2b2b'h'0.&hh9diskhosth4h4̖dW2b2b'4h_' .'\0 O4# ~4f4hK2d5bo o94(& ')&5h4h4̱$W2b2'f怯fja'oa& bh'&& m'&&'4'5't&X怯f'b'& 1?b 5m&bm' h4h4f2d&bm'0b 2d9`&' b&b Ja2d9o➦4oܦ4ܨ4d2db&5m4&b2c9}P&"P}d4Z2b佰}'ܤ4H2b}ݭ٩O2b9 ׻׺`^cF4Z2b̙Y~$/ݬ$ݶܬݪ42b94.,5$&9ܬ4c4*b-` Zb//b44fg2d44b2b2b ''-4$ݬ&~ܴ4$42d&mf'_'_$ݬfܴ4n5&I44ܤH2bdԽbb& $ݬ὞ݴ$($#_ bfݬ$b2g9o/'\' %m'' &00 m'j9 ~xrlf`ZTdiRECTORYcaTALOGnAMEdefAULTscrATCHrENAMEmouNTcoPYdaTEtiMEtabSEThELPexECUTEfREE@tYPEprINTSaves textAlters textSearches for matchSearches for no matchPurge textLoad textAutomatic text entryDuplicate textTransfer textMake upper c "jneXXXXX" FCS "jhiXXXXX" FCS "jloXXXXX" FCS "set2XXXX" FCS "set1XXXX" FCS "sne1XXXX" FCS "seq1XXXX" FCS "sne2XXXX" FCS "seq2XXXX" FCS "doneXXXX" Errors 0 $0036 ; Length Import PREFIX 50(both) Export WHAT=$0000 Object fc0122c380001f014fe682c1642604c644e784c14026048606201bc13d260486042013c144270ac1 252706c12427022005f70000860239 0028 Export ROWUP=$0027 Export ENTRYERR=$0026 Export CUR_DIG=$0018 ExpErrors 0 $0144 ; Length Import PRINTF_ Import TPUTCURS_ Import TGETCURS_ Import CN2BIN 321(both) Import CN2HEX 316(both) Import CN2DEC 307(both) Import BIN2CN 296(both) Import DEC2CN 291(both) Import HEX2CN 282(both) Import LINEBUF 244(both),235(both)y000e6e0e7a026fa39e684c12426 05bd0000200cc1442605bd00002003bd000039f60000c1442605bd0000200cc1242605bd00002003 bd0000393a 007e01124f 3402860ab701441f12e6a2c1442715c1242739c12527687a014426067c00007e010820e58605b701 44e682c14427123404bd000026067c00007e01087aErrors 0 $0024 ; Length Import TOTAL 10(both) Import LINEBUF 6(both) Import COUNTIT 30(both),19(both),3(both) Export SPREAD=$0000 Object 8604b700008e0000108e0000e6802712e7a07a00002609c620e7a08604b7000020ea6fa439 44e682c14427123404bd000026067c00007e01087as FCS "pushXXXX" FCS "pullXXXX" FCS "inyXXXXX" FCS "deyXXXXX" null__ FDB 0 FCS "callXXXX" FCS "fcsXXXXX" FCS "ceqXXXXX" FCS "cneXXXXX" FCS "jeqXXXXX" FCS  Errors 0 $004b ; Length Import ITOHS_ 71(both) Export CN2HEX=$003e Import DECIMAL_ 42(both) Import LENGTH_ 7(both) Import TOTAL 68(both),63(both),57(both),39(both),33(both),16(both), 4(both) Import ENTRYERR 54(both),47(both),30(both),23(both),1(both) Exp ,210(both) Import ISDIGIT_ 130(both) Export CHECKIT=$004f Import ROW_COL 61(both) Import MOVEIT 58(both) Import SPREAD 55(both) Import PREFIX 300(both),48(both) Export CN2STR=$012b Export STR2CN=$0113 Import TOTAL 266(both),40(both),24(both) Import PRINT Errors 0 $003a ; Length Import PRINTF_ Import CNVF2S_ 40(both) Import FADD2_ 34(both) Import CNVIF_ 23(both) Import COUNTIT 26(both),20(both),12(both) Export CN2DEC=$000b Import HSTOB_ 6(both) Import TOTAL 43(both),37(both),15(both),1(both) Export HEX2CErrors 0 $0054 ; Length Import LINEBUF 76(both) Export CN2BIN=$001e Import TOTAL 70(both),67(both),64(both),59(both),35(both),27(both), 1(both) Export BIN2CN=$0000 Reloc 0,73(both) Object 8e0000868034025fa680270b8030442402eae464e420f132614ffd0000394f3402Errors 0 $0109 ; Length Import ROW_COL Import PUTNL_ Import PRINTF_ Import TGETCURS_ Import TPUTCURS_ Import FDIV_ 264(both) Import FMUL_ 262(both) Import FSUB_ 260(both) Import FADD_ 258(both) Import CNVF2S_ 254(both) Import FLOAD2_ 215(both) Imporort DEC2CN=$0000 Reloc 0,36(both) Object 7f0000cc0000bd00003406c1052617f60000c13626057c0000200b2f097c00007f00007e003bcc00 00bd00002b077d0000260820037f0000fd0000326239fc00003406cc0000bd0000326239 convert.b09spread1.b09ERR 37(both),21(both) Import ROWUP 10(both) Export COUNTIT=$0144 Import ENTRIES 64(both),4(both) Import ENTRYERR 262(both),251(both),200(both),184(both),151(both),135(both), 109(both),74(both),32(both),16(both),1(both) Export CONVERT=$0000 Reloc 0,203(boN=$0000 Reloc 0,31(both) Object cc00003406bd00003262397f0000fc00002a037c0000bd00007d00002706cc0036bd0000cc0000bd 00008e0000e680c12e26fa6f1f394880000000 00fd0000326239fc00003406cc0000bd0000326239 convert.b09spread1.b09l108e00018630c6 318e000864a42404340420023402301f26f27d0000270cf60000f700017f00007e00278e00003504 e78026fa39 000bd 00008e0000e680c12e26fa6f1f394880000000 00fd0000326239fc00003406cc0000bd0000326239 convert.b09spread1.b09t FSTORE_ 155(both) Import CUR_DIG 212(both),152(both) Import CNVS2F_ 207(both),149(both) Export OPERATOR=$0101 Import ISDIGIT_ 186(both),123(both) Import MOVEIT 82(both) Import SPREAD 79(both) Import TOTAL 251(both),62(both) Import PRINTERR 59(both) Imp2729c12b2725c12f2721c12d271dc1202e067c00007e0100c12e 270bbd000026067c00007e0100e68220d3f70101300134101f103420bd0000cc0000bd0000326235 10e6831f123121c1202e067c00007e0100c1202f13c12e270bbd000026067c00007e0100e68220e9 30011f103420bd00003262cc0000bd0000b6010th),0,192(both),0,187(both),0,177(both),0,168(both),0,159(both), 0,154(both),0,146(both),0,141(both),0,138(both),0,119(both),0,112(both), 0,104(both),0,85(both),0,77(both),0,45(both),0,29(both),0,13(both), 0,7(both) Object 7f00007f00007f01447f0000bd00437Errors 0 $022f ; Length Export MOVEIT=$0136 Import ITOHS_ 277(both) Import LINEBUF 286(both),274(both) Import ROW_COL 297(both),250(both) Import PRINTF_ 294(both),247(both) Import TPUTCURS_ 300(both),283(both),253(both),242(both) Import CN2STR 235(both) c 0,291(both),0,224(both),0,210(both),0,205(both),0,181(both),0,162(both), 0,152(both),0,147(both),0,119(both),0,114(both),0,105(both),0,95(both), 0,90(both),0,63(both),0,12(both) Object bd00007d000027067f00007e00ede684f700003410bd00003510e682f7000034108ort DOINT 51(both) Import PREFIX 72(both),67(both),10(both) Import ENTRIES 85(both),7(both) Import ROWUP 4(both) Import ENTRYERR 191(both),172(both),128(both),113(both),54(both),1(both) Export RITHMETIC=$0000 Reloc 0,246(both),0,218(both),0,194(both),0,1`1812b26035f2012812d2604c602200a812a2604c6 042002c6068e0102ad95cc0000bd000039000000000000000000 28613c12e2711c124270dc1252709c1442705e6824a26eb1f 21c12e2605bd00582003bd00007d00002708bd00007f000020157d0000270df60000c1252603bd00 00bd00007c0000391f12e682c12ad00002708bd00007f00002026bd01137d00002708bd00007f 00002016bd012bf60000c1252603bd0000bd00007a00017c000039e682c13d27067c00007e01124f 3402860ab701441f12e6a2c1442715c1242739c12527687a014426067c00007e010820e58605b701 44e682c14427123404bd000026067c00007e01087aImport ___DIV 229(both) Import ___MUL 134(both) Export NOGOOD=$00ee Import CUR_DIG 260(both),186(both),131(both),80(both),40(both) Import OPERATOR 73(both),29(both) Import STR2CN 68(both),22(both) Import PREFIX 311(both),221(both),17(both) Import TOTAL 36028e0000108e 0000e680e7a04a26f93510bd00007d000027067f00007e00ed3410bd00003510b60000812b261cfc 0000f30000240e3406cc01473406bd00ee32623506fd00007e00ea812d260a3410bd010035107e00 ea812a2627fc00003406fc0000bd000025062b042702200e3406cc01bd3406bd00ee32623506fd75(both),0,138(both),0,131(both), 0,116(both),0,46(both) Object 7f00007f00007f00007f00001f12e6828613c12e2711c124270dc1252709c1442705e6824a26eb1f 21c12e2605bd00582003bd00007d00002708bd00007f000020157d0000270df60000c1252603bd00 00bd00007c0000391f12e682c12a00 007e00ea812f2642fc000027042b0220067c00007e00c73406fc000027042b0220057c000032627d 00002718cc017b3406bd00ee32627f00007f00007f00007e00ed2006bd0000fd0000bd000039cc19 01bd0000ec62bd0000fc0000bd000039fc0000b30000340624264353c300013406cc0000bd0000cc 1901bd00014420e87d01442c037c00007e01088604b701 44e682c12426167d01442f09c63034047a01442ef92c037c00007e010834047a0144bdba2d26067c 00007e010820d286087f0000e682c1252728c13026043404201dc1312604340420157d0000260bc1 2026077c000020dc20057c000020094a20d24d27037c0000108e014(both),307(both),257(both),232(both),218(both),169(both), 159(both),126(both),102(both),83(both),60(both),36(both), 9(both) Import ENTRYERR 215(both),200(both),195(both),178(both),55(both),4(both) Import CHECKIT 52(both),1(both) Export DOINT=$0000 ReloFCS "dsctXXXX" FCS "elseXXXX" FCS "endXXXXX" FCS "endcXXXX" FCS "endguess" FCS "endifXXX" FCS "endloopX" FCS "endmXXXX" FCS "equXXXXX" FCS "failXXXX" ,y LDD 8,s IF NE DECB LDA #9 MUL ADDD ,s ELSE LDD #null__ ENDIF LEAS 2,s PULS x,y,pc ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\NDIF PULS b SEX PULS x,y,pc ;conditions. code6809 FCS "csXXXXXX" FCS "ccXXXXXX" FCS "eqXXXXXX" FCS "neXXXXXX" FCS "miXXXXXX" FCS "ltXXXXXX" FCS "plXXXXXX"  FCS "cmpaXXXX" FCS "cmpbXXXX" FCS "cmpdXXXX" FCS "cmpsXXXX" FCS "cmpuXXXX" FCS "cmpxXXXX" FCS "cmpyXXXX" FCS "comXXXXX" FCS "comaXXXX" FCS "combXXXX"  " FCS "mulXXXXX" FCS "negXXXXX" FCS "negaXXXX" FCS "negbXXXX" FCS "nopXXXXX" FCS "oraXXXXX" FCS "orbXXXXX" FCS "orccXXXX" FCS "pshsXXXX" FCS "ps FCS "fcbXXXXX" FCS "fccXXXXX" FCS "fdbXXXXX" FCS "guessXXX" FCS "ifXXXXXX" FCS "ifcXXXXX" FCS "ifeqXXXX" FCS "ifgeXXXX" FCS "ifgtXXXX" FCS "ifltXXX \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :lookup a match string in a table. ;parameters:table ~ source string ~ length of string. ;returns :# of match in table (1 .. n). ;destroys :none keeps: tablelook PSHS x,y CLR  FCS "gtXXXXXX" FCS "geXXXXXX" FCS "hiXXXXXX" FCS "hsXXXXXX" FCS "leXXXXXX" FCS "lsXXXXXX" FCS "loXXXXXX" FCS "vcXXXXXX" FCS "vsXXXXXX" ;6809 opcodes.  FCS "cwaiXXXX" FCS "daaXXXXX" FCS "decXXXXX" FCS "decaXXXX" FCS "decbXXXX" FCS "eoraXXXX" FCS "eorbXXXX" FCS "exgXXXXX" FCS "incXXXXX" FCS "incaXXhuXXXX" FCS "pulsXXXX" FCS "puluXXXX" FCS "rolXXXXX" FCS "rolaXXXX" FCS "rolbXXXX" FCS "rorXXXXX" FCS "roraXXXX" FCS "rorbXXXX" FCS "rtiXXXXX" FCSX" FCS "ifncXXXX" FCS "ifneXXXX" FCS "insXXXXX" FCS "inxXXXXX" FCS "loopXXXX" FCS "lsldXXXX" FCS "lsrdXXXX" FCS "macrXXXX" FCS "namXXXXX" FCS "o,-s TFR d,x ;table. TST 10,s IF NE LOOP LDY 7,s ;source. LDA 10,s ;size. INC ,s LOOP LDB ,y+ PSHS  FCS "abxXXXXX" FCS "adcaXXXX" FCS "adcbXXXX" FCS "addaXXXX" FCS "addbXXXX" FCS "adddXXXX" FCS "andaXXXX" FCS "andbXXXX" FCS "andccXXX" FCS "aslXXXXX" XX" FCS "incbXXXX" FCS "jmpXXXXX" FCS "jsrXXXXX" FCS "lbccXXXX" FCS "lbcsXXXX" FCS "lbeqXXXX" FCS "lbgeXXXX" FCS "lbgtXXXX" FCS "lbhiXXXX" FCS " "rtsXXXXX" FCS "sbcaXXXX" FCS "sbcbXXXX" FCS "sexXXXXX" FCS "staXXXXX" FCS "stbXXXXX" FCS "stdXXXXX" FCS "stsXXXXX" FCS "stuXXXXX" FCS "stxXXXXX" ptXXXXX" FCS "oraaXXXX" FCS "orabXXXX" FCS "orgXXXXX" FCS "pageXXXX" FCS "psctXXXX" FCS "quifXXXX" FCS "rmbXXXXX" FCS "secXXXXX" FCS "seiXXXXX" FC a,x,y CLRA CALL lower_ PULS a,x,y CMPB ,x QUIF NE LDB #"X" CMPB ,x QUIF EQ INX  FCS "aslaXXXX" FCS "aslbXXXX" FCS "asrXXXXX" FCS "asraXXXX" FCS "asrbXXXX" FCS "bccXXXXX" FCS "bcsXXXXX" FCS "beqXXXXX" FCS "bgeXXXXX" FCS "bgtXlbhsXXXX" FCS "lbleXXXX" FCS "lbloXXXX" FCS "lblsXXXX" FCS "lbltXXXX" FCS "lbmiXXXX" FCS "lbneXXXX" FCS "lbplXXXX" FCS "lbraXXXX" FCS "lbrnXXXX" F FCS "styXXXXX" FCS "subaXXXX" FCS "subbXXXX" FCS "subdXXXX" FCS "swiXXXXX" FCS "swi2XXXX" FCS "swi3XXXX" FCS "syncXXXX" FCS "tfrXXXXX" FCS "tstXXXXX" S "setXXXXX" FCS "sevXXXXX" FCS "staaXXXX" FCS "stabXXXX" FCS "tabXXXXX" FCS "tapXXXXX" FCS "tbaXXXXX" FCS "tpaXXXXX" FCS "tsxXXXXX" FCS "txsXXXXX"  DECA UNTIL EQ TSTA QUIF EQ TST ,x IF NE LOOP TST ,x+ UNTIL EQ ENDIF TST ,x XXXX" FCS "bhiXXXXX" FCS "bhsXXXXX" FCS "bitaXXXX" FCS "bitbXXXX" FCS "bleXXXXX" FCS "bloXXXXX" FCS "blsXXXXX" FCS "bltXXXXX" FCS "bmiXXXXX" FCS CS "lbsrXXXX" FCS "lbvcXXXX" FCS "lbvsXXXX" FCS "ldaXXXXX" FCS "ldbXXXXX" FCS "lddXXXXX" FCS "ldsXXXXX" FCS "lduXXXXX" FCS "ldxXXXXX" FCS "ldyXXXXX"  FCS "tstaXXXX" FCS "tstbXXXX" ;other opcodes and pseudo mnemonics. FCS "asldXXXX" FCS "admitXXX" FCS "clvXXXXX" FCS "cpxXXXXX" FCS "desXXXXX" FCS "dexXXXXX"  FCS "ttlXXXXX" FCS "untilXXX" FCS "xdefXXXX" FCS "xrefXXXX" ;registers. FCS "callXXXX" FCS "fcsXXXXX" FCS "ceqXXXXX" FCS "cneXXXXX" FCS "jeqXXXXX" FCS  UNTIL EQ ENDIF TSTA IF NE CLR ,s ELSE LDB ,x GUESS QUIF EQ CMPB #"X" QUIF EQ CLR ,s ENDGUESS E "bneXXXXX" FCS "bplXXXXX" FCS "braXXXXX" FCS "brnXXXXX" FCS "bsrXXXXX" FCS "bvcXXXXX" FCS "bvsXXXXX" FCS "clrXXXXX" FCS "clraXXXX" FCS "clrbXXXX"  FCS "leasXXXX" FCS "leauXXXX" FCS "leaxXXXX" FCS "leayXXXX" FCS "lslXXXXX" FCS "lslaXXXX" FCS "lslbXXXX" FCS "lsrXXXXX" FCS "lsraXXXX" FCS "lsrbXXXXd of text ADDD 8,s STD 2,s ;new end of text SUBD max_memory IF LS LDD ,s SUBD 4,s PSHS d ;length of upper block. LDD 6,s ADDD 10,s  keeps: cruncher PSHS x,y STD filename_ TFR d,x SET2 (,--s),#0 LOOP CLRA LDB ,x+ PSHS x CALL isdelim_ PULS x QUIF NE non-ascii chars. STB ,x GUESS CMPB #$22 ;" QUIF EQ CMPB #$3b ;; QUIF EQ ADMIT ;don't crunch in quotes. LEAY a,y PSHS Y ;end text start CALL copystr_,(2,s),(2,s) ;close up freed area. LEAS 2,s LBRA looper ;purge trailing spaces. loopend LDX #input_buffer CLRB LOOP INCB  A ,y+ DECB UNTIL EQ ADMIT CMPB #$ff QUIF NE ;tokenized word. CLRA LDB ,x+ DEC ,s PSHS d  PSHS d ;destination. CALL copy_,(8,s) ;open up space. LEAS 4,s LDD txtend ADDD 8,s STD txtend LDD range_end ADDD 8,s STD range_end  LDD ,s ADDD #1 STD ,s ENDLOOP GUESS LDD ,s ADDD filename_ TFR d,x LDB ,x QUIF EQ CMPB #" " QUIF EQ CLR COM 3,s ENDGUESS TST 3,s IF EQ LDB -1,x GUESS CMPB #" " QUIF NE TFR x,d CALL cr TST ,x+ UNTIL EQ STB 3,s INCB CLRA PSHS d CALL openp_bytesp1,txtcur ;open up space. LEAS 2,s IF EQ ;there is memeory. LDX txtcur  CALL _lookup,#code6809 ;find pointer to word. STX ,s TFR d,x LOOP ;move word to buffer. CLRA LDB ,x+ QUIF EQ  CLRB SEX ;ok flag ENDIF DONE 6 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :closes up space in text. ;parameters:start of close-up space ~ number of bytes to removB ADMIT CALL tablelook,#code6809,filename_,(,s) IF NE ;a code to crunch. PSHS b LDX filename_ LEAX 2,x PSHS x ;rest destiuncher QUIF EQ LEAX 2,x ENDGUESS ENDIF CLRA LDB ,x QUIF EQ ;found end byte. CMPB #" " IF LO  LDB 3,s INCB STB ,x+ PSHS x CALL copystr_,#input_buffer LEAS 2,s LDX txtcur LDB 3,s ABX STB ,x CALL set_eof_li CMPB #"X" QUIF EQ PSHS x,y CALL upper_ PULS x,y STB ,y+ ENDLOOP PULS x ADMIT STB ,y+ ENe. ;returns :none ;destroys :x keeps: closep_bytesp1 PSHS d LDX txtend LDB ,x ABX PSHS x ;very very eot. LDD 2,s ADDD 6,s PSHS d ;begin of top text. nation. LDD filename_ ADDD 3,s CALL copystr_ ;close up space. LEAS 2,s LDX filename_ PULS b LDA #$ff STA ,x+  ;turn illegal values into spaces. LDB #" " STB ,x ENDIF STB 2,s TFR x,y CLRA LOOP INCA CMPB ,xne LDD #0 ENDIF DONE 4 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :uncrunches line from one location and makes it a string in another. ;parameters:source of line ~ destinaDGUESS ENDLOOP CLR ,y ;end string in nul. DONE 1 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :open up a space in the text. ;parameters:place to make room ~ number o LDD 2,s SUBD 4,s PSHS d ;length CALL copy_,(4,s),(6,s) LEAS 2,s LDD txtend SUBD 8,s STD txtend LDD range_end SUBD 8,s STD range_end  STB ,x ;and put into text. LDB #$ff ELSE CLRB ENDIF ENDGUESS LEAS 2,s SEX PULS x,y,pc ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\+ UNTIL NE DECA DEX TST 3,s IF NE CLRA ENDIF CMPA #2 UNTIL HI TSTA LBEQ loopend ;ftion for line. ;returns :none ;destroys :x, y keeps: _fetchtext TFR d,x LDB ,x+ DECB PSHS b ;length+1 of line to disassemble. LDY 3,s ; 0 1 3 ;.length,rts,to f bytes to stuff. ;returns :true/false; is memory too full? ;destroys :x keeps: openp_bytesp1 PSHS d LEAS -4,s LDD txtend TFR d,x ADDB ,x ADCA #0 STD ,s ;very very en CALL set_eof_line DONE 6 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :converts a 6809 opcode into token. ;parameters:position to check. ;returns :true if crunched a word. ;destroys :none \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :looks up a word according to its position in a table. ;parameters:table of words ~ number of word (1 .. n). ;returns :pointer to found word. ;destroys :none keeps: _lookup PSHS d,xound chars to be crunched. CMPA #31 IF HI LDA #31 ENDIF STA ,y+ ;put #. STB ,y+ ;put char. STY ,s ;continuation area. SUBA #2  LOOP DEC ,s QUIF EQ ;done with translation. LDB ,x+ GUESS CMPB #" " QUIF HS LDA ,x+ DEC ,s LOOP ST;futil XDEF openup_4p,closeup,checkoutfname XREF errorouter,suicide_ XREF _message,_syntaxchk XREF copy_,copystr_,skip_prefix_ XREF suffixst_,prefixst_ XREF openf_,closef_,disk__ XREF remember it. ;parameters:not remember filename? ~ put whole name here. ;returns :pointer to filename. ;destroys :x keeps: GUESS checkoutfname PSHS d ;rename flag. LDD 4,s PSHS d jname. other LEAS 2,s ENDGUESS LDD 4,s PULS x,pc t_dot FCS "." CMPB #4 ;host BNE other ;it must be some other device. ENDGUESS CALL stripdisk,(,s) LDB #-1 ADMIT ec_echo CLRB ENDGUESS PSHS b CALL fix_range ;don't allow backward ranges. CALL _chrgot SET2 (,--s),txtcur ;destination line default. LDB chrgotchar IF ssage,#20 ;illegal destination line. ENDGUESS ;make room. LDD range_end SUBD range_start PSHS d CALL openp_bytesp1,(2,s) CNE _bmessage,#21 ;insufficient memory. ;adjust for th scanfname,stripdisk XREF tableloo_,skp_alpha XREF devname ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :opens a file and handles errors. ;para CALL scanfname CALL copystr_ ;move name to working area. LEAS 2,s TST [4,s] QUIF NE ;was there a name to work with? ;nothing was named. CALL copystr_,name_buf,(4,s ; dmemory XDEF _inserttext,_fetchtext,openp_bytesp1,closep_bytesp1 XREF _offsetall,set_eof_line XREF length_,copystr_,copy_ XREF skp_alpha,tableloo_,upper_ XREF lower_,isdelim_ ;include ;inclu NE CMPB #"." IF NE CALL fetch_line JEQ suicide_ ELSE CALL _chrget ENDIF LDD txtcur PULS x PSHS d STX e hole. LDD range_start CMPD 2,s IF HS ADDD ,s STD range_start ENDIF LDD txtcur CMPD 2,s IF HI ADDD ,s STD txtcur ENDIF ;fmeters:file mode ~ true/false flag to rename file? ;returns :true(i/ob)/false; was the open successful? ;destroys : keeps: openup_4p PSHS d SET2 temp_counter,#0 CLR error_flag CALL checkoutfname,(6,s)) CALL prefixst_,def_buf,(4,s) ADMIT ;something was named. CALL stripdisk,(4,s) TFR d,x TST ,x QUIF NE ;was more than a device named? ;just devicede ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :inserts text in input_buffer into next line of memory. ;parameters:none ;returns :true/false if there isn't enough memory. ;destroys :x, y txtcur ENDIF ;check syntax and parse values. CALL _chrgot CALL _syntaxchk LDD ,s CMPD txtend IF NE ;destination is actually past the specified line. ADDB [,s] ill hole. CALL copy_,range_start,(4,s),(,s) TST 4,s IF NE GUESS LDD txtcur SUBD range_start QUIF LT CMPD ,s QUIF HI SET2 ,alternate_buf PSHS d CALL _syntaxchk GUESS TST [,s] QUIF EQ CALL openf_,(2,s),(2,s) STD ,--s CALL errorouter,(2,s),(2,s) LDD ,s++ QUIF E named. CALL suffixst_,#t_dot,(4,s) CALL suffixst_,name_buf,(4,s) ADMIT ;name specified and or weird device. CALL skip_prefix_,(4,s) PSHS d GUESS CALL de keeps: _inserttext CALL _offsetall,#1 SET2 old_txtcur,txtcur SET2 old_cur_line,cur_line ; compile line and copy into memory returning true if memory full. SET2 (,--s),#0 SET1 input_buffer-1,#" "  ADCA #0 STD ,s ENDIF LDD range_start CMPD txtbeg IF EQ ;range must not start at bof line. ADDB [range_start] ADCA #0 STD range_start ENDIFtxtcur,range_start ENDIF ;delete source text. CALL closep_bytesp1,range_start LDD txtcur CMPD range_start IF HI SUBD ,s ENDIF ELSE Q ADMIT JMP suicide_ ENDGUESS DONE 4 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :close file and say 'lines transfered'. ;parameters:file i/o block ;returns :nonvname QUIF EQ ;is it just a name? CMPB #1 ;disk QUIF EQ CMPB #4 ;host BNE other ;it must be some other device. ENDGUESS CALL stripdisk,(,s) CLR input_buffer+120 LDX #input_buffer PSHS x LOOP TST ,x+ UNTIL EQ DEX LDB #" " LOOP ;purge trailing spaces. CMPB ,-x QUIF NE  LDD range_end CMPD txtend IF NE ;adjust to past the last line. ADDB [range_end] ADCA #0 STD range_end ENDIF CMPD range_start IF LS LDD txtcur ENDIF STD txtcur CALL _numberofp STD cur_line CALL set_eof_line CALL _printscreen DONE 5 QUIF LT CMPD ,s QUIF HI SET2 e ;destroys : keeps: .p1 closeup CALL closef_ CALL _message,#11,alternate_buf,temp_counter RTS ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :parse filename and maybe CMPD ,s CEQ prefixst_,def_buf ;insert a device. LEAS 2,s CALL stripdisk,(4,s) PSHS d LDD 2,s CEQ copystr_,(2,s),name_buf ;remember the file CLR ,x ENDLOOP looper EQU * ;.textpntr,char,00,rts TST [,s] LBEQ loopend LDX ,s LOOP STX ,s LDB ,x ANDB #%01111111 ;no DONE 3 ;a null range, but that's ok. ENDIF GUESS LDD ,s CMPD range_start QUIF LE CMPD range_end QUIF GE ;it can't move into itself. CALL _bme; DEFAULT XDEF EC_DEFAULT XREF EC_NAME,_BMESSAGE,STRIPDISK XREF CHECKOUTFNAME,_SYNTAXCHK XREF DEF_DEVICE,SUFFIXST_ ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\BSR printer LDX curpos_ LEAX 40,x ;to start on the 40th column. LEAX screen_,x LDY 8,s BSR printer LDX curpos_ LEAX screen_,x LDB ,x EORB #%10000000 ;makch string. ;RETURNS :Is this a legal match. ;DESTROYS :none KEEPS: matchit PSHS x,y TFR d,x LDY 6,s SET1 (,-s),#$ff TST ,y IF NE LOOP ;main matcher loop. ;_# XREF _SYNTAXCHK XREF _MESSAGE XREF _NUMBEROFP XDEF EC_NUMBER ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :return with ;S XDEF EC_SETUP XREF _SYNTAXCHK XREF _SCREENSTART XREF SETUP_,SUICIDE_ ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :SETU \\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :DEFINE DEFAULT DEVICE. ;RETURNS :NO-REPEAT FLAG. EC_DEFAULT TST CHRGOTCHAR JEQ EC_NAME CALL CHECKOUTFNAME,#-1,ALTERNATE_BUF CALL _SYNTAXCHK CALL STRIPDISK,ALTERNATE_BUF  e cursor. STB ,x CALL putnl_ LDD ,s IF NE ;yes there is an output file. CALL fprintf_,(6,s),(8,s),(8,s),(8,s) CALL errorouter,(2,s),#input_buffer+80 ENDIF DO LDB ,y+ IF EQ LDA ,x CMPA #'" ENDIF QUIF EQ GUESS CMPB #"?" QUIF NE quest LDB ,x  number of cursor line. ;PARAMETERS:none ;RETURNS :REPEATABLE FLAG. ;DESTROYS : KEEPS: EC_NUMBER CALL _SYNTAXCHK CALL _NUMBEROFP,TXTCUR PSHS D CALL _MESSAGE,#12 ;PRINT NUMBER. LDD #0 P ACIA CHIP. ;RETURNS :NO-REPEAT FLAG. EC_SETUP CALL _SYNTAXCHK CALL SETUP_,#1 SET1 SERVICE_,#1 CALL _SCREENSTART JMP SUICIDE_ _#.asm CMPD ALTERNATE_BUF JEQ _BMESSAGE,#9 ;NOT A LEGAL DEFAULT DEVICE. CALL DEF_DEVICE,ALTERNATE_BUF,DEF_BUF CALL SUFFIXST_,#DOT__,DEF_BUF JMP EC_NAME DOT__ FCS "." \\\\\\\\\\\\\\\\\\\\\\\\\\NE 2 printer LOOP LDB ,y+ QUIF EQ STB ,x+ ENDLOOP RTS ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :compare one entry with another. ;parameters:ent ADMIT CMPB #"*" QUIF NE TST ,y BEQ thru ;is "*" at end of match string? LOOP PSHS y TFR x,d DONE 2 XREF _SYNTAXCHK XREF _MESSAGE XREF _NUMBEROFP XDEF EC_NUMBER ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :return with;_d XDEF ec_delete XREF _printscreen XREF _deleteptop1 XREF _numberofp,copystr_ XREF _syntaxchk,fix_range ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\?name_buf JMP _printscreen def_name fcs "text:e" ;returns :repeatable flag. ec_delete CALL _syntaxchk CALL fix_range SET2 txtcur,range_start CALL _numberofp STD cur_line CALL _numberofpry 1 ~ entry 2 ;returns :true if entry 2 comes before entry 1. ;destroys :y keeps: parm1 compare PSHS x TFR d,x LEAX 6,x ;proper start. LDY 4,s LEAY 6,y ;proper start. CLR ,- CALL matchit ;recursive matching attempt. LEAS 2,s BNE thru LDB ,x+ CMPB #'" BEQ bad ;no match? ENDLOO;F XDEF EC_FREE XREF _SYNTAXCHK XREF _MESSAGE XREF SUICIDE_ ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :DISPLAYS FREE ME\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :deletes a line range. ;returns :repeatable flag. ec_delete CALL _syntaxchk CALL fix_range SET2 txtcur,range_start CALL _numberofp STD cur_line CALL _numberofp;NUL XREF _DOCHAR XDEF EC_NULL ;include ;NULL LINE EC_NULL CALL _DOCHAR,#13 LDD #0 RTS s LOOP LDB ,x CMPB #'" QUIF EQ LDB ,y+ CMPB #'" BEQ truer CMPB ,x+ BLO truer UNTIL HI GUESS ADMIT truer DEC ,s P ENDGUESS CMPB ,x+ IF NE bad CLR ,s BRA thru ENDIF ENDLOOP ENDIF thru PULS b SEX PULS x,y,pc middle1 FCS MORY. ;RETURNS :NO-REPEAT FLAG. EC_FREE CALL _SYNTAXCHK LDD MAX_MEMORY SUBD TXTEND SUBD #2 PSHS D CALL _MESSAGE,#18 ;BYTES FREE. JMP SUICIDE_ D cur_line CALL _numberofp,range_end SUBD cur_line ADDD #1 STD multi_copy CALL _deleteptop1,range_start,range_end Seq2 multi_copy,#0 ldd txtbeg addd #2 cmpd txtend ceq copystr_,#def_name,;em XDEF ec_move,ec_echo XREF _chrgot,fetch_line,_numberofp XREF _printscreen,_syntaxchk,_chrget XREF openp_bytesp1,closep_bytesp1 XREF set_eof_line,_bmessage XREF copy_,suicide_,fix_range ;i ENDGUESS LDB ,s+ SEX PULS x,pc ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :checks to see if a directory entry matches. ;PARAMETERS:pointer to entry ~ location of mat^ "%s%n%s%n" middle2 FCC "%s " t_strnl FCC "%s%n" t_null FCB 00 BNE thru LDB ,x+ CMPB #'" BEQ bad ;no match? ENDLOOnclude ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :duplicate or move memory from one position to another. ;returns :repeatable flag if no error. GUESS ec_move r CLR [prevsrchstr_buf] CALL eof_,(2,s) LBNE nope ;more to display. ; prev,alt,inp - 1,2,3 CLR [prevsrchstr_buf] yup CLR [alternate_buf] CLR input_buffer TSpauser,#0 ADMIT alldone LEAS 4,s ENDGUESS alldone1 CALL closef_,(2,s) LDD ,s CNE closef_ CALL _printscreen JMP suicide_ tester LDY #input_buffer LDX prevsrchstr_buf test  ;= 0 if no room. ; .buffer,ti/o,fi/o,flag,namepoint,..name..,rts ; first entry is disk header and should be seperated. CALL dreadf_,(6,s),prevsrchstr_buf LDX ,s LBEQ dirdisp ;nothing to sort. ; read bulk of dir STD 2,s ENDGUESS SET2 ([,s]),#0 LDD max_memory SUBD 2,s CMPD #35 ;there must be at least 35 more bytes to continue. UNTIL LO ; sort the directory. ungh!!! ;.b CALL openf_,#input_buffer+80,#write__ STD 2,s CALL errorouter,(4,s),#input_buffer+80 ENDif SET1 temp_counter,#txtbottom-1 ;setup for screen size. CALL zndclr_ ;clear screen.  T [prevsrchstr_buf] IF EQ CALL dreadf_,(4,s),prevsrchstr_buf ENDIF CALL dreadf_,(4,s),#input_buffer IF NE CALL copystr_,prevsrchstr_buf,alternate_buf CLR  TSTA IF NE ;single column directorys. LDD #middle1 ELSE ;dual column directorys. LDD #middle2 ENDIF RTS ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ectory into free memory. PSHS x CLR ,-x ;safety margin in case of empty directory. LDX txtend LEAX 4,x PSHS x ;counter to directory pointers. ; 0 2 4 6 8 10 11  ubbleflag,pointer,partflag,ti/o,fi/o,flag,namepoint,..name..,rts TST 10,s IF EQ ;only sort if "CATALOG". LOOP CLR ,s ;bubble sort flag. LDX curpos_ SET1 (sc CALL put_entries,(8,s),#t_strnl,prevsrchstr_buf,#t_null GUESS LDD ,s QUIF EQ ;in theory there are no files. LDX txtend LEAX 4,x LDD ,x QUIF EQ ;in actuali[prevsrchstr_buf] LDB #$ff ENDIF BNE nope CALL dreadf_,(4,s),alternate_buf IF NE CALL copystr_,#input_buffer,alternate_buf CLR input_buffer L\\\\\\\\\\\\\\\\\\\\\\ ;performs :pause if at end of screen. ;parameters:true/false ; is it ok to pause? ;returns :first character of inputed line (if any). ;destroys : keeps: GUESS pauser TSTB QUIF EQ  13 ; .pointer,buffer,partflag,ti/o,fi/o,flag,namepoint,..name..,rts LOOP SET2 ([,s]),#0 ;starts out empty of entries. CALL dreadf_,(10,s),(2,s) IF NE CALL copystr_,(4,s),alternate_buf reen_,x),#"." ;signal that something is going on. INX STX curpos_ LDX txtend LEAX 4,x LDD ,x QUIF EQ ;just in case of no files. LOOP ty there are no files. PSHS x LOOP LDX ,s PUSH (,x++) ;first filename. LDD ,x++ IF EQ LDD #t_null LEAX -2,x EDB #$ff ENDIF BNE nope CALL tester,(4,s) PSHS d,x,y CALL put_entries,(6,s) LEAS 6,s BNE nope ;bad output. CALL pauser,#-1 BNE alldone1  CLRA ;no command can be entered if no pause. CLRB DEC temp_counter ;screen fill counter. QUIF NE CALL _pause PSHS d SET1 temp_counter,#txtbottom ;last entry seperate. LDB #$ff ENDIF QUIF NE GUESS LDX 2,s ;directory will not match if there LOOP ; isn't a " in it someplace.  LDD 2,x QUIF EQ ;just in case if only one file. PSHS d CALL compare,(,x) ;is "next" < "this"? PULS d IF NE ;swap NDIF PSHS d ;second name. STX 4,s PUSH (2,s) CALL test,(14,s) PSHS d CALL put_entries,(12,s) LEAS 8,s QUIF NE ;out CALL copystr_,alternate_buf,prevsrchstr_buf LBRA yup GUESS nope LDB [prevsrchstr_buf] ORB input_buffer QUIF NE ADMIT ;first print any leftovers. CALL tester,( PULS d ;flag that a command was entered. ENDGUESS TSTB ;set cc register. RTS ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :puts directory entries to scr LDB ,x+ QUIF EQ CMPB #'" UNTIL EQ TSTB QUIF EQ PUSH (11,s) LDD 4,s ADDD #6 CALL matchit entries. LDY ,x++ LDD ,x STY ,x STD ,--x DEC ,s ;flag that a sort occured. ENDIF LEAX 2,x put error! CALL pauser,#-1 LBNE alldone LDD [,s] UNTIL EQ LEAS 2,s ENDGUESS LEAS 2,s ;any additional filenames? ; .ti/o,fi/o,flag,rts CLR input_buffe4,s) PSHS d,x,y CALL put_entries,(6,s) LEAS 6,s CALL pauser,#-1 ENDGUESS CALL put_entries,(6,s),#t_strnl,alternate_buf,#t_null CALL _holdit GUESS CALL een and file (if any). ;parameters:i/o block ~ entry 1 ~ entry 2 ;returns :error condition. ;destroys :x, y keeps: .p1, .p2 put_entries PSHS d LDY 6,s ;first string LDX curpos_ LEAX screen_,x ;check for a match. LEAS 2,s QUIF EQ PULS x,y STY ,x++ PSHS x,y CALL length_,(2,s) ADDD #1 ;account for null at end. ADDD 2,s STD 2,s LDD ,x UNTIL EQ TST ,s UNTIL EQ ENDIF LEAS 4,s ; .partflag,ti/o,fi/o,flag,rts ; display the directory. dirdisp TST input_buffer+80 IF NE  ADDB [txtbeg] ADCA #0 ENDIF CMPD 2,s IF LE PSHS d ;fist real line. LDD 4,s CMPD txtend IF NE ADDB [4,s] ADCA #0 . ;parameters:offset to line number (integer + or -). ;returns :new line number if offsetted. ;destroys :none keeps: GUESS _offsetnum ADDD cur_line QUIF GE LDD #0 ADMIT CMPD eof_l\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :put text in memory. ;parameters:none ;returns :true (if memory full)/false ;destroys : keeps: _inserttextm CALL _inserttext STD ,--s ;_SCRAT XDEF EC_SCRATCH XREF _SYNTAXCHK XREF SCRATCHF_,CHECKOUTFNAME ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :EDIT SCRATCH COMM ;_TAB XDEF EC_TABSET XREF _CHRGOT XREF _MSGREADY XREF _FETCHNUM,SUICIDE_ XREF PRINTF_ XREF TABGET_ ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ENDIF SUBD ,s PSHS d ;# of bytes from begining to end of this text. CALL closep_bytesp1,(4,s),(,s) PULS d LEAS 2,s ELSE LDD #0 ENDIF RTS ;\\ ine QUIF LE LDD eof_line ENDGUESS RTS ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :gets text pointer to a line. ;parameters:number of line to get pointer for. ;ret IF NE CALL _offsetall,#-1 CALL _message,#16 ;'memory full' ENDIF LDD ,s++ RTS d,x iny UNTIL EQ ENDGUESS TFR x,d RTS ;\\\\\\\\\\\AND. ;RETURNS :REPEAT FLAG. EC_SCRATCH EQU * CALL CHECKOUTFNAME,#-1,#INPUT_BUFFER PSHS D CALL _SYNTAXCHK CALL SCRATCHF_,(,S) DONE 2 CALL MOUNT_,#INPUT_BUFFER JMP SUICIDE_ \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :EDIT TAB COMMAND. ;RETURNS :NO-REPEAT FLAG. EC_TABSET CLRA PSHS A ;COUNTER FOR TAB POSITION. CALL TABGET_ PSHS D LOOP CALL _CHRGOT ;SKIP ANY SPACE\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :converts a text pointer into a line number. ;parameters:text pointer to convert. ;returns :line number of text pointer. ;destroys :x keeps: _nuurns :pointer to text in memory. ;destroys :x, y keeps: GUESS _pointerofp LDX txtbeg TFR d,y ADMIT ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :gets poinn CMPB #10 UNTIL EQ JMP SUICIDE_ T_STR FCS "%S " T_NUM FCS "%D " P. INC 2,S LDA 2,S CMPA #10 UNTIL EQ ;DISPLAY THE TABS. CALL _MSGREADY ;_di XDEF ec_directory XDEF ec_catalog XREF errorouter,diropenf_ XREF _holdit,_pause XREF parse_to,skp_alpha,tableloo_,disk__ XREF copystr_,length_ XREF putnl_,_printscreen S. LDB CHRGOTTYPE CMPB #3 QUIF NE ;IT IS A NUMBER. CALL _FETCHNUM CMPB #80 IF GT LDB #80 ENDIF LDX ,S LDA 2,S mberofp PSHS d LDY #0 LDX txtbeg LOOP CMPX ,s QUIF GE iny LDB ,x ABX CMPX txtend UNTIL GE STY ,s PULS d,pc ;\\\\\\\\\ter to line offset from current text pointer. ;parameters:offset to text cursor (+ or -). ;returns :pointer to text in memory. ;destroys :x, y keeps: _offsetbyp TFR d,y LDX txtcur ENDGUESS GUESS  PULL name_buf call stripdisk,alternate_buf std filename_ tfr d,x clr -1,x CALL copystr_,filename_,(1,s) ;set up any specifier. ;check to see if source is ok. CALL diropenXREF fprintf_,zndclr_,suicide_ XREF eof_,openf_,closef_ XREF dreadf_,stripdisk XREF ___div,curpos_ XREF write__,screen_ ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ASLA CLR A,X INCA DECB STB A,X ;SET TAB STOP. INC 2,S LDA 2,S CMPA #10 UNTIL EQ ;DISPLAY THE TABS. CALL _MSGREADY \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :adjust the text pointer. ;parameters:number of text lines to change (+ or -). ;returns :new text line pointer. ;destroys : keeps: _offsetall PSHS d CMPY #0 QUIF LE LOOP CMPX txtend QUIF EQ LDB ,x ABX dey UNTIL EQ ADMIT QUIF EQ LOOP CMPX tf_,alternate_buf ;open source file. PSHS d CALL errorouter,(2,s),alternate_buf PUSH #0 ; 0 2 4 5 7 ; .ti/o,fi/o,flag,namepoint,..name..,rts LDD max_memory SUBD txtend SUBD\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :directory and catalog command. ;returns :no-repeat flag. GUESS ;dual column directory. ec_catalog CLRB ADMIT ;single column directory. ec_directory LDB #$ff  CLR 2,S LOOP LDB 2,S ASLB LDX ,S LDD B,X ADDD #1 PSHS D CALL PRINTF_,#T_NUM LEAS 2,S INC 2,S LDB 2,S  CALL _offsetnum STD cur_line CALL _offsetbyp,(,s++) STD txtcur RTS ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :figures a new line number (within limits)xtbeg QUIF EQ LEAX -1,x TFR x,d SUBB ,x SBCA #0 TFR d,x iny UNTIL EQ ENDGUESS TFR x,d RTS ;\\\\\\\\\\\ #4 ;safety margin. PSHS d CALL ___div,#15 CMPD #4 ;60 byte minimum. IF HI ADDD txtend ADDD #7 ELSE CLRA CLRB ENDIF PSHS d  ENDGUESS leas -40,s tfr s,x PSHS b,x ;dir-cat flag. PUSH name_buf SET2 name_buf,#$b128 ;a null in ROM. CALL parse_to ;parse the file source and destination (if any).  CALL scroll_scrn,#1,#txtbottom-1,#1 INC textrow CALL prnt_scrnrowp,#1 ENDIF ADMIT CALL _offsetall,#1 LDB textrow CMPB #txtbottom QUIF EQ s a screen row. ;parameters:screen row to print (1-23). ;returns :none ;destroys :x keeps: prnt_scrnrowp PSHS d CALL liftcurto_rpcp1,(2,s),#1 LDD ,s SUBB textrow SBCA #0 PSHS d rpos_ LDB screen_,x ANDB #%01111111 ;remove cursor. STB screen_,x PULS d DECB LDA #crtwidth MUL ;figure new location. ADDB 3,s ADCA #0 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :scrolls the screen. ;parameters:top line ~ bottom line ~ offset (+ or -). ;returns :none ;destroys : keeps: scroll_scrn SUBD #1 PSHS d ;.from rtwidth MUL TFR d,x LDB textcol ABX LEAX screen_-1,x LDB ,x EORB #%10000000 ;flips the char at text cursor position. STB ,x TST mo ;just move the cursor. INC textrow SET2 old_txtcur,txtcur SET2 old_cur_line,cur_line ENDGUESS RTS ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;perfo ;.line offset from textrow,row,x,rts GUESS LDD cur_line ADDD ,s QUIF LT CMPD eof_line QUIF GT ; not past limits. CALL _offsetbyp,(,s) ;find offset line.  SUBD #1 STD curpos_ ;remember it. RTS ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :print a text line to the screen. ;parameters:text pointer of line to print. ;returns :none ;d ,rts,to,offset LDB 5,s SUBB 1,s LDA #crtwidth MUL PSHS d ;# of bytes between start of .p to end of .p1. LDD 2,s ADDD 8,s LDA #crtwidth MUL ADDD #deflag QUIF NE LDX curpos_ LEAX screen_,x LDB ,x EORB #%10000000 ;flips the char at normal cursor pos. STB ,x ENDGUESS RTS ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\rms :redefine the maximum line number. ;parameters:none ;returns :end line number. ;destroys : keeps: set_eof_line CALL _numberofp,txtend STD eof_line RTS ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ CALL print_linep ;print line. ENDGUESS LDB 3,s LDA #crtwidth MUL ;find start of row .p+1 TFR d,x LEAX screen_,x SUBD curpos_ LDA #" estroys :x, y keeps: GUESS print_linep PSHS d CMPD txtbeg QUIF LT CMPD txtend QUIF GT GUESS LDY #t_bof CMPD txtbeg QUIF EQ screen_ PSHS d ;start of destination. LDB 5,s LDA #crtwidth MUL ADDD #screen_ ;start of row p. PSHS d CALL copy_,(4,s),(4,s),(4,s) DONE 8 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :deletes a line of text from memory. ;parameters:text pointer of line to delete. ;returns :number of bytes deleted. ;destroys : keeps: GUESS _deleteline PSHS d \\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :print a selective number of screen rows. ;parameters:top screen row to print ~ last screen row to print. ;returns :last printed line number+1. ;destroys : keeps: .p1 printrows_ptop1 EQU * " LOOP ;end the line with blank spaces. DECB QUIF MI STA ,-x ENDLOOP DONE 4 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :moves th LDY #t_eof CMPD txtend QUIF EQ CALL _fetchtext,(2,s),#input_buffer LDY #input_buffer CLR 80,y ENDGUESS ;mach speed screen print. LDX \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :blanks out a row. ;parameters:row to blank (1-25). ;returns :none ;destroys :x keeps: blank_rowp DECB ;option base zero. LDA #crtwidth MUL  CMPD txtbeg QUIF EQ CMPD txtend QUIF EQ CALL _deleteptop1,(2,s),(,s) ADMIT LDD #0 ENDGUESS DONE 2 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ LOOP PSHS d CALL prnt_scrnrowp PULS d ADDD #1 CMPD 2,s UNTIL GT RTS ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :pe cursor to a new location. ;parameters:row (1-25) ~ column (1-80). ;returns :none ;destroys : keeps: .p1 setcurtorpcp1 LDA 3,s EXG a,b JMP tputcurs_ ;move cursor. ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\curpos_ LEAX screen_,x LOOP LDB ,y+ QUIF EQ STB ,x+ ENDLOOP TFR x,d SUBD #screen_ STD curpos_ ENDGUESS DONE 2  ;(p-1)* 80 ADDD #screen_ TFR d,x LDA #crtwidth-1 LDB #" " LOOP STB a,x ;place a space. DECA UNTIL MI RTS ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :deletes a series of text lines. ;parameters:starting line pointer ~ ending line pointer. ;returns :number of bytes deleted. ;destroys : keeps: _deleteptop1 CMPD txtbeg IF EQ rints the text row that the cursor is on. ;parameters:none ;returns :none ;destroys :x keeps: _reprintrow CLRA LDB textrow ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :print\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :moves cursor to new position but don't reset the cursor. ;parameters:row (1-25), column (1-80). ;returns :none ;destroys :x keeps: .p1 liftcurto_rpcp1 PSHS d LDX cu t_bof FCC "<=============================BEGINNING " FCS "OF FILE================================>" t_eof FCC "<================================END OF " FCS "FILE===================================>" ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :toggles the cursor(s). ;parameters:none ;returns :none ;destroys :x keeps: GUESS flp_cursors LDB textrow LDB textrow DECB LDA #c 0 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :wait to continue command. ;parameters:none ;returns :none ;destroys : keeps: _pause CALL waiter,#t_pause,#(crtwidth/2)-(t_pend-t_paartup screen. ;parameters:none ;returns :none ;destroys : keeps: _screenstart EQU * SET1 textrow,#11 SET1 textcol,#1 CALL set_eof_line CLR modeflag ;default command mode. CAold_cur_line PSHS d ;difference, - = scroll down. CALL ___neg PSHS d ;reversed value of offset. GUESS IF MI LDD 2,s ENDIF CMPD #txtbottom ;line txt;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :deletes a line from the screen. ;parameters:none ;returns :none ;destroys : keeps: _scrndelete EQU * CLRA LDB textrow CALL prnt_scrnrowp,#txtbottom ENDIF ADMIT CALL _offsetall,#-1 LDB textrow CMPB #1 QUIF EQ ;just an onscreen movement. DEC textrow  use)/2 ;center it. RTS t_pause FCC "<'RETURN' or Command>" t_pend FCB 0 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :prints a message to the screen and waits for command entry. ;paramet LL _printscreen CALL _clrcmd CALL _clrmsg CALL liftcurto_rpcp1,#msgline,#70 ;prepare for command. LDD #t_edit JMP printf_ t_edit FCS "" ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ cur - line old_txtcur QUIF LT ;print up whole screen. CALL _printscreen ADMIT LDD 2,s QUIF LE ;screen scrolls up by .d ADDD #1 STD 2,s ;move star CMPD #txtbottom IF NE ;if not at bottom of text then scroll. ADDD #1 PSHS d CALL scroll_scrn,(4,s),#txtbottom,#-1 LEAS 2,s ENDIF LDD #txtbottom  SET2 old_txtcur,txtcur SET2 old_cur_line,cur_line ENDGUESS JMP _purge ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :move the text cursor down (scroll if necessary). ;paraers:message to print ~ position on line. ;returns :first character entered. ;destroys :x keeps: p1 waiter PSHS d CALL _purge ;clear any spurious keystrokes. CALL liftcurto_rpcp1,#msgline,(4,s) \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :reprint the screen text lines and do some housework. ;parameters:none ;returns :none ;destroys : keeps: _printscreen CALL _numberofp,txtcur STD cur_line SET2 old_txtt. CALL scroll_scrn,(6,s),#txtbottom,(,s) LDD #txtbottom ADDD ,s ADDD #1 PSHS d CALL printrows_ptop1,(2,s),#txtbottom LEAS 2,s ADMIT BEQ gone  JMP prnt_scrnrowp ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :clears the command line. ;parameters:none ;returns :none ;destroys : keeps: GUESS _clrcmd LDD #cmdlimeters:none ;returns :none ;destroys : keeps: cur_dn CALL cursordn JMP _purge ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :cursors down and moves to first column. ;param CALL printf_,(,s) ;print message first. LDA #cmdline LDB #1 CALL tputcurs_ ;setup cursor. CLR input_buffer ;clear buffer. CALL line_input ;getcur,txtcur SET2 old_cur_line,cur_line CALL printrows_ptop1,#1,#txtbottom RTS ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :remove any keystrokes from the keyboard buffer. ;param ;scroll screen down. LDD #txtbottom SUBD ,s PSHS d CALL scroll_scrn,#1,(2,s),(2,s) LEAS 2,s CALL printrows_ptop1,#1,(,s) ENDGUESS SET2 old_txtcune ADMIT ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :clears the message line. ;parameters:none ;returns :none ;destroys : keeps: _clrmsg LDD #msgline ENDGUESSeters:none ;returns :none ;destroys : keeps: car_rtn LDB #1 STB textcol ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :workhorse of downward cursor movement. ;parameters:n a command line. TST input_buffer IF NE ;a real command was entered. CALL copystr_,#input_buffer,command_buf CALL _purge CALL putbky_,#14 ;flag for command fetch and do. eters:none ;returns :none ;destroys :none keeps: .cc _purge PSHS CC SEI LDD kyptr2_ STD kyptr1_ PULS cc,pc ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;per,txtcur SET2 old_cur_line,cur_line gone DONE 4 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :inserts a line on the screen. ;parameters:none ;returns :none ;destroys : k JMP blank_rowp ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :moves the text cursor up (scroll if necessary). ;parameters:none ;returns :none ;destroys : keeps: cur_up GUEone ;returns :none ;destroys : keeps: cursordn GUESS LDD txtcur CMPD txtend QUIF NE LDB textrow CMPB #txtbottom IF NE ;drag screen down.  ENDIF CALL zndclr_ ;clear screen. CLRA LDB input_buffer ;flag that something was entered. DONE 2 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :prints a strforms :jive-up screen with any changes. ;parameters:none ;returns :none ;destroys : keeps: _updatescreen LDD txtcur CMPD old_txtcur IF EQ RTS ENDIF LDD cur_line SUBD eeps: _scrninsert EQU * CLRA LDB textrow PSHS d CMPB #1 CNE scroll_scrn,#2,(2,s),#-1 SET1 modeflag,#1 ;forces text mode. SET1 textcol,#1 PULS d JMP blank_rowp SS LDD txtcur CMPD txtbeg QUIF NE LDB textrow CMPB #$01 IF NE ; drag screen upward. CALL scroll_scrn,#2,#txtbottom,#-1 DEC textrow;text XDEF _screenstart,_printscreen,_comprint XDEF _holdit,_updatescreen,_scrninsert XDEF _msgready,_deleteline XDEF _reprintrow,_deleteptop1,_numberofp XDEF _offsetbyp,_pointerofp XDEF _inser LDX #table_cntrl ENDGUESS ENDGUESS CMPX #_rts IF NE ASLB JSR [b,x] ENDIF JMP _updatescreen ;vector table for pf keys. table_fnctn FDB ftch_line UESS curbk20 LDD #-(txtbottom-2) ADMIT curup20 LDD #txtbottom-2 ADMIT curbk1 LDD #-1 ADMIT curfwd1 LDD #1 ENDGUESS CALL _offsetall JMP _purge ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\g LDD #input_buffer JMP _comprint ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :reprints the screen. clear_ CALL _clrmsg JMP _printscreen ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;insert to screen. SET2 old_txtcur,txtcur SET2 old_cur_line,cur_line CALL _purge ;************** remove for standard insert *************** PULS d ;*  ttextm,_purge,flp_cursors,liftcurto_rpcp1 XDEF _scrndelete,_offsetall XDEF _pause,cur_dn,cur_up,car_rtn,setcurtorpcp1 XDEF _clrcmd,set_eof_line,_clrmsg XREF closep_bytesp1,line_input XREF _inserttext,_fe ;pf 1 FDB del_line ;pf 2 FDB curfwd1 ;pf 3 FDB cur_dn ;pf 4 FDB set_cmdmode ;pf 5 FDB curbk1 ;pf 6 FDB  \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :home the cursor. cur_home CLRA LDB textrow SUBD #1 PSHS d LDD cur_line CMPD ,s IF LT STD ,s ENDIF  \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :insert normal or recovered line. ;recover delete key by inserting command_buf to screen. GUESS recover_del CALL _offsetall,#-1 ;forces a backward insert. CALL _upd STA textrow ;* STB textcol ;* ;************** remove for standard insert *************** SET1 modeflag,(,s+) JMP _reprintrtchtext XREF _message XREF putbky_ XREF tputcurs_ XREF printf_ XREF ___neg,zndclr_ XREF copy_,copystr_ XREF curpos_,kyptr1_,kyptr2_ XREF screen_ ;include ;include < cur_up ;pf 7 FDB set_txtmode ;pf 8 FDB curbk20 ;pf 9 FDB ins_line ;pf 0 FDB curup20 ;pf . ;vector table for control keys. table_cntrl F LDX curpos_ LEAX screen_,x LDB ,x EORB #%10000000 ;flip in anticipation. STB ,x SET1 textcol,#1 CLRA LDB textrow SUBD ,s STB textrow PSHS d atescreen CALL copystr_,command_buf,#input_buffer LDB modeflag ADMIT ;normal blank line insert with entry into text mode. ins_line CLR input_buffer LDB #1 ;force text mode. ENDGUESS ow ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :delete the current line. del_line LDD txtcur GUESS CMPD txtbeg QUIF EQ CMPD txtend QUIF EQ edit.labels> ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :prints a string to the command line. ;parameters:string to print. ;returns :none ;destroys : keeps: _comprint PSHS d DB cur_home ;home FDB recover_del ;run FDB _rts FDB _rts FDB _rts FDB _rts FDB _rts FDB _rts FDB _rts FDB cur_dn  CALL setcurtorpcp1,(2,s),#1 LEAS 2,s PULS d CALL ___neg CALL _offsetall SET2 old_txtcur,txtcur SET2 old_cur_line,cur_line JMP _purge ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ PSHS b ;************** remove for standard insert *************** LDA textrow ;* LDB textcol ;* PSHS d CALL _fetchtext,txtcur,command_buf CALL _deleteline,txtcur ;delete current line. CALL _scrndelete ;close up screen. CALL _purge ENDGUESS RTS modeflag,(,s+) JMP _reprintr CALL _clrcmd CALL liftcurto_rpcp1,#cmdline,#1 CALL printf_,#t_str,(,s) DONE 2 t_str FCS "%S" ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :sets cursor to start of a cl ;cursor down FDB cur_up ;cursor up FDB clear_ ;shift/home FDB car_rtn ;carraige return FDB _rts ;fetch & do FDB _rts ;shift/rubout FDB _rts \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :goes to command mode. set_cmdmode CLR modeflag _rts RTS ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :goes to text mode. set_txtmode SET1 modeflag,#1  ;* ;************** remove for standard insert *************** LDD txtcur CMPD txtend IF EQ ;move cursor back to real line before inserting. CALL _offsetall,#-1  ;performs :end of screen output message. ;parameters:none ;returns :none ;destroys : keeps: _holdit CALL waiter,#t_hold,#(crtwidth/2)-(t_hend-t_hold)/2 RTS t_hold FCC "" t_hend FCB ean message line. ;parameters:none ;returns :none ;destroys :x keeps: _msgready CALL _clrmsg CALL liftcurto_rpcp1,#msgline,#1 RTS ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;shift/escape FDB _rts ;shift/zero FDB _rts ;reverse FDB _rts ;off ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :various cursor moves. G CLR input_buffer JMP _purge ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :moves present line to command cursor. ftch_line CALL _fetchtext,txtcur,#input_buffer CLR modefla CALL _updatescreen CLR input_buffer ENDIF CALL _inserttextm ;insert to text. IF NE ;memory full. CALL _printscreen DONE 3 ENDIF CALL _scrninsertS :checks to see if this is more than a simple search. ;PARAMETERS:none ;RETURNS :is this a multi-command? ;DESTROYS :x KEEPS: GUESS check4multi CLR ,-s LDX chrgetpointer LDB ,x+ CM FDB ec_talk FDB ec_directory FDB ec_catalog FDB ec_name FDB ec_default FDB ec_scratch FDB ec_rename FDB ec_mount FDB ec_copy FDB ec_date FDB;fname XDEF scanfname,stripdisk XDEF def_device,skip_prefix_ XDEF devname XREF _chrgot XREF _chrget XREF tableloo_,_bmessage,disk__ XREF skp_alpha,copy_ ;include ;include <er to filename. ;returns :pointer to rest of filename that is really the name. ;destroys :x keeps: stripdisk EQU * CALL skip_prefix_ STD filename_ CALL skp_alpha PSHS d CALL tabl 2,s CLR d,x ELSE CLR [2,s] ENDIF RTS ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :skip any format prefix to a filename. ;PARAMETERS:filename pointer.  PB #"/" QUIF EQ CMPB #"\" QUIF EQ ADMIT ;at least it starts correctly. lda #"%" LOOP tst ,x BEQ thru CMPB ,x ;search only ec_time FDB ec_tabset FDB ec_help FDB ec_exec FDB ec_free FDB ec_dcommand FDB ec_look FDB ec_run FDB ec_exit FDB ec_setup FDB ec_monitor  edit.labels> ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :scans a filename. ;parameters:none ;returns :pointer to filename. ;destroys :x keeps: GUESS scanfname CLR ,-s  eloo_,#prefix,filename_ LEAS 2,s IF NE LDX filename_ LOOP LDB ,x QUIF EQ INX CMPB #"." UNTIL EQ STX filename_ ;new starti;RETURNS :pointer past any prefix. ;DESTROYS :none KEEPS: skip_prefix_ EQU * PSHS d,x TFR d,x LDB ,x CMPB #"(" IF EQ LOOP LDB ,x+ BEQ thru for a match of the first delimiter. QUIF EQ CMPa ,x IF EQ INX ;skip any control character. ENDIF inx ENDLOOP TST 1,x QU;keys XDEF _dochar XREF _updatescreen,_offsetall,_purge,_clrmsg XREF curpos_,screen_,___neg,_reprintrow XREF _comprint,_fetchtext,_scrndelete,_deleteline XREF _printscreen,_inserttextm,_scrninsert,copys ;quote flag. CALL _chrgot CMPB #$22 ;" QUIF EQ CMPB #$27 ;' QUIF EQ ADMIT STB ,s ;set quote flag. CALL _chrget ENDGUESS SET2 (ng position. ENDIF LDD filename_ RTS prefix FCS "disk" FCS "host" FCB 0 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :defines a device. ;parameters:so CMPB #")" UNTIL EQ STX ,s ENDIF thru PULS d,x,pc ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :checks to see what the device number is. ;PARAMETERS:pIF EQ ;yup, its a multi-line command. DEC ,s ENDGUESS thru LDB ,s+ SEX RTS ec_bad CALL _bmessage,#1 ;command vector table (add vector to new command to this table). p_command FDB ec_bad tr_ XREF setcurtorpcp1,cur_dn,cur_up,car_rtn ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :does the special character that the inputed line ended with. ;p,--s),chrgetpointer ;pointer,quote,rts ;determine end of file name. CALL _chrgot ;leading spaces (even in quotes) are removed. LOOP QUIF EQ GUESS CMPB #" " QUIF NE urce of name ~ destination of device string. ;returns :none ;destroys :x keeps: def_device EQU * CALL skip_prefix_ STD filename_ CALL skp_alpha PSHS d CALL tableloo_,#prefix,filenointer to original filename. ;RETURNS :number of device named. ;DESTROYS : KEEPS: devname CALL skip_prefix_ STD filename_ CALL skp_alpha PSHS d CALL tableloo_,#disk__,filename_ LEA FDB ec_null FDB ec_list FDB ec_print FDB ec_printl FDB ec_put FDB ec_putlines FDB ec_change FDB ec_search FDB ec_search FDB ec_delete FDarameters:character to do. ;returns :none ;destroys :x keeps: GUESS _dochar LDX #_rts TSTB QUIF PL GUESS SUBB #$81 QUIF LT CMPB #10  ;stop at a space unless in quote mode. TST 2,s QUIF NE delim CLR [chrgetpointer] CALL _chrget CLRB ENDGUESS QUIF EQ CMPB 2,s ame_ LEAS 2,s IF NE LDX filename_ CLRB LOOP ;scan till end of device specified. LDA ,x QUIF EQ CMPA #"." QUIF EQ S 2,s RTS #")" UNTIL EQ STX ,s ENDIF thru PULS d,x,pc ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :checks to see what the device number is. ;PARAMETERS:pB ec_get FDB ec_input FDB ec_echo FDB ec_move FDB ec_upper FDB ec_lower FDB ec_number FDB ec_run FDB ec_exit FDB ec_setup FDB ec_monitor  QUIF HI LDX #table_fnctn ENDGUESS ADMIT GUESS SUBB #1 QUIF LT ;must be >= 1. CMPB #18 QUIF HI ;must be <= carraige return. BEQ DELIM QUIF EQ CALL _chrget UNTIL EQ LDD ,s DONE 3 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :removes any prefix from filename. ;parameters:point INCB INX ENDLOOP CLRA PSHS d CMPB #14 JHI _bmessage,#9 ;not legal if too long. CALL copy_,filename_,(6,s),(,s) PULS d LDX  XREF ec_echo XREF ec_move XREF ec_upper XREF ec_lower XREF ec_number XREF ec_run XREF ec_exit XREF ec_setup XREF ec_monitor XREF ec_talk XREF ec_direc ;also the stop key (ie. text recovery key) was not pressed. CALL _deleteline,txtcur ;remove the old line. CALL _offsetall,#-1 ;backup one because it will CALL _inserttextm int,command_buf ;prints buffer to command line. LBRA rout1 ;short curcuit back to line input. ENDIF LEAS 2,s TST chrgotchar IF NE ;if there was anything entered then  increased by one for every new command that is allowed ; to have a line range. Be sure to update the list in this file. If a new ; command is not allowed to have a line range then leave this number alone. CMPB #16 JHI _mess repeatable'. PSHS d CALL copystr_,command_buf,#input_buffer CALL _cstart,(4,s) CALL _chrgot ;reset everything for next search. LDD 2,s ADDD multi_copy  tory XREF ec_catalog XREF ec_name XREF ec_default XREF ec_scratch XREF ec_rename XREF ec_mount XREF ec_copy XREF ec_date XREF ec_time XREF ec_tabset  ;insert text at next line. CNE _printscreen ;out of memory. IFNE keywords CALL _reprintrow ENDC ADMIT ;recover text.  save it. CALL copystr_,#input_buffer,command_buf CALL _clrmsg ENDIF ;normal line range and command getting and doing. dispatch SET2 range_start,txtcur ;default in case no line ranges specified STD  age,#13 ;no line ranges allowed past LOWER command. ENDGUESS LDX #p_command ABX ABX CALL spawn_,(,x) ;do command. RTS multi CLR ,-s ;parse error flag. CALL fix_r STD 2,s LDD ,s SUBD multi_copy STD ,s LDD multi_copy IF EQ CALL _offsetbyp,#1 ;move to next line for processing. STD txtcur CALL _n XREF ec_help XREF ec_exec XREF ec_free XREF ec_dcommand XREF ec_look ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :the  CALL _reprintrow ;reprint line. ENDGUESS ENDIF CALL _dochar,(,s) ;now it is allowed to do the keypress. LDB 1,s CMPB #$81 LBEQ rout1 ;if 'fetch line'  range_end SET2 multi_copy,#0 CALL check4multi ;is this a multi command? BNE multi GUESS PUSH chrgetpointer CALL _command_num ;get command number. QUIF EQ CMPB #ange CALL _numberofp,txtcur PSHS d ;cursor must remain unmodified. PUSH chrgetpointer ;used for resetting the command. PUSH multi_copy ;counter of lines deleted this mulumberofp STD cur_line ENDIF CALL _pointerofp,(,s++) STD range_end LDD txtcur CMPD txtend QUIF HS CMPD range_end UNTIL HI GUESS main command controller. ;parameters:none ;returns :none, but may alter service_. ;destroys :all keeps: _commander LEAS -2,s CALL kbenable_ CALL _clrcmd ;clear the command line. rout1 CALL _getline ;get line then get command again. ;otherwise it is done for now. DONE 2 ENDIF ; in command mode. GUESS LDB 1,s CMPB #$0d QUIF EQ ;if a return was not entered then 8 QUIF EQ CMPB #9 QUIF EQ LEAS 2,s ADMIT ;a line range specified. PULL chrgetpointer CALL _chrgot CALL _fetchlines ;get line ranges. ti. SET2 txtcur,range_start CALL _numberofp STD cur_line LOOP CALL tbreak_ BNE notgood CALL _scanner,#1,txtcur,range_end ;search for a match. IF EQ  CLRB ADMIT notgood LDB #$ff ;flag for error in processing. ENDGUESS ;restore for continuity. STB 2,s LDD ,s STD multi_copy ;restore "lines deleted" value. from user. STD ,s TST modeflag IF NE ;in text mode. TST ,s IF NE ;modified line. GUESS LDD txtcur CMPD txtbeg no command can be done. CALL _dochar,(,s) ;do control or function char. LDB 1,s CMPB #$81 LBEQ rout1 ;if 'fetch line' then get command again. DONE 2 ENDGUESS CALL _chrgo JEQ ___neg ;error in parsing line ranges. CALL check4multi ;is this a multi command? BNE multi CALL _command_num ;now get command number. GUESS CMPB #1 ;jTST 6,s CNE _clrmsg ;no error if scanning to eof. CLRB ENDIF QUIF EQ ;a correct line was found. CALL _numberofp,txtcur std cur_line SET1  LDD 6,s STD cur_line CALL _pointerofp STD txtcur CALL _printscreen LDB 2,s SEX DONE 7 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORM QUIF EQ ;not at begining of text. CMPD txtend QUIF EQ ;also not at end of text. LDB 1,s CMPB #3 QUIF EQ t ;skip past spaces. CMPB #"?" IF EQ ;retreive last line command. CALL _chrget ;analyze past '?'. IF NE DONE 2 ENDIF CALL _comprust line range. QUIF EQ CMPB #3 ;line range print. QUIF EQ CMPB #5 ;line range put. QUIF EQ ADMIT INCB ENDGUESS ; This number must be (6,s),#$ff ;flag that it wasn't an original error. CALL _numberofp,range_end PSHS d CALL dispatch ;do command. PULS d BNE notgood ;no error, so command is 'rns :true/false; was a proper line found? ;destroys :x, y keeps: GUESS _scanner LDX txtcur PSHS d,x ;.offset,txtcur,rts,start,end SET2 txtcur,(6,s) LDB chrgottype CMPB #PD 9,s IF EQ CALL _message,#6 ;search string not found. bad SET2 txtcur,(3,s) CLRB return SEX DONE 5 ENDIF CALL _offsetby fetch_line BEQ nogood LDD txtcur ADMIT SET2 txtcur,range_start LDB chrgotchar CMPB #"^" QUIF NE ;previous 20 lines. ;performs :skip spaces and parse character code. ;parameters:none ;returns :character positioned to. ;destroys :x keeps: _chrgot CALL chrgot ;re-establish protocal indicators. LOOP CMPB #" " QUIF  CALL decimal_,filename_ LEAS 2,s ENDIF RTS ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :signal error according to more or less parameters. GUESS _syntaxchk  3 QUIF NE LDD ,s PSHS d CALL _fetchnum ;get decimal number. SUBD #1 CALL ___mul CALL _offsetbyp ADMIT LDB chrgotchar CMPB #"/"  p,(1,s) ;next line to search. STD txtcur ENDLOOP ENDGUESS STD txtcur DONE 4 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :fetch line numbers. ;par CALL _chrget CALL _offsetbyp,#-20 ADMIT CMPB #"&" QUIF NE ;following 20 lines. CALL _chrget CALL _offsetbyp,#20 ADMIT LDD NE CALL _chrget ENDLOOP TSTB ;restore condition codes. RTS ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :skips one character and inputs it. ;parameters:none TST chrgotchar ;error if more text. QUIF NE RTS must_more TST chrgotchar ;error if no more text. QUIF EQ RTS ADMIT CALL _bmessage,#1 ;say what? ENDGUESS CALL _cstart  QUIF EQ CMPB #"\" QUIF EQ LDD txtcur ADMIT ;find a match line. PSHS b LDX chrgetpointer LDB 1,x CMPB ,s ;must end ameters:none ;returns :true/false; was there no error? ;destroys :x keeps: _fetchlines EQU * SET2 (,--s),txtcur SET2 temp_counter,#1 ;default offset. CALL _chrgot ;skip past spaces.  range_start ENDGUESS ENDGUESS STD range_end CMPD range_start IF LO LDB #$ff ELSE LDB #1 ENDIF SEX STD temp_counter ;offset direction ;returns :next character inputed. ;destroys :x keeps: _chrget LDD chrgetpointer ADDD #1 _cstart STD chrgetpointer chrgot LDB [chrgetpointer] STB chrgotchar GUESS CALL isalpha_ ;comm keywords EQU 1 ;set if keywords tokenized in text. XDEF _commander XREF tbreak_,copystr_,___neg XREF _command_num,_fetchlines,_numberofp XREF _chrgot,_cstart,_chrget XREF _message,_offsetall,with same character. IF EQ CALL _message,#8 ;'no search string defined'. BRA bad ENDIF CALL _parsesrch ;parse search command. LDD txtcur LOOP  GUESS CMPB #"*" QUIF NE ;set for all lines. CALL _chrget SET2 range_start,txtbeg ;set to first line. LDD txtend ADMIT CMPB #"|" QUIF NE for range. GUESS LDB #$ff ADMIT nogood CLRB ENDGUESS PSHS b SET2 txtcur,(1,s) CALL _numberofp STD cur_line PULS b,x SEX RTS ;\\\\\\\\\\\\\ QUIF EQ ;alpha flag. LDB #1 ADMIT LDB chrgotchar CALL isdigit_ QUIF EQ ;number flag. LDB #3 ADMIT ;delimiter flag. LD_bmessage XREF _scanner,_offsetbyp,fix_range XREF _dochar,_clrcmd,_printscreen XREF _getline,_reprintrow,_clrmsg XREF _comprint,_deleteline,_inserttextm XREF _pointerofp,spawn_,kbenable_ XREF ec CALL _searchline ;search txtcur line. PULS b PSHS b IF NE ;match was found. CMPB #"/" BEQ okay ELSE ;no m ;set for all lines in reverse. CALL _chrget SET2 range_start,txtend ;set to last line. LDD txtbeg ADMIT ;get starting line. CALL fetch_line BEQ nogood \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :adjusts the range pointers so that the start is less than finish. ;parameters:none ;returns :none ;destroys :none keeps: fix_range LDD range_end B #2 ENDGUESS STB chrgottype CLRA LDB chrgotchar RTS ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :converts a ascii number into a binary value. ;parameters_null XREF ec_list XREF ec_print XREF ec_printl XREF ec_put XREF ec_putlines XREF ec_change XREF ec_search XREF ec_delete XREF ec_get XREF ec_input atch was found. CMPB #"\" BEQ okay IF EQ okay LDB #$ff BRA return ENDIF ENDIF LDD txtcur CM SET2 range_start,txtcur ;start line. LDB chrgotchar GUESS CMPB #"," QUIF NE ;get ending line. CALL _chrget SET2 txtcur,(,s) CALL  CMPD range_start IF LO PSHS d SET2 range_end,range_start PULS d STD range_start ENDIF RTS ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ :none ;returns :value in binary. ;destroys :x keeps: _fetchnum EQU * SET2 filename_,chrgetpointer CALL skp_nums IF NE PSHS d ADDD chrgetpointer CALL _cstart ;_RENAM XDEF EC_RENAME XREF PARSE_TO,STRIPDISK XREF SUICIDE_ XREF _BMESSAGE XREF RENAMEF_ ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ,s QUIF EQ SUBD #1 ;adjust skipper. STD ,s LDX 2,s INX STX 2,s LDD 4,s SUBD #1 IF EQ STD+ UNTIL EQ LDB #"~"!%10000000 DEX LOOP CMPB ,-x QUIF NE ;make no mind if not a %~. DEC found_len ENDLOOP ENDGUESS LDX 4,D 2,s ADDB found_len ADCA #0 PSHS d CALL copystr_,(2,s),(4,s) ;close up space. LEAS 2,s CALL prefixst_,(8,s),(2,s) ;insert the changed text. LDD ,s ADDD 2,s ;contin ;MON XREF _SYNTAXCHK,_SCREENSTART XREF MONITOR,SUICIDE_ XREF CLOSE_KEY,OPEN_KEY XDEF EC_MONITOR ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\ ;PERFORMS :EDIT RENAME COMMAND. ;RETURNS :NO-REPEAT FLAG. EC_RENAME CALL PARSE_TO TST INPUT_BUFFER+80 CEQ _BMESSAGE,#1 ;MUST HAVE NEW NAME. CALL STRIPDISK,#INPUT_BUFFER+80 PSHS D  ,s ;flag for last replace. ENDIF ENDGUESS LDD ,s QUIF EQ PULS x INX PSHS x ENDLOOP ender LDD 2,s IF NE ;actually remove old line s ;search through p1 and replace any "%&" with search string. LOOP LDB ,x+ QUIF EQ CMPB #'&'!%10000000 IF EQ DEX PSHS x ;to INX $uation pointer. DONE 168 fy for change in length. CMPD 172,s IF HI CALL _printscreen CALL _bmessage,#17 ;"TOO LONG..." ENDIF ;if new line wouldn't be too long. LD\\\\\\\ ;PERFORMS :MONITOR REQUEST FUNCTION. ;PARAMETERS:NONE ;RETURNS :NO-REPEAT FLAG. ;DESTROYS :X, Y KEEPS: EC_MONITOR CALL _SYNTAXCHK ;NO OTHER TEXT PLEASE. CALL CLOSE_KEY ;THIS WILL KILL EXECUTE FILE. CALL; CALL RENAMEF_,ALTERNATE_BUF JMP SUICIDE_ ,STRIPDISK XREF SUICIDE_ XREF _BMESSAGE XREF RENAMEF_ ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ and put in new one. CLR input_buffer+120 ;no super big lines allowed. CALL _deleteline,txtcur CALL _offsetall,#-1 CALL _inserttextm ENDIF out LDD 2,s DONE 6 ;\\\\\\\\\\ PSHS x ;from CALL copystr_,(2,s),(2,s) ;eliminate '&'. LEAS 2,s LDB found_len LDX 2,s ABX LDB ,x PSHS b,x CLR ,;utils XDEF _chrgot,_cstart,_chrget XDEF _fetchnum XDEF _syntaxchk,must_more XDEF _fetchlines,fetch_line XDEF _scanner,fix_range XREF _searchline,_parsesrch XREF _offsetbyp,_numberof MONITOR ;GUESS WHAT THIS DOES? CALL OPEN_KEY ;RE-ESTABLISH THE KEYBOARD INPUT. SET1 SERVICE_,#1 ;FLAG FOR OK CONDITION. CALL _SCREENSTART ;REPRINT THE SCREEN. JMP SUICIDE_ \\\\\\\\\\\\\\\\\\\\\\\\\ ADCA #0 PSHS d CALL _scanner,#1 LEAS 4,s CLRB ENDGUESS QUIF NE ADMIT LDB chrgotchar CMPB #"+" QUIF NE \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :replace at given location. ;parameters:location to replace ~ replacing string ~ start of replace buffer. ;returns :new position after replaced string. ;destroys :x, y x CALL prefixst_,(7,s),(3,s) ;replace '&'. PULS b,x STB ,x CLRA LDB found_len ADDD ,s++ TFR d,x ENDIF ENDLOOP p XREF ___mul,isdigit_,isalpha_ XREF _message,_bmessage XREF skp_nums,decimal_ ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :get one lte - if this is the only thing entered then it will be ignored. ADMIT CMPB #"$" QUIF NE CALL _chrget SET2 txtcur,txtend ENDGUESS PSHS d CALL _numberofp,txtcur  CALL _chrget LDD txtend PSHS d CALL _offsetbyp,#1 PSHS d CALL _scanner,#1 LEAS 4,s ADMIT CMPB #"-" QUIF NE CALL _chrget  keeps: rep_atp LDX 2,s LEAS -160,s ;room for replace string. TFR s,y PSHS d,x,y ; .to,from,bufpoint,buffer...,rts,from CALL copystr_,(4,s),(4,s) ;move replace to stack. GUESS  CALL length_,(4,s) ;find the length of replacing string. PSHS d CALL length_,(172,s) ;find original length of line. ADDD 172,s SUBD #120 SUBB found_len SBCA #0 ine value. ;parameters:none ;returns :true/false; was a proper line found? ;destroys :x, y keeps: GUESS fetch_line LDB chrgotchar GUESS CMPB #"/" QUIF EQ CMPB #"\"  STD cur_line LDD ,s++ RTS ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :offsets txtcur forward or backward. ;parameters:direction to offset (+/-) ~ position start ~ position end ;retu LDD txtbeg PSHS d CALL _offsetbyp,#-1 PSHS d CALL _scanner,#-1 LEAS 4,s ADMIT CMPB #"." QUIF NE CALL _chrget ;skip '.' ;no LDX ,s LDB found_len TST b,x QUIF EQ ;make no mind of %~ if at eol. LDX prevsrchstr_buf CLR -1,x TST ,x QUIF EQ LOOP TST ,xADDD ,s ;modify for change in length. CMPD 172,s IF HI CALL _printscreen CALL _bmessage,#17 ;"TOO LONG..." ENDIF ;if new line wouldn't be too long. LD QUIF EQ LDB chrgottype CMPB #3 QUIF EQ ADMIT ;start search from begining. SET2 (,--s),txtend LDD txtbeg ADDB [txtbeg] ;clmstarter ;include ;include XDEF open_key,close_key XREF openf_,closef_ XREF kbenable_,fputchar_ XREF copystr_,prefixst_ XREF read__,keyboard__,write__ XREF _commande L lo ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :closes input file. close_key LDD kbin JMP closef_ ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;perf ;_c XDEF ec_change XREF tbreak_,_printscreen XREF _message,_bmessage XREF _chrget,fix_range XREF _fetchnum,_syntaxchk XREF _parsesrch,_pointerofp XREF _getline,_updatescreen  ENDIF ENDIF CALL _reprintrow DEC modeflag ;back to command mode. ENDGUESS RTS ENDIF ; a complex change. push #0 ;# of changes counter. push #1 HI CALL _pointerofp,cur_line STD txtcur CALL _printscreen CALL _message,#14,(2,s) ;"# OCCURANCES CHANGED" ENDIF DONE 4 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ r XREF _screenstart,_title argc_ EQU $0221 argv_ EQU $0400 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;\\\\\\\\\\\\\\ main program start \\\\\\\\\\\\\ ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ; clear text areorms :opens the standard input and output devices. open_key CALL openf_,#keyboard__,#read__ STD kbin std orig_kbin RTS getter__ FCS "g " CALL _commander LDB service_ CMPB #1 UNTI XREF _reprintrow,_clrcmd XREF _inserttextm,_deleteline XREF _offsetbyp,_offsetall XREF _fetchtext,_matchp1top XREF copystr_,prefixst_,length_ ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\ ;first occurance. ;.skipper,changecounter,rts CALL fix_range LDB chrgottype GUESS CMPB #$03 QUIF NE CALL _fetchnum STD ,s ;number of changes to skip. \\\\\\\\\\\\\\\\\\\\ ;performs :define replace string and store. ;parameters:none ;returns :none ;destroys :x keeps: repl_parse EQU * push alternate_buf LOOP LDB chrgotchar QUIF EQ a =>02 01 02 01<= LDX membeg_ STX txtbeg STX txtcur LDA #2 LDB #1 STD ,x++ ;begining of text. STD ,x ;end of text. STX txtend ;set eot pointer. L  keeps: _changeline PSHS d PUSH #0 ;change counter. PUSH #input_buffer ;working buffer. LDD txtcur CMPD txtbeg LBEQ out CMPD txtend LBEQ out ;at lea \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :change command. ;returns :true/false; has an error occured? ec_change EQU * TST chrgotchar IF EQ LDD range_start CMPD range_end  ADMIT LDB chrgotchar CMPB #"*" QUIF NE CALL _chrget CLR 1,s ;change all. ENDGUESS LDB chrgotchar CMPB #"/" CNE _bmessage,#7 ;"sear  CMPB #"/" QUIF EQ CMPB #"%" IF EQ CALL _chrget GUESS CMPB #"&" QUIF EQ CMPB #"~" QUIF EQ ADMIT DD #1 STD eof_line ;eot is at line #1. ; set standard input/output for keyboard. push argv_ CALL open_key ;set standard input. CALL _title ;print header to screen. LDB argc_ CMPB #1 st it will work on a legal line. CALL _fetchtext,txtcur,(,s) CLR input_buffer-1 LOOP LOOP ;search till something to replace. CALL _matchp1top,(4,s),prevsrchstr_buf,#input_buffer  CNE _bmessage,#4 ;"ILLEGAL LINE RANGE" GUESS STD txtcur CALL _updatescreen LDD txtcur CMPD txtbeg QUIF LS CMPD txtend Q ch string required". LDX chrgetpointer LDB 1,x CMPB #"/" CEQ _bmessage,#8 ;"no search string defined". CALL _parsesrch IF EQ ;no error in parsing the search command.  ORB #%10000000 ENDGUESS ENDIF STB [,s] PULS x INX PSHS x CALL _chrget ENDLOOP CLR [,s] CMPB #"/" CEQ  IF EQ ;handles a clm parameter. CALL prefixst_,#getter__ CALL copystr_,(2,s),command_buf CALL openf_,#keyboard__,#write__ PSHS d CALL fputchar_,(2,s),#14 PULS d  QUIF NE LDX ,s LDB ,x+ BEQ ender ;reached the end of the line without a match. STX ,s ENDLOOP call tbreak_ quif ne GUESS UIF HS ;single line change. INC modeflag ;set to input mode. CALL _clrcmd ;clear command line. CALL _getline ;input a text line. TSTA IF LT CMPB #3  CALL repl_parse ;parse replacement text. CALL _syntaxchk ;check for extra stuff. SET2 txtcur,range_start LOOP CALL tbreak_ QUIF NE CALL _chan _chrget DONE 2 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :perform change on cursor line. ;parameters:# of matches needed to change. ;returns :true/false; a change occured? ;destroys :x  CALL closef_ ENDIF leas 2,s CALL _screenstart ;print up screen and . LOOP ;main command loop. CALL _commander LDB service_ CMPB #1 UNTI LDD 4,s QUIF EQ SUBD #1 QUIF EQ STD 4,s ADMIT ;replace if the count allows. CALL rep_atp,(4,s),alternate_buf,#input_buffer STD  IF NE CALL _deleteline,txtcur CALL _offsetall,#-1 STD old_txtcur SET2 old_cur_line,cur_line CALL _inserttextm geline,(,s) ADDD 2,s STD 2,s LDD txtcur CMPD range_end QUIF HS CALL _offsetbyp,#1 STD txtcur CMPD range_end UNTIL !Errors 0 $005e ; Length Import SUICIDE_ 90(both) Import ERROROUTER 79(both) Import OPENF_ 66(both) Import CHECKOUTFNAME 49(both) Import CLOSEF_ 24(both) Import _COMMANDER 13(both) Import READ__ 5(both) Export EC_EXEC=$0000 Reloc 0,8(both) Object dcc03406!Errors 0 $0030 ; Length Import _SYNTAXCHK Import _BMESSAGE 45(both) Import PREFIXST_ 32(both) Import COPYSTR_ 20(both) Import CHECKOUTFNAME 8(both) Export EC_NAME=$0000 Object dca63406cc0000bd00003262cc04003406dcb0bd00003262cc04003406dcc2bd00003262cc040!0000ede4f60000261cec62bd0000f6 00002612bd0000270bbd0000cc0003bd0000200227d8ec62bd0000ec64bd00007e0000bd00001f01 cc00003406a6802716812e2712812f260ca68481312605cc0000ede45f26e63586bd00001f01ec80 4d2718812e2714812f2710812d270c34161f894fbd0000351627e32603cc0!Errors 0 $00c0 ; Length Import PREFIXST_ 116(both),56(both) Import EOF_ 89(both) Import TBREAK_ 44(both) Import READ__ 19(both) Import ERRORCHECK 97(both) Export EC_GET=$0000 Import _INSERTTEXT 102(both) Import SUICIDE_ 162(both) Import FGETREC_ 77(both)! Errors 0 $0259 ; Length Import LENGTH_ 311(both),117(both) Import PREFIXST_ 171(both) Import _FETCHTEXT 97(both) Import TABLELOO_ 327(both) Import FPUTREC_ 133(both) Import TBREAK_ 159(both) Import ERRORCHECK 146(both) Import STOI_ 296(both) Export EC_PUcc0000bd0027ddc0bd0000d632c10127f7dcc0bd00003506ddc0d632c10226020a323934 06dca63406ccffffbd0000326234066df4271eec623406ec62bd000032623406ec623406ec62bd00 003262ece1270220037e0000326439 02020202020202573256e00 c260bbd00003406c617d7bc35065d39340610ae66be00034 06cc000abd00003262 632c10127f7dcc0bd00003506ddc0d632c10226020a323934 06dca63406ccffffbd0000326234066df4271eec623406ec62bd000032623406ec623406ec62bd00 003262ece1270220037e0000326439 02020202020202573256e00 c260bbd00003406c617d7bc35065d39340610ae66be00>00034064fbd00002602 6f614fe6e4bd00002604c638e7e4358643003d00 d0000cc0450bd0000bd0000cc01cabd0000dca6bd0163bd0000dca6bd0000 bd000035067e0005cc00003406dca6bd000032623406dca63406ec62bd00003262cc00003406cc04 50bd000032623406cc04503406ec62bd00003262327eec64bd! Import _OFFSETBYP 39(both) Import OPENUP_4P 22(both) Import CLOSEUP 141(both) Import _POINTEROFP 150(both) Import _PRINTSCREEN 155(both) Reloc 0,113(both),0,53(both) Object dcac3406dcbe83000127054fe69f00b03406cc0000bd0000ede4dcb2dd241093282606ccffffbd00!T=$0000 Export EC_PRINT=$0005 Export EC_PUTLINES=$0012 Export EC_PRINTL=$0017 Import SUICIDE_ 215(both) Import WRITE__ 49(both) Import HSTOB_ 274(both) Import ISHEX_ 391(both) Import ISDIGIT_ 457(both),418(both) Import ISALPHA_ 432(both) Import _OFFSETBY!3406ec62bd000032623530 aee45ae6852041c103260b3430ece4bd000035302032c10226223430ece4bd00003406ece43406ec 643406cc01e6bd000032643262353027035a200c1f12e68026fcc63ee782c63c1f213520e7a016ff 836fa41f20a3e13934101f12e6a0c124261e4fe6a41027005531214f3424bd0000352!Errors 0 $0099 ; Length Import PRINTF_ Import SUICIDE_ 152(both) Import _PRINTSCREEN 149(both) Import CLOSEF_ 146(both) Import _HOLDIT 141(both) Import EOF_ 130(both) Import KYPUTB_ 121(both),109(both) Import TBREAK_ 116(both),104(both) Import FGETREC_ !Errors 0 $0041 ; Length Import SUFFIXST_ 57(both) Import DEF_DEVICE 45(both) Import _BMESSAGE 36(both) Import STRIPDISK 25(both) Import _SYNTAXCHK 20(both) Import CHECKOUTFNAME 15(both) Import EC_NAME 62(both),5(both) Export EC_DEFAULT=$0000 Reloc 0,54(b! 00dd24bd0000270edca63406cc00b7bd00003262c6ff2644cc00783406cc04003406ec64bd000032 648e04006f8bece4bd0000532726ece4bd0000261fbd0000d7b8270edca63406cc00a7bd00003262 c6ff26089ebc30019fbc20a73404dca63406ec63bd00003262ec63ddacbd0000dd24bd0000e6e027 037e000032!P 189(both),81(both) Import FIX_RANGE 29(both) Import OPENUP_4P 52(both) Import _POINTEROFP 198(both) Import CLOSEUP 205(both) Import _PRINTSCREEN 208(both) Reloc 0,324(both),0,251(both),0,168(both),0,109(both) Object 8e000020038effffdc26ddb2dc28ddb42008!426ede63f4f c13e26014c16003ec12b2723c12d271f4fbd00002619e6a4270c31214f3424bd0000352426f04fc1 3e260286022017e6a4270c31214f3424bd0000352426f04fc13e260286033510a7e227046f3f2002 1f1235041d396e756c00736f68007374780065747800656f7400656e710061636b0062656c006273!47(both) Import ZNDRETURN_ 138(both),135(both),101(both),32(both),29(both) Import SCREEN_ 65(both),20(both) Import CURPOS_ 61(both),16(both) Import OPENUP_4P 9(both) Import READ__ 6(both) Export EC_LOOK=$0000 Object ccffff3406cc0000bd000032623406be000030oth) Object 0dc826037e0000dca63406ccffffbd00003262bd0000dca6bd00001093a62606cc00097e0000dcc2 3406dca6bd00003262dcc23406cc0040bd000032627e00002e00 t OPENUP_4P 9(both) Import READ__ 6(both) Export EC_LOOK=$0000 Object ccffff3406cc0000bd000032623406be000030:64394f7574206f66206d656d6f72793a200041626f727465643a2000 ort CLOSEUP 141(both) Import _POINTEROFP 150(both) Import _PRINTSCREEN 155(both) Reloc 0,113(both),0,53(both) Object dcac3406dcbe83000127054fe69f00b03406cc0000bd0000ede4dcb2dd241093282606ccffffbd00!8e000020038effff3410bd00009eb0a6846de427026f 843412ccffff3406cc0000bd000032621f0235126de42702a7843420dcb2dd241093262606cc0001 bd0000dd2493282768cc04003406dc24bd00003262ec622708cc0400bd00e62006cc0400bd000034 06ece43406cc04003406ec66bd000032643262dca63406e 006874006c6600767400666600637200736f00736900646c65006463310064633200646333006463 34006e616b0073796e006574620063616e00656d0073756200657363006673006773007273007573 0000 1f213520e7a016ff 836fa41f20a3e13934101f12e6a0c124261e4fe6a41027005531214f3424bd0000352!890000e684c880e784bd0000bd0000cc00503406cc 04003406ec64bd000032648e04006f8b6f885010be000031a9000034204fe68427073001e7a04c20 f5c6204c81502204e7a020f73510e684c880e784bd0000bd0000261abd0000c120260cbd0000260e bd0000c12026f4ece4bd0000279cbd0000bd0000bd0000eceErrors 0 $0015 ; Length Import _MESSAGE 14(both) Import _NUMBEROFP 6(both) Import _SYNTAXCHK 1(both) Export EC_NUMBER=$0000 Object bd0000dc24bd00003406cc000cbd0000cc0000326239 Errors 0 $0012 ; Length Import SUICIDE_ 17(both) Import _SCREENSTART 14(both) Import SETUP_ 7(both) Import _SYNTAXCHK 1(both) Export EC_SETUP=$0000 Object bd0000cc0001bd0000c601d732bd00007e0000 ! c62bd0000326226299ebc30019fbcbd00 00270edca63406cc00dcbd00003262c6ff260edc2493b42708cc0001bd000020923404dcacbd0000 dd24ec61bd0000bd0000e6e027037e000032643941626f727465643a20001f011f023406e6801027 0077c13c1026006c3420bd01702604c63c205fc101261830013430ec64!Errors 0 $004c ; Length Import _SYNTAXCHK 1(both) Import COPYSTR_ 63(both) Import _DELETEPTOP1 34(both) Export EC_DELETE=$0000 Import _NUMBEROFP 18(both),11(both) Import FIX_RANGE 4(both) Import _PRINTSCREEN 68(both) Reloc 0,60(both) Object bd0000bd0000d1bd0000bd00007e0000 ETURN_ 138(both),135(both),101(both),32(both),29(both) Import SCREEN_ 65(both),20(both) Import CURPOS_ 61(both),16(both) Import OPENUP_4P 9(both) Import READ__ 6(both) Export EC_LOOK=$0000 Object ccffff3406cc0000bd000032623406be000030cb2dd24bd0000ddacdcb4bd000093acc30001ddccdcb43406dcb2bd000032622605 cc0000ddccdc26c30002109328260cdcb03406cc0046bd000032627e0000746578743a6500 Errors 0 $0014 ; Length Import SUICIDE_ 19(both) Import _MESSAGE 16(both) Import _SYNTAXCHK 1(both) Export EC_FREE=$0000 Object bd0000dcae93288300023406cc0012bd00007e0000 "Errors 0 $01a6 ; Length Export _SGETLINE=$0000 Import FLP_CURSORS 44(both),37(both) Import PRINTF_ 236(both) Import _CSTART 278(both) Import TPUTCURS_ 173(both),158(both) Import EOF_ 190(both) Import KYINDX_ 380(both) Export LINE_INPUT=$0031 Import LIFTC"56e0065786974007365745550006d6f6e49544f520074614c4b006469524543544f52590063 6154414c4f47006e414d450064656641554c5400736372415443480072454e414d45006d6f754e54 00636f505900646154450074694d45007461625345540068454c5000657845435554450066524545 0040007459504500"072696e74 7320666f726d6174746564207465787400000004a6043304a6043c04a6049a04a6049a04a6049f04 a1043304a1049f04a6044704a6044704a6049f04a6049f04ac049f04ac049f04ac043304ac049f04 ac049f04ac049f04ac045304ac045304ac043304ac046a04ac043304ac045304ac046a04ac045304 a"Errors 0 $006d ; Length Import IOERRSTA_ Import SET_MSGP Import _BMESSAGE Import PREFIXST_ 88(both),76(both),62(both),43(both) Import CHDDEVCD 33(both) Import CHKDSKDR 19(both) Import CHKIEEDV 16(both) Import CHKDEVNM 13(both) Import GSYSBLK_ 95(both)" Errors 0 $002f ; Length Import _PRINTSCREEN 46(both) Import FIX_RANGE 14(both) Import _SYNTAXCHK 11(both) Import ZLOSTR_ 6(both) Export EC_LOWER=$0005 Import ZUPSTR_ 1(both) Export EC_UPPER=$0000 Object cc00002003cc00003406bd0000bd00009eb2e6805a5aa6856f8" URTO_RPCP1 32(both) Import PUTCHAR_ 178(both),151(both) Export _GETLINE=$0005 Import TBREAK_ 201(both) Import SCREEN_ 308(both),294(both) Import TGETCURS_ 286(both),212(both),165(both),154(both),124(both) Import FGETCHAR_ 68(both) Reloc 0,385(both),0,348" 7072494e5400005361766573207465787400416c746572732074657874005365 61726368657320666f72206d6174636800536561726368657320666f72206e6f206d617463680050 757267652074657874004c6f61642074657874004175746f6d61746963207465787420656e747279 004475706c69636174652074657" c047604ac047604ac048404ac049f04ac043304ac049f04ac048b04ac043304a6043346696c654e 616d65002f737263682f7265706c0064657374696e6174696f6e005b46696c654e616d655d20746f 2046696c654e616d65006465766963652d6e616d65005b646174655d205b74696d655d007b746162 737d00636f6d" ,48(both),22(both),10(both) Import GIOBLK_ 5(both) Export DPARSE=$0000 Reloc 0,85(both),0,73(both),0,59(both),0,40(both) Object 34061f01bf0000ec04fd0000bd0000bd0000bd0000be00006f0a6d9f0068270fbd0000dc683406cc 0066bd00003262be00006d0b260edc683406cc0068bd0053416ec62adf8043516a7855c3a9c b42fe732627e0000 +keys.b09+text.b09"line.b09"dparse.b09"(both),0,254(both),0,233(both),0,79(both),0,74(both), 0,6(both),0,1(both) Object cc00352003cc003134060db9260acc00013406cc001820074fd6ba3406d6bbbd00003262bd0000ad f13406bd0000ece13996b920014f7f04005f3406e6e45c2775dcc0bd00005d27f8bd017be761bd01 552663e661c"874005472616e736665722074657874004d616b65207570706572 2063617365004d616b65206c6f77657220636173650053686f77206c696e65206e756d6265720052 756e20656469746f72004c6561766520656469746f72202620736176652074657874005365742041 434941206368697000456e746572204d4c206d"6d616e642d737472696e6700746578740000006c696e650072616e6765000000bd00 00cc0069ede3cc0127ede3cc03abede3cc0000ede3bd00008e0400cc2020ed818c045025f98e0414 cc5f20ed818c042e25f9aef8026d842716c65bf70400cc04013406ecf804bd05af3262c65de784cc 040a3406ec68bd05af32621b0003262200cdc683406cc006abd00003262 dc683406cc006cbd00003262c646be0000e70c3262393a00300031002400 both),76(both),62(both),43(both) Import CHDDEVCD 33(both) Import CHKDSKDR 19(both) Import CHKIEEDV 16(both) Import CHKDEVNM 13(both) Import GSYSBLK_ 95(both)"Errors 0 $01cb ; Length Import _BMESSAGE 134(both),118(both) Import PARSE_TO 123(both) Import _CHRGOT 1(both) Import _CSTART 149(both) Import TO_DISK_ 73(both) Import TO_DISK1_ 92(both) Import D0PREFIX__ 361(both) Import PUT_NAME 89(both) Import D1PREFIX"10e26026fe42759e661c1072d06c1092e0220026fe4c1062f40c109273cc17f272dc1 082729bd0000c1502620e661c1202d0c6de42608d6b9c10326026ae4e661bd0000bd00004abd0000 209a200bbd0000c10126044cbd0000e661bd00002086dcc01093ce2716bd0000260de661c1032707 bd000026022004c602d732"6f6e69746f7200456e746572202750415353544852 4f55474827206d6f6465004f6e6520636f6c756d6e206469726563746f72790054776f20636f6c75 6d6e206469726563746f72792028736f72746564290052656e616d65207465787400526564656669 6e6520617373756d6564206465766963650052656d6f76652"0af66ae6210ae026da427228e0414ece4bd05a42704c65be78034101f 20bd05af3262ece4bd05a42704c65de784c63af7042ecc042f3406ec66bd00003262cc0400bd0000 8e0400308bcc2e00ed84ae646d8026fcaf64be000030890000108e0400e6a4c880e7a4e6a02704e7 8020f8bd0000ae623004af62aee43001af"(both) Import ISDIGIT_ 446(both),436(both),421(both),16(both) Import _MESSAGE 336(both) Import FGETCHAR_ 305(both) Import KBDISABL_ 330(both) Import SKP_ALPHA 39(both) Import SKIP_PREFIX_ 394(both),356(both) Import ZUPSTR_ 52(both) Import OPENF_ 282(both"__ 384(both) Import FPUTCHAR_ 317(both) Import TBREAK_ 325(both) Import DS_READ 104(both) Import STRIPDISK 238(both),216(both) Import READ__ 249(both) Import ERROROUTER 296(both),269(both) Export EC_DCOMMAND=$0000 Import IOERRSTA_ 320(both),310(both),107"bd00000db9270497bbd7bae661c10e2610dca43406cc011abd00003262 c60de761e6e427055c27022003bd011de6e42603532009c1ff2604c60120015fe7e4cc0400bd0000 3586257300bd00003402c6503dc300003406a6624ac6503d1f0130890000108e0400e680c47fe7a0 ace426f63263e6a2c1202606108c03ff2"066696c652066726f6d206469736b00 4368616e6765206e616d65206f662066696c65206f6e206469736b00496e697469616c697a652064 69736b005472616e736665722066696c650053686f772f72656e616d65206461746520616e642074 696d650053686f772074696d652c2072656e616d65206461746520616e64ie48c00142605bd0000260a6df8041026ff2dbd0000bd00 007e000010830016270410830018391f02ae62e6a02704e78020f839 000ede3bd00008e0400cc2020ed818c045025f98e0414 cc5f20ed818c042e25f9aef8026d842716c65bf70400cc04013406ecf804bd05af3262c65de784cc 040a3406ec68bd05af32621"),256(both) Import CLOSEF_ 350(both),345(both) Reloc 0,246(both),0,230(both),0,222(both),0,207(both),0,198(both),0,179(both), 0,170(both) Object bd0000dcc61f019f68c6083404e684bd000027129e68e680c030e7e4c620e18027fc301f9f68bd00 009e68a6856f853406dc68bd0000"(both),99(both),78(both) Import IOERRBUF_ 110(both) Export EC_COPY=$007a Import EC_LOOK 152(both) Import SUFFIXST_ 241(both),233(both),225(both),219(both),210(both),201(both) Import SUICIDE_ 353(both) Import DEVNAME 161(both),140(both) Import WRITE__ 2746f46f21396fe258250e548e016ee18027066d8426f82002 6ae4e6e01d390102030a0b0c0d0f1011121300b600006fe28e019910a38427066ce46d8126f56d84 2704c60febe4326139637f9106963010ff61ff00000000 d0000e661bd00002086dcc01093ce2716bd0000260de661c1032707 bd000026022004c602d732"2074696d650053686f77 2f7365742074616273746f70730053686f7720636f6d6d616e642073756d6d617279004d6163726f 206b6579626f61726420656e7472790046726565206d656d6f727920617661696c61626c65005365 6e6420636f6d6d616e6420746f206469736b004578616d696e657320612066696c65005!18910b304001026003b7f0402cc04003406cc01c8 bd0000cc0450bd0163bd0000cc0450bd0000bd0000cc01cabd0000dca6bd0163bd0000dca6bd0000 bd000035067e0005cc00003406dca6bd000032623406dca63406ec62bd00003262cc00003406cc04 50bd000032623406cc04503406ec62bd00003262327eec64bd"9e683506a785e6e032736fe4e769c60fe76afc0000ed677f0000 1f406d9f00682703bd0000fc0000ed671f407d00002603bd00007f0000cc00003406cc000abd0000 3262bd00007d04502606cc0001bd0000cc0450bd0000c1052608dca6bd00007e0000c101265adca6 bd0000c1012651dca6bd0189fd0400cc0450bd0#Errors 0 $0142 ; Length Import LENGTH_ Import COPYSTR_ 152(both),107(both) Import COPY_ 299(both),249(both) Export _FETCHTEXT=$00ac Export _INSERTTEXT=$0000 Import SET_EOF_LINE 318(both),164(both) Import _OFFSETALL 4(both) Export OPENP_BYTESP1=$00d4 Exp#Errors 0 $0107 ; Length Import COPYSTR_ 28(both),13(both) Import COPY_ 82(both) Import PRINTF_ 106(both) Import _CSTART 132(both) Import _SCREENSTART 141(both) Export _TITLE=$0000 Import SPAWN_ 138(both) Import EC_DATE 135(both) Import GETDATE_ 79(both) Errors 0 $002c ; Length Import COPYSTR_ 29(both) Import DIRREADF_ 13(both) Export DREADF_=$0000 Object 340632e8d81f403406ece82abd0000108300012e14ece82e3406ec62bd00003262aee82e6f881c4f 5f32e82c39 #Import _GETLINE 9(both) Import TBREAK_ 274(both) Import _INSERTTEXTM 51(both) Import EC_NULL 478(both) Import EC_LIST 480(both) Import EC_PRINT 482(both) Import EC_PRINTL 484(both) Import EC_PUT 486(both) Import EC_PUTLINES 488(both) Import EC_CHANGE 490# ffbd0000bd00002703bd0000bd00002003bd0000ece4bd0000e661c1811027ffb932 6239e661c10d2710ece4bd0000e661c1811027ffa3326239bd0000c13f2610bd00002703326239dc a4bd000016ff8932620dc8270fdca43406cc0400bd00003262bd0000dc24ddb2ddb4cc0000ddccbd 01ae2650dcc63406bd00002# ort CLOSEP_BYTESP1=$010f Reloc 0,133(both) Object cc0001bd0000dc24ddb6dcacddaa7f04788e04003410e6842712c1202506c48026022004c620e784 300120eac620e18226046f8420f86df42739aee44fe684270d1f1230014ce18027fb810223ee4d27 22811f2302861fa7a08002e7a010afe431a63420ec# Import GETREC_ 120(both) Import MAKETIME2P 62(both) Reloc 0,103(both),0,25(both),0,10(both) Object 9e223088dd9fb03410cc0101bd000035103088e79fc23410cc00fbbd000035103088af9fa86f8430 88879fa66f843088af9fa46f84301f9fae32761f40bd00001f403406cc000b3406cc040034# Errors 0 $003d ; Length Import _BMESSAGE 30(both) Import _UPDATESCREEN 12(both) Import TBREAK_ 22(both) Export EC_LIST=$0000 Import _MESSAGE 55(both) Import _NUMBEROFP 3(both) Import _OFFSETALL 35(both) Object dcb2bd0000ddacdcb2dd24bd0000dc241093b42712bd# (both) Import EC_SEARCH 494(both),492(both) Import EC_DELETE 496(both) Import EC_GET 498(both) Import EC_INPUT 500(both) Import EC_ECHO 502(both) Import EC_MOVE 504(both) Import EC_UPPER 506(both) Import EC_LOWER 508(both) Import EC_NUMBER 510(both) Impo#70cc1082708c1092704326220303506ddc6bd0000bd000026037e0000 bd01ae2627bd0000c101270ac1032706c105270220015cc1102306cc000d7e00008e01dc3a3aec84 bd0000396fe2bd0000dc24bd00003406dcc63406dccc3406dcb2dd24bd0000ddacbd0000267edcb4 3406dc243406cc0001bd0000326426086d#623406ec62bd00003262326220c38e04005f5c 6d8026fb34045c4f3406dc24bd00d43262261e9e24e6e45ce7803410cc0400bd000032629e24e6e4 3ae784bd0000cc00003263391f01e6805a340410ae636ae42715e680c120240ba6806ae4a7a05a26 fb2002e7a020e76fa43261393406327cdc281f01eb848900ede4e#06bd00 00bd000032648e04006f0b3410dcae93208300043406cc008fbd000032e810cc00503406cc0400bd 000032628e04006f8b1f10bd0000cc0000bd00007e00000c256e454449544f5220203a436f707972 696768742031393834206279204a6f6520426f73746963256e256e20256420627974657320667265 652eS00002706cc0003bd0000dcbcbd000020e210 9328260fdcbe8300013406cc000fbd000032625f1d39 $comm.b09 #omemory.b09#title.b09#dir.b09#rt EC_RUN 512(both) Import EC_EXIT 514(both) Import EC_SETUP 516(both) Import EC_MONITOR 518(both) Import EC_TALK 520(both) Import EC_DIRECTORY 522(both) Import EC_CATALOG 524(both) Import EC_NAME 526(both) Import EC_DEFAULT 528(both) Import EC_SCRATCH 5#662703bd00005f275fdc24bd0000ddacc6ffe766dcb4bd 00003406bd0094350626493406cc04003406dca4bd00003262ec64bd0000bd0000ec62d3cced62ec e493ccede4dccc260dcc0001bd0000dd24bd0000ddacece1bd0000ddb4dc2410932824051093b423 805f2002c6ffe762ece4ddccec66ddacbd0000dd24bd0368ed6293ae2222ece4a3643406 ec66e36a3406ec68bd00003264dc28e368dd28dcb4e368ddb4cc000032663934069e28e6843a3410 ec62e3663406ec62a3643406ec663406ec64bd000032623262dc28a368dd28dcb4a368ddb4bd0000 326639 fb810223ee4d27 22811f2302861fa7a08002e7a010afe431a63420ec256e256e446174653a202573256e54696d653a202573256e256e456e74657220646174652061 6e642074696d652e256e006469736b2e00746578743a6500 00035103088e79fc23410cc00fbbd000035103088af9fa86f8430 88879fa66f843088af9fa46f84301f9fae32761f40bd00001f403406cc000b3406cc040034#Errors 0 $05bb ; Length Import LENGTH_ 1358(both) Export _COMMAND_NUM=$0000 Import _CHRGOT 78(both),1(both) Import _CHRGET 54(both),45(both) Import _SYNTAXCHK 1199(both) Import COPYSTR_ 1350(both) Import TABLELOO_ 71(both) Import PUTNL_ 1404(both) Import#30(both) Import EC_RENAME 532(both) Import EC_MOUNT 534(both) Import EC_COPY 536(both) Import EC_DATE 538(both) Import EC_TIME 540(both) Import EC_TABSET 542(both) Import EC_HELP 544(both) Import EC_EXEC 546(both) Import EC_FREE 548(both) Import EC_DCOMM#000e6621d3267396fe29ec6e680c12f2706 c15c2702201a86256d842714e184270aa18426023001300120ee6d0127026ae4e6e01d39022a0000 00000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000#),0,1043(both), 0,1041(both),0,1039(both),0,1037(both),0,1035(both),0,1033(both),0,1031(both), 0,1029(both),0,1027(both),0,1025(both),0,1023(both),0,1021(both),0,1019(both), 0,1017(both),0,1015(both),0,1013(both),0,1011(both),0,1009(both),0,1007(both), 0#h),0,963(both),0,961(both),0,959(both), 0,957(both),0,955(both),0,953(both),0,951(both),0,949(both),0,947(both), 0,945(both),0,943(both),0,941(both),0,939(both),0,68(both) Object bd0000dcc63406cc00003406d6c826046ce42039c123271bc12f2717c15c2713c140270fd6c# SCREEN_ 1383(both) Import _HOLDIT 1436(both) Export EC_HELP=$04ae Import ZNDCLR_ 1222(both) Import CURPOS_ 1379(both) Import SUICIDE_ 1442(both) Import _PAUSE 1424(both) Import _PRINTSCREEN 1439(both) Reloc 0,1329(both),0,1322(both),0,1309(both),0,1287(#AND 550(both) Import EC_LOOK 552(both) Import _MESSAGE 231(both) Import KBENABLE_ 3(both) Import _NUMBEROFP 378(both),320(both),309(both),269(both),252(both) Import _OFFSETALL 48(both) Import ___NEG 198(both) Import _OFFSETBYP 373(both) Import _PRINTSCRE000000000000cc0001bd0000 00ddacc6ffe766dcb4bd 00003406bd0094350626493406cc04003406dca4bd00003262ec64bd0000bd0000ec62d3cced62ec e493ccede4dccc260dcc0001bd0000dd24bd0000ddacece1bd0000ddb4dc2410932824051093b423 805f2002c6ffe762ece4ddccec66ddacbd0000dd24bd0#,1005(both),0,1003(both),0,1001(both),0,999(both),0,997(both),0,995(both), 0,993(both),0,991(both),0,989(both),0,987(both),0,985(both),0,983(both), 0,981(both),0,979(both),0,977(both),0,975(both),0,973(both),0,971(both), 0,969(both),0,967(both),0,965(bot"9c101 26076c61bd000020f320056c61bd0000e66127114f3406ec643406cc0055bd00003264e7e4bd0000 e6e4326439200020007072494e54007072494e540070555400705554006348414e4745002f005c00 64454c4554450067455400694e505554006543484f006d4f5645007550504552006c4f5745520023 00727#both),0,1271(both),0,1212(both), 0,1207(both),0,1202(both),0,1073(both),0,1071(both),0,1069(both),0,1067(both), 0,1065(both),0,1063(both),0,1061(both),0,1059(both),0,1057(both),0,1055(both), 0,1053(both),0,1051(both),0,1049(both),0,1047(both),0,1045(both#EN 422(both),56(both) Import FIX_RANGE 247(both) Import _POINTEROFP 417(both),385(both) Reloc 0,476(both),0,325(both),0,234(both),0,201(both),0,160(both) Object 327ebd0000bd0000bd0000ede40db927416de4272ddc241093262723109328271ee661c1032718dc 24bd0000ccff$Errors 0 $010c ; Length Import _BMESSAGE 14(both) Import LENGTH_ 128(both) Import _REPRINTROW 193(both) Import _SYNTAXCHK 1(both) Import _CLRCMD 40(both) Import _SCRNINSERT 49(both) Import PRINTF_ 67(both) Import _SGETLINE 78(both) Import COPYSTR_ 169(bo$Errors 0 $01d2 ; Length Import LENGTH_ 173(both),91(both) Import _CSTART 6(both) Import _SCANNER 23(both) Import _CHRGOT 58(both) Import _CHRGET 105(both),76(both),67(both) Export _SEARCHLINE=$01a7 Import _UPDATESCREEN 45(both) Import _FETCHTEXT 432(bothErrors 0 $001d ; Length Import SUICIDE_ 28(both) Import RENAMEF_ 25(both) Import STRIPDISK 18(both) Import _BMESSAGE 12(both) Import PARSE_TO 1(both) Export EC_RENAME=$0000 Object bd00007d04502606cc0001bd0000cc0450bd00003406dca6bd00007e0000 0c48200e3e410a3e900ac2309bd0000cc0011bd0000ec62dbc4 89003406ec643406ec62bd000032623262ec623406ec68bd00003262ece4e36232e900a839 2ec648300012602ede4ece42708 351030013410209eec6227117f0478dc24bd0000ccffffbd0000bd0000ec62326639ae6232e9ff60 1f423436ec643406ecErrors 0 $0015 ; Length Import SUICIDE_ 20(both) Import _SCREENSTART 17(both) Import OPEN_KEY 10(both) Import MONITOR 7(both) Import CLOSE_KEY 4(both) Import _SYNTAXCHK 1(both) Export EC_MONITOR=$0000 Object bd0000bd0000bd0000bd0000c601d732bd00007e0000 $ th) Import _SCRNDELETE 256(both) Import _DOCHAR 223(both) Import _UPDATESCREEN 37(both) Import STREQ_ 104(both) Export EC_INPUT=$0000 Import CURPOS_ 70(both),62(both) Import _INSERTTEXTM 188(both) Import SUICIDE_ 239(both) Import TGETCURS_ 73(both) Impor$ ) Export EC_SEARCH=$0000 Import SUICIDE_ 52(both) Import _MESSAGE 181(both),149(both) Export _MATCHP1TOP=$00c0 Import ISDELIM_ 293(both),222(both) Import _NUMBEROFP 40(both) Export _PARSESRCH=$0039 Reloc 0,445(both),0,369(both) Object dcc6830001bd0000dc2$ Errors 0 $0210 ; Length Import _BMESSAGE 527(both) Export _SCANNER=$0089 Export _CHRGET=$01be Import _SEARCHLINE 207(both) Export _CHRGOT=$01b0 Export _CSTART=$01c3 Export _SYNTAXCHK=$01ff Export MUST_MORE=$0204 Export _FETCHNUM=$01e7 Export _FETCHLINES=$ d0000350434042706c12f2708200ac15c27022604c6ff2012dc2410a369260fcc00 06bd0000ec63dd245f1d326539ec61bd0000dd2420c8dd24326439dc24ede3cc0001ddbcbd01b0c1 2a260bbd01bedc26ddb2dc282054c17c260bbd01bedc28ddb2dc262045bd00002754dc24ddb2d6c8 c12c2610bd01beece4dd24bd$Errors 0 $01b7 ; Length Export _BMESSAGE=$0000 Import PRINTF_ 37(both) Import SUICIDE_ 46(both) Export _MESSAGE=$0004 Import _MSGREADY 24(both) Reloc 0,8(both) Object 86ff20014f34028e00335a27086d8026fc6d8426f53410bd0000ec673406ec673406ec64bd000032 64a662$t _NUMBEROFP 19(both) Import _OFFSETALL 253(both),34(both) Reloc 0,242(both),0,234(both),0,96(both) Object bd0000dcb21093b42706cc0004bd0000dd24bd0000ddacdc241093282606ccffffbd0000bd0000bd 00006f9f00a6327ebd0000c603d7b9d6bb5a86503dfd0000dca6bd0000fc0000bd$4ede3dcb43406dcb23406dcbcbd0000326434042704dc24ed61ec61dd24bd 0000ddacbd00006de02603bd0000326239bd00003404dca83406bd0000270ce1622604bd00005f27 02200fece41093a82607bd0000d3a8ede45f2744c1252638bd0000c15e270ec124270ac12e2706c1 7e27022002ca80c12a261daee49ca8$$010b Import DECIMAL_ 506(both) Export FETCH_LINE=$0000 Import _MESSAGE 242(both),197(both) Import ISALPHA_ 460(both) Import ISDIGIT_ 471(both) Import _NUMBEROFP 406(both),130(both) Import _OFFSETBYP 372(both),357(both),256(both),165(both),91(both),62(bo$0000273edc242026dcb2dd24d6c8c15e260bbd01beccffecbd000020 11c126260bbd01becc0014bd00002002dcb2ddb41093b22404c6ff2002c6011dddbcc6ff20015f34 04ec61dd24bd0000ddac35141d39dcb41093b2240a3406dcb2ddb43506ddb239bd01c5c1202605bd 01be20f75d39dcc6c30001ddc6e69f00c6d$27037e000032633953617920776861743f004d697373696e672046696c656e616d652e0021 00496c6c6567616c206c696e652072616e67652e00496c6c6567616c207365617263682073747269 6e672e0053656172636820737472696e67206e6f7420666f756e642e005365617263682073747269 6e672072657175697$0000d7babd0000 ede4c10310270091d6325a10260092cc010b3406cc0400bd00003262102600816f9f00a66ae42643 c60de761cc0400bd0000c1502d358e0400308be6828c04502d035d20248c0427271fc120261b3001 3410dca63406ec62bd000032623510e682c12027fa30016f8426d0bd00003401bd0000dccc830$2708e682c1fe27022009cc0005bd0000ece13986aaa780afe4 aee4e780afe4209a6ff4dca8bd0000260acc0008bd0000c6ff20015f1d3263390fc43406cc000034 06ae66e6802711c1fe260d0dc42609af66ae62e61fbd0000102700bd6df806102700b6ae66e680af 666a61e7e4102700a86f61c1de260bec6210a3682$th) Import ___MUL 162(both) Import SKP_NUMS 492(both) Import _PARSESRCH 202(both) Export FIX_RANGE=$019e Reloc 0,501(both),0,440(both),0,433(both),0,366(both),0,351(both),0,332(both), 0,325(both),0,310(both),0,299(both),0,284(both),0,277(both),0,156(both7c8bd00002704c601200dd6c8bd00002704c6032002c6 02d7c94fd6c839dcc6dd68bd0000270e3406d3c6bd01c3dc68bd00003262390dc82608390dc82703 392006cc0001bd0000 c1 2a260bbd01bedc26ddb2dc282054c17c260bbd01bedc28ddb2dc262045bd00002754dc24ddb2d6c8 c12c2610bd01beece4dd24bd$265642e004e6f2073656172636820737472696e6720646566696e65642e0049 6c6c6567616c2064656661756c74206465766963652e002553002553202d204c696e657320747261 6e736665727265642025442e002544004e6f206c696e652072616e676520616c6c6f7765642e0025 44204f6363757272656e63657320001 ddcc35012623dc24ddb6dcacddaae661c10d1027ff52bd0000e661c10a270d2005bd00f90fb97e00 00bd00f90fb9326239cc0001bd0000bd0000dc24ddb6dcacddaa392e00 d0000ddacdc241093282606ccffffbd0000bd0000bd 00006f9f00a6327ebd0000c603d7b9d6bb5a86503dfd0000dca6bd0000fc0000bd$7e510260097c1a426096df80227d81026008ac1 fe2612e6f80227cbe7e43410bd0000351010270074e6e4c1aa2658e680af66e7e4c1ae271610ae62 e6a02708e1e426040cc420f4313f10af6220356df806260eae626d8027040cc420f8c6ff201fec68 3406ec683406ec66bd00c23264260eae626d8427083001af620c$), 0,119(both),0,110(both),0,99(both),0,81(both),0,70(both),0,52(both), 0,36(both) Object d6c8c12f270cc15c2708d6c9c10327022017dc28ede3dc26eb9f002689003406cc0001bd00893264 5f26022050d6c8c12b2619bd01bedc283406cc0001bd00003406cc0001bd008932642031c12d2619 bd,e6f7567682066726565206d656d6f72792e000000 646566696e65642e0049 6c6c6567616c2064656661756c74206465766963652e002553002553202d204c696e657320747261 6e736665727265642025442e002544004e6f206c696e652072616e676520616c6c6f7765642e0025 44204f6363757272656e63657320$6368616e6765642e002544206c696e6573206f6620746578742e 004d656d6f72792066756c6c2e005265706c6163696e6720737472696e6720746f6f206c6f6e672e 002544206279746573206f662066726565206d656d6f72792e002a00496c6c6567616c2064657374 696e6174696f6e206c696e652e004e6f7420656$Errors 0 $022f ; Length Import _REPRINTROW 64(both),59(both) Import _BMESSAGE 558(both) Export _COMMANDER=$0000 Import _CLRCMD 6(both) Import _CHRGOT 351(both),190(both),105(both) Import _CHRGET 112(both) Import _COMPRINT 122(both) Import COPYSTR_ 341(boc420e132643916ff60c1ae2605e6 f802270dae62e1802607af620cc416ff4ae6611d3264396fe29ea634106f82bd0000dca63406dca8 3406ec64bd00c03264e762260835106d80341026e5e6621d326339 6ae62e61fbd0000102700bd6df806102700b6ae66e680af 666a61e7e4102700a86f61c1de260bec6210a3682$01bedc263406ccffffbd00003406ccffffbd008932642014c12e2605bd01be200bc1242607bd01 bedc28dd243406dc24bd0000ddacece1399e243416ec66dd24d6c9c1032612ece43406bd01e78300 01bd0000bd0000205dd6c8c12f2708c15c2704dc24204f34049ec6e601e1e42608cc0008bd000020 2bbd0000dc24b#th),141(both) Import _CLRMSG 301(both),146(both) Import _COMMAND_NUM 206(both),169(both) Import _SCANNER 290(both) Import _CSTART 348(both) Import _DELETELINE 42(both) Import _DOCHAR 91(both),69(both) Import SPAWN_ 241(both) Import _FETCHLINES 193(both) % ; ^ # OF MATCH OR 0 IF NO MATCH. EXPORT ___RET = $B05A ;PULLS .X BYTES OFF STACK, .X THEN = .D. EXPORT ___RET2 = $B05D ;SAME AS ABOVE BUT ALSO PULLS OFF .P1. EXPORT ___MUL = $B060 ;.P * .P1 AND UNSTUFFS .P1 ^%HAR FROM SERIAL PORT I/OB .P. EXPORT SBREAK_ = $B09C ;CHECK ACIA [.P] FOR BREAK. EXPORT DIROPENF_ = $B09F ;OPEN FILE NAME [.P] FOR DIRECTORY ^ I/OB. EXPORT DIRREADF_ = $B0A2 ;READ A DIRECTORY FROM .PI/OB TO [.P1] ^ ERROR #. EXPORT DIRCLOSEF_ =%B AT END OF RECORD ^ T/F. EXPORT EOF_ = $B0DE ;IS FILE .PI/OB AT END OF FILE ^ T/F. EXPORT ERRORF_ = $B0E1 ;CONDITION OF FILE .PI/OB ^ ERROR NUMBER. EXPORT ERRORMSG_ = $B0E4 ;ERROR MESSAGE ^ POINTER TO ERROR STRING. EXPORT MOUNT_ = $B%Errors 0 $007f ; Length Import KEYBOARD__ 113(both),62(both) Import PREFIXST_ 43(both) Import COPYSTR_ 52(both) Import _SCREENSTART 91(both) Import _COMMANDER 94(both) Import _TITLE 30(both) Import FPUTCHAR_ 79(both) Import READ__ 108(both) Import WRITE_% Errors 0 $027c ; Length Import _BMESSAGE 594(both),136(both),122(both),15(both) Import _REPRINTROW 70(both) Import LENGTH_ 565(both),556(both) Import _CLRCMD 37(both) Import _CHRGET 263(both),252(both),229(both),108(both) Import _SYNTAXCHK 147(both) Impo% INTEGER VALUE. EXPORT ___NEG = $B063 ;CHANGE .P TO TWO'S COMPLIMENT ^ -INTERGER. EXPORT ___DIV = $B066 ;.P1 / .P AND UNSTUFFS .P1 ^ QUOTIENT VALUE. EXPORT ___MOD = $B069 ;.P1 / .P AND UNSTUFFS .P1 ^ REMAINDER VALUE. EXPORT _RSHIFT =% $B0A5 ;CLOSE DIRECTORY .PI/OB. EXPORT SYSIOINI_ = $B0A8 ;SETUP THE SYSTEM. EXPORT INITSTD_ = $B0AB ;INITIALIZE STANDARD I/O DEVICES (IE. TERMINAL). EXPORT OPENF_ = $B0AE ;OPEN A FILENAME [.P] WITH MODE [.P1] ^ I/OB. EXPORT CLOSEF_ = $B% 0E7 ;MOUNT DISK ACCORDING TO STRING [.P]. EXPORT SCRATCHF_ = $B0EA ;SCRATCH FILE [.P]. EXPORT RENAMEF_ = $B0ED ;RENAME FILE [.P] TO NAME [.P1]. EXPORT REQUEST_ = $B0F0 ;SIMULATED MENU REQUEST WITH .P?S. EXPORT SETDATE_ = $B0F3 ;SET THE D% _ 57(both) Import KBENABLE_ Export OPEN_KEY=$006b Import OPENF_ 116(both),65(both) Import CLOSEF_ 105(both),86(both) Export CLOSE_KEY=$0066 Reloc 0,40(both),0,27(both) Object 9e209f269f248602c601ed81ed849f28cc0001ddbefc04003406bd006bbd0000f60221c1012631%rt COPYSTR_ 611(both),512(both),451(both) Import PREFIXST_ 624(both),536(both) Import _DELETELINE 418(both),52(both) Import _UPDATESCREEN 20(both) Import _FETCHNUM 95(both) Import _FETCHTEXT 303(both) Import _GETLINE 40(both) Import TBREAK_ 339(both),154% $B06C ;ROLLS .P1 RIGHT BY .P BITS ^ VALUE. EXPORT _LSHIFT = $B06F ;ROLLS .P1 LEFT BY .P BITS ^ VALUE. EXPORT CARRYSET_ = $B072 ;IS THE CARRY FLAG SET ^ T/F. EXPORT PASSTHRU_ = $B075 ;PASSTHRU MODE TO THE HOST. EXPORT TIOINIT_ = $B078 ;I%0B1 ;CLOSE FILE .PI/OB. EXPORT FSEEK_ = $B0B4 ;SET FILE .PI/OB TO RECORD # .P1. EXPORT PRINTF_ = $B0B7 ;PRINT STRING [.P] WITH .P?S TO TERMINAL. EXPORT PUTREC_ = $B0BA ;PUT STRING [.P] OF LENGTH .P1 TO TERMINAL. EXPORT PUTCHAR_ = $B0B%ATE TO STRING [.P]. EXPORT GETDATE_ = $B0F6 ;DATE ^ POINTER TO DATE STRING. EXPORT SETTIME_ = $B0F9 ;SETS TIME TO [.P] (4 BYTES LONG). EXPORT GETTIME_ = $B0FC ;PUTS THE TIME TO [.P] (4 BYTES LONG). EXPORT KBENABLE_ = $B0FF ;ENABLE THE KEYBcc 007dbd0000dca43406ec62bd00003262cc00003406cc0000bd000032623406cc000e3406ec62bd00 0032623506bd00003262bd0000bd0000d632c10124f7dcc07e0000cc00003406cc0000bd00003262 ddc0ddce39672000 30(both) Import FPUTCHAR_ 79(both) Import READ__ 108(both) Import WRITE_%(both) Export EC_CHANGE=$0000 Import _INSERTTEXTM 427(both),67(both) Import _MESSAGE 205(both) Import _MATCHP1TOP 322(both) Import _OFFSETALL 424(both),58(both) Import _OFFSETBYP 178(both) Import FIX_RANGE 86(both) Import _PARSESRCH 139(both) Import _POI%NITIALIZE LOCAL TERMINAL. EXPORT TPUTCHR_ = $B07B ;PUT A CHARACTER .B TO TERMINAL. EXPORT TGETCHR_ = $B07E ;GET A CHARACTER FROM TERMINAL ^ CHARACTER. EXPORT TBREAK_ = $B081 ;CHECK FOR STOP KEY ^ T/F. EXPORT TGETCURS_ = $B084 ;GET CURSOR %D ;PRINT CHARACTER .B TO TERMINAL. EXPORT PUTNL_ = $B0C0 ;SKIP TO NEW LINE ON TERMINAL. EXPORT GETREC_ = $B0C3 ;GET STRING TO [.P] OF LENGTH .P1 ^ ACTUAL #. EXPORT GETCHAR_ = $B0C6 ;GET CHARACTER FROM TERMINAL ^ CHARACTER. EXPORT FPRINTF%OARD. EXPORT KBDISABL_ = $B102 ;DISABEL THE KEYBOARD. EXPORT TIMEOUT_ = $B105 ;SET THE TIME-OUT CONSTANT OF .PI/OB TO .P1. EXPORT SYSREAD_ = $B108 ;SAME AS FGETREC_ BUT READS FROM PRESENT RECORD. EXPORT SYSWRITE_ = $B10B ;SAME AS FPUTREC_ B%234 06cc000ebd00003262326439dca63406d6c82724c12f2720c125260fbd0000c1262706c17e270220 02ca80e7f4351030013410bd000020d86ff4c12f2603bd00003262393406cc00003406cc04003406 dc241093261027008c10932810270085ece43406dc24bd000032627f03ffcc04003406dca83406ec 64bd000%NTEROFP 190(both) Import _PRINTSCREEN 588(both),195(both) Reloc 0,368(both),0,161(both),0,144(both) Object 0dc82647dcb21093b42706cc0004bd0000dd24bd0000dc24109326232d10932824280cb9bd0000bd 00004d2c18c1032714dc24bd0000ccffffbd0000ddb6dcacddaabd0000bd00000a%POSITION ^ .A = ROW, .B = COLUMN. EXPORT TPUTCURS_ = $B087 ;SET CURSOR POSITION TO ROW .A AND COLUMN .B. EXPORT TSETCHAR_ = $B08A ;SET KEYBOARD BY .P, 1 = STANDARD, 2 = APL. EXPORT TABSET_ = $B08D ;SET TAB STOPS ACCORDING TO [.P] TABLE. EXPORT%_ = $B0C9 ;PRINT STRING [.P1] WITH .P?S TO .PI/OB. EXPORT FPUTREC_ = $B0CC ;PUT STRING [.P1] OF LENGTH .P2 TO .PI/OB. EXPORT FPUTCHAR_ = $B0CF ;PUT CHARACTER .P1 TO .PI/OB. EXPORT FPUTNL_ = $B0D2 ;MOVE TO NEXT RECORD IN FILE .PI/OB. EXPOR%UT WRITES TO PRESENT RECORD. EXPORT SYSNL_ = $B10E ;MOVE .PI/OB TO NEW RECORD, IF P1><0 THEN CLR ERRS. EXPORT INTPOW10_ = $B11A ;INTEGER POWERS OF 10. EXPORT DEVLIST_ = $B124 ;DEVICE NAME LIST. EXPORT SETUP_ = $AD48 ;SETUP ACIA CHIP. E%03264260aaee4e680274aafe420e4bd00002641ec6427098300012704ed642028cc040034 06dca63406ec64bd01b23264ede42714830001ede4ae623001af62ec648300012602ede4ece42708 351030013410209eec6227117f0478dc24bd0000ccffffbd0000bd0000ec62326639ae6232e9ff60 1f423436ec643406ec%b939cc00003406 cc00013406bd0000d6c9c1032607bd0000ede4200bd6c8c12a2605bd00006f61d6c8c12f2706cc00 07bd00009ec6e601c12f2606cc0008bd0000bd00002642bd00d4bd0000dcb2dd24bd0000261dece4 bd010ce362ed62dc241093b4240dcc0001bd0000dd241093b423dedcacbd0000dd24bd0000ec6% TABGET_ = $B090 ;CURRENT TAB STOPS ^ POINTER TO TABSTOP TABLE. EXPORT SIOINIT_ = $B093 ;SET ACIA [.P] TO BAUD .P1, PARITY .P2, STOPS .P3. EXPORT SPUTCHR_ = $B096 ;PUT BYTE .P1 TO I/OB .P, THAT IS THE ACIA. EXPORT SGETCHR_ = $B099 ;GET C%T FGETREC_ = $B0D5 ;GET RECORD FROM FILE .PI/OB TO [.P1] OF MAX ; LENGTH OF .P2 ^ ACTUAL # CHARS GOTTEN. EXPORT FGETCHAR_ = $B0D8 ;GET CHARACTER FROM FILE .PI/OB ^ CHARACTER. EXPORT EOR_ = $B0DB ;IS FILE .PI/O7XPORT MONITOR_ = $F020 ;MACHINE LANGUAGE MONITOR. D. EXPORT TIMEOUT_ = $B105 ;SET THE TIME-OUT CONSTANT OF .PI/OB TO .P1. EXPORT SYSREAD_ = $B108 ;SAME AS FGETREC_ BUT READS FROM PRESENT RECORD. EXPORT SYSWRITE_ = $B10B ;SAME AS FPUTREC_ B$64bd00003262aee4d6c46d8527189ea86f1f6d8427106d8026fcc6fe301fe1 8226040ac420f8ae64e680273cc1a62636301f341030013410ec623406ec62bd000032623262d6c4 ae623ae68434146f84ec633406ec67bd000032623514e7844fd6c4e3e11f0120c0ec64bd00003406 ece900acbd0000e3e900ac830078d&C3 H & April 19, 1985 John A. Toebes, VIII Apartment 808 1301 S. Arlington Ridge Rd Arlington, VA. 22202 Dear John, Thanks for the assembler source, it works great. This disk includes the source to &ollowing command will now work. The STOP key is used to stop its infinite process. c*/ %*/ Lines in BEDIT are now allowed to be up to a MAXIMUM length of 120 characters long. This limit is rather arbitrary (the theoretical maximum is 'C3N 19& not a string of 6. c/%~text%~/list This means that using the meta "%~" by itself will just not work. The result may even be disasterous. The mED command of "#$" will still not work in BEDIT, but instead, anytime there is a GOTO to th& mal text on screen) the command "?" will retreive the previous command. Entering "?" while these commands are in progress will not work (BEDIT takes the newly entered command and puts it into the command buffer, so entering "?" would result in "?" being& BEDIT that is designed to work with CLM. The CLM command "% bedit filename" will load in the editor and automatically load in the filename as well. The BEDIT command "exit filename" will now save the current text to the specified filename before re& 253 characters) but is imposed by the size of the working buffers. The occurance of the "Replacing string too long." error should be less frequent because of this. When using the DELETE command (any form) that results in all text in the editor bein& EXPORT SPAWN_ = $B000 ;SPAWN A PROCESS TO ROUTINE STARTING AT .P. EXPORT SUICIDE_ = $B003 ;HAS SOMETHING TO DO WITH ABOVE. EXPORT CONBINT_ = $B006 ;SET INTERUPT # .P1 TO ROUTINE AT .P IN BANK. EXPORT BANKSW = $B009 ;A SUB TO HERE PERF&e end of the text BEDIT will report the number of lines of text in memory. Thus, the command "$" will perform the same as "#$" in mED. IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT The search and not-search text mN retreived!). Sincerely, The problem with the command buffer getting cleared when using TYPE, CATALOG, DIRECTORY, or HELP has mostly been corrected. When these commands are through (ie. nothing but nor&turning to CLM. The EXEC command may now have parameters. This version of BEDIT has the bugs fixed that you reported to Dick Barnes. I would have included the FILE command, but don't have enough room to do so without exceeding three banks. If you&g removed then the default filename will be changed to "text:e". This feature is not present when using the PF2 key. The meta character "%^" now represents the 'null' that starts every line (including a null line). So the following command will ins&ORMES A BANK JUMP; BNK,DEST. EXPORT BANKINIT_ = $B00C ;SETS .U TO $02FF AND CLEARS BANK COPY. EXPORT STOI_ = $B00F ;CONVERT STRING [.P] ^ INTEGER IN .D. EXPORT ITOS_ = $B012 ;CONVERT INTEGER .P1 TO STRING AT [.P]. EXPORT ITOHS_ = $B0&ust now be surrounded by the same character. LEGAL ILLEGAL *\.asm\d *\.asm/d c/text/list c/text\list /test/ \test/ \test \test\ \ / Of course, the only delimiter allo&OWERCASE ^ CHARACTER. EXPORT ZLOSTR_ = $B039 ;FORCE STRING TO LOWERCASE. EXPORT ZUPSTR_ = $B03C ;FORCE STRING TO UPPERCASE. EXPORT STREQ_ = $B03F ;DOES STRING [.P] = STRING [.P1] ^ T/F. EXPORT EQUAL_ = $B042 ;DOES [.P] = [.P1] FOR L& would like to add the FILE command it is easy to do so. Examine the "exit.asm" file for the clues as to how to do it and update the "help.asm" and "comm.asm" files to include the new command (just add the new command to the lists in those files). &ert a "!" before every line in the text. *c/%^/!/ The meta character "%$" now represents the 'null' that ends every line (including a null line). So the following command will add a "!" to the end of every line in the text. *c/%&15 ;CONVERT INTEGER .P1 TO HEX STRING AT [.P]. EXPORT HEX_ = $B018 ;CONVERT .B ASCII DIGIT ^ INTEGER IN .B. EXPORT BTOHS_ = $B01B ;CONVERT BINARY # [.P] OF LENGTH .P1 TO [.P2]. EXPORT HSTOB_ = $B01E ;MAKE HEX STRING [.P] TO BINARY A&wed in a CHANGE command is the "/". All uses of "//" or "\\" are now illegal. The single "/" or "\" on the command line is just a form of "//" or "\\" but still remains legal. */;/i This command will now work. A cursor down will result in going t&ENGTH OF .P2 ^ T/F. EXPORT LENGTH_ = $B045 ;FOR STRING [.P] ^ LENGTH. EXPORT COPYSTR_ = $B048 ;MOVE STRING [.P] TO LOC. [.P1]. EXPORT COPY_ = $B04B ;MOVE MEMORY FROM [.P] TO [.P1] OF LENGTH .P2. EXPORT PREFIXST_ = $B04E ;SQUEEZE STRING&The file "devedit" functions like BEDIT except that predefined assembler keywords will automatically jump to upper case. Dick probably already told you about the assembler3.0 giving an error on a line like: ldb #-1 When these errors&$/!/ This means that a null line of text may be refered to by using the two meta characters together, as in the following command. */%^%$/d Because the above two meta characters represent a null and not an actual character, the follow&T [.P1] ^ # BYTES. EXPORT ISALPHA_ = $B021 ;IS .B AN ASCII LETTER ^ T/F. EXPORT ISDIGIT_ = $B024 ;IS .B AN ASCII DIGIT ^ T/F. EXPORT ISDELIM_ = $B027 ;IS .B A NON-ALPHANUMERIC CHARACTER ^ T/F. EXPORT ISHEX_ = $B02A ;IS .B AN ASCII HEX D&o the next insert line and the STOP key will end the sequence. The problem with the command buffer getting cleared when using TYPE, CATALOG, DIRECTORY, or HELP has mostly been corrected. When these commands are through (ie. nothing but nor% [.P] BEFORE STRING [.P1]. EXPORT SUFFIXST_ = $B051 ;TAG STRING [.P] TO END OF STRING [.P1]. EXPORT DECIMAL_ = $B054 ;ASCII STRING [.P] OF LENGTH .P1 ^ INTEGER VALUE. EXPORT TABLELOO_ = $B057 ;SEARCH TABLE [.P] WITH STRING [.P1] OF LENGTH .P2 & occurred I noticed that the line number given for the error in the assembler was actually one larger then the line the error was on in the "asm" source. This version of BEDIT should work with the HOST, but I will need you to verify this. The f&ing commands will work but are redundant. *c/%^/!%& *c/%$/%&! When using the meta character "%~", remember that it does not represent a 'real' character. This means that the following CHANGE command will replace a string of 4 characters, &IGIT ^ T/F. EXPORT ISUPPER_ = $B02D ;IS .B AN ASCII UPPERCASE LETTER ^ T/F. EXPORT ISLOWER_ = $B030 ;IS .B AN ASCII LOWERCASE LETTER ^ T/F. EXPORT UPPER_ = $B033 ;FORCE .B TO UPPERCASE ^ CHARACTER. EXPORT LOWER_ = $B036 ;FORCE .B TO L&CBEDITbu2C'&letter_john&watlib.exp(usrlib.exp^%clmstart.b09%_c.b09 $_i.b09$_srch.b09$_renam.b09'_d.asm_f.asm_nul.asm_em.asm 8_tal.asm8_run.asm8_exit.asm8dutil.asm'$_mon.b09$utils.b09$ message.b09$comm.b09 #omemory.b09#title.b09#dir.b09#_list.b09'futil.asm dmemory.asmA9dmemory.b09:_dul.b09:_dul.asm:bedit.cmd: devedit.cmd: usr.exp ' #_help.b09+fname.b09+keys.b09+text.b09"line.b09"dparse.b09"_ul.b09"_dc.b09 ' ;fp.exp;ctitle.b09;keycalc1.b09; join.b09;adapt.b09what1.b09convert.b09spread1.b09' ,_dt.b09,_mount.b09,_scrat.b09,_tab.b09,_di.b09 !_exec.b09!_name.b09!_get.b09'con0.b09con1.b09 con2.b09 rith1.b09doint1.b09 <ascii1.b09<scr2asc.b09<asc2char.b09 '!_put.b09! _look.b09! _def.b09!_#.b09!_s.b09!_d.b09!_f.b09-_nul.b09<deveditGbedit1xnnn macros edit.labels '-_em.b09-_tal.b09-_run.b09- _exit.b09- dutil.b09-futil.b09 clmstart.asm _c.asm#'._i.asm. _srch.asm _renam.asm_mon.asm utils.asm#/message.asmcomm.asm(0omemory.asm'1title.asm 1dir.asm1_list.asm1 _help.asm'fname.asm keys.asmtext.asmO3line.asm '4dparse.asm4_ul.asm4_dc.asm5_dt.asm 5_mount.asm_scrat.asm_tab.asm _di.asm0'6_exec.asm6_name.asm6_get.asm6_put.asm7_look.asm_def.asm_#.asm_s.asm(;$00 - $01 IS FREE MEMORY. EXPORT IEEESYSBLK_ = $02 ;CURRENT IEEE SYSTEM I/O BLOCK. EXPORT INTERVAL_ = $04 ;TIMEOUT COUNTDOWN COUNTER. EXPORT REPETITION_ = $06 ;CONSTANT FOR I/O TIMEOUT. EXPORT HSYSBLK_ = $08 ;CURRENT HOST SY( 0 - OPERATION WAS OK ; 1 - OPERATION CAUSED AN EXPONENT OVERFLOW ; 2 - OPERATION CAUSED AN EXPONENT UNDERFLOW ; 3 - ATTEMPT TO DIVIDE BY 0 ; ( FILENAME PARSING AREA. EXPORT IOERRSTA_ = $6A ;STATUS OF LAST I/O OPEN. EXPORT TERMIN_ = $6B ;STANDARD TERMINAL INPUT I/OB. EXPORT STDIN_ = $6B EXPORT TERMOUT_ = $6D ;STANDARD TERMINAL OUTPUT I/OB. EXPORT STDOUT_ (T KEY PRESSED. EXPORT KYPTR1_ = $012C ;START OF INPUT BUFFER POINTER. EXPORT BUFPNT_ = $012E ;SAME AS BELOW BUT ALTERNATE NAME. EXPORT KYPTR2_ = $012E ;END OF INPUT BUFFER POINTER. EXPORT KYBUFSTART_ = $0130 ;BOTTOM OF KEYBOAR( OTTOM. EXPORT CURBNK_ = $0220 ;COPY OF CURRENT BANK. ; $0223 - $0236 IS USED ONLY FOR BANK INTERUPTS. EXPORT USIRQ_ = $022F ;LOCATION FOR BANKED INTERUPT INFO. EXPORT STACKTOP_ = $0300 ;TOP OF STACK ON POWER UP. EXPORT IOERRBUF_ ( STEM I/O BLOCK. EXPORT HBLEN_ = $0A ;HOST BLOCKS LENGTH. EXPORT HCBLEN_ = $0C ;HOST CURRENT BLOCK LENGTH. EXPORT HBOFST_ = $0E ;HOST BUFFER OFFSET. EXPORT HIO_ = $10 ;HOST I/O INDICATOR. EXPORT GIOBLK_ =( 4 - BAD ARGUMENT TO BUILT-IN FUNCTION ; $88 - $8F IS FREE MEMORY. EXPORT FAC2_ = $90 ;FLOATING ACCUMULATOR #2. ; $97 - $9F IS FREE MEMORY. EXPORT ACIA_BAUD_ = $A0 ;BUAD RATE FOR ACIA. EXPORT ACIA_COMMAND_ = $A2 ( = $6D EXPORT IOBUFBGN_ = $6F ;POINTER START OF I/O BUFFER AREA. EXPORT IOBUFEND_ = $71 ;POINTER END OF I/O BUFFER AREA. EXPORT IOBGN_ = $73 ;POINTER START OF I/O DATA AREA. EXPORT IOEND_ = $75 ;POINTER END OF I/O( D BUFFER. EXPORT KYBUFEND_ = $0158 ;TOP OF KEYBOARD BUFFER. EXPORT CLOCK_ADJ_ = $015E ;CORRECTION FACTOR FOR CLOCK COUNTER. EXPORT TIME_ = $0160 ;CLOCK HH/MM/SS/TT. EXPORT HOURS_ = $0160 ;0 - 59. EXPORT MINUTES_ = $01( = $0300 ;I/O ERROR TEXT GOES HERE. EXPORT TO_DISK_ = $0368 ;DISK DEVICE TIMEOUT CONSTANT. EXPORT TO_DISK1_ = $036A ;ANOTHER DISK TIMEOUT CONSTANT. EXPORT TO_PRINTER_ = $036C ;PRINTER TIMEOUT CONSTANT. EXPORT TO_IEEE_ = $036E ;( $11 ;GLOBAL I/O BLOCK. EXPORT GSYSBLK_ = $13 ;GLOBAL SYSTEM BLOCK. ; $15-$1B IS FREE MEMORY. EXPORT DEVICE_NUM_ = $1C ;DEVICE NUMBER. EXPORT SEC_ADDRESS_ = $1D ;SECONDARY ADDRESS. EXPORT DRIVE_NUM_ = $1E ;DRIVE NUMBER. ; $1( ;COMMAND CHARACTER FOR ACIA. EXPORT ACIA_CONTROL_ = $A3 ;CONTROL CHARACTER FOR ACIA. ; $A4 - $FF IS FREE MEMORY. EXPORT INTVCTR_ = $0100 ;TABLE OF INTERUPT VECTORS. EXPORT SFSWI3_ = $0102 ;POINTER TO SWI3. EXPORT SFSWI2_ = $0( DATA AREA. EXPORT IEEEPMODE_ = $77 ;IEEE FILE TYPE MODE - BITS. EXPORT IEEESMODE_ = $78 ;IEEE SECONDARY ADDRESS MODE - BITS. EXPORT IEEEPADDR_ = $79 ;IEEE DEVICE NUMBER. EXPORT IEEESADDR_ = $7A ;IEEE SECONDARY ADDRESS. EXPORT(61 ;0 - 59. EXPORT SECONDS_ = $0162 ;0 - 59. EXPORT JIFFIES_ = $0163 ;0 - 59. EXPORT DATE_ = $0164 ;DATE STRING. EXPORT MV_ = $0170 ;MONITOR VECTOR. ; $0175 ;FIRST CHARACTER IN MONITOR COMMAND. ;(STANDARD IEEE TIMEOUT CONSTANT. EXPORT TO_HOST_ = $0370 ;HOST TIMEOUT CONSTANT. EXPORT TO_TERMINAL_ = $0372 ;TERMINAL TIMEOUT CONSTANT. EXPORT TO_SERIAL_ = $0374 ;SERIAL TIMEOUT CONSTANT. EXPORT TO_KEYBOARD_ = $0376 ;KEYBOARD TIMEOUT CO(F IS FREE MEMORY. EXPORT MEMBEG_ = $20 ;BEGINING OF MEMORY POINTER. EXPORT MEMEND_ = $22 ;END OF MEMORY POINTER. ; $24 - $29 IS FREE MEMORY. EXPORT PROCESS_ = $2A ;VECTOR TO MODULE IN MEMORY. EXPORT EXITSP_ = $2C ;S(104 ;POINTER TO SWI2. EXPORT SFFIRQ_ = $0106 ;POINTER TO FIRQ. EXPORT SFIRQ_ = $0108 ;POINTER TO IRQ. EXPORT SFSWI_ = $010A ;POINTER TO SWI. EXPORT SFNMI_ = $010C ;POINTER TO NMI. EXPORT TABSTOPS_ = $010E ;TABLE O( HLNENDCHR_ = $7B ;HOST REUTURNS THIS AT END OF ITS LINE. EXPORT HPRMPTLEN_ = $7C ;HOST PROMPT STRING LENGTH. EXPORT HCRENDCHR_ = $7D ;HOST AND ECHO CHARACTER. EXPORT SOENDLEN_ = $7E ;SERIAL SUFFIX STRING LENGTH. EXPORT ( $0176-$017D ;MONITOR BREAK POINT TABLE. EXPORT PCSAVE_ = $0182 ;MONITOR PC. EXPORT ASAVE_ = $0184 ;MONITOR A. EXPORT BSAVE_ = $0185 ;MONITOR B. EXPORT XSAVE_ = $0186 ;MONITOR X. EXPORT YSAVE_ (NSTANT. EXPORT SOENDSTR_ = $0378 ;SERIAL OUTPUT END STRING - CR LF. EXPORT HPRMPTTST_ = $037C ;HOST PROMPT STRING. EXPORT HBADDR_ = $0380 ;HOST BUFFER ADDRESS. EXPORT LINE_BUFFER_ = $0400 ;STANDARD TEXT STAGING AREA. EXPORT IOBLKBGN(TACK POINTER FOR FREEZE FRAME. EXPORT EXITUP_ = $2E ;USER POINTER FOR FREEZE FRAME. EXPORT EXITBANK_ = $30 ;BANK COPY USED FOR FREEZE FRAME. EXPORT SERVICE_ = $32 ;SERVICE REQUEST FLAG 0=MENU. EXPORT EXITU_ = $33 ;ST(F TEN WORD TAB STOPS. EXPORT CURPOS_ = $0122 ;CURSOR POSTION. EXPORT INPUT_PTR_ = $0124 ;POINTER TO POSITION ON LINE FOR INPUT. EXPORT INPUT_FLAG_ = $0126 ;INPUT IN PROGRESS FLAG. 00 = NEED A LINE. EXPORT INPUT_EOR_ = $0127 ;INPUT (FAC1_ = $80 ;FLOATING ACCUMULATOR #1. ; SIGN,EXP,MSB,FRAC,FRAC,FRAC,FRAC EXPORT FPSTATUS_ = $87 ;FLOATING POINT STATUS INDICATOR. ; STATUS VALUES ARE: ; ( = $0188 ;MONITOR Y. EXPORT USAVE_ = $018A ;MONITOR U. EXPORT SSAVE_ = $018C ;MONITOR S. EXPORT CCSAVE_ = $018E ;MONITOR CC. EXPORT DPSAVE_ = $018F ;MONITOR DP. EXPORT STACKBOTTOM_ = $01F8 ;STARTUP SYSTEM STACK B)_ = $0480 ;BEGINNING OF I/O BLOCKS. EXPORT IOBLKEND_ = $057F ;END OF I/O BLOCKS. EXPORT PATCHCVEC_ = $0580 ;OFFSET TABLE TO FIND REAL VECTOR. EXPORT PATCHJVEC_ = $05C0 ;REAL TABLE OF PATCH VECTORS. EXPORT PATCHEND_ = $0600 ;EN(ORES .U HERE WHEN SPAWNING A PROCESS. ; $35 - $38 IS FREE MEMORY. EXPORT PROCALV_ = $39 ;AUTO LOAD VECTOR (HEADER FROM FILE). EXPORT IOSTAT_ = $3F ;I/O STATUS BYTE. ; $40 - $67 IS FREE MEMORY. EXPORT FILENAME_ = $68 ;POINTER TO(IS AT END OF LINE AND NEEDS A FRESH ONE. EXPORT CHARSET_ = $0128 ;00 = STANDARD, FF = APL. EXPORT KYBD_IGNORE_ = $0129 ;00 = IGNORE KEYBOARD. EXPORT CHARREPT_ = $012A ;COUNTDOWN TO REPEAT KEYBOARD CHAR. EXPORT KYINDX_ = $012B ;LAS)PORT EOF__ = $B666 ;'EOF'. EXPORT IOTIME__ = $B66A ;I/O TIMEOUT MSG. EXPORT __RET = $B677 ;PULL .X BYTES OFF STACK. EXPORT __RET2 = $B67F ;PULL .X BYTES OFF STACK AND .P1. EXPORT __MUL = $B687 ;(__MUL) EXPORT)D OF VECTORS AND LIMIT OF STACK AREA. EXPORT STACK_ = $0A00 ;TOP OF STACK FOR LANGUAGES. EXPORT SCREEN_ = $8000 ;START OF SCREEN ADDRESS. EXPORT HIDDEN_ = $87D0 ;SOME EXTRA "HIDDEN" MEMORY STARTS HERE. EXPORT BANKSTART_ = $)BA7 ;(TABLELOO) EXPORT BANKSWI = $BBF1 ;(BANKSWI) EXPORT BANKINIT = $BC21 ;(BANKINIT) EXPORT CONBINT = $BC2D ;CONBINT EXPORT UINTHDL_ = $BC45 EXPORT UINTTAB_ = $BC67 EXPORT SPAWN = $BC75 ;(SPAWN). EXPORT SUI)ORT REL__ = $B176 ;'REL'. EXPORT SEQ__ = $B17A ;'SEQ'. EXPORT PRG__ = $B17E ;'PRG'. EXPORT USR__ = $B182 ;'USR'. EXPORT READ__ = $B18C ;'READ'. EXPORT WRITE__ = $B191 ;'WRITE'. EXPORT APPEND__ ) = $C176 ;SET EOI TO TRUE. EXPORT EOI_HI = $C17E ;SET EOI TO FALSE. EXPORT DVNTPRS__ = $C1C8 ;DEVICE NOT PRESENT MSG. EXPORT REQUEST = $C1E1 ;REQUEST A PROCESS. EXPORT SYSIOINI = $C1F5 ;SYSTEM INITIALIZATION. EXPORT SY) CARRYSET = $B6C4 ;CARRYSET EXPORT __DIV = $B6CE ;(__DIV) EXPORT __MOD = $B6D8 ;(__MOD) EXPORT __NEG = $B742 ;(__NEG) EXPORT RSHIFT = $B748 ;RSHIFT EXPORT LSHIFT = $B74A ;LSHIFT EXPORT STREQ ) 9000 ;START OF BANKED MEMORY. EXPORT BANKEND_ = $9FFF ;END OF BANKED MEMORY. EXPORT SETMEM = $AA14 ;SET DEFAULT MEMORY LIMITS. EXPORT MENULIST = $AA27 ;LIST OF MENU LANGUAGES. EXPORT SHOWMENU = $AA66 ;MENU DISPLAY AND REQUES) CIDE = $BCAB ;(SUICIDE). EXPORT PUT_NAME = $BCD0 ;PUTS A NAME TO IEEE FILE .PI/OD EXPORT IEEECLOSE = $BD11 ;CLOSES AN IEEE FILE .PI/OD. EXPORT PUTNAMEREL = $BD51 ;SENDS A RELATIVE FILE NAME TO PI/OD. EXPORT DCOMMAND = $BD) = $B197 ;'APPEND'. EXPORT UPDATE__ = $B19E ;'UPDATE'. EXPORT LOAD__ = $B1A5 ;'LOAD'. EXPORT STORE__ = $B1AA ;'STORE'. EXPORT PUTCHAR = $B1EA ;(PUTCHAR) EXPORT CLOSEF = $B292 ;(CLOSEF) EXPORT FPRINTF = $)SOPEN = $C244 ;SYSOPEN EXPORT SYSCLOSE = $C2A5 ;SYSCLOSE EXPORT SYSREAD = $C2D8 ;(SYSREAD) EXPORT SYSWRITE = $C52C ;(SYSWRITE) EXPORT OUTBYTE = $C669 ;SEND A BYTE OUT TO FILE. EXPORT KEYOUTB = $C6BA ; EXPORT ) = $B782 ;(STREQ) EXPORT LENGTH = $B7B1 ;(LENGTH) EXPORT EQUAL = $B7CE ;(EQUAL) EXPORT PREFIXST = $B80A ;(PREFIXST) EXPORT SUFFIXST = $B832 ;(SUFFIXST) EXPORT DECIMAL = $B84A ;(DECIMAL) EXPORT STOI = $)T. EXPORT MENUHEAD = $ABF2 ;HEADER TEXT FOR MENU. EXPORT DEFAULT_ = $AC18 ;'DISK/1.'. EXPORT LOADCMD = $AC20 ; EXPORT LOADPROG = $AC59 ; EXPORT LOADERR1 = $ACE7 ; EXPORT PROGREAD = $ACFC ; EXPORT PGNTFD__ )96 ;SENDS A STRING TO THE COMMAND CHANNEL. EXPORT DRENAME = $BDC6 ;HANDLES A DISK FILE RENAME. EXPORT DINITIALIZE = $BE23 ;INITIALIZES A DISK. EXPORT IPUTLASTUL = $BE53 ;PUTS LAST CHARACTER TO IEEE AND UNLISTENS. EXPORT IPUTLAST = )B3AA ;(FPRINTF) EXPORT FSEEK = $B4A3 ;(FSEEK) EXPORT EOR = $B4C9 ;(EOR) EXPORT EOF = $B4D3 ;(EOF) EXPORT ERRORF = $B4E5 ;(ERRORF) EXPORT ERRORMSG = $B510 ;(ERRORMSG) EXPORT SCRATCHF = $B518 ;(SCRAT)SYSNL = $C6C6 ;(SYSNL) EXPORT SYSSKIP = $C7F7 ;SKIP TO NEW RECORD. EXPORT SYSSEEK = $C846 ;SEEK A RECORD. EXPORT NORANDOM = $C8BF ;NOT RANDOM ERROR. EXPORT SYSSCRAT = $C8C9 ;SCRATCH EXPORT SYSRENAM = $C90A ;)B87E ;(STOI) EXPORT BTOHS = $B8E6 ;(BTOHS) EXPORT HSTOB = $B946 ;(HSTOB) EXPORT HEXLO__ = $B9C7 ;LIST OF LEGAL HEX ASCII CHARS LOWER CASE. EXPORT ISALPHA = $B9D8 ;(ISALPHA) EXPORT ISLOWER = $B9EE ;(ISLOWER) EXP)= $AD0E ;PROGRAM NOT FOUND MSG. EXPORT PRGLMODE = $AD1D ;'L'. EXPORT NOFNDPRG = $AD1F ;'PROGRAM NOT FOUND%N'. EXPORT BADLDMSG = $AD33 ;'ERROR LOADING FILE%N'. EXPORT SETUP = $AD57 ;(SETUP) EXPORT SETUPMSG = $AF66 ;M) $BE5F ;PUTS LAST CHARACTER TO IEEE. EXPORT IGETBYTE = $BEFB ;GET A BYTE FROM IEEE. EXPORT DRECORD = $BF98 ;SIGNALS DISK TO SET TO PROPER RECORD. EXPORT DS_READ = $BFEF ;READ A DISK STATUS MESSAGE FROM .PI/OD. EXPORT LISTEN2ME )CHF) EXPORT RENAMEF = $B543 ;(RENAMEF) EXPORT MOUNT = $B58B ;(MOUNT) EXPORT TIMEOUT = $B5BD ;(TIMEOUT) EXPORT DIROPENF = $B5D2 ;(DIROPENF) EXPORT DIRREADF = $B610 ;(DIRREADF) EXPORT DIRCLOSEF = $B627 ;(DIRCLO)RENAME EXPORT SYSMOUNT = $C963 ;MOUNT EXPORT GETACMOD = $C9A5 ;PARSE AN OPEN MODE. EXPORT GETERROR = $C9D6 ;GET ERROR MESSAGE. EXPORT CHEKCOD2 = $CA15 ;CHECK .PI/OD FOR EOF. EXPORT CHEKCOD1 = $CA20 ;CHECK .PI/OD FOR EOR)ORT ISUPPER = $B9FA ;(ISUPPER) EXPORT ISDIGIT = $BA06 ;(ISDIGIT) EXPORT ISDELIM = $BA14 ;(ISDELIM) EXPORT ISHEX = $BA2D ;(ISHEX) EXPORT HEX = $BA58 ;(HEX) EXPORT ZUPSTR = $BA77 ;(ZUPSTR) EXPORT UPPER)ENU FOR ACIA SETUP TEXT. EXPORT BANKCALL = $AFD6 ;BANK CALL TO START OF BANK 0. EXPORT DISK__ = $B124 ;'DISK'. EXPORT PRINTER__ = $B129 ;'PRINTER'. EXPORT IEEE__ = $B131 ;'IEEE'. EXPORT HOST__ = $B136 ;'HOST'. EXPO) = $C072 ;SEND LISTEN COMMAND OVER IEEE. EXPORT UNLISTEN = $C0D0 ;SEND UNLISTEN COMMAND OVER IEEE. EXPORT TALK2ME = $C0DD ;SEND TALK COMMAND OVER IEEE, PI/OD. EXPORT UNTALK = $C13C ;SEND UNTALK COMMAND OVER IEEE. EXPORT EOI_LO )SEF) EXPORT NOSYS_ERR = $B636 ;CLEAR ERROR CONDITIONS. EXPORT EOF_ERR = $B63E ;FORCE AN EOF ERROR CONDITION. EXPORT TIMEOUT_ERR = $B650 ;FORCE A TIMEOUT ERROR CONDITION. EXPORT SET_MSGP = $B653 ;SETS SYSTEM ERROR TO STRINT .P. EX*. EXPORT SETTIMOUT = $CA34 ;ESTABLISH THE SYSTEM DEFAULT TIMEOUTS. EXPORT MSGINVAC__ = $CA57 ;'INVALID ACCESS'. EXPORT MSG50__ = $CA66 ;'50'. EXPORT MSGTRUNC__ = $CA69 ;'TRUNCATED'. EXPORT MSGNORND__ = $CA73 ;'NOT RANDOM'. EX) = $BA8D ;(UPPER) EXPORT ZLOSTR = $BA9E ;(ZLOSTR) EXPORT LOWER = $BAB4 ;(LOWER) EXPORT ITOS = $BACB ;(ITOS) EXPORT ITOHS = $BB48 ;(ITOHS) EXPORT COPY = $BB68 ;(COPY) EXPORT TABLELOO = $B)RT TERMINAL__ = $B13B ;'TERMINAL'. EXPORT SERIAL__ = $B144 ;'SERIAL'. EXPORT KEYBOARD__ = $B14B ;'KEYBOARD'. EXPORT FIXED__ = $B15D ;'FIXED'. EXPORT TEXT__ = $B163 ;'TEXT'. EXPORT VARIABLE__ = $B168 ;'VARIABLE'. EXP* EXPORT ZNDRETURN_ = $D872 ;CARRAIGE RETURN EXPORT ZNDDOWN_ = $D887 ;DOWN EXPORT UPDATE_CURS = $D88D ;SETS CURSOR TO .P (0-1999) POSITION. EXPORT ZNDTAB_ = $D945 ;TAB EXPORT ZNDCLR_ = $D9A9 ;CLEAR SCREEN EXPORT ZNDINS_ *PORT MSGNOSUP__ = $CA7E ;'NOT SUPPORTED'. EXPORT MSGINVMD__ = $CA8C ;'INVALID MODE'. EXPORT SYSDIROP = $CA99 ;DIRECTORY OPEN. EXPORT SYSDIRRD = $CAEA ;DIRECTORY READ. EXPORT DOHSTDIR = $CB8B ; EXPORT SYSDIRCL = $CB98*T CHKFNAME = $E1EE ;PARSE THE FILENAME PROPER. EXPORT CHKDIRPM = $E2EE ;PARSE FILE-NAME SUFFIX MODE. EXPORT CHKDEVNM = $E373 ;PARSE DEVICE NAME. EXPORT CHKIEEDV = $E3D1 ;PARSE DEVICE NUMBER. EXPORT CHKIEESA = $E408 ;PAR*$D37B ;PUTS CHARACTER .P1 OVER IEEE .PI/OD. EXPORT IRECEND = $D3DE ;END AN IEEE RECORD (IE. SEND CR). EXPORT ASIGNFCB = $D412 ;ALLOCATE AN I/O BLOCK. EXPORT FREEFCB = $D483 ;FREE UP AN I/O BLOCK. EXPORT NOMEM__ = $D4BE ;OUT* ',SEQ' EXPORT CPRG__ = $E743 ;',PRG' EXPORT BAD_FILE__ = $E748 ;'BAD FILE TYPE' EXPORT INVLD_ACC__ = $E756 ;'INVALID ACCESS' EXPORT HOOKTEST = $E76B ;CHECK FOR HOOK NUMBER .P AND DOES IT MAYBE. EXPORT PATCH_INIT = $E77A ;INI* = $D9DE ;INSERT EXPORT ZNDDEL_ = $DA53 ;DELETE EXPORT ZNDEOL_ = $DB30 ;ERASE TO END OF LINE. EXPORT INPUT_SCN = $DB98 ;'INPUT' FROM SCREEN. EXPORT CHRPTR__ = $DC4A ;LIST OF POINTERS TO CHARS TO PRINT. EXPORT BOARD_INIT * ;DIRECTORY CLOSE. EXPORT MSGSPACE__ = $CBC8 ;' '. EXPORT MSGALPHA__ = $CBCA ;'A ... P'. EXPORT INIT2400 = $CBDA ;INITIALIZE ACIA ACCORDING TO PARAMETERS. EXPORT H_OPEN = $CC13 ; EXPORT H_WRBUF = $CCE6 ; EXPORT H_ENDLN * SE SECONDARY ADDRESS. EXPORT CHKDSKDR = $E444 ;PARSE DISK DRIVE. EXPORT INVFNAME = $E476 ;NO MORE FILENAME ELSE ERROR. EXPORT CHDDEVCD = $E47D ;PARSE '.' SEPARATOR. EXPORT NAME_ERROR = $E4B9 ;SETS SYSTEM TO FILE NAME ERROR. EXPO* OF MEMORY MSG. EXPORT TIOINIT = $D4CC ;(TIOINIT) EXPORT TGETCHR = $D4D2 ;(TGETCHR) EXPORT TPUTCHR = $D4F0 ;(TPUTCHR) EXPORT TGETCURS = $D500 ;(TGETCURS) EXPORT TPUTCURS = $D509 ;(TPUTCURS) EXPORT TBREAK = $*TIALIZE PATCH TABLE. EXPORT PIA1_ = $E810 ;TO E813 - ROW SELECT. EXPORT PIA_DATA_INPUT_ = $E812 EXPORT CLOCK_STATUS = $E813 EXPORT PIA2_ = $E820 ;TO E823 EXPORT VIA_ = $E840 ;6522 TO E84F EXPORT KYBD_DATA_ = $E* = $DD48 ;INITIALIZE KEYBOARD AND CONNECT INTERUPT. EXPORT KYPUTB_ = $DD82 ;RETURNS A CHAR FROM THE KEYBOARD BUFFER. EXPORT PUTBKY_ = $DDAD ;STUFFS CHAR .B TO KEYBOARD BUFFER. EXPORT KBENABLE = $DE01 ;(KBENABLE) EXPORT KBDISABL * = $CD26 ; EXPORT H_ESTFL = $CDC2 ; EXPORT H_RLSFL = $CDDC ; EXPORT H_CHECK = $CE0B ; EXPORT H_SNDOB = $CE16 ; EXPORT H_RDOB = $CE4B ; EXPORT H_TOBUF = $CE66 ; EXPORT H_FRMBF = $CE8B ; EXPORT*RT CHKRCDSZ = $E4C6 ;COMPARE RECORD SIZE IN .PI/OD WITH MAX IN .P. EXPORT PARSE_TYPE = $E4DF ;PARSE FILE (TYPE:SIZE). EXPORT IEEGETSA = $E570 ;GIVES .PI/OD AN UNUSED SA. EXPORT IEEDNAME = $E5B9 ;PARSE IEEE FILE NAME. EXPORT SKP_*D518 ;(TBREAK) EXPORT SIOINIT = $D55C ;(SIOINIT) EXPORT SPUTCHR = $D598 ;(SPUTCHR) EXPORT TSETCHAR = $D521 ;(TSETCHAR) EXPORT SGETCHR = $D5BB ;(SGETCHR) EXPORT SBREAK = $D62E ;(SBREAK) EXPORT BPUTSCN_ = $D71*841 ;VIA PORT A EXPORT KYBD_MODE_ = $E843 ;VIA I/O DIRECTION SELECT FOR A EXPORT KYBD_CONTROL_ = $E84C ;TRANSITION SELECTOR. BIT 1 IS FONT. EXPORT KYBD_STATUS_ = $E84D EXPORT KYBD_ENABLE_ = $E84E ;INTERRUPT ENABLE REGISTER EXPORT CRTC_ * = $DE07 ;(KBDISABL). EXPORT NORM_IRQ = $DE0B ;NORMAL IRQ SERVICE ROUTINE. EXPORT KEYCONV_ = $DE80 ;CONVERTS A KEY INDEX VALUE TO ASCII. EXPORT INC_KYBUF = $DEA7 ;INCREMENT .P WITHIN KEYBOARD BUFFER. EXPORT SCROLL_ = $DE* H_RQUST = $CEBE ; EXPORT H_CLOSE = $CF49 ; EXPORT H_SCR = $CF64 ; EXPORT H_RENAM = $CF85 ; EXPORT H_DIROP = $CFD0 ; EXPORT H_DIRRD = $CFEF ; EXPORT H_DIRCL = $D032 ;CLOSE HOST DIRECTORY FILE. EXP*ALPHA = $E6C0 ;COUNT NUMBER OF ALPHA CHARACTERS. EXPORT SKP_NUMS = $E6D5 ;COUNT NUMBER OF NUMBERS. EXPORT INC_BYP = $E6F1 ;ADJUSTS FNAME_ POINTER BY .P. EXPORT S0PREFIX__ = $E6FF ;'$0' EXPORT S1PREFIX__ = $E702 ;'$1' EXPORT*4 ;PRINTS .B TO SCREEN. EXPORT ZNDRIGHT_ = $D721 ;RIGHT EXPORT ZNDUP_ = $D729 ;UP EXPORT ZNDLEFT_ = $D731 ;LEFT EXPORT ZNDHOME_ = $D74B ;HOME EXPORT ZNDRS_ = $D750 ;RUN/STOP EXPORT ZNDASC_ = $D751 ;STORE A NO* = $E880 ;CRT CONTROLLER. EXPORT HIRESLO_ = $E882 ;LO BYTE OF HI-RES SCREEN VECTOR. EXPORT HIRESHI_ = $E888 ;HI BYTE OF HI-RES SCREEN VECTOR. EXPORT HIRESDATA_ = $E88A ;DATA BYTE OF CURRENT HI-RES VECTOR. EXPORT ACIA1_ = *CD ;SCROLL THE SCREEN UP ONE LINE. EXPORT KEYSCAN_ = $DEF3 ;SCAN KEYBOARD ^ OFFSET VALUE OF KEYPRESS. EXPORT APL_OVERX__ = $E084 ;APL OVERSTRIKE TABLE. EXPORT CLOCK_TICK = $E0CF ;INCREMENT THE SYSTEM CLOCK. EXPORT SETTIME = $E0F4 *ORT USRCHEK = $D047 ; EXPORT SYSCHECK = $D054 ; EXPORT H_EMSG = $D081 ; EXPORT H_SEND = $D0AB ; EXPORT H_VRIFY = $D11C ; EXPORT H_RDLIN = $D179 ; EXPORT H_SNDWT = $D192 ; EXPORT H_WTPMT = $* NOT_SUPRTD__ = $E705 ;'NOT SUPPORTED' EXPORT INVLD_FNM__ = $E713 ;'INVALID FILE NAME' EXPORT INVLD_REC__ = $E724 ;'INVALID RECORD SIZE' EXPORT D0PREFIX__ = $E738 ;'0:' EXPORT D1PREFIX__ = $E73B ;'1:' EXPORT CSEQ__ = $E73E ;*RMAL ASCII CHAR TO SCREEN. EXPORT BSTRSCN_ = $D751 ;STORE A NORMAL ASCII CHAR TO SCREEN. EXPORT TABSET = $D7E3 ;(TABSET) EXPORT TABGET = $D817 ;(TABGET) EXPORT APL_OVERX = $D828 ;MODIFIES .P BY SCREEN CHAR ^ APL OVERSTRIKE.+$EFF0 ;6551 DATA, STATUS, COMMAND, CONTROL. EXPORT ACIA2_ = $EFF4 ;6850 TO EFF5. EXPORT SYSLTH_ = $EFF8 ;SYSTEM LATCH. EXPORT BKSEL_ = $EFFC ;BANK SELECT. EXPORT RESTART1 = $F000 ;MAIN SYSTEM STARTUP. EXPORT NOCNDO__ *;(SETTIME). EXPORT SETDATE = $E107 ;(SETDATE). EXPORT GETTIME = $E13C ;(GETTIME). EXPORT GETDATE = $E158 ;(GETDATE). EXPORT PASSTHRU = $E15F ;(PASSTHRU). EXPORT FXCHBUF_ = $E1C7 ;INCREMS .P BUT LOOP $0400-$0480 EXPOR*D1B6 ; EXPORT H_CHKSM = $D23F ; EXPORT HEXUP__ = $D27B ;LIST OF LEGAL HEX ASCII CHARS UP CASE. EXPORT IEEOPEN = $D28C ;OPEN AN IEEE FILE. EXPORT IGETCHAR = $D33B ;GETS A CHARACTER FROM IEEE .PI/OD. EXPORT IPUTCHAR = +SERVICE SWI. EXPORT SVNMI__ = $FFBE ;SERVICE NMI. EXPORT RSVD__ = $FFF0 ;VECTOR RESERVED. EXPORT VSWI3__ = $FFF2 ;VECTOR SWI3. EXPORT VSWI2__ = $FFF4 ;VECTOR SWI2. EXPORT FIRQ__ = $FFF6 ;VECTOR FIRQ. EXPORT IRQ__+ = $F03D ;UNABLE TO PERFORM REQ MSG. EXPORT MONITOR = $F05C ;(MONITOR). EXPORT MONGRET__ = $F123 ;WATERLOO MICROMONITOR MSG. EXPORT PROMPT__ = $F13D ;'>'. EXPORT MON_B = $F13F ;BANK CHANGE. EXPORT MON_C = $F15D+Errors 0 $00f5 ; Length Import _BMESSAGE 170(both) Import _CHRGOT 25(both),3(both) Import _CHRGET 54(both),42(both),18(both) Import COPY_ 183(both) Import TABLELOO_ 239(both),135(both),81(both) Export SCANFNAME=$0000 Export STRIPDISK=$003f Export DEF_DEV+ ;'PCR'. EXPORT CHR__ = $FCE0 ;'%C'. EXPORT PLS__ = $FCE3 ;'+'. EXPORT PLSPLS__ = $FCE5 ;'++'. EXPORT RBRAC__ = $FCE8 ;']'. EXPORT SSHEXES__ = $FCEA ;' %H%H'. EXPORT SHEXES__ = $FCF2 ;' %H%H'. EXPORT HEX__+ Errors 0 $0171 ; Length Import _NUMBEROFP Import _SCRNDELETE 364(both) Import _DELETELINE 361(both) Import _REPRINTROW 333(both) Import _SCRNINSERT 309(both) Import _INSERTTEXTM 298(both) Import COPYSTR_ 257(both) Import _PRINTSCREEN 303(both),238(both) = $FFF8 ;VECTOR IRQ. EXPORT VSWI__ = $FFFA ;VECTOR SWI. EXPORT NMI__ = $FFFC ;VECTOR NMI. EXPORT RESET__ = $FFFE ;SYSTEM RESET VECTOR. RQ. EXPORT SVIRQ__ = $FFBA ;SERVICE IRQ. EXPORT SVSWI__ = $FFBC ;+ ;CLEAR BREAK-POINTS. EXPORT MON_D = $F184 ;MEMORY DISPLAY. EXPORT MON_F = $F264 ;FILL MEMORY. EXPORT MON_G = $F2A2 ;GO. EXPORT MON_L = $F303 ;LOAD A FILE. EXPORT MONERR__ = $F41D ;MONITOR ERROR MSGS. EXPORT+ ICE=$0075 Export DEVNAME=$00dd Import DISK__ 236(both) Export SKIP_PREFIX_=$00c7 Import SKP_ALPHA 227(both),123(both),69(both) Reloc 0,222(both),0,132(both),0,118(both),0,78(both),0,64(both) Object 6fe2bd0000c1222706c12727022005e7e4bd0000dcc6ede3bd000027+ = $FCF9 ;'%H'. EXPORT L__ = $FCFC ;'L' EXPORT AZWDS2__ = $FCFE ;MORE ASSEMBLER MNEMONICS. EXPORT CMPY__ = $FD03 ;'CMPY'. EXPORT LDY__ = $FD08 ;'LDY'. EXPORT LDS__ = $FD0D ;'LDS'. EXPORT STY__ + Import _CLRMSG 235(both) Import _COMPRINT 232(both) Import _FETCHTEXT 354(both),222(both) Import ___NEG 185(both) Import SETCURTORPCP1 176(both) Import SCREEN_ 147(both) Import CURPOS_ 143(both) Import _PURGE 367(both),320(both),212(both),199(both),123(+ccffeb200dcc00152008ccffff2003cc0001bd 00007e00004fd6bb8300013406dcac10a3e42c02ede4be000030890000e684c880e784c601d7ba4f d6bba3e4d7bb3406cc00013406ec62bd0000326232623506bd0000bd0000dc24ddb6dcacddaa7e00 000fb939c601d7b97f04007e0000cc04003406dc24bd000032620+ FILE__ = $F451 ;'FILE%N'. EXPORT MON_REG = $F458 ;REGISTER ADJUST. EXPORT MON_R = $F4B9 ;REGISTER DISPLAY. EXPORT MON_MEM = $F53E ;MEMORY UPDATE. EXPORT MON_S = $F5DA ;SET BREAK-POINT. EXPORT ERMSGS__ =+1dc120260c6d6226086f9f00 c6bd00005f270be16227f22705bd000026e1ece4326339bd00c7dd68bd00003406dc683406cc006a bd000032623262270e9e68e68427063001c12e26f69f68dc68396469736b00686f73740000bd00c7 dd68bd00003406dc683406cc006abd00003262326227349e685fa6842709812e270+ = $FD12 ;'STY'. EXPORT STS__ = $FD17 ;'STS'. EXPORT CMPU__ = $FD1C ;'CMPU'. EXPORT CMPS__ = $FD21 ;'CMPS'. EXPORT INVLD__ = $FDCC ;INVALID COMMAND MSG. EXPORT CHIP_START = $FE74 ;RESETS THE KEYBOARD CHIP AN+both) Import _OFFSETALL 289(both),244(both),188(both),120(both) Import CAR_RTN 87(both) Import CUR_UP 83(both),53(both) Import CUR_DN 81(both),47(both) Import _UPDATESCREEN 292(both),247(both),39(both) Export _DOCHAR=$0000 Reloc 0,99(both),0,97(both),0,9+fb9cc04007e0000bd00007e0000 ccffffbd0000bd0000cc04003406dca4bd00003262d6b920057f0400c601340496bbd6ba3406dc24 109328260cccffffbd0000bd00007f0400bd00002706bd0000326339bd0000dc24ddb6dcacddaabd 0000350697bbd7bae6e0d7b97e0000dc24109326271b1093282716dca43406dc+ $F6C2 ;ERROR MSGS. EXPORT INTTXT__ = $F6E0 ;INTERUPT MSG. EXPORT AZWDS1__ = $F6EE ;ASSEMBLER MNEMONICS. EXPORT MON_T = $F871 ;TRANSLATE. EXPORT HEXHEXS__ = $FCAB ;'%H%H '. EXPORT BSR__ = $FCB2 ;'BSR'. EXPORT QUES55c300120f34f 3406c10e2306cc00097e0000ece43406ec663406dc68bd000032643506ae626f8b20036ff8023934 161f01e684c128260ae6802706c12926f8afe43596bd00c7dd68bd00003406dc683406cc0000bd00 003262326239 ) Object 6fe2bd0000c1222706c12727022005e7e4bd0000dcc6ede3bd000027+D CLEARS DATE/TIME. EXPORT SYSRST_ = $FF80 ;SYSTEM RESET ROUTINES. EXPORT CONINT_ = $FF97 ;CONECT INTERUPT .P1 TO VALUE .P. EXPORT SYSIRQ_ = $FFA2 ;INTERUPT HANDLER. EXPORT EXTIRQ_ = $FFB1 ;THE RTI INSTRUCTION. EXPORT SVRS+5(both),0,93(both),0,91(both),0,89(both), 0,85(both),0,79(both),0,77(both),0,75(both),0,73(both),0,71(both), 0,69(both),0,67(both),0,65(both),0,63(both),0,61(both),0,59(both), 0,57(both),0,55(both),0,51(both),0,49(both),0,45(both),0,43(both), 0,41(both),'24bd00003262dc24 bd0000bd0000bd000039 00007e00004fd6bb8300013406dcac10a3e42c02ede4be000030890000e684c880e784c601d7ba4f d6bba3e4d7bb3406cc00013406ec62bd0000326232623506bd0000bd0000dc24ddb6dcacddaa7e00 000fb939c601d7b97f04007e0000cc04003406dc24bd000032620+T__ = $FCB6 ;'????'. EXPORT NL__ = $FCBB ;'%N'. EXPORT SDOL__ = $FCC2 ;' $'. EXPORT SPACE__ = $FCC5 ;' '. EXPORT DOLHEX__ = $FCC7 ;'$%H'. EXPORT LBRAC__ = $FCCB ;'['. EXPORT DOL__ = $FCCD ;'$'.+Errors 0 $0550 ; Length Export _REPRINTROW=$02ab Export _COMPRINT=$0000 Export _CLRCMD=$01fc Import PRINTF_ 245(both),155(both),26(both) Export _CLRMSG=$0201 Import COPYSTR_ 183(both) Export _SCREENSTART=$00ce Export _SCRNINSERT=$01ae Export _SCRNDELETE=+V__ = $FFB2 ;SERVICE RESERVED. EXPORT SVSWI3__ = $FFB4 ;SERVICE SWI3. EXPORT SVSWI2__ = $FFB6 ;SERVICE SWI2. EXPORT SVFIRQ__ = $FFB8 ;SERVICE FIRQ. EXPORT SVIRQ__ = $FFBA ;SERVICE IRQ. EXPORT SVSWI__ = $FFBC ;+ 0,31(both),0,28(both),0,15(both),0,1(both) Object 8e00cb5d2a0dc0812d07c10a22038e0029200bc0012d07c11222038e003f8c00cb270358ad957e00 0000d6014f0074000000c9006f000000cc00650109006a007d00f000cb00cb00cb00cb00cb00cb00 cb0000000000ea000000cb00cb00cb00cb00cb00cb,$01d5 Import COPY_ 1076(both) Export FLP_CURSORS=$044e Export _DELETELINE=$0477 Export _DELETEPTOP1=$0496 Import TPUTCURS_ 758(both),162(both) Import KYPTR2_ 288(both) Import KYPTR1_ 291(both) Export _UPDATESCREEN=$0127 Export CAR_RTN=$024f Export LIFTCU+ EXPORT B__ = $FCCF ;'B'. EXPORT A__ = $FCD1 ;'A'. EXPORT D__ = $FCD3 ;'D'. EXPORT COMMA__ = $FCD5 ;','. EXPORT MIN__ = $FCD7 ;'-'. EXPORT MINMIN__ = $FCD9 ;'--'. EXPORT PCR__ = $FCDC,08(both), 0,105(both),0,62(both),0,59(both),0,48(both),0,37(both),0,23(both), 0,14(both),0,3(both) Object 3406bd01fccc00013406cc0018bd02f83262ece43406cc0021bd00003262326239255300bd0201cc 00013406cc0019bd02f8326239cc00193406cc0043bd00873262393c4a555354205F482001f01312126ee1f1039bd0000ede3270cccffffbd04e7cc0010bd0000ece1 39 01d6ba3a3089ffffe6 84c880e7840db9260dbe000030890000e684c880e7843934061093262712109328270dece43406ec 62bd049632622003cc00003262391093262606eb9f0026890010a3622e233406ec641093282705eb f804,RTO_RPCP1=$02f8 Import LINE_INPUT 168(both) Import PUTBKY_ 194(both) Import _FETCHTEXT 830(both) Import SCREEN_ 1134(both),1117(both),1088(both),1061(both),1051(both),859(both), 846(both),773(both),767(both),736(both) Export _HOLDIT=$0035 Import ZNDCLR_ ,ce4d0bb82003406dcace3e42d0d1093be2e08ec e4bd050dbd0318e66386503d1f0130890000b3000086205a2b04a78220f9326439a6631e897e0000 3406be0000e6890000c47fe789000035065a86503deb638900830001fd00003934061093262d4110 93282e3c108e0363109326271c108e03b41093282713cc040034, Errors 0 $00b3 ; Length Import SUICIDE_ 175(both) Import MAKETIME2P 167(both) Import TPUTCHR_ 160(both) Import PRINTF_ 172(both),150(both) Import GETDATE_ 142(both) Import _MSGREADY 135(both) Import SETTIME_ 130(both) Import _CHRGET 119(both) Import _FET, 2455455524e20 544f20454e44204f5220434f4d4d414e443e00cc001e3406cc0071bd00873262393c275245545552 4e27206f7220436f6d6d616e643e003406bd011bec643406cc0019bd02f83262ece4bd00008618c6 01bd00007f0400bd00007d04002715dca43406cc0400bd00003262bd011bcc000ebd0000bd0000, Errors 0 $0025 ; Length Import SUICIDE_ 36(both) Import MOUNT_ 33(both) Import _SYNTAXCHK 27(both) Import DEF_DEVICE 22(both) Import CHECKOUTFNAME 9(both) Export EC_MOUNT=$0000 Object cc04003406ccffffbd00003262cc04003406cc0400bd00003262bd0000cc0400bd0000, 197(both) Export SET_EOF_LINE=$0293 Export CUR_UP=$0207 Export CUR_DN=$0249 Import CURPOS_ 1130(both),862(both),842(both),789(both),763(both),739(both) Export SETCURTORPCP1=$02f1 Export _INSERTTEXTM=$053b Import _INSERTTEXT 1340(both) Export _MSGREADY=$0, 06ec62bd00003262108e04006fa8 50be000030890000e6a02704e78020f81f10830000fd00003262393c3d3d3d3d3d3d3d3d3d3d3d3d 3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d424547494e4e494e47204f462046494c453d3d3d3d3d3d 3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e003c3d3d3,CHNUM 96(both) Import GETTIME_ 81(both) Import _CHRGOT 76(both) Import _CSTART 73(both) Import SETDATE_ 55(both) Import ISDIGIT_ 36(both) Import SCANFNAME 58(both),11(both) Export EC_TIME=$0005 Export EC_DATE=$0000 Reloc 0,147(both) Object ccffff2003cc00,4f f60400326239c60bd7bbc601d7babd02930fb9bd00febd01fcbd0201cc00463406cc0019bd02f832 62cc00f77e00003c454449543e00dc24bd04cdddacdc24ddb6dcacddaacc00173406cc0001bd029b 32623934011a10fc0000fd00003581dc241093b6260139dcac93aa3406bd000034062a02ec621083 00172d057e0000 00ec622717bd00003406cc00b1bd00006df42706cc0020bd 00003262dca6bd0000dca6bd00007e0000255300 TDATE_ 55(both) Import ISDIGIT_ 36(both) Import SCANFNAME 58(both),11(both) Export EC_TIME=$0005 Export EC_DATE=$0000 Reloc 0,147(both) Object ccffff2003cc00,024 Import _MESSAGE 1356(both) Export _NUMBEROFP=$04cd Import ___NEG 310(both) Export _OFFSETALL=$04e7 Export _OFFSETBYP=$050d Export _PAUSE=$0063 Export _PURGE=$011b Export _PRINTSCREEN=$00fe Import CLOSEP_BYTESP1 1215(both) Export _POINTEROFP=$0507 Rel,d3d3d3d3d3d3d3d3d 3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d454e44204f462046494c453d3d3d3d3d3d3d3d 3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3e008300013406e665e0618650 3d3406ec62e36886503dc300003406e66586503dc300003406ec643406ec643406ec64bd00,003406bd000034066df4102700716fe2ae61e6802713c13a270b3410bd00003510 26026ae46de427e9e6e02710ece4bd0000bd0000ede46df426022042327cec64bd0000bd00001f40 bd00001f426fe2d6c9c10326203420bd00003520a6e4e7a66ce48103270fd6c8c13a26093420bd00 00352020da32611f40bd00003,bd00fe205aec622f2fc30001ed62ece43406cc00173406ec66bd04053264cc0017e3e4c3 00013406cc00173406ec62bd029b326232622027272dcc0017a3e43406ec623406ec623406cc0001 bd040532643262ece43406cc0001bd029b3262dc24ddb6dcacddaa3264394fd6bb3406c1012711cc ffff3406ec623406cc0Errors 0 $0019 ; Length Import SCRATCHF_ 21(both) Import _SYNTAXCHK 16(both) Import CHECKOUTFNAME 9(both) Export EC_SCRATCH=$0000 Object cc04003406ccffffbd000032623406bd0000ece4bd0000326239 ,oc 0,1350(both),0,1265(both),0,1258(both),0,1162(both),0,815(both),0,806(both), 0,725(both),0,722(both),0,696(both),0,670(both),0,662(both),0,640(both), 0,632(both),0,622(both),0,589(both),0,586(both),0,583(both),0,564(both), 0,556(both),0,546(both),0,51,003264 3268395a86503dc300001f01864fc620e7864a2afb39d6bbd6bb5a86503d1f01d6ba3a3089ffffe6 84c880e7840db9260dbe000030890000e684c880e7843934061093262712109328270dece43406ec 62bd049632622003cc00003262391093262606eb9f0026890010a3622e233406ec641093282705eb f804b264bd0000ec622717bd00003406cc00b1bd00006df42706cc0020bd 00003262dca6bd0000dca6bd00007e0000255300 TDATE_ 55(both) Import ISDIGIT_ 36(both) Import SCANFNAME 58(both),11(both) Export EC_TIME=$0005 Export EC_DATE=$0000 Reloc 0,147(both) Object ccffff2003cc00,002bd04053264c601d7b9c601d7ba35067e043b4fd6bb108300172718c300 013406ccffff3406cc00173406ec64bd040532643262cc00177e02aecc00182003cc00197e043bdc 241093262622d6bbc101271accffff3406cc00173406cc0002bd040532640abbcc0017bd02ae2016 ccffffbd04e7d6bbc101270a0abbdc,Errors 0 $0058 ; Length Import _CHRGET Import SUICIDE_ 79(both) Import PRINTF_ 66(both) Import _MSGREADY 46(both) Import _FETCHNUM 18(both) Import _CHRGOT 9(both) Import TABGET_ 4(both) Export EC_TABSET=$0000 Reloc 0,63(both) Object 4f3402bd00003406bd00,7(both),0,506(both),0,496(both),0,467(both), 0,452(both),0,415(both),0,401(both),0,372(both),0,350(both),0,325(both), 0,278(both),0,257(both),0,242(both),0,237(both),0,226(both),0,223(both), 0,220(both),0,215(both),0,188(both),0,148(both),0,138(both),0,1,8900a3e43406ece43406ec64bd00003262350632622003cc0000393406108e00009e26ace42c 093121e6843a9c282df310afe435863406bd04f6ddacece1bd050ddd2439d3ac2c05cc0000200710 93be2f02dcbe399e261f0220041f029e24108c00002f0d9c282707e6843a313f26f5201427129c26 270e301f1f10e08-Errors 0 $03a4 ; Length Import PARSE_TO 22(both) Import LENGTH_ 204(both) Import COPYSTR_ 568(both),526(both),493(both),157(both),46(both) Import EOF_ 438(both) Import PUTNL_ 741(both) Import TABLELOO_ Import DREADF_ 512(both),480(both),468(both),144(bo,24ddb6dcacddaa7e011bbd02537e011bc601d7badc24109328 2622d6bbc117271acc00013406cc00163406cc0001bd040532640cbbcc0001bd02ae2016cc0001bd 04e7d6bbc117270a0cbbdc24ddb6dcacddaa39dc28bd04cdddbe393406bd02ae3506c3000110a362 2ff1394fd6bb3406cc00013406ec62bd02f83262e00d6c9c103261cbd0000c1502f02c650aee4a662486f864c5ae7866c62a6 62810a26dbbd00006f62e66258aee4ec85c300013406cc0055bd000032626c62e662c10a26e47e00 002553200025442000 aErrors 0 $0009 ; Length Import _DOCHAR 4(both) Export EC_NULL=$0000 Object cc000dbd0000cc000039 th) Export EC_FREE=$0000 Object bd0000dcae93288300023406cc0012bd00007e0000 -th),112(both) Import SCREEN_ 732(both),720(both),708(both),241(both) Import FPRINTF_ 762(both) Import STRIPDISK 31(both) Import ERROROUTER 774(both),325(both),64(both) Import _HOLDIT 628(both) Export EC_CATALOG=$0000 Export EC_DIRECTORY=$0003 Import CURP-Errors 0 $00e5 ; Length Import _MESSAGE Import _PRINTSCREEN 225(both) Import SET_EOF_LINE 222(both) Import _NUMBEROFP 217(both) Import CLOSEP_BYTESP1 199(both) Import COPY_ 173(both) Import OPENP_BYTESP1 130(both) Import _BMESSAGE 138(both),119(both) Im-2c616d7bcbd0000cc03a43406dca83406cc03a03406ec68bd02ba3266ece427 419e283004ec8427393410aee4ec813406ec812605cc03a4301e3406af64ec623406ec6ebd029834 06ec6cbd02ba3268260eccffffbd02a4102600daecf426cb326232627f04006f9f00a8ec62bd0000 102600836f9f00a86f9f00a67f04Errors 0 $0012 ; Length Import SUICIDE_ 17(both) Import _PRINTSCREEN 10(both) Import PASSTHRU_ 7(both) Import _SYNTAXCHK 1(both) Export EC_TALK=$0000 Object bd0000cc0001bd0000bd0000c601d7327e0000 Errors 0 $0008 ; Length Import SUICIDE_ 7(both) Import _TITLE 4(both) Import _SYNTAXCHK 1(both) Export EC_RUN=$0000 Object bd0000bd00007e0000 K=$0000 Object bd0000cc0001bd0000bd0000c601d7327e0000 - OS_ 728(both),713(both),704(both),246(both),235(both) Import ZNDCLR_ 334(both) Import SUICIDE_ 656(both) Import WRITE__ 303(both) Import DIROPENF_ 53(both) Import DISK__ Import ___DIV 86(both) Import SKP_ALPHA Import OPENF_ 311(both) Import CLOSEF_ 650- port _SYNTAXCHK 50(both) Import _CHRGET 36(both) Import SUICIDE_ 31(both) Import FETCH_LINE 26(both) Import _CHRGOT 47(both),11(both) Import FIX_RANGE 8(both) Export EC_ECHO=$0004 Export EC_MOVE=$0000 Object c6ff20015f3404bd0000bd0000dc24ede3d6c82719c12e- 006d9f00a8260bdca83406ec64bd00003262cc04003406ec64bd 000032622711dca63406dca8bd000032626f9f00a8c6ff2646dca63406ec64bd000032622711dca6 3406cc0400bd000032627f0400c6ff2626ec64bd02923436ec66bd02ba32662616ccffffbd02a426 4fdca83406dca6bd0000326216ff81e69f00a8f-Errors 0 $001c ; Length Import _CHRGOT 1(both) Import _SYNTAXCHK Import SCREEN_ 15(both) Export EC_EXIT=$0000 Import EC_PUT 6(both) Import CURPOS_ 11(both) Import ZNDRETURN_ 24(both) Import SUICIDE_ 27(both) Object bd00002703bd00000f32be000030890000e684-Errors 0 $0116 ; Length Import _SYNTAXCHK 277(both) Import SUFFIXST_ 205(both) Import CHECKOUTFNAME 260(both),238(both),178(both) Import COPYSTR_ 271(both),221(both),194(both),166(both) Export PARSE_TO=$0099 Import GETTIME_ 109(both) Export MAKETIME2P=$0-(both),643(both) Import _PRINTSCREEN 653(both) Import _PAUSE 686(both) Reloc 0,876(both),0,673(both),0,668(both),0,634(both),0,623(both),0,616(both), 0,607(both),0,604(both),0,596(both),0,589(both),0,557(both),0,547(both), 0,540(both),0,414(both),0,404(b-270abd000026037e00002003bd0000dc24 351034069f24bd0000bd0000ece41093282706ebf48900ede4dcb21093262608eb9f00b28900ddb2 dcb41093282708eb9f00b48900ddb41093b22203326339ece41093b22f0b1093b42c06cc0014bd00 00dcb493b23406ec62bd00002706cc0015bd0000dcb210a3622504e3e-a040026022014ec64bd02923436ec66bd02ba3266 ccffffbd02a4cc03a43406dca63406cc03a03406ec66bd02ba3266bd0000cc0000bd02a420023264 ec62bd0000ece42703bd0000bd00007e0000108e04009ea84d2705cc03892003cc0392395d27114f 5f0abc260bbd00003406c617d7bc35065d39340610ae66be00c880e784bd00007e0000 -_tal.b09-_run.b09-066 Import ERRORMSG_ 76(both) Import PREFIXST_ 87(both),69(both) Import ERRORF_ 55(both) Import _BMESSAGE 47(both) Export ERRORCHECK=$0034 Export ERROROUTER=$0022 Import STREQ_ 23(both),13(both) Import STRIPDISK 218(both),1(both) Reloc 0,243(both),0,183(-oth),0,397(both),0,382(both),0,353(both), 0,346(both),0,337(both),0,265(both),0,188(both) Object 5f2002c6ff32e8d81f413414dcb03406ccb128ddb0bd00003506ddb0dca6bd0000dd681f016f1fec 613406dc68bd00003262dca6bd00003406dca63406ec62bd00003262cc00003406dcae9328834ddb2dc2410a3622304e3e4 dd24ece43406ec643406dcb2bd000032646d64271fdc2493b22d0910a3e42204dcb2dd24dcb2bd00 00dc241093b22302a3e42002dc24dd24bd0000ddacbd0000bd0000326539 EC_ECHO=$0004 Export EC_MOVE=$0000 Object c6ff20015f3404bd0000bd0000dc24ede3d6c82719c12e-00308900008d45be00003088283089 000010ae688d36be000030890000e684c880e784bd0000ece4271fec683406ec683406ec683406ec 66bd00003266cc04503406ec62bd00003262326239e6a02704e78020f83934101f01300610ae6431 266fe2e684c122270ce6a0c1222708e180250423ee20026ae4e6e01d35903s32620dc82723cc04503406ccffffbd0000 3262bd000027110dc8270dcc04503406ccffffbd000032621f409eb03410bd000032e8207e0000 44f00746f00ae623410bd00 342706cc000abd00003262393406bd0000d7b82720ec643406cc0063bd00003262ece4bd00003406 ec663406ec62bd0000326232624fd6b8326-both),0,66(both),0,39(both),0,20(both),0,10(both) Object bd00003406ece43406cc001fbd000032622606cc001cbd0000326239544f00746f00ae623410bd00 342706cc000abd00003262393406bd0000d7b82720ec643406cc0063bd00003262ece4bd00003406 ec663406ec62bd0000326232624fd6b8326-0004 3406cc000fbd0000108300042307d328c3000720024f5f3406dca83406ec66bd00003262aee41027 00af34106f829e2830043410cc0000edf4ec623406ec6abd00003262270ddca63406ec64bd000032 62c6ff263fae62e6802704c12226f85d2723ec6b3406ec64c30006bd033e32622713353010af8134 30ec62-Errors 0 $00e6 ; Length Import _SYNTAXCHK 23(both) Import COPYSTR_ 219(both),111(both),95(both) Import PREFIXST_ 197(both),122(both) Import COPY_ Import TABLELOO_ Import SCANFNAME 92(both) Import ERROROUTER 49(both) Import STRIPDISK 204(both),187(both)4301f0110ae66c6ffe7 e26da42737e6a02604a6848122272dc13f2604e684201bc12a26176da4271d34201f10bd033e3262 2612e680c122270620ede18027046fe4200220c935041d35b02573256e2573256e00257320202020 20202020202020202573256e00 c260bbd00003406c617d7bc35065d39340610ae66be00.,131(both) Import SUICIDE_ 60(both) Import SUFFIXST_ 158(both),147(both) Import DEVNAME 172(both) Export CHECKOUTFNAME=$0055 Import _MESSAGE 80(both) Import DISK__ Import SKIP_PREFIX_ 167(both) Import SKP_ALPHA Export OPENUP_4P=$0000 Import OPENF_ 36(b-2393a20003406327a1f40bd0000c603e765ae661f4286 30e6a0c10a2d054cc00a20f7a780cb30e7806a652706863aa78020e36f843268397f045032e8e21f 403406dcb0bd00003262dca63406ccffffbd00003262bd00002718dca63406dcc2bd00003262dca6 3406dcb0bd000032622024dcb03406dca6bd0000bd0000-bd0000c30001e362ed62cc0000edf4dcaea3621083002324a06d6a263f6fe4be0000c62ee7 8900003001bf00009e283004ec842727ec02271f3406ec84bd03163506270c10ae81ec8410af84ed 836ae43002ed62ec8426dd6de426c132647d0450271bcc00003406cc0450bd00003262ed62cc0450 3406ec64bd0000326.;i XDEF ec_input XREF _syntaxchk,tgetcurs_ XREF _numberofp,_offsetall XREF _updatescreen,_clrcmd XREF _sgetline,_dochar,_bmessage XREF _scrninsert,_scrndelete XREF _inserttextm,_repr.oth) Export CLOSEUP=$0041 Import CLOSEF_ 66(both) Reloc 0,144(both),0,16(both) Object 3406cc0000ddbc0fb8dca63406ec66bd005532623406bd00006df4271eec623406ec62bd00003262 ede3ec623406ec62bd00003262ece1270220037e0000326439bd0000dcbc3406dca63406cc000bbd 000032. ;move text cursor to right spot. CALL _sgetline ;get line from screen. STD ,s CMPB #3 ;stop LBEQ bloop_end ;end insert and signal error. LDB service_ DECB . CALL copystr_,(2,s),alternate_buf PULS x LOOP ;purge excess spaces. LDB ,-x CMPB #" " der_ gloop_end clr modeflag DONE 2 ender_ CALL _offsetall,#1 CALL _scrndelete SET2 old_txtcur,txtcur SET2 old_cur_line,cur_line RTS et_point FCS "." CMPB #10 ;down cursor. . introw XREF copystr_,length_,printf_,streq_ XREF curpos_,suicide_ ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :continuous input with word wrap. 64393406ec643406bd0000bd000032626df8042618ec643406dcb0bd00003262ec643406dc c2bd000032622061ec64bd00001f016d842619ec643406cc00e5bd00003262ec643406dcb0bd0000 3262203dec64bd00003406bd00002708c1012704c1042627ece4bd000010a3e42605dcc2bd000032 62ec64bd00003406e. LBNE loop_end CALL streq_,#input_buffer,#et_point LBNE loop_end ;not a '.' was entered. GUESS CLR [alternate_buf] ;null out buffer. DEC ,s QUIF NE ;word wrap in pr. UNTIL NE INX CLR ,x ENDIF ENDIF ENDGUESS UNTIL EQ ENDGUESS CALL _inserttextm ;insert into memory. .;_srch XDEF ec_search XDEF _searchline XDEF _parsesrch,_matchp1top XREF _fetchtext,_scanner,_chrgot XREF _chrget,_cstart,suicide_ XREF _numberofp,_updatescreen XREF length_,_message,.. ;returns :true/false; was input mode forced off abnormally? ec_input CALL _syntaxchk LDD range_start CMPD range_end CNE _bmessage,#4 ;illegal line range. STD txtcur CALL _numberofp /c62260bdcb03406ec62bd000032623262ec6435902e00 th) Reloc 0,144(both),0,16(both) Object 3406cc0000ddbc0fb8dca63406ec66bd005532623406bd00006df4271eec623406ec62bd00003262 ede3ec623406ec62bd00003262ece1270220037e0000326439bd0000dcbc3406dca63406cc000bbd 000032.ogress. SET1 (1,s),#13 ;force normal line handling. CALL length_,#input_buffer CMPB #crtwidth QUIF LT ;find word and move to buffer. LDX #input_buffer LEAX . PSHS CC CALL _reprintrow ;maybe necessary if line was changed. LDD multi_copy SUBD #1 ;account for increased text area. STD multi_copy PULS CC BNE loop_.isdelim_ ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :text range search. ;returns :repeat flag. ec_search EQU * LDD chrgetpointer SUBD . STD cur_line LDD txtcur CMPD txtend CEQ _offsetall,#-1 ;move back to real line. CALL _updatescreen ;reprint screen to show any update. CALL _clrcmd ;remove unsi.arameters:none ;returns :was there an error? ;destroys :x keeps: _parsesrch CALL _chrgot PSHS b PUSH prevsrchstr_buf ;destination,delim,rts LOOP GUESS CALL _chrget . d,x ;points to end of line. LOOP LDB ,-x GUESS CMPX #input_buffer+crtwidth QUIF LT TSTB ;don't break. ADMIT .end SET2 old_txtcur,txtcur SET2 old_cur_line,cur_line LDB 1,s CMPB #13 LBEQ loop_beg CALL _dochar ;print last character. LDB 1,s CMPB #10 ;down cursor. .#1 ;account for "/" or "\". CALL _cstart SET2 (,--s),txtcur CALL _scanner,temp_counter,range_start,range_end PSHS b SNE2 (1,s),txtcur ;a match was found. SET2 txtcur,(1,s) C.ghtly insert command. CLR [alternate_buf] ;null out present wrapped word. LEAS -2,s loop_beg CALL _scrninsert ;insert a line. SET1 modeflag,#3 ;insert mode. LDB textrow . QUIF EQ CMPB 2,s ;will end on end delimiter character. IF EQ CALL _chrget ;skip over ending "/" or "\". CLRB ENDIF QUIF EQ . CMPX #input_buffer+crtwidth-41 IF NE ;optional break. CMPB #" " IF EQ ;break. INX PSHS x . BEQ gloop_end bra realbad bloop_end call ender_ ;remove line exit. CLR modeflag realbad JMP suicide_ ;abnormal exit. ; delete a line and goto command mode without error. loop_end CALL en.ALL _numberofp STD cur_line CALL _updatescreen TST ,s+ CEQ suicide_ DONE 2 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :parse a search command text. ;p.DECB LDA #80 MUL STD curpos_ ;set cursor to right spot. CALL printf_,alternate_buf ;print any 'wrap' from previous line. LDD curpos_ CALL tgetcurs_ STB textcol /ADMIT LDD ,s CMPD prevsrchstr_buf IF EQ CALL length_ ADDD prevsrchstr_buf STD ,s ENDIF CLRB ENDGUESS / QUIF NE CALL _message,#8 ;"NO SEARCH STRING DEFINED" LDB #$ff ADMIT CLRB ENDGUESS SEX DONE 3 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/. TST [6,s] IF EQ ;scan till end. LDX 2,s LOOP TST ,x+ QUIF EQ INC found_len /E through ;bad match? ENDIF CMPB #"$"!%10000000 IF EQ TST [2,s] BEQ searcher LBNE through ;bad match? ENDIF CMPB #"~"!%10000000 / QUIF EQ CMPB #"%" IF EQ CALL _chrget GUESS CMPB #"^" ;bol. QUIF EQ CMPB #"$" ;eol. QUIF EQ / a line for a match to prevsrchstr_buf. ;parameters:line to search. ;returns :was a match found? ;destroys :x keeps: _searchline EQU * CLR ,-s LDX alternate_buf PSHS x CLR ,-x CALL/ \\\\\\\\\\\\\ ;performs :check for match at location. ;parameters:location to check ~ match string ~ bol pointer ;returns :was the match successful? ;destroys :x, y keeps: none _matchp1top EQU * CLR found_len recur PSHS/ ENDLOOP LDB #$ff ELSE ;scan till match continues. LOOP CALL recur,(6,s),(8,s),(8,s) QUIF NE / IF EQ LDB [2,s] BEQ searcher ;at end is ok. STB ,s PSHS x CALL isdelim_ PULS x LBEQ through ENDIF LDB ,/ CMPB #"." ;any char. QUIF EQ CMPB #"~" ;null/space. QUIF EQ ADMIT ORB #%10000000 ;make to meta code. ENDGUESS / _fetchtext LOOP CALL _matchp1top,(4,s),prevsrchstr_buf,alternate_buf STB 2,s QUIF NE PULS x TST ,x+ PSHS x UNTIL EQ LDB 2,s SEX / d PUSH #0 ; 0 1 2 4 6 8 ;.char,matchflag,at_loc,rts,srch_string,bol,... GUESS LDX 6,s LDB ,x+ QUIF EQ CMPB #"~"!%10000000 QUIF NE TS/ ;well, no match here. LDX 2,s TST ,x QUIF EQ ;not at end of searched string. INX STX 2,s /s CMPB #"*"!%10000000 IF EQ ;any number of chars. LDB ,x+ STX 6,s ;first past '*?'. STB ,s ;multiple match char. CMPB #"."!%10000000 / CMPB #"*" IF EQ LDX ,s GUESS CMPX prevsrchstr_buf QUIF EQ LDB ,-x CMPB #"~"!%10000000 QUIF E DONE 3 or a match to prevsrchstr_buf. ;parameters:line to search. ;returns :was a match found? ;destroys :x keeps: _searchline EQU * CLR ,-s LDX alternate_buf PSHS x CLR ,-x CALL/T found_len QUIF NE ;a first delimiter character and not a recursion. STX 6,s LDX 2,s LDB -1,x CALL isdelim_ ENDGUESS LBEQ through ;no match if no search s/ INC found_len ENDLOOP ENDIF DONE 4 ENDIF LBRA searcher ENDIF CMPB #"."!%10000000 IF EQ ;any/ IF NE ;any number of specified character. LDY 2,s LOOP LDB ,y+ QUIF EQ ;end of text. CMPB ,s QUIF NE/Q ADMIT CALL _message,#5 ;"ILLEGAL SEARCH STRING" LDD ,s++ RTS ENDGUESS LDA #"*"!%10000000 STA ,x+ ;'*',char /;MESSAGE XDEF _MESSAGE,_BMESSAGE XREF _MSGREADY XREF PRINTF_,SUICIDE_ ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :PRINTS OUT A MES/tring. TST [6,s] LBEQ through ;no match if no search string. searcher EQU * LDX 6,s ;search string. LDB ,x+ STX 6,s DEC 1,s STB ,s ;search char. L/ real char. LDB [2,s] ;force a match. BEQ through ;out if at end of string. ENDIF LDX 2,s CMPB ,x+ IF EQ ;there was a match for one character. / INC found_len ;length of matched string. ENDLOOP LEAY -1,y STY 2,s ;continuation of main text. ELSE ;skip characters only until a match/ STX ,s ENDIF ENDIF LDX ,s STB ,x+ STX ,s ENDLOOP CLR [,s] ;make sure it ends in null. GUESS CALL length_,prevsrchstr_buf 0SAGE. ;PARAMETERS:MESSAGE NUMBER ~ PARAMETER ~ PARAMETER ~ PARAMETER ;RETURNS :POINTER TO MESSAGE JUST PRINTED. ;DESTROYS :X KEEPS: GUESS _BMESSAGE LDA #$ff ;A BAD MESSAGE THAT SUICIDES. ADMIT _MESSAGE clra /BEQ through ;hooray! a match. CLR 1,s ;no match yet. CMPB #"^"!%10000000 IF EQ ;begining of line. LDD 2,s CMPD 8,s BEQ searcher LBN/ STX 2,s INC found_len LBRA searcher ENDIF through LDB 1,s SEX DONE 4 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :search through 0;omemory original EQU 1 ;set if using original med crunched text format. XDEF _inserttext,_fetchtext,openp_bytesp1,closep_bytesp1 XREF _offsetall,set_eof_line XREF length_,copystr_,copy_ ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :inserts text in input_buffer into next line of memory. ;parameters:none ;returns :true/false if there isn't enough memory. ;destroys :x, y 0 X CALL _MSGREADY ;SETUP FOR MESSAGE TO BE PRINTED. CALL PRINTF_,(4,S),(7,S),(7,s) LDA 2,S JNE SUICIDE_ DONE 3 ET_SAYWHAT FCS "Say what?" FCS "Missing Filename." FCS "!" 0 ;found chars to be crunched. IFEQ original GUESS CMPB #" " QUIF NE TFR a,b ORB #%10000000 ;space flag bit. DECA ADMIT ENDC0 CALL set_eof_line LDD #0 ENDIF DONE 3 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :uncrunches line from one location and makes it a string in another. ;parameters:source0\\\\\\\\\\\ ;performs :open up a space in the text. ;parameters:place to make room ~ number of bytes to stuff. ;returns :true/false; is memory too full? ;destroys :x keeps: openp_bytesp1 PSHS d LEAS -4,s LDD tx0 keeps: _inserttext CALL _offsetall,#1 SET2 old_txtcur,txtcur SET2 old_cur_line,cur_line ; compile line and copy into memory returning true if memory full. CLR input_buffer+120 LDX #input_buffer 0 FCS "Illegal line range." FCS "Illegal search string." FCS "Search string not found." FCS "Search string required." FCS "No search string defined." FCS "Illegal default device." FCS "0 CMPA #31 IF HI LDA #31 ENDIF STA ,y+ ;put #. SUBA #2 IFEQ original ENDGUESS ENDC STB ,y+ ;put char. 0 of line ~ destination for line. ;returns :none ;destroys :x, y keeps: _fetchtext TFR d,x LDB ,x+ DECB PSHS b ;length+1 of line to disassemble. LDY 3,s ; 0 1 3 ;.l0tend TFR d,x ADDB ,x ADCA #0 STD ,s ;very very end of text ADDD 8,s STD 2,s ;new end of text SUBD max_memory IF LS LDD ,s SUBD 4,s 0PSHS x LOOP LDB ,x QUIF EQ GUESS CMPB #32 QUIF LO ANDB #%10000000 QUIF NE ADMIT ;convert illegal characters to " ". 0%S" FCS "%S - Lines transferred %D." FCS "%D" FCS "No line range allowed." FCS "%D Occurrences changed." FCS "%D lines of text." FCS "Memory full." FCS "Replacing string too lon0 STY ,s ;continuation area. LEAY a,y PSHS y ;end text start CALL copystr_,(2,s),(2,s) ;close up freed area. LEAS 2,s ENDLOOP LDX #input_buffer CLRB LO0ength,rts,to LOOP DEC ,s QUIF EQ ;done with translation. LDB ,x+ GUESS CMPB #" " QUIF HS LDA ,x+ DEC ,s uncrunch LOOP 0 PSHS d ;length of upper block. LDD 6,s ADDD 10,s PSHS d ;destination. CALL copy_,(8,s) ;open up space. LEAS 4,s LDD txtend ADDD 8,s STD0 LDB #" " STB ,x ENDGUESS INX ENDLOOP LDB #" " LOOP ;purge trailing spaces. CMPB ,-x QUIF NE CLR ,x ENDLOOP g." FCS "%D bytes of free memory." FCS "*" FCS "Illegal destination line." FCS "Not enough free memory." FDB 0 "No search string defined." FCS "Illegal default device." FCS "0OP INCB TST ,x+ UNTIL EQ PSHS b INCB CLRA PSHS d CALL openp_bytesp1,txtcur ;open up space. LEAS 2,s IF EQ ;there is memeory. 0 STA ,y+ DECB UNTIL EQ ADMIT IFEQ original TSTB QUIF PL ;crunched spaces. ANDB #%01111111 LDA #" " 0 txtend LDD range_end ADDD 8,s STD range_end LDD #0 ;ok flag ENDIF DONE 6 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :closes up 0LOOP ;.textpntr,rts TST [,s] QUIF EQ LDX ,s LOOP CLRA LDB ,x QUIF EQ ;found end byte. TFR x,y INX 1space in text. ;parameters:start of close-up space ~ number of bytes to remove. ;returns :none ;destroys :x keeps: closep_bytesp1 PSHS d LDX txtend LDB ,x ABX PSHS x ;very very eot. 1;title XDEF _title XREF printf_ XREF copy_,spawn_,copystr_ XREF getdate_,getrec_,ec_date XREF _cstart XREF maketime2p XREF _screenstart ;include ;include ;\\1;DIR XDEF DREADF_ XREF DIRREADF_,copystr_ ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :Reads in a directory. ;PARAMETERS:i/ob ~ location to p1EAS 4,s LDX #input_buffer CLR 11,x PSHS x ;date. LDD max_memory SUBD membeg_ SUBD #4 ;safety margin. PSHS d ;free memory. CALL printf_,#title 1 LDD 2,s ADDD 6,s PSHS d ;begin of top text. LDD 2,s SUBD 4,s PSHS d ;length CALL copy_,(4,s),(6,s) LEAS 2,s LDD txtend SUBD 8,s STD txten1 ;list XDEF ec_list XREF _numberofp XREF _offsetall,_updatescreen XREF tbreak_,_bmessage,_message ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\1 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :setup system buffers and show title page. ;parameters:none ;returns :none ;destroys :x keeps: _title LDX memend_ LEAX -35,x 1 ut directory entry. ;RETURNS :condition of read. ;DESTROYS :x KEEPS: DREADF_ PSHS D LEAS -40,s TFR s,d PSHS d CALL DIRREADF_,(42,S) ;read directory to buffer. CMPD #1 1 LEAS 16,s CALL getrec_,#input_buffer,#80 ;get input for time/date. LDX #input_buffer CLR d,x ;end input in null. TFR x,d CALL _cstart ;start of entry. ud LDD range_end SUBD 8,s STD range_end CALL set_eof_line DONE 6 keeps: closep_bytesp1 PSHS d LDX txtend LDB ,x ABX PSHS x ;very very eot. 1\\\\\\\\\ ;performs :do only a line range (ie. list). ;returns :repeatable flag. ec_list CALL _numberofp,range_start STD cur_line LDD range_start LOOP STD txtcur CALL _updatescreen ;up1 STX name_buf ;file name. PSHS x CALL copystr_,#def_name PULS x LEAX -25,x STX def_buf ;default device buffer. PSHS x CALL copystr_,#def_dev IF LE CALL copystr_,(2,s),(46,s) ;move directory to main area. LDX 46,S CLR 28,X ;Max of 28 bytes. CLRA CLRB ENDIF DONE 44 directory. ;PARAMETERS:i/ob ~ location to p1 CALL spawn_,#ec_date ;change time/date (maybe). JMP _screenstart ;print up screen and . title FCB 12 FCC "%nEDITOR :Copyright 1984 by Joe Bostic%n%n" FCC " %d bytes free.%n%n" 1;_HELP XDEF _COMMAND_NUM,EC_HELP XREF TABLELOO_,LENGTH_ XREF COPYSTR_,PUTNL_ XREF _CHRGOT,_CHRGET XREF _HOLDIT,_PAUSE XREF _PRINTSCREEN,ZNDCLR_ XREF _SYNTAXCHK,SUICIDE_ XRE1date screen. LDD txtcur CMPD range_end QUIF EQ CALL tbreak_ ;check stop key. CNE _bmessage,#3 ;"!". CALL _offsetall,temp_counter ENDLOOP C1 PULS x LEAX -81,x STX prevsrchstr_buf ;used for the "//" string search. CLR ,x LEAX -121,x STX alternate_buf ;utility catch-all working buffer. CLR ,x LEAX -81 inc ,S ELSE GUESS CMPB #"#" QUIF EQ CMPB #"/" QUIF EQ CMPB #"\" QUIF EQ CMPB #"@" QUIF EQ ;DET{ FCC "Date: %s%nTime: %s%n%n" FCS "Enter date and time.%n" def_dev FCS "disk." def_name FCS "text:e" CLR d,x ;end input in null. TFR x,d CALL _cstart ;start of entry. 1F SCREEN_,CURPOS_ ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :CONVERT INPUT LINE TO COMMAND NUMBER. ;PARAMETERS:NONE ;RETURNS :COMMAND NUMBER OF LINE. ;DESTROYMPD txtend IF EQ LDD eof_line SUBD #1 PSHS d CALL _message,#15 LEAS 2,s ENDIF CLRB SEX RTS txtcur CALL _updatescreen ;up11,x STX command_buf ;last command or last deleted line. CLR ,x LEAX -1,x STX max_memory ;limit of text memory pointer. ;put parameters on stack for title display. LEAS -10,s 1ERMINE THE NUMBER OF ALPHA CHARS. LOOP LDB CHRGOTTYPE CMPB #$01 QUIF NE INC 1,S CALL _CHRGET ENDLOOP ADMIT 1,#ET_COMMAND LEAS 4,S STB ,S ENDIF ENDIF CALL _CHRGOT LDB ,S DONE 4 ; When adding new commands be sure to insert its information into the lists in ; the same relative p1S :X KEEPS: _COMMAND_NUM CALL _CHRGOT ;MOVE PAST LEADING SPACES. push CHRGETPOINTER push #0 ; .00,00,POINTER_TO_BUFFER,RTS LDB CHRGOTCHAR IF EQ ; SET FOR NULL LINE. 2osition for every list (including the list in "comm.asm"). ; If the new command is allowed to have a line range then place the command ; before the "#" on the lists and update the "comm.asm" file (the place is a few ; lines after the "dispatch" label). 1 TFR s,d CALL maketime2p TFR s,d PSHS d LDD #11 PSHS d LDD #input_buffer PSHS d CALL getdate_ CALL copy_ ;move date string to buffer area. L1 ;ONE CHARACTER NON ALPHA COMMANDS. INC 1,S CALL _CHRGET ENDGUESS LDB 1,S IF NE CLRA PSHS D push (4,s) CALL TABLELOO_2 ;ECHO FDB lines_p,des_p ;MOVE FDB lines_p,no_p ;UPPER FDB lines_p,no_p ;LOWER FDB noline_p,no_p ;# FDB noline_p,no_p ;RUN FDB noline_p,fn_p 2ET_COMMAND FCS " " ;NULL LINE. FCS " " ;LINE RANGES. FCS "prINT" FCS "prINT" FCS "pUT" ET_COMS FCS "pUT" ;LINE RANGE PUT. FCS "cHANGE" FCS "/" FCS "\" F2line" lines_p FCS "range" noline_p FDB 0 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS. :DISPLAY A COMMAND SUMMARY. ;RETURNS :NO-REPEAT FLAG. EC_HELP CALL _SYNTAXCHK SET2 (,--S),#ET_COMS 2e lower case" FCS "Show line number" FCS "Run editor" FCS "Leave editor & save text" FCS "Set ACIA chip" FCS "Enter ML monitor" FCS "Enter 'PASSTHROUGH' mode" FCS "One column di2 LDX 2,S LDY 2,X TST ,Y IF NE ;INSERT PARAMETER. ; DO NOT ENCLOSE IN "[]" IF 'DI' OR 'COPY'. LDX #INPUT_BUFFER+20 CALL TEST,(,S) 2 ;EXIT FDB noline_p,no_p ;SETUP FDB noline_p,no_p ;MONITOR FDB noline_p,no_p ;TALK FDB noline_p,f2f_p ;DIRECTORY FDB noline_p,f2f_p ;CATALOG 2 CS "dELETE" FCS "gET" FCS "iNPUT" FCS "eCHO" FCS "mOVE" FCS "uPPER" FCS "lOWER" FCS "#" ;** all commands previous to here are allowed to 2 ;COMMAND NAMES. SET2 (,--S),#COM_DISC ;DESCRIPTION. SET2 (,--S),#P_TYPE ;PREFIX/PARAM. SET2 (,--S),#0 ;COUNTER. ;.COUNT,PARAMS,DISCRIPTION,COMMAND,RTS CALL ZNDCLR_ ;CLEAR S2 rectory" FCS "Two column directory (sorted)" FCS "Rename text" FCS "Redefine assumed device" FCS "Remove file from disk" FCS "Change name of file on disk" FCS "Initialize disk" FC2 IF NE LDB #"[" STB ,X+ ENDIF PSHS X TFR Y,D CALL QCOPY LEAS 2,S CALL TEST,(,S) IF NE 2 FDB noline_p,fn_p ;NAME FDB noline_p,dev_p ;DEFAULT FDB noline_p,fn_p ;SCRATCH FDB noline_p,f2f_p ;RENAME ***23 FDB noline_p,dev_p ;MOUNT FDB noline_p2 ;** have a line range. FCS "run" ;insert new commands after this point. FCS "exit" FCS "setUP" FCS "monITOR" FCS "taLK" FCS "diRECTORY" FCS "caTALOG" FCS "nA2CREEN. MAIN LDX #INPUT_BUFFER LDD #$2020 ;" ". LOOP ;FILL WITH SPACES. STD ,X++ CMPX #INPUT_BUFFER+80 UNTIL HS LDX #INPUT_BUFFER+20 2S "Transfer file" FCS "Show/rename date and time" FCS "Show time, rename date and time" FCS "Show/set tabstops" FCS "Show command summary" FCS "Macro keyboard entry" FCS "Free memory ava2 LDB #"]" STB ,X ENDIF ENDIF LDB #":" STB INPUT_BUFFER+46 CALL COPYSTR_,(6,S),#INPUT_BUFFER+47 CALL LENGTH_,#INPUT_BUFFER LDX #INPUT2,f2f_p ;COPY ***25 FDB noline_p,dt_p ;DATE FDB noline_p,dt_p ;TIME FDB noline_p,tab_p ;TABSET FDB noline_p,no_p ;HELP FDB noline_p,fn_p ;EXECU2ME" FCS "defAULT" FCS "scrATCH" FCS "rENAME" FCS "mouNT" FCS "coPY" FCS "daTE" FCS "tiME" FCS "tabSET" FCS "hELP" FCS "exECUTE" FCS "2 LDD #$5F20 ;"_ ". LOOP ;PUT DASHES IN. STD ,X++ CMPX #INPUT_BUFFER+46 UNTIL HS LDX [2,S] TST ,X IF NE ;INSERT LINE PR2ilable" FCS "Send command to disk" FCS "Examines a file" FCS "Prints formatted text" FDB 0 ;params and lines. p_type FDB lines_p,fn_p ;PUT FDB lines_p,sr_p ;CHANGE F2_BUFFER LEAX D,X LDD #$2E00 ;".". STD ,X LDX 4,S LOOP TST ,X+ UNTIL EQ STX 4,S ;PRINT ENTRY. LDX CURPOS_ 2TE FDB noline_p,no_p ;FREE FDB noline_p,com_p ;DCOMMAND FDB noline_p,fn_p ;LOOK FDB lines_p,fn_p ;PRINT ;prameter text. fn_p FCS "FileName" sr_p FCS "/srch/repl"2fREE" FCS "@" FCS "tYPE" FCS "prINT" ;this must ALWAYS be the last command in the list. FCB 0 ;COMMAND DESCRIPTIONS. COM_DISC FCS "Saves text" FCS "Alters text" FCS "Searches for 2EFIX. LDB #"[" STB INPUT_BUFFER CALL QCOPY,([4,S]),#INPUT_BUFFER+1 LDB #"]" STB ,X ENDIF CALL QCOPY,(8,S),#INPUT_BUFFER+10 STY 6,S 2DB lines_p,txt_p ;SEARCH FDB lines_p,txt_p ;NSEARCH FDB lines_p,no_p ;DELETE FDB line_p,fn_p ;GET FDB line_p,no_p ;INPUT FDB lines_p,des_p 3 LEAX SCREEN_,X LDY #INPUT_BUFFER LDB ,Y EORB #%10000000 ;ACCOUNT FOR CURSOR. STB ,Y LOOP LDB ,Y+ QUIF EQ STB ,X+ ENDLOOP 2 des_p FCS "destination" f2f_p FCS "[FileName] to FileName" dev_p FCS "device-name" dt_p FCS "[date] [time]" tab_p FCS "{tabs}" com_p FCS "command-string" txt_p FCS "text" no_p FDB 0 ;line list. line_p FCS "2match" FCS "Searches for no match" FCS "Purge text" FCS "Load text" FCS "Automatic text entry" FCS "Duplicate text" FCS "Transfer text" FCS "Make upper case" FCS "Mak3;line XDEF _getline,line_input,_sgetline XREF flp_cursors,liftcurto_rpcp1 XREF _cstart,screen_ XREF tbreak_,kyindx_ XREF tgetcurs_,tputcurs_ XREF fgetchar_,eof_ XREF putchar_,printf_3 CALL PUTNL_ LDX 2,S LEAX 4,X STX 2,S LDX ,S INX STX ,S CMPX #TXTBOTTOM-3 IF EQ CALL _PAUSE BNE ALLDONE 3s:none ;returns :.b= last character entered, .a= MOD flag (0= line NOT modified, ; 1= word wrap needed, ; -b= line modified). ;destroys :x 3ESS GUESS CMPB #6 QUIF LE ;no need to adjust row position CMPB #9 ;on these chars. QUIF EQ GUESS CMPB #$7f QUIF EQ 3 BRA next ENDIF ADMIT ;on rubout OR cursor left. CALL tgetcurs_ CMPB #1 IF EQ INCA CALL tp3 ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :get a line from user according to current editor status. ;parameters:none ;returns :.b= last character entered, .a3 ;A COMMAND WAS ENTERED. ENDIF TST [4,S] LBNE MAIN ENDER CALL _HOLDIT ALLDONE CALL _PRINTSCREEN JMP SUICIDE_ TEST CMPD #22 IF NE CMPD #24 ENDIF RTS3 keeps: GUESS line_input LDA modeflag ADMIT sline_inp CLRA ENDGUESS CLR input_buffer ;just IN CASE. CLRB PSHS d ;.flag,char,rts LOOP next LDB ,s INCB3 CMPB #8 QUIF EQ ;on standard right moving chars. CALL tgetcurs_ CMPB #crtwidth IF EQ ;right-hand screen modification. 3utcurs_ ENDIF ENDGUESS ENDGUESS LDB 1,s CALL putchar_ ENDLOOP ; process line now. ldd kbin cmpd orig_kbin if ne guess 3= MOD flag (0= line NOT modified, ; 1= word wrap needed, ; -b= line modified). ;destroys :x keeps: GUESS _sgetline LDD3 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :COPIES A STRING WITHOUT COPYING THE ENDING BYTE. ;PARAMETERS:SOURCE ~ DESTINATION. ;RETURNS :.X HOLD CONTINUATION POINTER. ;DESTROYS :X, Y KE3 QUIF EQ ;word wrap mode OUT flag! LOOP CALL fgetchar_,kbin ;get only one char from user. TSTB UNTIL NE CALL convert ;sense other non standard keys. 3 GUESS ;must be a real character. LDB 1,s CMPB #" " QUIF LT ;line must have been modified. TST ,s 3 CALL eof_ quif ne ldb 1,s cmpb #3 quif eq call tbreak_ quif ne admit LDB #2 stb service_ ;flag that input file is 3 #sline_inp ADMIT _getline LDD #line_input ENDGUESS PSHS d TST modeflag IF EQ ;command mode. LDD #1 PSHS d LDD #cmdline ELSE EPS: .P1 QCOPY TFR D,Y LDX 2,S LOOP LDB ,Y+ QUIF EQ STB ,X+ ENDLOOP RTS JMP SUICIDE_ TEST CMPD #22 IF NE CMPD #24 ENDIF RTS3STB 1,s CALL is_end ;check for ending character. QUIF NE LDB 1,s CMPB #14 ;command fetch AND DO. IF EQ CLR ,s ;line has been modified. ENDIF QUIF 3 QUIF NE ;must be IN word wrap mode. LDB modeflag CMPB #3 QUIF NE ;word wrap flag. DEC 3empty. ENDGUESS endif CALL tgetcurs_ TST modeflag IF NE STA textrow STB textcol ;reset textcol IN text mode. ENDIF LDB 1,s CMPB #14 3;text mode. CLRA LDB textcol PSHS d LDB textrow ENDIF CALL liftcurto_rpcp1 LEAS 2,s ; cursor has been set to right position. CALL flp_cursors 3standard modification. INCB QUIF EQ ;word wrap END. ADMIT ;fetch the line to the buffer. CALL map_line ENDGUESS GUESS LDB ,s QUIF NE 3 EQ GUESS LDB 1,s CMPB #7 ;==> QUIF LT ;<== CMPB #9 ;tab QUIF GT ADMIT CLR ,s ;flag that line has been modified. ENDGU3,s ENDGUESS LDB 1,s CALL putchar_ CALL tgetcurs_ DECA ;move back up to proper line. CALL tputcurs_ 3 IF EQ ;special command fetch AND DO. CALL printf_,#t_str,command_buf LDB #13 STB 1,s ;simulate a carraige RETURN. ENDIF GUESS LDB ,s QUIF EQ ;3 ;on CALL ([,s++]) PSHS d CALL flp_cursors ;off LDD ,s++ RTS ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :gets a line from the user. ;parameter4;standard flag. COMB ADMIT CMPB #$ff QUIF NE ;word wrap flag. LDB #1 ADMIT ;no modification flag. CLRB ENDGUESS STB ,s CAL4 LSRB LDX #endchrs LOOP CMPB ,x+ BEQ END_ TST ,x UNTIL EQ ELSE END_ DEC ,s ENDIF LDB ,s+ SEX RTS endchrs FCB 4;dparse XDEF dparse XREF prefixst_,gioblk_,gsysblk_ XREF chkdevnm,chkieedv,chkdskdr,chddevcd ;include ;include dparse PSHS d TFR d,x STX gioblk_ LDD 4,x 4;_UL XDEF EC_UPPER XDEF EC_LOWER XREF _SYNTAXCHK XREF ZLOSTR_ XREF ZUPSTR_ XREF _PRINTSCREEN,fix_range ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\4L _cstart,#input_buffer ;analyze first char. puls d,pc ;return modflag/character in a and b register. t_str FCS "%s" ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :maps a screen line to t4 ;_dc XDEF ec_copy,ec_dcommand XREF ec_look,skip_prefix_ XREF tbreak_,suicide_ XREF _message,_bmessage XREF stripdisk,parse_to XREF suffixst_ XREF _chrgot,_cstart,devname XRE4 1,2,3,10,11,12,13,15,16,17,18,19,0 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :converts a character to alternate form if possible. ;PARAMETERS:character to convert. ;RETURNS :converted character (or ori4 STD gsysblk_ CALL chkdevnm ;parse device name. CALL chkieedv ;parse device number. CALL chkdskdr ;parse drive number. LDX gsysblk_ CLR 10,x ;set sa to zero (ie. load). T4 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :CHANGE CASE OF TEXT. ;RETURNS :REPEATABLE FLAG. GUESS EC_UPPER LDD #ZUPSTR_ ADMIT EC_LOWER LDD #ZLOSTR_ ENDGUESS PSHS D CALL _SYNTAXCHK CAL4 he input buffer. ;PARAMETERS:none ;RETURNS :none ;DESTROYS :x, y KEEPS: map_line CALL tgetcurs_ PSHS a LDB #80 MUL ADDD #screen_ PSHS d ;start OF next row. L4F isdigit_,zupstr_,skp_alpha XREF fgetchar_,fputchar_,kbdisabl_ XREF openf_,closef_,errorouter XREF read__,write__,d0prefix__,d1prefix__ XREF to_disk_,to_disk1_,put_name,ds_read XREF ioerrsta_,ioerrbuf_ 4ginal) ;DESTROYS : KEEPS: convert LDA kyindx_ CLR ,-s LDX #newchrs LOOP CMPD ,x QUIF EQ INC ,s TST ,x++ UNTIL EQ TST ,x 4ST [filename_] IF NE CALL chddevcd ;parse '.'. CALL prefixst_,#colon__,filename_ ;put in ':'. ENDIF LDX gsysblk_ TST 11,x IF EQ ;defaults to drive zero then. 4L fix_range LDX RANGE_START LOOP LDB ,X+ DECB DECB LDA B,X CLR B,X ;NULL END OF LINE. PSHS D,X CALL ([4,S]),(2,S) PULS D,X 4DA 2,s DECA LDB #80 MUL TFR d,x LEAX screen_,x LDY #input_buffer LOOP LDB ,x+ ANDB #%01111111 ;kill any REVERSE field. STB ,y+ 4 ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :performs edit disk command. ;returns :no-repeat flag. ec_dcommand CALL _chrgot LDD chrgetpointer comm IF NE LDB #15 ADDB ,s ENDIF LEAS 1,s RTS newchrs FDB $637f,$9106,$9630,$10ff,$61ff,0,0 ter to alternate form if possible. ;PARAMETERS:character to convert. ;RETURNS :converted character (or ori4 CALL prefixst_,#zero__,filename_ ;drive two. ELSE CALL prefixst_,#one__,filename_ ;drive one. ENDIF CALL prefixst_,#dollar__,filename_ ;put in directory symbol. LDB #%01000110 ;ca STA B,X INCB ABX CMPX RANGE_END UNTIL GT LEAS 2,S JMP _PRINTSCREEN ADMIT EC_LOWER LDD #ZLOSTR_ ENDGUESS PSHS D CALL _SYNTAXCHK CAL4 CMPX ,s UNTIL EQ LEAS 3,s LOOP LDB ,-y CMPB #" " QUIF NE CMPY #input_buffer-1 UNTIL EQ CLR 1,y ;END IN NULL. RTS ;\\\\\\\\\4 TFR d,x STX filename_ LDB #8 PSHS b LDB ,x CALL isdigit_ IF NE LDX filename_ LDB ,x+ SUBB #"0" STB ,s LDB #" " 4ame_ LDX filename_ PULS d STA b,x LDB ,s+ LEAS -13,s CLR ,s STB 9,s ;device number. LDB #15 STB 10,s LDD to_disk_ STD 7,s talog bit code. LDX gsysblk_ STB 12,x DONE 2 colon__ FCS ":" zero__ FCS "0" one__ FCS "1" dollar__ FCS "$" LDX gsysblk_ TST 11,x IF EQ ;defaults to drive zero then. 4d TST ioerrsta_ CEQ ds_read ;read command channel only if no other error. CLR ioerrsta_ CALL _bmessage,#10,#ioerrbuf_ ;show gotten message. ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\4\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :checks to see IF a line END character. ;parameters:character to check. ;returns :true/false. ;destroys :none is_end CLR ,-s ASLB IF CC 4 LOOP CMPB ,x+ UNTIL NE LEAX -1,x STX filename_ ENDIF CALL skp_alpha LDX filename_ LDA b,x CLR b,x PSHS d CALL zupstr_,filen4 ;timout for disk. CLR ioerrsta_ TFR s,d TST [filename_] CNE put_name ;send command to disk. ;read command channel. LDD to_disk1_ ;timeout. STD 7,s TFR s,5\\\\\\\\\\\\\\\\ ;performs :edit copy command. ;returns :no-repeat flag. ec_copy CALL parse_to TST input_buffer+80 CEQ _bmessage,#1 ;must have destination. ;inteligent copy? (or not). CALL devnam5errorouter,(2,s),alternate_buf CALL openf_,#input_buffer+80,#write__ PSHS d CALL errorouter,(2,s),#input_buffer+80 ;main block transfer. LEAS -2,s ; 0 2 4 6 ;.char,i/ot,i/of,rts5;_DT XDEF EC_DATE,EC_TIME XREF _CHRGET,_CSTART,_CHRGOT XREF _MSGREADY XREF _FETCHNUM,MAKETIME2P XREF SUICIDE_ XREF SCANFNAME XREF ISDIGIT_,TPUTCHR_ XREF PRINTF_ XR5ms :checks out the specified device number. ;parameters:pointer to string to check. ;returns :ascii number(s). ;destroys :x keeps: device CALL skip_prefix_ TFR d,x LOOP LDD ,x+ TSTA 5e,#input_buffer+80 CMPB #5 IF EQ ;it is a copy to the terminal, so goto 'TYPE'. CALL _cstart,alternate_buf JMP ec_look ENDIF CMPB #1 BNE manual ;if not a 'disk' the5 S,D CALL GETTIME_ ;ACTUAL TIME VALUES. TFR S,Y CLR ,-S ;COUNTER OF TIME VALUES. LOOP LDB CHRGOTTYPE CMPB #$03 QUIF NE PSHS Y 5 LOOP CALL fgetchar_,(4,s) STD ,s LDB ioerrsta_ QUIF NE CALL fputchar_,(2,s) LDB ioerrsta_ QUIF NE CALL tbreak_ IF NE 5 EF GETTIME_,SETTIME_,GETDATE_,SETDATE_ ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :EDIT DATE AND TIME ROUTINE. ;PARAMETERS:NONE ;RETURNS :NO-REPEAT FLAG. ;DEST5 QUIF EQ CMPA #"." QUIF EQ CMPA #"/" QUIF EQ CMPA #"-" QUIF EQ PSHS d,x TFR a,b CLRA CALL isdigit_ PULS d,x 5 n manual. CALL devname,alternate_buf CMPB #1 BNE manual ;if not a 'disk' then manual. CALL device,alternate_buf STD input_buffer CALL device,#input_buffer+80 CMPD input_buffer 5 CALL _FETCHNUM PULS Y LDA ,S STB A,Y INC ,S CMPA #3 QUIF EQ LDB CHRGOTCHAR CMPB #":" QUIF NE 5 CALL kbdisabl_ CALL _message,#3 ;"!". BRA thru ENDIF UNTIL NE thru CALL closef_,(2,s) CALL closef_,(4,s) JMP suicide_ ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\5ROYS :X, Y KEEPS: GUESS EC_DATE LDD #-1 ADMIT EC_TIME LDD #0 ENDGUESS PSHS D CALL SCANFNAME PSHS D TST [,S] LBEQ SHOWTIME ;FIND OUT IF IT'S A 5 UNTIL NE IF EQ LDD #0 ENDIF PSHS d CLRA CALL isdigit_ IF EQ CLR 1,s ENDIF CLRA LDB ,s CALL isdigit_ SEQ1 (,s),#"8" 5 LBNE manual ;not to same device number. ;disk command copy. CLR input_buffer+2 LDD #input_buffer PSHS d CALL suffixst_,#t_c ;add "C". CALL drive,#input_buffer+80 CALL5 PSHS Y CALL _CHRGET PULS Y ENDLOOP LEAS 1,S TFR S,D CALL SETTIME_ LEAS 4,S ENDGUESS SHOWTIME CALL _MSGREADY LDD 2,S IF 5\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :returns with the drive number specified in a file name. ;parameters:file name pointer. ;returns :pointer to drive number (in ascii like '0:' or '1:'). ;destroys :x keeps: drive CALL s5DATE CLR ,-S ;FLAG 00=TIME,ELSE DATE. LDX 1,S LOOP LDB ,X+ QUIF EQ GUESS CMPB #":" QUIF EQ PSHS X CALL ISDIGIT_ ; PULS d,pc t_c FCS "C" t_equ FCS "=" CMPA #"/" QUIF EQ CMPA #"-" QUIF EQ PSHS d,x TFR a,b CLRA CALL isdigit_ PULS d,x 5 suffixst_ ;add drive prefix. CALL stripdisk,#input_buffer+80 CALL suffixst_ ;add destination. CALL suffixst_,#t_equ ;add "=". CALL drive,alternate_buf CALL suffixst_ 5NE ;DISPLAY DATE. CALL GETDATE_ PSHS D CALL PRINTF_,#T_STR TST [,S] CNE TPUTCHR_,#" " LEAS 2,S ENDIF CALL MAKETIME2P,ALTERNATE_BUF CAL5kip_prefix_ TFR d,x LDD #d0prefix__ PSHS d LOOP LDA ,x+ QUIF EQ CMPA #"." QUIF EQ CMPA #"/" IF EQ ;drive number should follow.5 PULS X QUIF NE DEC ,S ;IT IS NOT A TIME. ENDGUESS TST ,S UNTIL NE GUESS LDB ,S+ QUIF EQ ;IT IS A DATE. CALL SETDATE_,(6;_MOUNT XDEF EC_MOUNT XREF _SYNTAXCHK XREF SUICIDE_,DEF_DEVICE XREF MOUNT_,CHECKOUTFNAME ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\5 ;add source drive prefix. CALL stripdisk,alternate_buf CALL suffixst_ ;add source file name. PULS d JMP comm manual CALL openf_,alternate_buf,#read__ PSHS d CALL GL PRINTF_,ALTERNATE_BUF JMP SUICIDE_ T_STR FCS "%S" ENDLOOP LEAS 1,S TFR S,D CALL SETTIME_ LEAS 4,S ENDGUESS SHOWTIME CALL _MSGREADY LDD 2,S IF 5 LDA ,x CMPA #"1" SEQ2 (,s),#d1prefix__ CLRB ENDIF UNTIL EQ PULS d,pc ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;perfor5,S) ;SETS THE DATE. CALL SCANFNAME STD ,S TST [,S] QUIF NE ADMIT ;IT IS TIME. LEAS -4,S CALL _CSTART,(4,S) CALL _CHRGOT TFR 6;_EXEC XDEF EC_EXEC XREF _COMMANDER,errorouter XREF CLOSEF_,openf_,suicide_ XREF CHECKOUTFNAME XREF READ__ ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :EDIT MOUNT COMMAND. ;RETURNS :NO-REPEAT FLAG. EC_MOUNT CALL CHECKOUTFNAME,#-1,#INPUT_BUFFER CALL DEF_DEVICE,#INPUT_BUFFER,#INPUT_BUFFER CALL _SYNTAXCHK CALL MOUNT_,#INPUT_BUFFER JMP SUICIDE_ ERROROUTER,(2,s),(2,s) LDD ,S++ QUIF EQ ADMIT JMP SUICIDE_ ENDGUESS DONE 4 RMS :OPENS A FILE AND HANDLES ERRORS. ;PARAMETERS:FILE MODE ;RETURNS :TRUE(I/OB)/FALSE; WAS THE OPEN SUCCESS6;_NAME XDEF EC_NAME XREF CHECKOUTFNAME XREF _BMESSAGE XREF COPYSTR_,PREFIXST_ ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS 6 ;_get XDEF ec_get XREF _offsetbyp,_pointerofp XREF _inserttext,_printscreen XREF errorcheck XREF tbreak_,closeup,openup_4p XREF prefixst_ XREF fgetrec_ XREF eof_,suicide_ 6 \\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :EDIT CONNECT FILE TO KEYBOARD. ;RETURNS :ABLE TO REPEAT FLAG. EC_EXEC PUSH KBIN GUESS CALL opener,#READ__ STD KBIN LOOP CALL _COMMANDER 6 CALL eof_,(,s) COMB QUIF EQ CALL errorcheck,(,s) QUIF NE CALL _inserttext STB error_flag IF NE CALL prefixst_,#nomem__,alternate_buf 6 ;_put XDEF ec_put,ec_putlines XDEF ec_print,ec_printl XREF _fetchtext,_printscreen XREF _offsetbyp,_pointerofp XREF errorcheck,fix_range XREF tbreak_,suicide_ XREF length_,prefixst_ 6 :EDIT NAME, RENAME COMMAND. ;RETURNS :NO-REPEAT FLAG. EC_NAME CALL CHECKOUTFNAME,#0,ALTERNATE_BUF ;RENAME FILE IF POSSIBLE. CALL COPYSTR_,NAME_BUF,#INPUT_BUFFER CALL PREFIXST_,DEF_BUF,#INPUT_BUFFER CALL _BMESSAGE,#106 XREF read__ ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :edit get. ;returns :if error then 1. ec_get LDD cur_line PSHS d LDD eo6 LDB SERVICE_ CMPB #1 UNTIL NE CALL CLOSEF_,KBIN ENDGUESS PULL KBIN ;RESTORE ORIGINAL INPUT DEVICE. LDB SERVICE_ CMPB #2 IF EQ DEC SER6LDB #$ff ENDIF QUIF NE LDX temp_counter INX STX temp_counter ENDLOOP PSHS b CALL closeup,(3,s),alternate_buf SET2 cur_line,(3,s) CALL _pointe6 XREF stoi_,hstob_,tableloo_,isalpha_,isdigit_,ishex_ XREF fputrec_ XREF write__ XREF openup_4p,closeup ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\,#INPUT_BUFFER XDEF EC_NAME XREF CHECKOUTFNAME XREF _BMESSAGE XREF COPYSTR_,PREFIXST_ ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS 6f_line SUBD #1 ;0=reset name, else don't. IF NE CLRA LDB [name_buf] ;if there is no file name then reset anyway. ENDIF PSHS d CALL openup_4p,#read__ STD ,s ;.i/ob,6VICE_ ;SIGNAL ALL IS OK. ENDIF RTS ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :OPENS A FILE AND HANDLES ERRORS. ;PARAMETERS:FILE MODE ;RETURNS :TRUE(I/OB)/FALSE; WAS THE OPEN SUCCESSrofp STD txtcur CALL _printscreen LDB ,s+ JNE suicide_ DONE 4 nomem__ FCS "Out of memory: " abort__ FCS "Aborted: " IF NE CALL prefixst_,#nomem__,alternate_buf 6\\\\\\\\\\\\ ;performs :put and print text. ;returns :if error then 1. GUESS GUESS ec_put LDX #0 ;don't modify text. ADMIT ec_print LDX #-1 ;modify text. ENDGUESS SET26LDX name_buf LDA ,x TST ,s IF NE ;do not allow the default name for the print command. CLR ,x ENDIF PSHS a,x CALL openup_4p,#write__,#-1 ;always don't rename file. 6cur_line,rts LDD range_start STD txtcur CMPD txtend IF EQ CALL _offsetbyp,#-1 ENDIF STD txtcur LOOP CALL tbreak_ IF NE CALL prefix6FUL? ;DESTROYS : KEEPS: opener PSHS D CALL CHECKOUTFNAME,#-1,ALTERNATE_BUF PSHS D GUESS TST [,S] QUIF EQ CALL OPENF_,(2,s),(2,s) PSHS d CALL7 SUBD txtend QUIF EQ CALL _fetchtext,txtcur,#input_buffer LDD 2,s IF NE CALL modifytext,#input_buffer ELSE CALL length_,#input_buffer ENDIF 6 range_start,txtbeg SET2 range_end,txtend ADMIT ; line range put ec_putlines LDX #0 ;don't modify text. ADMIT ec_printl LDX #-1 ;modify text. ENDGUESS putter PSHS x CALL fix_range 6 TFR d,y PULS a,x TST ,s IF NE STA ,x ENDIF PSHS y SET2 txtcur,range_start CMPD txtbeg CEQ _offsetbyp,#1 LOOP STD txtcur 6st_,#abort__,alternate_buf LDB #$ff ENDIF QUIF NE ; get a line CALL fgetrec_,(4,s),#input_buffer,#120 LDX #input_buffer CLR d,x ;null last byte. 7 PSHS d CALL fputrec_,(6,s),#input_buffer,(,s) LEAS 2,s CALL errorcheck,(2,s),alternate_buf QUIF NE LDX temp_counter INX STX temp_counter CALL t7 ;not a valid syntax. LDB #"<" ADMIT ;found a control character. GUESS CMPB #1 QUIF NE ;hex string. INX 7-delimit. LDB #"<" ENDGUESS TFR y,x ;continuation pointer ENDGUESS PULS y endone STB ,y+ LBRA mloop mend CLR ,y TFR y,d SUBD ,s++7 QUIF NE LOOP LDB ,y QUIF EQ LEAY 1,y CLRA PSHS b,y CALL isalpha_ PULS b,y UNTIL EQ CLRA CMPB7 "dle" FCS "dc1" FCS "dc2" FCS "dc3" FCS "dc4" FCS "nak" FCS "syn" FCS "etb" FCS "can" FCS "em" FCS "sub" FCS "esc" FCS "f7 break_ IF NE CALL prefixst_,#abort__,alternate_buf LDB #$ff ENDIF QUIF NE LDD txtcur SUBD range_end QUIF EQ CALL _offsetbyp,#1 E7 PSHS x,y ;start of hex string, cont. pointer. CALL hstob_,(2,s),(4,s) PULS x,y ;cont. pointer LDX ,s DECB LDB b,x ADMIT 7 RTS ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ; scan till a delimiter is reached .x = starting return with .y pointing to ; the next valid character and .d = 0 for not valid, 1 for hex, 2 for text, ; 7 #">" IF EQ LDA #2 ENDIF ADMIT ;is it a decimal string. LOOP LDB ,y QUIF EQ LEAY 1,y CLRA PSHS b,y Qs" FCS "gs" FCS "rs" FCS "us" FCB 0 FCS "bs" FCS "ht" FCS "lf" FCS "vt" FCS "ff" FCS "cr" FCS "so" FCS "si" FCS 7NDLOOP PSHS b CALL _pointerofp,cur_line STD txtcur CALL closeup,(1,s) CALL _printscreen LDB ,s+ JNE suicide_ DONE 4 abort__ FCS "Aborted: " ;\\\\\\\\\\\\\\\\\\\\\\\\\7 CMPB #3 QUIF NE ;decimal string. PSHS x,y CALL stoi_,(,s) PULS x,y ADMIT CMPB #2 QUIF NE 7and 3 for decimal. null end the meta if legal. leave .x the same. dlength PSHS x TFR x,y LDB ,y+ CMPB #"$" IF EQ ;is it really a hex string? LOOP CLRA LDB 7 CALL isdigit_ PULS b,y UNTIL EQ CLRA CMPB #">" IF EQ LDA #3 ENDIF ENDGUESS lenend PULS x STA ,-s IF NE ;7;_LOOK XDEF EC_LOOK XREF TBREAK_,KYPUTB_ XREF ZNDRETURN_ XREF _PRINTSCREEN XREF FGETREC_,OPENUP_4P XREF EOF_,CLOSEF_,SUICIDE_ XREF READ__,_HOLDIT,CURPOS_,SCREEN_ ;include ;7\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :modify text to allow for control characters. ;parameters:position to check. ;returns :length of control sequence. ;destroys :x, y keeps: modifytext TFR d,x ;source 7 ;text string. PSHS x,y CALL length_,(,s) PSHS d CALL tableloo_,#ascii,(4,s),(,s) LEAS 2,s PULS x,y QUIF EQ 7 ,y LBEQ lenend LEAY 1,y CLRA PSHS b,y CALL ishex_ PULS b,y UNTIL EQ LDB -1,y CLRA CMPB #">" IF EQ7if recognized then make into legitimate string. CLR -1,y ELSE TFR x,y ENDIF PULS b SEX RTS ascii FCS "nul" FCS "soh" FCS "stx" FCS "etx" 7include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :EXAMINES A FILE BY SCROLLING IT ON SCREEN. ;RETURNS :NO-REPEAT FLAG. EC_LOOK CALL OPENUP_4P,#READ__,#-1 PSHS D LDX 7pointer. TFR d,y ;destination pointer. PSHS d mloop LDB ,x+ LBEQ mend CMPB #"<" LBNE endone GUESS PSHS y CALL dlength QUIF NE 7 DECB ADMIT ;must be not recognized. TFR x,y LOOP LDB ,x+ UNTIL EQ LDB #">" STB ,-x ;un7 INCA ENDIF LBRA lenend ENDIF GUESS ;is it all text. CMPB #"+" QUIF EQ CMPB #"-" QUIF EQ CLRA CALL isdigit_ 7 FCS "eot" FCS "enq" FCS "ack" FCS "bel" FCS "bs" FCS "ht" FCS "lf" FCS "vt" FCS "ff" FCS "cr" FCS "so" FCS "si" FCS 8 CURPOS_ LEAX SCREEN_,X LDB ,X EORB #%10000000 STB ,X CALL ZNDRETURN_ CALL ZNDRETURN_ LOOP CALL FGETREC_,(4,S),#INPUT_BUFFER,#80 LDX #INPUT_BUFFER 8;TAL XDEF EC_TALK XREF _SYNTAXCHK XREF PASSTHRU_,SUICIDE_ XREF _PRINTSCREEN ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :8;RUN XDEF EC_RUN XREF _SYNTAXCHK,SUICIDE_ XREF _TITLE ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :SIMULATES A STARTUP OF EDITOR. ;RETURNS :NO-REPEAT FL8;exit XDEF ec_exit XREF ec_put,_chrgot XREF _syntaxchk,suicide_ XREF zndreturn_,curpos_,screen_ ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\8 CLR D,X CLR CRTWIDTH,X ;JUST IN CASE. LDY CURPOS_ LEAY SCREEN_,Y PSHS Y CLRA LOOP LDB ,X QUIF EQ INX 8 ;DUTIL XDEF MAKETIME2P XDEF ERRORCHECK,ERROROUTER XDEF PARSE_TO XREF STREQ_,_BMESSAGE XREF PREFIXST_,COPYSTR_,CHECKOUTFNAME XREF ERRORF_,ERRORMSG_,_SYNTAXCHK XREF GETTIME_,STRIPDISK,TALK TO THE HOST DEVICE. ;RETURNS :NO-REPEAT FLAG. EC_TALK CALL _SYNTAXCHK CALL PASSTHRU_,#1 CALL _PRINTSCREEN SET1 SERVICE_,#1 JMP SUICIDE_ MAG. EC_RUN CALL _SYNTAXCHK CALL _TITLE JMP SUICIDE_ HK CALL PASSTHRU_,#1 CALL _PRINTSCREEN SET1 SERVICE_,#1 JMP SUICIDE_ 8 \\\\\\\ ;PERFORMS :LEAVES EDITOR. ;RETURNS :NO-REPEAT FLAG. ec_exit CALL _chrgot CNE ec_put CLR service_ LDX curpos_ LEAX screen_,x LDB ,x EORB #%10000000 STB ,x CAL8 STB ,Y+ INCA ENDLOOP LDB #" " LOOP INCA CMPA #CRTWIDTH QUIF HI STB ,Y+ ENDLOOP PULS X LDB ,X 8SUFFIXST_ ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :CHECK FOR STRING EQUALING 'TO'. ;PARAMETERS:STRING POINTER. ;RETURNS :TRUE/FALSE. ;DESTROYS : 8RNS :ERROR CONDITION AND TEXT IN BUFFER. ;DESTROYS : KEEPS: .P1 ERRORCHECK PSHS D CALL ERRORF_ STB ERROR_FLAG IF NE CALL PREFIXST_,#COLON__,(4,S) CALL ERRORMSG_,(,S) 8 #3 STB 5,S LDX 6,S TFR S,Y LOOP LDA #"0" LDB ,Y+ LOOP CMPB #10 QUIF LT INCA SUBB #10 ENDLOOP 'L zndreturn_ JMP suicide_ XREF ec_put,_chrgot XREF _syntaxchk,suicide_ XREF zndreturn_,curpos_,screen_ ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\8 EORB #%10000000 ;FOIL UNSIGHTLY CURSOR. STB ,X CALL ZNDRETURN_ CALL TBREAK_ QUIF NE CALL KYPUTB_ CMPB #" " IF EQ LOOP CALL T8 KEEPS: EQUAL_TO CALL STRIPDISK PSHS D CALL STREQ_,#T_TOL,(,S) CEQ STREQ_,#T_TO DONE 2 T_TO FCS "TO" T_TOL FCS "to" ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\8 PSHS D CALL PREFIXST_,(2,S),(6,S) LEAS 2,S ENDIF CLRA LDB ERROR_FLAG DONE 2 COLON__ FCS ": " ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFO8 STA ,X+ ADDB #"0" STB ,X+ DEC 5,S QUIF EQ LDA #":" STA ,X+ ENDLOOP CLR ,X DONE 8 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\8 ;DEFAULTS TO NO SECOND PARAM. LEAS -30,S TFR S,D PSHS D CALL COPYSTR_,NAME_BUF ;SAVE NAME FOR SAFE KEEPING. LEAS 2,S CALL CHECKOUTFNAME,#-1,ALTERNATE_BUF CALL EQUAL_TO 8BREAK_ BNE OUT CALL KYPUTB_ CMPB #" " UNTIL EQ ENDIF CALL EOF_,(,S) UNTIL NE OUT CALL ZNDRETURN_ CALL ZNDRETURN_ CALL _HOLDI8\\\\ ;PERFORMS :CHECK FOR AND PRINT OUT ANY ERRORS. ;PARAMETERS:I/O BLOCK ~ FILE NAME. ;RETURNS :NONE, BUT SUICIDES IF THERE'S AN ERROR. ;DESTROYS :X KEEPS: .P1 ERROROUTER LDX 2,S PSHS X CALL ERRORCHECK 8 RMS :MAKES THE TIME INTO A NEAT FORMAT. ;PARAMETERS:DESTINATION OF TIME STRING. ;RETURNS :NONE ;DESTROYS :X, Y KEEPS: MAKETIME2P PSHS D LEAS -6,S TFR S,D CALL GETTIME_ ;PUT TIME ONTO STACK. LDB 8\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :PARSES A COMMAND THAT CAN HAVE TWO PARAMS. ;PARAMETERS:NONE ;RETURNS :NONE, BUT ALTERNATE_BUF=FIRST PARAM, INPUT_BUFFER+80=SECOND PARAM. ;DESTROYS : KEEPS: PARSE_TO CLR INPUT_BUFFER+80 9 IF NE CALL COPYSTR_,DEF_BUF,ALTERNATE_BUF ;ASSUME DEFAULT. CALL SUFFIXST_,NAME_BUF,ALTERNATE_BUF BRA SECOND ENDIF LDD NAME_BUF PSHS D CALL STRIPDISK,ALTERNATE_BUF UT CALL CLOSEF_,(,S++) CALL _PRINTSCREEN JMP SUICIDE_ L ZNDRETURN_ CALL TBREAK_ QUIF NE CALL KYPUTB_ CMPB #" " IF EQ LOOP CALL T8 CNE _BMESSAGE,#10 DONE 2 ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;PERFORMS :CHECK FOR ERROR AND IF SO THEN PUT MESSAGE IN BUFFER. ;PARAMETERS:I/O BLOCK ~ DESTINATION TO INSERT ERROR MESSAGE. ;RETU9Errors 0 $0aa4 ; Length Import LENGTH_ Import COPYSTR_ 502(both),207(both),161(both) Import COPY_ 398(both),349(both) Export _FETCHTEXT=$00e3 Import UPPER_ 291(both) Import TABLELOO_ Export _INSERTTEXT=$0000 Import SET_EOF_LINE 417(both),219(both) Impo9 CALL COPYSTR_ ;REPLACE NAME WITH NEW ONE. LEAS 2,S TST CHRGOTCHAR IF NE ; CHECK FOR DESTINATION. CALL CHECKOUTFNAME,#-1,#INPUT_BUFFER+80 GUESS CALL EQUAL_TO 963406ec62a3643406ec663406ec64bd0000 32623262dc28a368dd28dcb4a368ddb4bd00003266393430dd681f01cc0000ede34fe6803410bd00 0035102609ece4c30001ede420ebece4d3681f01e6842707c12027035f2032ece43406dc683406cc 0272bd02233264271f34049e6830023410dc68e363bd000032629e6898585800626c74585858585800626d69585858585800626e65585858585800 62706c58585858580062726158585858580062726e58585858580062737258585858580062766358 5858585800627673585858585800636c72585858585800636c72615858585800636c726258585858 00636d70615858585800636d7062589 615858 5858006c73726258585858006d756c5858585858006e65675858585858006e65676158585858006e 65676258585858006e6f705858585858006f72615858585858006f72625858585858006f72636358 5858580070736873585858580070736875585858580070756c73585858580070756c755858585800 726f9 rt LOWER_ 570(both) Import ISDELIM_ 439(both) Import _OFFSETALL 4(both) Import SKP_ALPHA Export OPENP_BYTESP1=$0138 Export CLOSEP_BYTESP1=$0172 Reloc 0,541(both),0,483(both),0,480(both),0,273(both),0,270(both),0,188(both), 0,89(both) Object cc0001bd00009 QUIF EQ SECOND TST CHRGOTCHAR QUIF EQ CALL CHECKOUTFNAME,#-1,#INPUT_BUFFER+80 ENDGUESS ENDIF TFR S,D LDX NAME_BUF PSHS X CALL COPYSTR_ 9 350486ffa780e784c6ff2001 5f32621d35b03436ec6827085a86093de3e42003cc0aa3326235b034306fe21f016d6a272f10ae67 a66a6ce4e6a034324fbd00003532e184260bc658e184270530014a26e74d270c6d8427046d8026fc 6d8426d14d27046fe4200ae6842706c15827026fe435041d35b06373585858585859 58585800636d70645858585800636d70735858585800636d70 755858585800636d70785858585800636d70795858585800636f6d585858585800636f6d61585858 5800636f6d6258585858006377616958585858006461615858585858006465635858585858006465 63615858585800646563625858585800656f7261596c585858585800726f6c615858585800726f6c625858585800726f72585858585800726f7261 5858585800726f726258585858007274695858585858007274735858585858007362636158585858 00736263625858585800736578585858585800737461585858585800737462585858585800737464 5858585858007379dc24ddb6dcacddaacc0000ede3c620f703ff7f04788e040034106d8026fc301fc620 e18226046f8420f86df410270074aee4afe4e684c47fe784c1222706c13b2702200263636d63260f e61fc12026091f10bd01a6270230024fe684271ec1202404c620e784e7621f124f4ce18027fb4a30 1f6d6327014f810223b64d1K ;RESTORE ORIGINAL NAME. LEAS 32,S JMP _SYNTAXCHK 2,S TST CHRGOTCHAR IF NE ; CHECK FOR DESTINATION. CALL CHECKOUTFNAME,#-1,#INPUT_BUFFER+80 GUESS CALL EQUAL_TO 98006363585858 585858006571585858585858006e65585858585858006d69585858585858006c7458585858585800 706c5858585858580067745858585858580067655858585858580068695858585858580068735858 58585858006c65585858585858006c73585858585858006c6f58585858585800766358585858589858585800656f72625858585800657867585858 585800696e63585858585800696e63615858585800696e636258585858006a6d705858585858006a 73725858585858006c62636358585858006c62637358585858006c62657158585858006c62676558 585858006c62677458585858006c62686958585858006c626873947358585858580073747558585858580073747858585858580073747958585858 58007375626158585858007375626258585858007375626458585858007377695858585858007377 6932585858580073776933585858580073796e635858585800746672585858585800747374585858 5858007473746158585858007490270023811f2302861fa7a0e7a010afe4800231a63420ec623406ec62 bd00003262326216ff868e04005f5c6d8026fbe7635c4f3406dc24bd01383262261e9e24e6635ce7 803410cc0400bd000032629e24e6633ae784bd0000cc00003264391f01e6805a340410ae636ae427 42e680c120240ba6806ae4a7a05a26fb20969666e655858585800696e7358585858 5800696e785858585858006c6f6f7058585858006c736c6458585858006c73726458585858006d61 637258585858006e616d5858585858006f70745858585858006f72616158585858006f7261625858 5858006f726758585858580070616765585858580070736374585858580958 00767358585858585800616278585858585800616463615858585800616463625858585800616464 615858585800616464625858585800616464645858585800616e64615858585800616e6462585858 5800616e6463635858580061736c58585858580061736c61585858580061736c6258585858006173 72585858958585858006c626c655858585800 6c626c6f58585858006c626c7358585858006c626c7458585858006c626d6958585858006c626e65 58585858006c62706c58585858006c62726158585858006c62726e58585858006c62737258585858 006c62766358585858006c62767358585858006c64615858585858006c646259737462585858580061736c64585858580061646d69745858580063 6c765858585858006370785858585858006465735858585858006465785858585858006473637458 58585800656c73655858585800656e64585858585800656e64635858585800656e64677565737300 656e64696658585800656e646c6f6f705800692fc1ff26294fe6806ae43406cc0272bd020eafe41f014f e680270fc158270b3430bd00003530e7a020ec35102002e7a020ba6fa43261393406327cdc281f01 eb848900ede4e368ed6293ae2221ece4a3643406ec66e36a3406ec68bd00003264dc28e368dd28dc b4e368ddb45f1d32663934069e28e6843a3410ec62e36:071756966585858580072 6d625858585858007365635858585858007365695858585858007365745858585858007365765858 58585800737461615858585800737461625858585800746162585858585800746170585858585800 74626158585858580074706158585858580074737858585858580074787358585858589585800617372615858585800617372625858585800626363585858585800626373585858 58580062657158585858580062676558585858580062677458585858580062686958585858580062 6873585858585800626974615858585800626974625858585800626c65585858585800626c6f5858 58585800626c73585859858585858006c6464 5858585858006c64735858585858006c64755858585858006c64785858585858006c647958585858 58006c65617358585858006c65617558585858006c65617858585858006c65617958585858006c73 6c5858585858006c736c6158585858006c736c6258585858006c73725858585858006c7372956e646d58585858006571755858585858006661696c 58585858006663625858585858006663635858585858006664625858585858006775657373585858 00696658585858585800696663585858585800696665715858585800696667655858585800696667 74585858580069666c74585858580069666e635858585800:0074746c58 5858585800756e74696c5858580078646566585858580078726566585858580063616c6c58585858 00666373585858585800636571585858585800636e655858585858006a65715858585858006a6e65 5858585858006a68695858585858006a6c6f58585858580073657432585858580073657431585858 :Errors 0 $005c ; Length Import _PRINTSCREEN 91(both) Import FIX_RANGE 16(both) Import _SYNTAXCHK 13(both) Import LOWER_ 8(both) Export EC_LOWER=$0007 Import UPPER_ 1(both) Export EC_UPPER=$0000 Object cc000034062005cc00003406bd0000bd00009eb2e6805a5aa6856:;_dul XDEF ec_upper XDEF ec_lower XREF _syntaxchk XREF lower_ XREF upper_ XREF _printscreen,fix_range ;include ;include ;\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\: ENDIF ADMIT INX ENDGUESS INX ENDLOOP LEAS 1,s PULS d,x STA b,x INCB ABX CMPX range_end : "bedit" include "watlib.exp" include "usrlib.exp" bank 0 "clmstart.b09" "_c.b09" "_i.b09" "_srch.b09" "_renam.b09" "_mon.b09" "utils.b09" "message.b09" "comm.b09" "omemory.b09" "title.b09" "dir.b09" bank 1 "_list.b09" "_help.b09" "fname.b09" "keys.b09"5800736e65315858585800736571315858585800736e65325858585800736571325858585800646f 6e65585858580070757368585858580070756c6c5858585800696e79585858585800646579585858 5858000000 5858585800 7462615858585858007470615858585858007473785858585858007478735858585858f8534166fe2e6842728c1222602 63e4c12024023001c1ff27126de4260c4fe6843410adf8073510e78420023001300120d432613516 a7855c3a9cb42fbc32627e0000 9585858585800646579585858 5858000000 5858585800 7462615858585858007470615858585858007473785858585858007478735858585858: \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ ;performs :change case of text. ;returns :repeatable flag. GUESS ec_upper push #upper_ ADMIT ec_lower push #lower_ ENDGUESS CALL _syntaxchk CALL fix_range > UNTIL GT LEAS 2,s JMP _printscreen IF EQ CLRA LDB ,x PSHS x CALL ([7,s]) PULS x STB ,x : "text.b09" "line.b09" "dparse.b09" bank 2 "_ul.b09" "_dc.b09" "_dt.b09" "_mount.b09" "_scrat.b09" "_tab.b09" "_di.b09" "_exec.b09" "_name.b09" "_get.b09" "_put.b09" "_look.b09" "_def.b09" "_#.b09" "_s.b09" "_d.b09" "_f.b09" "_nul.b09" "_em.b09" "_tal.b:"devedit" include "watlib.exp" include "usr.exp" include "fp.exp" bank 0 "clmstart.b09" "_exec.b09" "_c.b09" "_i.b09" "_srch.b09" "line.b09" "utils.b09" "comm.b09" "ctitle.b09" "dparse.b09" "dir.b09" bank 1 "_renam.b09" "_dc.b09" "_dt.b09" "_mount.b09" ory.b09" b09" "keycalc1.b09" "text.b09" bank 2 "_tab.b09" "_name.b09" "_get.b09" "_put.b09" "_look.b09" "_def.b09" "_run.b09" "_s.b09" "_tal.b09" "_d.b09" "_f.b09" "_exit.b09" "_mon.b09" "_nul.b09" "_em.b09" "_dul.b09" "_#.b09" "_list.b09" "fname.b09" ": LDX range_start LOOP LDB ,x+ DECB DECB LDA b,x CLR b,x ;null end of line. PSHS d,x CLR ,-s LOOP LDB ,x QU:export line_buffer_ = $0400 export asignfcb = $d412 ;allocate an i/o block. export chddevcd = $e47d ;parse '.' separator. export chkdevnm = $e373 ;parse device name. export chkdskdr = $e444 ;parse disk drive. export chkieed409" "_run.b09" "_exit.b09" "dutil.b09" "futil.b09" bank 0 "clmstart.b09" "_c.b09" "_i.b09" "_srch.b09" "_renam.b09" "_mon.b09" "utils.b09" "message.b09" "comm.b09" "omemory.b09" "title.b09" "dir.b09" bank 1 "_list.b09" "_help.b09" "fname.b09" "keys.b09": "_scrat.b09" "keycalc1.b09" "text.b09" bank 2 "_tab.b09" "_name.b09" "_get.b09" "_put.b09" "_look.b09" "_def.b09" "_run.b09" "_s.b09" "_tal.b09" "_d.b09" "_f.b09" "_exit.b09" "_mon.b09" "_nul.b09" "_em.b09" "_dul.b09" "_#.b09" "_list.b09" "fname.b09" ":00 ;i/o error text goes here. export ioerrsta_ = $006a export isdelim = $ba14 ;(isdelim) check. see if on watlib. export keyboard__ = $b14b export kyindx_ = $012b export kyptr1_ = $012c ;start of input buffer pointer. e:IF EQ CMPB #$22 ;" IF EQ COM ,s ENDIF CMPB #32 IF LO INX ENDIF GUESS CMPB #$ff :v = $e3d1 ;parse device number. export curpos_ = $0122 ;cursor postion. export d0prefix__ = $e738 ;'0:' export d1prefix__ = $e73b ;'1:' export disk__ = $b124 ;'disk'. export ds_read = $bfef ;read a disk status me:ditions. export prefixst_ = $b80a ;(prefixst) export putbky_ = $ddad ;stuffs char .b to keyboard buffer. export put_name = $bcd0 ;puts a name to ieee file .pi/od export read__ = $b18c ;'read'. export screen_ = $8000 : dutil.b09" "futil.b09" "message.b09" bank 10 "join.b09" "adapt.b09" "what1.b09" "convert.b09" "spread1.b09" "con0.b09" "con1.b09" "con2.b09" "rith1.b09" "doint1.b09" "ascii1.b09" "scr2asc.b09" "asc2char.b09" bank 13 "_di.b09" "_help.b09" bank 14 "dmem:xport kyptr2_ = $012e ;end of input buffer pointer. export kyputb_ = $dd82 ;returns a char from the keyboard buffer. export memend_ = $0022 export monitor = $f05c ;(monitor). export nosys_err = $b636 ;clear error con: QUIF EQ TST ,s IF EQ CLRA LDB ,x PSHS x CALL ([7,s]) PULS x STB ,x :ssage from .pi/od. export freefcb = $d483 export gioblk_ = $0011 export gsysblk_ = $13 ;global system block. export hex__ = $fcf9 ;'57'. export igetbyte = $befb ;get a byte from ieee. export ioerrbuf_ = $03;;start of screen address. export set_msgp = $b653 ;sets system error to strint .p. export setup = $ad57 export skp_alpha = $e6c0 ;count number of alpha characters. export skp_nums = $e6d5 ;count number of numbers. export std;export fload2_ = $a018 export fstore_ = $a01b export cnvif_ = $a02d export fadd_ = $a030 export fadd2_ = $a033 export fsub_ = $a036 export fsub2_ = $a039 export fmul_ = $a042 export fdiv_ = $a048 export cnvs2f_ = $a051 export cnvf2s_;Errors 0 $012d ; Length Import COPYSTR_ 28(both),13(both) Import COPY_ 82(both) Import PRINTF_ 106(both) Import _CSTART 132(both) Import _SCREENSTART 141(both) Export _TITLE=$0000 Import SPAWN_ 138(both) Import EC_DATE 135(both) Import GETDATE_ 79(both) ;Errors 0 $0171 ; Length Import _NUMBEROFP Import _SCRNDELETE 364(both) Import _DELETELINE 361(both) Import _REPRINTROW 333(both) Import _SCRNINSERT 309(both) Import _INSERTTEXTM 298(both) Import COPYSTR_ 257(both) Import _PRINTSCREEN 303(both),238(both);in_ = $6b export talk2me = $c0dd export terminal__ = $b13b ;'terminal'. export time_ = $0160 ;clock hh/mm/ss/tt. export to_disk1_ = $036a ;another disk timeout constant. export to_disk_ = $0368 ;disk device ti; 00cb000000cb00cb00cb00cbccffeb200dcc00152008ccffff2003cc0001bd 00007e00004fd6bb8300013406dcac10a3e42c02ede4be000030890000e684c880e784c601d7ba4f d6bba3e4d7bb3406cc00013406ec62bd0000326232623506bd0000bd0000dc24ddb6dcacddaa7e00 000fb939c601d7b97f04007e0000c = $a054 sm dmemory.asmA9dmemory.b09:_dul.b09:_dul.asm:bedit.cmd: devedit.cmd: usr.exp ; Import GETREC_ 120(both) Import MAKETIME2P 62(both) Reloc 0,103(both),0,25(both),0,10(both) Object 9e223088dd9fb03410cc0127bd000035103088e79fc23410cc0121bd000035103088af9fa86f8430 88879fa66f843088af9fa46f84301f9fae32761f40bd00001f403406cc000b3406cc040034; Import _CLRMSG 235(both) Import _COMPRINT 232(both) Import _FETCHTEXT 354(both),222(both) Import ___NEG 185(both) Import SETCURTORPCP1 176(both) Import SCREEN_ 147(both) Import CURPOS_ 143(both) Import _PURGE 367(both),320(both),212(both),199(both),123(meout constant. export write__ = $b191 ;'write'. export zndclr_ = $d9a9 ;clear screen export zndreturn_ = $d872 ;carraige return 0 ;count number of alpha characters. export skp_nums = $e6d5 ;count number of numbers. export std;c04003406dc24bd000032620fb9cc04007e0000bd00007e0000 ccffffbd0000bd0000cc04003406dca4bd00003262d6b920057f0400c601340496bbd6ba3406dc24 109328260cccffffbd0000bd00007f0400bd00002706bd0000326339bd0000dc24ddb6dcacddaabd 0000350697bbd7bae6e0d7b97e0000dc24109326;Errors 0 $0109 ; Length Import _MESSAGE Import PRINTF_ Import TPUTCURS_ Import DOASCII 153(both) Import RITHMETIC 151(both) Import CONVERT 149(both) Import _INSERTTEXTM 144(both) Import _OFFSETALL 141(both) Import _DELETELINE 113(both) Import _FETCHTE;06bd00 00bd000032648e04006f0b3410dcae93208300043406cc008fbd000032e810cc00503406cc0400bd 000032628e04006f8b1f10bd0000cc0000bd00007e00000c256e43414c432020203a436f70797269 6768742031393835206279204469636b204261726e6573256e454449544f52203a436f7079726967 6874;both) Import _OFFSETALL 289(both),244(both),188(both),120(both) Import REPEAT 91(both) Import CAR_RTN 87(both) Import CUR_DN 81(both) Import CUR_UP 83(both),53(both) Import CALC 47(both) Import _UPDATESCREEN 292(both),247(both),39(both) Export _DOCHAR=$0;bbd6bafd0108bd00fbbd0000108e0093adb67d000026107d0000270b7d00002706bd0050 bd0000397d0000261396bbd6bafd0108cc00e43406bd00003262200bd6baf70109bd0050bd000039 cc00003406dc24bd000032628e00006d8026fc301fc620e7808c005025f9dc24bd0000f601098e00 003085301f108e0000e?271b1093282716dca43406dc24bd00003262dc24 bd0000bd0000bd000039 00007e00004fd6bb8300013406dcac10a3e42c02ede4be000030890000e684c880e784c601d7ba4f d6bba3e4d7bb3406cc00013406ec62bd0000326232623506bd0000bd0000dc24ddb6dcacddaa7e00 000fb939c601d7b97f04007e0000c;XT 88(both) Import LINE_BUFFER_ 119(both),106(both),93(both),81(both) Import NOGOOD 257(both),161(both),62(both) Export REPEAT=$002c Import _PRINTSCREEN 77(both),41(both) Import ENTRIES 28(both) Import ENTRYERR 23(both) Import WHAT 14(both) Export CLEARB2031393834206279204a6f6520426f73746963256e256e20256420627974657320667265652e 256e256e446174653a202573256e54696d653a202573256e256e456e746572206461746520616e64 2074696d652e256e006469736b2e00746578743a6500 f84301f9fae32761f40bd00001f403406cc000b3406cc040034;000 Reloc 0,99(both),0,97(both),0,95(both),0,93(both),0,89(both),0,85(both), 0,79(both),0,77(both),0,75(both),0,73(both),0,71(both),0,69(both), 0,67(both),0,65(both),0,63(both),0,61(both),0,59(both),0,57(both), 0,55(both),0,51(both),0,49(both),0,45(both);6a02704e78020f8ccffffbd0000bd000039009b000000000000cc00a63406 bd0000326239454e545259204552524f522e20436865636b20666f726d61742e2028436f6c756d6e 2053756d20726f7574696e65206e6f7420696e2043414c4353290600546f74616c20427566666572 20697320456d7074790600cc010634;Errors 0 $0089 ; Length Import ROW_COL 85(both) Import PRINTF_ 82(both) Import TPUTCURS_ 88(both),70(both) Export PRINTERR=$0042 Export TOTAL=$002a Export PREFIX=$0029 Export ENTRIES=$0028 Export ROWUP=$0027 Export ENTRYERR=$0026 Export CUR_DIG=$0018 Exp; OT=$00fb Export ROW_COL=$0108 Import TOTAL 127(both),45(both),33(both),1(both) Export CALC=$0000 Reloc 0,252(both),0,156(both),0,147(both),0,116(both),0,74(both),0,71(both), 0,57(both),0,54(both),0,38(both),0,18(both),0,11(both),0,8(both) Object 7f000096P552524f52202564206c696e652873292061626f76 65207374617274696e67206c696e65200600 TPUTCURS_ 88(both),70(both) Export PRINTERR=$0042 Export TOTAL=$002a Export PREFIX=$0029 Export ENTRIES=$0028 Export ROWUP=$0027 Export ENTRYERR=$0026 Export CUR_DIG=$0018 Exp;,0,43(both),0,41(both), 0,31(both),0,28(both),0,15(both),0,1(both) Object 8e00cb5d2a0dc0812d07c10a22038e0029200bc0012d07c11222038e003f8c00cb270358ad957e00 0000d6014f0074000000c9006f000000cc00650109006a007d00f000cb00cb00cb00cb00cb00cb00 cb0000000000ea000006bd0000326239060001e6 0108e0093adb67d000026107d0000270b7d00002706bd0050 bd0000397d0000261396bbd6bafd0108cc00e43406bd00003262200bd6baf70109bd0050bd000039 cc00003406dc24bd000032628e00006d8026fc301fc620e7808c005025f9dc24bd0000f601098e00 003085301f108e0000e;ort LINEBUF=$0000 Reloc 0,79(both),0,74(both) Object aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa0000 00aa00aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacc1901bd00004ff600273406cc00 5dbd0000fc0000bd0000326239454e545259204<Errors 0 $002b ; Length Import ROW_COL Import PREFIX Import PRINTF_ Import TPUTCURS_ Import TGETCURS_ Import TOTAL 41(both) Import PRINTERR 38(both) Import ASC2CHAR 25(both) Import CHAR2ASC 16(both) Import ROWUP 7(both) Import ENTRIES 4(both) Import<Errors 0 $0132 ; Length Import CONTABL 237(both) Import TPUTCURS_ 269(both),257(both),178(both) Import ROW_COL 266(both),175(both) Import PRINTF_ 263(both),172(both) Export DOPF=$00b5 Import CLEARBOT 102(both) Import ITOS_ 97(both) Import TOTAL 94(both),<Errors 0 $02bf ; Length Import ROW_COL Import PRINTF_ Import HSTOB_ Import TPUTCURS_ Import PREFIX 638(both) Import STOI_ 635(both) Import HEX2CN 180(both) Import ISDIGIT_ 178(both) Import ISHEX_ 176(both) Export CONTABL=$00b8 Import DOPF 126(both) I<3948 108e00b810aea6e6a02704e78020f839000000000000027700fc01030111011e012c013d014d0163 01740185019101a301b301c401d501db01e101e801ef01f601fd0204020b0212021902200226022d 023d02430249024f025502694e554c3a5e4000534f483a5e412028486f6d6529005354583a5e4220 285275<  &$턟(ݾ4k$!&1̐} ܤ4bH2ḇ4̱K2b44b2b52b2$~̱4̱K2b9g 4̱2'52& 294ܦ42b4m'b4b2b4b4b2b' ~2d9 &Gܲ'A$)$ ENTRYERR 33(both),30(both),1(both) Export DOASCII=$0000 Object 7f00007f00007f0000e682c1232605bd0000200cc13d2605bd000020037c00007d00002703bd0000 7f000039 < 91(both),83(both),78(both) Import ITOHS_ 73(both) Import PREFIX 169(both),86(both),70(both) Import LINEBUF 105(both),65(both) Import NOGOOD 244(both),22(both) Import ENTRYERR 7(both) Export CHAR2ASC=$0000 Reloc 0,260(both),0,166(both),0,155(both),0,139(b< mport ENTRYERR 80(both) Import TOTAL 632(both),102(both),56(both) Import NOGOOD 49(both) Import LINEBUF 97(both),1(both) Export ASC2CHAR=$0000 Reloc 0,250(both),0,248(both),0,246(both),0,244(both),0,242(both),0,240(both), 0,238(both),0,236(both),0,234(bo< 6e29004554583a5e43202853746f702900454f543a5e44202844656c204b65792900454e51 3a5e452028496e73657274290041434b3a5e462028455343204b65792c20454f4c290042454c3a5e 47202843757273205274290042533a5e48202843757273204c6674290048543a5e49202854616229 004c463a5e4a20284<&#-($( 5AM,'$/ݶܬݪ; 944& *&oa/'A/&A&Bܲ$&佑bb$$  $#ܬ$b42b2d9ܦ4'$/' %&&'~' ʀ504 o/&2b9444<'' 9瀯 oܨE&  _2c944f'& & fb''m'f怯fja'oa& bh'&& m'&&'4'5't&X怯f'b'& 1?b 5m&bm' h4h4f+2d&bm'0b <oth),0,128(both),0,119(both), 0,17(both),0,10(both) Object e682c13d27067c00007e00b4301f3410cc00d03406bd00003262bddd8227fb34041a10bddef35d26 fa1cef6f9f012c35043510c120260686a0a7842002e7844ffd00003406cc0000bd00008624b70000 8620b70003b700008644b70004cc0005b<th),0,232(both),0,230(both),0,228(both), 0,226(both),0,224(both),0,222(both),0,220(both),0,218(both),0,216(both), 0,214(both),0,212(both),0,210(both),0,208(both),0,206(both),0,204(both), 0,202(both),0,200(both),0,198(both),0,196(both),0,194(both),0,192(b<375727320446f776e290056543a5e4b202843757273205570290046463a5e4c 2028436c72205363726e290043523a5e4d2028436172722052746e2900534f3a5e4e0053493a5e4f 00444c453a5e50004443313a5e51004443323a5e52004443333a5e53004443343a5e54004e414b3a 5e550053594e3a5e56004554423a<$&'('4$#2b4ܨ4d)2d& 'J 佰&Ad' 'd (4ܦ4d2d'b0bd&'504 b'x$/b2f9b2`B46d4dH2bm'om'm&0& d'<&60404b4bH2b2bĮb:4oc4<2d9`&' b&b Ja2d9o➦4o#ܦ4ܨ4d)2db&5m4&b2c9̖q ̖m4 & 4 Oֺ4ֻ_2be4e9 O_4\'u]'a&ca&o'Ya- . o/@ '<'-')P& a - m&ֹ&jaJ &L<d00003262bd0000fc00001f98c0402d0ac11f22064fbd00 f9202d81192205bd00eb2024817f26078620bd00eb20198181250c818b22088e8781bd00b5200981 ff26058621bd00ebcc0000bd0000fc0000bd000039c650e780c646e7808050813b2604862e200681 3a26028630a784395052455353204b455920544f2042<oth), 0,190(both),0,188(both),0,186(both),0,184(both),0,182(both),0,162(both), 0,154(both),0,137(both),0,113(both),0,92(both),0,83(both),0,61(both), 0,44(both),0,39(both),0,25(both) Object bf00008604e682c1442707c12427034a26f3c14426078602bd00362018c124260<5e570043414e3a5e5800454d3a5e59005355423a5e5a00455343 3a5e5b20284e6f204b6579290046533a5e5c0047533a5e5d0052533a5e5e0055533a5e5f0044656c 6574652028526570656174204b65792900284f46462f525653204b65792900cc0000bd0000fd0000 394552524f523a20456e746572202420616e642<g 2b5O dE4ExĂ# Abĉ4d4bH2b2bb4h 2bb29ܲ'A$Gݬ$(&)5o2~Y׹ֻZP="ܦ"׺<'2Z&̔g4?2b&oj&C aEP-50悌P-] $=a '& a'& 2 '׺a&ܤ4̗V2b a'\' Y&S & _5%s4P=À4bJP=0砬&2c &&o!9oX%T'm& j9 +o⎗'lm&m'2a9c0a/' 4520434f4e5645525445440600488e0000ae 863410bd000032623934063406cc1901bd0000cc0112bd0000fc0000bd0000326439434f4e54524f 4c204b45592076616c75652069733a20442564206f722024256800 0a7842002e7844ffd00003406cc0000bd00008624b70000 8620b70003b700008644b70004cc0005b<a81022d064fbd00 36200acc02813406bd0000326239108e00003440ce00b03001e680c13d27123406add6350626067c 00007e009ce7a020e86fa4ce00b4add6be00003003b60000a781817f26078620bd009f2027818125 09818b2205bd0000201a81ff26078621bd009f200f812025082604c6a0e71f2003bd009f3540\03120746f203220646967697420636f64652c206f 72204420706c7573203120746f2033206469676974730600 23a5e4d2028436172722052746e2900534f3a5e4e0053493a5e4f 00444c453a5e50004443313a5e51004443323a5e52004443333a5e53004443343a5e54004e414b3a 5e550053594e3a5e56004554423a< '' &04ܦ4bH2b5 '0o&н4;̃5&#$ݶܬݪa 'RMa ' U~U2b9S$ݶܬݪ9.ƃ$ܴ4ܲ4ܼl2d4'$aa$Gݬ)m&2b94ܨ4' b&_' &EӨ_'D%&8^'$' .'~' ʀ*&䜨=\'' (&&4l2d_& P+&(4 4l2d 1-&&4 4l2d .& $&($4$Gݬ9$4f$&4ʃ` ]/'\'$ O4& +$54'/' \'& $i&c$_2e9a $ =TOR :Copyright 1984 by Joe Bostic%n%n %d bytes free.%n%nDate: %s%nTime: %s%n%nEnter date and time.%ndisk.text:e4sѽDo mh'}h4̝ 2bm &h4̝ 2b h4̝ 2bh4̝ 2bF 2b9:01$42@4*..4b=m' {2bܦܦ~%S42b42b~42b4佰2b9]* - " -"'X~w-RMWCH[ΓWȖ   7~kOֻ4ܬ,"0Ȁ׺O=&'('4b2boP"0' "2b9<=============================BEGINNING OF FILE================================><================================END OF FILE===================================>4eaP=4bhP=À4eP== 'w<&l4 &< _&040d4b2b50Z A& 40佰50 2&"40佰E44d4̓1W2d2b50'Z &><!5 o 94$&O'U1!O4$*5$&?O>&L>+'#-'O$&' 1!O4$!5$&O>& ' 1!O4$$5$&O>&5'o? 59nul= $2d9$ݼ*& &ݲ( T|& (ݲ& E'T$ݲ,&$'>$ &ܲ$^& 콞 &&  ܲݴ$ ݼ _4a$Gݬ59ܴ$ 4ܲݴ5ݲ9 & ]9Ƚ!' Ƚ$' O9h'4ƽhT2b9 &= H2b.oO_2,9\  H  N W ] 7 ޽  㽰 w ǽ L  ڽ  ޽ %  H     S  ー 꽰    Ľ ? Y   / = ׻44bA2b2b5c7$ݶܬݪ~k9׹~k4$2b~PQ~N7w4ܤH2bֹ 4ֺ4$(& 7w'N2c9$ݶܬݪk5׺׹~$&'('ܤ4$2b$ǽ%k94L4H2b4̔q2b2b9%SQ4= 4d4d4dK2d2h9ZP=ÀO J*9ֻֻZP=ֺ:0Ȁ & "0Ȁ94&'(' 4b2b 2b9&&&b.#4d('44d2b52b 94&, 1!:(-54FݬὙ]$9Ӭ, /ܾ9& $/ (':1?& =sohstxetxeotenqackbelbshtlfvtffcrsosidledc1dc2dc3dc4naksynetbcanemsubescfsgsrsus4̱2b4"0Ȁ焽rrP44d2dooP"14 O'0L LP" 5Ȁ焽r&݂ & &݂ &佰'rr=9 '9 A2~5A 'Am'-$&'#('a'$/'; ;佞Ma'2b9a '佞Ma'2b9?&'2b9ܤ=2b 'ܤ4H2b7$ݲݴ̽&P41' ' '2b 05ƽ&~c&'1' '' \# ~::=    < 5 O S   ] K b P  E Q P B }P&P4ܦ~h4愽$'h0 '0hho4h4̔2b9<'RETURN' or Command>4kd4H2b佰%}'ܤ4H2bkݭ٩O2b9 ׻׺NLQF4H2b̕G~$ݬ$ݶܬݪ42b94.,5$='&'01!&9' 79 u ڽ %  ޽ ý   潰 ʽ B H [ ⽰ , 㽰 r  m O44&P/PbHoLZlbb &۽obbX=ὰ~ &~Yܦ4H2bܦ%& ~4ܦ[2b4̔Q2b~Y.~H2~u2~ܲ$ݬܴ擬ܴ4ܲ2b&&(& ܰ4̔H2b~text:eܮ(4~'K2"0Ȁ焽r~=9o⽙$G444ܲ$Gݬ&~ܴ4$4l2d&mf'7_'_$GݬfܴG45&I44ܤH2bdbb&  $Gݬ὞ݴ$($#_ bfݬ$b2g9o/'\' %m'' &00 m'j9+% ߔi=j4 2b}P&P&ܦ~&Zܦ&QܦP&;4̑潰QPQPQ̑轰QܦQܦQ5~#̱4ܦ2b4ܦ4b2ḇ4P2b4P4b2b2~dj&bj&'  'bd~=&9ܬ4c4*b-N Zb//b44fU2d44b2b2b ''-4b4b4U2d2b42b$ݶܬݪ2d9Oֻ4'4b4U2d׹׺5~Oֻ'444dU2d2b~ ~$&&"ֻ'44U2d =4̐U2blbb &~%S %D ܦ4H2b4ܰH2b4½ 2b4 2bܬ4ܾ'O4̱ܲ$(&$'ܦ4̑A 2b&Dx44d2do佰S'&佘&׸'ܦ4̑1 2b&0 4ܦ4c42bcݬ$'~2d9Out of =\2~ 9 _4Ƚ$'.' &~ $54$('ܲ&&ݲܴ('ݴ"2c9/ ,ܴ4b 'ܲb%ݲ$b#$4d4ܲK2dmd'$- "ܲ$ܲ$# $$ݬ=i\ݞמў˞Ş}wqkA"0ݟ4̝KH504̝EH50o0o0o02v@C@4 44K2do 4ܮ 4̜2P42bo̞~ %nCALC :Copyright 1985 by Dick Barnes%nEDI=84'.'/& 1&;_&5M'.'/'-' 4O$5'&4O$&oaO佰$&85C= 44m'qoa':' 4$5&jm''佰m& B2|dѽ@Bo& 4 5 l':& 4 5 2a@2dtb'4̒= 7ֻ' $ݶܬݪ~k~k׺$(&"ֻ'44U2d  7ֻ' $ݶܬݪ9(ݾ945b/9Oֻ44bH2bл4ܬ- .余]hcP=0" Z+ 2d9c~4"所牀5ZP=c"94&-A(.<=memory: Aborted: &ݲ(ݴ  4Ȟm'o44̱2b5m'4 ܲ$&&$('h4$2bb'1 E444f2d2bܦ4b2b&)0'ܦ4̒' 2b&$' 4ܬ$a4'~2d9Aborted: 4>2e9̰34 ̰64ȞZZo4o'("&c $0'm& O45 00 2a5\:/2b~$4 2b9ܲݬܲ$"$''ܼ (&ܾ42b_9o⽛"''' 佛㽛' & mb&oƽ_' b''&2c9h>^D (Del Key)ENQ:^E (Insert)ACK:^F (ESC Key, EOL)BEL:^G (Curs Rt)BS:^H (Curs Lft)HT:^I (Tab)LF:^J (Curs Down)VT:^K (Curs Up)FF:^L (Clr Scrn)CR:^M (Carr Rtn)SO:^NSI:^ODLE:^PDC1:^QDC2:^RDC3:^SDC4:^TNAK:^USYN:^VETB:^WCAN:^XEM:^YSUB:^ZE>̑"+&_ -& *& ̑4T906BH}0'4~34544"J&5}0'4~45+&"4$4̖b4 2b54~-& 45~*&'44"`%+' 4̖4 2b54~/&B4'+ |0~4"'+ |02b> 7 w j 4ֺ}0&}2' }4'Pj9}4&ֺ̐4 2b ֺ Pj94$p2bm&0 瀌P%$v 004' |9˔K̐4 2b9ENTRY ERROR. Check format. (Column Sum routine not in CALCS)Total Bu>4h4̗PW2b2b'h'0.&hh9diskhosth4h4̗PW2b2b'4h_' .'\0 O4# ~4f4hK2d5bo o94(& ')&5h4h4̱$W2b2b9%44̗?2b&̗?2b9TOtob4' 2b94׸' d4̘? 2b佰> j540fm'7&"'-?& *&m'4 >2b&"' 'o  55%s%n%s%n%s %s%n44&l 9#'/'\'@'&la laa'O4d4̓W2d余2d9 prINTprINTpUTpUTcHANGE/\dELETEgETiNPUTeCHOm> SC:^[ (No Key)FS:^\GS:^]RS:^^US:^_Delete (Repeat Key)(OFF/RVS Key)̑439ERROR: Enter $ and 1 to 2 digit code, or D plus 1 to 3 digitsj$ N 㽰 ǽ 7  ސ a _ 2A4ܰ4̱(ݰ5ݰܦyhoa4hH2bܦ4ܦ4> }0'̖4 2b043~ f49b94"4$&CS4̑ ̑ 4̗2d54934愧' 9RESULT EXCEEDS 65535. Recompute in Floating Point.ENTRY ERROR: 1) A Digit above 32767 ($7fff), or 2) Division by 0RESULT E> ffer is Empty̑4 2b9檪O14̑g2b9ENTRY ERROR %d line(s) above starting line "ÀOd&D@& =& D' %'$' 39021}0'L4 &> 4f4b 2b2bOָ2b9: 42z@efB0 -L 0je': o2h9P2@4ܰH2bܦ4H2b'ܦ4½H2bܦ4ܰQ2b $ܰ4ܦ%H2b '#P4H2b' ' P4H2b@4H2 ~4ݼܦ4fH2b4m'b4b2bb4b2b>OVEuPPERlOWER#runexitsetUPmonITORtaLKdiRECTORYcaTALOGnAMEdefAULTscrATCHrENAMEmouNTcoPYdaTEtiMEtabSEThELPexECUTEfREE@tYPEprINTSaves textAlters textSearches for matchSearches for no matchPurge textLoad textAutomatic text en>bs2b4ܮ(4f#( O_4ܨ4f2b'4o(04b4j2b' ܦ4dH2b&?b'"&]'#k4d>2b'5040bEbbܮb#$mj&?o".牀0"(0'''4섽5' j0b&m&2d}P'̱4P2>XCEEDS +32767 Decimal. Recompute in Floating PointRESULT IN Two's Complement. Value below zero is: -$%s021#&w =& |0}0'L49='|0~+04̘G4 2b݂'4]&o,55 & O 4̑3$4 73D8̑92b>}0'L4 3%&Qz |29='|0~O4 D'$'9%'hz&|0~ D'4$&|0~z },|0~ӆ$&}/ 04z.,|0~4z-&|0~ ҆ %'(0&4 1&4 } & &| |0 J M'|04&9$& >' ~2d9ܼ4ܦ4 2d94d4潰H2bm&d4ܰH2bd4½ 2b ad%m&d4̙ؽQ2bd4ܰQ2b =d4''&'佗%&½ 2bd%4b& ܰ4bH2b2bd5. O4 Z'm&m&4g4g4d2db'~2c9Say what?Missing Filenam>tryDuplicate textTransfer textMake upper caseMake lower caseShow line numberRun editorLeave editor & save textSet ACIA chipEnter ML monitorEnter 'PASSTHROUGH' modeOne column directoryTwo column directory (sorted)Rename textRedefine assumed >bbP4ds2b׼٩̓4ܨ4̓4h2f'A(0'944&̓04db4n4l2h&&&2b2bob&oom& ܨ4d2b4d2b'ܦ4ܨH2bo&Fܦ4d2b'ܦ4H2b&&d46f2f&&Oܨ4ܦ> @- "Op -"b $& b % ", &!b̑39PF瀀P;&. :&09PRESS KEY TO BE CONVERTEDHb4 2b944̘2d9CONTROL KEY value is: D%d or $%h D'$'J&D& $& -O ̛+4> D&5 93D& $&s 9: 4'z& 砆 o90̑4E4&46&|0 / |04~p̑4T+}0& 042b944̑42b9̑442b94*|-}'̓3̑4T4.&o9H44_' 0D$d 2aO49O4501>e.!Illegal line range.Illegal search string.Search string not found.Search string required.No search string defined.Illegal default device.%S%S - Lines transferred %D.%DNo line range allowed.%D Occurrences changed.%D lines of text.Memory fu>deviceRemove file from diskChange name of file on diskInitialize diskTransfer fileShow/rename date and timeShow time, rename date and timeShow/set tabstopsShow command summaryMacro keyboard entryFree memory availableSend command to diskExamin>H2b& d46f2f̓4ܦ4̓4f2fm 2db'g~M'̓ ̓9]'O_ & a4׼5]94f"0E"0(0h6"0Ȁ焽'h4h4h4f2fP4bs2b2b9' 940d1&o"' "'%# > 2b944@ΙZ0='45&|0~F oΙ^־ 04& I '% ", &!I  %&Ơ I5@9Hb' 9*$!ș֙ /;M]nÚʚКךNUL:^@SOH:^A (Home)STX:^B (Run)ETX:^C (Stop)EOT:>d$4 40&}4' 454~㎑ 5&90123悆.'$' %' D'J&!.&i }0'L4 }3' 3%&Q|29*')+'%/'!-' .|0~.' $&|0~ 044 Q̑"2b51! .|0~ /.' $&|0~ 04 Q2b>ll.Replacing string too long.%D bytes of free memory.*Illegal destination line.Not enough free memory. ʽ t ⽰ N W ]  㽰  $   潰 f k ޽ 㽰 8 r ?es a filePrints formatted textKؘKK?K?KDFؘFDKKKDKDQDQDQؘQDQDQDQQQؘQQؘQQQQQQ)QDQؘQDQ0QؘKFileName/srch/repldestination[FileName] to FileNamedevice-name[date] [time]{ta?lXXXXfcbXXXXXfccXXXXXfdbXXXXXguessXXXifXXXXXXifcXXXXXifeqXXXXifgeXXXXifgtXXXXifltXXXXifncXXXXifneXXXXinsXXXXXinxXXXXXloopXXXXlsldXXXXlsrdXXXXmacrXXXXnamXXXXXoptXXXXXoraaXXXXorabXXXXorgXXXXXpageXXXXpsctXXXXquifXXXXrmbXXXXXsecXX?raXXXXasrbXXXXbccXXXXXbcsXXXXXbeqXXXXXbgeXXXXXbgtXXXXXbhiXXXXXbhsXXXXXbitaXXXXbitbXXXXbleXXXXXbloXXXXXblsXXXXXbltXXXXXbmiXXXXXbneXXXXXbplXXXXXbraXXXXXbrnXXXXXbsrXXXXXbvcXXXXXbvsXXXXXclrXXXXXclraXXXXclrbXXXXcmpaXXXXcmpbXXXXcmpd?bs}command-stringtextlinerange̗̔̔P٩ 큌P%_ 큌.%m'[4T2b] 4hT2bfbm'"余I'[4 T2b余I']:./4fH2bE0.턮dm&d"0Ȁ' b0b? XXXseiXXXXXsetXXXXXsevXXXXXstaaXXXXstabXXXXtabXXXXXtapXXXXXtbaXXXXXtpaXXXXXtsxXXXXXtxsXXXXXttlXXXXXuntilXXXxdefXXXXxrefXXXXcallXXXXfcsXXXXXceqXXXXXcneXXXXXjeqXXXXXjneXXXXXjhiXXXXXjloXXXXXset2XXXXset1XXXXsne1XXXXseq1XXXXsne2XXX? XXXXcmpsXXXXcmpuXXXXcmpxXXXXcmpyXXXXcomXXXXXcomaXXXXcombXXXXcwaiXXXXdaaXXXXXdecXXXXXdecaXXXXdecbXXXXeoraXXXXeorbXXXXexgXXXXXincXXXXXincaXXXXincbXXXXjmpXXXXXjsrXXXXXlbccXXXXlbcsXXXXlbeqXXXXlbgeXXXXlbgtXXXXlbhiXXXXlbhsXXXXlbleXX? 0&a& m&-mg~'9b' 9a<  N   % u ⽰ $ݶܬݪ x4m&0 &o m't"';' ccmc& & '0O' $ bOL'J0mc'OSXseq2XXXXdoneXXXXpushXXXXpullXXXXinyXXXXXdeyXXXXX  7 XXXXifltXXXXifncXXXXifneXXXXinsXXXXXinxXXXXXloopXXXXlsldXXXXlsrdXXXXmacrXXXXnamXXXXXoptXXXXXoraaXXXXorabXXXXorgXXXXXpageXXXXpsctXXXXquifXXXXrmbXXXXXsecXX?XXlbloXXXXlblsXXXXlbltXXXXlbmiXXXXlbneXXXXlbplXXXXlbraXXXXlbrnXXXXlbsrXXXXlbvcXXXXlbvsXXXXldaXXXXXldbXXXXXlddXXXXXldsXXXXXlduXXXXXldxXXXXXldyXXXXXleasXXXXleauXXXXleaxXXXXleayXXXXlslXXXXXlslaXXXXlslbXXXXlsrXXXXXlsraXXXXlsrbXXXX?#M'##14 b4bH2b2b_\m&c\O4$82b&$c\4H2b$c:焽2d9Z4cj'B $ j䧠Z& /&)Oj4̒rO'X' 40350 5  o2a942|(넉hb"!d4fj4hK2d(h(ܴhݴ_2f94(:4b?mulXXXXXnegXXXXXnegaXXXXnegbXXXXnopXXXXXoraXXXXXorbXXXXXorccXXXXpshsXXXXpshuXXXXpulsXXXXpuluXXXXrolXXXXXrolaXXXXrolbXXXXrorXXXXXroraXXXXrorbXXXXrtiXXXXXrtsXXXXXsbcaXXXXsbcbXXXXsexXXXXXstaXXXXXstbXXXXXstdXXXXXstsXXXXXstuXXXXXs?f4bd4f4dK2b2b(h(ܴhݴ2f940hO4'5&  h' '_ 24h4̒r#2d'4h04hcH2bh5 _2b546h'Z = ̚2b540omj'/gjl42O652& X'0J&M' m'm&m&M'o 'X'o55csXXXXXX?txXXXXXstyXXXXXsubaXXXXsubbXXXXsubdXXXXswiXXXXXswi2XXXXswi3XXXXsyncXXXXtfrXXXXXtstXXXXXtstaXXXXtstbXXXXasldXXXXadmitXXXclvXXXXXcpxXXXXXdesXXXXXdexXXXXXdsctXXXXelseXXXXendXXXXXendcXXXXendguessendifXXXendloopXendmXXXXequXXXXXfai?ccXXXXXXeqXXXXXXneXXXXXXmiXXXXXXltXXXXXXplXXXXXXgtXXXXXXgeXXXXXXhiXXXXXXhsXXXXXXleXXXXXXlsXXXXXXloXXXXXXvcXXXXXXvsXXXXXXabxXXXXXadcaXXXXadcbXXXXaddaXXXXaddbXXXXadddXXXXandaXXXXandbXXXXandccXXXaslXXXXXaslaXXXXaslbXXXXasrXXXXXas