@L|}6CD l0C)HCC WhL/h `CmCDiD`  R@P1  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% }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}CEDC0X:Ȣ Y ȱC* ? 0.. , 0%n ?A[ 0 : L`L  `, 0`Y}`piH n0)բY? 08`0 }  0$L GGȽG L `8L`L}8`  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 SYS IIIIIIIIIIIIIIIC`0 ߩ0}}} HE |||DDOS DOSDOS SYS }}}}CDOS SYS} 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$} 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?} CE: vC y@y@`A# *` :105L; 0L>! * 0` * : ;` 1 *` 1 *` Disk Drive Sp,}eed:XXX RPM~~~Drive # X PRESS:C > check drive speedL > list error sectorsP > print error sectorsW > write al-}l zeroesto error sectorsM > return to main menui0k ^ 1 :ɛL 800 퍍L5 RETRY ERROR 3 TIME(S)؆莟.}R'S  `=D;EHI 1 1! @ :ɛ8A0.) ȅ 1 1i/}il ! 1L NO SUCH ITEMSELECT ITEM OR FOR MENU!L; .{z:*{}.|~ 1 0 00}JB 18L^%|DLl%DIRECTORY--SEARCH SPEC,LIST FILE? # O 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} BL1TYPE "Y" TO DELETE...DELETE FILE SPECCOPY--FROM, TO?OPTION NOT ALLOWED007 FREE SECTORS COPYING---D1:FORT4}UNE.RUN# 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}PdD#ELO- A.BJdD#E 1 1HH 0hh|DL^%1}:e# Lt% e#dD#EL%7} 1 0 . .0% 1L WILD CARDS NOT ALLOWED IN DESTINATION 0 A.|K@C}/$/CHu ξL/L DRIVE TO WRITE DOS & DUP TO?WRITING NEW DOS & DUPTYPE "Y" TO WRITE DOS/DUP:DISK 2.?}D2: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?DIA}SK 1 IS WRITE-PROTECTED !!TYPE "Y" IF OK TO USE PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV. h  ,B}  `CԭC ؠȱC)CȩC`߅C ذ ٥ԍCՍC`800  `0  0`C}i7``ߍDCEHIB 10H``TRʠĩ`D` +CDCC /,D} 8 l0浥CޥC` b,`8` g+  CRC S0NCC S09CE}ե ݩԩ (۰ ٰ ؠ)`i iAC :L., :0 C :`i F}iAC`CC X*C>> ` 0>>  D, q; ,`COPY SECTORS`RLS ; , ,>  , ,G}ۢ>  ,?  , ,`= `=L :ɛ`hL S SL1) 8`NAME OF FILE TO MOVE?- 0 0|DLtH}% A.= ` <0 0 .@L# .BJ 1  DEHIB V L1 = g <0,L. I} JB|,A#Pd#DE 1 HI BDEHHII 1 B 1 = ` <0,0Lf- B VJ},A#P= ` <0 0L#L ߢ) 1* 1 ~0YjC8C}mm ݭK}}`8}``|* ? ɛ,`|:(|/ 1L `INVALID DESTINATIL}ON:DOS.SYS0 0H{ $22Δ $28/L /) $2 Π $2 0 ξM}hAΞB,0 J 1 BޝDEHI,HDE 1H$IHIDELSAVE-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ӝDL1|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 D4CT} $;CC $;C $;CC 8C Z: *DCC ,=  , lɀL +@} ;++++++++++++++++++++++++++++++++++++; EPSON/ATASCII PRINT FORMATTER ; Prints listed BASIC programs and; text using EV}pson bit mode graphics; to print non-ASCII characters;; With suitable changes to the Epson; specific variables immediatelW}y ; below, this program will work with; a number of other graphic printers.;; (c)1983 Leo G. Laporte; BOX 21248X}; San Jose, CA 95151; CIS PPN # 70215,1022; Placed in public domain 12/8/83.;++++++++++++++++++++++++++++Y}++++++++ BYTE rts = [$60], ; OSA+ bug fix bank = $D500 ; Atari DOS bug fix MODULE DEFINE TRZ}UE="1", FALSE="0", BOOL="BYTE", KEY = "0", FILE = "1", EPSON = "2", [} MAXLINE = "55" ; max # of lines per page ; Epson specific stuff CHAR ARRAY grmode = [4 27 75 8 0], ; i\}nitializes bit-mode graphics (ESC K 8 0) ; and tells printer that eight graphic ; data bytes will follo]}w. italics_on = [2 27 '4], ; if you have an older Epson w/o italics italics_off = [2 27 '5] ; change ^}these strings to another suitable font CHAR formfeed = [12] ;----------------------------------_}--; PROCEDURE DECLARATIONS;------------------------------------ PROC grprint(CHAR chr) ; does a graphic print of non-AS`}CII; characters BYTE ARRAY mask =[128 64 32 16 8 4 2 1], ; bit values D7 to D0 CHARSET = $E000, ; location a}of character set in ROM grdata(8) ; character data array BYTE offset, ; current character data byte bb}it, ; current bit in byte byt ; graphic data byte BOOL bit_set, ; is bit set? flag inv_flag ; inversc}e char? CARD charloc ; location of character data ; check for inverse character IF (chr & 128) THEN inv_flag d}= TRUE chr ==& 127 ; strip off inverse bit ELSE inv_flag = FALSE FI ; find character data in ROM IF ce}hr < 32 THEN charloc = (chr + 64) * 8 ELSEIF chr > 31 AND chr < 96 THEN charloc = (chr - 32) * 8 ELSE chaf}rloc = chr * 8 FI ; rotate char data for Epson Zero(grdata, 8) ; clear character graphics data FOR offset = 0 g}TO 7 ; step through char data DO FOR bit = 0 TO 7 DO bit_set = CHARSET(charloc + offset) & maskh}(bit) IF inv_flag THEN IF bit_set = FALSE THEN grdata(bit) ==+ mask(offset) i} FI ELSEIF bit_set THEN grdata(bit) ==+ mask(offset) FI OD OD j}; dump character data PrintD(EPSON, grmode) FOR byt = 0 TO 7 DO IF grdata(byt) = 155 THEN ;prevent sendik}ng CR and thereby grdata(byt) = 151 ;cancelling graphics mode (only FI ; occurs dul}ring printing of inverse A) PutD(EPSON, grdata(byt)) OD RETURN ;----------------------------------- PROC feedm}(BYTE lines) ; feeds "lines" lines BYTE i FOR i = 1 TO lines DO PutDE(EPSON) OD RETURN ;-------n}----------------------------- PROC indent(BYTE col) ; tabs to col BYTE space = [32], i FOR i = 1 TO col DO PutD(o}EPSON, space) OD RETURN ;------------------------------------ BYTE FUNC PrintTEXT(CHAR ARRAY line) ; prints TEXT inpp}ut line CHAR eol = [155], chr BYTE cnt, col CARD linecnt ; number of lines output cnt = 1 ; current character q}in linecol = 0 ; current printer columnlinecnt = 0 ; lines printed chr = line(cnt) IF chr = eol THEN PutDE(EPr}SON) RETURN (1) FI WHILE chr <> eol DO IF ; printable character (chr > 31 AND chs}r < 123 AND chr <> 96) THEN PutD(EPSON, chr) col ==+ 1 ELSE grprint(chr) col ==+ 2 FIt} IF (col > 80) THEN PutDE(EPSON) linecnt ==+ 1 col = 0 FI cnt ==+ 1 chr = line(cnt)u} ; get next char OD PutDE(EPSON)linecnt ==+ 1 RETURN (linecnt) ;------------------------------------ BYTE FUNC Priv}ntBASIC(CHAR ARRAY line) ; prints BASIC input line CHAR space = [32], invsp = [160], colon = [58],w} semic = [59], eol = [155], quote = [34], comma = [44], chr BYTE cnt, col, tab BOOL inqux}otes CARD linecnt ; number of lines output cnt = 1 ; current character in linecol = 0 ; current printer columnliy}necnt = 0 ; lines printedinquotes = FALSE chr = line(cnt) IF chr = eol THEN RETURN (0) FI ; drop leading spaces...}; Horizontal screen dump for EPSON printer; prepared on 30 Apr 84 by Jim Watson; Use par of Clinton Parker's PLOT; routin{}e from ANALOG No.18, Apr84BYTE row=[40],y=[1],x=[1],j,k, Cvalue,LTR,INVFLGBYTE ARRAY SCRNstring(420)BYTE ARRAY d|}iv8(320)BYTE POINTER posCARD ARRAY Line(192)CARD col=[0],i,l, ctr,start=[1],end=[59500], Screen=88,Offset,Cha}}rsetBYTE FUNC ASCtoGR8(BYTE Ltr) IF Ltr>127 THEN Ltr==-128 FI IF Ltr<32 T~}HEN RETURN(Ltr+64) ELSEIF Ltr<97 THEN RETURN(Ltr-32) FIRETURN (Ltr)PROC Gr8Txt()} y=125 x=20 Offset=Screen+y*40+x INVFLG=(') LTR=ASCtoGR8(INVFLG) Charset=57344+Ltr*8 FOR j=}0 TO 7 DO Cvalue=Peek(charset+j) IF INVFLG>127 THEN Cvalue== ! 255 FI } PokeC(Offset+j*40,Cvalue) ODRETURNPROC Frame() Plot (2,2) DrawTo (318,2) DrawTo (318,190) } Drawto (2,190) Drawto (2,2) Plot (4,4) Drawto (316,4) Drawto (316,188) Drawt}o (4,188) Drawto (4,4)RETURNPROC Isometric() PLOT (12+col,18+row) DRAWTO(39+col,3+row) DRAWTO(78+col,27}+row) DRAWTO(51+col,42+row) DRAWTO(12+col,18+row) PLOT (78+col,27+row) DRAWTO(78+col,57+row) DRAWTO(51+col,72+row) }DRAWTO(12+col,48+row) DRAWTO(12+col,18+row) PLOT (51+Col,42+Row) DRAWTO(51+col,72+row)RETURNPROC Cabinet() PLOT (}21+col,30+row) DRAWTO(39+col,18+row) DRAWTO(69+col,18+row) DRAWTO(51+col,30+row) DRAWTO(21+col,30+row) PLOT (69+col,}18+row) DRAWTO(69+col,48+row) DRAWTO(51+col,60+row) DRAWTO(21+col,60+row) DRAWTO(21+col,30+row) PLOT (51+Col,30+Row)} DRAWTO(51+col,60+row)RETURNPROC TwoPoint() PLOT (15+col,18+row) DRAWTO(37+col,13+row) DRAWTO(75+col,24+row) DRAWT}O(51+col,36+row) DRAWTO(15+col,18+row) PLOT (75+col,24+row) DRAWTO(75+col,50+row) DRAWTO(51+col,66+row) DRAWTO(15+co}l,36+row) DRAWTO(15+col,18+row) PLOT (51+Col,36+Row) DRAWTO(51+col,66+row)RETURNPROC Dumpinit() BYTE POINTER LineL}oc LineLoc=Screen FOR i=0 TO 191 DO Line(i)=LineLoc LineLoc==+40 OD FOR i=0 TO 319 DO d}iv8(i)=i/8 ODRETURNPROC Makestring(BYTE vertpos) BYTE vline BYTE ARRAY TEMP(6) FOR i=0 TO 319 DO k=(i&7}) vline==LSH 9 FOR j=0 TO 5 DO pos=line(j+vertpos)+div8(i) Temp(j)=pos^ Temp(j)==}LSH k Temp(j)==RSH 7 vline==% Temp(j) IF j<5 THEN vline==LSH 1 FI } OD SCRNstring(50+i)=vline ODRETURNPROC SCRNdmp() BYTE ctr,t,vertpos=[0] FOR i=0 TO 420 DO SC}RNstring(i)=' OD Dumpinit() Close(3) OPEN(3,"P:",8) PrintDE(3,"A") FOR ctr=0 TO 31 DO MakeSTRING(vert}pos) PrintD(3,"K") FOR i=1 to 420 DO PutD(3,SCRNstring(i)) OD PutDE(3) vertpos}==+6 OD PrintDE(3,"@") CLOSE(3)RETURNPROC Main() GRAPHICS(24) SetColor(2,8,0) SetColor(4,3,0) color=1 Fr}ame() col=10 TwoPoint() col=115 Isometric() col=220 Cabinet() Gr8Txt() FOR ctr=start TO end DO ;****** nul}l statement OD SCRNdmp()RETURN ter; prepared on 30 Apr 84 by Jim Watson; Use par of Clinton Parker's PLOT; routin(; Side screen dump for EPSON printer; prepared on 30 Apr 84 by Jim Watson; Use part of Clinton Parker's PLOT; routine from} ANALOG No.18, Apr84BYTE row=[40],y=[1],x=[1],j, Cvalue,LTR,INVFLGBYTE ARRAY SCRNstring(420)BYTE ARRAY div8(320)}BYTE POINTER posCARD ARRAY Line(192)CARD col=[0],i, ctr,start=[1],end=[59500], Screen=88,Offset,CharsetBY}TE FUNC ASCtoGR8(BYTE Ltr) IF Ltr>127 THEN Ltr==-128 FI IF Ltr<32 THEN RETURN(Ltr}+64) ELSEIF Ltr<97 THEN RETURN(Ltr-32) FIRETURN (Ltr)PROC Gr8Txt() y=125 x=20 Offset=Screen+y}*40+x INVFLG=(') LTR=ASCtoGR8(INVFLG) Charset=57344+Ltr*8 FOR j=0 TO 7 DO Cvalue=Peek(charset+j) I}F INVFLG>127 THEN Cvalue== ! 255 FI PokeC(Offset+j*40,Cvalue) ODRETURNPROC Frame() Plot (2},2) DrawTo (318,2) DrawTo (318,190) Drawto (2,190) Drawto (2,2) Plot (4,4) Drawto (3}16,4) Drawto (316,188) Drawto (4,188) Drawto (4,4)RETURNPROC Isometric() PLOT (1}2+col,18+row) DRAWTO(39+col,3+row) DRAWTO(78+col,27+row) DRAWTO(51+col,42+row) DRAWTO(12+col,18+row) PLOT (78+col,27}+row) DRAWTO(78+col,57+row) DRAWTO(51+col,72+row) DRAWTO(12+col,48+row) DRAWTO(12+col,18+row) PLOT (51+Col,42+Row) }DRAWTO(51+col,72+row)RETURNPROC Cabinet() PLOT (21+col,30+row) DRAWTO(39+col,18+row) DRAWTO(69+col,18+row) DRAWTO(5}1+col,30+row) DRAWTO(21+col,30+row) PLOT (69+col,18+row) DRAWTO(69+col,48+row) DRAWTO(51+col,60+row) DRAWTO(21+col,6}0+row) DRAWTO(21+col,30+row) PLOT (51+Col,30+Row) DRAWTO(51+col,60+row)RETURNPROC TwoPoint() PLOT (15+col,18+row)} DRAWTO(37+col,13+row) DRAWTO(75+col,24+row) DRAWTO(51+col,36+row) DRAWTO(15+col,18+row) PLOT (75+col,24+row) DRAWT}O(75+col,50+row) DRAWTO(51+col,66+row) DRAWTO(15+col,36+row) DRAWTO(15+col,18+row) PLOT (51+Col,36+Row) DRAWTO(51+co}l,66+row)RETURNPROC Dumpinit() BYTE POINTER LineLoc LineLoc=Screen FOR i=0 TO 191 DO Line(i)=LineLoc } LineLoc==+40 OD FOR i=0 TO 319 DO div8(i)=i/8 ODRETURNPROC SCRNdmp() CARD t FOR i=0 TO 420 D}o SCRNstring(i)=' OD Dumpinit() Close(3) OPEN(3,"P:",8) PrintDE(3,"A") FOR t=0 TO 319 STEP 8 DO } FOR j=0 to 191 DO pos=line(j)+div8(t) SCRNstring(254-j)=POS^ OD PrintD(3,"K") FOR i=}1 TO 420 DO PutD(3,SCRNstring(i)) OD PutDE(3) OD PrintDE(3," ") PrintD(3,"@") CLOSE(3)R}ETURNPROC Main() BYTE jifclock=[0] GRAPHICS(24) SetColor(2,8,0) SetColor(4,3,0) color=1 Frame() col=10 TwoPo}int() col=115 Isometric() col=220 Cabinet() Gr8Txt() j=jifclock FOR ctr=start TO end DO ;****** null statem}ent OD SCRNdmp() PrintF("%E %U Jiffies",j)RETURN by Jim Watson; Use part of Clinton Parker's PLOT; routine from< ; Horizontal screen dump for EPSON; printer. Prepared on 30 Apr 84; by Jim Watson.; Use part of Clinton Parker's PLOT}; routine from ANALOG No.18, Apr84; ; | modified for®îծӮ by |; | P.L.Dell}'Era |; BYTE row=[84],y=[1],x=[1],j,k, Cvalue,LTR,INVFLG,EOL=[$9B]BYTE} ARRAY SCRNstring(420)BYTE ARRAY div8(320)BYTE POINTER posCARD ARRAY Line(192)CARD col=[0],i,l, ctr,start=[1],end}=[59500], Screen=88,Offset,CharsetBYTE FUNC ASCtoGR8(BYTE Ltr) IF Ltr>127 THEN Ltr==-128 } FI IF Ltr<32 THEN RETURN(Ltr+64) ELSEIF Ltr<97 THEN RETURN(Ltr-32) } FIRETURN (Ltr)PROC Gr8Txt() LTR=ASCtoGR8(INVFLG) Charset=57344+Ltr*8 FOR j=0 TO 7 DO Cval}ue=Peek(charset+j) IF INVFLG>127 THEN Cvalue== ! 255 FI PokeC(Offset+j*40,C}value) ODRETURNPROC Frame() Plot (2,2) DrawTo (318,2) DrawTo (318,190) Drawto (2,190) } Drawto (2,2) Plot (4,4) Drawto (316,4) Drawto (316,188) Drawto (4,188) D}rawto (4,4)RETURNPROC Isometric() PLOT (12+col,18+row) DRAWTO(39+col,3+row) DRAWTO(78+col,27+row) DRAWTO(51+col,42+}row) DRAWTO(12+col,18+row) PLOT (78+col,27+row) DRAWTO(78+col,57+row) DRAWTO(51+col,72+row) DRAWTO(12+col,48+row) }DRAWTO(12+col,18+row) PLOT (51+Col,42+Row) DRAWTO(51+col,72+row)RETURNPROC Cabinet() PLOT (21+col,30+row) DRAWTO(3}9+col,18+row) DRAWTO(69+col,18+row) DRAWTO(51+col,30+row) DRAWTO(21+col,30+row) PLOT (69+col,18+row) DRAWTO(69+col,4}8+row) DRAWTO(51+col,60+row) DRAWTO(21+col,60+row) DRAWTO(21+col,30+row) PLOT (51+Col,30+Row) DRAWTO(51+col,60+row)}RETURNPROC TwoPoint() PLOT (15+col,18+row) DRAWTO(37+col,13+row) DRAWTO(75+col,24+row) DRAWTO(51+col,36+row) DRAWT}O(15+col,18+row) PLOT (75+col,24+row) DRAWTO(75+col,50+row) DRAWTO(51+col,66+row) DRAWTO(15+col,36+row) DRAWTO(15+co}l,18+row) PLOT (51+Col,36+Row) DRAWTO(51+col,66+row)RETURNPROC Dumpinit() BYTE POINTER LineLoc LineLoc=Screen } FOR i=0 TO 191 DO Line(i)=LineLoc LineLoc==+40 OD FOR i=0 TO 319 DO div8(i)=i/8 ODRETURN}PROC Makestring(BYTE vertpos) BYTE vline BYTE ARRAY TEMP(6) FOR i=0 TO 319 DO k=(i&7) vline==LSH 9 } FOR j=0 TO 5 DO pos=line(j+vertpos)+div8(i) Temp(j)=pos^ Temp(j)==LSH k Temp(j)=}=RSH 7 vline==% Temp(j) IF j<5 THEN vline==LSH 1 FI OD SCRNstri}ng(50+i)=vline ODRETURNPROC SCRNdmp() BYTE ctr,t,vertpos=[0] FOR i=0 TO 420 DO SCRNstring(i)=' OD } Dumpinit() Close(3) OPEN(3,"P:",8) PrintDE(3,"A") FOR ctr=0 TO 31 DO MakeSTRING(vertpos) PrintD(3,"K}") FOR i=1 to 420 DO PutD(3,SCRNstring(i)) OD PutDE(3) vertpos==+6 OD PrintDE(}3,"@") CLOSE(3)RETURNPROC PrintFile() BYTE w,XX CARD SAVE SAVE=Screen close(3) open(3,"D:S}CRNDMP3.ACT",4) y=0 x=0 FOR XX=0 TO 10 DO FOR W=2 TO 38 DO Offset=Screen+W } INVFLG=GetD(3) IF INVFLG=$9B THEN EXIT FI Gr8Txt() } OD Screen==+320 OD Screen=SAVE Close(3)RETURNPROC Main() GRAPHICS(24)} SetColor(2,8,0) SetColor(4,3,0) color=1 PrintFile() Frame() col=10 TwoPoint() col=115 Isometric() col=220 Cab}inet() y=178 x=20 Offset=Screen+y*40+x INVFLG=(') Gr8Txt() SCRNdmp()RETURN f Clinton Parker's PLOTePROC DISKDIR()BYTE ARRAY FILES(30),FILE2(30)PRINT("FILE SPEC: ")INPUTS(FILES) IF FILES(0)=0 THEN ; JUST A RETURN PR}ESSED SCOPY(FILES,"D:*.*") ; DEFAULT TO ALL FILES ON DISK 1ELSEIF FILES(1)='D AND (FILES(2)=': OR FILES(3)=':) THEN ; IT }LOOKS OK ELSE ; INSERT "D:" IF NEEDED SCOPY(FILE2,"D:") SASSIGN(FILE2,FILES,3,30) SCOPY(FILES,FI}LE2) FI CLOSE(1) ;JUST FOR SAFETY'S SAKEOPEN(1,FILES,6,0)DO INPUTSD(1,FILES) PRINTE(FILES) }UNTIL EOF(1)ODCLOSE(1)RETURN,FILE2(30)PRINT("FILE SPEC: ")INPUTS(FILES) IF FILES(0)=0 THEN ; JUST A RETURN PR# ; PROGRAM TO ACT AS SORT OF A MINI-DOS VERSION 1.0; DENNIS NEWTON -- 9/27/83BYTE RTS=[$60],BANK=$D500BYTE ARR }AY FNAME(50) ; USED BY ALL ROUTINES;*******************************************************************************PROC G }ETFNAME(BYTE ARRAY PROMPT) ; GETS AND FORMATS FILE NAME INTO FNAME BYTE ARRAY FN1(25),FN2(25) ; LOCAL FILE NAMES FOR BUILDI }NG FNAME PRINT(PROMPT) : INPUTS(FN1) IF FN1(0)=0 THEN ; NO NAME TYPED SCOPY(FNAME,"D:*.*") ; SUBSTITUTE DEFAULT } ELSE IF FN1(2)#': AND FN1(3)#': THEN SCOPY(FN2,"D:") SASSIGN(FN2,FN1,3,25) SCOPY(FN1,FN2) FI } SCOPY(FNAME,FN1) FI PUTE()RETURN;*******************************************************************************PRO }C DIR() BYTE ARRAY BUFFER(40) GETFNAME("Һ ") GRAPHICS(0) OPEN(3,FNAME,6,0) DO INPUTSD(3,BUFFER) PRINT }(BUFFER): PRINT(" ") UNTIL EOF(3) : OD PUTE() RETURN;*************************************************************** }****************PROC CIO(BYTE CMD, BYTE ARRAY NAME) XIO(3,0,CMD,0,0,NAME)RETURN;************************************ }******************************************PROC RENAME() GETFNAME("ź ") CIO(32,FNAME) RETURN;***** }**************************************************************************PROC ERASE() BYTE ANS BYTE ARRAY FTEMP(25) } GETFNAME("ź ") SCOPY(FTEMP,FNAME) IF SCOMPARE(FTEMP,"D:*.*") = 0 THEN PRINT("ERASE ALL FILES? ARE YOU SU }RE?") ANS=GETD(2) IF ANS # 'Y THEN : RETURN : FI FI CIO(33,FNAME)RETURN;************************************ }*******************************************PROC PROTECT() GETFNAME("Ժ ") CIO(35,FNAME) RETURN;*** }****************************************************************************PROC UNPROTECT() GETFNAME("Ժ ") }CIO(36,FNAME)RETURN;*******************************************************************************PROC FORMAT() BYT }E ANS PRINTE("Ժ ARE YOU SURE? ") ANS=GETD(2) IF ANS='Y THEN PRINT("INSERT CORRECT }DISK AND PRESS ANY KEY") ANS=GETD(2) CIO(254,"D:*.*") FIRETURN;************************************************ }*******************************PROC TYPETEXT() BYTE CH,KBD=764,DEVICE CLOSE(4) GETFNAME("ź ") PRINT("TO PRI }NTER ALSO (Y/N)? ") : DEVICE=GETD(2) IF DEVICE='Y THEN OPEN(4,"P:",8,0) FI GRAPHICS(0) OPEN(3,FNAME,4,0) }DO CH=GETD(3) IF DEVICE='Y THEN : PUTD(4,CH) : FI PUT(27) : PUT(CH) IF KBD # 255 THEN : KBD = 255 : EXIT : }FI UNTIL EOF(3) : OD PUTE():CLOSE(4)RETURN;*************************************************************************** }****PROC WAIT() ; WAIT FOR KEY PRESS BYTE DUMMY PUTE() : PRINTE("٠٠ϠΠϠ") DUMMY=GETD(2)RETUR }N ;*******************************************************************************PROC MENU() GRAPHICS(1) CLOSE }(3) PRINTDE(6,"") PRINTDE(6," ") PRINTDE(6,"CHOOSE ONE OF THE FOLLOWING:") : PRINTDE(6," " }) PRINTDE(6," dIRECTORY") PRINTDE(6," rENAME") PRINTDE(6," eRASE") PRINTDE(6," pROTECT") PRINTDE(6," } uNPROTECT") PRINTDE(6," fORMAT DISK") PRINTDE(6," tYPE TEXT FILE") PRINTDE(6," ExIT TO ACTION!")RETURN;** }*****************************************************************************PROC ADOS() ; MAIN CONTROL ROUTINE BYTE CHO }ICE,LMRGN=82 BANK=0 : LMRGN=0 : CLOSE(2) : OPEN(2,"K:",4,0) DO MENU() CHOICE=GETD(2) IF CHOICE='D }THEN : DIR() : WAIT() ELSEIF CHOICE='R THEN : RENAME() ELSEIF CHOICE='E THEN : ERASE() ELSEIF CHOICE='P THEN : PR }OTECT() ELSEIF CHOICE='U THEN : UNPROTECT() ELSEIF CHOICE='F THEN : FORMAT() ELSEIF CHOICE='T THEN : TYPETEXT() : } WAIT() FI CLOSE(3) UNTIL CHOICE='X : OD GRAPHICS(0) : CLOSE(2)RETURNTS=[$60],BANK=$D500BYTE ARR `PROC NEWLINES(BYTE N) BYTE I IF N>0 THEN FOR I=1 TO N DO PUTE() OD FIRETURNPROC FACT()CARD N,I,CCARD AR$}RAY A(200),B(200) FOR I=1 TO 200 DO A(I)=0 B(I)=0 OD A(200)=1FOR N=1 TO 100 DO I=200 : WHILE I<>200-$}2*N+1 DO A(I)=A(I)*N : I==-1 OD I=200 WHILE I<>200-2*N+1 DO C=A(I)/10 A(I-1)=A(I-1)+C: A(I)=A(I)-10*C : I=$}=-1 OD PRINTF("%U FACTORIAL IS ",N) FOR I=200-2*N TO 200 DO B(I)=B(I)+A(I) IF B(I)<>0 THEN PRINTC(A(I)) FI OD$} NEWLINES(2) ODRETURN IF N>0 THEN FOR I=1 TO N DO PUTE() OD FIRETURNPROC FACT()CARD N,I,CCARD AR$ WHILE chr = space DO cnt ==+ 1 chr = line(cnt) OD ; print line number... WHILE (chr >= '0 A}ND chr <= '9) DO PutD(EPSON, chr) col ==+ 1 cnt ==+ 1 chr = line(cnt) OD ; outp}ut a space... IF chr = space THEN PutD(EPSON, chr) cnt ==+ 1 chr = line(cnt) ELSE PutD(EPSON, space) FI } col ==+ 1 ; set tab... tab = col ; now print rest of line... WHILE chr <> eol DO } IF chr = quote THEN IF inquotes THEN inquotes = FALSE ELSE inquotes = TRUE FI FI} IF ; printable character (chr > 31 AND chr < 123 AND chr <> 96) THEN PutD(EPSON, chr) col ==+ 1 } ELSE grprint(chr) col ==+ 2 FI ; should we break line?... IF } (col > 65 AND ; close to R margin (chr = space OR ; break line chr = invsp OR ; at a logical c}hr = comma OR ; spot if chr = semic)) ; possible OR (chr = colon AND inquotes = }FALSE) ; separate BASIC commands OR (col > 80) ; unconditional line break ; yes... THEN PutDE(EP }SON) linecnt ==+ 1 indent(tab) col = tab ; no... FI cnt ==+ 1 chr = line(cn }t) ; get next char OD feed(2) ; end of input linelinecnt ==+ 2 RETURN (linecnt) ;----------------------------------- }-- PROC main() CHAR ARRAY source(20), title1(75), title2(75), choice(10), } line(255) BYTE consol = $D01F, ; start key invflg = $2B6, ; inverse off shflok = $2BE, ; shift } lock crsinh = $2F0, ; cursor off linecnt, linetot CARD page = [1] ; pages printed BOOL basic Bank } = 0 Put(125) ; clear screen Setcolor(2,12,2) PutE() PrintE(" EPSON/ATASCII PRETTY PRINTER") PrintE(" (c })1983 Leo G. Laporte") PutE() PrintE(" File must be LISTed BASIC or TEXT") PutE() Print("Enter source file > ") }invflg = 0 ; inverse off shflok = 64 ; caps lock InputS(sourMATTER ; Prints listed BASIC programs and; text using E Cce) PutE() PrintE("Enter header line #1 (max 75 chars)") Print(">") InputMD(KEY, title1, 75) PutE() PrintE("E }nter header line #2") Print(">") InputMD(KEY, title2, 75) PutE() Print("Is this a (B)ASIC or (T)ext file? ") in }vflg = 0 ; inverse off shflok = 64 ; caps lock InputMD(KEY, choice, 10) IF choice(1) = 'T THEN basic = FALSE } ELSE basic = TRUE FI Position(2,22) crsinh = 1 Print(" PRESS -START- TO BEGIN PRINTING") Position(2, 17) } consol = 8 WHILE consol <> 6 ; wait for start DO consol = 0 OD Close(FILE) Close(EPSON) }Open(FILE, source, 4) Open(EPSON, "P:", 8) PutDE(EPSON) PrintD(EPSON, italics_on) PrintDE(EP }SON, title1) PrintDE(EPSON, title2) PrintD(EPSON,"Page ") PrintCDE(EPSON, page) PrintD(EPSON, italics_off) } feed(2) linetot = 6 InputMD(FILE, line, 255) WHILE EOF(FILE) = FALSE DO IF basic } THEN linecnt = PrintBASIC(line) ELSE linecnt = PrintTEXT(line) FI li }netot ==+ linecnt IF linetot >= MAXLINE THEN ; next page PutD(EPSON, formfeed) page ==+ 1 } PrintD(EPSON, italics_on) PrintDE(EPSON, title1) PrintDE(EPSON, title2) PrintD }(EPSON,"Page ") PrintCDE(EPSON, page) PrintD(EPSON, italics_off) feed(2) linetot = 6 } FI Print(".") InputMD(FILE, line, 255) OD PutDE(EPSON) ;flush buffer Close(FILE) Cl }ose(EPSON) crsinh = 0 Graphics(0)RETURN  InputMD(KEY, title1, 75) PutE() PrintE("ELce) PutE() PrintE("Enter header line #1 (max 75 chars)") Print(">") InputMD(KEY, title1, 75) PutE() PrintE("E }nter header line #2") Print(">") InputMD(KEY, title2, 75) PutE() Print("Is this a (B)ASIC or (T)ext file? ") in }vflg = 0 ; inverse off shflok = 64 ; caps lock InputMD(KEY, choice, 10) IF choice(1) = 'T THEN basic = FALSE } ELSE basic = TRUE FI Position(2,22) crsinh = 1 Print(" PRESS -START- TO BEGIN PRINTING") Position(2, 17) } consol = 8 WHILE consol <> 6 ; wait for start DO consol = 0 OD Close(FILE) Close(EPSON) }Open(FILE, source, 4) Open(EPSON, "P:", 8) PutDE(EPSON) PrintD(EPSON, italics_on) PrintDE(EP }SON, title1) PrintDE(EPSON, title2) PrintD(EPSON,"Page ") PrintCDE(EPSON, page) PrintD(EPSON, italics_off) } feed(2) linetot = 6 InputMD(FILE, line, 255) WHILE EOF(FILE) = FALSE DO IF basic } THEN linecnt = PrintBASIC(line) ELSE linecnt = PrintTEXT(line) FI li }netot ==+ linecnt IF linetot >= MAXLINE THEN ; next page PutD(EPSON, formfeed) page ==+ 1 9}; ATARI LOGO; TRANSLATED FROM THE BASIC; BY LEO LAPORTE, 10/19/83PROC FUJI() BYTE TOP, BOTTOM, XPOS, CNTR = [0] BY-!}TE ARRAY DATA = [ 37 41 43 45 46 29 48 35 49 37 50 39 51 41 52 43 53 44 54 45 55 46 55 47 56 48 57 48 57 49 58 49-"} 58 50 59 50 59 51 59 51 59 52 60 52 60 52 60 52 60 52 60 52 60 52 60 ] CARD X COLOR = 1 TOP = 5 BOTTOM = -#}61 FOR XPOS = 80 TO 84 DO PLOT(XPOS, TOP) DRAWTO(XPOS, BOTTOM) PLOT(160-XPOS, TOP) DRAWTO(160--$}XPOS, BOTTOM) OD FOR XPOS = 86 TO 115 DO IF XPOS > 90 THEN TOP = DATA(CNT-%}R) CNTR ==+ 1 FI BOTTOM = DATA(CNTR) CNTR ==+ 1 PLOT(XPOS, TOP) DRAWTO(XPOS, BOTTOM) PLO-&}T(160-XPOS, TOP) DRAWTO(160-XPOS, BOTTOM) ODRETURNPROC LETTERS() BYTE X,Y,I CARD CNTR=[0] BYTE ARRA-'}Y ATARI = [ 49 55 61 76 81 87 93 104 0 48 56 61 76 80 88 93 105 0 47 57 61 76 79 89 93 106 0 46 58 61 76 -(}78 90 93 107 0 45 50 54 59 67 70 77 82 86 91 93 96 103 108 0 45 49 55 59 67 70 77 81 87 91 93 96 104 108 0 45 -)}48 56 59 67 70 77 80 88 91 93 96 104 108 0 45 48 56 59 67 70 77 80 88 91 93 96 104 108 0 45 48 56 59 67 70 77 80 88-*} 91 93 96 104 108 0 45 48 56 59 67 70 77 80 88 91 93 96 103 108 0 45 59 67 70 77 91 93 107 0 45 59 67 70 77 91-+} 93 106 0 45 59 67 70 77 91 93 105 0 45 59 67 70 77 91 93 104 0 45 48 56 59 67 70 77 80 88 91 93 96 100 105 0-,} 45 48 56 59 67 70 77 80 88 91 93 96 101 106 0 45 48 56 59 67 70 77 80 88 91 93 96 102 107 0 45 48 56 59 67 70 --}77 80 88 91 93 96 103 108 0 45 48 56 59 67 70 77 80 88 91 93 96 104 109 0 45 48 56 59 67 70 77 80 88 91 93 96 105 1-.}09 0 1 1 ] I = 66 COLOR = 1 DO X = ATARI(CNTR) CNTR ==+ 1 IF X = 0 THEN X = 112 Y -/}= 115 PLOT(X,I) DRAWTO(Y,I) I ==+ 1 ELSE Y = ATARI(CNTR) CNTR ==+ 1 IF X = 1 AND Y = 1 -0}THEN EXIT FI PLOT(X,I) DRAWTO(Y,I) IF X = 112 THEN I ==+ 1 FI FI ODRETURNPROC DELAY(BYTE -1}TIME) BYTE JIFS = 20 JIFS = 0 DO UNTIL (JIFS >= TIME) ODRETURNPROC JINGLE() BYTE ARRAY MUSIC= [ 121-2} 121 121 121 91 96 108 121 0 ] BYTE NOTE, CNTR = [0] DO NOTE = MUSIC(CNTR) CNTR ==+ 1 IF NOTE =-3} 0 THEN EXIT FI SNDRST() DELAY(2) SOUND(0, NOTE, 10, 8) DELAY(8) OD DELAY(12) SNDRST()RETURNPROC SC-4}ROLL() BYTE WSYNC = 54282, VCOUNT = 54283, CLR = 53270, CH = 764, CNTR, CHGCLR = [0], I-5}NCCLR, DELAY DO FOR CNTR = 1 TO 4 DO INCCLR = CHGCLR FOR DELAY = 1 TO 9 DO OD DO -6} WSYNC = 0 CLR = INCCLR INCCLR ==+ 1 UNTIL VCOUNT & 128 OD OD CHGC-7}LR ==+ 1 UNTIL CH <> 255 ODRETURNPROC MAIN() GRAPHICS(23) FUJI() LETTERS() JINGLE() SCROLL()RETUR-8}N ==+ 1 UNTIL CH <> 255 ODRETURNPROC MAIN() GRAPHICS(23) FUJI() LETTERS() JINGLE() SCROLL()RETUR, PrintD(EPSON, italics_on) PrintDE(EPSON, title1) PrintDE(EPSON, title2) PrintD :}(EPSON,"Page ") PrintCDE(EPSON, page) PrintD(EPSON, italics_off) feed(2) linetot = 6 ;} FI Print(".") InputMD(FILE, line, 255) OD PutDE(EPSON) ;flush buffer Close(FILE) Cl <}ose(EPSON) crsinh = 0 Graphics(0)RETURN  InputMD(KEY, title1, 75) PutE() PrintE("EL;; TODOS.ACT;; This little PROCedure allows you to exit any ACTION! program to the; ATARI DOS 2.0S DUP.SYS Menu.;; >} WARNING: This PROC will work properly ONLY if you have WARM booted; your system with an ATARI 2.0S DOS.SYS file ?} on the diskette; in Drive #1. Furthermore, you must have a diskette with; with DUP.SYS on it in Dri }CCC.LE4 k:泭C0iiCLg3CL<3 Z: *DCC ,=  , /,C0 8A} l0N S0G :CC# k:浭C0iiCЪL<3 ,٢=  * q;L8 D, q; $; ,WC B} L 4C>  :A>810CC ,/> 1C1>  :Z>810CC ,C> 1CCC , 1= 1 :YhC}hL `=CCЍCCCCCCCCC ; ; ; , 4L3 ,\> 1 * 鈹CɛሢCɛ )CC0D}CC ~* 5CCCC Co> 1 * Cɛ ~* 5ܭCCCC C˭CCLE5CCLE5`C`E}`C`~, , E5C 4L3? , E5CC 4C $;D浭CC 8CCCBCF} lɀYC :L6 : lC񠀈Ѱиi iACCC k:LX6CCCCC qG};L8= ; , ,p  , ,  ,1@  :ɛL 15))C q+L 7= , ,V@  ,u@  :ɛL H 7 H}7Lj7 7Lj7D 8 7L7 7L7բ@ `ߢC ` ,@  * ECɛ>0$C *00C0C *0" CCLI}7`C X*`8` ,@  *0\X TCɛM ~*HC)JJJJ *6CȽC) *(CC0CCJ}C`8`=8W=Wy 8W=PyL5 ON ,C` ; *nDEǍHI 1C L!9 :C K}q+L8L 9 q;L8P 9 q;L8W +L8ML 15))C g+L8 ,C&D?E BHCCC /,C\L}XCC X*C-?0  -?C0L8:8鉍C mC mCE?1?C V0*CCC LW9C? M}`CL09PC B VB DAEJNK V0 09 ,ʢ? PC D,P B V`CC mC mC?1?L9N}CC`i`i`i`i`i`P BO} VBDAEJ VBHIL1HI B} V@`HS S ShH )Lc;Lj;h` 0)¢P})  q; ,` M;hL$; b,hL$; ,>  , ,L,=L1 :HOh:` ; 0L>!} }; CIS NOTICE: ; I AM PROVIDING THE PROGRAM FOR YOU; TO LOOK AT AND MAYBE HELP YOU GET; STARTED WITH ACTION!. IT WA5R}S; WRITTEN 'QUICK AND DIRTY' AND AS; SUCH DOES NOT HAVE MANY COMMENTS; AND IS NOT THE BEST OF CODE IN MANY; PLACES. FEEL5S} FREE TO SHOW IT TO; ANYONE YOU LIKE AS LONG AS YOU KEEP; THE COPYRIGHT NOTICE.; IN CASE YOU ARE INTERESTED, THIS IS; TH5T}E COMPANY LOGO FOR ACTION; COMPUTER SERVICES (ACS).; - CLINTON PARKER 70435,625; PS: HIT ESC TO EXIT PROGRAM; CO5U}PYRIGHT 1983 BY ACTION COMPUTER SERVICES; LAST MODIFIED APRIL 13, 1983MODULE ; LOGO.ACTDEFINE RTI = "$40", PHA =5V} "$48", PLA = "$68", TXA = "$8A", TAX = "$AA", TYA = "$98", TAY = "$A8"BYTE STARTBYTE A5W}RRAY DISPLAYCARD ARRAY YLOC(96)PROC NMI() BYTE COLOR, CNT BYTE COLPF1=$D017, WSYNC=$D40A, VCOUNT=$D40B, COLPF25X}=$D018, COLPF0=$D016 BYTE ARRAY COL(0)=[$68 $C $96 $38] [PHA TXA PHA TYA PHA] IF VCOUNT=7 THEN COLOR = STA5Y}RT START = START - 1 IF (START&$1F)=0 THEN CNT = CNT + 1 FI FI COLOR = COLOR - 2 WSYNC = 1 COLPF0 = COLOR 5Z}COLPF1 = COLOR COLPF2 = COL((CNT + VCOUNT) & 3)[PLA TAY PLA TAX PLA RTI]PROC BACKGROUND() BYTE COLBK=$D01A, VCOUNT=$D5[}40B, WSYNC=$D40A [PHA TXA PHA TYA PHA] WSYNC = 0 IF VCOUNT>50 THEN COLBK = 0 ELSE COLBK = $D6 FI[PLA TAY 5\}PLA TAX PLA RTI]PROC INIT7() BYTE I CARD SCREEN, SCRLOC=88 GRAPHICS(23) SETCOLOR(0,2,10) SETCOLOR(1,0,12) SE5]}TCOLOR(2,0,12) DISPLAY = SCRLOC SCREEN = SCRLOC I = 0 WHILE I<96 DO YLOC(I) = SCREEN SCREEN = SCREEN + 40 5^} I = I + 1 ODRETURNPROC PLOT7(BYTE X, Y) BYTE ARRAY POS, BM(0)=[$C0$30$C$3], CM(0)=[$0 $55 $AA $FF] POS = YLO5_}C(Y) POS(X RSH 2) ==% (BM(X&3)&CM(COLOR))RETURNPROC VLINE(BYTE X, Y1, Y2) WHILE Y1#Y2 DO PLOT7(X, Y1) Y1 = Y5`}1 + 1 ODRETURNPROC HLINE(BYTE X1, X2, Y) WHILE X1#X2 DO PLOT7(X1, Y) X1 = X1 + 1 ODRETURNPROC DLINE(BYT5a}E X1, X2, Y1) BYTE INCR INCR = 1 IF X2>>>ERROR # 144<<<'_ THEN destination(i)=s1}ource(i) ELSE EXIT FI OD destination(0)=i-1RETURNBYTE FUNC Find(CHAR ARRAY str,sub BYTE start)BYTE i, j1}CHAR ARRAY tmp FOR i=start TO str(0) DO IF sub(1)=str(i) THEN tmp(0)=sub(0) FOR j=1 TO sub(0) DO 1} tmp(j)=str(j+i-1) OD IF SCompare(tmp,sub)=0 THEN RETURN(i) FI FI ODRETURN(0) DO 0vve #1 before calling this PROC.;; You may return to the ACTION! environment by selecting option "B"; (Run Cartridge) fro }m the DUP.SYS Menu, but your ACTION! program will; have been wiped out by the exit to DUP.SYS!;;; Enjoy!;; Brad Paul }sen [CIS PPN 70035,1050]PROC ToDOS() [ $6C$0A$00 ]RETURNYS Menu.;; pMODULE ;EXAMPLE FOR STEVEDEFINE PHA="$48", PLA="$68", RTI="$40", JMP="$4C"BYTE WSYNC=$D40A,COLPF2=$D018,COLBK=$D01=}ACARD VDSLST=$200,SDLSTL=$230,XITVBL=$E462CARD POINTER SAVMSC=$58BYTE ARRAY DLIST(0)=$680PROC DLISTVAL=*()DEFINE BL8="$=}70", BM0="$02", BM1="$06", DLI="$80", LMS="$40", JVB="$41" [ BL8 BL8 BL8 BM0+LMS+DLI DLISTVAL ;MUST=} BE PLUGGED! BM1+DLI BM0 BM0 BM0 BM0 BM0 BM0 BM0 BM0 BM0 BM0 BM0 BM0 BM0 BM0 BM0 BM0 BM0 BM0 BM0 BM0 =}BM0 BM0 JVB DLIST ]PROC DLIH2=*() [ PHA ] WSYNC=0 COLBK=$C0 COLPF2=$C0 [ PLA RTI ]; INTERRUPT FOR MODE 1 LINE=}PROC DLIH1=*() [ PHA ] WSYNC=0 COLBK=$40 VDSLST=DLIH2 [ PLA RTI ]PROC VBLIH=*() VDSLST=DLIH1 [ JMP XITVBL ]=}PROC MYPRINT(CARD LOC,CHAR POINTER STRING) BYTE LENGTH,I,J CHAR POINTER CURSOR CURSOR=SAVMSC^+LOC LENGTH=STRING^=} STRING==+1 FOR I=1 TO LENGTH DO J=STRING^ IF J<96 THEN IF J>31 THEN J==-32 ELSE J==+=}64 FI FI CURSOR^=J STRING==+1 CURSOR==+1 ODRETURNPROC MAIN() CARD VVBLKD=$224 CARD POINTER=} LMSPTR BYTE NMIEN=$D40E, COLOR1=$2C5,COLOR2=$2C6,COLOR4=$2C8 GRAPHICS(0) LMSPTR=DLISTVAL+4 LMSPTR^=SAVMSC^=} MOVEBLOCK(DLIST,DLISTVAL,29) NMIEN=0 VVBLKD=VBLIH SDLSTL=DLIST NMIEN=$C0 COLOR1=$0E COLOR2=$90 COLOR4=$=}90 ZERO(SAVMSC^,960) MYPRINT(14,"H O W D Y !!") MYPRINT(40+3,"THIS IS MODE 1") MYPRINT(40+20+8*40+8,"AND THIS IS MO=}DE 0 AGAIN") DO OD ;ENDLESS LOOPRETURNPLA="$68", RTI="$40", JMP="$4C"BYTE WSYNC=$D40A,COLPF2=$D018,COLBK=$D01<-MODULE; D:DIR.ACT BY BOB TURNER 04/10/84; AN EXAMPLE IN THE USE OF POINTERS; AND ARRAY MANIPULATION.BYTE POINTER PTR;PRI}OC FORMNAME(BYTE ARRAY DPTR,BUF)BYTE POINTER BPTRBYTE JJ=3 ; INIT INPUT BUFFER INDEXDPTR(0)=2 ; INIT STRING COUNTDPTR(1)I}='D : DPTR(2)=':BPTR=DPTR+3 ; POINT PAST :WHILE BUF(J) # $20 DO BPTR^=BUF(J) ; MOVE IN NEXT BYTE BPTR==+1 ; BUMP POI}INTER DPTR(0)==+1 ; UP STRING COUNT J==+1 ; BUMP INDEX TO INPUT BUFFER ; *** DONT EXCEED 8 CHARS IN PRIMARY NAME I} IF J=11 THEN EXIT FI OD; DEBLANK INPUT BUFFERWHILE BUF(J) = $20 DO J==+1 IF J = 14 THEN RETURN FI; NO EXT! ODBPTI}R^='. : BPTR==+1 : DPTR(0)==+1; FILL IN EXTWHILE BUF(J) # $20 DO BPTR^=BUF(J) : J==+1 BPTR==+1 : DPTR(0)==+1 ODRETUI}RNPROC MAIN()BYTE I=[0]BYTE ARRAY BUF(19)BYTE ARRAY DIR_STRING(960)CARD ARRAY DVECT(64) ; DOPE VECTORPTR = DIR_STRINI}G ; INIT POINTEROPEN(1,"D:*.*",6,0)INPUTSD(1,BUF) ; GET FIRST FILE; DONT FORMAT # OF SECTORS FREE MSG WHILE BUF(2) = $20I} ; A GOOD A STOPPER AS ANY OTHER DO DVECT(I) = PTR ; KEEP A DOPE VECTOR PRINT(BUF) : PRINT("-->") FORMNAME(PTR,J}BUF) PRINTE(PTR) ; PRINT FILE NAME FORMED PTR==+PTR(0)+1 ; POINT TO NEXT SUBSTRING INPUTSD(1,BUF) I==+1 ODJ}DVECT(I)=0; MARK LAST FILE FOUNDCLOSE(1); CLOSE DIR; PRINT OUT USING CARD ARRAY AS POINTERSPRINTE("FILES FROM TABLE")I = J}0WHILE DVECT(I)#0 DO PRINTF("%I) %S%E",I,DVECT(I)) I==+1 ODRETURND ARRAY MANIPULATION.BYTE POINTER PTR;PRHR;PROGRAMMED BY TOM MCCOMB, COMPUSERVE;72456,1042,ACTION BBS ACCOUT NUMBER 6;THIS PROGRAM WAS WRITTEN IN RESPONSE;TO HENRY N}HILLBRATH'S REQUEST IN HIS ;ACTION! NEWSLETTER, TOP LEVEL TARRY.;IT IS MY FIRST PROGRAMMING EFFORT IN;ACTION! AND AS SLOPPN}Y AS CAN BE!;HOPEFULLY THINGS WILL IMPROVE.;THIS IS THE SECOND EDITION...THE ;LETTERING HAS BEEN ADDED TO THE LOGO.N} ;IT ALSO GOES INTO ATTRACT MODE.;JUST TAP THE KEYBOARD TO RETURN TO ;THE ORIGINAL COLOR SCHEME(OSS ORANGE).;<<<<<<<>>>>>>>>>PROC LETTERS() BYTE L,H,R,C,E CARD P C=0 R=0 SETCOLOR(0,3,5) SETCOLOR(1,3N},7) SETCOLOR(2,3,3) COLOR=0 FOR H=1 TO 2 DO FOR L= 1 TO 5 DO PLOT(51+2*L,35-L);TOP ON }F 'T' PLOT(50+2*L,35-L);TOP OF 'T' PLOT(67+2*L+C,27-L+R);TOP OF 'O' PLOT(66+2*N }L+C,27-L+R);TOP OF 'O' PLOT(101+2*L,23-L);TOP OF 'T' PLOT(102+2*L,23-L);TOP OF 'T' OD C=C+7 N } R=R+3 OD PLOT(108,32) ; DRAWTO(104,43) ;LETTER PLOT(108,32) ; A DRAN }WTO(112,40) PLOT(105,41) DRAWTO(110,38) PLOT(104,69) ; LETTER DRAWTO(109,73) N }DRAWTO(112,66) ; Y FOR E=1 TO 9 DO PLOT(44,53-E); -LEVEL- PLOT(55,59-E); -E- PLOT(77,7N}0-E); -E- PLOT(88,75-E); -L- PLOT(108,30-E);-TARRY- PLOT(104,55-E);-R- PLOT(104,67-E);-R- N} OD FOR L=1 TO 4 DO PLOT(102+2*L,47-L);TOP OF 'R PLOT(103+2*L,47-L);TOP OF 'R' N} PLOT(102+2*L,51-L);MID OF 'R PLOT(103+2*L,51-L);MID OF 'R' PLOT(102+2*L,59-L);TOP OF 'R' N} PLOT(103+2*L,59-L);TOP OF 'R' PLOT(102+2*L,63-L);MID OF 'R' PLOT(103+2*L,63-L);MID OF 'R' PLOTN}(83+2*L,19-L);TOP OF 'P' PLOT(82+2*L,19-L);TOP OF 'P' PLOT(86+2*L,20-L);MID OF 'P' PLOT(87+2*L,20-L);MIN}D OF 'P' OD PLOT(109,48) DRAWTO(112,51) PLOT(109,60) DRAWTO(112,63) N} FOR E=1 TO 4 DO PLOT(111,60-E);-R- PLOT(109,78-E);-Y- PLOT(111,47-E);-R- N}OD FOR L=1 TO 3 DO PLOT(43+2*L,52+L);B OF 'L' PLOT(42+2*L,52+L);B OF 'L' PLOT(53+2*L,58+L);B OF 'E' N} PLOT(54+2*L,58+L);B OF 'E' PLOT(53+2*L,53+L);M OF 'E' PLOT(54+2*L,53+L);M OF 'E' PLOT(53+2*L,49+L);T OF 'E' N} PLOT(54+2*L,49+L);T OF 'E' PLOT(75+2*L,68+L);B OF 'E' PLOT(76+2*L,68+L);B OF 'E' PLOT(75+2*L,63+L);M OF 'E' N} PLOT(76+2*L,63+L);M OF 'E' PLOT(75+2*L,59+L);T OF 'E' PLOT(76+2*L,59+L);T OF 'E' PLOT(87+2*L,74+L);B OF 'L'N} PLOT(86+2*L,74+L);B OF 'L' OD PLOT(65,54) DRAWTO(68,65) DRAWTO(73,58) FOR L=1N} TO 4 DO PLOT(55+2*L,31+L);TOP PLOT(54+2*L,31+L);TOP PLOT(67+2*L,25+L);TOP PLOT(66+2*L,N}25+L);TOP PLOT(76+2*L,21+L);TOP PLOT(75+2*L,21+L);TOP PLOT(83+2*L,17+L);TOP PLOT(84+2*L,17+L)N};TOP OD FOR L=1 TO 2 DO PLOT(90+2*L,14+L);TOP PLOT(91+2*L,14+L);TOP ODFOR E=1 TN}O 10 DO FOR P=1 TO 60000 DO OD OD RETURN PROC COLORS() BYTE A,B,C,D,E,F CARD M,N,PASS A=1 N}B=2 C=5 D=3 E=7 F=9 FOR M= 1 TO 60000 DO SETCOLOR(0,B,E) SETCOLOR(1,D,C) SETCOLOR(2,A,F) A=BN} B=C C=D D=E E=F F=A OD PASS=PASS+1 IF PASS>2 THEN POKE($4D,$FE); SETS ATTRACT MODE FI RETN }URN PROC INTRO() CARD I,P GRAPHICS(2) SETCOLOR(2,0,0) POKE($2F0,1);TURNS CURSOR OFF PRINTE(" PUBLIN!}SHED BY HENRY S. HILLBRATH") PUTE() PRINTE(" PROCEDURE BY THOMAS H. MCCOMB") PRINTDE(6,"") PRINTDE(6,"") N"} PRINTDE(6,"") PRINTDE(6," TOP") PRINTDE(6," LEVEL") PRINTD(6," TARRY") FOR P=1 TO 5 DO N#} FOR I=1 TO 40000 DO OD OD PRINT("}")RETURNPROC MAIN() BYTE I,L CARD C INTRO() GRN$}APHICS(23) POKE($D40E,0) POKE($22F,0) SETCOLOR(0,3,5) SETCOLOR(1,3,7) SETCOLOR(2,3,3) N%} COLOR=3 FOR I=10 TO 32 DO PLOT(46+2*I,47-I) DRAWTO(46+2*I,59-I) N&} PLOT(47+2*I,47-I) DRAWTO(47+2*I,59-I) OD COLOR=1 FOR I=0 TO 22 N'}DO PLOT(52+2*I,45+I) DRAWTO(52+2*I,31+I) PLOT(53+2*I,45+I) DRAWTO(53+2*IN(},32+I) OD FOR I=0 TO 32 DO PLOT(38+2*I,38-I) DRAWTO(38+2*I,50-I) N)} PLOT(39+2*I,38-I) DRAWTO(39+2*I,50-I) OD FOR I=1 TO 6 DO PLON*}T(102+2*I,6+I) DRAWTO(102+2*I,21-I) PLOT(103+2*I,6+I) DRAWTO(103+2*I,21-I) OD N+} COLOR=2 FOR I=0 TO 32 DO PLOT(38+2*I,52+I) DRAWTO(38+2*I,38+I)N,} PLOT(39+2*I,52+I) DRAWTO(39+2*I,39+I) OD FOR I=0 TO 6 DO N-}PLOT(90+2*I,65+I) DRAWTO(90+2*I,38-I) PLOT(89+2*I,66+I) DRAWTO(89+2*I,38-I) ODN.} COLOR=3 FOR I=0 TO 6 DO PLOT(102+2*I,84-I) DRAWTO(102+2*I,19-I) PLOT(103+2*I,84-I) N/}DRAWTO(103+2*I,19-I) OD POKE($D40E,$40) POKE($22F,$22) FOR L=1 TO 5 DO FOR C= 1 TO 60000 N0} DO OD OD LETTERS() COLORS() LETTERS() MAIN() ACCOUT NUMBER 6;THIS PROGRAM WAS WRITTEN IN RESPONSE;TO HENRY L<;PICTURE.ACT ; THIS IS A GTIA GRAPHICS 9 DEMO;WRITTEN IN ACTION! LANGUAGE.;THE PROGRAM DRAWS A PICTURE OF;EITHER2}R ABE LINCOLN OR MONA LISA.;THE SPEED IS APPROXIMATELY 6 TIMES;FASTER THAN ATARI 8K BASIC. ; THANKS TO BRUCE NELSON FOR R3}HIS;ARTWORK DATA AND THE ORIGINAL;BASIC DEMO. ; -----------------------------; ******** JOHN DEMAR *********; ***R4}***** 10/29/83 *********; ******** 71066, 337 *********; -----------------------------PROC DRAWIT() BYTE Y,Z,N R5} BYTE X BYTE ARRAY SCREEN, A CARD ARRAY LD(48),MD(48)LD(0)="9::;;;;<<=<============>===>>>=============>===>====>=>>=>>>@R6}@@@"LD(1)="9:;;;<<<<<=============>==;<<::=>>========>===>>=>>>>==>>>>>@@@@"LD(2)=":;<<<<<<<<=======>======:754533569<=>===R7}======>==>>>>>>>>>>>@@@@"LD(3)=":;<<<;<;<<<=====>>==>=;5444543333337;<==>>>>=>===>>>>>>>>>>=@@@@"LD(4)=":;;;;;;<<<<<=====>=R8}><94545555333333337;=>?>>>>>>>>?>>>>>>>==@@@@"LD(5)=":;;;;;<=<<=<====>>>=6444454443333333337:>>>>>????>??>>>>>>>>@@@@"LD(6)R9}=":;:;;;<<<<==<<==>>>8444455534333333232347:=>?>?>??>?>>>>>>>>@@@@"LD(7)=":;:;;;<<<<===<===>944444443343335::75233359?>>>R:}>>>>>>>>>>@@@@"LD(8)="::;;;;<<<<<<=<<==954444344434338?@@@@7233457<>>>>>>=>>>>>>>>@@@@"LD(9)=":;;;;;;;;;;<<====543444444434R;}5:@@@@@@@4453245=>>>=>>>>>>>>>>@@@@"LD(10)=":;:;;;<;;;<=<<==144343334346:?@@@@@@@@>2322359>>>>>=>>>>>>>?@@@@"LD(11)=";;;;;;R<};<<<<<=<=<54444334479=?@@@@@@@@@@8222355=>>>>>>>>>>>>>@@@@"LD(12)=";;;;;;;;;<<<<<<:448444448>?@@@@@@@@@@@@>3221378==>>>>>>>>R=}>>>@@@@"LD(13)=";;;;;;;;;;<<<<<537744475>@@@@@@@@@@@@@@?:341275=>===>>=>>>>?@@@@"LD(14)=";;;;;;;;;;;;<<:44:743579??@@@@@@@@R>}@????>=531154<>=>=>=>=>>>>@@@@"LD(15)=";;;:::;;;;;;;;936:;8548?????@?@????????=<842152<>>=======>=>@@@@"LD(16)=":;;;:::;;:;R?}:::83:;<<:=>>???????????????<=<52112:=>=========>@@@@"LD(17)=":;;;;;::::::96549;<<=>>>>>>>????>>?????==<42111:===========>?@R@}@@"LD(18)=":;:;;;:::9:984459;==>?>>>>>>?????>>>?>>::9432115=======>===>>@@@"LD(19)=":;:;::::::9:64449;<=>?>>>>>????=>>>>>>=RA}989321101;=====>======@@@"LD(20)=":;;::;:::::866438<>>>>?>>=>><9756;==>=<8664211113;========>>>@@@"LD(21)=":;;::::::::78334RB}79:<<=>=><:6333357<>==<743224<:212=========>>@@@"LD(22)="::;;:;:;::;:7353446548;;=:633233377<==<53223<52342;========>>@@@"LRC}D(23)="::;:::;::;;;956333333349>;6432386249=><5222::53322<=<<<<<==>=@@@"LD(24)="::;:::;:;;;;;96533344339=<;432246754;=<82237RD};;8563<<<=<======@@@"LD(25)="9::;;:;;;;;;;<;73334545>=;<974569;:8:<=;43653;;;94;<<<<====>>@@@"LD(26)="99::::::::::;;;;43456RE}6;==<<<7679:<<<<<<<54<<39==75;;;<<<<===>@@@"LD(27)="999999::::9:9:::556675<=<<<<:8:;;<<=<<<<52<==5==23<;;<<<<<===?@@"LD(28)RF}="8999999::9998999574559<<<;<<<;;;<<<<<;;824;<=;<:14<;;<;<<<===??@"LD(29)="8898999998888888589:9:<<;;;;<<;;<<<<;:8214:;<<;13RG}<<;;;;<;<<<??"LD(33)="778RI}7788877887878862312211227;:498655575328113488:;::;;;;;;;<<>??"LD(34)="777787777777787888123211269:;;:89858786536113689::::::RJ}:;;;;<<>??"LD(35)="7777777777787778884142135::::::959698:55662179:::::::::;;;;<<=>?"LD(36)="6677777777777887887122269999886RK}8:9899:64452579:;::9::::::;;;;=>?"LD(37)="67777777777777778861111154578983698::84433399:::::::::::::;;<<>?"LD(38)="77776776RL}777778877761212489887589687:983452599:::::::::::::;;;<>?"LD(39)="666666667777778777722211122248::969::5322489::::::::::::;:;RM};;<>?"LD(40)="666666667777778788611333689999:86677922117899999:::::;::;:;;;;>?"LD(41)="666666666777777777611114578874621225RN}321119499:9::::::::;;;;;;;>?"LD(42)="66666666677777777761011223432432211211113;68:::::::::;::;:;;;;>?"LD(43)="6666666677777RO}7777771111111211121111111126<43:::::::::;:::;;;;;>?"LD(44)="66666666667777777872001110111111111111168<219::::::::::::;;;;;>?RP}"LD(45)="566666666677777778861010001111111111117;;:111::::::::::::;;;:;>?"LD(46)="66666666667777777888610000111111110129;;?"LD(47)="566666666667777777888813000111100114;;;;<211118:;:::::::;;;;;;>?"LD(48)="566666666667777777RR}88825731000001137;;;;<921111126::;:;;;;;;;;;>?"MD(0)="@@@@@3444444444554555656566565655666666666665666666655676665@@@@"MDRS}(1)="@@@@@5566666666666666777777776433456778877777776666666778776@@@@"MD(2)="@@@@@766777777777777888888853321123247889887988RT}8887788789987@@@@"MD(3)="@@@@@778898887888888899:9932222222322379:998:999888888889998@@@@"MD(4)="@@@@@78989898889999989::92RU}212222223432389:9::9:999999999:998@@@@"MD(5)="@@@@@8899999:99999999:::2122222478897525:::::9::9999999::::8@@@@"MD(6)="@@@@@RV}989999999:99:::::;311112248:;<<<:81::;;;:::::9:99::9::9@@@@"MD(7)="@@@@@99:9:9::9:9:::::;911111247:;<<<<=<54::;<;;;:::::::::RW}::9@@@@"MD(8)="@@@@@9:::::::::;:::::;111111357:<<<<<<<718;:;;;<;:::::;;:9:9@@@@"MD(9)="@@@@@::9;::9:::99988681111125799;<<===Rh}==<;602111445752132222@@@@"MD(37)="@@@@@88533443444333558:9688;;===>>>>==>>==611111474433341432@@@@"MD(38)="@@@@@9555354444Ri}543333455879;==>>>?>?>>>>>:621110177544443222@@@@"MD(39)="@@@@@76665544445433333533468;>??????@>>:87752211115567666533@@@@"Rj}MD(40)="@@@@@768873345444454434334366:>@@@><997977663221100345555553@@@@"MD(41)="@@@@@75765344644554444443334476898898885646Rk}65311110356667553@@@@"MD(42)="@@@@@7755433264644554454443444655678798465676211110576667431@@@@"MD(43)="@@@@@577743334566575Rl}5455334344554569877525344211000244444430@@@@"MD(44)="@@@@@6997434446666665654434344456536775534244421100233323330@@@@"MD(45Rm})="@@@@@6875544335677675754444445545545554533223311100015545440@@@@"MD(46)="@@@@@7986644344456786564444355545465544432221221Rn}110036755651@@@@"MD(47)="@@@@@8986544344555787664544455656465445322311221210007766553@@@@"MD(48)="@@@@@89776443445446687644Ro}44555565455444333211122110003453333@@@@" DO GRAPHICS(0) PRINTE("GTIA GRAPHICS 9 DEMO") DO PRINT("0-EXIT Rp} 1-LINCOLN 2-MONA LISA >") N=INPUTB() IF N=0 THEN RETURN FI IF N<3 THEN EXIT FI PUT($FD) PUT($FD) Rq} PRINTE("ENTER 0, 1 OR 2 !") FOR A = 1 TO 32767 DO OD OD GRAPHICS(9) SETCOLOR(4,2,0); POKE($D40E,0Rr}) ;OPTIONAL FOR SPEED-; POKE($22F,0) ;UP W/BLANK SCREEN. SCREEN = PEEKC(88) + 960 + 7 FOR Y = 0 TO 47 DO Rs} IF N=1 THEN A = LD(Y+1) ELSE A = MD(Y) FI X = 59 WHILE X>6 DO Z = A(X)Rt} IF Z=64 THEN Z = $F0 ELSE Z = Z LSH 4 FI IF A(X-1)=64 THEN Z =Ru} Z % $F ELSE Z = Z % (A(X-1) & $F) FI SCREEN^ = Z SCREEN(40) = Z SCREEN(80)Rv} = Z X = X - 2 SCREEN = SCREEN + 1 OD SCREEN = SCREEN + 93 OD; POKE($D40E,$40) ;OPTIONALRw} FOR SPEED-; POKE($22F,$22) ;UP W/BLANK SCREEN. N = 255 WHILE N=255 DO N = PEEK(764) OD POKE(764Rx}, 255) ODRETURN ; THIS IS A GTIA GRAPHICS 9 DEMO;WRITTEN IN ACTION! LANGUAGE.;THE PROGRAM DRAWS A PICTURE OF;EITHEPPROC MAIN()BYTE Z=[0],I,X=[0],ATRCT=77GRAPHICS(11)DO ATRCT=0 FOR I=1 TO 79 DO Z=Z+1 IF Z>15 THEN Z=1 FI Z} COLOR=Z PLOT(I,X) DRAWTO(79-I,X) PLOT(I,190-X) DRAWTO (79-I,190-X) X=X+1 IF X>190 THEN X=0 FI OD FOZ}R I=1 TO 79 DO Z=Z+1 IF Z>15 THEN Z=1 FI COLOR=Z PLOT (I,X) DRAWTO (79-I,190-X) X=X+1 IF X>190 THEZ}N X=0 FI ODODZ=[0],I,X=[0],ATRCT=77GRAPHICS(11)DO ATRCT=0 FOR I=1 TO 79 DO Z=Z+1 IF Z>15 THEN Z=1 FI XPROC MAIN()BYTE Z=[0],I,X=[0]GRAPHICS(9)SETCOLOR (4,4,2)DO FOR I=1 TO 79 DO Z=Z+1 IF Z>15 THEN Z=1 FI C^}OLOR=Z PLOT(I,X) DRAWTO(79-I,X) PLOT(I,190-X) DRAWTO (79-I,190-X) X=X+1 IF X>190 THEN X=0 FI OD FOR ^}I=1 TO 79 DO Z=Z+1 IF Z>15 THEN Z=1 FI COLOR=Z PLOT (I,X) DRAWTO (79-I,190-X) X=X+1 IF X>190 THEN ^}X=0 FI OD I=RAND(14)+1SETCOLOR(4,I,2)OD4,4,2)DO FOR I=1 TO 79 DO Z=Z+1 IF Z>15 THEN Z=1 FI C\6