@L}5 _$% l0$)$$Hȱ$ UhL" `e$$%`$%`  R@P!( 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`  `1  ɐ     `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.D1:MEM.SAV J y08 B|DEHI$} V0 0`B;DEL`?<0LV`@ʆ 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  (` 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 ALLOWED736 FREE SECTORS COPYING---D1:DIRECK.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- 138ɛ+,' 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 D8u /* ascii to atascii */ /* This program is copyleft 1989 by JRD. See COPYLEFT.JRD for a detailed descriptionT} of your rights and responsibilities about copying it. Give this program and its source away! Help create U}more free software! */ #include #ifndef M6502 #include #endif char buf1[40]; char buf2[40]V}; main(argc, argv) int argc; char ** argv; { char * name; char * p; FILE * inf; FILE * outf; int ch; W} if (argc > 1) { name = argv[1]; strcpy(buf1, name); } else { #ifdef M6502 printf("A2AT>"X}); if (getname(buf1) <= 0) exit(0); name = buf1; #else printf("A2AT what?\n"); exit(0); #endif Y} } fn_default(name, 0, buf1); name = buf1; inf = fopen(name, "r"); /* printf("open '%s'->%x\n", name, inf); */ Z} if ((int)inf <= 0) { printf("Can't open '%s' error %x\n", name, errno); #ifdef M6502 kbdchar(); #endif [} exit(0); } strcpy(buf2, buf1); p = strchr(buf2, '.'); if (!p) p = buf2 + strlen(buf2); strcpy(p, ".t\}mp"); outf = fopen(buf2, "w"); /* printf("open '%s'->%x\n", buf2, outf); */ while ((ch = fgetc(inf)) != EOF) { ]} switch (ch) { #ifdef M6502 case 0x0D: fgetc(inf); case 0x0A: ch = '\n'; ^}break; case 0x09: ch = '\t'; break; #else case '\n': ch = 0x9B; break; _} case '\t': ch = 0x7F; break; #endif } fputc(ch, outf); } fclose(inf); fclose(ou`}tf); delete(buf1); rename(buf2, buf1); } #ifdef M6502 int getname(buf) char * buf; { int i; int ch; ia} = 0; /* str idx */ for ( ; ((ch = kbdchar()) != '\n') ; ) { if (ch == '\b') { if (i > 0) { b} fputc('\b', stderr); i--; } } else { fputc(ch, stderr); buf[i] = ch; i++; c} } } buf[i] = '\0'; return strlen(buf); } #endif { fputc(ch, stderr); buf[i] = ch; i++; ?/* ascii to atascii *//* This program is copyleft 1989 by JRD. See COPYLEFT.JRD for a detailed description of yo e}ur rights and responsibilities about copying it. Give this program and its source away! Help create more free f} software!*/#include #ifndef M6502#include #endifchar buf1[40];char buf2[40];main(argc, argv)i g}nt argc;char ** argv;$( char * name; char * p; FILE * inf; FILE * outf; int ch; if (argc > 1) $( name h}= argv[1]; strcpy(buf1, name); $) else $(#ifdef M6502 printf("A2AT>"); if (getname(buf1) <= 0) i}exit(0); name = buf1;#else printf("A2AT what?\n"); exit(0);#endif $) fn_default(name, 0, buf1); name = j}buf1; inf = fopen(name, "r");/* printf("open '%s'->%x\n", name, inf); */ if ((int)inf <= 0) $( printf("Can't op k}en '%s' error %x\n", name, errno);#ifdef M6502 kbdchar();#endif exit(0); $) strcpy(buf2, buf1); p = strchr( l}buf2, '.'); if (!p) p = buf2 + strlen(buf2); strcpy(p, ".tmp"); outf = fopen(buf2, "w");/* printf("open '%s'->%x\ m}n", buf2, outf); */ while ((ch = fgetc(inf)) != EOF) $( switch (ch) $(#ifdef M6502 case 0x0D: n}fgetc(inf); case 0x0A: ch = '\n'; break; case 0x09: ch = '\t'; break;#else o} case '\n': ch = 0x9B; break; case '\t': ch = 0x7F; break;#endif $) fputc(ch p}, outf); $) fclose(inf); fclose(outf); delete(buf1); rename(buf2, buf1);$)#ifdef M6502int getname(buf)char * q} buf;$( int i; int ch; i = 0; /* str idx */ for ( ; ((ch = kbdchar()) != '\n') ; ) $( if (ch == '\b') $( r} if (i > 0) $( fputc('\b', stderr); i--; $) $) else $( fputc(ch, stderr); b s}uf[i] = ch; i++; $) $) buf[i] = '\0'; return strlen(buf);$)#endif else $( fputc(ch, stderr); b R 4LN%HehL!`ܠؠԠРH8咅h`H8h`֠ҠΠʠƠ±u}HȱhL!`e` L L!L!L!L!L!L! ȘL! L! M Hȑh`HȱhL Hȱv}hL Hȱh ` ` %!HȥhL! %!L! `HȑhL!L!HH hhL!HH hhw}L! H*h`L!`L!HIhIi```IHIh`e` !L `` !L{! !L! !x} {!L ! !L  &L!L! 󨥂fjL! eHehL! 8H哪hL! y}HhL! EHEhL! %H%hL!`\_ łXTM łFBE 0>7ł86/ 䃐-&ł'% 0ł z}䃐 ł`` 0ł 䃐ł۰ 0łʰ 䃐ł𹰼 L H hL{} lHh` {!L !L hh捠ilŕŔ liL|}#`L!  ! Ɣ !$ D$& $ D$& 򦓥 !`Heeh`` }} ! ! ! !Ńł &&L$FfFf3ōŌ8包卅~}FfFfͥ !ĕ !` \$L! ` `}S L L L i?H ihL%  (l } S# 7   "+  t! A" {! 9!%  %L`&'  t)%  ( " } %% 9! %  i0% 9! '  . 9! "'' ..  t) .  %¢% }%  %¢% .  . 9! u ! !¢% ¢%  5% A" 9! (  %¢% (  . 9!  }. 9! "P u L'  . 9!L' 9!L'L' #g' q' }'   ].LD'  -  -% } /¢% %  /  LY#A2AT>rCan't open '%s' error %x.tmpw S# a  9! . 9! "L(LA(L"( }~ "9 "(~ ..  ]. u #  9! #L( ..  ].  u A"  u `! u #  9! }#L>(  u A" `!  5% # LY# S# ((  3 ((  %LY# S# a    t! A" {! t! A" }  t! P" 9! u # u  9!  ) # LY# S# M ..    t! A" {! t! A"  t! P"  )  LY# S#}# 7  9!% u # % 9! # {! 9! u !L- u #% "3 u #  9! # #)  ]. u  9!L)LE* }u  9! u #% "0 u #  9! # #)  ]. u  9!L) u #- " 9! u  9!L* 9}! u #0 " 0 9!L*  9! u # 3B u #  9! #  1 9! u # 3 u  9!L+L9+} 9! u #. "< u  9!  1 9! u # 3 u  9!Ld+L+ 9!% u # % 9! # {!! 9!  }9! u #  9! # # 4L, # u `!  A" `!L,! u  9!L,!   O3L,!    1L},!    1L,!   1L,!    1L, u #  LY#L, #+c+s,d,b0,oI,ub,x}L{,  5% 9! u   u " !  u  9!  u "  u P" 9!L- 9! u ! !7 u #}  9! # ! )  ]. u  9!L!- u #  9! # !0 u #  9! # #)  ]. u  9!LX- u }7 u #  9! # ! )  ]. u  9!L-L) u #  LY# A# :3 #L. u LY# E# M   u} # / 9! " u ..  LY# u  LY# HHIDE Bh VL/` `Œ} eL!L. .`%H$H` HIDEB VL/``@ iɀ` .0}krwa dKJKHI)a0{8 驛DEB VL/``..` S#}P 7 R   i0 Ԣ/  2  3P  LY# S#R 7 V   i0 e0  2T :  . 9!} u 9!L30T u 9!   2 g0  2  2R  LY#, S#P 7 V :  . !2 0 } % X  2R   %L0R X  %T u !%R .  . !R V  2P  LY#D: A# a  u # }4 u  9!L1 9! u !LR1 9! u  9!L_1 #91-B1+ 9! u # 3=  u #  u }#  9! # ! A" 0 P" 9!Lh1  u # # LY# I# a  u  9!  " 9!  " 9!  "  }" 9! u %  !  u A" `! u # " u #0 A" `!Lz2 u #7 A" `! u  9!}  u \$ 9! !L1 `! '4 # LY# E#  5% A"  %LY# .2 2DE BJK VL}/` . 3 3DE!BJK VL/` B V0`` Ԇ !Ԇթ- ؠ0}L|3)ȑ` 0:`` NHɛD 4ȥi揠 4H}hɛ`!8`` A[i ` A# a   5% A"  P" 9!  u "O u ! 9! u #  9! # }  u ! `! u #  9! #  u `!LL4 # LY# A# ": "" " #}LY# `! u #  9! #  u `!LL4 # LY# A# ": "" " # /* atascii to ascii */ /* This program is copyleft 1989 by JRD. See COPYLEFT.JRD for a detailed description} of your rights and responsibilities about copying it. Give this program and its source away! Help create }more free software! */ #include #ifndef M6502 #include #define delete unlink #endif char b}uf1[80]; char buf2[80]; main(argc, argv) int argc; char ** argv; { char * name; char * p; FILE * inf; FILE} * outf; int ch; if (argc > 1) { name = argv[1]; strcpy(buf1, name); } else { #ifdef M6}502 printf("AT2A>"); if (getname(buf1) <= 0) exit(0); name = buf1; #else printf("AT2A what?\n"); } exit(0); #endif } fn_default(name, 0, buf1); name = buf1; inf = fopen(name, "r"); /* printf("open '%s'-}>%x\n", name, inf); */ if ((int)inf <= 0) { printf("Can't open '%s' error %x\n", name, errno); #ifdef M6}502 kbdchar(); #endif exit(0); } strcpy(buf2, buf1); p = strchr(buf2, '.'); if (!p) p = buf2 + }strlen(buf2); strcpy(p, ".tmp"); outf = fopen(buf2, "w"); /* printf("open '%s'->%x\n", buf2, outf); */ whil}e ((ch = fgetc(inf)) != EOF) { switch (ch) { #ifdef M6502 case '\n': /* newline ... */ #ifndef we}enix fputc(0x0D, outf); #endif ch = 0x0A; /* ascii linefeed */ break; case '\t': /* tab }... */ ch = 0x09; /* ascii tab */ break; #else case 0x9B: /* atascii eol ...*/ ch = '\n'}; /* newline */ break; case 0x7F: /* atascii tab ...*/ ch = '\t'; /* tab */ break; #endi}f } /* fputc(ch, stdout); */ fputc(ch, outf); } fclose(inf); fclose(outf); delete(buf1); rena}me(buf2, buf1); } #ifdef M6502 int getname(buf) char * buf; { int i; int ch; i = 0; /* str idx */ for} (; ((ch = kbdchar()) != '\n') ; ) { if (ch == '\b') { if (i > 0) { fputc('\b', std}err); i--; } } else { fputc(ch, stderr); buf[i] = ch; i++; }} } buf[i] = '\0'; return strlen(buf); } #endif fputc(ch, stderr); buf[i] = ch; i++; >/* atascii to ascii *//* This program is copyleft 1989 by JRD. See COPYLEFT.JRD for a detailed description of yo}ur rights and responsibilities about copying it. Give this program and its source away! Help create more free } software!*/#include #ifndef M6502#include #define delete unlink#endifchar buf1[80];char buf2[80}];main(argc, argv)int argc;char ** argv;$( char * name; char * p; FILE * inf; FILE * outf; int ch; if (argc} > 1) $( name = argv[1]; strcpy(buf1, name); $) else $(#ifdef M6502 printf("AT2A>"); if (getn}ame(buf1) <= 0) exit(0); name = buf1;#else printf("AT2A what?\n"); exit(0);#endif $) fn_default(nam}e, 0, buf1); name = buf1; inf = fopen(name, "r");/* printf("open '%s'->%x\n", name, inf); */ if ((int)inf <= 0)} $( printf("Can't open '%s' error %x\n", name, errno);#ifdef M6502 kbdchar();#endif exit(0); $) strcp}y(buf2, buf1); p = strchr(buf2, '.'); if (!p) p = buf2 + strlen(buf2); strcpy(p, ".tmp"); outf = fopen(buf2, "w")};/* printf("open '%s'->%x\n", buf2, outf); */ while ((ch = fgetc(inf)) != EOF) $( switch (ch) $(#ifd}ef M6502 case '\n': /* newline ... */#ifndef weenix fputc(0x0D, outf);#endif ch = 0x0A; /* ascii li}nefeed */ break; case '\t': /* tab ... */ ch = 0x09; /* ascii tab */ break;#else case }0x9B: /* atascii eol ...*/ ch = '\n'; /* newline */ break; case 0x7F: /* atascii tab ...*/ }ch = '\t'; /* tab */ break;#endif $)/* fputc(ch, stdout); */ fputc(ch, outf); $) fclose(inf); f}close(outf); delete(buf1); rename(buf2, buf1);$)#ifdef M6502int getname(buf)char * buf;$( int i; int ch; i =} 0; /* str idx */ for (; ((ch = kbdchar()) != '\n') ; ) $( if (ch == '\b') $( if (i > 0) $(} fputc('\b', stderr); i--; $) $) else $( fputc(ch, stderr); buf[i] = ch;} i++; $) $) buf[i] = '\0'; return strlen(buf);$)#endif $( fputc(ch, stderr); buf[i] = ch;L P5LN%HehL!`ܠؠԠРH8咅h`H8h`֠ҠΠʠƠ±}HȱhL!`e` L L!L!L!L!L!L! ȘL! L! M Hȑh`HȱhL Hȱ}hL Hȱh ` ` %!HȥhL! %!L! `HȑhL!L!HH hhL!HH hh}L! H*h`L!`L!HIhIi```IHIh`e` !L `` !L{! !L! !} {!L ! !L  &L!L! 󨥂fjL! eHehL! 8H哪hL! }HhL! EHEhL! %H%hL!`\_ łXTM łFBE 0>7ł86/ 䃐-&ł'% 0ł }䃐 ł`` 0ł 䃐ł۰ 0łʰ 䃐ł𹰼 L H hL} lHh` {!L !L hh捠ilŕŔ liL}#`L!  ! Ɣ !$ D$& $ D$& 򦓥 !`Heeh`` } ! ! ! !Ńł &&L$FfFf3ōŌ8包卅}FfFfͥ !ĕ !` \$L! ` `}S L L L i?H ihL%  E)l } S# 7   "+ }  t! A" {! 9!%  %L&=(  )%  f( "  %% 9! %  0% 9! } C(  g. 9! "'E( I/J/  ) /  %% %  %% .  . 9! u ! }!% %  5% A" 9! _(  %% d(  g. 9!  / 9! "S u L'   . } 9!L' 9!L'L' #''   .L'  A.  A.%  /% %  )0  LY#AT2A>rCa}n't open '%s' error %x.tmpw S# a  9! / 9! "L)L(Lu( ~ "9 "(~ G/H/  }. u #  9! #L) G/H/  .  u A"  u `! u #  9! #L(  u A" `!  5% # L}Y# S# C)D)  3 C)D)  :&LY# S# a    t! A" {! t! A"  t! P" 9! u # u  9! } * # LY# S# M E/F/    t! A" {! t! A"  t! P"  *  LY# S## 7  9!% u # % 9! # {! 9!} u !L4. u #% "3 u #  9! # #)  . u  9!L:*L* u  9! u #% "0 u #  9}! # #)  . u  9!L:* u #- " 9! u  9!L + 9! u #0 " 0 9!L2+  9! }u # 3B u #  9! #  U1 9! u # 3 u  9!La+L+ 9! u #. "< u  9!  U1} 9! u # 3 u  9!L+L+ 9!% u # % 9! # {!! 9!  9! u #  9! # # l4L, # u } `!  A" `!L-! u  9!L-!   3L-!    2L-!    2L-!  }  2L-!    2L- u #  LY#L- #%,cK,sX,dj,b,o,u,xL,  5% 9! u   u "} !  u  9!  u "  u P" 9!Lg- 9! u ! !7 u #  9! # ! )  . u  }9!Lt- u #  9! # !0 u #  9! # #)  . u  9!L- u 7 u #  9! # ! )  .} u  9!L-L:* u #  LY# A# 3 #Ld. u LY# E# M   u # `/ 9! " u I/J/ } LY# u  LY# HHIDE Bh VL/` `Œ eL!L. /`%H$H` }HIDEB VL/``@ iɀ` K/0krwa dKJ}KHI)a0{8 驛DEB VL/``I/J/` S#P 7 R   0 '0  3}  _3P  LY# S#R 7 V   0 0  3T :  . 9! u 9!L0T u 9!   }3 0  3  03R  LY#, S#P 7 V :  . !2 R1  % X  3R   %L1R }X  %T u !%R .  . !R V  3P  LY#D: A# a  u # 5 u  9!L[1 9! u !L1} 9! u  9!L1 #1-1+ 9! u # 3=  u #  u #  9! # ! A" 0 P" 9!L1 } u # # LY# I# a  u  9!  " 9!  " 9!  "  " 9! u %  !  u} A" `! u # " u #0 A" `!L2 u #7 A" `! u  9!  u \$ 9! !L92 `! } z4 # LY# E#  5% A"  %LY# K//3 /3DE BJK VL/` K/^3 ^3DE!BJK }VL/` B V0`` Ԇ !Ԇթ- ؠ0L3)ȑ` 0:`` } NHɛD `4ȥi揠 `4Hhɛ`!8`` A[i ` A}# a   5% A"  P" 9!  u "O u ! 9! u #  9! #  u ! `! u #  9! #  u `}!L4 # LY# A# ": "" " #LY# `! u #  9! #  u `^x cc65 -O %1.Cx a:ra65 %1.M65DEL %1.M65x a:link65 -o %1.com runtime.obj %1.obj c.olbDEL %1.OBJu #  9! #  u ` c This is the copyright notice for RA65, LINK65, LIBR65, and other Atari8-bit programs. Said programs areCopyright 1989$}, by John R. Dunning.All rights reserved, with the follow-ing exceptions: Anyone may copy or redistributethese progra$}ms, provided that:1: You don't charge anything for the copy. It is permissable to charge a nominal fee for media,$} etc.2: All source code and documentation for the programs is made available as part of the distribution.3: Thi$}s copyright notice is preserved verbatim, and included in the distribution. You are allowed to modify theseprog$}rams, and redistribute the mod-ified versions, provided that themodifications are clearly noted. There is NO WARRANTY $}with thissoftware, it comes as is, and is dis-tributed in the hope that it may beuseful. This copyright notice is bas$}ed onthe one published by the Free SoftwareFoundation, sometimes known as the GNUproject. The idea is the same astheirs,$} ie the software is free, andis intended to stay that way.Everybody has the right to copy,modify, and redistribute this so$}ft-ware. Nobody has the right to preventanyone else from copying, modifying orredistributing it.and redistribute this so$e-*- Mode: Text -*-This is the README for UTILS.ARC,which is part of the CC65 distrib-ution.UTILS.ARC contains a bunch o(}f randomutility programs. Currently theseare all things to aid in convertingtext files and C source programsto and from (}Atari formats. Theseprograms are:AT2A Converts a file from Atascii to AsciiA2AT C(}onverts a file from Ascii to AtasciiSANITIZE Convert tabs and C-style braces to )} spaces and $( $)UNSAN Convert $( $) to C- style braces.COMPILE.BAT A Spartados)} command file, suitable for compiling any of these programs.All these progr)}ams are written in C,and source is included. All arecovered by COPYLEFT.JRD; ie they'refree, and are freely distributable)},and may not be sold. To aid in get-ting things set up, both ascii andatascii versions of the source areincluded. The .)}C versions are atascii, the .ASC ones are ascii.All these programs can run eitheras a command, from DOS XL or Sparta-Dos)}, or as an ordinary load file,under DOS 2.5 or similar DOS'es.Using a command line: (this exampleuses SpartaDos, but it )}should workthe same in DOS XL)At the prompt, simply type:AT2A is the file to convert. That's it!All t)}he programs work the same way;AT2A is just an example.Using these programs from DOS'esthat don't hack command lines:Ty)}pe 'L' at your command menu. Whenthe program loads, it will prompt,as AT2A>type in the name of the file to convert, a) }nd hit return. That's it! oads, it will prompt,as AT2A>type in the name of the file to convert, a(0/* SANITIZE.C flush tabs and convert ascii braces to two { }. Aids conversion of C code from ascii to - }atascii. This program is copyleft 1989 by JRD. See COPYLEFT.JRD for a detailed description of your rights - }and responsibilities about copying it. Give this program and its source away! Help create more free softwa- }re! */ #include #ifndef M6502 #include #define delete unlink #endif char buf1[80]; char buf2[-}80]; main(argc, argv) int argc; char ** argv; { char * name; char * p; FILE * inf; FILE * outf; int ch; -} if (argc > 1) { name = argv[1]; strcpy(buf1, name); } else { #ifdef M6502 printf("SAN-}ITIZE>"); if (getname(buf1) <= 0) exit(0); name = buf1; #else printf("Sanitize what?\n"); exit(0)-}; #endif } fn_default(name, 0, buf1); name = buf1; inf = fopen(name, "r"); /* printf("open '%s'->%x\n", name-}, inf); */ if ((int)inf <= 0) { printf("Can't open '%s' error %x\n", name, errno); #ifdef M6502 kbdchar()-}; #endif exit(0); } strcpy(buf2, buf1); p = strchr(buf2, '.'); if (!p) p = buf2 + strlen(buf2); s-}trcpy(p, ".tmp"); outf = fopen(buf2, "w"); /* printf("open '%s'->%x\n", buf2, outf); */ while ((ch = fgetc(inf-})) != EOF) { switch (ch) { case 0x7B: fputc('$', outf); fputc('(', outf); -}break; case 0x7D: fputc('$', outf); fputc(')', outf); break; case '\t': fpu-}tc(' ', outf); fputc(' ', outf); break; default: fputc(ch, outf); } } fclose(-}inf); fclose(outf); delete(buf1); rename(buf2, buf1); } #ifdef M6502 int getname(buf) char * buf; { int i; -} int ch; i = 0; /* str idx */ for (; ((ch = kbdchar()) != '\n') ; ) { if (ch == '\b') { if-} (i > 0) { fputc('\b', stderr); i--; } } else { fputc(ch, stde-}rr); buf[i] = ch; i++; } } buf[i] = '\0'; return strlen(buf); } #endif fputc(ch, stde,j/* SANITIZE.C flush tabs and convert ascii braces to two $( $). Aids conversion of C code from ascii to atas1}cii. This program is copyleft 1989 by JRD. See COPYLEFT.JRD for a detailed description of your rights and respo1}nsibilities about copying it. Give this program and its source away! Help create more free software!*/#inclu1}de #ifndef M6502#include #define delete unlink#endifchar buf1[80];char buf2[80];main(argc, argv)i1 }nt argc;char ** argv;$( char * name; char * p; FILE * inf; FILE * outf; int ch; if (argc > 1) $( name 1!}= argv[1]; strcpy(buf1, name); $) else $(#ifdef M6502 printf("SANITIZE>"); if (getname(buf1) <= 0) 1"} exit(0); name = buf1;#else printf("Sanitize what?\n"); exit(0);#endif $) fn_default(name, 0, buf1); 1#} name = buf1; inf = fopen(name, "r");/* printf("open '%s'->%x\n", name, inf); */ if ((int)inf <= 0) $( printf(1$}"Can't open '%s' error %x\n", name, errno);#ifdef M6502 kbdchar();#endif exit(0); $) strcpy(buf2, buf1); p 1%}= strchr(buf2, '.'); if (!p) p = buf2 + strlen(buf2); strcpy(p, ".tmp"); outf = fopen(buf2, "w");/* printf("open 1&}'%s'->%x\n", buf2, outf); */ while ((ch = fgetc(inf)) != EOF) $( switch (ch) $( case 0x7B: 1'} fputc('$', outf); fputc('(', outf); break; case 0x7D: fputc('$', outf); fputc(')', ou1(}tf); break; case '\t': fputc(' ', outf); fputc(' ', outf); break; default: 1)} fputc(ch, outf); $) $) fclose(inf); fclose(outf); delete(buf1); rename(buf2, buf1);$)#ifdef M6502int getn1*}ame(buf)char * buf;$( int i; int ch; i = 0; /* str idx */ for (; ((ch = kbdchar()) != '\n') ; ) $( if (1+}ch == '\b') $( if (i > 0) $( fputc('\b', stderr); i--; $) $) else 1,} $( fputc(ch, stderr); buf[i] = ch; i++; $) $) buf[i] = '\0'; return strlen(buf);$)#endif0} 5LN%HehL!`ܠؠԠРH8咅h`H8h`֠ҠΠʠƠ±5.}HȱhL!`e` L L!L!L!L!L!L! ȘL! L! M Hȑh`HȱhL Hȱ5/}hL Hȱh ` ` %!HȥhL! %!L! `HȑhL!L!HH hhL!HH hh50}L! H*h`L!`L!HIhIi```IHIh`e` !L `` !L{! !L! !51} {!L ! !L  &L!L! 󨥂fjL! eHehL! 8H哪hL! 52}HhL! EHEhL! %H%hL!`\_ łXTM łFBE 0>7ł86/ 䃐-&ł'% 0ł 53}䃐 ł`` 0ł 䃐ł۰ 0łʰ 䃐ł𹰼 L H hL54} lHh` {!L !L hh捠ilŕŔ liL55}#`L!  ! Ɣ !$ D$& $ D$& 򦓥 !`Heeh`` 56} ! ! ! !Ńł &&L$FfFf3ōŌ8包卅57}FfFfͥ !ĕ !` \$L! ` `58}S L L L i?H ihL%  )l 59} S# 7   "+ 5:}  t! A" {! 9!%  %L&(  *%  ( "  %% 9! %  1% 9! 5;} (  . 9! "'( //  * \/  %% %  %% .  // 9! u ! 5<}!% %  5% A" 9! (  %% (  . 9!  m/ 9! "LR( u L;($   5=}/(   /LO($   /)   /LO(   /   /LO(   /LO( #'{'}5>}(L)(L'  .  .%  >0% %  }0  LY#SANITIZE>rCan't open '%s' error %x.tmpw S# a 5?} 9! \/ 9! "Lp)L(L( ~ "9 "(~ //  / u #  9! #Lm) //  5@}/  u A"  u `! u #  9! #L(  u A" `!  5% # LY# S# ))  G4 ))  5A}:&LY# S# a    t! A" {! t! A"  t! P" 9! u # u  9!  b* # LY# S# M //    t!5B} A" {! t! A"  t! P"  b*  LY# S## 7  9!% u # % 9! # {! 9! u !L. u #% "3 u # 5C} 9! # #)  / u  9!L*L* u  9! u #% "0 u #  9! # #)  / u  9!L* u #5D}- " 9! u  9!L`+ 9! u #0 " 0 9!L+  9! u # 74B u #  9! #  15E} 9! u # 74 u  9!L+L+ 9! u #. "< u  9!  1 9! u # 74 u  9!L ,L6,5F} 9!% u # % 9! # {!! 9!  9! u #  9! # # 4L2- # u `!  A" `!LV-! u  9!LV-5G}!   3LV-!    l2LV-!    l2LV-!   l2LV-!    l2LV- u #5H}  LY#LV- #y,c,s,d,b,o,u -xL"-  5% 9! u   u " !  u  9!  u "  u5I} P" 9!L- 9! u ! !7 u #  9! # ! )  / u  9!L- u #  9! # !0 u # 5J} 9! # #)  / u  9!L- u 7 u #  9! # ! )  / u  9!LN.L* u #  LY# A# 35K} #L. u LY# E# M   u # / 9! " u //  LY# u  LY# HHIDE5L} Bh VL40` `Œ eL!L=/ d/`%H$H` HIDEB VL40``5M}@ iɀ` /0krwa dKJKHI)a0{8 驛5N}DEB VL40``//` S#P 7 R   1 {0  b3  3P  LY# S#R 7 V  5O} 1 1  b3T :  // 9! u 9!L0T u 9!   b3 1  b3  3R  LY#, 5P}S#P 7 V :  // !2 1  % X  b3R   %Lo1R X  %T u !%R .  // !5Q}R V  b3P  LY#D: A# a  u # W5 u  9!L1 9! u !L1 9! u  9!L2 #1-1+5R} 9! u # 74=  u #  u #  9! # ! A" 0 P" 9!L2  u # # LY# I# a  u  9!  "5S} 9!  " 9!  "  " 9! u %  !  u A" `! u # " u #0 A5T}" `!L!3 u #7 A" `! u  9!  u \$ 9! !L2 `! 4 # LY# E#  5% A"  %LY5U}# /3 3DE BJK VL40` /3 3DE!BJK VL40` B V0`` 5V} Ԇ !Ԇթ- ؠ0L#4)ȑ` 0:`` NHɛD 45W}ȥi揠 4Hhɛ`!8`` A[i ` A# a   5% A"  P" 9! 5X} u "O u ! 9! u #  9! #  u ! `! u #  9! #  u `!L4 # LY# A# ": ""5Y} " #LY# `! u #  9! #  u `!L4 # LY# A# ": ""45/* UNSANITIZE.C Opposite of sanitize. turn { } to c-style braces. Aids conversion of C code from atascii 9[} to ascii. This program is copyleft 1989 by JRD. See COPYLEFT.JRD for a detailed description of your rig9\}hts and responsibilities about copying it. Give this program and its source away! Help create more free so9]}ftware! */ #include #ifndef M6502 #include #define delete unlink #endif char buf1[80]; char b9^}uf2[80]; main(argc, argv) int argc; char ** argv; { char * name; char * p; FILE * inf; FILE * outf; int 9_}ch, other_ch; if (argc > 1) { name = argv[1]; strcpy(buf1, name); } else { #ifdef M6502 9`} printf("UNSANITIZE>"); if (getname(buf1) <= 0) exit(0); name = buf1; #else printf("Unsanitize what?9a}\n"); exit(0); #endif } fn_default(name, 0, buf1); name = buf1; inf = fopen(name, "r"); /* printf("open9b} '%s'->%x\n", name, inf); */ if ((int)inf <= 0) { printf("Can't open '%s' error %x\n", name, errno); #ifdef M69c}502 kbdchar(); #endif exit(0); } strcpy(buf2, buf1); p = strchr(buf2, '.'); if (!p) p = buf2 + 9d}strlen(buf2); strcpy(p, ".tmp"); outf = fopen(buf2, "w"); /* printf("open '%s'->%x\n", buf2, outf); */ whil9e}e ((ch = fgetc(inf)) != EOF) { switch (ch) { case '$': other_ch = fgetc(inf); switc9f}h(other_ch) { case '(': other_ch = 0x7B; break; case ')': 9g} other_ch = 0x7D; break; default: fputc(ch, outf); } fputc(other9q}B%DOS SYSB*)DUP SYSBSA2AT ASCBdA2AT C B,tA2AT COMBAT2A ASCBAT2A C B,AT2A COMBCOMPILE BATB COPYLEFTJRDBREADME TXTB SANITIZEASCBSANITIZEC B--SANITIZECOMBZUNSAN ASCBvUNSAN C B-UNSAN COM_ch, outf); break; default: fputc(ch, outf); } } fclose(inf); fclose(outf); delete9r}(buf1); rename(buf2, buf1); } #ifdef M6502 int getname(buf) char * buf; { int i; int ch; i = 0; /* str9s} idx */ for (; ((ch = kbdchar()) != '\n') ; ) { if (ch == '\b') { if (i > 0) { f9t}putc('\b', stderr); i--; } } else { fputc(ch, stderr); buf[i] = ch; 9u} i++; } } buf[i] = '\0'; return strlen(buf); } #endif fputc(ch, stderr); buf[i] = ch; 8L/* UNSANITIZE.C Opposite of sanitize. turn $( $) to c-style braces. Aids conversion of C code from atascii t=w}o ascii. This program is copyleft 1989 by JRD. See COPYLEFT.JRD for a detailed description of your rights and r=x}esponsibilities about copying it. Give this program and its source away! Help create more free software!*/#i=y}nclude #ifndef M6502#include #define delete unlink#endifchar buf1[80];char buf2[80];main(argc, arg=z}v)int argc;char ** argv;$( char * name; char * p; FILE * inf; FILE * outf; int ch, other_ch; if (argc > 1) ={} $( name = argv[1]; strcpy(buf1, name); $) else $(#ifdef M6502 printf("UNSANITIZE>"); if (getnam=|}e(buf1) <= 0) exit(0); name = buf1;#else printf("Unsanitize what?\n"); exit(0);#endif $) fn_default=}}(name, 0, buf1); name = buf1; inf = fopen(name, "r");/* printf("open '%s'->%x\n", name, inf); */ if ((int)inf <= 0)=~} $( printf("Can't open '%s' error %x\n", name, errno);#ifdef M6502 kbdchar();#endif exit(0); $) strcpy=}(buf2, buf1); p = strchr(buf2, '.'); if (!p) p = buf2 + strlen(buf2); strcpy(p, ".tmp"); outf = fopen(buf2, "w");=}/* printf("open '%s'->%x\n", buf2, outf); */ while ((ch = fgetc(inf)) != EOF) $( switch (ch) $( =} case '$': other_ch = fgetc(inf); switch(other_ch) $( case '(': other_ch = 0x=}7B; break; case ')': other_ch = 0x7D; break; default: fpu=}tc(ch, outf); $) fputc(other_ch, outf); break; default: fputc(ch, outf); $) =} $) fclose(inf); fclose(outf); delete(buf1); rename(buf2, buf1);$)#ifdef M6502int getname(buf)char * buf;$( int i=}; int ch; i = 0; /* str idx */ for (; ((ch = kbdchar()) != '\n') ; ) $( if (ch == '\b') $( if (=}i > 0) $( fputc('\b', stderr); i--; $) $) else $( fputc(ch, stderr); =} buf[i] = ch; i++; $) $) buf[i] = '\0'; return strlen(buf);$)#endif $( fputc(ch, stderr); <^ 5LN%HehL!`ܠؠԠРH8咅h`H8h`֠ҠΠʠƠ±A}HȱhL!`e` L L!L!L!L!L!L! ȘL! L! M Hȑh`HȱhL HȱA}hL Hȱh ` ` %!HȥhL! %!L! `HȑhL!L!HH hhL!HH hhA}L! H*h`L!`L!HIhIi```IHIh`e` !L `` !L{! !L! !A} {!L ! !L  &L!L! 󨥂fjL! eHehL! 8H哪hL! A}HhL! EHEhL! %H%hL!`\_ łXTM łFBE 0>7ł86/ 䃐-&ł'% 0ł A}䃐 ł`` 0ł 䃐ł۰ 0łʰ 䃐ł𹰼 L H hLA} lHh` {!L !L hh捠ilŕŔ liLA}#`L!  ! Ɣ !$ D$& $ D$& 򦓥 !`Heeh`` A} ! ! ! !Ńł &&L$FfFf3ōŌ8包卅A}FfFfͥ !ĕ !` \$L! ` `A}S L L L i?H ihL%  )l A} S# 7   "+ A}  t! A" {! 9!%  %L&y(  *%  ( "  %% 9! %  0% 9! A} (  . 9! "'( //  * J/  %% %  %% .  / 9! u ! A}!% %  5% A" 9! (  %% (  . 9!  [/ 9! "L>( u L/(  [/ 9!A} u L'{ 9!L (} 9!L (   .L ( #'(')L'   .L;(   .L;( #'$L(L'  A}.  .%  ,0% %  k0  LY#UNSANITIZE>rCan't open '%s' error %x.tmpw S# a  9! J/ 9! A} "L^)L(L( ~ "9 "(~ //  . u #  9! #L[) //  .  u A" A} u `! u #  9! #L(  u A" `!  5% # LY# S# ))  54 ))  :&LY# S# a  A}  t! A" {! t! A"  t! P" 9! u # u  9!  P* # LY# S# M //    t! A" {! t! A" A} t! P"  P*  LY# S## 7  9!% u # % 9! # {! 9! u !Lv. u #% "3 u #  9! # #)  A}. u  9!L|*L* u  9! u #% "0 u #  9! # #)  . u  9!L|* u #- " 9!A} u  9!LN+ 9! u #0 " 0 9!Lt+  9! u # %4B u #  9! #  1 9! u # %4A} u  9!L+L+ 9! u #. "< u  9!  1 9! u # %4 u  9!L+L$, 9!% u # A}% 9! # {!! 9!  9! u #  9! # # 4L - # u `!  A" `!LD-! u  9!LD-!   3LD-A}!    Z2LD-!    Z2LD-!   Z2LD-!    Z2LD- u #  LY#LD- #g,c,A}s,d,b,o,u,xL-  5% 9! u   u " !  u  9!  u "  u P" 9!L-A} 9! u ! !7 u #  9! # ! )  . u  9!L- u #  9! # !0 u #  9! # #)  A}. u  9!L- u 7 u #  9! # ! )  . u  9!L<.L|* u #  LY# A# 3 #LA}. u LY# E# M   u # / 9! " u //  LY# u  LY# HHIDE Bh VL"0`A} `Œ eL!L+/ R/`%H$H` HIDEB VL"0``@ iA}ɀ` /0krwa dKJKHI)a0{8 驛DEB VA}L"0``//` S#P 7 R   0 i0  P3  3P  LY# S#R 7 V   0 0  A}P3T :  / 9! u 9!L0T u 9!   P3 0  P3  r3R  LY#, S#P 7 V : A}  / !2 1  % X  P3R   %L]1R X  %T u !%R .  / !R V  P3PA}  LY#D: A# a  u # E5 u  9!L1 9! u !L1 9! u  9!L1 #1-1+ 9! u # %4=A}  u #  u #  9! # ! A" 0 P" 9!L1  u # # LY# I# a  u  9!  " 9!  "A} 9!  "  " 9! u %  !  u A" `! u # " u #0 A" `!L3 u #A}7 A" `! u  9!  u \$ 9! !L{2 `! 4 # LY# E#  5% A"  %LY# /q3 q3DA}E BJK VL"0` /3 3DE!BJK VL"0` B V0`` Ԇ !Ԇթ-A} ؠ0L4)ȑ` 0:`` NHɛD 4ȥiA}揠 4Hhɛ`!8`` A[i ` A# a   5% A"  P" 9!  u "O u !A} 9! u #  9! #  u ! `! u #  9! #  u `!L4 # LY# A# ": "" " A} #LY# `! u #  9! #  u `!L4 # LY# A# ": "" " @#