o#                                                                                                                                    #                                                                                          ( 64 output ) ( n -- ) : 64list ." 64 screen number " dup . cr ." ( 0) " 0  i c@ 32 + i c! endif loop ;         over .line cr block 24 + 25 1 do ." (" i 2 .r ." ) " dup i 40 * + 40 -trailing type cr loop drop ( lower case converter ) ( addr len -- addr len ) : lowcase 2dup bounds do          ; : -- swap dr2 block swap over 1- c! 32 swap 2- c! update ;  i c@ dup chr A < chr Z rot < or not if        #                        ( fcb -- ) : writef >r 4096 here over - 0 r writeblk voc-link @ beg -->( free if output-fcb dup pad 10 cmove 10 erase disk-table dup pad 10 + 4 cmove 4 erase writef pad output-fcb 10 cmove  : index reorder do i indexline ?terminal if leave endif loop ; : findex reorder do 0 i (line) drop c@ chr ( =  ( lexicon, vocabulary ) decimal 0 variable lowdp ( n -- ) : lexicon here 0< 12 ?error  if current @ 5 + else lowdp endif ! context @ dup current ! 4 + dup c@ 16 - if 1+ else drop lowdp endif ' startup cfa thaw ! decimal do chr - emit loop chr + emit cr ; : scr-line dup if 4 spaces else ." LINE" endif dup 3 .r chr | emit scr @ (line) type chr | emit cr ; : scr-list scr ! cr ." Screen #" s ( buffer dumper ) : buffers? base @ >r decimal limit first do i  in dup 2+ c@ 16 - -dup if over 9000 swap 3 + @ over - dup banksw r writeblk endif ze - main routine ) ( addr n -- ) : freeze user-area user-const 18 cmove ( set up constant area ) [compile] forth definitions latest  pad 10 + disk-table 4 cmove else errormsg 0type endif ;  if i indexline endif ?terminal if leave endif loop ; : voclist voc-link @ begin -dup while  r decimal reorder 4 rot rot do 1- dup 0= if drop 12 emit 3 endif i scr-list ?terminal if leave endif loop drop r> base ! ;  c@ 2 .r space i 1+ @ 0 4 d.r cr [ b/buf 4 + ] literal +loop r> base ! ;   @ dup 0= until 0 0 512 r writeblk r> closef ;  user-const 18 + ! ( save forth pointer ) dup rot pad rot cmove ( move to pad ) 0" ,prg" swap pad + 5 cmove ( append the mode ) pad 0" s" openf -dup  ( index ) : reorder 2dup < if 1+ swap endif ; : indexline dup 2 .r space 0 swap .line cr ;  dup 2+ nfa dup id. cfa nfa id. cr @ repeat ; , does> here 0< 13 ?error 3 + dup context ! 4 + c@ banksw ; ( -- ) : definitions here dup 0< + repeat parm$ $! " forth.disk" 0 open-disk 1 warning ! abort ;  ( print utilities ) decimal : prt-on printer-fcb @ aux-output ! ; : prt-off 0 aux-output ! ; : h-border 7 spaces chr + emit 64 0  : mprint prt-on mlist prt-off ;  -->( assembler - opcode definitions )  : inh c@ c, ; : inhl @ , ; : imed c@ c, c, 0 mode ! ;  3 case 20 + c, c, , else 4 case 10 + c, c, else drop c, c, endcase 0 mode ! ; : idi2 c@ mode @ begincase  : idil @ mode @ begincase 0 case 30 + , , else 1 case 20 + , c, else 2 case 20 + , c, c, else  -->( assembler - opcode definitions ) rb, 56 inh rorb, 57 inh asrb, 58 inh aslb, 59 inh rolb, 5a inh decb, 5c inh incb, 5d inh tstb, 5e inh jmpb, 5f inh clrb, 80 idi1 suba, 81 idi1 cmpa, 82 idi1 sbca, 83 idi1 subd, 84 idi1 anda, 85 idi1 bita, 86 idi1  idi1 orb, cb idi1 addb, 0cc idi2 ldd, cd idi2 std, ce idi2 ldu, cf idi2 stu, 12 inh nop, 13 inh sync, 19 inh daa, 1d inh sex, 39 inh rts, 3a inh abx, 3b inh rti, 3c inh cwai, 3d inh mul, 3f inh swi, words ) forth definitions : code ?exec !csp create [compile] assembler definitions [ assembler ] 0 mode ! hex ; immediate l ( freezer - fputaddr,  r fputaddr ( write the code ) -dup if r> rot rot over + swap do i c@ over fputchar 1 /loop else r> 2drop endif ;  : die c@ mode @ begincase 1 case 60 + c, c, else : stk c@ c, 0 swap 0 do swap stklook + c@ or loop c, ; -->( assembler - idi1, idi2 definitions )  0 case 30 + c, , else 1 case 20 + c, c, else 2 case 20 + c, c, c, else 3 case 20 + c, c, , else  3 case 20 + , c, , else 4 case 10 + , c, else drop , c, endcase 0 mode ! ;  00 die neg, 03 die com, 04 die lsr, 06 die ror, 07 die asr, 08 die asl, 09 die rol, 0a die dec, 0c die inc, 0d die tst, 0e die jmp,lda, 87 idi1 sta, 88 idi1 eora, 89 idi1 adca, 8a idi1 ora, 8b idi1 adda, 8c idi2 cmpx, 8d idi2 jsr, 8e idi2 ldx, 8f idi2 stx, -->( assembler - opcode definitions ) 1c imed andcc, 1a imed orcc 30 idx leax, 31 idx leay, 32 idx leas, 33 idx leau, 34 stk pshs, 35 stk puls, 36 stk pshu, 37 stk pulu, 1183 idil cmpu, 118c idil cmps, 10ce idil lds, 10cf idil sts, 1083 idil cmpd, 108c idil cmpy,  : end-code ?exec ?csp [compile] forth definitions smudge decimal ; immediate writeblk ) decimal ( addr fcb -- ) : fputaddr over 8 >> over fputchar fputchar ;  -->( freezer - )  2 case 60 + c, c, c, else 3 case 60 + c, , else 4 case c, c, else drop 70 + c, , endcase 0 mode ! ;  : idi1 c@ mode @ begincase 0 case 30 + c, , else 1 case 20 + c, c, else 2 case 20 + c, c, c, else  4 case 10 + c, c, else drop c, c, endcase 0 mode ! ; -->( assembler - idi1, idi2 definitions )  : idx c@ c, c, mode @ 2 over = if drop c, else 3 = if , endif endif 0 mode ! ; : rr c@ c, swap 4 << or c, ;  0f die clr, 40 inh nega, 43 inh coma, 44 inh lsra, 46 inh rora, 47 inh asra, 48 inh asla, 49 inh rola, 4a inh deca, 4c inh inca, 4d inh tsta, 4e inh jmpa, 4f inh clra, 50 inh negb, 53 inh comb, 54 inh ls c0 idi1 subb, c1 idi1 cmpb, c2 idi1 sbcb, c3 idi1 addd, c4 idi1 andb, c5 idi1 bitb, c6 idi1 ldb, c7 idi1 stb, c8 idi1 eorb, c9 idi1 adcb, ca108e idil ldy, 108f idil sty, 103f inhl swi2, 113f inhl swi3, 1e rr exg, 1f rr tfr, -->( assembler - forth interface  : ;code ?comp [compile] assembler [ assembler ] 0 mode ! hex compile (;code) [compile] [ ; immediate forth definitions decima ( addr len code fcb -- ) : writeblk >r rot dup r fputaddr ( write the starting addr ) rot dup r fputaddr ( write the length ) rot ( assembler - basic definitions ) 0 lexicon assembler hex immediate asse  ' dup 2+ constant push push 2+ constant next next 2+ constant jump p 1f and or 1 mode ! else over abs 100 < if 88 2 else 89 3 endif mode ! or endif ; : [n,r] ( assembler - indexed instruction definitions - s, u ) ( s register indexed i  u n,r n,u 84 1 u ,* ,u 82 1 u ,* ,--u 81 1 u ,* ,u++ u [n,r] [n,u] 94 1 u ,* [,u] 91 1 u ,* [,--u] 91 1 u ,* [,u++] 82 1 u ,* ,-u 86 1 u ,* a,u 85 1 u ,* b,u 8b 1 u ,* d,u 80 1 u ,* ,u+ 96  : [,pc] ,rel dup abs 100 < if 9c 2 else 9d 3 endif mode ! ; : [n] 3 mode ! 9f ;    mbler definitions 00 constant d 01 constant x 02 constant y 03 constant u 04 constant s 05 constant pc 08 constant a 09 constant b 0a constant cc 0b constant dpr  0 variable mode -->( assembler - indexed mode instructions ) ( reg -- index )  does> c@ over abs 100 < if 98 2 else 99 3 endif mode ! or ; : ,* ( assembler - relative mode definitions )  : ,dp 4 mode ! ; : # 5 mode ! ;     0610 variable stklook 20 c, 40 c, 40 c, 80 c, 0 c, 0 c, 02 c, 04 c, 01 c, 08 c,  : idxreg 1- 5 << ; : n,r c@ over abs 20 < if swa  does> dup c@ swap 1+ c@ mode ! ; -->( assembler - indexed instruction definitions - x, y ) ( x register indexed instructi  y n,r n,y 84 1 y ,* ,y 82 1 y ,* ,--y 81 1 y ,* ,y++ y [n,r] [n,y] 94 1 y ,* [,y] 91 1 y ,* [,--y] 91 1 y ,* [,y++] 82 1 y ,* ,-y 86 1 y ,* a,y 85 1 y ,* b,y 8b 1 y ,* d,y 80 1 y ,* ,y+ 96 1 y ,*  ,* a,s 85 1 s ,* b,s 8b 1 s ,* d,s 80 1 s ,* ,s+ 96 1 s ,* [a,s] 95 1 s ,* [b,s] 9b 1 s ,* [d,s] ( u register indexed instructions ) : ,rel dp @ 1+ - ; : ,pc ,rel dup abs 100 < if 8c 2 else 8d 3 endif mode ! ; ! ( n -- n-64 ) : cup 64 - b/buf + b/buf mod ; ( n -- 0 ) : chome drop 0 ; ! over + dup 1+ swap rot 63 swap - 2dup + >r cmove bl r> c! ; ( n -- n ) : cins homeit dup c/l /mod 80 * screen + ! -->( full screen editor - part four ) decimal ( n -- n ) : ldown homeit dup c/l / 80 * screen + editbuf! : lins [ 15 64 * ] literal ldown drop dup c/l / dup 15 - if 15 do i 1- i lcopy -1 +loop endif dup dup c/l mod - cerase drop ; !+ swap loop 2drop update ; ( -- ) : recover scr @ copyfrom ; ( -- ) : +scr scr @ copyto 1 scr +! scr @!= or over 11 = or over 135 = or over 1 = or over 13 = or over 2 = or over 255 = or over 12 = or over 129 > over 139 < and or over 133 = 0= and ; ( -- c ) ! -->( full screen editor - exiting ) ( -- ) : endedit scr @ copyto! !ase cnl else 6 case cerase else 5 case cins else 4 case cdel else 2 case runit else 255 case recover else 127 case crub else 12 case clear else 138!itl base @ >r decimal dup scr ! cls [ editor ] setup-scr copyfrom doedit cls r> base ! ; ( n -- ) : fsedit [ editor ] tight fseditl loose ; ! ( n -- n+ ) : cnl 64 / 64 * cdown ; ! over + dup >r dup 1+ rot 63 swap - cmove bl r> c! ; ( n -- n ) : cerase homeit dup c/l /mod 80 * screen + !f 64 cmove ; ( n -- n ) : lup homeit editbuff over c/l / 80 * screen + 64 cmove ; ( n -- n ) : lcopy 80 * screen + swap 80 * screen + swa! -->( full screen editor - update functions ) ( n -- ) : copyfrom 9 2 set-curs 6 emit dup . b! copyfrom ; ( -- ) : -scr scr @ 1- -dup if scr @ copyto dup scr ! copyfrom endif ; ( -- ) : clear homeit screen 16 0 do du! : getinput begin 0 key -dup if ?done if swap 0= else dup 133 - if emit else drop endif endif get-curs drop 24 set-curs endif until ; ( -- c ) ! swap 0= swap ; ( -- ) : runit endedit cls >r >r scr @ load r> r> ; ! -->( full screen editor - keyboard monitor ) : doedit 0 dup pos-curs begin 0 swap key -dup if 133 ove! case lins else 139 case +scr else 129 case ( 1 ) else 130 case ldel else 131 case ldown else 137 case -scr else 134 case lup else 136 case ( eatkey ) else forth ! -->( full screen editor - character replacement ) ( n -- n ) : cdel homeit dup c/l /mod 80 * screen + ! over + swap 64 swap - blanks ; ( n -- n ) : crub cleft dup pos-curs bl emit ; !p 64 cmove ; ( n -- n ) : ldel ldown dup c/l / dup 15 - if 15 swap do i 1+ i lcopy loop endif [ 15 64 * ] literal cerase drop ; ( n -- n ) !lock screen 16 0 do 2dup 64 cmove 80 + swap 64 + swap loop 2drop ; ( n -- ) : copyto homeit screen swap block 16 0 do 2dup 64 cmove 64 + swap 80 !p 64 blanks 80 + loop drop ; -->( full screen editor - command functions ) ( c -- c f ) : ?done 10 over = over 132 ! : docmd 1 24 set-curs 6 emit getinput dup 13 = if drop 136 endif 1 24 set-curs 6 emit ; ! !r = if docmd endif begincase 10 over = over 132 = or if drop cdown else 11 over = over 135 = or if drop cup else 8 case cleft else 1 case chome else 13 c! 3 case endedit else emit cright endcase dup pos-curs endif swap until ; -->( full screen editor - main function ) forth definitions ( n -- ) : fsed" ( -- ) : replist 16 0 do i 2 .r space ." rep" space i scr @ .line cr loop ; ( n -- ) " ( case statement ) decimal : begincase 5 ; immediate : case compile over compile = [compile] if com" er = if drop 14 endif emit loop ." *" cr drop ?terminal if leave endif 16 +loop r> base ! ; " disk error! disk not open " definition not finished in protected dictionary use only when loading disk not open " " "ditbuff 51 - ] literal 5 over c! 1+ dup 40 2 fill 40 + 6 over c! 0f + 1 over c! 41 + 1 over c! 0f + 4 over c! 1+ dup 40 2 fill 40 + 3 swap c! ; ( -- ) " : tight 28 04 setdisp 05 05 setdisp 21 07 setdisp 07 09 setdisp ; ( -- ) : lo" -->( full screen editor - cursor movements ) decimal ( n -- n+1 ) : cright 1+ b/buf mod ; " : edit scr ! cls 0 prompt ! scr ? ." edit" cr replist ." endedit" home ; ( -- ) : endedit ok-prompt prompt ! ; "pile drop ; immediate : endcase begin dup 5 - while [compile] endif repeat drop ; immediate : chr bl word here 1+ c@ [compile] literal ;" ( error messages - 1 of 2 ) stack empty dictionary full has incorrect address mode " Lexicons not allowed within lexicons Context and current vocabularies cannot both be Lexicons " forward reference not resolved " " ( Full screen editor - screen setup ) vocabulary editor hex editor definitions 80f8 constant screen 8698 constant editbuff : border [ scr" : setup-scr cls ." SuperPET SuperFORTH " 1f emit ." EDITOR" cr ." Screen #" cr cr ." LINE 0" cr 10 1 do i 7 .r cr loop "ose 20 04 setdisp 03 05 setdisp 1d 07 setdisp 09 09 setdisp ; ( n -- ) : pos-curs 40 /mod swap 9 + swap 4 + set-curs ; ( ! ( n -- n-1 ) : cleft 1- b/buf + b/buf mod ; ( n -- n+64 ) : cdown 64 + b/buf mod ; " " immediate : dump base @ >r hex bounds do i 0 <# # # # # #> type space i 16 0 do i over + c@ 0 <# # # #> type space loop ." | *" 16 0 do i over + c@ 14 max 127 ov" not unique Buffers not flushed! Use (bye) to exit anyway Disk range ? full stack " ( error messages - 2 of 2 ) compilation only execution only conditionals not paired " " "een 51 - ] literal 5 over c! 1+ dup 40 2 fill 40 + 6 over c! 0f + 10 0 do 1 over c! 41 + 1 over c! 0f + loop 4 over c! 1+ dup 40 2 fill 40 + 3 swap c! [ e" cr cr ." BUFFER:" home border ; -->( full screen editor - screen functions ) ( c c -- ) : setdisp e880 c! e881 c! ; ( -- )" -- ) : homeit 1 1 set-curs ; # ( profile screen ) decimal 1 warning ! : cls 12 emit ; : home 1 emit ; #%00QDTT?A5YIYIYITTT??B0G/)$$T@$0$ց $$4m(&N'^&$A@'P&\DɁ`&!p&J?(&ԁ'y's' & CE%#)+Ĉ'&+TTTT'b+'2j0Ŧ=C' ' &P*?9('#01-! %a4,' 'J&2a 4-!5$J&p,"501&p&}#'B%i^ B9J&ƽ-!$<Ba '+;'4-!B5.&BBa;& -!$  B9ob-'|'$ &J&9i;'K :'o''~#y PC #b& b5&0Pj&ߎ(jA*'&5ƀZ-!$ ,"~" ~,4-&~,014瀽,& L& =&o5'a=&*`=a5904,"''5 LS0116bC&9a=& 1 61+-,C3+;#+ I+(.")+ + ?terminal  4 5 'O~space +D+spaces +5rE 5 ))+erase 1+5+blanks S++enclose d 4 3\E4F'&0 FD''0 FD&Bm'5 ~expect v+ #-find"+!!"::" H !"4"+hld",'$dpl#,'&numeral# #$ .0 W~hold#+,#z#:i+sign#9+.Y-#A+<##Q+!#X+#>#j+#:! +##z+:.#"#A+#s#+#!H+d.r#+ #p##Y# &]'&BACLA(?']]'[3"k<'V7"E+,0fh,$&S&D&UP&CC'D&PZ*Ү/0/]'!D 3(& ]&BAB&]'BCMAPDC('/U &]'$Y'SD %']' YC ]&)'# A B XR YR UP SP CC DP0'6 ; 0?40Dj *: І -&-9~"  'n@怍J&94m'' $.5 0D-!$ 0j &  4-!$ҡ'eHE~# ,C5& Gb#%4%"佰خ#瀯#&5'佰O9590{41B3 BC501162~#%O#%"怯#d 2bb4jƀ 8*, ~+O* '9 & 2b5*5> 4@F#:X:X:X:X':Xcold.+x5$X[5X5X:(#X:X:X:X:X':X>terminal >r 8X>keyboard8X>w 8X>ieee48'X5X,:[abort.+x D5SuperPET SuperFORTH - V 3#  ## ###"" """ """ """ """"""""""""""""" "!! !!! !!! !!! !!!!!!!!!!!!!!!!! !                            #'&)00' &')'$ρ" & ADAC <0CA'0l -"&STAD C LD ('U]'SCpm('??AC0E/':.+Đ&c-[h.ď%6"2.'_"Ɇ+C&<J&/džA'#"(4TTTT5$: 9435 /4 | %    m&45  47 47m&{ 45579ob2$' & ( &9DXXXXb9b9=%9O %9'*94/'4& 怯/a559%ƿ~~"0%:% F"A%99#HJ5LO5DNNm&B @'cZ+d0d:D&0pj&S+SD$N0B0D +!D|,C*'&~"j&Q Jj&&o Fn2 $c0l1pZ*&@-!% ~,-!$Do,"'NLHH#5i5i2E  i)+word + :E:: !B nz !i!+ -trailing !+ 5=I=)+dp!Z,'here!+!:+pad!+!+allot!+!z+,!+!X##  ;+d.#+5# )+.r#+O#+.#+O#+?$+:$+bounds$+ +.s$+c: =E5 $,I>$+(line)$0+ S+.line$f+$p!g+list$+ +Xscr #  $5(G## L'D& \'&".*' PC '.ŀ&m-&Z.' .*&+*P!č3 N&4e+ ],5 z.&*9 4.X`' L 'U@'Se59m-']Y y u 9 m, +K+9 V R,#B^~-!B9B9B=4C=AC=2a9CB9CB9CB9,' '9OooA#&-,'&,$! "L4 A=aaA =a5 .%&,'4T5&LTiAi $' ,$ L!,&M'9#$+-*&!^QQORWotyoBoCa '90ن'J*4,5%~, O  0H'9#m*IND4HJ4FL;-'8c&oc /-#$*40dc::5턽-!%\M'~,c0lL$cc0d1lZ+4,"쁽+,&栽+5 ~"0P 0S 0W 0[ 0^40 2b~"%n%s - Not implemented in this version.ASSEMBLEEXTERNLNKNEWLOCATEUN+.0 - (c) 1983 John A. Toebes(-./"&:j &7!&7[%!-o#:&&%+quit-+%5 X"CX-"&:H,:E+load.'+ ::5X S X-X X+bye.e+:%5\)" ( pseudo full screen editor ) decimal ( n -- ) : rep 0 word here c@ 64 > if ." truncated" then scr @ (line) here 1+ rot rot cmove update ; # %454DDDD509#/l0&l/9$ , - # j'9Oצ'4m!'F('02/04/)'*''09/+',|@01',C 5#:'9DXYUSP??ABCD????CABDXYSP<6N N )V->ObBdP#@$孉-B $,B+ =, #, B'd ,~"4CS%01!  2b~,PJ=À9/0P &/&0'9,' +,? 94,"཰& 0Pb%,"2d9 '؍~"&F042b O_9RWieee4-15disk0^& ,^'LOCATEVIEWBLKNNm&B @'cZ+d0d:D&0pj&S+SD$N0B0D +!D|,C*'&~"j&Q Jj&&o Fn2 $c0l1pZ*&@-!% ~,-!$Do,"'NLHH#G!+c,!+!i>!+rel,!+!!+current!,'4context!,'2state",'0latest"+" ::+["*+5"&X+]">+"&X+ immediate "M+"4+smudge"]+"4@+(find)"u"4 7@&%?&Z,00O65 ~_?:&˯5 ~#) $)+warning$,' message$+ET$:Y: $: > stack empty message# :$X+error$+$:Y,|!? $x: :./csp%Y,',!csp%+ %X+?error%+%b+?comp%+"#(Tbo * 4 -   ´´´ƉƉNyN:S ÑdÉU4RBb.4RXYSUSSUU I AAADAA AA AXO 4,ܽ,"^"4$^BĆm''č^'10&~"46+,&&569*`-!$00'߬B"'č ~,*`4#瀽,&o01901-' =94015205' .ߍ 4004b2d914&59-&4 ,C佰& 佰 &5 @' $'$~"-! % L#~, 00 -&0415&01145/o5'4 ,?A4# finitions -e+":" X+ interpret -+""&:j &7!&7[%!-o#:&&%+quit-+%5 X"CX-"&:H,:E+load.'+ ::5X S X-X X+bye.e+:%5\)$``~4@0$"q'q oocO_08040505@?Rkeyboard SuperPET 6809 Monitor - Version 10/22/83 Copyright 1983 by T. M. Peterson 8628 Edgehill Ct. El Cerrito, CA 94530 For complete d$%c+++] $%h%h $%h%h%hLCMPDCMPYLDY LDS STY STS CMPUCMPS>pu.& p4-5 -&! pru ' ',&t9t92|O_bu '%t&bXIXIXIXIbu tb2d92Ou佰*'t tO佰2a9ƃ &9~Invalid command%n$'&)00' &')'$ρ" & ADAC <0CA'0l -"&STAD C LD ('U]'SCpm('??AC0E/':.+Đ&c-[h.ď%6"2.'_"Ɇ+C&<J&/džA'$b(4TTTT5$: 9435 /4 | %    m&45  47 47m&{ 45579ob2$' & ( &9DXXXXb9b9=%9O %9'*94/'4& 怯/a559%ƿ~~b0%:% F"A%99$ HJ5LO5DNNm&B @'cZ+d0d:D&0pj&S+SD$N0B0D k!D|lCj'&~bj&Q Jj&&o Fn2 $c0l1pZ*&@m!% ~lm!$Dol"'NLHH$ ocumentation of this program please send me $30 at the above address. Add $10 for a disk copy of the most recent version. (Specify 4040/8050.) Thanks--T.M.P. O' &,'0:',''(0J*56 ~l4=5XiAi946O_$ 55555p50?'0~44p444;b?c]dfdglmX;Xpur:>stq2yO_4A:4554O_5/A:45Ž2g9$ L'D& \'&".*' PC '.ŀ&m-&Z.' .*&+*P!č3 N&4e+ ],5 z.&*9 4.X`' L 'U@'Se59m-']Y y u 9 m, +K+9 V R,$ B^~m!B9B9B=4C=AC=2a9CB9CB9CB9l' '9OooA#&-l'&l$! "L4 A=aaA =a5 .%&l'4T5&LTiAi $' l$ Lal&M'9#$+-*&!^QQORWotyoBoCa '90ن'J*4l5%~l O  0H'9$m*IND4HJ4FL;m'8c&oc /m#$*40dc::5턽m!%\M'~lc0lL$cc0d1lZ+4l"쁽kl&栽k5 ~b0P 0S 0W 0[ 0^40 2b~b%n%s - Not implemented in this version.ASSEMBLEEXTERNLNKNEWLOCATEUN$ĆPJ'$ލ%5641&,,' ''k= cct @kqc HP"P''!:'04c5'%\&Z 'Pcj5&  {2'1 &1&&ƃ &Ɔ11* m& 4{5 &l=n=nJm$Z&~b95:;}9$ %454DDDD509#/l0&l/9$ , - # j'9Oצ'4m!'F('02/04/)'*''09/+',|@01'lC 5#:'9DXYUSP??ABCD????CABDXYSP<6N N )V->ObBdP$@$孉mB $lBk =l #l B'd l~b4CS%01!  2b~lPJ=À9/0P &/&0'9l' kl? 94l"཰& 0Pb%l"2d9 '؍~b&F042b O_9RWieee4-15disk0^& l^'LOCATEVIEWBLKNNm&B @'cZ+d0d:D&0pj&S+SD$N0B0D k!D|lCj'&~bj&Q Jj&&o Fn2 $c0l1pZ*&@m!% ~lm!$Dol"'NLHH$0& H0+n J*~m@abcdefghiklmnopqrstuvwxz;:, oGs_rihcjseirikhr}pwk_sknnrkqiksqswrrpkkkbj`kN ,k!č 4i`59o!#0'O ' +!#%'&()$@% Z&9%l'怯%9@0:'4 *C0. ~44p444;b?c]dfdglmX;Xpur:>stq2yO_4A:4554O_5/A:45Ž2g9$(Tbo * 4 -   ´´´ƉƉNyN:S ÑdÉU4RBb.4RXYSUSSUU I AAADAA AA AXO 4lܽl"^"4$^BĆm''č^'10&~b46kl&&569j`m!$00'߬B"'č ~lj`4$瀽l&o01901m' =94015205' .ߍ 4004b2d914&59m&4 lC佰& 佰 &5 @' $'$~bm! % L#~l 00 m&0415&01145/o5'4 l?A4$  ~4@0$"1'1 oocO_08040505@?Rkeyboard SuperPET 6809 Monitor - Version 10/22/83 Copyright 1983 by T. M. Peterson 8628 Edgehill Ct. El Cerrito, CA 94530 For complete d$%00QDTT?A5YIYIYITTT??B0G/)$$T@$0$ց $$4m(&N'^&$A@'P&\DɁ`&!p&J?(&ԁ'y's' & CE%#)+Ĉ'&+TTTT'b+'2j0Ŧ=C' ' &P*?9('$ĆPJ'$ލ%5641&,,' ''+= ##t @+q# HP"P''!:'04#5'%\&Z 'P#*5&  {2'1 &1&&ƃ &Ɔ11* m& 4{5 &,=.=.J-$01m! %a4l' 'J&2a 4m!5$J&pl"501&p&}c'B%i^ B9J&ƽm!$<Ba '+;'4m!B5.&BBa;& m!$  B9obm'|'$ &J&9i;'K :'o''~cy PC $b& b5&0Pj&ߎ(jA*'&5ƀZm!$ l"~b ~l4m&~l014瀽l& L& =&o5'a=&j`=a5904l"''5 LS0116bC&9a=& 1 61k-lC3k;$ocumentation of this program please send me $30 at the above address. Add $10 for a disk copy of the most recent version. (Specify 4040/8050.) Thanks--T.M.P. O' &,'0:',''(0J*56 ~,4=5XiAi946O_$ &]'&BACLA(?']]'[3"k<'V7"E+,0fh,$&S&D&UP&CC'D&PZ*Ү/0/]'!D 3(& ]&BAB&]'BCMAPDC('/U &]'$Y'SD %']' YC ]&)'#0& H0+n J*~-@abcdefghiklmnopqrstuvwxz;:, /G3_2)h#j3e)2)+h2}0w+_3k..2+1)k3q3w220+++"*`+N ,+!č 4i`59o!#0'O ' +!#%'&()$@% Z&9%l'怯%9@0:'4 *C0$A B XR YR UP SP CC DP0'6 ; 0?40Dj *: І -&-9~b  'n@怍J&94m'' $.5 0Dm!$ 0j &  4m!$ҡ'eHE~$lC5& Gb#%4%"佰خ#瀯#&5'佰O9590{41B3 BC501162~#%O#%"怯#d 2bb4jƀ 8*l ~kO* '9 & 2b5*5> 4@F%bc4[o uteqpi\yrw 6'l jgda5;k{hfs9`707418=852_(^#? M XBC]O UTEQPI|YRW "L JGDA:K}HFS~)&$!+*%@(T)TGMHMOMO?O_OPGTBJNJ?_/_CJLKK.L+NB1()  0^0- c22bO  gh4C22bO RbO'  &8b&/4d4̱v2dñ4O5d'bwO d HSO && VSO &f& &P2e92~hO' 2~hO' % t ~4a&\ O4=2b22b9Unable to perform request %d%n2~`O_XI4O_5&XI4 5XI45 4޽2b 4޽2b#ͽ S2~=u>&u 'O uq&%a5 <4aa%1z 4aA%%Z 4a0%9" 4Oa& Oa&!O~42Ob&Obsa- Obif/oO2c94Oa'dOa&Oa aOa L4'IO  4Oa'.Oa %4'"O  4Oa'Oa aOa2b942|h,-ddhB.oOoO_S2942kO  =_h,'4OTh0h 4 `4br2bI3 &0 1#  4Oa 4vOa~2b94k&mO##@AA&ȽS La"O@@'##& O@' ( O@&&% h4`4d F42~b / 4d4fh2dd4O_52d94h4b4`h2de2b9^92wb݂f'Sf''OOfb@d'dbb'O' O'f' ' 2i944P4b55&2b94k% h2b94h4b2d9$0$1not supportedinvalid filenameinvalid record size0:1:,SEQ,PRGbad file typeinvalid access99'n92~$ o 2b9%>"84d& m'\ \d:Z' 1d5 9437$ n% <'Ou'  2b9Waterloo microMonitor%n%n>&t&p ~942b92~O_XIv4O_5&2b92~&t&)rpDVDVDV"&pp, 2b92|pN4bO4P2db4b5O4% h h& 0dḏ0c0bh䣄-hhOb Ocbc0' bdd'  o2f942~fb44A:452h9bb#̻4 d01̻4jf+_ g'og 59Z&9Z&9olcf]&O-4'&]'Z1! ]& A%Z# &&o%XIv45' &,XIv4p5 ½O_XIv45'5XIv454bXIv45O4׽2d&ݽ 2b92|཰O_bbXIv45'b~4O5bb&ս2d9too many stops set%n%h%h %ninterrupt%n%j&sOĀ'ѽ&D&o h' ^ V& h'k} f&)} t&O&o B 9& &o Ɓ &v '& vPƞ&O  v&' 2b94XI4d4f5  gh4C22bO RbO'  &8b&/4d4̱v2dñ4O5d'bwO d HSO && VSO &f& &P2e92~hO' 2~hO' %V2bbb&Zpb %~" O4\2b _bb&a2d9;%h%h %h *%c.%n2|&t&.f.$rpbp4pb5bb. 2d92|&t&Np'O_XI4p5O_bbXIv45'b~4O5?bb&%O9a%z"_9504怮 ' 6" 547$ n54 n 9b4T:0# 5b4üg595iT:0#̼f44~9ލ܍442{,,3b3O de,b3Od OdO_2g9442{,,3b3Od Od2g942~kh%NOSYNÿLBRLBSҿDAORCÿANDCSEEXGTFRBRBRBHBLBHBLBNBEBVBVBPBMBGBLBGBLLEALEALEALEAPSHPULPSHPULտRTABRTCWAMU̿SWNEǿCOLSҿROASASRODEÿINTSJMCLSUBCMPSBCSUBANDBITLDASTAEORADCORAADDCMPJSRLDXSTXSUBC%kq&ѽD &Ɓ& h.&5 -&,h&&o & h4 h42bF ~m~j2~o', .'4h4̱$2dñU4O5愞'  po OXIh45섞 q2~'4hJ2b %' &ͽ  ' '&ͽLL & &  &ӽa'Dսa& &ٽa ' &ܽ Ocm4O54཰2ba& &彰O'Ā'~U2~Y/p4bO4 %2~pppp4b%н 2d92潰 'O_a '+a4A:4554Ob5焽aa& &Ja4A:4554O_54A:452bc&A:42b c 12942tA:45d4f4@2dl&(d'&&O442dl'C%'4dr2b45'Oo O 4k&O @' 4br2b&0w@&<~l &~Z42~kh4dr2bOo,'  Lo,obS2d94 `4br2bSoh,'Ooh0h 4 `4br2bR%MPSBCADDANDBITLDBSTBEORADCORBADDLDDSTDLDUSTU}mH%}}}}wEoyEoyN^XYUS&t&(rpp4O42d&.9~92{Yea'a4c5'l & _&s V%& & oo k2~h-&!'4hJ2b @&p 3o /2~h/&!'4hJ2b o 2b9h&=9& h.'. h.&$h',''&O @ 9~S94/ $S2b92~O_t焞h%O4~ ~42Ob'& : ' &_E ,'  42Ob" # &½2c9 42b9p4p5O92z!%!/"4ObZ2bb lOa& / & &&@&  &7@& O% 2n94d4fb5ff&2b9Lunable to open %s%ninvalid command%nerror loading file%n2~&t&7fu &.$p4pb5 & p4b5 u*& 2b9ƃ &~u ~2|ѽbp4b5O4%oOh愽oh0hO愍|h0hd' Omdd =_h,'4OTh0h 4 `4br2bI3 &0 1#  4Oa 4vOa~2b94k&mO##@AA&ȽS La"O@@'##& O@' ( O@&&%& MODVDVDVcXI%454ObZ2ba'aO4eXI%455 2e94LOaa' ' '&L2b9½ ½L~L ~2|YŽO`DVDVDVDVDVcOaĀ&b#b4ǽ2ba '˽a%(&z'a .\4h4̱]2dñr4O5愞'O_%&ὶPO##"2b92k&|O!!@@& O@Ā'# O@Ā'&'3 @@@&  O!!@Ā' PO!!"2a942kO igoj`4A:45r2bPoO o&C3 1&~]~f~~9~~~~~~~~?~~]~~~?~4~0~+~~~~~[~K~~~o~~~k~U~9~9~~> *-0&  Wo܊9_"׈'*'*k ・U ޽9> + $׈9J*.00&+4o5 Z+ dffff 94܅ӕ݅܃ٔ݃59$ & 94܅݅܃Ҕ݃59'x2t&*  \Ao'?Aܐܒܔ >'Acu&Aݐݒ ݔO' KAōAA :9ŖP'C3N& &2e4iH2m9Waterloo microSystems%n%nSelect :%n%ndisk/1.42}c4̭2b̭4e2b& ̭ob b佰Ob2e942sO_*A:45e4g42dm&ce'U*&-&"494ֽ̯K2dOe<=9 *&O44&2dm& & ~u~~-~~!~~~~H~X~~F~~~~-~~~~~~w~~~~~h~ ~2~J~~w~~~B~~~H~J~~_~~~~~~ ~!~~~\~՘~ջ~.~~~'~~~;~~~!~~~~~~~g~~$~3~~~~~~~~C~~~& '0\ + J7$ L.%0000040 &.05&։'94܄݄܂݂59E0+]*-P0/L *0:09  k'Onk(݊Aݎg}$!]* 404kO5]'?5 & $45$,945ˁ'Z40掩=5 & 9'& 94?[0 gʾ^S>dpLQz>0~&bA:4bʙ2bj' ԃO_2-94d4b2bO 4˘ԃ2b9jo9j4̶f2b9̶j4j4b2d9eofI/O time-out2a0& i2a0& YhA_df$m&m'hi f$Bf %* 459%O_ 9!GA =5552a2a44A& 'b,hhbb oXIï45dj& ' _?~O֣4֢4ܠ4𽰓2ff2942aݠa4c5O愽$'& h42}ocE4e4̯W2da'ï4O5ע O2e942o1& e2&]ƀף }42aU&2d9m~$4d4b4k3 4d4b4mg2f9544A:4m2b52bn42ʽ'EA:482bA+:4<2bA+:4A:4dD2d& ԃO_2894¥ԃ2b942a& ' 74A:4e2daO&t&&ao &9܄܂hff9$O_ #܂ L&܂ *CS9%i # uOց9Oց'$J9& % ? ' ~9܅ݕ܃ݓ܁ݑ9݂' *u99& 9&,9 & & & 9' M&&D:?L̑ǿ@?Vy@ d@v8A8; 8X>V:~;=*>cYX ?u@1r@~u& A$&  ,$(2Ao$fL&'i$2a9 O_?  ? 4 4̩2ba&2 E22'8O Oc4*&59544444A*:l*0lO_9h iYI* l &lj&f$ 9CS9AM*!]'dfZ ]'hiZ 555~M&" O_942&'aaee o O2c942~O_'bb 4f'&dd&'M|4c2b| 942a;'3aE.){ 42a"'aE.}4c2bo * $42O*'aa45& oO2c9keyboardW BAUD 2400 PARITY EVEN STOPBITS 1 PROMPT 11 LINEEND 0D RESPONSE 13 e]Ԯoddevenmarkspace `཰ &' ~ 42Of4A:4e,2daO2c944b~42~O_bbO&h4h4f2dbO P4O'f4f4d,2dO_4b2b'n~4A:4b2d942O'%&O&  !&܂&܄& $C& 9ր'&\9@ &ݖ'2ցБ'# P(#(햀&. D$Oւ+!&4܃݂܅݄5 &  L ې% @9 '$9 9ݖ&~J4o0Z&555 &2boc9 *n29M- ":: O_2b9 u"9fکsETUPmONITORaPLbASICeDITfORTRANpASCALdEVELOPMENTH 2u̫򽰷̪'c O6cc45&cc&̽ ' & ec ' 'c4eOb5焽&ff f&!O2b94䍬 4d4b54f2b䍍4f4dh2f94d4f54b~42~O_f'jf4 4O5bb 42|O_b+& dd -& ddbd0%&9""4 4O5dd b'佷B2f94.܃Ҕ j& ' _?~O֣4֢4ܠ4𽰓2ff2942aݠa4c5O愽$'& h42}ocE4e4̯W2da'ï4O5ע O2e942o1& e2&]ƀף }42aU&n'c& md&A4542b +h&A4544#2d s&,',O42b O42b $~294O&ad4bF2bO L4 4&!O 042a&Oj&55~u]& Tʀ$fffffT&9')֐'րא$* 5֐׀9 +5~ 59 B Pݖ&459 &֐׀=Y$40&@ 0'0$D%* 5TVV5݅55݃5~u&&&&&9'9& oecO!'c ce4g4̱$W2d& e4̬N2becc4e5.'&O_*cE4e4̪'W2da'F/2̪'iaa'i4kE5 c4kH2bc< aXIê`45*4gE5gc 'c4eOb5焽 O_c 2*& e %2}̹g'MgObccObDVDVDVDVO4O5 iiOb4O5 ii o 2e942~O_b4'OXffbbb'@OXXIXIXIXIbbO4X5bbff 2d90123456789abcdef4Oa4Oc&CtransferTS2C'&aooo_afff&booo_bfff(cooo_cfff(dooo_dfff%eooo_e7ff %fooo_ffff)astro )driver $spmon$spmon.lo*spmon.doc0:e(kioblA:45佾j&C ' o<44۽2d&44޽2d&j 6Oj294kw & y& z&xe'4 @&< wOex y zOOy oOzxo gkw? j4kw@& y&(j2d942~k6bo&O &oݽO &[4_54h2bf4Ƚ22bf4h5ffj&'& f j&L Fo> :f4b2b -42~k6bo&佽 &22d9 ABCDEFGHIJKLMNOP4O O(b{2b'ii//',%O4eS2bggii i/1.+& '' O_ O4e2b2e942~kbOĀ' g4b{ )& g4b &g & g4b՘2b &gݭ2d942|kdi'6oO'd(fЫMj& ,΋ff o2d94kfj U2 &N~ь2j'΋b&6 e&>, jOj2a92~ , ΋ o2b9 ,΋ 92|%koaO_bb,%b4O5aabbOђ Oaa4O5愽ђ( 4(kOa 9)k~ד4*k׾ !+k~4&֕ &֜2b92Kn,X ` %K42oOXI<45섣e' O&a h0j D4&4b82b& 4Og52b942&4c2b&aO O2c942}c ao( z'<=  &@w`xO y z3Oy@oOz`oO@@52b9k _o"w9O@@!!@Ā'@ VO@ NO O9wO88! !8#"##"B@9Device not present00014f4f4Oe*2f9( _ } {||g4g4d4\2h942skmvf8f0fЫG j&mofOfm'b tf f(fOfm'24A:452b:fA:45' Of )fh' Ofh0h ЫT j& ΋m o ( O& WS~Ā' `4br2bO&df&F, 4fi2b &#& '' _ 4fi2b&t&d' .Z OĀ' L&& ?&f&P,- %&!_b~$x4O54b՘2bb O( O{ђON& Ob 2d92&kO_ Mj'[ ' 4 54Ob5 N'5 4?2b&"N O{ 2ջ{&. O2a94Oa4՘2ba{& j& ջ}&2b92yO_4A:4554ջ5|&O|4|4A:4(& Oah' , `Oah&&&ྲྀPO2e94O2b92{?'O4O5,O_accXI4c5aacc &ލ '&٩2e9( (L92k&&P݂ '' $O '"4P4P$&(zO_4`4,4\2fO_4`4 `2dO_4`4%2d~ x y~442~O_k6bofhh4bɥ2bj&4bj&+OĀ'Ҍ &4O4d2dOj~_42~k6boOĀ'1 &I2d942|k6doO(П2o94 k&pfO fnf'Oe 9Oef 14!k&pfO fzf z 2b942"kaZ' 'ξo  -O_ξ ,'K ΋   &(&& 42oa'a O2c94(2f942} k6coO'#4A:4g2d'&o 'c2e942~ k6bo& f_ L& f4b2b ;&:O '3f4b2bj&使44f2d'6o~s~ɠ42~ k6bofhb(52d&<4A:4A:45h2d4A:4554ջ5j'2g942oOaaee.O45&!O2c90123456789ABCDEF4&rO @'k@' h4 JĀ'o B' h4 .' h4 ' &h4 2b( &r$"& $P$ۘ &&O~E4kOa Y" $"P "À4 5" O_~؍9('Oc(c"؍"À4Oe59QM& ~"J::2b92|"4P"4Pb_b V42|dOdOb4Pb~M42~O_('dO& WS~Ā'O&]d&Iv&B;d '使カ>O_j _4b;5&O_jO_b &j/xd'h'dt&O&  & B& d ' 3'/ bb b(/ &! &   O_ 2b9ЫG942~{OcDVDVDVDVO4O5愍.Oc4O5愍2d9>XXIXIXIXI4/Xa594454Oc5 -q k2 -454O5 -O_ ~ь4gO a'lЫT(&佽j&i使 b&Td W42~ k6bofhb&h4b2bj&d使 ]& h4bυ2b L~S @42~ k6bofhbj&&佾#j&|使 u~S m4d4f4̱2dñ4O5愮&gʌS [42~kb(h422bO &O '佽Q~佼Ю&o ~4佽2b942Oa ' 焽> $ Oa ' '  O2c94O &J 'o oeA%Z#a% z"O _&d [% ^"Oʀe  & $ Oeo 4 _& (XI4d4f55 &2d994a'O2b942}"$0bd&b'b&d'45& OdOd2e9"4P4P"P4"À45OĀ'"À4"À45O "À4"À45Oʀ5- $ /(bjjhhd 'd 'E&=O '6&h45'使44f2d'>f&\'T'P.d ' oO j/4d &- hhbbjj/ Ȯ' Ob2f942}kcOĀ';(j&z& o~М42s#km4A:452brfA:45' Of ЫG 2o94$kcfO ~<4yfh'Ofh0h 4wfh' Ofh0h ЫGj&bfd'|Ofdd 4d(&#&O & &使O  O2d94 4&!O2b9hjO_lndpO_rtv9invalid access50truncatedNot Randomnot supportedinvalid mode42~k6bofhobj&#&佼ݽ &O($ 2b9@,R,A,Wusso92z6us' &&%7sobdk&bb kbbkdboo O_bԾSb 842|ddbbd' dbs& ss 2f9out of memory:~H42'k֧ &O2c9)%& ЃP""À45OĀ'"À4"À45O "À4"À45Oʀ52b92|"4PO_bbXI45섣. bb &b &O_bbXI454"4P4P5~ے2~O_؍̀4 5䃀&Oʀ2b92z̀4( 2&Z %& &ջb&' &݂bOb2e942}k6coO'cO& WS~fĀ' `4br2bO&$c'&v&'$4k5/iiS&*v&#iO4b{2bi4.fh'\Ofh0h 42~bO_f ЫG942~{OcDVDVDVDVO4O5愍.Oc4O5愍2d9>XXIXIXIXI4/Xa594454Oc5 -q k2 -454O5 -O_ ~ь4gO a'lЫT) #AeN&?3:dGdH4̇U6P;̀O<>KJ1<0MR @Tpӽ4o&:=Pd0&z+&#::+z*&*z,& ,z-&d-z/&/z.&)"4P4P5b"Àdd&Ơ 6d'bb4bb45O5 ""؍2f92z̀4"4P4P5̀"bb' '&*"4P'"À4 5"؍ nP4"4P4b55d&Ơ)KAzH49;'[J'; S<>=&g D45}G&00&$0<|>;dGdH|:o& 0<|>9}G&c& z><0<9 &;9p&x%t}G&09m'4'Z&50P1?m& 91'10P1 z0&Q 0.=(%"-9631/m x20,nvz3.. 2OĀ& a)'U'D+&O**&COAݭ ,O+4Ob5&O+ O+ݭ +* O2a942(&Ob Ob@4O52c94J4b5&"2b9ЃPP) P!9GOXX!9w45'405%l 01! 9 0&? &93ZzZ+4p50` 9z3'30`Z& PQR98 m'4' '8  50P 9 m'4'& 50P 9S=S9Press CLR-Home to start, Return for) .'}3&]9}J'9P&P & PP6P1$Ps%P6P6&dU &dO96m'4' 50P 94'"P]& P ' 04]}J&-&}R&R4& 604])  Fb"؍d'$b4db4d5O5dd ""2f92|P4"4P4b55b"Àbb'4b 5 "À4"À45Oʀ5"؍2d92z''' {0$4P4P4b55'Q$b4P4P) 6&M'  Z&994p58'90%38&dJ450'1# Ɓ"1(09U$ $ !'196Z&0KZ&9 bb ]qqq oo bb oo J@K )  {#cI ƽf&ԾĽq'.۽# ?Q̅xAĆΆ9 & 耆聆 L耆(聆J&耆聆J&耆!聆J& 耆聆J&9¦'\& 1P *&  90&9¦'H instructions   ""   Play until deadZ&sk9 &9jp&9p4 5'4_5& & p 9(! 9 耆 L9 0耆 8LKP0) R9};'9}H&;9}@& @: z@' AWA0%9}G'}J&&̀"zG9v'45CA9@$P [b&$  E$L'P b$  $%P p$ &P  C9}J' /400)bdd'b4d5À45 &d d' $$  & 'O2f92$À4O52a9KPPS0!CE؇)٩rQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ)cwxc c c cxwc J@K yyyy~|yy cccc9:  : (-27 for another gameby Glenn Bauman press to starthyyyhdlllldlllllfCCf dllll dlllll hydlllfyhdlllfhyyhdllllidllllllfCCfhyyhdlll_dllll) O* %O %O}O&; 0&}J' zJ'r 9?]'1?\& dJ'!4 :!]'\& dJ5 4 5 ' m*ʀ96 dPQRSTPo&̇U69_\m&+}G&j "4e:愎:O 'L0` ),.'&boާ Ob2c9)9)92OĀ& a)'U'D+&O**&COAݭ ,O+4Ob5&O+ O+ݭ +* O2a942(&Ob Ob@4O52c94J4b5&"2b9ЃPP)%*/490PZ&ڎsk9pn ]зGUI0@Z&sk9 &9jp&9p4 5'4_5& & p 9(! 9 耆 L9 0耆 8LKP0) &{ ˽'9΁$΋9΁#΋d9с&Ɔ< 3& Ɔd &Ɔ< ƆdՆҶα#ҽ˱$@Ćц҆9ҽ9Ơ瀋#G*fCCf 20 40 60 80 100 120 140 160SCORE```````GEAR````FUEL````````NIGHT`DRIVER``BY`GLENN`BAUMANENGINE`BLOWNENGINE`STALL* * *** **** * * ***** \** * * * * * * \* * )&j51!&94 04'E4E%P%0&41% P%11<045 0$1PMp$ $ @$ 4KK5 =MM! HAA45%'1# 0"KK K)1?' P 1?' 94P' &0 T% m@&l 0J' 0'| 5M'1Q 9:963_1/m x20,nvz3..bc4[o uteqpi\yrw 6@l jgda5;k]hfs9^707418-852*)&#_? M XBC{O UTEQPI|YRW `L JGDA+K}HFS~0'$!* SPMON Commands in Brief (Zero-level Documentation) (C)1983 by T.M. Peterson With comments added by Dick Barnes. This is an introduction to SPMON (not the 'complete documentation' referred to in SPMON's sign-o** * * ** ****** * \* * * * * * * * * \* ** *** **** * * * \ \***** **** *** * * **** **** \* * * * * * * * * *\* * **** * * * **** **** \* * *1234 on 1st arrival.) BC: Breakpoint Clear. Clear all breakpoints. C 1-2 3: Compare Memory Block. Compare range 1-2 (see notes, below) with that starting at 3. Show addresses where different. E.g.: 'c 1000-1040 2000' (Compare *ificant). If specified, '=addr;bank' causes the file's internal load address(es) to be ignored and ALL load records to be stored starting at 'addr' in bank 'bank' [0]. The STOP key is checked after each complete record, so all * file. E.g.: 's testit=9000.fff;3' (Save contents of bank 3 to drive 0, disk 8.) T 1-2 3: Transfer Memory Block. Copy 1-2 to 3-(3+2-1) [sorry for the dbl meaning of '-']. U ????????: Unlocate. (not in current vers.) * n message). SPMON is invoked from the main SuperPET menu by typing its name (prefixed by a device/drive specifier, as required). Once SPMON has been thus started, it remains in memory and active until a cold-start (i.e., power-down & -up or switch to 65* * * * * * * * * \***** * * *** ** **** * *\by glenn bauman press to start}J&Ɔ}9}00Z&z&ƽ|&9.}ƶ} 1/ }ƶ}}94i\4 i,P* $1000-$1040 with $2000-$2040.) D 1[-2]: Disassemble. May be scrolled by cursor up/dn or PF6/3. E.g.: 'd1234.#10' (Disassemble from $1234 through $123E.) E ????????: External Relinker. (not in current vers.) F 1-2 3: Fill Memory Bl* may be inspected in turn. E.g.: 'l disk/1.BASIC' (Load BASIC interp. normally. [Shows memory use.]) M 1[-2]: Memory Display. Show memory as hex and ASCII. Scrolls as 'd'. N ???????: New Locator. (not in current vers.) O [* V ????????: View block/regs. (not in current vers.) W [addr]: Walk. Execute one instruction starting at addr [PC] then display registers, disassemble next instruction and wait for a keystroke. Loop if key not STOP or 'j'. X*02 and back) or until the 'k' command is executed. It may be re-entered from mBASIC by typing 'poke 8*4096,63:sys 8*4096'. DO NOT RELOAD SPMON FROM THE MENU WHEN IT IS ALREADY ACTIVE! The following is a condensed list of SPMON's commands for quick refer*4i9cl}̀PO4&f 4 ]5 &f 50P|&94TT\5:9PJ&9 L &94 ddooyybb㠠dddoyoddoyybybbyododdooyybbyyboddooyyb*ock. Fill range 1-2 with byte 3. E.g.: 'f 2000.ff 20' (Fill $2000-20FF with spaces.) G [addr]: Go. Begin execution at addr [PC shown by 'R']. H 1-2 3 4 5.... or 1-2 "XXXXX....["]: Hunt for sequence. Show addresses of occurences o*filename]: Output Divert. Send all output to file [ieee4]. Turn off by typing 'O '. E.g.: 'o disk.stuff' (Send all subsequent output to 'stuff' on drive 0, disk 8.) **Dick: You cannot use upper case O, only lowe*: Exit to calling routine/menu. Z[b]: Zelect bank. Set current bank to b or display current bank. E.g.: 'z#14' (Make bank $E the current bank.) :addr 1 [2 [3 [...]]]: Modify memory contents. ;pc dacc xr yr up sp cc dp: Modify pseu*ence. Brackets ([]) denote optional parameters and their default values. Vertical bar (|) denotes choice. @ [xxx|@n|$[d]]: DOS support. Get disk (current device) status message (no param.), send disk command 'xxxx' (see notes, below), (@):+byooybbyooyoybyoddddd*** ** **** * *\by glenn bauman press to start}J&Ɔ}9}00Z&z&ƽ|&9.}ƶ} 1/ }ƶ}}94i\4 i,P*f byte sequence or string within range 1-2. E.g.: 'h b000-bfff "not"' (Find all occur. of 'not' in $B000-$BFFF.) I 1[-2]: Interpret Memory. Show memory as ASCII. May be scrolled as 'd'. J: Jsr. Full speed execute subr. (when u*r case. Use 'terminal' for P [filename]: Print Screen. Dump CRT, top to cursor line, to file [ieee4]. E.g.: 'p' (cursor on next to bottom line: Copy CRT, except last two lines, to 'ieee4'.) Q [addr]: Quickstep. Quickly single-*do registers. ,addr 1 [2 [3 [4]]]: Modify disassembly and redisplay line. OPERATORS: +, -, *, &(and), !(or), ^(xor). Use in simple expressions (no parentheses). Result shown in hex and decimal. Numbers may be entered in hex (* change current device number to 'n', or ($): get directory from drive 'd' [0] to CRT. E.g.: '@S0:trash' (Scratch 'trash' on drive 0). '@@9' (Henceforth communicate with ieee9) '@$1' (Show directory of drive 1*ss) or 1.2 (first address.length) and they may be in hex, decimal, or binary. 2) Control characters may be specified in filenames and dos support strings (but not 'hunt' strings) by an uparrow (^) prefix to a characte*sing 'w' single step). K: Kill. Cold start SPET. (N.B.: Only SAFE way to exit if ':'+'STOP' was used to halt a run-away.) L filename[=addr[;bank]]: Load Program. Usual SPET filename conventions (no quotes, embedded spaces sign*step without reg. printout and with breakpoints active, starting at addr [PC of 'R']. R: Register Display. Show pseudo-registers. S filename=1-2[;bank]: Save Program. Write '.mod'-style copy of range 1-2 in bank 'bank' [0] to *the default), decimal (preceeded by '#'), or binary (prefix '%'). Hex prefix '$' is allowed. Example expression: 1234+#45&%11101 Notes: 1) 'range' parameters may be specified either as 1-2 (first address-last addre* on current device.) A addr mnem operand: Simple Assembler. (not in current vers.) B [addr [x]]: Breakpoint Set/Display. (up to 4) Break at addr on xth [1st] arrival in Quickstep. E.g.: 'b 1234' (Set quickstep breakpoint at $+r, e.g., control-C: ^C. 3) After invoking SPMON, until a cold start ('K'), pressing the STOP and ':' keys simultaneously will cause a software interrupt back into SPMON. This feature is provided to rescue you from 'run-away' m+ the AIM65 that he owned. Two spinoffs from my version are a 6809 FORTH on the TRS80 Color Computer and our own moving it to the Commodore 64. We are currently in the process of putting the 64 version in the public domain. Some features about this FORT+ he option to modify, and the T key to toggle the current setting of that option. As usual, you exit with ^STOP. Explaining the FILER can take a while, so here's a just a quick rundown on it. The only options currently working are: (1) Send a file wit+ reen and the other is a true Full-screen editor that is based largely on the standard Waterloo editor. It contains many words for directly interfacing to the SuperPET operating system, especially when handling I/O. It supports re-direction of all I/O az.l. routines during debugging. If you use it, be aware that an 'X' exit will probably lead to a crash. y be specified in filenames and dos support strings (but not 'hunt' strings) by an uparrow (^) prefix to a characte+.FORTH.DISK" or whatever device you want. The device must be able to support random access files. I believe that it will work with the host package although I haven't been able to try it out. The number n is the drive to which the file is to be allocat+anged in the next release of the package. The last is sending under host protocol. This allows you to specify to the package exactly what host will be sending in order to get each line. There are two things that you can set in the options menu that af+n RELEASE-DISK where n is the drive to be closed. RELEASE-DISK is automatically called when you open a disk for a drive that already was opened and when you exit FORTH. To exit FORTH, use the commands BYE and (BYE). If you use BYE, it will ensure that+e this with an MV8000 which has a prompt of 4 characters and have never lost a character in transferring a file to it. Any more information and you will probably not want to use the package for fear of total confusion. Try it out for a while and tell m+ P and ':' keys simultaneously will cause a software interrupt back into SPMON. This feature is provided to rescue you from 'run-away' m.l. routines during debugging. If you use it, be aware that an 'X' exit will probab+ taken the time to fix it yet. Instead of a blank line, use one that has a null comment : (). To refresh the screen, hit HOME then return. It will execute the command that was at the top of the screen re-invoking the editor. Also, to get out of the ed+H not found in many others is that it takes full advantage of the intelligence of the disk drive and maintains full file compatibility with the Commodore file system. A disk containing FORTH screens may contain any other type of files, as well as may be+hout host protocol (2) Send a file with host protocol (4) Dump the screen to a file (5) Log the current session to a file The others are awaiting final design decisions before they are implemented fully. The original method of saving the package h+nd has the ability to save a configured version of itself. To use FORTH, you load it from the main menu. It has a fairly standard FIG-FORTH vocabulary with some notable exceptions. In order to allocate a FORTH disk to a standard FORTH DRIVE, you need ly lead to a crash. y be specified in filenames and dos support strings (but not 'hunt' strings) by an uparrow (^) prefix to a character, e.g., control-C: ^C. 3) After invoking SPMON, until a cold start ('K'), pressing the STO+ed. Note that the FORTH drive has nothing to do with the physical drive 1 or 0 of the 8050/4040. FORTH internally supports 4 drives to which you can associate any file. To switch between these drives, you use the words DR0, DR1, DR2, and DR3 to switch +fects how this will work. First, the host prompt string specifies any sequence of up to 16 characters that must appear before the package will start sending the next line of text. The other is the host end character that the package will send in place + all buffers are flushed to keep you from losing any changes that you may made on any screens. (BYE) lets you exit when you don't want any changed made. When you start up FORTH, you will want to load up all utilitys. Do so by issuing the commands: +e what you like. Now about FORTH. The current version of FORTH took 3 months to write and is based on a similar implementation of FORTH on an IBM 4341 by Jack J. Rouse at North Carolina State University. That version was based on an implementation on + reen on the terminal and you make changes as you would in mBASIC by movig the cursor to the line, modifying it and hitting return. You move lines by changing the number of the line. One problem with the editor: It does not allow blank lines. I haven't,itor, enter the command ENDEDIT or move the cursor to the line that has it on it and hit return. An interesting point - the PSEUDO-EDITOR is not really an editor, it simply takes advantage of turring off the FORTH 'OK' prompt and the SuperPETs abili+ validated. This is done by using relative files instead of performing direct track and sector accesses as is done in most FORTH implementations. It contains a full assembler and two editors. One is a Pseudo-Full screen editor taking up 1/2 a FORTH sc+as been modified, and this copy is in between that process, so it doesn't exactly work. Sending files without protocol is extremely simple. You select that menu option and then enter any filename. Obviously using TERMINAL, SERIAL, KEYBOARD, and HOST a+to open it with the OPEN-DISK command which has the form: " " n OPEN-DISK where is the name of the FORTH screens source file (use FORTH.DISK for the one supplied. You can use any standard SuperPET filename here including " DISK/1+that the options menu allows you to specify a single character (host ignore) that will not be logged to the file. usually, this will be the linefeed character, but may be a nonexistant character to allow logging all characters. This algorithm will be ch+between drives 0, 1, 2, and 3 respectively. Also note that the default drive is 0 and you must issue the OPEN-DISK command before you can use any screens from that drive. The way to close a drive is with the RELEASE-DISK command which has the form: +of a carriage return at the end of a record. Only when a host end character has been specified and the end of a record has been reached will the package pause and look for the prompt string. This process will repeat until the file is transferred. I us+ " FORTH.DISK" 0 OPEN-DISK 1 LOAD At this point, it will take approximately 1 minute to load up all the extensions including the full screen editor and assembler. If you don't want to do that, you could also just load the module full-forth instead of th > Forth with all extensions loaded, load from SuperPET menu forth.disk > The Forth environment source drive tardis > the current state of the terminal package, load from menu John A. Toebes, VIII PS. here's a summary of whats on , ty to enter a command from any line on the screen. While in the editor mode, you can use any of the FORTH commands, you simply don't get the prompt. The FULL-SCREEN editor is slightly different. It is a separate program so you cannot enter any command, -? .~  =?1/?=/ M=(#(#" 4th" freeze pad 10 + disk-table 4 cmoveve 4 erasetor hex~swap76~2swapĮDDBFFB~over user-const , =?1/?=/< us, mand mode that isn't finished. Someone needs to write a command processor that works like the mEDITOR one for global changes PF9 advances to the next screen, saving the current screen PF. advances to the previous screen, saving the curren one ,~r~pickXI~sp@"0~rp@06@~@'<~c@5KO~!CZ77~c!Sk77~+!c|77~cmovet4 DB%'B/  B/  3F5 ~toggle7~fill, get it. LEXICONS (swapable vocabularies) are still in the testing stage User TRACE functions don't work the way they are supposed to. CHR doesn't work in a compiled definition. SuperPET disk errors sometimes seem to hang up FORTH. Generally, however it,B~d-FBFVDD3D~negate O_~dnegate6O_BBV~s->d)Q~c->sGc~maxYt7/~mink7,~+-+Y+d+-+Y4+abs+ +dabs+ +u/hEiDiCiB, what you think of the FORTH. I am always happy to improve on my work and an very open to suggestions. Sincerely, John A. Toebes, VIII PS. here's a summary of whats on ,decimal+ X+hex+X+octal+X+-1+0&+10+29+3B+4K+s0T,r0],~sp!gze~rp!qo~ disk-table ,'6use,x update-flag ,prev,`first+`limit+|,O BXIXIXIB4B'oADo1?&2b44D4BmA& 2dDDj&2a3F5 ~ release-disk + :EX5X+ open-disk L+ \ ! (l(f:128)!>,rel!>u8  5,X+block+:: :0H# >N :H X,+drn+ SX+dr0?+5F+dr1T+>F+dr2c+GF+dr3r+PF+bl+ in,'out,' nl+ termbuff ,'>tib,'" input-fcb,s. You use the standard cursor keys and the same function keys with some minor exceptions. OFF/RVS restores the screen to it's original state before any changes. DEL never moves the cursor to the left ( I got lazy ) the up/down cursor keys wrap t,er-area ,'dup6n4n ' <4 b0?045J& 4e2b' 5 5ntor40 50~(bye) 29>r74~r>5~r~2dup766~drop3B~2drop3D~swap76,but never going past screen 1. PF3 copies the current line down to the save buffer. PF6 copies the save buffer up to the current line, replacing the current line Lines that are deleted or pushed off the end of the screen are copied into the sa,4 77 /0&5 ~and7A~or#7A~xor77A~0=.J'O_~0<B[,~<Sl7. >e|7- =u7' u<7" notJc=4 70-4'2b5 ~N5.5 ~_lit~clit, is pretty solid. It requires 10 6809 source files to assemble it and takes over 3 hours to completely assemble and link. (the first attempt at putting it together would have taken over 35 hours to assemble because of inexperience in using macros and th,B%BiEiD0&BDCSDB3B~u*B6B6C=EAB=EEoDiDB=oGAC=FFDD3D~* ++m*N+5+m/[+ 5+/modw+O}+/++mod++*/mod+a}+m/m,the disk: COPIER.4040 \ these are the Commodore basic recovery programs COPIER.8050 / protector > this is the surprise, load it from the SuperPET main menu forth > Forth without any extensions loaded, load from SuperPET menu full-for, offset,'.b/buf+b/scr+c/l+@blk,'(scr,'*openf$:4 74Ľ2b5 ~closef/Z4 '5 ~fgetchar Nv4 75 ~fputchar h4 7742b5 ~errorf4 75 ~errormsg 4 5 ~r/w4 BTTTT, X++buff+Y  :+buffer+: X:Y,:5XX,+update+: I!i>X+flush]+Y55#)5X+ empty-buffers+  \ XX5- ,' output-fcb ,' aux-output ,'key-fcb,' printer-fcb  ,'key+:t+emit++::E >z5X+set-curs <4 AC3D5 ~get-curs |4 4O6565 ~cr+D+query4 P4,o the same col on the current screen (try them) CLR erases the entire screen. TAB advances to the next fixed tab stop (you can't set them) STOP exits the editor RUN Is supposed to exit the editor but has a bug in the code. PF5 puts you in a com,~2swapĮDDBFFB~over"B~rot0BDD7~-dup'G&~execute=]7~utraceP,' ;traceb|5~ctrace-on p~ trace-off n~monitor40 50~(bye) 29>r74~r>5,ve buffer (note it can only hold one line). There are several bugs in FORTH that I haven't had the time to track down. First, the FREEZE command to save a copy of FORTH doesn't work, but Dr. Levin claims to have a fix for it which I can print off when I,O~branch1~0branch'1"~(loop) +b-2d1"~(+loop)Km*b.2d1"~(/loop)>nm+b% b"|2d1"~(do)a74~ileaveb~+7~d+FBF4O_5YDD3D~-,e slowness of the macro processor. I have been using the same module for almost a year and have yet had to reassemble for any bugs. If you would like to source to it, I could also provide it. Please keep track of any bugs that you find and let me know,od+5+*/++1+0~2+.0~1-&?0~2-7P0~>>Ha/ GV0&~<<Y|/ XI0&~2/tGV~2*XI~base,'digit3BO0+ %' % _$~__~- &!5!G+endif)+%G)! X+then)+)+else)+G)&!5!G)G+do)+&!P+loop*!+P)&)!++loop*3+P)&I!+/loop*I+P)&l!+begin*`+%!>+until*w+>)&!+end*+*+while*+),+agai- cins4s+3 PS1   .?i+cerase4+3 PS1 @ n+crub4+4 3D+ldown5+3 PS11@+lup5/+31 PS1@+lcopy5T+PS1PS1@+ldel5w+58 - Ҿ 4 싽2d o0o oo5 ~0type+ IE D+(0")+ I+0"6+""&:"&>!!  I !5!!!! I 5!i!+typeX+E ID)++count- H%5X  :  z+,+ :&> z5X : =H&#++(number) ,+ I:,:.:#:>#z+number-+55. I- ,#X-# I I.5%54+ de-G!+c,!+!i>!+rel,!+!!+current!,'4context!,'2state",'0latest"+" ::+["*+5"&X+]">+"&X+ immediate "M+"4+smudge"]+"4@+(find)"u"4 7@&%?&Z,00O65 ~_?:&˯5 ~-.0 - (c) 1983 John A. Toebes(-./cls/+ D+home/+>D+banksw/+i+rep/+5!!I@z truncated+:$p!..g+replist0+5G# )rep )+:$)+edit0L++X/5,X+$edit0Wendedit/+ende-) $)+warning$,' message$+ET$:Y: $: > stack empty message# :$X+error$+$:Y,|!? $x: :./csp%Y,',!csp%+ %X+?error%+%b+?comp%+"- @G@Pi+ setup-scr 1+/SuperPET SuperFORTH DEDITORScreen #LINE 0>#)BUFFER:/2 +setdisp2+ii+tight3E+(3P3P!3P 3P+loose3`+ 3P3P3P- (-: 'NX &D&_:  NX:EH!X+forth',W'<((+)!+."((+""&:&!!I! !!+(")(6++"(e+""&:&(l!!I!!!! !+""(z+!5+string-2E,7+ H D+docmd7+>D7  >D+endedit7++:6oH+runit8+/+: 6o.m8#+doedit83+5 352E 7   ! 4&   -n*+>)&!+repeat*+*N)+(;code)*+"4&D&7X+create*+" &n'&Y$! I'>:,! I!=i @"4!" :X!,!+vlist+ +":: I?:Mz '& )&D&_: H !+;s+\+5 ~:++&#%" :"- 5)4+lins5+58  =5,I  4+copyfrom 5+ GD $15@P@)+copyto6+315@@P)g+recover6e+-+ I+(.")+ + ?terminal  4 5 'O~space +D+spaces +5rE 5 ))+erase 1+5+blanks S++enclose d 4 3\E4F'&0 FD''0 FD&Bm'5 ~expect v+ -finitions -e+":" X+ interpret -+""&:j &7!&7[%!-o#:&&%+quit-+%5 X"CX-"&:H,:E+load.'+ ::5X S X-X X+bye.e+:%5\)--find"+!!"::" H !"4"+hld",'$dpl#,'&numeral# #$ .0 W~hold#+,#z#:i+sign#9+.Y-#A+<##Q+!#X+#>#j+#:! +##z+:.#"#A+#s#+#!H+d.r#+ #p##Y-dit0+,,X+begincase 0++case0+& &)&+endcase0+ )+chr0+!!I&+dump1+:$&5#p##### )5 I5#p### ))| *5 Ir D)* -&:H%+?csp%+ %:%+?stack%+ c:z>% m:j%+?exec%+"&: %+cfa&+N+pfa&0+ I?+lfa&=+Y+nfa&X+ I+[compile] &g+"H5%&7!+compile&}+% ,:!+literal&+"&:-  3P+pos-curs 3+@ Y+homeit3+>>+cright3++cleft3+=+cdown4+@+cup4+@+chome43+5+cnl4K+@@S4&+cdel4\+3 PS1  .?i+-(+,:>r !5!!,K+mlen(+=I+$@(++$!(+( i+$+)+ .(. Ii++$)#+   (.I i(+?pairs)U+%+if)+.! 4:g  4T>  4TB   4c/  4  4 Y  4{G  8<  6  5!   7  5  6 -X+"R*4 1~;++%&+""C+constant +++"!*~variable +++*06~user,++* ~,/+"4&DX*4 06~uabort,B,'(abort),c+,m:[ ok-prompt ,q,ok 0prompt,,,thaw,,'-->,+ :- +:6+++scr6++:6o>+z+:6++-scr6++:=E+:6o +X6++clear6+315 @ nP)+?done6+   !  ! ! >!  ! G! !  ! z j! H+getinput 7"+5-5i5i2E  i)+word + :E:: !B nz !i!+ -trailing !+ 5=I=)+dp!Z,'here!+!:+pad!+!+allot!+!z+,!+!X-:X:X:X:X':Xcold.+x5$X[5X5X:(#X:X:X:X:X':X>terminal >r 8X>keyboard8X>w 8X>ieee48'X5X,:[abort.+x D5SuperPET SuperFORTH - V 3-#  ;+d.#+5# )+.r#+O#+.#+O#+?$+:$+bounds$+ +.s$+c: =E5 $,I>$+(line)$0+ S+.line$f+$p!g+list$+ +Xscr #  $5(G#-IX+editor1/,W'8V(%screen( +editbuff 1+border1+߀ i @G@ i5> iA> i)Y i @G@Pi߆G i @G@ i> iA> iY i-  &!&!+dliteral &+"&:&&+'&+"H5%&+id.' +? )+width','voc-link '5,'fence'B,'vocabulary 'R+,:>!!G!" :Y&n!!'N:!'NX!,KP"X+forget'_+'&n '[:%'N:. D Ew IKw G4M2bMO_ X LJ &K  '怌X&W'怌w`&Y }M'T}'4}&/. & }-|M} '瀌w`&Y 'MY&X} 'I`O - L . u  5b  58O  6<  5[) P  8#D3 3B+fseditl1+: +X/26+8`/X+fsedit:*+3i:53+reorder:W+j+ indexline :k+ G# )5$. 1800 2400 3600 4800 7200 960019200noneodd evenmarkspacA 4p dasher d200 ? :963_1/m x20,nvz3<,W(P startup<+5I<) (l forth.disk5>$X/++writeblk ;.+. ;:. ;:.;:E".. I >l+writ.            *)&#.} 'W44,F& A'0-9#F&G'a- z.ʀ5 5 4_&2c 1!&2b5 牀 P& |  &z 569(T)T+L.K/_?O?_BNBJCJGMGTHMJNKLMOOPO_} 'z 9]' ,O_~ 9 L/]'Z/~,O_~8 9 9 J,]'} .( .&( !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ . ʆ 9 ]' ~9 ~ k ~ k 9~ kKJ H 940 CA' A|   @&@|  & | P 4S '7T$+C  2a 4' T\5 91?H  180j&2a}'z&  Z& _509. )YYWWXX? 8&T?/z'B |<\\] 8#/fSu_f|S=    /Z[?1;0c.Ā ~R9 01?&99n}' '4/ 5}/4'O L&O5n /X  Cn|  4 594} ' O4 2b5~ XX X\XXXX XXXXX 94  '4P=  O - L ð O - .ðaO - L ðbO - L ð} 'MMg 9~ X E G29e pr {'ʀ 'ʀ = ÀÀʀ &  TTTTO ÀÀ +& Ơŀ'2 1ʀ`TTTTT4Ƹ 9} '.+index:+:v: )+findex:+:v5$pI(: )+voclist:+'N:E ,&n '&&7&n'&:+fputaddr :+ _ +writeblk ;.+. ;:. ;:.;:E".. I >l+writ...bc4[outeqpi\yrw 6@l jgda5;k]hfs9^707418-852. A /P%P  9 ~Վ~ A~A~4瀌Y&X59'C4,2&  &' O - L M'   j&2a9} ']&Z&9} 'X99K 큌&$'0-)4L4} &- _5=&} '%&50._? M X0<NVZ.>BC{OUTEQPI|YRW `L JGDA+K}HFS~0'$!=(%"       .&]- O z , 9 9 LO/' L/ ],  9 9  9  ]' L/~ 9 >O' Lm' 9O-]'1&O 9Om' ' L/ ]/O ~ 9L /9 > ' Jm&M&]',& 9Om' ' J,]/ O J ,94 O5 >9 >P. !"#$%&'()*+,-./0123456789:;<=>?@ABC&(FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~. 4 <&\ &=5 9cute, A(ssem, D(ebugX4O 'X  X X35:섎 n} 'a-z.} &Y&X} ']-w`&Y94Ā R5~RĀ ~R4Ā R5~RĀ ~R4Ā4 R5 R5~R.'$44̇0(aPja&j&2b54 Om2b9'#4P=À(aPja&j&2b4m2b9P=bÀPb' Z&94 P=dÀOd' 1!Z& 5 94 P=dÀOd'!Z& 5 9464 P= | :5. L ð所Ȁ牀594~;& 20 2o| = 5?&| 1 ,0-9.4 2 = 2} ='| = A /~A9 4} =&L / 9 } =&J 4,O 9 4} =&L O/O 9 } =&J 4,O 9 4z =-&_ u 9 4 5 9999 п /-  9~. } ' } ' } ' } ' 9' ' '  ' @' 9 c=rrcc - - - - l hd i k m A pfocd bbbbb ppppp s=s w=w  dasher d200 hh:mm:ss 50 75 110 135 150 300 600 1200.ef;K+! 5;W'N: ,IE #(P:  0;W: H55;WX+freeze;+(-"4X .!.>,prg!!>s8EA !  \ ! YY \;! ! Y+parm$.    /( ̎#{&PPZ&#4&50(J&#4m'0ʀJ&50(#&!#Ͻ"_A-Y.AX#G#!&} '~K=ÀȀJ& X L_9=ÁʀJ&1=$" '`i&l d&j t&! 94=Áw5.           J "$&.oJ&9O 4 2b9]' J, ]-} 'z O O 4 2b9]'  ~]'  ~8& 4Z]& P=0  Z, , _O4 m2b9& 4Z]/  ̇ 4 P= À5,̇ 4 %2b9} &O_~8 9 /& 4 2oo =9]'.Qq1ieee4   /Z[?1;0cieee4rd200prg/ postfix3 =host end =host extra =host prompt =baudrate =baudrate =parity =parity =stopbits =stopbits =databits =databits ='''怌X&W''&&4 '. k5 K&} ' '1> '1"} '&9'$/ l action definition for prefixed select the character to be output for this sequence~3Ƚ4 J9&944 2Z&?44} &- @&541"0PZ&ֽJծ䦀'J& f& a& c& e& 02b94(ȀJ&5/ Bu(,5 , (9'4 &5 1 942file1! Z&1'ʀ 5210!J&9 99x4"P44 2d5"'/OJ 1PJ&9 )'j )'_O_)'X O4 42b5 &'/ ansi cursor rightansi cursor leftansi cursor upansi cursor downvt100 led selectionansi option selectpush or pop cursoransi select attributesring bellansi cursor position0stop csr when it hits screen edgefscroll screen when csr moves past edge/otocol - pause sending the current file - resume sending the current file - terminate receiving and close receive file - download or log the current session to a file - receive a raw file using no protocol - receive a raw file using superpe/&1P  &1RÀ$A"&} ' !9=ÁwʀJ&$d"瀆ʀJ&!$d" "#9=ÁO4 4 ʀJ&5 $"5 &} '+& } 'M'J 'L4" J&!5"  J&9L&L9&L &O LL99L940/4J54Ȁ5 '+& M'JƠ  '`'ʀL& ƠJ&L 9'%4'&/O59O4'$'&/O2b9404K45' 'Kb509K002%0$004J540&0/rametersselect option press to exit option selectorncrease value ecrease value est bell to exitselect character for noneselect characters to be sentselect character to send to delete char to exitte/action codesuse home and cursor keys to move to desired code to select code table to define code to exit up downleftrghthomecr tab bktbsctbintbmodecinscdellinsldellerssersrvs+rvs-insmkpadprfxstlnenkbrmsgled+led-vtrtvtlfvt/sor to screen edge is no additional tabs setfwrap cursor to next line for additional tabsfwrap cursor to line above for additional tabs0clear tab1set tab0invoke ansi parser2position csr row col with space offset4position csr row col with null offs/'$9  X L9 \&\ ~w &\ &_ \\ ~w  ~w \ ~w &&&&&&&&&'K(z*(_J&} & c'8d':}& 0-3/h s';p'/r'%f'!}& 4-8/I t'1 -l~(\-K~(\~(\~(\/9 큌&94'4 &5 1( 9ignore this character sequenceoutput a single charactercursor upcursor downcursor leftcursor rightcursor homecarriage returntabback tabset or clear tabclear all tabsselect special modecharacter inser//OJ O_)O_)_)'/OJ94O/ 5}'O/ }9select option desired or for directory for disk command to exitenter filename use to delete a character to execute commandtardis file options men/1wrap to same col when csr moves past edge1move to end of line above when csr moves past edgefmove to end of line above and from home to lower right edge2wrap to same line when csr moves past edge1wrap to start of line below when csr moves past edge/t to superpet protocol - dump the current screen contents to a file - save the current terminal configuration)) .O.\)2.i.v)8)tRRRRWWWWS4-(_J1'0&0&- -94. (_؆ ƠJ&̃ؽ.-Ӧ&؆ J& 'o!-4/#4} '~ $DDDD -W 0 -W 00%5J&Ɏ߆4汽F턦&4 !5 F4 5& 0(5J&汽FP汽Fz04 '4栽F & 5J&5 1"_4"Z= J&0#5"J&'\4"XO J& +&e  5"0#/ [&0 S &0P J &0 A& 8&400025 # &' ol .0240255&r} 'k~KfȀȀȀ90_04 ,# -W 0DDDD0!} '~ $ } 'K '!1#} '% =M& "$ F& !# 74H/rminal = ascii aplcase = mixed upperduplex = full halfmode = online localkeyboard = normal applicprotocol = none xonxofbell pitch =keyboard repeat =bell duration =prefix1 =postfix1 =prefix2 =postfix2 =prefix3 =/upvtdnvledvoptvcsrvatrbellvtca4444M'3 34 FP큌&5X14 D4(=044J545 '0&L &J  &LL &JJ &OM,''-' H445O=',3 4445559terminal action definition for termina0et6position csr col row with space offset8position csr col row with null offsetaposition csr ansi mode0leave csr where it is1backspace csr firstfbackspace csr first but stop at left edge0erase from csr to beginning of lineferase from csr to end o/~(\~(\04=4ÀPʀJ&5À4*X(_.5!=4 J& 'o!5 X-9:4 2b&/O5 5, X-'~K0& $ 9*&POZ&}&(* +i(}&/tcharacter deleteline insertline deleteline erasescreen erasereverse video onreverse video offinsert modealternate keyboardthis is the prefix characterselect status lineenable or disable keyboardreturn a messageturn a led onturn a led off/u - send a text file using no protocol - send a text file using host protocol - send a raw file using no protocol - send a raw file using superpet to superpet protocol - stop sending current file and close file - force send a line without pr/ fwrap to start of line below or home from lower right edge3perform a cr/lf when csr moves past edge0no automatic linefeed1automatic linefeed0leave cursor if no additional tabs set1wrap cursor to same line for additional tabs like superpet2move cur/ӽ2b4&5/O 佰/Oὰ9disk/1diskieee8-15.Rselect drive for directory or enter disk command to execute to delete a character9./R9./R9./R9./R9function not implemented at this timeOȀ/J&11(8P8xw k50940覀&J 0&509   [ [ [ [ [ [    !6!!!!!!!!tardis options menuterminal mode port parametersraw data transfer mode pa/2*:"5&T˰ D41.m5& ], ˰$1&l䁀&Y}0&1U 1' POZ&1&7&2a9table definition of unprefixed action codes table definition of escape prefixed 0  &} '  DJF9`' &cr @A-Z. } 'Y ^9&&~?DZX:'0 0P3H:0Ip40JIJJՎGT'm& 4J5GU50'!'4 &H &Gj I 5 Ip9 iI1!2"3#4$5%6&cCsS 9 - quit the termin0 f line1erase entire line containing csr2follow ansi standard parser0erase fron csr to beginning of screenferase from csr to end of screen1clear entire screen1position cursor to start of same line1select on0select off1output a single space also00 !""9 - send single character - ignore the keypress - use prefix1 - use prefix1 and postfix1 - use prefix2 - use prefix2 and postfix2 - use double prefix3 - use double prefix3 and postfix3 - send a user script - this is a comma0 <95;<95;Y;;;~5;<$;<5;>>>> press return to begin <<<<<MOŀ'/} 'z &JMнֽMн]'瀌X&W'M'4瀌w`&Y5MM9  data raleigh, n.c. 27606 interchange 919/851 4095 simulator this pr0                               ctl            alt    keyshift       0 excuse the time it took to get it to you. I have been extremely tied up lately with being sick, starting a new full-time job, and getting engaged along with 20,000 other little things. So give me 50 lashes with a wet noodle and read on about what I ha0FR F`E{450P &FR F`Ey450P'FR F`Es450PEu450PEw450P30D'À4 섽Fn5 0Es&5 30D'ÀP4 섽Fn5 0Es&90Z&90Z&9M& F! +& 0 ams, remember that the copied disk is to be treated as read only until you can get all the files off it onto another disk since the BAM or even parts of the directory may not have been copyable. In using the program on my 8050, I recovered all but 60 lin0ll prompt you to see if the blank disk needs to be formatted, select either a Y or a N as appropriate. It will then do it's stuff, displaying a picture of the disk sectors and indicating where it is trying to copy. Any block that it leave on the scree0end break and flush type ahead4GkJJ0-9.0XJ59select the character or control character to sendshould this key sequence echo in half duplex mode4H_'ʀ J4H\'ʀ J_Y'N&N&ƀ _\ &59!0sor location reportcvt100 status reportevt100 identification report>&>/>8>C>P>W>b>m>t>>>>>>>>>>>>>>?? 57T77w57T77w57T78;75)7T8g8;885B995R9-9U995V9-9U995_:/:$5:8:::L:t:5;;;.5;0Ў 큌&KO'4&50P 9terminal and c 1983 john a. toebes, viii rapid 145 c jones franklin rd. data raleigh, n.c. 27606 interchange 919/851 4095 simulator this pr0                                                                1n will indicate that it was unable to copy that sector. When it is finished, put write protect notches on BOTH disks and labels on them so you know what they are, then you can copy the files off of the copy of the bad disk scrutinizing them carefully. T0    shiftkey            0ve got for you. Second, it contains two simple Commodore basic programs which I have used on the 4040 and 8050 to help me recover a lost disk. I wrote them after my brother folded my only copy of a major program in half (I think he thought that was wha1 ion in the public domain. Some features about this FORTH not found in many others is that it takes full advantage of the intelligence of the disk drive and maintains full file compatibility with the Commodore file system. A disk containing FORTH screen1 u could also just load the module full-forth instead of forth from the main menu. The assembler works like most other FORTH assemblers so I won't go into much about it. There are two editors. The PSEUDO-EDITOR is used by entering the command: n EDI1 hen handling I/O. It supports re-direction of all I/O and has the ability to save a configured version of itself. To use FORTH, you load it from the main menu. It has a fairly standard FIG-FORTH vocabulary with some notable exceptions. In order to al1 creen re-invoking the editor. Also, to get out of the editor, enter the command ENDEDIT or move the cursor to the line that has it on it and hit return. An interesting point - the PSEUDO-EDITOR is not really an editor, it simply takes advantage of tur1number n is the drive to which the file is to be allocated. Note that the FORTH drive has nothing to do with the physical drive 1 or 0 of the 8050/4040. FORTH internally supports 4 drives to which you can associate any file. To switch between these dri1the left ( I got lazy ) the up/down cursor keys wrap to the same col on the current screen (try them) CLR erases the entire screen. TAB advances to the next fixed tab stop (you can't set them) STOP exits the editor RUN Is supposed to exit the e1he third thing on the disk is what my brother folded in half. One day several of my friends and I decided to get together and see what we can really make the SuperPET do. It is still in the development stage, but I think you can see what direction it i1ands BYE and (BYE). If you use BYE, it will ensure that all buffers are flushed to keep you from losing any changes that you may made on any screens. (BYE) lets you exit when you don't want any changed made. When you start up FORTH, you will want to l1ould like the source code, I would be more than happy to send it to you. Now about FORTH. The current version of FORTH took 3 months to write and is based on a similar implementation of FORTH on an IBM 4341 by Jack J. Rouse at North Carolina State Univ1 pushed off the end of the screen are copied into the save buffer (note it can only hold one line). There are several bugs in FORTH that I haven't had the time to track down. First, the FREEZE command to save a copy of FORTH doesn't work, but Dr. Levin 1s may contain any other type of files, as well as may be validated. This is done by using relative files instead of performing direct track and sector accesses as is done in most FORTH implementations. It contains a full assembler and two editors. One1T where n is the screen to edit. It will display the screen on the terminal and you make changes as you would in mBASIC by movig the cursor to the line, modifying it and hitting return. You move lines by changing the number of the line. One problem wi1locate a FORTH disk to a standard FORTH DRIVE, you need to open it with the OPEN-DISK command which has the form: " " n OPEN-DISK where is the name of the FORTH screens source file (use FORTH.DISK for the one supplied. You can us1ring off the FORTH 'OK' prompt and the SuperPETs ability to enter a command from any line on the screen. While in the editor mode, you can use any of the FORTH commands, you simply don't get the prompt. The FULL-SCREEN editor is slightly different. 1ves, you use the words DR0, DR1, DR2, and DR3 to switch between drives 0, 1, 2, and 3 respectively. Also note that the default drive is 0 and you must issue the OPEN-DISK command before you can use any screens from that drive. The way to close a drive 1ditor but has a bug in the code. PF5 puts you in a command mode that isn't finished. Someone needs to write a command processor that works like the mEDITOR one for global changes PF9 advances to the next screen, saving the current screen PF.1s headed. Load it (PROTECTOR) from the main menu and it will alternate between two title screens. After you have seen them, press either a 1 or 2 key (number of players - although it doesn't make a difference yet.) and it will enter the game. Instruct1oad up all utilitys. Do so by issuing the commands: " FORTH.DISK" 0 OPEN-DISK 1 LOAD At this point, it will take approximately 1 minute to load up all the extensions including the full screen editor and assembler. If you don't want to do that, yo1ersity. That version was based on an implementation on the AIM65 that he owned. Two spinoffs from my version are a 6809 FORTH on the TRS80 Color Computer and our own moving it to the Commodore 64. We are currently in the process of putting the 64 vers2claims to have a fix for it which I can print off when I get it. LEXICONS (swapable vocabularies) are still in the testing stage User TRACE functions don't work the way they are supposed to. CHR doesn't work in a compiled definition. SuperPET disk errors1 is a Pseudo-Full screen editor taking up 1/2 a FORTH screen and the other is a true Full-screen editor that is based largely on the standard Waterloo editor. It contains many words for directly interfacing to the SuperPET operating system, especially w1th the editor: It does not allow blank lines. I haven't taken the time to fix it yet. Instead of a blank line, use one that has a null comment : (). To refresh the screen, hit HOME then return. It will execute the command that was at the top of the s1e any standard SuperPET filename here including " DISK/1.FORTH.DISK" or whatever device you want. The device must be able to support random access files. I believe that it will work with the host package although I haven't been able to try it out. The 1It is a separate program so you cannot enter any commands. You use the standard cursor keys and the same function keys with some minor exceptions. OFF/RVS restores the screen to it's original state before any changes. DEL never moves the cursor to 1is with the RELEASE-DISK command which has the form: n RELEASE-DISK where n is the drive to be closed. RELEASE-DISK is automatically called when you open a disk for a drive that already was opened and when you exit FORTH. To exit FORTH, use the comm1 advances to the previous screen, saving the curren one but never going past screen 1. PF3 copies the current line down to the save buffer. PF6 copies the save buffer up to the current line, replacing the current line Lines that are deleted or1ions are on the second of the two title screens so read them before you start the game up. That's all I would like to say about it except that it is written entirely in 6809 assembler and that I learned a lot about the SuperPET in the process. If you w2start)3$S۠#--E#!X6۠O ]8b7+s۠Os! Backspace for start bold72g7ꦈ-! At even numbers (or pairs)1/lZ-EE-E Z.q7VE 2 sometimes seem to hang up FORTH. Generally, however it is pretty solid. It requires 10 6809 source files to assemble it and takes over 3 hours to completely assemble and link. (the first attempt at putting it together would have taken over 35 hours to2transferred on Sept 29, 1983)wl ( B|! First catch the controls at the start and end of the line:A'! and catch the space marker '#'.&0s(EE~}(EE`/03s}lP ! If control at start,/1)2 John A. Toebes, VIII PS. here's a summary of whats on the disk: COPIER.4040 \ these are the Commodore basic recovery programs COPIER.8050 / protector > this is the surprise, load it from the SuperPET main menu forth > Forth with2   'NW! ESC US sets HMI at 10 backspace (almost to original place)M?\[    ! and print it again>0a! backspace ESC Set HMI at 13/3fٕ   2 *v۠ZV ۠O){7V ۠# V--E 5jE-EE@۠?! Get printer to left margin, do neg linefeed?:j`;l`! Locate underadowwBE #۠BBSBB"۠[BBٟB ۠ 2line signals and:.8:j ! change them to spaces.---E-- -ED! space over next to start of underlined string and print ___C9-$Ƈ۠#--E2 assemble because of inexperience in using macros and the slowness of the macro processor. I have been using the same module for almost a year and have yet had to reassemble for any bugs. If you would like to source to it, I could also provide it. Ple2ll~(ll`/4lP)(# 4) ())  488( Forth with all extensions loaded, load from SuperPET menu forth.disk > The Forth environment source drive tardis > the current state of the terminal package, load from menu 2   ۠ # CS!H# EL# CRAoAg!U!G!D!T!c!a%carry# upAlCtwo!L#rvsreverse0' masterC pg% leftC pp%right!o hard# oo pagefile%paged' rvsphr%auxil#phrphone2#!ˇ9۠O Ї6Շ9}۠O}! Backspace for start...5ڇ:U-/߇Ǖ-EE-E ǝ.۠_#--E 8!@۠?! Again get back to l2 excuse the time it took to get it to you. I have been extremely tied up lately with being sick, starting a new full-time job, and getting engaged along with 20,000 other little things. So give me 50 lashes with a wet noodle and read on about what I ha2y, we have the string adjusted for spaces. Now, print ONLY theHD! bold face characters and the underlines, not the characters.C1(l E-EEE0!5isE&5z}E+7~70l2at was what double density meant). If you look at them, you will note that the heart of them is only about 10 lines of commands to the disk drive to do U1 and U2 commands whilst checking the errors and reporting them to the screen. If you have to use t2aAiEcountAk slAPL flag#con waitxE flagcd fileAcAbAn%carriconvert0 ssAxAy' footerAmAjqfudgetigerwheelEstartE long!b!XE enddunder2eft margin, neg linefeed?*:EEEEIl)H! And print the whole string OVER what has been printed already...G,۠s}+ EE  6/H   ! Sets char spacing at 854۠H 9۠<9A>۠   ! return to normal spacing of 11@CHM>χ! shadowprint:bu(RS 3hese programs, remember that the copied disk is to be treated as READ ONLY until you can get all the files off it onto another disk, since the BAM or even parts of the directory may not have been copyable. In using the program on my 8050, I recovered all3e second of the two title screens so read them before you start the game up. That's all I would like to say about it except that it is written entirely in 6809 assembler and that I learned a lot about the SuperPET in the process. If you would like the 3RELEASE-DISK command which has the form: n RELEASE-DISK where n is the drive to be closed. RELEASE-DISK is automatically called when you open a disk for a drive that already was opened and when you exit FORTH. To exit FORTH, use the commands BYE a3 It supports re-direction of all I/O and has the ability to save a configured version of itself. To use FORTH, you load it from the main menu. It has a fairly standard FIG-FORTH vocabulary with some notable exceptions. In order to allocate a FORTH dis3 but 60 lines of code from an almost completely full disk, and for those lines, I was able to recover the .b09 module. To use the program, load it and follow the instructions. All you need to use it is a blank disk and the messed-up disk. The program 3 n, re-invoking the editor. Also, to get out of the editor, enter the command ENDEDIT or move the cursor to the line that has it on it and hit RETURN. An interesting point - the PSEUDO-EDITOR is not really an editor, it simply takes advantage of turni3 source code, I would be more than happy to send it to you. Now about FORTH. The current version of FORTH took 3 months to write and is based on a similar implementation of FORTH on an IBM 4341 by Jack J. Rouse at North Carolina State University. That 3 nd (BYE). If you use BYE, it will ensure that all buffers are flushed to keep you from losing any changes that you may made on any screens. (BYE) lets you exit when you don't want any changed made. When you start up FORTH, you will want to load up all3 k to a standard FORTH DRIVE, you need to open it with the OPEN-DISK command which has the form: " " n OPEN-DISK where is the name of the FORTH screens source file (use FORTH.DISK for the one supplied). You can use any standard 3 will prompt you to see if the blank disk needs to be formatted; select either a Y or a N as appropriate. It will then do its stuff, displaying a picture of the disk sectors and indicating where it is trying to copy. Any block that it leaves on the scr3ng off the FORTH 'OK' prompt and SuperPET's ability to enter a command from any line on the screen. While in the editor mode, you can use any of the FORTH commands, you simply don't get the prompt. The FULL-SCREEN editor is slightly different. It is3version was based on an implementation on the AIM65 that he owned. Two spinoffs from my version are a 6809 FORTH on the TRS80 Color Computer and one moving it to the Commodore 64. We are currently in the process of putting the 64 version in the public 3 utilities. Do so by issuing the commands: " FORTH.DISK" 0 OPEN-DISK 1 LOAD At this point, it will take approximately 1 minute to load up all the extensions including the full screen editor and assembler. If you don't want to do that, you can a3SuperPET filename here, includ- ing "DISK/1.FORTH.DISK" or whatever device you want. The device must be able to support random access files. I believe that it will work with the host package although I haven't been able to try it out. The number n is 3een indicates that it was unable to copy that sector. When it is finished, put write protect tabs on BOTH disks and labels on them so you know what they are--then you can copy the files off of the copy of the bad disk after scrutinizing them carefully. 3 a separate program so you cannot enter any commands. You use the standard cursor keys and the same function keys with some minor exceptions. OFF/RVS restores the screen to its original state before any changes. DEL never moves the cursor to the l3domain. Some features about this FORTH not found in many others is that it takes full advantage of the intelligence of the disk drive and maintains full file compatibility with the Commodore file system. A disk containing FORTH screens may contain any 3lso just load the module full-forth instead of forth from the main menu. The assembler works like most other FORTH assemblers so I won't go into much about it. There are two editors. The PSEUDO-EDITOR is used by entering the command: n EDIT where3the drive to which the file is to be allocated. Note that the FORTH drive has nothing to do with the physical drive 1 or 0 of the 8050/4040. FORTH internally supports 4 drives to which you can associate any file. To switch between these drives, you use3The third thing on the disk is what my brother folded in half.... Some friends and I decided to get together and see what we can really make the SuperPET do. It is still in the development stage, but I think you can see what direction it is headed. Lo3eft ( I got lazy ) The up/down cursor keys wrap to the same col on the current screen (try them) CLR erases the entire screen. TAB advances to the next fixed tab stop (you can't set them) STOP exits the editor RUN Is supposed to exit the editor3other type of files, and may be validated as well. This is done by using relative files instead of performing direct track and sector accesses as is done in most FORTH implementations. It contains a full assembler and two editors. One is a Pseudo-Full 3 n is the screen to edit. It will display the screen on the terminal and you make changes as you would in mBASIC by moving the cursor to the line, modifying it, and hitting RETURN. You move lines by changing the number of the line. One problem with th3 the words DR0, DR1, DR2, and DR3 to switch between drives 0, 1, 2, and 3 respectively. Also note that the default drive is 0 and you must issue the OPEN-DISK command before you can use any screens from that drive. The way to close a drive is with the 3ad it (PROTECTOR) from the main menu and it will alternate between two title screens. After you have seen them, press either a 1 or 2 key (number of players - although it doesn't make a difference yet) and it will enter the game. Instructions are on th4 but has a bug in the code. PF5 puts you in a command mode that isn't finished. Someone needs to write a command processor that works like the mEDITOR one for global changes PF9 advances to the next screen, saving the current screen PF. adva3screen editor taking up 1/2 a FORTH screen and the other is a true Full-screen editor that is based largely on the standard Waterloo editor. It contains many words for directly interfacing to the SuperPET operating system, especially when handling I/O. 3e editor: It does not allow blank lines. I haven't taken the time to fix it yet. Instead of a blank line, use one that has a null comment : (). To refresh the screen, hit HOME then RETURN. It will execute the command that was at the top of the scree4nces to the previous screen, saving the curren one but never going past screen 1. PF3 copies the current line down to the save buffer. PF6 copies the save buffer up to the current line, replacing the current line Lines that are deleted or push4 John A. Toebes, VIII PS. Here's a summary of whats on the disk: COPIER.4040 \ These are the Commodore basic recovery programs COPIER.8050 / protector > this is the surprise, load it from the SuperPET main menu forth > Forth with4 ed off the end of the screen are copied into the save buffer (note it can only hold one line). There are several bugs in FORTH that I haven't had the time to track down: First, the FREEZE command to save a copy of FORTH doesn't work, but Dr. Levin out any extensions loaded, load from SuperPET menu full-forth > Forth with all extensions loaded, load from SuperPET menu forth.disk > The Forth environment source drive tardis > The current state of the terminal package, load from menu 4 claims to have a fix for it which I can print off when I get it. LEXICONS (swapable vocabularies) are still in the testing stage User TRACE functions don't work the way they are supposed to. CHR doesn't work in a compiled definition. SuperPET disk er4rors sometimes seem to hang up FORTH. Generally, however it is pretty solid. It requires 10 6809 source files to assemble it and takes over 3 hours to completely assemble and link. (The first attempt at putting it together would have taken over 35 hour4s to assemble because of inexperience in using macros and the slow macro processor.) I have been using the same module for almost a year and have yet had to reassemble for any bad bugs. If you would like the source to it, I could also provide it. Plea4se keep track of any bugs that you find and let me know what you think of the FORTH. I am always happy to improve on my work and an very open to your suggestions. Sincerely,