ML }  X c0C)HCCH Mhhݩh `eCDiCD`  RyHP   * 1H0芢@) Y0.Ș`i #(PM\ \b Pgi 0  % @ / ՠ`d   0DDԝL Ȁ}  9CH@$$** This program will create **$$** the file }ATAEPSGR.BTC, **$$** that allows you to print **$$** full ATASCII on an EPSON **$$** compatible printer (in **}$$** graphics mode) using BTC.**$$**--------------------------**$$** Written by BEWESOFT 1999 ** $$**---------}-----------------** r9@,<@@D:ATAEPSGR.BTCr(@(; Printing full ATASCII on EPSON} printer*-AU#"AU' *&@ (@ >27,42,4,8,0&6-2!A'@6-&A((1!@1 }* @'6-&@21 @`2 @26-%@d<6-BsD%@$--@@C68,-F:% }&@,G S!A'g-@@{68,-AU&8, F-@@#6-7-@@ }K6-P:8,'A(,k68,-+8,&A($,$@{6-$@% (@, P (@ @  }D:ATAEPSGR.BAS; ASCII (EOL $9B) -> ATMAS II.FORMAT W 38EOL > $0D$9B > $0D /EOLEND > $FF*128 ;Dummy codes for ATMAS ;bu}ffering system; ATASCII -> ASCII (EOL $9B) 0 > "*" ;Graphics 1 > "+" 2 > "|" 3 > "+" 4 > "+" 5 > "+" 6 > "/" 7 > "\" 8 > "/" 9 >} "."10 > "\"11 > "'"12 > "'"13 > "-"14 > "_"15 > "."16 > "*"17 > "+"18 > "-"19 > "+"20 > "*"21 > "-"22 > "|"23 }> "+"24 > "+"25 > "|"26 > "+"27 > "[ESC]"28 > "[UP]"29 > "[DOWN]"30 > "[LEFT]"31 > "[RIGHT]"123 > "*"125 > "[CLS]"}126 > "[BACKSP]"127 > "[TAB]"128 > "*" ;Inverse graphics129 > "+"130 > "|"131 > "+"132 > "+"133 > "+"134 > "/"135 }> "\"136 > "/"137 > "."138 > "\"139 > "'"140 > "'"141 > "-"142 > "_"143 > "."144 > "*"145 > "+"146 > "-"147 > "+"}148 > "*"149 > "-"150 > "|"151 > "+"152 > "+"153 > "|"154 > "+"156 > "[DELLN]"157 > "[INSLN]"158 > "[CLRTAB]"159 }> "[SETTAB]"160-252>&$7F ;Inverse standard chars.251 > "*"253 > "[BELL]"254 > "[DEL]"255 > "[INS]"k; full ATASCII -> PC (PC 437 - USA,; Standard Europe)FORMAT W 80 ;For the case of linesEOL > 13,10 ;lo }nger than 80 chars/ln$9B > 13,10 /EOL 0 > $EC ;heart (n.i. - ; - not implemented on PC) 1 > $C3 ;line 2 > } $DE ;line (approx.) 3 > $D9 ;line 4 > $B4 ;line 5 > $BF ;line 6 > "/" ;line (approx.) 7 > "\" ;line (approx.) 8 }> "/" ;bottom-right half (n.i.) 9 > $DE ;bottom-right corner (n.i.) $A > "\" ;bottom-left half (n.i.) $B > $DE ;upper-rig }ht corner (n.i.) $C > $DD ;upper-left corner (n.i.) $D > $DF ;line (approx.) $E > "_" ;line (approx.) $F > $DD ;bottom-le }ft corner (n.i.)$10 > $E8 ;card symbol (n.i.)$11 > $DA ;line$12 > $C4 ;line$13 > $C5 ;line$14 > $FE ;large dot (approx. })$15 > $DC ;bottom half$16 > $DD ;line (approx.)$17 > $C2 ;line$18 > $C1 ;line$19 > $DD ;left half$1A > $C0 ;line$1B > } $E4 ;escape (n.i.)$1C > $F4 ;up (n.i.)$1D > $F5 ;down (n.i.)$1E > $AE ;left (n.i.)$1F > $AF ;right (n.i.)$60 > $F9 ;la }rge dot (approx.)$7B > $EA ;card symbol (n.i.)$7D > $B8 ;cls (n.i.)$7E > $F3 ;backspace (n.i.)$7F > $F2 ;tab (n.i.); * }** INVERSE CHARACTERS ***$80 > $EC ;heart (n.i.)$81 > $CC ;double line (approx.)$82 > $DD ;left 3/4 (approx.)$83 > $BC ; }double line (approx.)$84 > $B9 ;double line (approx.)$85 > $BB ;double line (approx.)$86 > "/" ;inverse line (n.i.)$87 > !}"\" ;inverse line (n.i.)$88 > "/" ;upper-left half (n.i.)$89 > $DB ;inv.btm-rght corner (n.i.)$8A > "\" ;upper-right half "}(n.i.)$8B > $DB ;inv.upr-rght corner (n.i.)$8C > $DB ;inv.upr-left corner (n.i.)$8D > $DC ;bottom 3/4 (approx.)$8E > $DF #};upper 3/4 (approx.)$8F > $DB ;inv.btm-left corner (n.i.)$90 > $E8 ;card symbol (n.i.)$91 > $C9 ;double line (approx.)$9 $}2 > $CD ;double line (approx.)$93 > $CE ;double line (approx.)$94 > $FE ;inv. large dot (n.i.)$95 > $DF ;upper half$96 > %}$DE ;right 3/4 (approx.)$97 > $CB ;double line (approx.)$98 > $CA ;double line (approx.)$99 > $DE ;right half$9A > $C8 ;d &}ouble line (approx.)$9C > $F4 ;del.line (n.i.)$9D > $F5 ;ins.line (n.i.)$9E > $AE ;clr.tab (n.i.)$9F > $AF ;set tab (n.i. '})$A0-$FA>&$7F ;Inverse standard chars.$E0 > $F9 ;inv. large dot (n.i.)$FB > $EA ;card symbol (n.i.)$FC > $BA ;double li (}ne (approx.)$FD > $B8 ;bell (n.i.)$FE > $F3 ;delete (n.i.)$FF > $F2 ;insert (n.i.) W; ATMAS II. -> ASCII (EOL $9B)SETTAB 9,18,27,36,45,54,63,72 9 > TAB$0D > $9B /EOL$FF > - ;Dummy codes from ATMAS *} ;buffering system; EED -> ASCII (EOL $9B); (EED = Energy EDitor from Poland)0-$3F > +$20 ;Standard chars. from ;screen-code$,}40 > " "*8;8 spaces (CTRL+SPACE)$41 > "a" ;a,$42 > " "*4;4 spaces (SHIFT+SPACE)$43 > "c" ;c'$44 > "S" ;S'$45 > "e" ;-}e,$46 > " " ;5/4 space (CTRL+F)$47 > " " ;3/2 space (CTRL+G)$48 > " " ;7/4 space (CTRL+H)$49 > " " ;1 space (CTRL+I).}$4A > " " ;2 spaces (CTRL+J)$4B > "z" ;z'$4C > "l" ;l/$4D > "N" ;N'$4E > "n" ;n'$4F > "o" ;o'$50 > "O" ;O'$51 /}> "A" ;A,$52 > "E" ;E,$53 > "s" ;s'$54 > - ;1/4 space (CTRL+T)$55 > - ;3/4 space (CTRL+U)$56 > "C" ;C'$57 > -0} ;Not exist.$58 > "Z" ;Z-$59 > - ;1/2 space (CTRL+Y)$5A > "z" ;z.$5B-$5F> - ;Not exist.$60 > "Z" ;Z'$7B > "L"1} ;L/$7C > '"' ;/\/$7D-$FF> - ;Not exist.$DB > $9B /EOL=; Definition for printing .DOC files; at 137 characters/line on EPSON; printer(independent of the original; text formatti3}ng) using BTC $9B > " " ;Remove single EOLs$9B*2 > =*2 /EOL ;Accept double EOLsFORMAT W 137 ;Re-format text to4} ;137 chars/line; (Replace "W" with "R" if you want; right margin formatting!)START > 27,65,5,15,27,83,5}1 ;At the begin of file: ;Set Line feed 5/72", ;Condensed, Subscript END > 27,64 ;Reset prin6}ter when ;finished$; PC (PC437 - USA, Standard Europe); -> full ATASCII 0-31 > - ;Control codes13,10 > $9B /EOL 8};EOLs10,13 > $9B /EOL 13 > $9B /EOL 10 > $9B /EOL$60 > "'" ;' reverse$7B > $DB$7D > $DD$7E > $D ;/\/$7F > " "9}$80 > "C" ;C,$81 > "u" ;u"$82 > "e" ;e'$83 > "a" ;a^$84 > "a" ;a"$85 > "a" ;a'reverse$86 > "a" ;ao$87 > "c" ;c,$88 > :}"e" ;e^$89 > "e" ;e"$8A > "e" ;e'reverse$8B > "i" ;i"$8C > "i" ;i^$8D > "i" ;i'reverse$8E > "A" ;A"$8F > "A" ;Ao$90 ;}> "E" ;E'$91 > "ae"$92 > "AE"$93 > "o" ;o^$94 > "o" ;o"$95 > "o" ;o'reverse$96 > "u" ;u^$97 > "u" ;u'reverse$98 > "y"<} ;y"$99 > "O" ;O"$9A > "U" ;U"$9B > "c" ;c|$9C > "l" ;pound$9D > "Y" ;Y=$9E > "Pt"$9F > "f" ;forte$A0 > "a" ;a'$A1 =}> "i" ;i'$A2 > "o" ;o'$A3 > "u" ;u'$A4 > "n" ;n/\/$A5 > "N" ;N/\/$A6 > "a" ;a_$A7 > "o" ;O_$A8 > "?" ;? reverse$A9 > >}$11 ; ,- symbol$AA > 5 ; -, symbol$AB > "1/2"$AC > "1/4"$AD > "!" ;! reverse$AE > "<<"$AF > ">>"$B0 > $A0 ;Full cha?}r. 25% shade$B1 > $A0 ;Full char. 50% shade$B2 > $A0 ;Full char. 75% shade$B3 > "|" ;line$B4 > 4 ;line$B5 > 4 ;line/@}double line$B6 > $84 ;double line/line$B7 > $85 ;double line/line$B8 > 5 ;line/double line$B9 > $84 ;double line$BA > A}$FC ;double line$BB > $85 ;double line$BC > $83 ;double line$BD > $83 ;double line/line$BE > 3 ;line/double line$BF > B}5 ;line$C0 > $1A ;line$C1 > $18 ;line$C2 > $17 ;line$C3 > 1 ;line$C4 > $12 ;line$C5 > $13 ;line$C6 > 1 ;line/doC}uble line$C7 > $81 ;double line/line$C8 > $9A ;double line$C9 > $91 ;double line$CA > $98 ;double line$CB > $97 ;double D}line$CC > $81 ;double line$CD > $92 ;double line$CE > $93 ;double line$CF > $98 ;double line/line$D0 > $18 ;line/doubleE} line$D1 > $97 ;double line/line$D2 > $17 ;line/double line$D3 > $9A ;double line/line$D4 > $1A ;line/double line$D5 > $F}11 ;line/double line$D6 > $91 ;double line/line$D7 > $93 ;double line/line$D8 > $93 ;double line/line$D9 > 3 ;line$DA G}> $11 ;line$DB > $A0 ;Full character$DC > $15 ;Bottom half$DD > $19 ;Left half$DE > $99 ;Right half$DF > $95 ;Top halfH}$E0 > "a" ;Math symbols...$E1 > "B"$E2 > "r"$E3 > "n"$E4 > "E"$E5 > "o"$E6 > "u"$E7 > "t"$E8 > $10 ;Phi -> card symboI}l$E9 > "0"$EA > $7B ;Omega -> card symbol$EB > "d"$EC > "oo"$ED > "0"$EE > "e"$EF > "A"$F0 > "="$F1 > "+-"$F2 > ">J}="$F3 > "<="$F4 > $11$F5 > 3$F6 > "+"$F7 > "="$F8 > "'" ;deg.$F9 > $60 ;full circle$FA > "." ;small dot$FB > "V" ;SQK}R$FC > "n" ;^n$FD > "2" ;^2$FE > $14 ;full square$FF > " " ;emptyG`pL7ch`h``` }`L ``H`H`8q`r`쥩}q`}r` 0k` }`` d M}'HHI Bh V0`H `Error h '` {`S `ȱ ` wL` `Press any key to exit...  { N}` a al BL`EDKHH aJhh aaa`aňc8`DE8HTI O}B V L`扭a}Ha}I aaŇa`a` aɛ) {a `HH ` file [Dn:]fname P}[.ext] :hDhEHILa/b0b i&b i'b < `hbb_b:b._bɛ(.ȩ Q}TȩXȩTBȩTȩCȩ%ii ȩDȩ1ȩ:`DEFAULT `Syntax:BTC source destination [defin R}ition]Default extensions: .TXT .TXT .BTCDefault definition: DEFAULT.BTCL` `BTC 1.0 (BEWESOFT's Text Converter)by J S}iri Bernasek - BEWESOFT 1999iT$ `MEMLO too high !!! LtS$[ b[ɛ[ bܢ[ bLdLb `So T}urce[ a `Destination[ a `Definitionܢ[ a[I b[ɛ[ 6b[ 6bܢ[ 6bLi a80   U}` (2f :f YZ`Leĝ [}ZXYWLGgLe> :f YZȌg/ aE aO aL a朢Ygg i荿gg8 \}ȢZgY gܥLe`݅pő Ő8ie ]}ee`eeő Ő8ieee`hee榱 䝰Le ^} h$MWWX ѡ Thܥ ieeš'ƤƦ奣ƤƣƦƥ _}š䥤ŢޠȥȥȥȢX䝐W䝐` ?g `LeNCWRʆT `} ܢ[ a݅p :fL:kSE7FmLkLj aETY aAR aRK aTD a iLk aON, aD% a}a iLk aL a isLkLe aO aR aM aA aIT aݚi07 aLk :f!YZ b} YZLkLe aT_ aTX aAQ aBJ :f%S aP aC :fYкZkhYЧZTLkL c}eLoe-5 /gUk ,gnkUk ?gXWȄ hX hXY䝐 ?g hɛ ;У aɛ8ő )LiLZ d}e `Definition file too long !L`\] hE Th2#,l\] Th e}LeT)TLep^[ aeŰ8` a^_氦ꥰ8孅` f}a J[ a`Š`U`V  Le #mLm m #m 9mLm m Kn #m 9m ʽVULm` g}U3m nL%m`Ln|mee  Leym n` UŠLm`UŠ h} UŠ䲐`䲰UŠƲIJUULm m VU8`VŠ m膶`ʽUŠ m`:UŠ+nʽUŠ i}#VH UVL.nhVȄ+n`Ų[UŠ䲐LnUŠ䲐Ln~nUUU沥şUŠ䲐LQnU j}Š䲐LQn`H  m m #mh` nLnĒH nhē``Őő DE8吝H呝I k} a` n n LaVő Ő8ieee(oooŬѭ 8`Loee l}ő Ő8ieee`apeoeoIP/14 m}1Le l0䟰,TL[pQLNpqLNp1LNpLNpƾ nL[p l澤` Tl l oH\] .o n} .o lȱHȱh o gl o #oL` ` Q ================================= B T C 1 . 0 (Bewesoft's Text Converter) By Jiri Bernasek - BEWE$p}SOFT 1999 =================================BTC is a tool for converting texts between different codes. It gives a simp$q}le solution when you've problems with transfering text files between different systems or programs.As you know, almost all s$r}oftware on all computers use the ASCII code for storing texts. But unfortunately, there are lots of different modifications o$s}f this standard, and so it's sometimes quite difficult to transfer your files from one system to another. If you've already s$t}een a text file from PC displayed on Atari XL/XE, or if you've tried to send a BASIC listing with control-graphics characters$u} to an EPSON printer, then you surely know what am I talking about. And if you're using a language other than English, and so$v} you need some special characters which are not in the original ASCII code, then it's almost easier to write the text again, $w}than to transfer the file and repair problems with a text-editor...BTC allows you to easily convert texts between any codes$x} you want. All you need is the BTC.COM program file, and a matching definition-file for the code-conversion you want. These d$y}efinition-files are in fact ASCII text-files (you can create your own definitions or change them with almost any text editor)$z}. BTC allows you to define:--- Simple byte-to-byte conversion (of course)--- Byte-to-string expansion--- String-to-string ${}replacing--- Simple operations (+/-/AND/OR/EXCLUSIVE-OR) on data-bytes--- Wildcards or number-range for source string searc$|}hing--- Expanding TABs to spaces, with user-defined TAB positions--- Text re-formatting in one of 3 possible modes, up to 2$}}55 characters per line--- Adding headers at the begin and the end of file--- All strings and numbers may be defined as deci$~}mal, hexadecimal or binary number(s), as a string, or as a "byte*amount" multiplication. HOW TO USE THE PROGRAM $} ======================BTC should run with almost any DOS, when it allows opening of two files at a time, and MEMLO isn$}'t higher than $5200 (valid for BTC version 1.0). As far as I know, all existing DOSes are OK for this specification. BTC doe$}sn't use OS-RAM, and also the bank-select memory (Ramdisk) isn't affected.With SpartaDOS or BW-DOS, the BTC works just like$} any other external command. The syntax is: BTC source destination [definition](The "[ ]" brackets are marking optional $}parameters.)Note: With SpartaDOS or BW-DOS, BTC will stop any running batch file in the case of an error-message - to preve$}nt problems (for example: erasing source files that haven't been successfully converted).With any other DOS, you should jus$}t run the BTC.COM file. You'll be then prompted to enter the three filenames from keyboard.After accepting the parameters, $}BTC will read and compile the definition file. Mostly it's finished very quickly, but when the definition is very long or com$}plicated, it'll take several seconds, and you may even get the "Out of memory" message - try to remove all cartridges, and di$}sable interanl BASIC in this case (to increase buffer-size).Then, the text-conversion itself begins. There's no limit on the$} size of converted files - BTC reads and writes long files part-by-part. When the definition is more complicated, the delays $}between reading and writing may increase to several seconds.All the three filenames may be entered without of drive numbers$} and extensions - in this case the standard settings will be used: .TXT extension for source/destination files, .BTC for the $}definition file, the working drive under SpartaDOS or BW-DOS, or D1: under an other DOS. When the name of definition file is $}not entered, the program will use DEFAULT.BTC (this allows a simplified syntax for most often used conversion-type, when you $}rename or copy the definition to DEFAULT.BTC).The definition files are usually named as "xxx2yyy.BTC", where "xxx" and "yyy$}" are abbreviations for source and destination codes. The files supplied with BTC use the following abbreviations:ATA - Ful$}l ATASCII, including all inverse and graphics characters.ASC - Pure 7 bit ASCII, without of any special characters, but with$} the Atari XL/XE EOL ($9B). Should be easily printable on any printer accessible from the XL/XE system (i.e. with a kind of E$}OL conversion), as well as on the screen.ATM - ATMAS II. source filesPC - The standard IBM PC ASCII code (the oldest versi$}on for USA - according to my printer's manual it's "PC437").EED - The text files from ENERGY EDITOR. This editor is often us$}ed for disk-magazine articles in Poland.Note: Definitions for more codes are contained in the CZECH.ARC archive. This archi$}ve contains some files especially for use in the Czech republic: Czech version of this text, and definitions for converting s$}ome specific Czech codes.Example: To convert the file EXAMPLE.TXT in full ATASCII into TEMP.TXT in the IBM PC ASCII code (u$}nder SpartaDOS or BW-DOS), you should type: BTC EXAMPLE TEMP ATA2PC(The files EXAMPLE.TXT, BTC.COM, and ATA2PC.BTC shoul$}d be in the working directory.) If you're converting files in this way very often, you can rename ATA2PC.BTC to DEFAULT.BTC, $}and then you can do the same conversion using a simplified syntax: BTC EXAMPLE TEMP HOW TO CREATE A DEFINITION $} ==========================The definition files are ASCII text files, so you can create them with almost any text edi$}tor. (The Atari XL/XE EOL ($9B) must be used.)Note: BTC does accept the full ATASCII, so all the commands and numbers may b$}e normal/inverse upper/lower-case - excepting the quote at the end of a string (inverse quote isn't terminating the string). $}But still it's strongly recomended to use only standard ASCII characters (no inverse, no graphics and control characters, bet$}ter upper-case), to allow easy viewing and printing with all the different text-editors and printers.Names of the definitio$}n-files should match the model "xxx2yyy.BTC", as mentioned above. (Actually, the name needn't to be in this form, but any "ra$}ndom" names are not so easy to understand...)When your new definition is finished, you should test it using the BTC (simply$} use it for a test-conversion). BTC will report any errors found in the definition file, together with the number of line in $}the file. (Only the first error in the file is reported, so you should test it again after removing the error.) It's also goo$}d to analyze the result of a test-conversion to be sure, that all the code-conversions are defined correctly. Remember that B$}TC doesn't report errors like "34" instead of "43" - only the syntax is tested. The SyntaxEach line in the defini$}tion file may define a code-conversion, contain a special command (see later), or a comment after ";". Empty lines and spaces$} (even ATASCII TAB $7F) may be used (outside quotation marks) where you want to improve readability of your file, and will be$} ignored by BTC.Examples: 13>155/EOL;No spaces 13 > 155 /EOL ;This is the same 1 3 > 1 5 5 / e o l ;Also the same 1$}3>"[ C R ]";Here the spaces ARE present in the string! ; Comment line...All parameters (numbers or characters) may be def$}ined as a decimal number, a hexadecimal number after "$", a binary number after "%", or as a string inside " " or ' ' quotati$}on marks. The numbers are limited to a single byte (0-255), while strings may be up to 128 characters long (where allowed). A$} string containing only one character is a valid replacement for any numeric parameter.Examples: SETTAB 33 ;All thes$}e SETTAB $21 ;lines are SETTAB %100001 ;actually SETTAB "!" ;the same! SETTAB '!' Code-conversion l$}inesThe basic syntax of a line that define a code-conversion is: source > [destination] [/EOL] [;comments]When the "so$}urce" string is found in the source file, it'll be replaced with the "destination" string in the destination file, or simply $}ignored when "destination" isn't defined. (The "/EOL" parameter will be described later.)Note: All characters that don't ma$}tch any definition will be copied into the destination file without of any changes.Both the "source" and "destination" stri$}ngs may be combined from multiple numbers or strings as follows: string[*amount][,string[*amount]]...When the "*amount" $}parameter is present (where "amount" is a number between 1 and 255), the string will be repeated that number of times.Note:$} Both "source" and "destination" strings are limited to max. 255 characters (in its compiled form, i.e. with all the "*amount$}" multiplications executed).Examples: 13 > $9B ;Convert CR to ATASCII EOL 13 > $9B*2 ;Convert CR to d$}ouble ATASCII EOL 13 > "[EOL]",$9B*2 ;Convert CR to "[EOL]" text, followed by two ATASCII EOLs 13>"(","EOL"*4,")" ;Conver$}t CR to "EOL" text repeated four times and closed inside round brackets 13 > '"EOL"' ;Convert CR to "EOL" inside quot$}ation marks (the use of '...' string definition allows you to use the quotation marks inside the string) 13,10,13,10 > 155 $} ;Convert double CR/LF to ATASCII EOL "Good bye" > "Bye" ;Replace string "Good bye" with "Bye" $FF*16 > ;Ignore$} a string of 16 characters with the code $FFThe "source" definition may also contain a special wildcard "?" instead of a st$}ring - it means "any character".Examples: "A",? > "All" ;Replace "A" followed by any character with "All" "(",?*5,$}")" > "()" ;Delete any string of 5 characters, when it's inside round bracketsAnother way of "source" definition is a range$} "number1-number2". Such a definition is valid for all codes between the two numbers (including these). Only single bytes are$} allowed in this kind of definition.Example: 0-$1F > "." ;Convert all characters with codes under $20 (non-printable char$}acters) into dotsNote: You may define exceptions from "range" or "wildcard" type definitions by putting another lines AFTER$} that definition. The "source" string must be the same (or greater) length.In general, longer "source" strings have higher p$}riority than shorter ones. When the length is the same, the later defined strings have the priority. (The "range" definitions$} are taken as a single byte definition for each matching byte.) Any strings with a wildcard at the first position are tested $}after all other ones.Examples: 0-$FF > "." ;Convert all characters into dots "A" > "?" ;But "A" into the question mar$}k! "A" > "?" ;The same as above. The wildcard at first ? > "." ;position is tested after everything else. "A" >$} "?" ;The second line have priority, so "A" 0-$FF > "." ;will be also converted to a dot! "#" > ;Delete all "#" $}characters "#1" > "#1" ;But not before "1"! "#",? > "#" ;Delete any character after "#" "#9" > "#9" ;But not the "9" !$}The "destination" definition may contain the following special commands (instead of a string): "=" - One character withou$}t of change (i.e. taken from the same position in the string, that was found in the source file) "-" - No character "I ch$}aracter" - Insert one character without of moving source string pointer "+ number" - Add the number to original character f$}rom source file "- number" - Subtract the number from original character "& number" - Bitwise AND with the original chara$}cter "! number" - Bitwise OR "@ number" - Bitwise EXCLUSIVE-OR "TAB" - The tabulator (explained later)Examples: "a"$}-"z" > -$20 ;Convert lower-case to upper-case "(",?,")" > -,= ;Convert any single character inside round brackets to$} the same character without of brackets "0"-"9">I"(",=,")" ;Put every number inside round brackets The Tabulator$}When you define "TAB" in the "destination" definition, it'll be replaced with a variable number of spaces (min. 1), to posit$}ion the next character right on the next tabulation-mark. By default, these marks are at each 8th position, and the space-cha$}racter is $20. You can change it using the following special command: SETTAB [SPC number,] number [,number]...The number$} after "SPC" (if present) is a new space-character, all the other numbers are the tabulation positions (0-254 allowed). You m$}ay use this command several times to define more positions, than what'll fit on a single line (depending on the text-editor y$}ou're using - BTC have no limit on line length), but it's senseless to define the space character more than once - only the l$}ast definition will be used. Once you define any tabulation position, the default positions (each 8th) are cancelled.Note: $}The tabulator operates on destination file (before text formatting - explained later), so the space-character should be in th$}e destination code. All the string-replacements defined by code-conversion lines are executed before the tabulation.For cor$}rect function of the tabulator, you must define which characters (or strings) are terminating text-lines (the EOLs - returnin$}g the position to zero). This is done using the "/EOL" parameter.Example: 13,10 > $9B /EOL ;Convert CR/LF to ATARI EOL, a$}nd terminate line $9B > = /EOL ;Leave the character unchanged, but terminate lineNote: The "/EOL" parameter is the sa$}me for the tabulator and text-formatting (explained later). There's no way how to set an "/EOL" for the tabulator but not for$} text-formatting. Any characters generated by a line with "/EOL" are standing outside normal text-positions, and so such a li$}ne may not contain a "TAB".The right margin, as set for text-formatting (explained later), is allways taken as a tabulation $}position. When no formatting is active, the tabulation uses lines of 255 characters (so that on longer text-lines, the positi$}on 255 is allways a tabulation position, and then all the previous positions will repeat - moved from 0 to 255). For example:$}SETTAB 128 ;The tabulation positions will be 128, 255, 383, 510, 638, 765, 893 etc...Examples:*** Definition ***"-" > $}TAB ;Uses the default settings$9B > = /EOL ;EOL terminates the tab-lines*** Source ***A-BB-CCC-DDDDEEEEE-FFFFFF-GGGG$}GGG-HIIIIIIII-JJJJJJJJJ*** Destination ***A BB CCC DDDDEEEEE FFFFFF GGGGGGG HIIIIIIII JJJJJJJJJ$}*** Definition ***SETTAB SPC"_",5,7SETTAB 9,21,30,35"-" > "\",TAB,"/"$9B > = /EOL*** Source ***A-B-C-D-E-FAtari XL/X$}E-BTC 1.0-!*** Destination ***A\___/B\_/C\_________/D\______/E\__/FAtari XL/XE\_________/BTC 1.0\_____/! Text Fo$}rmattingThe Text formatting function allows you to reduce the length of single text-lines to a defined limit. When a longer$} line is found in the text-file, BTC will insert an extra end-of-line character. Text formatting is set up with the following$} command: FORMAT mode line_length [,space_character]The "line_length" (1-255 allowed) and "space_character" (default is $}$20) are numbers, while "mode" is a single letter: "N" - No text formatting (default). No more parameters are allowed afte$}r "N" ! "C" - Character-oriented formatting. Works just like the output to screen - simply inserts an extra EOL when the li$}ne is full. "W" - Word-oriented formatting. Works like most text-editors do - replacing spaces with EOLs, and so never divi$}ding words into parts. Also removes extra spaces between words (but any spacing at the left margin isn't affected). Lines sho$}rter than the limit are not changed. When a word is longer than the line-length limit, it'll do the same as the mode "C" (div$}ide the word). "R" - Word- and right margin-oriented formatting. The same function as "W", plus adding extra spaces between$} words to keep the right margin constant on every lines.Note: The space-character for text formatting is independent of the$} space-character for the tabulator, and should be in the destination code. All the string-replacements and tabulations define$}d by code-conversion lines are executed before the text formatting. When the space-characters for tabulation and text formatt$}ing are the same, and the "W" or "R" modes are used, then the tabulation on long lines will be affected by the text formattin$}g (extra spaces deleted). If you've used the "FORMAT" command more times in the same file, only the last one is valid.For c$}orrect text-formatting, you must define the end-of-line character(s) in the same way, as for the tabulator (the "/EOL" parame$}ter).The extra EOLs generated by text-formatting function may be different (so called "soft EOLs"). By default, the soft EO$}L is the code $9B (ATARI EOL), but it may be changed with the following command: EOL > destinationIn this way, you can d$}efine any code or string to be generated as soft EOL.Note: Such characters are standing outside normal text positions, and $}so may not contain the TAB. (Also commands related to source data (=+-&!@) aren't allowed. The "-" (no character) and "I" (in$}sert character) commands are possible, but senseless in this case.)Examples:*** source *** This is an example of text fi$}le for the demonstration of BTC.A short line.A very long word: This_word_is_50_characters_long_without_any_space!**$}* definition ***FORMAT C 30$9B > = /EOL*** destination *** This is an example of text file for the demonstration of$} BTC.A short line.A very long word: This_word_is_50_characters_long_without_any_space!*** definition ***FORMAT W 30$}$9B > = /EOL*** destination *** This is an example of textfile for the demonstration ofBTC.A short line.A very long$} word:This_word_is_50_characters_long_without_any_space!*** definition ***FORMAT R 30$9B > = /EOL*** destination *** $} This is an example of textfile for the demonstration ofBTC.A short line.A very long word:This_word_is$}_50_characters_long_without_any_space!*** definition ***FORMAT W 30$9B > = /EOLEOL > "**",$9B*** destination *** Thi$}s is an example of text**file for the demonstration of**BTC.A short line.A very long word:**This_word_is_50_characters$}_lon**g_without_any_space!*** definition ***FORMAT W 35 ;This will remove single EOLs, and re-format$9B*2 > = /EOL ;%}the text. Only double EOLs (empty lines) will$9B > " " ;be accepted, and changed to single EOLs.*** source ***This is%} a fileformatted to 20chars/line.This is after emptyline.*** destination ***This is a file formatted to 20chars/line.%}This is after empty line. Adding HeadersIf you want to add a kind of header at the begin, or at the end of desti%}nation file, just define one or both of the following: START > destination END > destinationThe "destination" string w%}ill be inserted at the begin (end) of the file.Note: The "destination" string may not contain any commands related to sourc%}e data (=+-&!@). TAB is possible. THE SUPPLIED FILES ==================Inside the archive BTC.ARC you sho%}uld find all the files listed below. If you didn't get some file(s), then the archive isn't in its original version, as sent %}from the author. Almost all the supplied definition files (*.BTC) are commented, so you can view them (using a text-editor, o%}r just by copying them to "E:"), and look how these definitions are written...BTC.COM - The program-fileBTC.DOC - This tex% }tASC2ATM.BTC, ATA2ASC.BTC, ATA2PC.BTC, ATM2ASC.BTC, EED2ASC.BTC, PC2ATA.BTC - Definition files for the most common codes. I% }t's possible that you'll need to edit the files a bit before it match your personal needs. (For example, the ATA2PC definitio% }n converts from ATASCII to the PC ASCII, including a part of the graphics characters (the ones that are also on the PC), but % }double CR/LF end-of-line codes are generated to prevent PC text-editors from re-formatting the text. If you want to use this % }definition for direct printing, you may need to change the EOLs to single CR/LF, or even only CR (if you've the AUTO FEED fun%}ction set on your printer, as necessary for most XL/XE printer interfaces), to remove extra empty lines in the printout.)EP%}SUBSCR.BTC - This definition demonstrates the use of adding headers, and text re-formatting. It's designed to print common do%}cumentation files at 137 characters per line, on EPSON compatible printer (just try "BTC file P: EPSUBSCR"). The definition t%}ells BTC to switch the printer to condensed-subscript mode before sending the actual data, re-format the text (remove single %}EOLs to override the original 40 column formatting, but accept double EOLs, and then add new EOLs for 137 chars/line without %}of dividing words into parts), and at the end, reset printer to the standard mode.ATAEPSGR.BAS - This is a program in ATARI%}-BASIC. It does create the file ATAEPSGR.BTC (this file wasn't included in the archive because of its length - about 11kB). I%}t's another demonstration how to use BTC for printing. This definition converts all ATASCII characters into EPSON graphics-se%}quences, and so allows you to print all the characters in the same form as on the screen. Well, this is only a demonstration %}- for real use it's quite slow and uncomfortable, because single characters are sent as independent small pictures (instead o%}f one large picture of whole line) - but when you've no other solution for the problem "how to print it?", then it might be u%}seful...CZECH.ARC - Another small archive with specific Czech files: BTC.TCH (a czech version of this text), ASC2CAP.BTC, C%}AP2ASC.BTC, CAP2ATA.BTC, CAP2KAM.BTC, CAP2TCH.BTC, KAM2ATA.BTC, KAM2CAP.BTC, KAM2TCH.BTC, TCH2ATA.BTC, TCH2CAP.BTC, TCH2KAM.B%}TC (definitions for converting specific Czech file formats). FINAL WORDS ===========BTC is FreeWare, so y%}ou can copy it and give to your friends without of any limits, as long as the original archive isn't changed. I hope that you%}'ll find this small program useful. If you've any message for the author, write to: Jiri Bernasek Na Hrebenk%}ach 42150 00 Praha 5 Czech republic Sorry, but I've no Internet address! (There are two kinds of messages: First%} ones are worth enough for a classic letter, and the second ones aren't worth enough even for a few keystrokes :-))$u0N@  )?HI Y0`HIJH) * J j * hJJJ )HJ h i     !} YS S0 i`ϣ߳H J3xj2h"} 1 9 ӭ45(420 * (0241өX.`  R *i)Lvw  ~*P#}E 5 LN(G E  r s k rsrL ( E LO(0d( L iE0O +)$IC  H S8 $}q p h   j 8no CDLQ CFl M  LO Ri)Llk2'")*F%}$F$F$F$F$ 5 )ШF/Șl]kpqС,LQ/A! Ti)Zlk@ ܬ/i)(")")k&}$F$F$F 5$/L /lF@jj(LNkle$$%8(k()` R 8 ELO Ri)^>jf | NrC s '} ) vw5g   enfo Glvw LQ@iLm>j FL ~Jjjjii p qEh(}jlrs`LQ:$ȱ$@+[_#{ 8  Խut! ai 8   E I   ] C)} H h    ˰ 8  N   Lm E  ,  [ `LQ ,/ 8 ~/  Ơ? ѩ*}/  [ /Lj0?MoLn FjMqLp NklLOLQnLoMlNLO R"(++}ըHH`Q R!!  % !   / .   FȑF! /GF \H"+0+* ,}! F tLQnm: J~nTF1F  *n+)5! n (, n)1JJJn(n*o-} I ,0  ci a oF? @ , 8,0 ʩ0H Eh   i.}  D ]DmmFLQvtu`*&!*@h ] 0 ^0` c 0l$$%/}()()%*&J%H,@hH hH@,h $% 8i8$(%)0hhH ]h`() c 0H c 0 h0}`hhh&JJ ](ll  LQ0  /qnoHH 9 9 H H  I9  9 1} Nd EH  Q8 o n  FnoL HII/ Ih8`h`Lnon`no`u F 2}E VEhLO/luF l0BF/lɜɛ׽hE N  b VFL FREE SECTORS C3} H) *Fh ):FȽ F FC IH' 0 d  i:Fȩ/F.l`CD/08HDIC4}IHȰ/F`ȱ$>.+.i ȱ$:刄H !A \ Hȱ$*?ȝ 2. ? [_{ ,05}-:) 0$:>WI  IТ,LQH  0hLd ~ t u`C ?( 0(C.` E 6} R =! .ti S0N EE D XC )0')AY  )ע ? 0E088FG \o7}n  (HhLcL3 iJ i Lqp 0=rspnqopqlk`jZj0  j FL`H8}FhȑFȽlFi0 h FFLFpvqwgneofLF pq7  G0i 0 FJJh1FqȱFpȱFk`B!9}08`hEE D 8. =D}tui( TʩL`b!)    cȌaȌd b`aab:}H8 hdaHcd8 cH hHH  \h hc` =Hh I8ih( t  ( t(!` L\;}CJfCJfCJfCDfC` a  HII  INdh  `h  `n)8jHniPoijIjFIjFIjh` a<} I 38  8H0 I  ' H LQ8j Y  8j NdY  &I &I &IHeH.p=}Iiq  `!.莿 2Jjj }.m Ȉ!m FG` ɩLQ z >} e Hi04 \ Ȍ  8 i h !`I0 `C Y8.`DOS SYS?} I  ` ~ݩ.C/`ba.m۩mѤC9 `C L] H  ,- '0 l @}, BLVDE`D1:AUTORUN.SYS8hhJ ȱHȱIȱBȱDȱEeeHHLV)  A}1*  ,,p-  0 I &  '0   Lw)l, 0  I&LD1:MEM.SAVB}E:D1:DUP.SYSE:D1:DUP.SYSE:D1:DUP.}J)1CD2:DOS.SYS n  * \*`آ R'S )ɀ@  U))% BError loD}ading MEM.SAV or memory!  0* b*c*d*e* R Hd*JSDd*J-=e* 0c*ʈд =}MYDOS 4E}.50 -- Copyright 1988,˛Disks 1H 2H 3H 4R 5H 6H 7H 8H D: = D1: ~= =1-8.Dir of D1:-D8: *. Dir of D:A. F}Disk Directory K. Save MemoryB. Run Cartridge L. Load MemoryC. Copy File(s) M. Run at AddressD. Delete File(s) N. LG}oad MEM.SAVE. Rename File(s) O. Change Config.F. Lock File(s) P. Set DensityG. Unlock File(s) Q. Make DirectoryH. WrH}ite DOS Files R. Pick DirectoryI. Initialize Disk S. Set RAMdisk #J. Duplicate Disk V. Set Verify Flag  ?莼I}( 0  =Select Item ( for menu):@  =ɛL)1L,*L,:W@ ,,L=No such item!J}L*, -L*, BNeed new file name! BNo drive or directorL}ies allowed in new name!Lock Unlock Delete Lock which file?â-#Unlock which file?ɢ-$((H @ AQ/wDelM}ete what file?Ѣ-!((H @ ANJ =Answer 'Y' or 'N'h `B L?;(( ~=( ~= =? =Y ?Lj.H @ AhR ?N}R)L*,LM/L-Lz-File to rename, new name? @ A(9', ȱ:>0{ ПFull directory name?Z"L.DireO}ctory to be used as 'D:'? @ A(5)L.(I: ȱޝL*, BInvalid directory!L?( P}(0Li-File source, destination? '( @C۩2ڭ82ܭC B9'0 @(ߍeލd(DЍ( ? 9'Q} A rBȱޙ':>Ȍ(C0J* .B :'ȱ/.* #,ɛȝ:' ߰ A L?,(0L*, 'R}ut(:'3?&' .'Ƚ:'?&'  .ى'Q?''(#( ~= =-->' ~=S}Q =YR_o (J(  0?B݌''BK)`''utz0( >(L0L*,L?nDisk to FORMAT:T} YA B(UTލ1 =(Press for Enhanced Dns)Type to Format Drive 1: =AIYZNj[R VLU}?L*,D2:DUP.SYSDrive to write DOS files to? YAH1:*K)2J) Z wB hpJ) 2<2UV}TC٩1ة۩کL;Source, Destination (Sectors)? YA)((9'( SA)((((( @(0% =InserW}t both disks, type = A( A((/( B(( BDrives not compatible!J(j(9'Hi''X}h(ɛy BInvalid options! @-&& @)׍&&(&&&۩ک&&&&8* <4&&&& <4Y}8*8(ܭ(ݥ2C, BNot enough memory! ک&&`(Mh  & =L?&i &Z}&&&mm   =  &((&թԥԍ(Ս(((( ( ((C2(([}ՠԍ((,(0"( (( =m(m( & &("L*,  ( AL4,(, =Insert DES\}TINATION disk, press =Nͼ J) b( 0K) ?((ԭ(խ( ( (((L4Drive, new density:]} YA9'ɛ BDrive unchanged.(ު90٨Ȍ(SD  ABL)xԌҭHӭ@ @ ʎӆ@^}ӭ@@ :  $ӹ @hөԥX` Aˠ =RAM disk present? =NL#8 =xl_}on or E type RAMdisk? =Aό  L   M A, A6: ' =No extra memory available!L#8L7 & & `}& =Use default config for 0)ȩ ~= =K? =NL7 =Size(K)? ? @FjFjFjFj: =Page seqa}uence? ? @o* =RAM disk drive no? = 09) `8 -8**H***) 9 Ȋ)h9 @@ʊ b}H'h(#''/'(ɛ ? @(@: 3 ʽ' L7 =Duplicated sequence number!L7 =Wrong numbc}er of entries!L7K큅쀄 =Verify WRITEs? ; =Numberd} of File Buffers? ? @  6 Lw),R( ';L*,Drive number or : =ɛLC99L60Ȍ( =Remove e}drive? =Y =Is drive configurable? =YЂ =High capacity drive? =Yy =Is drive double sided? =Y ; =Tracksf}/side? ? @#0M P( ; =Step rate? =4/ ; ';L*, =Drive size (in sectors)? ? @H(q}B ATAEPSGRBASB ASC2ATM BTCBATA2ASC BTCBATA2PC BTCB)ATM2ASC BTCB+EED2ASC BTCB2EPSUBSCRBTCB7PC2ATA BTCB#LBTC COMBoBTC DOCF# DOS SYSF6CDUP SYSh *;L*,RAM disk drive no? 8L*,Verify WRITEs? ;L*, =WNPy`(`(  LABSAVE:filename,start,end(,init(r},run)) @TUH @Cp` 2< @؆8օڊ BInvalid START-END range!۩ @  @s} hԄՠAμȌZ wB04*  0$ڍXۍY֍T׍U,0LBLB #CL?ֆ׌`Load MEM.SAV from what}t file? 0#L*,L?Load from what file?) @TU&̩Z wB &0&-&а&𨭼INIZ'u}RV0II BNO CARTRIDGE!Ԇխ  )L?Run from what address? ?ɛ @v} BAddress must be 1-4 hex digits! BHILV n=`hh =HH` =0{a Hɛ n= n=h` nw}=L*, = = pHH =hh`K: p `(((( i ɀ((L?(`(B'(0!HH''^x}>I^>(`^>DH(`(HI`(o5 ~= =( B( >@A (J wB0x((HHIIDDEy}E B ?(CɈK(٢A ~= =( BL>(B^>((ڤ ܝHݝI VL_>L?(" B !B J) z} B(L& R XY( ?&:0H&((& ( .( & ( .(ʩ({}`ލD&ߍEBIʎH( V0`ԩ ؠ@ȱ@ȱ)@ BError -- 128&`$8f 3AԄձG/ |}$<68i/(Ԧ`H&եԦ&&eԅheԅԊe(iL*@&&&&ԅL*@B ? 3A?*(ɛ:}}./2SX(0ȱ/.ɛ(ލ9'ި0#:Ȱ :ފ :ȱ: : CAD CAޥ~}`(eޅީe߅`(` @L\A @TUȪ: BFile name not allowed!: )  i( =0+L }TUD BNot a disk file!(0` =Insert SOURCE disk, press =,(pӮ(A(O  1B AB1B} ` % 1(L/ b(de BJKO L?O` B((*((}(`ȱޙ((:>Ȍ(`D:`OS.SYS,DOS.SYShh =L*,  VLJ C C,pLiLF#Խ٩Յ׆ } LB`((:>Ȍ(`D:`OS.SYS,DOS.SYShh =L*,  VLJ C C,pLiLF#Խ٩Յ׆