@L|}6CD l0C)HCC WhL/h `CmCDiD`  R@W1  Y0@R !L` D  C D     )16CS S)  C)D1 p p 0 C9DI pCDL~CiCDiD`Ǫ D  C D     )16CS S)  C)D1 p p }0 C9DI pCDL~CiCDiD` DD˙` d J)L !}D L(( LL()  L| L( S LH 0p n  } CY?  q  L L  ` )}ǝ `A! d߰")-݆ "  $G@LLL&0") $G% }DžH0 3S8`G ȱG ȱG   Gȭ Gȭ GG}GHiH8(()) G$H% `(0 }ǥ)8` d)L ݆ & LGȘ ݆LL d  ! LL d)N>Q  HH) }  hyhyB q L> Lm JJ  Ln*` dB%' }ǰ8  H H` 1 { LL   !L     Hh SY?  q  1L }  !? S   q 1 L   Ll  Lg E`L   !L)  q 1L}) `L0AM݊L݉ ML  N݆LLLNLMLHG!@}1F GȱGLLEEȩÑEȑEEȑE Ed E7EȩE  q} L !,0,0SGɛ L 1 !L EHEh W G gLLSROTCES EERF } G) *Gȩ GȽG GȌd q q G`  8   0G  `D}GCEDC0X:Ȣ Y ȱC* ? 0.. , 0%n ?A[ 0 : L`L  `, 0`Y}`piH n0)բY? 08`0 }  0$L GGȽG L `8L`L}Nj8`  05G)݁,G)ȱGȱGHh0})Hh` B! 8`8iiiLE`}ǠE8FEh( l0`ɃLL L8^~jj8jHi hEEEiEȱEiE` dTE} H8EEȱEEȩEh J E8   . m  i`LI!)E1FR}1LJ舩9GIH`LJJ`HGHh l`} S gL   8 rii `дCDCG W  }#C  Lq` X٨`DOS( ySYS IIIIIIIIIIIIIIIC`0 ߩ0}}~} HE %|+-3G||DDOS PVDOSDOS[ `SYS sx}~}}~} CDOS SYS~}V 0`BDELV !B }`LVUQ   ]   TU J ]L!T  #      TU  } L ? .  t`GBJ V~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}ǢDEL8HI   0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D1:MEM.SAV J y08 B|DEHI$}G V0 0`B;DELV䌚 !B y`@ʆ v s? F0Ξ05: [ BDEHI%}% VY8 B V  @  /DE `E:D1:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J V (` 9 V⪍ ઍ  -'}ǔLLu DEHILV 9 .l 9 .l  `` s$B VBH(}I|DE V BLV nB,DE J V* \*` B V BLVDEHI BLVL)}Ǫ1u H232435; 1 ;  hh@2 e1i1LHҍ 00) 08 109hh@ Ҡ2e*}#1i1232435ޥ<<8} 3E:}DISK OPERATING SYSTEM II VERSION 2.0SCOPYRIGHT 1980 ATARIA. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDGE J. D,}UPLICATE DISKC. COPY FILE ^K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILEb M. RUN AT ADDRESSF. LOCK F-}ILE )N. CREATE MEM.SAVG. UNLOCK FILE- RO. DUPLICATE FILEH. WRITE DOS FILESW9!&x#!7&p))'&X*./)L''-؆莟.}R'S  vW DEHHI 1A#! @ ~0ɛ8A0.) ȅ 1 1i/}ǥil ! 1L NO SUCH ITEMSELECT ITEM OR FOR MENU! 0 .{z:*{}.|~ 1 0 00}JB 18L^%|DLl%DIRECTORY--SEARCH SPEC,LIST FILE? # 0 0 n&|D! 1L NOT A DISK FILE1}ǛN !B 1L " 1 !BDED:}:1BJ|DE 1DEBH2}I 1 h0ߢ 0.  0?詛 1 ~0YЛ 1 "L<" "L 3}S BL1TYPE "Y" TO DELETE...DELETE FILE SPECCOPY--FROM, TO?OPTION NOT ALLOWEDjy COPYING---DN:}4} # 0|D .L$A#B#C#JB|DE 1BHIDD#E 1D#0: B5} 1L B#C#C#B# B 1N#$0SYS1}:e#D# d# D# .d#ȽD# d# 𩛙d#X# 1,A#6}GPdD#ELO- A.BJdD#E 1 1HH 0hh|DL^%1}:e# Lt% e#dD#EL%7}7 1 0 . .0% 1L WILD CARDS NOT ALLOWED IN DESTINATION 0 A.|K@C}ǩ//3Hu ξL/L DRIVE TO WRITE DOS FILES TO?WRITING NEW DOS FILESTYPE "Y" TO WRITE DOS TO DRIVE 1.?}D1:DOS.SYSERROR - NOT VERSION 2 FORMAT. , &* բ( 1L `[) 0NΞ 0 L1M) 1@} L BAD LOAD FILELOAD FROM WHAT FILE?) 0 0#B 1L WHAT FILE TO LOCK?) 0 0$B 1L WHAT FILE TO UNLOCK?DUA}P DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO USE PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV. h  ,B}  `)  <0 2 2 0  ,   ,,ޢ* 1L ,K* 1 ~0 0C}FINSERT BOTH DISKS, TYPE RETURNERROR - DRIVES INCOMPATIBLE., 1 ~038  , 1L D}Ǿ, &*  Lz+, 0 , 1 ~0 + Y,0!,0 ,L+ ,mm  v,"ǭE}0Ξ, 05,Lt+L +,Hh` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNF}INSERT DESTINATION DISK,TYPE RETURN`    `L,8,0( rG}L1(`ߢ) 1* 1 ~0Y`hhL S SL1) 8`NAME OF FILE TO MOVE?- 0 0|DLtH}G% A., 1 <0 0 .@L# .BJ 1  DEHIB V L1 ,5 1 <0,L. I}I JB|,A#Pd#DE 1 HI BDEHHII 1 B 1 , 1 <0,0Lf- B VJ},A#P, 1 <0 0L#L ߢ) 1* 1 ~0Yj383}mm ݭK}}`8}``|* ? ɛ,`|:(|/ 1L `DESTINATION CANT L}BE DOS.SYS0 0H{ $22Δ $28/L /) $2 Π $2 0 ξM}ǩhAΞB,0 J 1 BޝDEHI,HDE 1HIHIDELSAVE-N}GIVE FILE,START,END(,INIT,RUN)O X0 1`BDEPHI V` X0H 1 L O}ǭ0 0 1L0`PLEASE TYPE 1 LETTER,0`hhL <0 1L0LA1 ,;ɛ7,"ɛ:ݦ1ݥP}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{Q}?NAME TOO LONG B VL ` L1I H1EӝDL1DEI|mDiE` V0`8d/8 i:"2!22 1R} L ERROR- 128ɛ+,' 20*.. өw2 1``2TOO MANY DIGITSINVALIDS} HEXADECIMAL PARAMETER800 0 8 00`,0'D800H,ɛh`2L1NEED D1 THRU D4uT}~Do G c v D w D` ^W   sWLE<  )/)&   i05 6 ,WLE`<  V} PW,fL?E )M=tɄ̰ sW ,W =WмW2 )W}m)5 i5 6P i Jmi XʈLW X ) X}X}}Y}~Z}C# "҈,6G9G =G, Ht =G`HHH`*!#T*"" !"[}[d J+)?GҬ+,GG#!J}###")?*#`"`"L=G\} ( 0yrlf`[UQLHD@<952/-*(%#!VXY[]ba]`_^]][@QVXY[]ba]`_^]][YXVSUQ\]_]`_]\QVXY[]ba]]}`_^]][YXVSUQؖL͏@VTS@TRQ@RQOMLL@QPOOMLJIHLORVTRLLJLPSXVTSRQOMLL@QPNMLSTY]^} }_} IM p p`HEO%N ԍЩp ԩ؍h@I S SHH$EO%N@ Ќ ԩ EO%Nhh@H`} P ԩh@7      a}:    BJ RZ hix b}  =]//..-+*(''&'&(*,876543210/.,+*)(m.m}8c}* .@ $(,048<@DHLPTX\`HP89:;<=>?X`ABCDFHJNno@}d}` #3 [S҅ҍЩ>/1oI \ O >O L( e}2Rr h01 hI ;M G IOЭJaJJc hILiLaȌaLLcȌcLL [M\3eg hI hIf} Z D U X _ S Z T hILL~fh` L [MSr N NЭJa)ȌaSrLLWn#`g}aJ5 S T hIL M/ OrDrrr rpԩP6R ?RIRSR'|]R fRh} @S|oRRɀR R _O%L|&T||#SLNɀޢ|i}ǩxf<^|&h/`e`eefDj}Ǡ6p5 )i| ҅ߊJIi%ff<^|`hhL-M0>BJ00 PYaagpxn}000 !1 000:D ???ILQQY[cci_AFINQVU3ethandicap 0ress34!245setrq}iggerbutton (86t||}}~~||0H$$BV @Afghij?K\A .39a#,r} BKTjs}7\          !"#pppB@|pD|ArBrs}jD| ":-:Ub~# )i(j| )i8B|` @OPpQqS(q7Sq`nr(*((v((t}%"")>g"" "??!!a!3!!DHH̄HH2>ks<<<$w<<<~}C$ 2:2>&(L\xxH@+@@HL|xH<&q1+} FZp; <;LY:9ʍ`ɀ)8ɰ3`Ɂ&)ԡiɷ8`` }) :9`- '%Q Y`&Q Y`) `Q})iJ%K|&L|`'&L|%K|-h,"#8 G Z hIL0Z )i| ҅8{(8}G(@8 01Z`)ЭJa`aMahhLLM-0xy _ O`> _}ɀ  w[y8鏍`ةѭ7 Oɀ w[xΩL [ߩ @[ }Z` x_L\W^7= ) )i*^tqu`it )i uLc=:>JJpܰ+ip&?JJJ8q}ǐ ^ ^uLcu  uLc cL^JJ|8p ^nJJJ8q ^mnm ^  m08t}18uLc|tum [LcZ ZW`W[ [^.^ Ҭ))`ptL!\qu^}^L]p ^ ^^L]\ ] ^nxp ^mnnRJmnm ] ^nyq ^mnnSJmn8m0!}^x8t18uL!\ ^ ک^08ty8uL!\0xp8001%(xxp2߽x8}0RxL^%(xpxxܭ08xRx1yq8104i(%(yyqܽy8}1SyL^8(%(yqyy٭18ySyRS xt1u`yu0t`Ii`0p ^`1q }^` ^n ^mn`3508t*18u) ) )`IJJn0n ^-}CJJJn1n ^m-- ^-ðJJpJJJq`x OЍ`cW( )")}| ұ% & ɀ`=<;Z`=p==)/Iéэ;<`0L ? L  @}?> )0@ 8 ЍЎ``΍; < ) L7b as?)O>>>}0)/9???8*#???Ȑ  >! = ЎЩ`?r a }GtbMbʈ a bgbʈ a bZbʈ>iiiii`)Ib`>2Bɨ>)7 }a%)(%8 :9`ح?8JJJȢ|@i(>8.JJi`hh"#}y,L0Z ?w``   P0 p @p P` }}@pt =WWqu =WWL3anta#ruz #!v9ourcr}iticism comments and!>suggestionsarealsowelcomeo3uggesteddona}tionadults :children purchasersoftheBboriginal$og$azeupgrade }}LD w D` ^W   sWLE<  )/)&   i05 6 ,WLE`<   AA !')0189@AHIOPROGRAM TO MAKE DOG DAZEDELUXE CASS }ETTE TAPE&& Please rewind casette tape and set up to record.((((Then wait for file to be read"" from } disk (a few minutes).6-@$I6-$A(( ;,2//@MQ@UW]yD:CASSVERS.OBJ<(-@} }@$)@$( F.-@(1)@5Q*67,.>:,. n@U"("(Casette recorder ready?( }!Please press Π,##@%)@-DA(C:6 @HU@@YE(( TAPE IS DONEG,(,(!If }G you want to make another tape,H( type CONTJ&O AD:CASSTAPE.BASM TO MAKE DOG DAZEDELUXE CASS Z$OW<ө  `2  P" 4   #   L 6  7 ` ^   sL< } ).)%   i05 6 ,L<   L" s , =м2 )}m)5 i5 6P i Jmi ʈL  ) }}}}~}# "҈,69 =, t =``*!#T*"" !"}d J+)?Ҭ+,#!J}###")?*#`"`"L=} ( 0yrlf`[UQLHD@<952/-*(%#!VXY[]ba]`_^]][@QVXY[]ba]`_^]][YXVSUQ\]_]`_]\QVXY[]ba]}`_^]][YXVSUQؖL͏@VTS@TRQ@RQOMLL@QPOOMLJIHLORVTRLLJLPSXVTSRQOMLL@QPNMLSTY]} }} IM p p`HEO%N ԍЩ0 ԩ؍h@   HH$EO%N@ Ќ ԩ EO%Nhh@H}  ԩh@7      }:    BJ RZ hix }  =]//..-+*(''&'&(*,876543210/.,+*)(m.m}8}* .@ $(,048<@DHLPTX\`HP89:;<=>?X`ABCDFHJNno@}}` #3 [҅ҍЩ>/1o  \  > ( }22 (01 h ;  IЭJaJJc h Li aȌaL cȌcL [ \3eg h h }G         h L ~fh` [ 2  ЭJa)Ȍa2L W.#`}aJ5   h L / 2D222 20ԩ6 ?IS'<] f}@ @/`e`eefD}Ǡ6p5 )i< ҅ߊJIi%ff<^<`hhL- ?34567}KЍ `_` ,1" `<i(i@`Xy Ѝ`0  Ȑ }E1  ؐ `0  Ȑ 1  ؐ `S] cfk000 00}0" 00 &*.02006:>0>BJ00 PYaagpx}000 !1 000:D ???ILQQY[cci_AFINQVU3ethandicap 0ress34!245setr}iggerbutton (86t<>%"")>g"" "??!!a!3!!DHH̄HH2>ks<<<$w<<<}$ 2:2>&(L\xxH@+@@HL|xH<&q1+} Fp; <;L:9ʍ`ɀ)8ɰ3`Ɂ&)ԡiɷ8`` }) :9`- '%Q `&Q `) `Q})iJ%K<&L<`'&L<%K<-h,"#8   h L0 )i< ҅8;(8}G(@8 01Z`)ЭJa`aMahhL M-0xy  `> }ɀ  wy8鏍`ةѭ7 ɀ wxΩL ߩ @ }` xLW^7= ) )i*^tqu`it )i uL#=:>JJpܰ+ip&?JJJ8q}ǐ  uL#u  uL# #LJJ|8p nJJJ8q mnm   m08t}18uL#|tum [L#Z ZW`W[ [^.^ Ҭ))`ptL!qu^}^Lp  ^L]  nxp mnnRJmnm  nyq mnnSJmn8m0!}^x8t18uL!  ک^08ty8uL!0xp8001%(xxp2߽x8}0RxL%(xpxxܭ08xRx1yq8104i(%(yyqܽy8}1SyL8(%(yqyy٭18ySyRS xt1u`yu0t`Ii`0p `1q }` n mn`3508t*18u) ) )`IJJn0n -}CJJJn1n m-- -ðJJpJJJq`x Ѝ`cW( )")}G< ұ% & @`=<;Z`=p==)/Iéэ;<`0L ? L  @}?> )0@ 8 ЍЎ``΍; < ) L7" !3?)O>>>}0)/9???8*#???Ȑ  >! = ЎЩ`?2 ! }t"M"ʈ ! "g"ʈ ! "Z"ʈ>iiiii`)I"`>2Bɨ>)7 }!%)(%8 :9`ح?8JJJȢ<@i(>8.JJi`hh"#}Ǎ,L0 ?w``   P0 p @p P` }P.fL9 )M=t Ʉ̐`pt =WWqu =WWL<#)}  W` qp8<i i( JIi%oWELh$Q m& & ' &(]O & k& N &E k&@ }&W` & ' & & ) m&V) m&M k&Hʩ* m&L#L&L&Q m& & ) &Q & k& R & k& & Љ }&Ђ' & & ' m&Ы' m& k&ϩ& m&  kL% m& k&8q7P & &+0 k&$ k& &!v m&}z & L&L&uuW([ Z` & k&ҽq1P & &%* k& k& &z m& v &u u} L$Q m&q)A &9 m& & & W`tt ttWZ[L& &" & & &ҩ W` DL&}ǵ)* & & &t WZ2[t & & &' &D) &Щ m&_ k&Z k&UW` &Њ &= k&}8 k&3 W`) & & k&L% & & k&L%Ll%Lb%(eo'`(n8n }EJ W )& Z`  W`qu [`pt [`}}}}~}pppB@(!A (}}C$/'$!:%$%,58%Q^by'ray#hangswithmusic}by0hil9oungI\c 'ray#hang}}<&/2/.%/247/0,!9%235sejoystickportsand4rytocl}aimmorefirehydrantsthanyouropponent#laimtheflashinghydrantbyrunningthroughitorbyshootingyourboneatit})fyoushootandmiss youmustretrieveyourbonebeforeyoucanuseitagain$ontgethitbythecar!viodthehydra}Sntsalreadyclaimedbyyouropponent4rytofillthescoreboardwithyourcolor}}"0resstostartplayingwx}}pppB@,69A ,b4hissoftwareiscopyrighte}dbythe author4heauthorgrantsyoupermis siontomakeunlimitedcopiesforback upsandfordistributiontoanyo}ne ,freeofcharge9oumaynotsellor0TexchangethesoftwareormakeuseofXthetitle music etc4heauthordoe }'snotreceiveanycompensationforhis+efforts otherthanvoluntarycontribu tionsfromusers)fyouuseandenjoyth }#isprogram pleasemakeadonationWa'ray#hang} } 0/"ox*>3anta#ruz #!v9ourcr }iticism comments and!>suggestionsarealsowelcomeo3uggesteddona }tionadults :children purchasersoftheBboriginal$og$azeupgrade }}ө  `2  P" 4   #   L 6  7 ` ^   sL< >90 CONSTANT >= ( ASSEMBLE TEST FOR GREATER OR EQUAL ZERO )T ( >= IS ONLY CORRECT AFTER SUB, OR CMP, ) CR --> C( USE OF ASSEMBLER2 DWFR-79APR28 ) : C;d ( END OF CODE DEFINITION *) ; CURRENT @ CONTEXT ! ?EXEC ?CSP SMUDGE ; IMMEDIATE FORTH DEFINITIONS@ F: CODEL s( CREATE WORD AT ASSEMBLY CODE LEVEL *)  )?EXEC CREATE [COMPILE] ASSEMBLERF ]ASSEMBLER MEM !CSP ;c lIMMEDIATE DECIMAL ;S '( TILL figFORTH IS UP )@ Q' ASSEMBLER CFAU ' ;CODE 8 + ! ( OVER-WRITE SMUDGE ) FORTH DEFINITIONS DECIMAL@ cLATEST 12 +ORIGIN ! ( TOP NFA ) HERE !28 +ORIGIN ! ( FENCE )@ DHEREH ^30 +ORIGIN ! ( DP ) ' ASSEMBLER 6 + 232 +ORIGIN ! ( VOC-LINK )@ SHERE FENCE ! ;S )( LPWORDS FOR JOYSTICK CONTROLLER JACKS )@ tCODE STROBE BOT LDA, D301 STA, 80 # ORA, D301 STA,  POP JMP, C; : PRT D303 C@ FB! D SWAP OVER DABS <# #S SIGN #>  LYPE ;@ X: LISTLP DUP SCR ! CRLP` 0E PRT ( [ SCREEN ] LYPE ) .LP X0F PRT 10 0 DO CRLP I DUP .LP LINE C/L -TRAILING LYPE LOOP CRLP ; : SHOWLP 1+ SWAPa xDO I LISTLP 3 0 DO CRLP LOOP LOOP ;@ B;S HEX VOCABULARY EDITOR IMMEDIATE@ \1A LOAD 1B LOAD ( GRAPHICS ) : EDIT SCR ! [COMPILE] EDITOR ;@ ]EDITOR DEFINITIONS 0 VARIABLEe lTOPFLAG C`: ULL DUP TOPFLAG ! 0 GR. 2203 LMARGN ! 3 0 POS. ( 32 CHAR ) SCR @ BLOCK + 200 TYPE ( PRINT ) $CR ." DOIT" CR 0A 2B2 ! ;@ L: UL 0 ULL ;Q h( SHOW UPPER 16 LINES ) ): LL 200 ULL ; ( SHOW LOWER 16 LINES )@ W: DOIT 10 0 DO -1 2B2 ! 3 I POS. ( POINT CURSOR )@ `SCR @ BLOCK I 20 * + TOPFLAG @ + ICBAL ! 20 ICBLL ! GET DROP@ ^LOOP UPDATE 0 GR. TOPFLAG @ 0=b wIF UL ELSE LL ENDIF ; : FLUSH 2602 LMARGN !" 9[COMPILE] FORTH FLUSH ;@ C--> ( TEXT, LINE, WHERE USED IN! 'EDITOR+ 77/7/80-SRC )@ XFORTH DEFINITIONS HEX @ F: TEXTX y( ACCEPT FOLLOWING TEXT TO PAD *)  `HERE C/L 1+ BLANKS WORD HERE PAD C/L 1+ CMOVE ; : #OFLINES B/BUF B/SCR * C/L / ; : LINE N( RELATIVE TO SCR, LEAVE ADDRESS OF LINE *) DUP #OFLINESZ MINUS AND IF ." NOT ON SCREEN" ABORT ENDIF ( KEEP ON THIS SCREEN )& =SCR @ (LINE) DROP ; : WHERE ?( PRINT SCREEN # AND IMAGE OF ERROR *)D oDUP B/SCR / DUP SCR ! ." SCR # " .  9SWAP C/L /MOD C/L * ROT BLOCK + CR C/L TYPED CR HERE C@ - SPACES 5E EMIT [COMPILE] EDITOR QUIT ;A D--> ( LINE EDITING COMMANDS )% 7EDITOR DEFINITIONS@ {: -MOVE ( MOVE IN BLOCK BUFFER ADDR FROM-2, LINE TO-1 *)  LINE C/L CMOVE UPDATE ;@ D: HLZ x( HOLD NUMBERED LINE AT PAD *)  .LINE PAD 1+ C/L DUP PAD C! CMOVE ;@ D: BLY v( ERASE LINE-1 WITH BLANKS *) LINE C/L BLANKS UPDATE ;@ D: SLX w( SPREAD MAKING LINE # BLANK *) C DUP 1 - ( LIMIT ) ?#OFLINES 2 - ( FIRST TO MOVE )F qDO I LINE I 1+ -MOVE -1 +LOOP BL ; 6: DL 3( DELETE LINE-1, BUT HOLD IN PAD *)C \DUP HL #OFLINES 1 -c kDUP ROT  +DO I 1+ LINE I -MOVE LOOP BL ;@ i: CL ( COPY LINE-2 OF SCREEN-1 TO PAD ) SCR @ >R SCR ! HL R> SCR ! ;@ C--> ( LINE EDITING COMMANDS3 DWFR-790105 ) : RLa ( REPLACE ON LINE-1, FROM PAD ) PAD 1+ SWAP -MOVE ; : $ ;( PUT FOLLOWING TEXT ON LINE-1 )F T1 TEXT RL ; @ C: %S z( INSERT TEXT FOLLOWING AFTER LINE-1 *)  1 TEXT 1+ DUP SL RL ; : IL <( INSERT PAD AFTER LINE-1 ) 1+ DUP SL RL ; /: TL ( TYPE LINE BY #-1, SAVE ALSO IN PAD *)D PDUP . ." $ "d tDUP C/L * R# !{ HL  PAD 1+ C/L TYPE CR ;@ C--> ( SCREEN EDITING COMMANDS ) 1FORTH DEFINITIONS 1: COPY ( DUPLICATE SCREEN-2, ONTO SCREEN-1 *)B [SWAP BLOCK SWAP BLOCK 400b wCMOVE UPDATE FLUSH ; @ [: LIST 2602 LMARGN ! LIST ; @ _: SHOW 1+ SWAP DO I LIST LOOP ; @ `: L SCR @ LIST ( RE-LIST SCR ) ; @ e: N SCR @ 1+ LIST ; ( LIST NEXT SCR) C@ RBASE @ DECIMALd ' EDITOR 6 + 32 +ORIGIN ! H ( VOC-LINK ) BASE !% ';S &( OS & HDW CONSTANTS ) : CN CONSTANT ;@ [D200 CN F1AUD D201 CN C1AUD D202 CN F2AUD D203 CN C2AUD@ [D204 CN F3AUD D205 CN C3AUD D206 CN F4AUD D207 CN C4AUD@ \D20F CN SKCTL D208 CN AUDCTL  230 CN DLST 22F CN DMCTB \14 CN RTCLK 2F0 CN CRSINH  2F4 CN CHBAS 2C4 CN COL0A Z2C5 CN COL1 2C6 CN COL2  2C7 CN COL3 2C8 CN COL4@ XD01F CN CONSOL 2FC CN CH  2BF CN BOTSC 52 CN LMARGN@ M2FB CN ATACHR  ;S ( CIO CALL ROUTINES )@ _340 VARIABLE IOC 0 VARIABLE IOB /: IOCB 7 MIN 0 MAX 10 * DUP IOB ! 340 + IOC ! ;@ b: .IOC @ IOC @ + ; &1 .IOC ICDNO 2 .IOC ICCOM 3 .IOC ICSTA@ Y4 .IOC ICBAL 6 .IOC ICPTL &8 .IOC ICBLL A .IOC I1CAX B .IOC I2CAX@ |CODE CIO TXA, PHA, IOB LDX, E456 JSR, PLA, TAX, NEXT JMP, C; &CODE Get XSAVE STX, IOB LDX, E456 JSR,@ eXSAVE LDX, PHA, 0 # LDA, PUSH JMP, C; : GET 7 ICCOM C! Get ;@ Y: CLOSE 0C ICCOM C! CIO ; 1: OPEN 3 ICCOM C! ICBAL ! I1CAX C! I2CAX C! CIO ;@ pCODE ACIO XSAVE STX, BOT LDA, IOB LDX, E456 JSR, XSAVE LDX, POP JMP, C;@ C--> C( EMPTY BLOCK )! #;S Z ( DISK RPM CHECKER 1 OF 1 ) IFA 1 LPCNT +! THEN LYP1 ELSE DROP DROP THEN 20 SP@ 1 LYP1 DROP ; : CRLP LPCR LPCNT @ 3D > IF FLPCR LPCR LPCR LPCR 0 LPCNT ! THEN ;` : FFLP CRLP BEGIN LPCNT @ WHILE CRLP REPEAT ; <: SHRINK 1B LPEMIT 14 LPEMITA ]CRLP ; : EXPAND 1B LPEMIT 13a nLPEMIT CRLP ; C: .CLP 0 <# # # #> LYPE ; 8: .LP 0 <# #S #> LYPE ;@ : LINELP DUP .CLP SCR @ (LINE) -TRAILING 1 MAX LYPE CRLP ; \4353 VARIABLE SCR# 2052 , 2023 , : LISTLP DUP SCR ! SCR# 6 LYPE .LP LPCR B/SCR B/BUF * C/L /` x0 DO I LINELP LOOP ; --> ( MORE LINE PRINTER WORDS! -1/27/81 SRC: ;)@ |: LPSPC 0 DO 20 LPEMIT LOOP ; : SHOWLP 1+ SWAP C/L 20 = IF DO CRLP" 3SCR# 6 LYPE I .LPB [1F LPSPC SCR# 6 LYPE I 1+b j.LP CRLP  I 20 0 DO DUP SCR ! I .CLP" 5I SCR @ (LINE) LYPEB I5 LPSPCb |DUP 1+ SCR ! I LINELP LOOP  DROP 2 +LOOP" .ELSE DO CRLP2 I LISTLP LOOP ENDIF FFLP ; ( This lists two screens on the printer, side by side) :: LPINDEX 1+ SWAP DO I .LP@ 0 I (LINE) -TRAILING LYPE LPCR LOOP ; ( prints first line of =each screen in range specified ) : PON 30 321 C! ; ( PR. ON )A : POFF 0 321 C! ; ( PR. OFF ) ( using this simplified PON,  you may lose control of the# >system if you don't use PONC _XXX POFF. You may still losec it and have to use the SYSTEM RESET to stop the printer's# DUP 0= IF DROP 0 ELSE 0< 0= THEN ; 0 VARIABLE INDENT 106 CN FCONS 111 CN ICONS 0 VARIABLE TLFLG 0 VARIABLE KERKNT 100 CN MAXLIN : NXSPACE >R 1+ >R 0 R> R> DO _SPACBYT I C@ = IF DROP I LEAVE THEN LOOP ; : NXNSPACE >R 1+ >R 0 R> R> DO SPACBYT I C@ = 0= IF y DROP I LEAVE THEN LOOP ; : GTNXWD DUP IF + OVER SWAP NXSPACE ELSE DROP THEN DUP IF OVER SWAP NXNSPACE DUP IF OVER OVER IF INDENT @ 0 DO 0 0 TORLY LOOP THEyN ; : PRWORD DUP 1+ KERKNT @ + MAXLIN > IF TORLCR THEN KERKNT @ 0= IF DOIND THEN OVER OVER TORLY ; : 1SET 1 SWAP ! ; --> : ( 51 WORD 6 ALLOT ;@ : IA IARRAY ; IA L1G 10 , ( :) ( CODE) ( ,CODE) ( SUBROUTINE) 6 ( IA) ( IARRAY) ( LABEL) ( TBL) IA L2G 2 , ( ;) ( C;)A zIA L3G 2 , ( NXT,) ( NEXT,) IA L4G 6 , ( IF) ( DO) ( IF,) 8 ( CASE) ( BEGIN) ( BEGIN,) IA L5G 3 , ( ELSE,) ( ELSE)B ( WHILE) IA L6G 16 , ( THEN,) ( THEN) ( END,) ( END) ( SOB,) -( BACK) ( UNTIL) ( AGAIN) ( REPEAT) ( ENDIF,)B |( UNTIL,) ( LOOP) ( +LOOP) ( ENDIF) IA L7G 7 , ( CONSTANT) ( IR) ( VARIABLE) <( CN) ( ARRAY) ( INTEGER) ( ORCON)C sIA L8G 1 , ( () IA L9G 3 , ( LD,) ( ST,) ( LOAD) IA LAG 1 , ( ;CODE)@ o: CMPWORD DUP >R C@ OVER = R> SWAP IF >R OVER . R> SWAP OVER DUP C@ DUP 4 > IF DROP 4 THEN 0B kDO I OVER + 1+ C@ >R OVER R> SWAP I + C@  = 0= IF 0 LEAVE THEN LOOPB l0= IF DROP DROP 0 THEN ELSE 0 THEN ; --> 0: GSCAN DUP @ SWAP 2+ SWAP 0 DO CMPWORD IF LEAVEB n0 ELSE 6 + THEN LOOP IF 0 ELSE DROP 1 THEN ; !: NEWCR KERKNT @ IF TORLCR THEN ;@ d: DUPBC OVER >R >R OVER R> SWAP R> ; C-: FINDCHAR SWAP >R SWAP 1+ R> DO DUP I C@ =B iIF DROP I LEAVE 0 THEN LOOP IF 0 THEN ; : PRNEWL PRWORD TORLCR ;@ u: >= OVER OVER = IF DROP DROP 1 ELSE > THEN ; --> -: EL1G NEWCR INDENT 0SET PRWORD GTNXWD PRNEWLB O10 INDENT ! ; !: EL2G NEWCR PRNEWL INDENT 0SET ;@ U: EL3G NEWCR PRNEWL ; !: EL4G NEWCR PRNEWL 2 INDENT +! ;@ n: EL5G NEWCR -2 INDENT +! PRNEWL 2 INDENT +! ; ": EL6G NEWCR -2 INDENT +! PRNEWL ;@ i: EL7G PRWORD GTNXWD PRNEWL INDENT 0SET ; : EL8G DUPBC 51 FINDCHAR DUPB wIF SWAP DROP OVER - 1+ PRNEWL ELSE DROP PRWORD THEN ; : EL9G PRNEWL ;@ a: ELAG NEWCR 10 INDENT ! PRNEWL ; 2: ASSWRD DUP 4 >= IF OVER OVER + 1- C@ COMCHR = IFC nOVER DUP C@ ICONS = SWAP 1+ C@ FCONS = AND , IF 2 ELSE 1 THEN ELSE 0 THEN ELSE 0 THEN ;@ C--> 6: PRCWRD L1G GSCAN IF EL1G ELSE L2G GSCAN IF EL2G ELSEB yL3G GSCAN IF EL3G ELSE L4G GSCAN IF EL4G ELSE L5G GSCAN 7 IF EL5G ELSE L6G GSCAN IF EL6G ELSE L7G GSCAN IF EL7GB tELSE L8G GSCAN IF EL8G ELSE L9G GSCAN IF EL9G ELSE - LAG GSCAN IF ELAG ELSE ASSWRD IF ASSWRD 2 =B fIF EL4G ELSE PRNEWL THEN ELSE PRWORD : THEN THEN THEN THEN THEN THEN THEN THEN THEN THEN THEN ;@ j: FORLST TORLCR DUP TLFLG @ IF LISTLP ELSE C) TORLCR LIST THEN TORLCR TORLCR DUP BLK !B BLOCK DUP 1777 + SWAP KERKNT 0SET INDENT 0SET 0 BEGIN GTNXWD 9 DUP IF PRCWRD THEN DUP 0= END DROP DROP DROP BLK 0SET ;@ x: ASTER TORLCR 40 0 DO 52 SP@ 1 TORLY DROP LOOP TORLCR ; 5: FORSHW 1+ OVER DO ASTER I FORLST TORLCR LOOP DROP ;@ FORTH DEFINITIONS : FLST FORMY TLFLG 0SET FORLST ; : FLSTLP FORMrY TLFLG 1SET FORLST FFLP ; : FSHW FORMY TLFLG 0SET FORSHW ; : FSHWLP FORMY TLFLG 1SET FORSHW FFLP ; BASE ! ;S ( EMPTY BLOCK )! #;S ( RS232 SUPPORT )@ aCODE SIO XSAVE STX, BOT LDA, E459g JSR, ( SIOV) XSAVE LDX, " BOT STA, BOT 1+ STY, NEXT JMP, C;@ `: SERR DUP 0< IF 0 100 U/ BASE @h DECIMAL ." SIO ERROR " . BASE ! QUIT ELSE DROP THEN ;@ ]CODE DORL XSAVE STX, 506 JSR,  HERE 8 + JSR, XSAVE LDX, NEXT' 8JMP, 0C ) JMP, C;@ `: GETR: HERE 2E7 ! ( SET MEMLO )g zFLUSH EMPTY-BUFFERS  150 300 ! ( DDEVIC,DUNIT)A a403F 302 ! ( ? CMD,EXPECT DATA)g h5l 306 C! ( TIMEOUT)  500 304 ! ( BUFFER ADDR)A W0C 308 ! ( LENGTH ) C 0 30A ! ( AUXES )' <0 SIO SERR ( ERRORS?)A a500 300 0C CMOVE 0 SIO SERR DORL  ( RUN RELOCATOR ) 2E7 @ HERE -A YALLOT HERE FENCE ! ; --> ( RS232 )@ T: R1: " R1: " DROP ; !: R1OPEN 0 8 R1: OPEN ICSTA CH? ;@ a: RYPE -DUP IF 1 IOCB 0B ICCOM C!h {ICBLL ! ICBAL ! CIO 20 ICCOM C! 0 I1CAX ! CIO ELSE( 3DROP THEN ;@ \: CRR 0A9B SP@ 2 RYPE DROP ;f : REMIT SP@ 1 RYPE DROP ; : SET9600 1 IOCB 0E I1CAX ! 24( RYPE CRR 10 0 DO I 0 <# # # #> RYPE I LINERh rCRR LOOP ;  ;S  ( WRITE BOOTABLE OBJECT 1 OF 2 )@ \BASE @ FORTH DEFINITIONS HEX SAVENFAs ( TOP NFA ) $HERE( ?1C +ORIGIN ! ( FENCE )` dHEREh |1E +ORIGIN ! ( DP ) AHERE DUP FENCE ! 0 +ORIGIN - 80 /F W1+ CONSTANT #SECT` CODE CALLDK XSAVE STX, E453 JSR, TYA, PHA, ( STATUS )" 9XSAVE LDX, PUSH JMP, C; : DKIO 301 ! ( CMD, DRIVE # )( 930A ! ( SECT. # )B [304 ! ( RAM BUFFER ADDR )h {CALLDK ( JSR DKHND)  DUP 0< IF ." ERROR " 0FF AND( ;BASE @ SWAP DECIMALB \. BASE ! QUIT ENDIF DROP ; : WTSEC 5701 DKIO ;& 9: RDSEC 5201 DKIO ;@ `: FORMAT ." FORMAT DRIVE " DUP . " ." -ARE YOU SURE?" 0 PAD ! PAD 1( `EXPECT PAD C@ 59 ( Y) = IF 2100 OR PAD 0 ROT DKIO ELSEh wDROP THEN ; --> C ( WRITE BOOTABLE OBJECT 2 OF 2 )A Z0 VARIABLE BOOT ( ->CODE)f s: WTOBJ FLUSH ! ." INSERT NEW DISK, TYPE Y" CR 0' 8PAD ! ( DEFAULT )A aPAD 3 EXPECT PAD C@ 59 = IF BOOTg @ 1 WTSEC #SECT 0 DO I ! 80 * +ORIGIN I 2 + WTSEC I 2 + .' aLOOP ." DONE" CR THEN ; ( FOLLOWING IS BOOT SECTOR CODE )f HERE BOOT ! ( PT TO US ) "ASSEMBLER 1FF , 480 , E4C0 , #SECT' `# LDA, 0= IF, 0 +ORIGIN , 1 , ENDIF, N STA, 52 # LDA, 302g STA, 48C LDA, 30A STA, " 48D LDA, 30B STA, ( FIRST SECTOR)' [1 # LDA, ( DRV) 301 STA, 48A LDA, 304 STA, 48B LDA,g y305 STA, ( ORIGIN) BEGIN, 30A INC, 0= IF, 30B INC,' `ENDIF, E453 JSR, 303 LDA, .A ASL, CS IF, RTS, ( FRETURN )g ENDIF, 304 LDA, 80 # EOR, 304 STA, 0< NOT IF, 305 INC,' :ENDIF, ( BUMP PTR.)A bN DEC, 0= UNTIL, 48A LDA, 0A STA,g |48B LDA, 0B STA, CLC, RTS, FORTH BASE ! ." n FORMAT" CR ." to Format Disk Drive n" CR ." WTOBJ to write bootable version of current object" CR ;S ( EMPTY BLOCK )! #;S ( DECUS-FORTH ADDITIONS )@ \: 1+! 1 SWAP +! ; : 1- 1 - ; : 0SET 0 SWAP ! ; : 2* DUP + ;@ [: HD DUP 0A < IF 30 ELSE 37a oENDIF + EMIT ; C&: CHH DUP 0F0 AND 10 / HD 0F AND HD ;@ N: CH? C@ CHH ; -: HH DUP 0FF00 AND 100 / 0FF AND CHH CHH ;@ K: H? @ HH ; : BDUMP 1+ SWAP DO I HH ." : " IB \8 0 DO DUP I + CH? 20 EMITb |LOOP DROP CR 8 +LOOP ; : TBL ;@ o: ALLOC DUP + ALLOT ; ( FOR RAM BASED SYSTEMS,) : ARRAY ;@ B;S ( DISPLAY LIST STUFF )@ `0 VARIABLE 3BYT 0 VARIABLE DLADR : DINST DLADR @ C@ DUP 0F AND IF@ dDUP 0F AND 1 = IF 40 AND IF ." JVB " &ELSE ." JMP " ENDIF DLADR 1+! DLADR @@ j@ DUP DLADR ! HH 3BYT 0SET ELSE DUP 0F AND 8 OVER < IF ." MAP" ELSE ." CHR"@ aENDIF 7 AND . DUP 10 AND IF ." H" !THEN DUP 20 AND IF ." V" THEN DUP@ ]80 AND IF ." I" ENDIF DUP 0B0 AND IF DUP 40 AND IF ." ," ENDIF@ dENDIF 40 AND IF 3 DLADR @ 1+ H? ELSE !1 ENDIF 3BYT ! ENDIF ELSE ." BLK"@ ]DUP 80 AND IF ." I," ENDIF 70 AND 10 / . 1 3BYT ! ENDIF CR@ T3BYT @ DLADR +! ; ;S !( DEBUGGER AIDS -- DUMP , CDUMP )D KDECIMAL : ?EXIT ?TERMINALI YIF LEAVE ENDIF ; : U.R 0 SWAP D.R ;@ a: LDMP DUP 8 + SWAP DO I C@ 4 .R LOOP ;@ d: DUMP OVER + SWAP DO CR I 5 U.R I C LDMP ?EXIT 8 +LOOP CR ;@ Y: CDMP DUP 16 + SWAP DO  I C@ EMIT LOOP ;A DHEX %: CDUMP OVER + SWAP DO CR I 5 U.R IF bSPACE 1 2FE C! CDMP 0 2FE C!  ?EXIT 10 +LOOP CR ;@ B;S ( CONSTANT INFO DISPLAY )@ _TBL XTRN 40 C, 0 C, 20 C, 60 C, CODE ASCINT BOT LDA,! X.A ROL, .A ROL, .A ROL, .A ROL, 03 # AND, TAY, BOT LDA,a w9F # AND, XTRN ,Y ORA,  BOT STA, NEXT JMP, C;@ ]: SYPE ( addr, straddr, cnt )b uOVER + SWAP DO I C@  ASCINT OVER C! 1+ LOOP ;` : (") R> DUP COUNT + >R COUNT ; <: " COMPILE (") 22 WORD HEREB ZC@ 1+ ALLOT ; IMMEDIATE HERE DUP 3F + FFC0 AND -SWAP - ALLOT` l28 ARRAY BUF )TBL DLIST@ [5070 , 42 C, BUF , 1 C, 0 , HERE 2 - CN DLPTCH@ C--> ( CONSTANT INFO DISPLAY cont. )` x: INIT DLST @ DUP C@ 1 -  IF DUP 3 + DLPTCH !" 91 OVER C! DLIST SWAP 1+B T! ELSE DROP THEN ; : DSPLY BUF " TOS=" SYPE >R! rASSEMBLER UP FORTH @ 6 + @ SP@ 10 + MIN SP@ BEGIN 2+ OVER OVER > WHILE R> OVER @  0 <# # # # # #>! BSYPE 1+ >R REPEAT DROP DROP R> "e f"j vSYPE DROP ; : WCR DSPLY INIT CR ; 4: FIX\ DROP ." " ;@ I: INSTALLb y' WCR CFA ' ABORT 6 + !  ' WCR CFA ' QUIT A + !" =' FIX\ CFA ' \ 40 + ! ;a hINSTALL C` b;S ` ( HIGH-LEVEL DISSASSEMBLER )@ i: TASK ; TASK DOG ' (;CODE)m zCFA CN .;CODE ' ;S CFA CN .;S (' BRANCH- 7CFA CN .BR@ I' 0BRANCHM XCFA CN .0BR` f' (DO)m wCFA CN .DO ' (LOOP) CFA CN .LOOP )' (+LOOP)- :CFA CN .+LOOP@ E' LITM XCFA CN .LITb f0D6Bq yCN .CLIT ' (.") CFA CN .(.") 6' TASK CFA @ CN .:@ I' DOG CFAM Z@ CN .DOES>` i' COMPILEm yCFA CN .COMP " 00 VARIABLE .IP` i' BLK CFAm x@ CN .USR ' .;S CFA @ CN .CON )' .IP CFA- 8@ CN .VARC E60Q XCN RTS,c e40q xCN RTI, ! $--> ( HIGH-LEVEL DISSASSEMBLER )@ U: PRNAME 2+ NFA ID. ; =: STRNG ( cfa--cfa prnt strng) DUP .(.") = IF PRNAME .IP @B yDUP COUNT ROT OVER + 1+ .IP ! TYPE CR R> DROP ENDIF ; 1: LIT? ( cfa--cfa5 prints lit) DUP .LIT = IF PRNAME .IP @ @ . CR 2 .IP +! R> DROP ELSE DUP < .CLIT = IF ." CLIT " DROP .IP @ C@ . CR 1 .IP +! R> DROPB OENDIF ENDIF ; : COMP? DUP .COMP = IF PRNAME" N.IP @ @ PRNAME CR 2 .IP +! R> DROP ENDIF ; : PROMPT ." ok " CR ;@ : ENDEF ( cfa--cfa aborts@end) DUP .;CODE = OVER .;S = OR IF  PRNAME CR PROMPT QUIT ENDIF ;@ : BRNCH ( cfa--cfa prnts dst) DUP .BR = OVER .0BR = OR OVER  .LOOP = OR OVER .+LOOP = OR" bIF PRNAME ." to " .IP @ DUP @ + . CR 2 .IP +! R> DROP ENDIF ;f i--> C( DECOMP DISSASSEMBLER PBL 82)D O3D CN OPTABc 200 CN OPOFF 300 CN MODOFF 2 `: 1OP .IP @ DUP HH ." : " C@ 1 .IP +! DUP CHH SPACE ; ( --op) M: INDX ( off base--addr) + B/BUF /MOD [ OPTAB B/SCR * ] LITERAL + BLOCK + ; J: OPLUK ( op--opind modind #op) DUP + 0 INDX DUP C@ SWAP 1+ C@ 40 /MOD ; [: OPANDP ( #bytes--) DUP -DUP IF .IP @ C@ CHH SPACE 1 - IF .IP @ 1+ C@ CHH ELSE 2 SPACESa zENDIF ELSE 5 SPACES ENDIF _ ." - " -DUP IF 1 - IF .IP @ @ 2 ELSE .IP @ C@ 1 ENDIF .IP +! HH SPACE ELSE 5 SPACES ENDIF ; -: MODP ( modind--) MODOFF INDX 2 TYPE SPACE ;` : OPP ( opind--) OPOFF INDX 3  TYPE ." , " CR ;@ C--> V( DECOMP DISSASSEMBLER PBL 82) : BR? ( mode #op--mode) OVER 10 = IF .IP @ DUP C@ CHHa c."h - " DUP C@ DUP 80 AND IF: FF00 OR ENDIF 1+ + HH .IP +! SPACE ELSE OPANDP ENDIF ;@ `: 1LINE 1OP OPLUK BR? MODP OPP ; E;h: JMPEX ( --f test endef jmps) .IP @ C@ 4C = IF .IP @ 1+ @ DUP ASSEMBLER NEXT = OVER W 1 - = OR OVERw POP = OR  OVER PUSH = OR OVER PUT = OR! USWAP POPTWO FORTH = OR DUP IF ENDIF ELSE 0 ENDIF ; 6: ;CEND .IP @ C@ DUP RTS, = SWAP RTI, = OR JMPEX OR ;` : 1WRD BEGIN 1LINE ;CEND UNTIL  1LINE ; : CSEE 1WRD ;@ s: DIS .IP ! 1WRD ; : NDIS .IP ! 0 DO 1LINE LOOP ; =: ISCODE .IP @ DUP 2 - @ = IFB ]." primitive " CR 1WRD ELSEb |.IP @ CFA @ DUP 2 - @ SWAP  .IP ! .;CODE = IF" 3." ;CODE word" CR9 =ELSEB ^." odd entry point" CR ENDIFb s1WRD ENDIF ; --> ( HIGH-LEVEL DISSASSEMBLER )@ : ISCOL ( -- or ) .IP @ DUP CFA @ .: - IF DUP | CFA @ DUP .DOES> = IF .IP @ @ .IP ! ." DOES> word" CR DROP 1 ELSE SWAP DROP DUP .CON = IF ." CONSTANT : " .IP @ @ HH  CR DROP ELSE DUP .USR = IF" <." USER variable " DROP CRB ELSE .VAR = IF ." VARIABLE : " .IP @ DUP HH @ ." = " HH CR 8 ELSE ISCODE ENDIF ENDIF ENDIF 0 ENDIF ELSE 1 ENDIF ; : NXTW 2 SPACES .IP @ DUP HH" =." : " @ 2 .IP +! 2 SPACESB LLIT? BRNCHb COMP? STRNG ENDEF PRNAME CR ; :: FETCHW [COMPILE] ' .IP !B \ISCOL IF NFA C@ 40 AND IFb ." immediate" CR ENDIF ELSE  PROMPT QUIT ENDIF ;@ Z: DECOMP FETCHW BEGIN NXTWb ?TERMINAL IF PROMPT QUIT ENDIF AGAIN ;@ M: ZZ DECOMP ;Q S;S !iD i@ @oiB $i PiF*4iH H*i:Di WDHd@@x@uBxxPFjtHxHzxHD $H@c@lHBcTHc$PHF*4HHcH0H:DHcDJL@P\rB{T`d'PFjlHptz|D$@@@E PF(5HHJ:<@d`BZD]B`@Z@]@ZB`Z]PZFh`HZH]J3Z`Z]C ( DISK BACKUP USING ONE DRIVE2 XSCREEN #2 ) : BACKUP 1 2D0 CSECTS CRb {." BACKUP COMPLETE!" CR ; ( n1 n2 CSECTS copies sectors" 6n1 to n2 inclusive )@ B;S 6( CLONING WORDS 7/21/80-SRC ) HEX FORTH DEFINITIONS@ |: COPYDISK DR0 4E 0 DO I 0800 + I EDITOR COPY FORTH LOOP ; : CLONE DR0 0 PHYSOFF !" 84E B + 0 DO I 0800 + IB EDITOR COPY FORTH LOOP DR0 ; : 1.2TO1.3 DR0 8 OFFSET ! 4E 0  DO I 0803 + I EDITOR COPY" 2FORTH LOOP DR0 ;@ : 1.3TO1.4 DR0 B PHYSOFF ! 4E 0 DO I 0801 + I COPY LOOP DR0 ; 6: OBJ DR0 0 PHYSOFF !B ZC 0 DO I 0800 + I EDITORb wCOPY FORTH LOOP DR0 ;  CR! E." INSERT SRCE DISK IN DRIVE 2 " CRa ." INSERT DEST DISK IN DRIVE 1" CR! ." TYPE CLONE TO COPY ALL OF IT" CR ." INCLUDING BOOT PROGRAM" CR ." TYPE COPYDISK TO COPY"  CR ." SCREENS 0 TO 4E"" CR ." TYPE OBJ TO COPY JUST" CR ." THE BOOTSTRAP B BLOCKS" CR ." TYPE 1.2TO1.3 TO COPY " ZCR ." OR TYPE 1.3TO1.4 TO COPY" CR ." YOUR OLD DISK SOURCES " CR ." TO THE NEW VERSION "` fCR ;S ( EMPTY BLOCK )! #;S C FEE