@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@W!( L(1   Y I`  d  Ld M * @  $ % CC$$)%1 Udߥ$9%: !0 S$% DD˙`  }J)Lr d M * @  $ % CC$$)%1 Udߥ$9%: !0 S$%} DD˙`  }J)Lr J  ((  p L ()   J}L= ( L 0q A    IB JC;? D W } LL  ` W )LA!  ߰")-݆ p" } $G@LL 08`Q")<2Q0 -G$Ș݆ UL# ; p8(()(0ʥ)NQ` }$GȘ݆LU )L ݆ L GȘ ݆LL )W>Z   HH)H }p h  hyhy D L> L JJ    ! LA*` BF }7'8  M HN H` 8 Z  \LdJJ!"! GFE@F (!L }EE !E^ ^ E E7EȩEdE/EȩE  D } .L }  ;F d  ;?F7F? ( .   Z D LL d } . D  L    p  E` , d)  D L) 0BM݊L݉} ML  N݆ L NLML [ TEqEHȱEqEh 0Gȹ G} HLL GɛL  LFREE SECTORS G) *Gȩ GȽG GȌ*jj >G} C8jJ3j2CD( C202C ԠBX` N 1? l LlD:RAMDISK}.COMLu L1 L ;LHL  T`  `8  ɐ     `TU  } L ? .  t`GBJ ~DEHI B V0dV!}QDEHI VF9 ,0 ,0 s0hhL  L` H hDHEh"}DEL8HI4 0 HI,0 0  9 .G VLO#},0 L4*IJ`llD1:AUTORUN.SYSNEED MEM.SAV TO LOAD THIS FILE.D8:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ v s? F0Ξ05: [ BDEHI%} VY8 B V  @  /DE `E:D8:DUP.SYSERROR-SAVING USER MEMORY ON DISKTYPE Y TO &}STILL RUN DOS B;DE J  (` 9 V⪍ ઍ  -'}LLu ÝDEHILV 9 .l 9 .l  `` s$B BH(}I|DE V BLV nB,DE JLV B V BLVDEIʩ BꭝLu } 3E:}DISK OPERATING SYSTEM II VERSION COPYRIGHT 1984 ATARI CORP.A. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDG*}E J. DUPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRES+}SF. LOCK FILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES P. FORMAT SINGLEL !N',}#"&))9(&*)/h)''-&؆莟R'S  vL/ˢ L }Insert DOS 2.0s, type Y Λx -}DEfHI 1莏#q! @ y0ɛ8A0,' ȅ 1 1ild! 1L!NO SUCH ITEMSELECT.} ITEM OR FOR MENU! 0 .z:*{}.|{ 1 0 0JB 18L%|DL/}%DIRECTORY--SEARCH SPEC,LIST FILE?[# 0 0 &|D3" 1L!NOT A DISK FILEN !B 1L!E# 1 !BD0}ED:}:1BJ|DE 1DEBHI 1 h0ߢ 0.1}  0?詛 1 y0YЛ 1 ;#L" ;#L! BL1TYPE "Y" TO DELETE...DELETE FILE SPEC2}COPY--FROM, TO?OPTION NOT ALLOWED697 FREE SECTORS COPYING---D8:COPY32.COMl# 0|D .L/%#3}##JB|DE 1BHID#E 1#0: B 1L!#͑### B 1#c$0SY4}S1}:## # # .#Ƚ# # 𩛙## 1,#PD#ELJ- <.BJD#E 5}1 1HH 0hh|DL%1}:̳# L% #D#EL% 1 0 . .0O% 1L!WILD CARDS NOT A6}LLOWED IN DESTINATION 0 <.|K}N 2 FORMAT. t* 5) 1L!`) 0NΞ 0 L1) 1 L!BAD LOAD FILELOAD FROM WHAT FILE?) 0 ?}0#B 1L!WHAT FILE TO LOCK?) 0 0$B 1L!WHAT FILE TO UNLOCK?DUP DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO US@}E PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV.FE! +L1   `*  70 2 2A} 0.* 1 y0 0)INSERT BOTH DISKS, TYPE RETURN^, 1 y038逍 N, 1L! ,B}C, t*  Lx+, 0 ^, 1 y0 , ,0,0 ,L+ ,I0 ,Vǭ0C}Ξ, 0 }, 1 y0C,ШC, 0K'!" H H 'h h Lx+!EF 5L1L!D,I,HhD}` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNINSERT DESTINATION DISK,TYPE RETURNE}`  `8 rL1`-* 1P* 1 y0Y`hhL!NAME OF FILE TO MOVE?- 0 0|DL% <.F},^ 1 70 0 .@L# .BJ 1  DEHIB V L1 ,} 1 70,L.  G}JB|,#P#DE 1 HI BDEHHII 1 B 1 ,^ 1 70,0La- B V,#PH},^ 1 70 0L#L!-* 1P* 1 y0Yj383}mm ݭI}}`8}``|* ? ɛ,`|:-)| / 1L!`DESTINATION CANT BE DOJ}S.SYS0 0H{ 24Δ 28/L!/) 2 Π 2 0 ξK}hAΞB,0 J 1 BDEHI,HÝDE 1HIHIDELSAVE-GIVE L}FILE,START,END(,INIT,RUN)O S0 1`BDEPHI V` S0H 1 L!M}0 0 1L~0`PLEASE TYPE 1 LETTER,0`hhL! 70 1L0L<1 ,;ɛ7,"ɛ:ݦ1ݥN}A"D|ݤD|ȩ:|ȩ|ɛ,,(/+.ީ1 1,ɛ`轤{NAMEO} TOO LONG B VL!` L1I H1EΝDL1|mDiE` V0`8d/8 i:222 1 LP}!ERROR- 164ɛ+,' 20*.. өr2 1``2TOO MANY DIGITSINVALID HEXAQ}DECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8uR} ECIMAL PARAMETER800 0 8 00`,0'D800 H,ɛh`2L1NEED D1 THRU D8updpS:K:E:D1:PICTURES.PIC.PIC((&DD&8DDDD8 JJT(ՅՕ~p*yp r r PT} r r r s01XfpYgp/ ^ 1jjp` rjij01XhpYip rWЩ`ԩ:/: \6U} Toԩ%pp.˩p̩*p%pL|(p k{  qLBq {ep#p pi-Щx k{V}84Ldq | 2s(p k{x {ep#p NsLqLBqMЭ ~x`x$@ԩ/ m x:/W}`D˩p̩*p%pLY} k{ qD˩pLr pi-Э"pep#px | 2sx k{ L`r pi-Э"peX}px NsxLr BLVpK)I JBDpELV䥌֥נ֠N֠cNȩ`BDpEY}LVBDpE JLVJB DpE VLv`+p1 pU!pV"pTp/Lsp pU!pV"pTLsp pU!pV"Z}pTLsv  s` u` s`/ t t`T`UaVb8`Zv vIiv8a[wb\xwIwxIxwx[}spZTw訥xu wvv~tHuJhjp~Ltpevpqqupt TeT trewrsexsu'rt$\}UUV VUV t t t8~~0L(t`T U`hhLtTZU[) @ tFo Lt-PI1dPd`8]}ptpquq`THUH uTfgf &gQg &g &geQfgmg0f&gL.uU0 FVjnL>ueffg8nfedd^gee^}e_uohUhT`XdYe`0  v t vv`ЍvUU vͺvUUv pvv͘v/TT'vU vͺv_}UUU͘v vͺvLuUTTTQUU vͺvUUv pvv͘v/TT'vU vͺvUUU͘v vͺvLO`}vv` tUU vͺvUvΘv`hhv`TU` td-FoJ`hhL hpip`&p)@a}` 'O˩p̩@Щ k{84 {ep#p pi-Эxݭ#pi ieIixLvx x`&p)@` 'O˩b}p̩ p M|"p#p !' }߭#piieIiLjw `LwL,yLwLw$p0 c}&p)@LixL&xL8xL8xL&x! xLw`$p0e)Lax$p0)Laxe)Laxd})LwHy轔yh#pi+yLyLyLyLy!- hhLxOe} k{ xhhL~P pi-Щ`"pep`+ye)+yLw+y)+yLw,y0}LoyLyLf}yLoyLwx`e)Ly)L1y@ijkl g} !"#$%%&'())*+,--./0112344567889:;<<=>?@@ABCDDEFGGHIJKKLMNOOPQRSSTUVWWXYZZ[\]^^_`abbcdeffghiijklmmnopqqrstuuvwxyyz{||}~h}i}~}||{zyxwvutsrqponmlkjiihgfedcba`__^]\[ZYXWVUUTSRQPONMLLKJIHGFEDCBBA@?>=<;:99876543210//.-,+*)('&&%$#"! j} pqpqMI(p4ΐ L{i͐ L{ik}νy pz"p` {ͤνy pz"p`͝Ν͍ #|ͥ΍ #|`}FjFj`P pi-l}Щ`"pep`Mx1}) JJI2}1})I3} "pɿ"pL|"p"p2} pɟ pL| p p pi-Э"pep#p $} $}`m} :|%pL=q M| ~L| $} $}L| | 2s M|L|L|0XdYede`0}`4}0n}XdYede`D˩p :|%pLr M|9 | 2s M| $} ~D˩pL} $} NsLi}o} ~D˩pLi} $} $}Li} "p"pL ~ "pɿ"pL ~ p pL ~ pɟ p` }?.ˍ,p̍-p%p Mw,p˭-pp}` v,p˭-p`L~ˍ,p̍-p&p)@c$p0^ '@Щ9˩p̭%pL,p˭-p` k{ {L~ x"L~ep#p pi-q}ЭxЭx w `ep,p˭-p`:+phh%pLY}Lr +phh.˩p̭%pL|L=q*Lv8+pZ˩pr}hh%pL|L=q %pI%pL 4}`!-Ѝ/@ m}Щ`ep :/LLLLs}p` ' p M|"p#p !- }߭ w `ep,p˭-p` ,p˭-p`&p)@`: \t}#piʰ#pij@kl` fpXgpY01W$p:u}x~ԩ:/ x@ԩ/T01W$p&p)@LP#pij@v}kl \hpXipY |`Fȩȩ `H ԍЭЭЭЩhw}@H ԍЍЩ Щ~h@DE BILV colour enhancer DISK DIRECTORY AND OPTION BOARD 5 5 5x} 5COLOUR 1 COLOUR 2 COLOUR 3 COLOUR 4 C# -Change Colour S -y}Save Picture in Jars #(1-4) L -Load Picture  - Lum Inc/Dec I -Disk Directory  - Col Inc/Dec E -Dis/Enable DLI'z}sS/BAR or PEN BUTTON for menu<-->picture LOAD PICTURE - ENTER FILE NAME SAVE PICTURE - ENTER FILE NAME Di{}rectory - Press SPACE BAR to scroll DISPLAY LIST INTERRUPTS DISPL|}AY LIST INTERRUPTS URՠ Á码 Á Á4 Á] Á Á ÁР Á Á T Á Á` }}w`> 0 Ƅ  * ! hhL؀` ' C M #p~ &p)@`~}ij@kl`T栃 ÁT`F Á`U B DpEHI VB HI DpE V}Hp p`/@ r  s r{p76|p2  s )  s Ƈ Ti砃L T Á} r:/`T Á Á Á` ' M/@ &p)@  ~}ԩ `n Á` r  s Ƈ r:/`* p ' Á  s 0 щ! r ``}i`I@&p &p)@# T栃 Á T砃 Ái` T栃 Á T Á r}`ij@kl`bhpdipe V b V&p)@hhL}b V`iL= B $0 L4 $ $ $&p $L4hp}ip =H)h) = =* =Lӈ =RѥPee`/}eeL%(eeГ HI V0`hhhhL HHHi0&lj ԍЌнi}@kЌhhh@ hhh@ i)Lb BlDpEHILV vp UTlp Á`m}p hhhhL؆`d`e`epi$ ˝dʈ` iIe` i)Lb/ ӋR ÁT}Π ÁT ÁT Á Tb ÁT ÁT Á*/ L` COLOUR ENHANCER } micropainter and atariartist Program by Dave Blackshaw (c) 1986 Hillside Software MICR}OPAINTER (c) DATASOFT 1982 ATARIARTIST (C) ATARI 1983 ____________01 }ȑ`~pT 1982 ATARIARTIST (C) ATARI 1983 ____________01  &X; Touch Tablet / Joy Stick Drawing&X; Program for Micropainter & Atari X; Artist("X; Includes Atari Artist Loade }r2&X; and other modifications to allow<$X; operation on 400/800 machines.FX;PX; Version 800/87ZX;dX; Saved as ARTI }ST.V81nX;x(X; June 1987 (Minor Changes May 1988)X;X;@;; START OF SYSTEM IOCBSIOCBX;.ICHID ;; DEV }ICE HANDLER IS (SET BY OS)*ICDNO ;; DEVICE NUMBER (SET BY OS)ICCOM ;; I/O COMMANDICSTA ;; I/O STATUS } ICBADR ;; BUFFER ADDRESS'ICPUT ;; DH PUT ROUTINE (ADR-1)ICBLEN ;; BUFFER LENGTHICAUX1 ;; AUX 1 }ICAUX2 ;; AUX 2ICAUX3 ;; AUX 3ICAUX4 ;; AUX 4"ICAUX5 ;; AUX 5,ICAUX6 ;; AUX 66X;@ X; I }OCB COMMAND VALUE EQUATESJX;TCOPN;; OPEN^!CGBINR;; GET BINARY RECORDhCGTXTR;; GET TEXT RECORDr!CPBINR };; PUT BINARY RECORD|CPTXTR ;; PUT TEXT RECORDCCLOSE ;; CLOSE CSTAT ;; GET STATUSX; X;#X; AUX1 VALUE }S REQUIRED FOR OPENX;OPIN;; OPEN INPUTOPOUT;; OPEN OUTPUTOPUPD ;; OPEN UPDATEOPAPND ;; OPEN APPE }NDOPDIR;; OPEN DIRECTORYX;X; MISC ADDRESS EQUATESX;CPALOC ;; POINTER TO CP"WARMST;; WARMSTART (0= }COLD)&'MEMLO;; AVAILABLE MEM (LOW) PTR0)MEMTOP;; AVAILABLE MEM (HIGH) PTR:SDMCTL/D1APPMHI;; UPPER LIMI }T OF APPLICATION MEMORYNRTCLOCKX CIOCHR/b ICIDN0.l IOCBAS v ICCOMT ICHIDZ  DSTATLATACHR }FILDATSSFLAG CHAR HOLD2TMPLBTTMPROWTMPCOL COLP0 COLP1 }COLOR0COLOR1COLOR2COLOR3COLOR4 INITADR;; LOAD/INIT ADRGOADR;; LOAD/GO A }DR CH;; KEYBOARD*(CARTLOC;; CARTRIDGE RUN LOCATION4CIOV;; CIO ENTRY ADR>SETVBV\HEOL;; END OF L }INE CHAM ATRACTMR TMPCHRP\ HOLD1QfROWCRST;; CURSOR ROWpCOLCRSU;; CURSOR COLUMNz#DINDEXW;; CURRENT S }CREEN MODESAVMSCX;; START OF SCREEN OLDROWZ OLDCOL[ OLDADR^ NEWCOLa NEWROW` MLTTMPf RA }MTOPj SHFAMTo ROWACp COLACr ENDPTt DELTARv DELTACw ROWINC COLINC$ COUNTR~. }DLL0;; POINTER TO GR08DLH0;; DISPLAY LISTBDLL7;; POINTER TO GR15LDLH7;; DISPLAY LISTV(SAVTAB;; POIN }TER TO COLOUR TABLES` DLINUMf SAVPICj ADRESSdt DMASK~ ICBALD ICBAHE ICCOMZ" ICSTAZ# } ICBALZ$ ICBAHZ% ICBLLZ( CURSORPICTYPE XTEMP YTEMP LOC7 LOC8 LOC9  }LOC10 LOC11 LOC12( LOC132 LOC14< PICCTRFHPOSP0PHPOSP1ZGRACTLdPMBASE }nGPRIORoxPADDL0pPADDL1qSTICK0xSTICK3{PTRIG0|PTRIG1}STRIG0X;!PMS }TART`;;START OF PM AREAPLR0d;;START OF PLAYER 0PLR1e;;START OF PLAYER 1ISTABi;;DLI ON/OFF TABLEIC }TAB0i;;BACKGRND TABLEICTAB1j;;COLOR 1 TABLEICTAB2@k;;COLOR 2 TABLEICTAB3l;;COLOR 3 TABLESECPIC0 };;BACKUP PICTUREX;"X; Start of Program,X;6p@X;JMODE ;;SCREEN MODETSCREEN AS:A=EOL^KEY AK:A=EOLh }EDIT AE:A=EOLr DISK AD1:PICTURES.PICA=EOL|PIC A.PICA=EOL$COLOR ;; BASIC'S COLOR COMMANDXPOS =;;X & }Y POSITIONS"YPOS ;;USED BY PLOT & DRAWTODLPOS ;;CURRENT DL LINEFLAG ;;GR MODE FLAGJFLAG ;;JOYSTICK FLA }G(DLFLAG =;;INTERRUPTS ON/OFF FLAG-DRAWFLAG =;;PLOTTING IN PROGRESS FLAGPLOTFLAG ;;PLOT/DRAW FLAGFILF }LAG ;;PLOT/FILL FLAGCURSORH =,CURSORM ====(==(====,CURSORC ====&=D==D=&== },CURSORD =8=D=D====D=D=8=,CURSORA ==== =J==J===,CURSORF ===T=(=== }===POSCUR !SAVM0L ;;POINTER TO STARTSAVM0H ;;OF GR0 SCREEN&!SAVM7L ;;POINTER TO START0S }AVM7H ;;OF GR15 SCREEN:-VDSLT7 ;;POINTER TO GR15 DISPLAY LISTDFNAME ;;FILE NAMENX;XX;bSTART$>;;STAR }T AT LAST !l &MODEv! CLOSE;;CLOSE EXISTING SCREEN OPSCR;;OPEN GR.0 SCREEN INITSCR;;INITIAL SCREEN$> CLOS }E;;CLOSE SCREEN OPSCR;;OPEN NEW SCREEN$> CLOSE;;CLOSE #1 AND OPEDIT;;OPEN SCREEN EDITORQ0;;SAVE DL POIN }TERSPDLL0;;IN PAGE ZEROQ1 PDLH0(QSAVMSC;;SAVE START OF SCREEN MEMORY PSAVM0L QSAVMSC PSAVM0H Q> };;TURN SCREEN OFF* PSDMCTL4PINITCOL4;;DL FLAG OFF> MODSCR;;MODIFY D.LISTH WRITE0;;WRITE SCREENR QRAMTOP\S>; };LOWER RAMTOPfPRAMTOP;;AND OPEN GR.15pQ>;;GRAPHICS SCREENzPMODE;;USING #6$>` OPSCR QRAMTOPO>;;RESET } RAMTOP TOPRAMTOP;;ORIGINAL VALUEQ0PDLL7;;SAVE DL POINTERSQ1;;TO GR15 SCREENPDLH7;;IN PAGE ZEROQSAV }MSC;;SAVE POINTER TOPSAVM7L;;SCREEN MEMORYQSAVMSC PSAVM7H GR15 Q> PDINDEX$ Q>;;ENABLE PMG FOR. P }GRACTL;;CURSOR8 Q>5PMSTARTB PPMBASEL Q>:;;SWITCH SCREENV P/;;BACK ON` Q>j $>5VBI0;;SET VBI FOR NONEt %>4VBI0 };;DLI MODE INITIALLY~ SETVBV Q>6 PHPOSP1;;POS. PLAYER 1  ERASE1;;ERASE PLAYER 1  CLRISTAB;;CLEAR D/L TABLE Q }>4DLI P Q>5DLI P Q> PGPRIOR Q> P Q>;;SET JOYSTICK PJFLAG;;FLAG X; X; Read Tablet Rou }tine X; X; Main Loop( X;2 Q>;;SET INITIAL< PCOLOR;;COLOUR TO 1Z Q>4CURSORM;;SET NORMALd PCURSOR;;CURSORn Q>5C }URSORMx PCURSOR Q> PPLOTFLAG PLOOPQ> PCH PRLQJFLAG;;JOYSTICK FLAG FPRL1;;SET ? &!JPLOT;;YES,GO T }O JOYSTICK ROUTINE PRL1Q> PDRAWFLAG TABPOS (> DPENON )> DPENON PENOFF !PRL !PENONQ>;;INI }TIALISE AVERAGE" P;;ROUTINES, PEN2 AVLOOP6 PPOSCUR;;A HOLDS Y POS7 PDLPOS@ QXPOS;;GET X POSITIONJ O>-;;ADD X OF }FSETT PHPOSP0;;POSITION CURSOR^ Q>h PCOLP0r QSTICK0;;BUTTON PRESSED| R> HPLT1;;NO! NO PLOT  TABPOS;;READ TA }BLET (> ENPLT )> FNPLT !PEN2;;AND LOOP PLT1Q>;;YES, MOVE PHPOSP0;;CURSOR AND GO SAVEPIC  PLOT };;AND PLOT Q>;;SET PLOTTING IN PDRAWFLAG;;PROGRESS FLAG DDD1 TABPOS;;READ TABLET (> ENPLT (> FNPLT } QSTICK0 R> FNPLT AVLOOP PPOSCUR PDLPOS DRAWTO;;PLOT FURTHER POINTS !DDD1;;AND LOOP& "NPLT!PRL;;EN }D OF CURRENT PLOT0 X;: PENOFFQ>? PATRACTD PHPOSP0N QCH;;KEY PRESSED ?X R>b FNOKEY;;IF PRESSED THENl  CHECKE }Y;;GET VALUEv #LOOP5QSTICK0;;JUST WAITING FOR R>;;BUTTON TO BE HLOOP5;;RELEASED : X; !NOKEYQSTICK0;;NO KEY PR }ESSED R>;;BUTTON PRESSED FJPRL;;NO ! Q>@ P Q> PSDMCTL DELAY  GR0;GO TO MENU DELAY #PRESSQ }STICK0;;JUST WAITING FOR R>;;BUTTON TO BE HPRESS;;RELEASED* Q>:4 PSDMCTL> Q>H PR JPRL:;;NEXT POSITION\ X };f X; Draw Line Loopp X;z DLOOPQ>;;CLEAR KEYBOARD PCH Q>4CURSORD;;SET DRAWING PCURSOR;;CURSOR Q>5CURSORD  }PCURSOR Q>;;SET FLAG TO LINE MODE PPLOTFLAG #DRLQJFLAG;;CHECK JOYSTICK FLAG FDRL1 !DJLOOP;;USE JOYSTICK$ }DRL1 TABPOS;;READ TABLET.(>8 DITSONB)>L DITSONV PENOFF`Q>4CURSORDj PCURSORtQ>5CURSORD~PCURSOR }!DRLITSONQXPOSO>- PHPOSP0 QYPOS PPOSCUR PDLPOS QSTICK0R>HDRL SAVEPIC PLOT;;PLOT }START OF LINEDRL2QSTICK0;;JUST WAITINGR>  HDRL2!DRL3 TABPOS;;GET END OF LINE(>( DDRAW2)>< DDRAWF }Q>P PHPOSP0Z !DRL3dDRAWQXPOSnO>-x PHPOSP0 QYPOS PPOSCUR QSTICK0R> HDRL3 DRAWTO;;DRAW LI }NEDRL4QSTICK0R> HDRL4!DRL;;NEXT LINEX;X; Close # RoutineX;!CLOSEQ>CCLOSE;;EXPECTS X-REGPICC }OM9;;TO CONTAIN #!CIO"X;,X; Open Screen Routine6X;@OPSCRQMODE;;SCREEN MODEJ PICAUX29TM>^N>hL> r P }ICAUX19| Q>COPN PICCOM9 Q>4SCREEN PICBADR9 Q>5SCREENPICBADR9!CIOX;X; Modify Screen to ANTIC 1 }5X;GR15QDLL7P QDLH7P%>Q>P@7&%>0Q>N:P@7D%>N LBL15Q>XP@7b3l)>cv } HLBL15Q>NP@7333 LBL16Q>P@73)> HLBL16:X;X; Open keyboardX; OPKEYQ>CO }PN PICCOM9  Q>4KEY* PICBADR94 Q>5KEY>PICBADR9H!CIORX;\X; Open E: DevicefX;pOPEDITQ>COPNz PICCOM }9 Q>4EDIT PICBADR9 Q>5EDITPICBADR9 Q>OPUPD PICAUX19!CIOX;X; Open D: DeviceX;#OPDISKPIC }AUX19;;DIRECTION BYTE Q>COPN PICCOM9 Q>4DISK PICBADR9 Q>5DISK$PICBADR9. CIO8 IDONEB !ERRORL DON }E:VX;`X; Plot Point RoutinejX;kPLOTQFILFLAGl HFILLt QXPOS~PU QXPOSPV QYPOSPT QCOLOR P }CIOCHR !MYCIOX; X; Draw Line RoutineX;(DRAWTOQCOLOR;;USES OPERATING SYSTEM(P2 QXPOS<PUF QXPOSP }PVZ QYPOSdPTxQ> !MYCIOX;X; Fill Area RoutineX;FILLQCOLOR PFILDAT QXPOS PCOLCRS QXPOS }PCOLCRS QYPOS PROWCRSQ>" !MYCIO@X;D>D:MYCIO.M65EX;JERROR7;;PULL RETURN OFFT7;;STACK AND CL }OSE^!ERRhX;rX; Erase screen routine|X;ERASEPICQSAVM7L PSAVTAB QSAVM7HPSAVTABQ>>?CLE }ARP@SAVTAB73 HCLEAR#SAVTAB2(> HCLEAR:X;&X; ADD DLI ROUTINE0X;: ADDLIQ>DPCHNQDLFL }AG;;DL FLAG SET ?XM>@bHFLAGSET;;YES OKl:v!FLAGSET DLINES;;COPY DLTABLEQ>4CURSORA;;SET ARROWPCURSOR;;CURSO }RQ>5CURSORAPCURSORQ>@;;X-POS CURSOR PHPOSP0Q>PADDLOOP TABPOS(>;;GET Y-POS FADDL2) }> FADDL2 AVLOOP PPOSCUR;;A HOLDS Y POS PDLPOS  QXPOS*O>-4 PHPOSP0>QSTICK0;;BUTTON PRESSED ?HR>R } FADDLOOP\QDLPOS;;ADD TO TABLE -f>pO> z?QISTAB9;;ZERO INDICATESPPLR18;;ACTIVE LINEN> PISTAB9ST }K0QSTICK0;;WAIT FORR>;;BUTTON TO BEHSTK0;;RELEASED !ADDLOOP!ADDL2QSTICK0;;BUTTON PRESSEDR>;;PEN OFFF }ADDLOOP;;ERASE DL DISPLAY ERASE1ADDL1QSTICK0;;AND RETURNR> HADDL1:$X;.X; Add DLI from Joystick8X;B }ADDLIJQ>LPCHV QDLFLAG`M>@jHDLFLAGSETt:~DLFLAGSET DLINESQ>4CURSORA PCURSORQ>5CURSORAPCURS }ORQ> PXPOSJADDLOOP JOY2 QYPOS PDLPOSQCHR> FQQQ7R>!  FQQQ3 CHECKDIRQ>(PCH2 }QQQ7QSTRIG0< HJADDLOOPF QDLPOSP>ZO>d?n QISTAB9x PPLR18N> PISTAB9QQQ2QSTRIG0 FQQQ2 !JAD }DLOOPQQQ3 ERASE1Q>PCH:X;X;Change Color RegistersX;SETCOLQCHR> HBACKDLI$>;;COL BAC }KGRND" !CHANGE,BACKDLIR>;;'B' PRESSED ?6HTRYC2;;CHANGE TOP COLOUR@!CBACK;;IN DLI MODEJ TRYC2R>T HTRYC3^$ }>;;COL REG #0h !CHANGEr TRYC3R>| HTRYC4$>;;COL REG #1 !CHANGE TRYC4R> HCHANGE$>;;COL REG #2 }CHANGEQFLAG;;GR0 SCREEN ?GSKIP;;YES SKIP DLI CHECKQDLFLAG;;NO! CHECK DLIM>@;;FLAG AND GOFSKIP;;CHANGE COLOU }RS !DLISET SKIPQCHR>;; ''-Col Up HCOL2Q> PCOLINC!UPCOL2R>;; '' -Col Down HCOL3Q> } PCOLINC !DOWNCOL3R>;; '' -Lum Down  HCOL4 Q>  PCOLINC  !DOWNCOL4R>;; '' -Lum Up HCOL5Q> } PCOLINC!UP COL5R>!& FSETR0QSTICK0;;RETURN REQUEST ?:R>DHSETR;;YES !N !SETCOLX SETR:bX;lUPQFL }AG;;CHECK SCREEN FLAGvGUP0;;GR0 SCREENQCOLOR09;;CHANGE COLOUR OCOLINCM>PCOLOR09;;ON GR15 SCREEN!END! }DOWNQFLAG;;CHECK SCREEN FLAGGDOWN0;;GR0 SCREENQCOLOR09;;CHANGE COLOUR SCOLINCM>PCOLOR09;;ON GR15 SCREEN }!ENDUP0QCOL709;;INCREASE TEMP OCOLINCM>PCOL709;;COLOUR REGS.!END DOWN0QCOL709;;DECREASE TEMP S }COLINCM>PCOL709;;COLOUR REGSENDQ>;;CLEAR KEY BOARD PCH !SETCOL X;*DLISETA;;SAVE X REG45>QCOLT }AB9;;AND MAKE COLOURHPSAVTAB;;CHANGES TO COLOURR 2;;TABLES\2f2p2z2 QCOLTAB9PSAVTAB7> %DLPOS }LOOPYQISTAB8 IENDLOOP)> FENDLOOP1 ELOOPYENDLOOPQ@SAVTAB7 PDLICOLQCHR>;; ''-Col Up HCO }L12Q> PCOLINC!UP1COL12R>;; '' -Col Down HCOL13Q> PCOLINC !DOWN1$COL13R>;; '' -Lum Down }% HCOL14&Q>' PCOLINC( !DOWN1.COL14R>;; '' -Lum Up/ HCOL150Q>1 PCOLINC2!UP18 COL15R>!B FPPP1L } QSTRIG0V HPPP3`PPP4QSTRIG0j FPPP4t7~7 !JCOL1PPP3QSTICK0R> FSTEP1 TABPOS(> FPPP1) }> FPPP1PPP2QSTICK0R> HPPP27 7 !CLOOP PPP1Q>P( PXPOS2O>-< PHPOSP0FQ>`P PYPOSZ PPOS }CURd:nUP1QDLICOLx OCOLINC}M> PDLICOL P@SAVTAB7 UP2Q>PCH !SETCOLDOWN1QDLICOL SCOLINCM }> PDLICOL P@SAVTAB7 DOWN2Q>PCHSTEP1!SETCOLX;DLICOL X;CBACKQ>;;CHANGE ROUTINE"PCH }, ST12QCH6R>;; ''-Col Up7 HCOL228Q>9 PCOLINC:!BUP@COL22R>;; '' -Col DownA HCOL23BQ>C PCOLINC }D !BDOWNJCOL23R>;; '' -Lum DownK HCOL24LQ>M PCOLINCN !BDOWNTCOL24R>;; '' -Lum UpU HCOL25VQ>W P }COLINCX!BUP^ COL25R>h FST11r !SETCOL|!ST11QSTICK0;;CHECK FOR STICKR>;;PRESSED FST12:BUPQINITCO }L0 OCOLINCM> PINITCOL0 PCOLOR4 !BENDBDOWNQINITCOL0 SCOLINCM> PINITCOL0 PCOLOR4 BENDQ> } PCH !ST12 X;& XCOLTAB 4ICTAB0=4ICTAB1=4ICTAB2==4ICTAB3=5ICTAB0=5ICTAB1=5ICTAB2==5ICTAB30 X;: #X; Touc }h Tablet/Screen PositionsD X;N VHORZ =========================X B = }= = = = = ==============b ? ========= =!="=#=$=%=%=&='=(=)l ?  })=*=+=,=-=-=.=/=0=1=1=2=3=4=4=5=6=7=8=8v ? 9=:=;=<=<===>=?=@=@=A=B=C=D=D=E=F=G=G=H ? }I=J=K=K=L=M=N=O=O=P=Q=R=S=S=T=U=V=W=W=X ? Y=Z=Z=[=\=]=^=^=_=`=a=b=b=c=d=e=f=f=g=h 3 } i=i=j=k=l=m=m=n=o=p=q=q=r=s=t=u 3 u=v=w=x=y=y=z={=|=|=}=~==== 3 ======= }======== 3 =============== 3 =============== }  === X; X; 5VERT ============== 0 ============= }= 0 ==============!0 ============== !0 ======= }=======!0 =======~=}=|=|={=z=y=x !0 w=v=u=t=s=r=q=p=o=n=m=l=k=j=i*!9 i= }h=g=f=e=d=c=b=a=`=_=_=^=]=\=[=Z=Y4!? X=W=V=U=U=T=S=R=Q=P=O=N=M=L=L=K=J=I=H=G>!? F=E=D }=C=B=B=A=@=?=>===<=;=:=9=9=8=7=6=5H!? 4=3=2=1=0=/=/=.=-=,=+=*=)=(='=&=&=%=$=#R!? "=!= } =================\!T === = = = = = =============== }===f!X;p!X; Read Touch Tabletz!X;!,TABPOS$PADDL0;;USES PADDLE(0) FOR X POS! %PADDL1;;PADDLE(1) FOR Y POS!(> }! ETABPOS!)>! ETABPOS!Q>! PPADDL0! PPADDL1!(>! FOFFTAB!)>! FOFFTAB" QDRAWFLAG" FTTT1" )YT }EMP$" DYLESS." FTESTX8",B"CL" SYTEMPV"R>`" ETABPOSj" !TESTXt" YLESSC~"O>" SYTEMP"R>" ETABPOS"TESTX( }XTEMP" DXLESS" FTTT1","A" SXTEMP"R>" ETABPOS" !TTT1# XLESSA #O># SXTEMP#R>(# ETABPOS2#TTT1&X }TEMP<# 'YTEMPF# QHORZ9P# PXPOSZ# QVERT8d# PYPOSn# OFFTAB:x#X;$X;$AVLOOP AVERAGE$ $XTEMP"$ %YTEMP,$ QHORZ96$ }PXPOS;;OUR X POSITION@$ QVERT8J$PYPOS;;OUR Y POSITIONT$:^$X;h$AVERAGEQr$FAV1|$$>$AV2QXTEMP$P9$ QYTE }MP$P9$0$0$IAV2$Q>$P$ AV1$>$ AV3Q9$P9$0%IAV3% QXTEMP%P&%$>0% AV4:% PXTEMPD }% QYTEMPN%PX%$>b% AV4l% PYTEMPv%:% AV4Q>%P%AV6,%O9%DAV5%#%AV50%0%IAV6%V%W?% }V%W?&: &X;&X; Plot using Joystick &X;*&JOYPOSQ>P;;CENTRE CURSOR4& PXPOS>&O>-H& PHPOSP0R&Q>`\& PYPOSf& P }POSCURp&:z&X;&JOY2Q>;;READ JOYSTICK& PATRACT& QSTICK0& PJOYDIR&M> ;;GET X DIRECTION&V?&V?;;0=NOT MOVING& }N>;;1=LEFT&PXDIR;;2=RIGHT& QJOYDIR&M>;;GET Y DIRECTION& N>;;1=UP&PYDIR;;2=DOWN&FXX1&R>' HJDOWN' Q }YPOS'R>$'FXX1.' #YPOS8'!XX1B'JDOWNQYPOSL'FXX1V' "YPOS`' XX1QXDIRj'R>t' HJLEFT~' QXPOS'R>'FXX2' } #XPOS'!XX2' JLEFTR>'HXX2' QXPOS'FXX2' "XPOS' XX2QXPOS'O>-' PHPOSP0( QYPOS ( PPOSCUR( PDLPOS( } DELAY1(( DELAY12(:<(X;F( JPLOTQ>P(PCHZ( JOYPOS(JOYQJFLAG( HJOY1( !PLOOP(JOY1 JOY2( QSTRIG0(FXX }3(QCH(R>(FXX4( CHECKEY)!JOY")XX4 DELAY1,) DELAY16)!JOY@)XX3 SAVEPICA) XX5 PLOTB) QSTRIG0C)HJOY }D) JOY2E)!XX5J)!JOYK)X;L)SAVEPICQ>4SECPICM) PSAVPICN) Q>5SECPICO)PSAVPICP) QSAVMSCQ) PADRESSR)QSAVMSC }S)PADRESST)$>U)%>V)MOVEQ@ADRESS7W) P@SAVPIC7X)3Y) HMOVEZ)#ADRESS[)#SAVPIC\)2])(>^) HMOVE_):` })X;g)DELAY1$>h) %PERIODr) DELAY20|) HDELAY2)1) HDELAY2):)X;) PERIOD )JOYDIR ) XDIR ) YDIR } )X;)UNDOQ>4SECPIC) PSAVPIC) Q>5SECPIC)PSAVPIC) QSAVMSC) PADRESS)QSAVMSC)PADRESS)$>) }%>)UMOVEQ@SAVPIC7) P@ADRESS7)3) HUMOVE)#SAVPIC)#ADRESS)2)(>) HUMOVE):)X;)DJLOOPQ>;;C }LEAR KEY)PCH)Q>4CURSORD;;USE DRAWING)PCURSOR;;CURSOR*Q>5CURSORD*PCURSOR* JOYPOS;;CENTRE CURSOR&*DJOYQ }JFLAG0* HDJOY1:* !DLOOPD*DJOY1 JOY2N* QSTRIG0X* HDJOY4]* SAVEPICb* PLOTl*DJOY6QSTRIG0v* FDJOY6*DJOY3 JOY2 }* DELAY1*QCH*R>* FDJOY8* CHECKEY*Q>4CURSORD* PCURSOR*Q>5CURSORD*PCURSOR* !DJOY3*DJOY8 DELAY }1* QSTRIG0+ HDJOY3 + DRAWTO+DJOY7QSTRIG0 + FDJOY7*+ !DJOY4+ DJOY4QCH>+R>H+ FDJOY5R+ CHECKEY\+Q>4CURSORD }f+ PCURSORp+Q>5CURSORDz+PCURSOR+ !DJOY+DJOY5 DELAY1+ DELAY1+ !DJOY+X;+X;Check key pressed+X;+CHEC }KDIRR>;;UP+ HTRYDOWN+ QYPOS+FCK1+ "YPOS+CK1!MOVED,TRYDOWNR>;;DOWN, HTRYLEFT, QYPOS$,R>.,FCK28, # }YPOSB,CK2!MOVEDL,TRYLEFTR>;;LEFTV, HTRYRIGHT`, QXPOSj,FCK3t, "XPOS~,CK3!MOVED,TRYRIGHTR>;;RIGHT, HNODI }R, QXPOS,R>, FMOVED, #XPOS, MOVEDQ>,PCH, NODIR:,X;,CHECKEY CHECKDIR,TRYAR>?;;'A' PRESSED ?- HT !}RYC- QCURSOR-PCURSORH;;SAVE CURSOR-QCURSOR-PCURSORH - QJFLAG-FCK5- ADDLIJ- QCURSORH - PCURSOR!-Q "}CURSORH"-PCURSOR(-:2-CK5 ADDLI3- QCURSORH4- PCURSOR5-QCURSORH6-PCURSOR<-:=-TRYDJUMP!TRYDF-TRYCR #}>;;'C' PRESSED ?P- HTRYDJUMPQ- QCURSORR-PCURSORH;;SAVE CURSORS-QCURSOR;;FOR RETURNT-PCURSORHZ-QDLFLAG;;CHEC $}K IF DLI'Sd-M>@;;ARE ONn-FCC3;;NO !x-QFLAG;;CHECK FOR GR0-GCC3;;SCREEN- DLINES;;YES ! CARRY OUT-Q>@;;DLI ROUTI %}NES- PHPOSP0-Q>4CURSORC- PCURSOR-Q>5CURSORC-PCURSOR-QJFLAG;;CHECK JOYSTICK- FCLOOP- !JCOLCHNG- QCURS &}ORH- PCURSOR-QCURSORH-PCURSOR-:-Q>.P.CLOOP TABPOS.(>".FCC0,. AVLOOP6.!CC1@. CC0)>J. '}HCC1T. QSTICK0^.R>h.HCC4r. !CLOOP|.CC1PPOSCUR. PDLPOS. QXPOS.O>-. PHPOSP0. QSTICK0.R>. FCLOOP. (}CC2QSTICK0.R>.HCC2.CC3 SETCOL.CC4 ERASE1.Q>`/ PPOSCUR/Q>/PCH/ QCURSORH/ PCURSOR/QCURSORH )} /PCURSOR&/:0/TRYDR>:;;'D' PRESSED ?:/ HTRYP;/Q> ;;'P' PRESSED ?/ HTRYE/Q>/ PFILFLAG/7/7/Q>4CURSORM/ PCURSOR/Q>5CURSORM/PCURSOR/ QJFLA +}G/FPP1/ !JPLOT/PP1!PLOOP/TRYER>*;; 'E' PRESSED ?0 HTRYF 0Q>0PCH40 !ERASEPIC50TRYFR>8;;'F' PRESSED ?6 ,}0 HTRYJ70Q>80PCH90PFILFLAG;;SET FOR FILL:0Q>4CURSORF;0 PCURSOR<0Q>5CURSORF=0PCURSOR>07?07@0 QJFLAGA0FP -}P2B0 !JPLOTC0PP2!PLOOPG0TRYJR>;;'J' PRESSED ?H0 HTRYUR0 QJFLAG\0N>f0 PJFLAGp0 !NOT4q0TRYUR> ;; 'U' PRESSED .}?r0 HSPACEs0 UNDOt0Q>u0PCHv0:z0SPACER>!;;SPACE BAR0 HTRY10Q>;;MOVE CURSOR OFF0PHPOSP0;;SCREEN0P/0Q /}>@0P0 DELAY0 GR00Q>}0 PHPOSP00Q>`0 PPOSCUR0 DELAY1Q>:1P/1Q>$1P.1 !NOT481TRY1R>;; 0}KEY #1 PRESSED ?B1 HTRY2L1Q>V1 !CCOL`1TRY2R>;;KEY #2 PRESSED ?j1 HTRY3t1Q>~1 !CCOL1TRY3R>;;KEY #3 PRESSED 1}?1 HTRY41Q>1 !CCOL1TRY4R>;;KEY #4 PRESSED ?1 HNOT41Q>1CCOLPCOLOR;;CHANGE COLOUR1NOT4Q>;;CLEAR KEY 2}BOARD1PCH1:1X;2JCOLCHNG DLINES 2Q>2 PXPOS2JCOL1 JOY2(2 QYPOS22 PDLPOS<2QCHF2R>P2 FJCOL7Z2R>!d2 3}FJCOL4n2 CHECKDIRx2Q>2PCH2JCOL7QSTRIG02 HJCOL12JCOL8QSTRIG02 FJCOL82 SETCOL2 ERASE12Q>`2 PPOS 4}CUR2Q>2PCH2 QCURSORH2 PCURSOR2QCURSORH2PCURSOR2:2JCOL4 ERASE13Q>3PCH3 QCURSORH3 PCURS 5}OR3QCURSORH3PCURSOR3:"3X;,3X;63COL70 ;;TEMPORARY@3 COL71 ;;COLOUR REGISTERSJ3COL72 ;;FOR GR1 6}5 SCREENT3COL73 ;;USED IN MENU^3COL74 ;;SCREENh3#INITCOL0 ;;ORIGINAL COLOURSr3INITCOL1 ;;LOADED FROM|3 7}INITCOL2 ;;DISK3INITCOL3 3INITCOL4 3X;3$CHECKFLAGQDLFLAG;;DL FLAG SET ?3M>@3HLISTON;;YES !3: 8}3#LISTONQ>;;CHANGE VBI FOR GR.03 $>5VBI03 %>4VBI03 SETVBV3QCOLOR0;;SAVE COL REGS3 PINITCOL14 QCOLOR14 PIN 9}ITCOL24 QCOLOR2&4 PINITCOL304 QCOLOR4:4 PINITCOL0D4$DLPOS;;FIND ACTUALN4 LFINDQISTAB9;;LINE ON WHICHX4ILINE;;DL IS :} SETb4(>l4 FLINEv404 ELFIND4LINE&DLPOS;;AND SAVE4QICTAB09;;LOAD DL COLOURS4PCOLOR0;;DOWN TO COLOUR4QICTAB ;}19;;REGISTERS4 PCOLOR14 QICTAB294 PCOLOR24 QICTAB394 PCOLOR44:4X;4X; GR0 Control Loop5X; 5(GR0 CHECKFLAG; <};CHECK FOR DL PICTURE5QSAVM0L;;SET POINTERS TO 5PSAVMSC;;GR0 SCREEN*5 QSAVM0H45PSAVMSC>5QDLL0;;AND DISPLAY LISTH =}5P0R5 QDLH0\5P1f5Q>;;GR0 SCREENp5PWz5Q>;;SET GR FLAG5PFLAG;;TO GR0 SCREEN5$>5SAVECQCOLOR095PCOL7 >}09;;SAVE COLOUR REGS525(>5 HSAVEC5Q>5PCOLOR2;;SET COLOURS FOR5PCOLOR4;;GR0 SCREEN5Q>:5 PCOLOR15Q>; ?};CLEAR KEYBOARD6PCH6BUTTONQSTICK06R>;;JUST WAITING$6 HBUTTON.6Q>4DLIST1;;POINT TO FIRST86P;;DLI ROUTINEB6 Q @}>5DLIST1L6PV6Q>`6Pj6Q>:t6P/~6 TLOOPQCH6R>6FTT16 READKEY;;CHECK FOR KEY6TT1QSTICK0;;TIME TO R A}ETURN6R>;;TO GR15 SCREEN ?6 HTLOOP6 EXITQ>@6P6Q>6P/6 Q>4DLI6P7 Q>5DLI 7P7QDLL7;;RESET V B}ARIOUS7P0;;POINTERS TO(7QDLH7;;GR8 SCREEN27P1<7Q>;;GR7 SCREENF7 PDINDEXP7 PFLAGZ7$>d7!LOOPC1QCOL709;;RESET C} COLOURSn7 PCOLOR09x727(>7 HLOOPC17 QDLFLAG7M>@;;CHECK FOR DLI7HDLION;;PICTURE7!NODLI;;RETURNING7!DLION$ D}DLPOS;;AND IF DLI'S ON7QCOLOR0;;SAVE COLOURS TO7PICTAB09;;COLOUR TABLES7 QCOLOR17 PICTAB197 QCOLOR27 PICTAB29 E}8 QCOLOR48 PICTAB398 QINITCOL0"8 PCOLOR4,8 QINITCOL168 PCOLOR0@8 QINITCOL2J8 PCOLOR1T8 QINITCOL3^8 PCOLOR2h8Q> F}r8 $>5VBI|8 %>4VBI8 SETVBV8NODLIQSAVM7L;;RESET SCREEN8PSAVMSC;;MEMORY AND8QSAVM7H;;SAVE PIC8PSAVMSC8 G}SAVEPIC8:8X;8X; Modify GR0 Display List8X;8MODSCRQ>@;;2 LINES OF8%>;;GR2 FOLLOWED8P@DLL07;;BY8Q>;;1 H} LINE OF9 %>;;GR09P@DLL07;;AND93;;4 LINES OF&9 Q>;;GR309 P@DLL07:93D9Q>;;THE REMAINDER ISN9GRLP@DLL07;;GR0X I}93b9)> l9HGRLv9Q>9 P@DLL079:9X;9"X;Display List Interupt Routine9X;9 DLIST159QCOL74;;CHANGE COLOURS9P J} 9P;;COLBAK9 QCOL729P;;COLPF29 QCOL719P;;COLPF1: QCOL70 :P;;COLPF0:Q>4DLIST2;;POINT TO NEXT : P K};;DLI*: Q>5DLIST24:P>:7H:9R: DLIST25\:Q>;;CHANGE COLOURSf:P p:P;;COLPF2z:P;;COLBAK:Q> :P;;CO L}LPF1: Q>4DLIST1:P: Q>5DLIST1:P:7:9:X;:X; Print to Screen:X;:&PRINTPICBADR9;;EXPECTS LO ADDRESS:C M};;HI ADDRESS TO BE;PICBADR9;;FOUND IN A;Q> ;;& Y REGISTERS; PICCOM9$;PICBLEN9.;!CIO;;CIO WILL RTS !8;X;B; N}X;Text MessagesL;X;V;#TEXT1 A colour enhancer A=EOL`;5TEXT2 A DISK DIRECTORY AND OPTION BOARDA=EOLj;:TEXTP A 5 O} 5 5 5A=EOLt;:TEXT3 ACOLOUR 1 COLOUR 2 COLOUR 3 COLOUR 4A=EOL~;pictureA=EOL;9TEXTL A LOAD PICTURE - ENTER FILE NAME A=EOL;9TEXTS S} A SAVE PICTURE - ENTER FILE NAME A=EOL;9TEXTI A Directory - Press SPACE BAR to scroll A=EOL;9BLANK A T} A=EOL;NTEXT EOL;9TEXTDLON A DISPLAY LIST INTERRUPTS A=EOL;:TEXTDLOFF A U} DISPLAY LIST INTERRUPTS A=EOL<X; <X;<X;Initial GR.0 Screen<X;(<WRITE0Q>2<P;;TURN CURSOR OFF<< PCO V}LCRSF<$>;;RESET LEFT MARGINP<&RZ4TEXT1;;WRITE TEXT MESSAGESd< %>5TEXT1n< PRINTx< Q>4TEXT2< %>5TEXT2< PRINT W}< Q>4TEXTP< %>5TEXTP< PRINT< Q>4TEXT3< %>5TEXT3< PRINT< Q>4TEXT4< %>5TEXT4< PRINT< Q>4TEXT5< %>5TEXT X}5= PRINT= Q>4TEXT6= %>5TEXT6"= PRINT,= Q>4TEXT76= %>5TEXT7@= PRINTJ= Q>4TEXT8T= %>5TEXT8^= PRINTh=Q> r= P Y}ROWCRS|=Q>4TEXTDLOFF=%>5TEXTDLOFF= PRINT= Q>4TEXT9= %>5TEXT9= PRINT=:=X;= READKEY=R>;;'C' PRESSED ? Z}= HTRYS= SETCOL=:=TRYSR>>;;'S' PRESSED ?> HTRYL> SAVE>TRYLR>;;'L' PRESSED ?&> HTRYI0> LOAD:>TRYIR> [};;'I' PRESSED ?D> HTRYERN> INDEXX>TRYERR>*;;'E' PRESSED ?b> HRSPACEl> ENABLEDLv>RSPACER>!;;SPACE BAR ?>HRET> \}7>7>Q>>PCH> !EXIT> RETQ>>PCH>:>X;>!X; Load & Save Picture Routine>X;>LOAD SETCRS?Q>;;RESET D ]}ISK DL ?PINITCOL4;;FLAG? LTEXT;;WRITE TEXT MESSAGE ? GETFN;;GET FILENAME*? READIT;;GET FILE4?Q>>? PDLPOSH? Q>4D ^}LIST1R?P\? Q>5DLIST1f?Pp?Q>z?PԄ? WBLANK;;CLEAR TEXT MESSAGE? QDLFLAG?M>@;;CHECK DL FLAG?HJUMP1;;IF _}NO DLI SAVE?QINITCOL0;;COLOURS?PCOL74;;TO COLOUR REGS? QINITCOL1? PCOL70? QINITCOL2? PCOL71? QINITCOL3? PCO `}L72?:@JUMP1QICTAB0;;COPY INITIAL@PCOL70;;COLOURS USED BY@QICTAB1;;DLI PICTURE TO$@PCOL71;;COL REGS..@ QICTAB28 a}@ PCOL72B@ QICTAB3L@ PCOL74V@ :;;RETURN`@X;j@SETCRSQ>;;MOVE CURSOR ANDt@PCH;;CLEAR KEYBOARD~@Q>@P@Q>@ b}PROWCRS@$>@ Q>4NTEXT@ %>5NTEXT@ PRINT@Q>@ PROWCRS@:@X;@ LTEXT$>A Q>4TEXTL A %>5TEXTLA PRINTA c}:(AX;2AGETFNQ>;;GET FILENAMEPA Q>CPBINRZA PICCOM9dA Q>4DISKnA PICBADR9xA Q>5DISKAPICBADR9 d}AQ>A PICBLEN9AQ>APICBLEN9A CIOA Q>CGTXTRA PICCOM9AQ> A PICBLEN9AQ>APICBLEN9AQ>4DISK e}B PICBADR9BQ>5DISKBPICBADR9"B CIO,B$>6B QICBLEN9@B>JB2TB2^B%>hB%PICLOOPQPIC8;;ADD 'PIC' EXTENDER f}rB PDISK9|B2B3B)>B HPICLOOPB:BX;BREADITQ>BP/;;BLANK SCREENBQ>@;;INTERUPTS OFFBPB CLRISTAB;; g}CLEAR DL TABLEB$ DELAY;;TIME FOR SCREEN TO BLANKB$> ;;CLOSE #2B CLOSEC$> C Q>OPDIRC OPDISK&C GETDIR0C$> : q}B%DOS SYSB*)DUP SYSB:SAUTORUN SYSBARTIST M65BARTLOAD B)MYCIO M65C CLOSEDC QFNAMENCR>7XC FITSMICbCR>6lC HNOTMICvC QFNAMECR>2C FITSMICCNOTMIC$> C Q>OPINC OPDISK r}C PICLDRCITSMIC$> C Q>OPINC OPDISK;;OPEN FOR FILENAMEC" PLOAD;;LOAD MICROPAINTER FILECQ> C PROWCRSC$>D s}&ISTAB;;DLI ON 1st LINE D&Q>4TEXTDLON;;CHANGE TEXT TO DLI OND%>5TEXTDLON D !ERRP*D"NDLIQ> ;RETURN HERE IF NO DLI4D P t}ROWCRS>D$>HDQ>4TEXTDLOFFRD%>5TEXTDLOFF\DERRP PRINTfD!ERR$> ;;RETURN HERE ON ERRORpD CLOSE;;CLOSE FILEzDQ>:D u}P/D:;;ALL DONEDX;D#WBLANKQ>;;ERASE TEXT MESSAGESD PROWCRSD$>D Q>4TEXT9D %>5TEXT9D PRINTD Q>4BLANKD v} %>5BLANKD PRINTD Q>4BLANKE %>5BLANKE PRINTE:$EX;.EX;Save Picture Routine8EX;BESAVE SETCRSLE STEXT;;WRIT w}E SAVE TEXTVE GETFN;;GET FILENAME`EQ>jEP/tEQ>@~EPԈE$ DELAY;;TIME FOR SCREEN TO BLANKEQDLFLAG;;MOVE DL FLAG x}E PINITCOL4E'M>@;;AND CHECK FOR INTERUPT PICTUREE HJUMP2EQCOL70;;IF NOT INTERUPTEPINITCOL1;;SAVE COLOURSE QCOL71 y}E PINITCOL2E QCOL72E PINITCOL3E QCOL74F PINITCOL0 FJUMP2Q> ;;ALTER PARAMETERF!PPARM1;;TABLE TO SAVE PICTUREF z}PPARM2(F PPARM32F SAVEIT;;SAVE IT4DLIST1PFPZF Q>5DLIST1dFPnFQ>xFPԂFQ>;;RE {}SET PARAMETERFPPARM1;;TABLE FOR LOADF PPARM2F PPARM3F:;;ALL DONEFX;F STEXT$>F Q>4TEXTSF %>5TEXTSF PRINT |}F:FX;FSAVEIT$> ;;CLOSE IOCB2G CLOSEG$> GQ>OPOUT;;OPEN FOR OUTPUT"G OPDISK;;USING FILENAME,G PLOAD;;USE S }}AME ROUTINE6G$> @G CLOSE;;CLOSE IOCBJGQ>:TGP/^G :;;DONEhGX;rGX;Read Index|GX;G INDEX$>G%>GQ> *;;READ 'D ~}1:*.PIC'G PDISK9G2G PICLOOPG SETCRSG$>G Q>4TEXTIG %>5TEXTIG PRINTG$> G Q>OPDIRH OPDISKH!FIRST }GETDIR;;READ DIRECTORYH GLAST&H DIRSCN0H#CHECKQCH;;ONE RECORD AT A TIME:HR>;;KEY PRESSED ?DHFCHECK;;NEXT RECORDEH }R>!NH FFIRSTXHLAST$> ;;NO MORE ENTRIESbH CLOSE;;CLOSE FILElH WBLANK;;CLEAR TEXTvH:;;AND RETURNHX;HDELAY$>;; }DELAY LOOPH%>H TIME0H HTIMEH1H HTIMEH:HX;HX; Clear D/L on/off TableHX;HCLRISTAB$>HQ>;;$FF indica }tes noILOOP12PISTAB9;;interupt I2I(> I HLOOP12*I:4IX;>IX; Enable/Disable D/L'sHIX;RIENABLEDLQ>\IPCHfI QI }NITCOL4pIN>@zI PINITCOL4I PDLFLAGI CLRISTABI RESETCOLTABI QDLFLAGIM>@I FLOOP22IQ> I PROWCRSI$>IQ }>IPI Q>4NTEXTI %>5NTEXTJ PRINTJQ> J PROWCRS$JQ>4TEXTDLON.J%>5TEXTDLON8J PRINTBJQ>LJ PISTABVJ:`J }LOOP22Q> jJ PROWCRStJ$>~JQ>JPJ Q>4NTEXTJ %>5NTEXTJ PRINTJQ> J PROWCRSJQ>4TEXTDLOFFJ%>5TEXTDL }OFFJ PRINTJ GR15JLOOP2CQINITCOL0J PCOL74K QINITCOL1 K PCOL70K QINITCOL2K PCOL71(K QINITCOL32K PCOL72xKLOOP23PICTAB09K2K(>K HLOOP23K QCOL71K PINITCOL2K$>K }LOOP24PICTAB19K2K(>K HLOOP24K QCOL72K PINITCOL3K$>LLOOP25PICTAB29L2L(>"L HLOOP25,L QCOL746L PIN }ITCOL0@L$>JLLOOP26PICTAB39TL2^L(>hL HLOOP26rL:|LX;L PLOAD%>;;COPY PARAM LIST 2L?GETPICTQPARM28LPb8;; }TO IOCB #1 TO GETL1;; PICTURE DATALI?GETPICT;;LQSAVM7L;;MOVE TO SCREENLPd;;MEMORY LOCATIONL QSAVM7HLPeL }CIO;;L%>;;COPY PARAM LIST 1L?GETCOLSQPARM18LPb8;;TO IOCB #1 TO GETM1;; COLOURS AND STUTUSMI?GETCOLS;; BYTES }M CIO&M QINITCOL40M PDLFLAG:MM>@DM H?GETTABSNM7XM7bM !NDLIlM#?GETTABS%>;;COPY PARAM LIST 3vM"?GTQPARM38;;TO IO }CB #1 TO GETMPb8;; INTERRUPT AND THEM1;; 4 COLOUR TABLESM I?GT;M CIO;; call CIOM:MX;MX; Parameter lists.MX };M1PARM1 ==4INITCOL0=5INITCOL0====M!PARM2 =======M+PARM3 ==4ISTAB=5ISTAB==== }MX;M>D:ARTLOADNX; NX; DLI routineNX; N DLIP *N5;;SAVE ALL REGS4NA>N5HNCRN5\N$>fNLOOP34QISTAB9pN G? }NOINTzN QICTAB39N %ICTAB19NP ԘNPТN'ЬN QICTAB09N %ICTAB29NPN'N2N(>N HLOOP34N7N?O7O }>O7$O9.O?NOINTP 8O2BO(>LO HLOOP34VO7`O?jO7tO>~O7O9OX;O X; The Vertical Blank RoutineOX;OVBIQINITC }OL0OPO ERASEO PLDRAWO QCOLP0OO>OM>O PCOLP0O PCOLP1P!b;;OS VBI exit PX;PX; Read DirectoryPX; }(PGETDIR$> 2PQ>4FNAMEPP PICBADR9ZP Q>5FNAMEdPPICBADR9nPQ>xP PICBLEN9PQ>PPICBLEN9 }P!CIOPX;PX; Write Directory to ScreenPX;PDIRSCN CHKFREPQ>PPCHP Q>EOLP PFNAME P$>PQ> Q PCOLC }RSQQ>Q PROWCRS"Q Q>4FNAME,Q %>5FNAME6Q PRINT@Q:JQX;TQ X; Check if Free Sector Entry^QX;hQCHKFREQFNAMErQR> } |Q FNOTFREQ7Q7Q7Q7Q !FIRSTQ NOTFRE:QX;QX; Erase player 0 (Cursor)QX;Q ERASEQ>Q$>QELOOPPPLR09 }Q0R HELOOPR:RX;&R#X; Erase Player 1 (DL Indicator)0RX;:RERASE1Q>DR$>NRE1LOOPPPLR19XR0bR HE1LOOPlR:vRX; }RX; Draw player 0RX;RPLDRAWQPOSCURRO>$R>R%> RDRAWLOOPQ@CURSOR7R PPLR09R0R1R IDRAWLOOPR:RX;S }X; Draw Player 1 SX;SDLINES$> S%> *S!LOOP10QISTAB9;;Read DL table4SN>>SPPLR18;;Invert and copyHS3;;to Display }RS2\S(>fS HLOOP10pS:zSX;SX; GR0 VBI RoutineSX;SVBI0 ERASES PLDRAWS QCOLP0SO>SM>S PCOLP0S PCOL }P1S!bSX;SX;The Title ScreenSX;TINITSCRQ>T PSDMCTLT MODLIST$TQ>.TP8TPRBT$>LT Q>4BLANKVT %>5B }LANK`T PRINTjTQ>tT PROWCRS~TQ>T PCOLOR2TQ>4INITEXT1T%>5INITEXT1T PRINTTQ>T PROWCRSTQ>4TEXTLINET }%>5TEXTLINET PRINTTQ>T PROWCRSTQ>4INITEXT2U%>5INITEXT2 U PRINTUQ> U PROWCRS(UQ>4INITEXT32U%>5INIT }EXT3PU PROWCRSZUQ>4TEXTLINEdU%>5TEXTLINEnU PRINTxUQ>U PROWCRSUQ>4INITEXT4U%>5INITEXT4U }PRINTUQ>*U PSDMCTLUINLOOP$>U #COLOR3U XLOOP%>U YLOOPQUR>UFOUTU1V HYLOOPV2V(>"V HXLOOP, }V !INLOOP6VOUT:@VX;JV`INITEXT1 A COLOUR ENHANCER micropainter and atariartist A=EOLTV\IN }ITEXT2 A Program by Dave Blackshaw (c) 1986 Hillside SoftwareA=EOL^V\INITEXT3 A MICROPAINTER (c) DATA }SOFT 1982 ATARIARTIST (C) ATARI 1983 A=EOLhV$INITEXT4 A A=EOLrV-TEXTLINE A _________ }___A=EOL|VX;VMODLISTQ0V PDLL0VQ1V PDLH0VQ>V%>VLOOP9P@DLL07V3V)> V HLOOP9V%>VQ>V P@ }DLL07WQ>W3W P@DLL07&W:0WX;:W GOADRDW STARTQ>V%>VLOOP9P@DLL07V3V)> V HLOOP9V%>VQ>V P@ 9 *X;Atariartist Compressed picture loader 'X;for use with Enhanced Micropainter X; X;All equates in main fileX;}READHDR#PICCTR( !GETBYTE2PICLDRQ>;;LOADING<PPICCTR;;STARTS HEREFQ>P$> Z PICCOM9dLBL007 READHDRn $}PICCTRx(> FLBL006(> FSVCOLRPIC(> HLBL007 PLOC14 !LBL007SVCOLRPICPINITCOL1 READHDR P}INITCOL2 READHDR PINITCOL3 READHDRQ>;;DLI'S OFF PINITCOL4 PDLFLAG READHDR" PINITCOL0, !LBL0076}LBL006Q>@ PLOC7J PLOC8T QSAVM7L^ PPICCTRh PLOC9rQSAVM7L|PPICCTR PLOC9LBL030 GETBYTE5}$> &LOC10M> PLOC117M> PLOC12 HLBL025 GETBYTE PLOC10 GETBYTE PLOC12LBL025"LOC1}2& QLOC110 HLBL026: GETBYTED PLOC13NLBL029!LBL028XLBL032"LOC12bQ>l RLOC12v HLBL029 "LOC10Q>} RLOC10 HLBL029 FLBL030LBL036"LOC12Q> RLOC12 HLBL026 "LOC10Q> RLOC10 FLBL030LBL026 }GETBYTE  PLOC13LBL028Q>  RLOC14* FLBL0314LBL035FLBL032> QLOC13H%>R P@PICCTR7\,fQ>Pp OPICCTRz} PPICCTRQ>OPICCTRPPICCTR #LOC8Q>` RLOC8 HLBL033Q> RLOC7 HLBL034,Q> OLO}C9 PLOC9 PPICCTRQ>$ PLOC7. PLOC88 OLOC9B PLOC9LPPICCTRV !LBL033`LBL034#LOC7j,tQ>(~} OLOC9 PPICCTRQ> PLOC8 OLOC9PPICCTRLBL033QLOC11 FLBL035LBL037HLBL036LBL031QLOC13}%> P@PICCTR7 #PICCTR HLBL311 #PICCTRLBL311QLOC11 FLBL035( HLBL0372X;<X; GET BYTE ROUTINEAX;}FGETBYTE$> PQ>Z PICBLEN9dPICBLEN9n CIOx GLBL038: LBL0387777!NDLI;;No DLI'sOUTINEAX;r &X; CIO Routine to enable Plot, Draw)X; and Fill to work for ANTIC mode 'E' X; on ATARI 400/800 machines.(X;2.X;} Partly based on 400/800 Operating System<X;F#X; All Equates are in main file.PX;ZX; Version 1.84 June 1987._X;`}X;d MYCIO%n 'HOLD5R> FDRAWITR> FFILLIT PLOTIT:X;FILLIT FILLIT1:X;DRAWIT DRAWI}T0 CIRTN2:X;PLOTITQCIOCHR, PATACHR6 RANGE@ OUTPLTJ:TX;^X; Actual Draw RoutinehX;rDRAWIT0QROWCR}S| PNEWROW QCOLCRS PNEWCOLQCOLCRSPNEWCOLQ> PROWINC PCOLINC; QNEWROW SOLDROW PDEL}TAR EDRAWIT1Q> PROWINC QDELTARN>&,0O>: PDELTARD DRAWIT1;N QNEWCOLX SOLDCOLb PDELTAClQNE}WCOLvSOLDCOLPDELTAC EDRAWIT2Q> PCOLINC QDELTACN> PDELTACQDELTACN>PDELTA}C #DELTAC HDRAWIT2#DELTACDRAWIT2$> %> 'COLAC  DRAWIT3AC* PROWAC94 QOLDROW9> PROWCRS9H}0R IDRAWIT3A\ QDELTACz2?QDELTACPCOUNTR PENDPT HDRAWIT3 QDELTAC RDELTAR EDRAWIT3 }QDELTAR$>? DRAWIT3C PCOUNTR PENDPT5 QENDPT$V?.78W?B PROWAC9LDRAWIT4AQCOUNTRVLCOUNTR}` HDRAWIT11j !DRAWIT10t DRAWIT11,~ QROWAC ODELTAR PROWAC DDRAWIT5 #ROWACDRAWIT5QROWAC RE}NDPT DDRAWIT6 HDRAWIT5A QROWAC RENDPT DDRAWIT6 DRAWIT5A, QROWCRS  OROWINC PROWCRS$>( SUB}END2 DRAWIT6,< QCOLACF ODELTACP PCOLACZ QCOLACdODELTACn PCOLACx RENDPT DDRAWIT8 HDRAWIT6A} QCOLAC RENDPT DDRAWIT8DRAWIT6A*COLINC IDRAWIT6B "COLCRS QCOLCRSR> HDRAWIT7QCOLCRS FD}RAWIT7"COLCRS IDRAWIT7DRAWIT6B#COLCRS" HDRAWIT7,#COLCRS6DRAWIT7$>@ SUBENDJDRAWIT8 RANGET } OUTPLT^;h QCOUNTRrS>| PCOUNTRQCOUNTRS>PCOUNTR GDRAWIT10 !DRAWIT4A DRAWIT10, RETUR1}:X;X; Check for valid rangeX; RANGEQ> RROWCRS DRNGERR FRNGERRQ>& RCOLCRS0 DRNGERR: FRNGERRX}:v RNGERR77 !RETUR1X;X; Plot Point on ScreenX;OUTPLTQROWCRS POLDROW QCOLCRS POLDCOLOUTCH}2QATACHRRM>\L>@f PCHARp CONVRTzOUTCH3QCHARSHIFTUVSHFAMT ESHIFT2T? !SHIFTUSHIFT2MDMASK P}TMPCHR QDMASKN> M@ADRESS7 LTMPCHR P@ADRESS7:X; X; SUBEND; QROWAC9 SENDPT PROWAC9 QRO}WAC9 SENDPT( PROWAC92 :< X;F *X; Convert row/column to screen addressP X;Z CONVRTQROWCRSd 5n QCOLCRSx }5 PUTMSC QROWCRS PMLTTMP Q> PMLTTMP QMLTTMP T? UMLTTMP PHOLD1 %MLTTMP 'HOLD2 T?} UMLTTMP T?" UMLTTMP, ,6 OHOLD1@ PMLTTMPJ QMLTTMPT OHOLD2^ PMLTTMPh %>r CONVR11| GCONVR2} TMLTTMP UMLTTMP !CONVR1 CONVR2%> QCOLCRS $> CONVR31 GCONVR4 0 VCOLCRS W? WTMPLBT} !CONVR3 CONVR43 , OMLTTMP& PMLTTMP0 DCONVR5: #MLTTMPD CONVR5;N CONVR6WTMPLBTX ,b 0l ICONVR6v $}TMPLBT QMLTTMP , OADRESS PADRESS POLDADR QMLTTMP OADRESS PADRESS POLDADR QDMASKT9 }PDMASK PSHFAMT 7 PCOLCRS 7* PROWCRS4 :> X;H PUTMSCQSAVMSCR PADRESS\ QSAVMSCf PADRESSp :z X; }DMASKT ===  =0= = X; X; Fill Area Routine X; FILFLG2  X; FILLIT1QFILDAT PATACHR PHA}CRS RANGE GETPLT PCHAR2 RFILDAT HFILLIT1A : FILLIT1AQHPOSP0 PHOLD4 Q> PHPOSP0 "COLCRS Q}> RCOLCRS FFILLIT2 GETPLT RCHAR2 FFILLIT1A$FILLIT2#COLCRS.FILLIT2BQCOLCRS8 PLEFTCRSL FILLOOPM} QLEFTCRSN RRIGHTCRSP EFILLIT4V #ROWCRS`Q>j RROWCRSt DFILLIT4~ QLEFTCRS PCOLCRS GETPLT RCHAR2 F}FILLIT1AFILLIT2A#COLCRSQ> RCOLCRS DFILLIT4 QCOLCRS RRIGHTCRS FFILLIT4 GETPLT RCHAR2 FFILLI}T2B !FILLIT2AFILLIT4QTMPCOL PCOLCRS QTMPROW PROWCRS "ROWCRSQ> RROWCRS FFILLIT9 FILLIT5"COL}CRSQ> RCOLCRS FFILLIT6# GETPLT( RCHAR2- FFILLIT52FILLIT6#COLCRS7FILLIT6AQCOLCRS< PLEFTCRSF FIL}LOOPG QLEFTCRSH RRIGHTCRSJ FFILLIT9K "ROWCRSPQ>U RROWCRSZ FFILLIT9_ QLEFTCRSd PCOLCRSi GETPLTn RCHAR}2s FFILLIT5xFILLIT7#COLCRSyQ>z RCOLCRS{ DFILLIT9| QCOLCRS} RRIGHTCRS~ FFILLIT9 GETPLT RCHAR2 FF}ILLIT6A !FILLIT7FILLIT9QHOLD4 PHPOSP0:X;FILLOOP OUTPLT #COLCRSQ> RCOLCRS DFILLOOP2 GE}TPLT RCHAR2 FFILLOOP QCOLCRSFILLOOP2PRIGHTCRS "RIGHTCRSQ FSTOPFILL: STOPFILL77 QHOLD5}P:X; RIGHTCRS LEFTCRS  HOLD4  HOLD5 hX;|PHACRSQROWCRS PTMPROW QCOLCRS PTMPCOL:}X;GETPLT CONVRT Q@ADRESS7 MDMASKSHIFTDVSHFAMT ESHIFT1V? ISHIFTDSHIFT1PCHAR:X; CHAR2} X;GETPLT CONVRT Q@ADRESS7 MDMASKSHIFTDVSHFAMT ESHIFT1V? ISHIFTDSHIFT1PCHAR:X; CHAR2