' +JJJJ ?\>m0M='+l> /+l   d]@ŵLҦ]]LF L}BBL] X  ` 鷎귭෍ᷩ췩緈JJJJx Lȿ L8ᷭ緍췩 緍i 8 `巬 췌`x (`(8`I`B` ``>J>J>VU)?`8'x0|&HhHh VY)'&Y)xꪽ)' `Hh`V0^*^*>&` aI꽌ɪVɭ&Y&&Y& 꽌ɪ\8`&&꽌ɪɖ'*&%&,E'зЮ꽌ɪФ`+*xS&x'8*3Ixix&& 8  '  & x)*++`FG8`0($ p,&"ųųೳŪŪųųij  !"#$%&'()*+,-./0123456789:;<=>?   1 '" *"( (9"1 ( ,.(0# 2  /#0/#0 *?'#07#00/0/'#07#0:"4<*55/**5/*%5/)1/)1/)1/)'#0/#0*5/*75/**5/*:5//#0/#0'#07#0:::*::'#07#0"):$(%"%:$(%"%$$2%4%$$2%4%$(2()!)E(!8b $!H(+ "@H !D)"E` @ $ C ` DQ &J80^݌Hh ü ü݌ ռ ռ ռA ļD ļ? ļAEDE?HJ>h Լ ռ ռ ռ`HJ>݌h Hh݌`葠葠ȔЖȔЖȠHIHHHHhHH݌hHhHh݌H6 ˆʎõĵL õ ĵµ aµ`` L̦µ_bJLuLz`  ȟ QlXJ̥KlV  ȟ QlV eօ3L e3L &RL &QL d L4 Ne)n `@-eff L f`L . tQLѤ LҦL` OPu d L Ne)noon 8ɍ` ^f\õL ^NR  RΩLҦ)\Z ʽ LHv 3h`0h8` [L NС õ`A@` ŵL^Lõ`  \ 濭0 \  ȟ Q ^\lZl^?cqH şch`fhjõĵ@OAP`u@`@&`QR`E Ls  @DAE@u`8` %@ @A@`@`@A`Mµ ) LЦ`8@AWc@8@-@HAȑ@hHȑ@ȑ@hHȑ@Ȋ@ch8&ȑ@Hȑ@Ah@LHȑ@ȑ@ htphso`hMhL`9V8U897T6S67`INILOASAVRUCHAIDELETLOCUNLOCCLOSREAEXEWRITPOSITIOOPEAPPENRENAMCATALOMONOMOPRINMAXFILEFINBSAVBLOABRUVERIF!pppp p p p p`" t""#x"p0p@p@@@p@!y q q p@  LANGUAGE NOT AVAILABLRANGE ERROWRITE PROTECTEEND OF DATFILE NOT FOUNVOLUME MISMATCI/O ERRODISK FULFILE LOCKESYNTAX ERRONO BUFFERS AVAILABLFILE TYPE MISMATCPROGRAM TOO LARGNOT DIRECT COMMANč$3>L[dmx- ( >  Ϡ-@跻~!Wo*9~~~~ɬƬ~_ j ʪHɪH`Lc (L ܫ㵮赎 ɱ^_ J QL_Ls贩紎 DǴҵԵƴѵӵµȴ 7 ַ :ŵƴѵǴҵȴµ納贍﵎ٵ്ᵭⳍڵL^ѵ-I `  4 ò-յ!  8صٵ紭ﵝ 7L (0+BC  7L HH`LgL{0 HH` õL H hBL BH [ h`Lo õ ڬL B ڬ LʬH hB@ յյ [L (ȴ) ȴ 7L L ( L (ȴL{ƴѵ洩ƴǴҵ 7 ^* B0 HȱBh ӵԵ 8 L8 ݲ` ܫ  / / ED B / / ]ƴS0Jȴ ȴ)  紅D贅E B ƴ  / 0L Ν `HD٤DEEhiHLGh ` ŵBѵ-` ѵB-` ܫI볩쳢8 DH E𳈈췍Ȍ X0 · JLǵBȵC`,յp` 䯩 R-յյ`յ0` K R-յյ`ɵʵӵԵ` 4 K ( ѵҵLBȱBL8` DBHBH : ַ޵BȭߵBhhӵԵ RBܵmڵ޵ȱBݵm۵ߵ` 䯩LR˵̵ֵ׵`êĪLR E( 8` R` ELRŪƪ`췌 յյI뷭鷭귭ⵍ㵍跬ª 뷰` Lf ݵܵߵ޵ ^`8ܵ i B8` 4L ֵȱB׵ ܯ䵍൭嵍 ` DȑB׵Bֵ  ַ յյ`굎뵎쵬 뵎쵌``õĵBCõĵ`µµ`L õBĵCصص Qƴ0"Bƴ 󮜳` 0۰ϬBƴ8`i#`ЗLw!0>ﵭ` m ﳐ 7i볍 8 ЉLw`H h ݲL~ `浍국䵍뵩嵠Jm赍嵊mjnnn浈ۭm浍浭m䵍䵩m嵍`"L ŵ8ŵH ~(` d ֠z#e original. If they are not identical, then Diversi-COPY beeps and gives a 'Compare Error'. Comparison mode works with 1-drive, 2-drives, formatting and mass production. At the end of a mass production session, we recommend that you compare your originaer 'C' will appear in the lower right corner of the screen. To leave comparison mode, hit 'C' again (the letter 'C' will disappear). While in comparison mode, Diversi-COPY does not write duplicates. Instead it compares an already written duplicate to th12 - Verify error / compressed data NOTE: To copy 40-track disks, hit '*' from the main menu (requires 40-track drives). *** Comparing Disks *** Diversi-Copy can compare 2 disks to see if they are identical. To enter comparison mode, hit 'C'. The lettdrive or motor speed error 2 - Write protected 3 - No address mark (D5 AA 96) 4 - Volume mismatch 5 - Wrong track 6 - Bad address data 7 - No data mark (D5 AA AD) 8 - Data checksum error 9 - No DE trailer 10 - No AA trailer 11 - Verify error / wrong byte 64K Apple II+ with an extra 128K card is just a little short of the 200K needed, but will work for almost all originals if a few sectors are unused. *** Error Numbers *** For the technically oriented, here is a list of possible disk errors: 1 - Empty already have a //e with a 64K extended 80-column card, then buy a 128K card from Titan, Legend, Omega, Prometheus or Abacus. The Abacus 128K card is the most versatile for the hobbyist (313 524-2444), but the other companies are larger and better known. A 192K 'Neptune' extended 80-column card may also be used. If you're buying a new computer for mass production, we suggest that you get a //e without an 80-column card. Then buy the 192K 'Neptune' extended 80-column card from Titan (313 662-8542). If you y full disks, however, you'll need to add extra memory to your computer. You need a total of about 200K to copy any disk. Diversi-COPY automatically recognizes the 64K extended 80-column card in the Apple //e, and all 16K and 128K cards in any slot. Thehe keyboard. While Diversi-COPY is writing to drive #2, put a new disk in drive #1, and vice-versa. *** Extra Memory *** You can mass-produce newly formatted disks on any computer, since Diversi-COPY will compress the unused sectors. To handle completela blank disk in drive #1 and hit to write each copy. On a 2-drive system, put blank disks in drives #1 and #2 and hit 'A'. Diversi-COPY will write to drive #1 and #2 alternately until you hit or get a write error. You never have to touch tcan then write multiple copies from memory without re-reading the original. If the original disk does not fit into the available memory, the program displays an error message. Otherwise, you will hear 2 beeps and see a new menu. On a 1-drive system, put on them. This means you cannot boot these disks. Note: a DOS 3.3 formatted disk has 32 extra free sectors. *** Mass Production *** Put your original disk in drive #1 and hit 'M'. Diversi-COPY will read this original disk into memory and hold it. You z#?   òʠ àҠ ԠԠҮà Үʠ®ʠîʠ òà Ӡ Ө̶ ΠР àҠʮàҠԮà Ԯʠ  Ůʠ ԠԮʠŠŮʠҮʠ ŠϠ ϲ ŠɠɮʠɮʲŠ     ";(222):"PRESS ANY KEY TO START AGAIN";:K$:100G r ERROR TRAP#2 |22:"ERROR NUMBER ";(222):"PRESS ANY KEY TO TRY AGAIN";:K$:260 FICTURE ON PAGE 2? (Y/N)";:K$::K$"N"340< 6K$"N"300 @12:958:"ENTER FILE NAME: ":"";F$:(F$)15(F$)0ĺ"ILLEGAL FILE NAME. TRY AGAIN.":I11000:I:320 JD$"BSAVE";F$;",A$4000,L$2000" T: ^ ERROR TRAP#13 h22:"ERROR NUMBER230 380K :12:"SAVE PICTURE ON PAGE 1? (Y/N)";:K$::K$"N"300\ K$"Y"260 12:958:"ENTER FILE NAME:":"";F$:(F$)15(F$)0ĺ"ILLEGAL FILE NAME. TRY AGAIN.":I11000:I:280 "D$"BSAVE";F$;",A$2000,L$2000"+ ,:12:"SAVE PAD ";P2$;",A$4000"6 FLAG1ĺD$;"BLOAD HOUDINI.OBJ"E 36608::P FLAG2 :12:"DO YOU REALLY WANT TO QUIT? (Y/N)";:K$::K$"N"Č36608:210 K$"Y"210 :12:"LOAD NEW PICTURES AND RE-START? (Y/N) ";:K$::K$"Y"100 K$"N" P1$""150/ D$;"BLOAD ";P1$;",A$2000" 12:958:22:"'?' FOR DISK CATALOG ":" TO SKIP":12:"FILE NAME FOR PAGE 2 PICTURE:":"";P2$ P2$"?"ė:D$;"CATALOG":"PRESS ANY KEY TO CONTINUE ":K$:::150 P2$""190 D$;"BLO FFLAG1PD$(4)"Z360Ld:2:10::"HI-RES HOUDINI DRIVER":n12:958:22:"'?' FOR DISK CATALOG":" TO SKIP":12:"FILE NAME FOR PAGE 1 PICTURE : ":"";P1$ xP1$"?"ė:D$"CATALOG":"PRESS ANY KEY TO CONTINUE ":K$:::110H @Q=AHQhQ@`@ $32 i62450& jI14000::768::Iz@x23A@x23XD SH1" A768% F(4);"BLOAD SH2". K768D P(4);"BLOAD CAR"M Q768q R(4);"BLOAD MOIRE,A$2000":768 U(4);"BLOAD INST":768 Z(4);"BLOAD SATURN" _768 d(4);"BLOAD GHOST,A$2000" e768 f(4);"BLOAD MAP" g768 h230,749236,0 D$(4)9D$;"BLOAD DISSOLVE"c10);"TURN DISK OVER & ";:A$:i~D$;"BLOAD HOLE"!768#(4);"BLOAD BUG"%768((4);"BLOAD DRAGON,A$2000"-7682(4);"BLOAD APPLE"3768 <(4);"BLOA    4"MASTER DISKETTE CREATED ON 48K SYSTEM"a"BY W.TOOMEY 23/11/83"w(4:"HGR SCREENS"234,7:8<(4);"CATALOG"F34,0: ŠŠҠ̯Ġ Š - ҠРPPPPPPPPPP $(,048< $(,048"&*.26:>#'+/37;?#'+/37;? $(,048< $(,048"&*.26:>#'+/37;?#'+/37;? $(,048< $(,048"&*.26:>#'+/37;?#'+/37;?̠Ӻ<--><> I,SL֏,RL֏VeI Ve'QI L֏i L֏((((((((((((((((((((((((((((((((PPPPPPPPPPPPPPPPPPPPPPiȱ('iL֏Ve(i'H)h)JfF( i)i(i(͠'i(i'L֏Ve'IL֏Ve'IL֏ ,R,U L֏,S,TL֏ :L֏Ve NVeVe٩iVe NL֏'`Ve'iȑiL֏Ve(iH)h &J i)iȥi(ՠ'i(iL֏Ve;ɬ765432ɀ1 :L֏,T`9 X`LNLΐLXLLLLLLΒLLLIiVe NVeVe NVeVe٩iVe NL֏iVe NVei,W,U,R,P, L֏$ [֔ $ [ $ [  $ [ $ [2 $ [B $ [ $ [V !$ [b ,>DCɕBɈAɾ@ɮ<ɼŠŠҠ̯Ġ Š - ҠРPPPPPPPPPP $(,048< $(,048"&*.26:>#'+/37;?#'+/37;? $(,048< $(,048"&*.26:>#'+/37;?#'+/37;? $(,048< $(,048"&*.26:>#'+/37;?#'+/37;?̠Ӻ<--><> I,SL֏,RL֏VeI Ve'QI L֏i L֏((((((((((((((((((((((((((((((((PPPPPPPPPPPPPPPPPPPPPPiȱ('iL֏Ve(i'H)h)JfF( i)i(i(͠'i(i'L֏Ve'IL֏Ve'IL֏ ,R,U L֏,S,TL֏ :L֏Ve NVeVe٩iVe NL֏'`Ve'iȑiL֏Ve(iH)h &J i)iȥi(ՠ'i(iL֏Ve;ɬ765432ɀ1 :L֏,T 9 X`LNLΐLXLLLLLLΒLLLIiVe NVeVe NVeVe٩iVe NL֏iVe NVei,W,T,S,P, X$ [֔ $ [ $ [  $ [ $ [2 $ [B $ [ $ [V !$ [b ,>DCɕBɈAɾ@ɮ<ɼ`) i )8jjjj)e jjjjjj)i'i'i'ee`'`'`` `i  ` P`Ѧ ` \`L`Lp` ``A$4000"= Z::"NOW INSERT ORIGINAL DISK & HIT RETURN: ";A$k d(4);"BLOAD SLIDE.OBJ"::49234,0:24784l  24784:I"TO USE SLIDE.OBJ ,BLOAD A SCREEN ONTO HGR2"(:"THEN BLOAD SLIDE.OBJ ,HGR ,AND CALL 24784"215:"AS AN EXAMPLE,INSERT A DISK AND TYPE "<"A SCREENS FILENAME: ";A$F(A$)050 P(4);"BLOAD ";A$;" , ΃` \ m` \Ș(м )jjjj) j)jj)`}249,64:4096A"BLOAD SHIFT.OBJ"5}G249,64:4096L96THEN BLOAD SHIFT.OBJ ,TYPE HGR2 AND"7P:"CALL 4096"hZ::"AS AN EXAMPLE,ENTER A FILENAME,INSERT"d:" DISK & HIT RETURN -NAME: ";A$n(4);"BLOAD ";A$;",A$2000"s"NOW INSERT ORIGINAL DISK & HIT RETURN: ";A$x(4);"BLOAD SHIFT.OBJ"I  :6"TO USE SHIFT.OBJ ,BLOAD A SCREEN ONTO"g:"HGR AND POKE 249,64 ( 64 EQUALS THE TOP"m#("BYTES OF THE NEW SCREEN'S ADDRESS"2:" I.E HGR2'S ADDRESS IS AT $4000 AND"<:"THE TOP BYTES ARE $40,WHICH EQUALS 64)"$F::" I`$ 49228,0:49234,0:49236,0:49232,06i249,32:247,32?n768:LAY THE PAGE ,AND CALL 768"`215:"AS AN EXAMPLE,INSERT A DISK & ENTER THE NAME OF A SCREEN"w<:"FILENAME: ";A$F(A$)050P(4);"BLOAD ";A$;" ,A$2000"U:"NOW INSERT ORGINAL DISK & HIT RETURN: ";A$Z(4);"BLOAD INVERSE.OBJ""d@  :["TO USE INVERSE.OBJ ,YOU MUST POKE INT0 $F9 (249) THE TOP BYTE OF THE PAGE""( E.G POKE 249,32 FOR HGR ) ,AND POKE INTO $F7 (247) THE TOP BYTE OF THE PAGES LENGTH ( E.G POKE 247,32 FOR HGR)"(:"THEN BLOAD INVERSE.OBJ, POKE TO DIPPTXOS1,YOS2 TX(0):Y(1)4^XXOYYO8070HhPTXOS1,YOS2ZrPTXS1,YS2h|XOX:YOY(49249)128(49250)1288020PTXS1,YS2'#(#2# SET INITIAL CONDITIONS<#A0:B0:X0:Y0A#S11.098:S20.745:XO0:YO000F1X2,Y2&P(49250)127270>ZX(0)S1:Y(1)S1]dX2,Y2X2,YX,YX,Y2X2,Y2mnFLG1:1025ys PAINTxPT(0)S1,(1)S2(49249)1271025(49250)1272701400>? CURSOR SUBROUTINE@XO(0):YO(1)J(1)S21X2,Y28000?(49250)127ĕ1X2,Y2:270fD(((0)S1X2)2((1)S2Y2)2){RAD2D:X2D,Y2 I06.29RADX2D(I),Y2D(I):FLG1:1X2,Y2:1025# RECTANGLE(X2(0)S1:Y2(1)S221X2,Y2<81:Y(1)S2)tXO,YOX,Y:XO,YO1X,Y17~XOX:YOY[(49249)128(49250)1281130f LINEX2(0)S1:Y2(1)S2X2,Y28000(49250)127270X(0)S1:Y(1)S2X,Y:X2X:Y2Y1185 CIRCLEX2(0)S1:Y2 8000 START WORK0(49250)127270RFLG1070,1170,1230,1320,1400]$ DRAWp.WID1080,11208(0)S1,(1)S2B(0)S1,(1)S2L(49249)128(49250)1281090V1025[ DRAW WID2`XO(0)S1:YO(1)S2 jX(0)S1000DFLG3:1000%NFLG4:10003XFLG5:19Lb8:" SIZE(1-3): ";`lA$:A(A$):A;wvA1A3ĺ"":600PTA1:8" ";1000WID1:270WID2:270 DRAW SECTION49237,0:49249,049250,0DS 100 23:32( " SURE: ";> "";A$:A$(A$,1)L A$"Y"ĀU 100j  MENU LEFT SIDE B520,540,560,570,580,590,600,670,680 :49236,0 3 230,32 270 :0,0:62454 &49236,0:1000 0FLG1:1000:FLG2:@(49249)128ĕ1A,P%(B):2802 E PB#0 PRESSEDA G1A,P%(B)M H230,64b JBB1:A115500 TB350,360,370,380,390,400,410,430,450 ^0:270 h3:270 r5:270 |1:270 6:270 2:270 36608 95  GOSUB DISK COMMAN910,0! 139,19140,19140,1916 140,136279,136I 56,16488,164\ 56,18088,180o 56,18188,181u   PDL ENTRY POINT 230,32 49232,0:PT1:49236,0 A(0):A128A115:300 "A165 ,B(1):B(B29) 61A,P%(B) "O RANGE ":5 " L INE D RAW ";27);"G REEN "::V " C IRCLE ";27);"B LUE ":~ " R ECTANGLE ";27);"V IOLET ":: " P AINT ";27);"H OUDINI ": " W IDTH ";27);"D ISK C OMMANDS ": 27);"E XIT " 0,0279,0279,191 0,1 ?232,0:233,3 A6146% F9000+ P; Z MAIN MENUQ _49228,0:49234,0Z `""f a230,32q d(16) n19);" MENU" x19);"----" " C LEAR S CREEN ";27);"B LACK ": " C OLOR S CREEN ";27);"W HITE ":: " D RAW ";27); 24576!:X(0):D$(4)'F ***********************e * PICTURE BY W.TOOMEY * * (C) 1984 * ***********************(D$;"BLOAD TEXTRES(CALL6146)"2D$;"BLOAD HOUDINI.OBJ2"<D$;"BLOAD SHAPES"   h$H hJ`    @ i'i `H `hii8ϩiii(i@8`$H h$ H @h$ H h$ H h$ H h$ H h$H    <"<"""<< <"""<"><$""< """"  "" 6***""""""""""<""< :< $"""2,"""""**6"""""< >>8  80,"*:<"">""""""""""""">>><2"<""">""" ""  ">"6**"""""&*2""""""""""""*,"" "" ">""""""""""""""**6"""""""> >>> >00000>">>< (&20 *, **>> "2*&" " >>  ">> "8""> """"""< >> "$! $%%#,ep% !Lp"% $`"H *+)hi#"H !*0+i+icH#c hc`"%$$%H hi#`$% b,c*+Md,cPMb*!0 +i+`%J) a+je *`PPPP򠥹͠0sL"$!e (' !!%##`e`" e$$ ",q0rs(!#L"L$a -  $    `L `,fPfA[8 & & &mg)mh e$*+Md$(Mb,cp ,bpP!pA* +i+Md$qr"s`,Ta@0,U`* L" zLB$!$$"% %L"b`f`f`,,Lҩb`@``cd` pLXcd`r$s%L$tc`d`f`e`Yc`d`L$e (' 8!$!$%",qL !%# !L5 (5`)`W L{ IHHH``F}"*?GOWrzFF*Q$``1  emgh` a` ,q0qai$r%s`@a`r$$hLcd`,qSiaLL L$L$ B `t8967 ,R,W T ,P`ɭӠҠΠΠ ((*)  a+*HN OI*P,h*,H,_0ɛ_ ɍ $h`ɐ 6+_ pL L z <"<"""<< <"""<"><$""< """"  "" 6***""""""""""<""< :< $"""2,"""**6""">>8  80,$$$$"*:<y b`R2B"~|x`? <`b y$(O@2b2R "$$$$$$Dx"6**"""xD# HHD#BBB$$$$$ b`HHH$# xHHHHHHH(((((((88$# HHHDC@D{$$$$$$$<"Dp>> >00000>" `bp !"DDC b bx@ABDBAB}`b b "`r p #$$ **>$$$$$$$<><$$$$$$$<$$<<$$`b  #$8`x|~ #$HHHbB"H0B$$$ #$(((^"b2  CDHH$$$$$$$<>>$$$$$$$$<    '> >5, -<<>475w%5 -%?,7>$57-w%,6 ,--?--?7-->?w-5?-$$56 ,<  !"#$%&'()*+,-./0123456789LLLL`ª`LQLY 0F#P%(9):I09 P#P%(I):6Z# 28,44,68,84,108Pd# 124,148,164,180,185_n#FLG1::3ix#1:0v#49234,0|#4)2:" r PUT GRAPHIC ON SCREENa |A$"4F00<5500.5A40M":290:16499:A$"5500<4F00.5440M":290~  PUT GRAPHIC IN BUFFER 16384:  CLEAR HI-RES SCREEN 34,20::16301,0::"OK TO CLEAR HI-RES SCREEN? N"(8);:A$:A$:A$"Y"Č62450((A$,A,W))128# ,:72,0:144:; 6 INCREMENT XSCALEV @W,(W)W:(W)4ĹW,W J16702,(W)8845:16723,(W)8845:16412,1(W)(2)2: T INCREMENT YSCALE ^2,(2)W:(2)4Ĺ2,W h16737,(2)521:16716,(2)521:16412,1(W)(2A260,380,400,580,320,350,220,230,470,450,510,240,420,990,1000:180U 16565,85:e 16565,88:s W2WW2: TAB TO NEXT POSITION XX92:X192X4:YY61:Y140Y9   DO MONITOR COMMAND "A$A$" N D9C6G":AW(A$):511A,,51:16737,51:16412,WV A$"":ESC$(27):K$(9)(8)(21)"DXY12SRP C"ESC$(16)e 860:820v GET A KEY 950:225,X256:224,X(225)256:226,Y 16611:X(224)(225)256:Y(226):A$ AW(K$):A$(K$,A,W)Ă:W1WW1:180E ***************F d SEE HARDCORE COMPUTIST NO.20, P.15. b n INITIALISE VARIABLES x(16384)(16385)208ĺ(4)"BLOAD OBJ.GRAPHIC GRABBER,A$4000" 8191:251,0:W11:W21:230,32:16723,43:16702,43 1,1:2,1:X96:Y70:W1:16716> ***********************= * *[ * GRAPHIC GRABBER 3.0 *y( * FOR *2 * THE PRINT SHOP *< * BY *F * RAY DARRAH *P * * Z ********     PLIPLPLIPLP49229,0:49236,0:N140005r(4);"BLOAD "F$",A$"N1=|10ED"ED"PLILIIPLIPLLIIPLIPLLIIG"#:A$::34,0:4:958:15055(F$)01500K49232,0:49234,0kN1540,1560,1580,1600,162049228,0:49236,0:N12000:165049228,0:49237,0:N14000:1650,49230,0:49236,0:N14000:1650@49230,0:49237,0:N18000:1650TL16:170I32:170(FD64:1709(4);"PR#1"?Q1913,PLIDe1785,Z:1145,C}(17):(4);"PR#0"10:15);"LOAD PAGE ";N9:" FOR CATALOG"8:"FILENAME: ";F$(F$)0152034,3:(4);"CATAL OA$"5"ĺA$;:900&"A$"C"ĺA$;:950<'A$"N"ĺA$;:750J,"";:170`I0:C75:D0:170u P1:N3:Z2:170RP2:N4:Z2:170P1:N5:Z1:170C76:170P1:N1:Z0:170P2:N2:Z0:170LP3:170~L4:170L8:170 A$"2"ĺA$;:1050-A$"B"ĺA$;:1100DA$"A"ĺA$;:1150[A$"O"ĺA$;:1200rA$"X"ĺA$;:1250A$"I"ĺA$;:1300A$"E"ĺA$;:1350A$"L"ĺA$;:1500A$"D"ĺA$;:1450A$"3"ĺA$;:800A$"4"ĺA$;:850E 5";25);"N) NORMAL"K"LLx"L) LOAD PAGE";25);"A) AND PAGES"R}{"D) DUMP PAGE";25);"O) OR PAGES""Q) QUIT";25);"X) XOR PAGES"L0:I0:D0:C7520:"CHOICE: ";A$A$"Q"ė:A$"1"ĺA$;:1000I(P1:L0:I0:D0:N1:Z0:C752 ::; 10Q15:"EPSON DUMP"g15:"----- ----"n(62"1) PAGE 1";25);"I) INVERSE"7"2) PAGE 2";25);"E) ENLARGED"<"3) PAGE 3";25);"C) CONDENSED"A"4) PAGE 4"F"5) PAG     LOGFLG $383 YLOW $9356 YHIGH $9416 ; ;  $300  $300 ; PSFORMAT#$BFSET UP ROW 191 ROWFOR INPUT ROW OUTROWFOR OUTPUT ROW LOOP1 CLEAR FOR ADC'S ROWSET INPUT ADDRESS YLOW,X OLDPTR YHIGH,X HPAGE OLDPTR+1**************** * * * MACHINE CODE * * HI-RES TO * * PRINT SHOP * * CONVERTER * * * **************** ; ; ; HPAGE $19 OLDPTR $1A NEWPTR $1C LOGPTR $FE ROW $1E OUTROW $FD ; ; ;    :A L@ L@ з=ɌЩ wA+ nA, nA3 nA+ nA, nA30 nAI`碏AL] `hhߚHH`@I`A@ @ @0)1& B@>X @ :@`e` ( wA8e wA8`` @ @ @(0I1&,&& B@( :@`X @`X@@4`X wA` :APP,0RFACE. (4)"PR#1"&(9)"GE"6(4)"PR#0"< 22:"XSCALE=>"(1)20)"YSCALE=>"(2):d"SENSITIVITY=>"(16412)20)"BUFFER=>"((16565)85)31;16302W2,W2:16304W1,W1:16297W1,W1: EXIT PROGRAM:: PRINTOUT HI-RES SCREEN - SETUP FOR EPSON MX-80 & GRAPPLER+ INTE>=TOGGLE PARAMETERS"T:"<-=MOVE GRAPHIC TO SCREEN":"->=MOVE GRAPHIC TO BUFFER":"D=DISK ACCESS":"R=REVERSE BUFFER":"I=JUMP TO NEXT GRAPHIC POSITION":"?=SWITCH BETWEEN THIS SCREEN AND HI-RES" PRINT PARAMETERS 'W:1500:R PRINT COMMANDSP\:"GRAPHIC GRABBER 3.0"4)"BY RAY DARRAH III"f4:"P=JUMP TO NEW POSITION":"1-2=GRAPHIC BUFFER"p:"X=CHANGE XSCALE"25)"C=CLEAR SCREEN":"Y=CHANGE YSCALE";z25)"ESC=EXIT"::"S=LIT DOT SENSITIVITY":"::12:"ERROR #"ERR(7)HF$ESC$:A1VE BUFFER "(((16565)85)31):740:F$ESC$660b(4)"BSAVE"F$",A"256(16565)",L$240":660y GET A FILE NAME::20(A$)2:A$:6:8)"RETURN DOES A DIRECTORY"12:"FILENAME=>";::" "(8);:16384,128:(16384)155ľF$:#":740:F$ESC$660/(4)"BLOAD"F$",A$2000"::860hA$"SAVE HI-RES SCREEN":740:F$ESC$660(4)"BSAVE"F$",A$2000,L$2000":660A$"LOAD BUFFER "(((16565)85)31):740:F$ESC$660(4)"BLOAD"F$",A"256(16565):6602A$"SA" 1) LOAD HI-RES SCREEN"::" 2) SAVE HI-RES SCREEN":X" 3) LOAD GRAPHIC BUFFER "((16565)85)31::" 4) SAVE GRAPHIC BUFFER "((16565)85)31b::"WHICH?"(8);lA$:A$"1"A$"4"660v(A$)640,670,690,710A$"LOAD HI-RES SCREENY:25);::"(0-192,0-140)"H:16301,0:24:"NEW POSITION (X,Y)=>";y:" "(8);::16384,128:(16384)155560"";A,B:A(A):B(B):A0A192B0B140560&XA:YB0::: DISK ACCESSD:34,2::4:14)"DISK ACCESS":78N: REVERSE BUFFER&16785:A GET NEW SENSITIVITYr23:15::"(1-"(W)(2)")"::10:16301,014:A$:23:15:15):A$"1"A$((W)(2))ı16412,(A$): JUMP TO NEW POSITION34,20::22:"CURRENT POSITION=>"X","`?cc?G W?? UUUUUUTUUUUUUUUUUUUEUTUUUꪪUUZժ_UUX@:*_WWWPW W((0߫PUUUUPUUUUUUP@ UUUUUUAUUUUUUUUUUUV|@UUUU\Q@0uUUUUP8UUUU`UUP UUUUUUUWUUPEPUU\gguUUUUTeU U?wUPUUUW]U| UUUUUUUUpUUUUUUUUUUUX@UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU UUUUUUUUUUUUUUUUUUTUUUUUUUUUT5UUUUUUUUPUUUUUUUU` UUUUUUUU@UUUUUUUUUUUUUUUUUUUUUUUTUUUUUUT5UUҩ٠٠Šà̠б` ԠΠöŠàנ&±вԠˠƠŠĠРĠƠ٠`eeРǠƠĠ " ٠ ƹ̠вVeʽVeʆVe',0 0 1VeʽVeʆ'L` ??????????Lx?? !?"#$%&'(?)*+?,-./012??345678?9LLLL`ª`LQLY8LXLeL  UMN 39 LOOP2 (OLDPTR),YCOPY LINE (NEWPTR),Y KEEP GOING LOOP2 ROWEND OF PAGE YET? STOPYES, STOP ROWCHECK IF WE SHOULD LOOP LOOP1JUMP BACK STOP FINISHED! ; ;  T CLEAR FOR ADC'S ROWCOPY 3RD LINE $YLOW,XSET ADDRESS FINPUT ADDRESS OLDPTR YHIGH,X HPAGE OLDPTR+1 OUTROWSET OUTPUT ADDRESS  YLOW,X NEWPTR YHIGH,X HPAGE NEWPTR+1 SET UP ROW FOR LATER OUTROW #$27SET COLDPTR),YGET OLD BYTE (LOGPTR),YOR WITH NEIGHBOUR (NEWPTR),YAND STORE IT  LOOP1AKEEP GOING NEXTBITDO NEXT LINE "LOOP1B (OLDPTR),YGET OLD BYTE (LOGPTR),YAND WITH NEIGHBOUR (NEWPTR),YAND STORE IT KEEP GOING LOOP1B NEXTBI SET LOGICAL ADDRESS YLOW,X LOGPTR YHIGH,X HPAGE LOGPTR+1 SET X FOR LATER ROW OUTROWSET OUTPUT ADDRESS YLOW,X NEWPTR YHIGH,X HPAGE NEWPTR+1 #$27SET COLUMN 39 LOGFLGBRANCH FOR AND LOOP1B "LOOP1A (OLh((((((((((((((((((((((((((((((((PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP $(,048< $(,048"&*.26:>#'+/37;?#'+/L`hh'`hhi '`hh`hhi ` ` ` f`` ` f`` 3` f`(`' 3` f``#$28END OF SCREEN <1 DONE ; ; ;WIPLFT -WIPE LEFT ; WIPLFT #$27START ON COL 39 ^1 CLRCOLCLEAR IT DELAYDELAY  <1 DONE ; ; ;  E ; ; ;WIPEUP -WIPE UP ; WIPEUP #$BFSTART ON BOT ROW ^1 CLRROWCLEAR IT DELAYDELAY  #$FFEND OF SCREEN? <1 DONE ; ; ;WIPRGT -WIPE RIGHT ; WIPRGT #$00START ON COL 0 ^1 CLRCOLCLEAR IT DELAYDELAY  ; ;DELAY -DELAY ROUTINE ; DELAY DLYGET DELAY TIME WAITWAIT FOR A BIT AND RETURN ; ; ; ; ;WIPDOWN -WIPE DOWN ; WIPDOWN #$00START ON TOP ROW ^1 CLRROWCLEAR IT DELAYDELAY MOVE DOWN #$C0END OF SCREEN <1 DONOL -COPY THE COL IN Y-REG ; COPYCOL #$BFSET X TO ROW 191 ^1 BTABL,XSET UP BASES BASL INBASL  BTABH,X BASH #$20ADD #$20 FOR PG 2 INBASH (INBASL),YGET BYTE (BASL),YSTORE IT  #$FFFINISHED? <1 DONE ;  IT  <1 DONE ; ; ;CLRCOL ;CLEAR THE COL IN Y-REG ; CLRCOL #$BFSET X TO ROW 191 ^1 BTABL,XSET UP BASE BASL BTABH,X BASH #$00AET A-REG TO CLEAR (BASL),YCLEAR BYTE  #$FFFINISHED? <1 DONE ; ; ;COPYC; ; ;COPYROW -COPIES ROW IN X-REG ; COPYROW BTABL,XSET UP OUTPUT BASLBASE INBASLAND THE INPUT BASE  BTABH,XNOW MSB'S BASH #$20ADD #$20 FOR PG 2 INBASH #$27START ON RIGHT ^1 (INBASL),YGET A BYTE (BASL),YSTORE ;  $6000  $800 ; ; !WIPER WIPERMAIN ENTRY POINT ; ; !;CLRROW -CLEARS THE ROW IN X-REG ; CLRROW BTABL,XSET UP BASE BASL BTABH,X BASH #$00SET A-REG TO CLEAR #$27START ON RIGHT ^1 (BASL),Y   <1 DONE MMAND BYTE DLY $01DELAY VALUE !INBASL $FCINPUT BASE ADDRESS INBASH $FD "BASL $FEOUTPUT BASE ADDRESS BASH $FF ; ; "BTABL $6800THESE TABLES HOLD &BTABH $68C0HI-RES BASE ADDRESSES !WAIT $FCA8ROM WAIT ROUTINE ; ;COMMAND SHOULD BE POKED ; INTO ADDRESS 0, WITH THE HIGH ; BIT SET FOR COPY, CLEAR FOR ; CLEAR. ; #; ADDRESS 0 HOLDS A DELAY WHICH IS ; USED BY THE PROGRAM: 0 IS ; FASTEST. ; "; MAIN ENTRY IS AT 24576 DECIMAL, ; OR $6000. ; ; ; CMD $00CO *************** * * * WIPER * * * * * * BY W.TOOMEY * * * * 6/3/87 * * * *************** ; ; !;WIPER CLEARS (OR COPIES) PAGE 1 ; OF THE HI-RES SCREENS. THE "; DESIRED      _ժUUUUUUUUUUUUUUUUUUUUUU߫OD3+1 TWOMOD+4 MOD4+1 TWOMOD+5 MOD5+1 TWOMOD+6 HEADR+1 TWOMOD+7 MOD7+1 TWOMOD+8 MOD8+1 TWOMOD+9 MOD9+1 TWOMOD+10 MOD10+1 TWOMOD+11 MOD11+1  ; ; ; #ONEMOD 271D22243B354B21322C3A80 #TWOMOD 141011121 HEADR+1 ONEMOD+7 MOD7+1 ONEMOD+8 MOD8+1 ONEMOD+9 MOD9+1 ONEMOD+10 MOD10+1 ONEMOD+11 MOD11+1  ; ; ; !TWOBAUD TWOMODMAKE CHANGES TO MOD0+1SET 2400 BAUD TWOMOD+1 MOD1+1 TWOMOD+2 MOD2+1 TWOMOD+3 M; ; NXTA1 A1L A2L A1H A2H A1L RTS4B A1H RTS4B ; ; ; ; ONEBAUD ONEMOD MOD0+1TO SET 1200 BAUD ONEMOD+1 MOD1+1 ONEMOD+2 MOD2+1 ONEMOD+3 MOD3+1 ONEMOD+4 MOD4+1 ONEMOD+5 MOD5+1 ONEMOD+6 RDBITREAD >2< TRANSITIONS RDBIT DECREMENT THE Y-REG TAPEINA TAPE TRANSITION? LASTIN RDBITNO, DEC Y AGAIN LASTINCOMPARE WITH LAST READ LASTINAND STORE IT DOWN *MOD11 #$80IF Y=>#$80, THEN A '1' BIT ELSE '0' BIT, RETURN ; ; ; ; RDBYTE #$08SET READ 8 BITS RDBYT2 SAVE A-REG RD2BITGET A BIT IN CARRY RESTORE A-REG ADD THE BIT TO IT !MOD10 #$3ARESET Y FOR RDBIT DECREMENT COUNT RDBYT2AND LOOP RETURN WITH BYTE IN A-REG ; ; ; %RD2BIT ND TRANSITION ZERDLY USE Y AS A DELAY ZERDLYLOOP "WRTAPEIF INPUT BIT=0, WRITE IT "MOD8 #$32ELSE ANOTHER DELAY ONEDLY WHICH IS HERE ONEDLY #WRTAPE TAPEOUTNOW WRITE IT OUT MOD9 #$2CRESTORE Y DECREMENT X AND RETURNWBELL2AND SKIP NEWBELL #$00SET NO ERROR ERROR NEWBELL2#$87OUTPUT A ^G COUT ; ; ; HEADR #$4BTHIS IS MOD6 ZERDLY HEADR #$FE HEADR MOD7 #$21 %WRBIT ZERDLYOUTPUT 1 TRANSITION INCREMENT Y TWICE AND OUTPUT 2RD2BIT #$16 HEADR CHKSUM RD2BIT MOD3 #$24 RDBIT MOD3 RDBIT MOD4 #$3B RD3 RDBYTE (A1L,X) CHKSUM CHKSUM NXTA1 MOD5 #$35 RD3 RDBYTE CHKSUM NEWBELL NEWERR #$FFSET ERROR ERROR NE #$00 (A1L,X)  (A1L,X) WRBYTE NXTA1 MOD1 #$1D  WR1 MOD2 #$22 WRBYTE NEWBELL %WRBYTE #$10OUTPUT 16 TRANSITIONS !WRBYT2 MOVE A BIT INTO CARRY WRBITWRITE IT WRBYT2AND LOOP RETURN ; ; READ T $C020TAPE OUTPUT ADDRESS SPKR $C030SPEAKER OUTPUT #TAPEIN $C060TAPE INPUT ADDRESS !COUT $FDEDCHARACTER OUTPUT ; ; ; ;  $1E00  $800 ; ; ; $WRITE #$40SET DELAY FOR HEADER HEADRAND OUTPUT A HEADER MOD0 #$27 WR1IT READ &A1L $3CA1 & A2 STORE THE START %A1H $3DAND END ADDRESS OF THE A2L $3EREAD/WRITE RANGE A2H $3F !ERROR $DE0 IF NO READ ERROR ; ;OTHER EQUATES ; KYBD $C000KEYBOARD INPUT KBDSTRB $C010KYBD STROBE $TAPEOU********************* * * * CASSETTE ROUTINES * * FOR * * TAPE ARCHIVER * * * ********************* ; ; ; ;ZERO PAGE VARIABLES ; #CHKSUM $2ESTORES TAPE CHECKSUM LASTIN $2FLAST B     ``#`حJJJJLԩLLhhߚHH`Hh`#P()$ "$ \ŭ^ɭ] 37;? $(,048< $(,048"&*.26:>#'+/37;?#'+/37;? $(,048< $(,048"&*.26:>#'+/37;?#'+/37;?@ 0*8*@,0L,`D4 W`XYZ[7\A]O^i_t`abc`'"$;5K!2,:# ,,`<>'=7?<='=L<>'=7?L).`).0.`>@ h'A=?<=`LMNO7PAQORiStTUV  A1H #$37 A2H READAND READ IT ; ; TOGGLE KBDSTRBPLAY CASSETTE #$00INPUT THRU THE SPEAKER CHKSUM ^1 TAPEIN #$80 CHKSUM >2 SPKR CHKSUM ^2 KYBD <1  ; ; ;  ES #$00SET Y FOR LOOP $^1 FILL UP PAGES WITH BYTES (A1L),YIN ASCENDING ORDER  <1 A1HMOVE UP A PAGE AND LOOP <1 #$27RESTORE A1H A1H WRITEAND WRITE IT ; ; RSEQ #$00SET UP ADDRESSES A1L A2L #$27 D16231019121BC0 ; ; ; TONE CHANGE A-REG WRBYTEOUTPUT IT  KYBDA KEYPRESS? TONENO, LOOP KBDSTRBTURN KEYBOARD OFF AND RETURN ; ; WSEQ #$00SET UP ADDRESSES A1L A2L #$27 A1H #$37 A2H #$10SET 10 PAG0@ **@`h