@L|}6CD l0C)HCC WhL/h `CmCDiD`  R@W1  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}}}% |||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} 3E:}DISK OPERATING SYSTEM II VERSION 2.0SCOPYRIGHT 1980 ATARIA. DISK DIRECTORY I. FORMAT DISKB. RUN CARTRIDGE J. D,}UPLICATE DISKC. COPY FILE K. BINARY SAVED. DELETE FILE(S) L. BINARY LOADE. RENAME FILE M. RUN AT ADDRESSF. LOCK F-}ILE N. CREATE MEM.SAVG. UNLOCK FILE O. DUPLICATE FILEH. WRITE DOS FILES9!&x#!7&p))'&X*./)L''-؆莟.}R'S  vW DEHHI 1A#! @ ~0ɛ8A0.) ȅ 1 1i/}il ! 1L NO SUCH ITEMSELECT ITEM OR FOR MENU! 0 .{z:*{}.|~ 1 0 00}JB 18L^%|DLl%DIRECTORY--SEARCH SPEC,LIST FILE? # 0 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 ALLOWED COPYING---DN:4}# 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}//3Hu ξL/L DRIVE TO WRITE DOS FILES TO?WRITING NEW DOS FILESTYPE "Y" TO WRITE DOS TO DRIVE 1.?}D1: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?DUA}P DISK-SOURCE,DEST DRIVES?TYPE "Y" IF OK TO USE PROGRAM AREACAUTION: A "Y" INVALIDATES MEM.SAV. h  ,B}  `)  <0 2 2 0  ,   ,,ޢ* 1L ,K* 1 ~0 0C}FINSERT BOTH DISKS, TYPE RETURNERROR - DRIVES INCOMPATIBLE., 1 ~038  , 1L D}, &*  Lz+, 0 , 1 ~0 + Y,0!,0 ,L+ ,mm  v,"ǭE}0Ξ, 05,Lt+L +,Hh` NOT ENOUGH ROOMINSERT SOURCE DISK,TYPE RETURNF}INSERT DESTINATION DISK,TYPE RETURN`    `L,8,0( rG}L1(`ߢ) 1* 1 ~0Y`hhL S SL1) 8`NAME OF FILE TO MOVE?- 0 0|DLtH}% A., 1 <0 0 .@L# .BJ 1  DEHIB V L1 ,5 1 <0,L. I} JB|,A#Pd#DE 1 HI BDEHHII 1 B 1 , 1 <0,0Lf- B VJ},A#P, 1 <0 0L#L ߢ) 1* 1 ~0Yj383}mm ݭK}}`8}``|* ? ɛ,`|:(|/ 1L `DESTINATION CANT L}BE DOS.SYS0 0H{ $22Δ $28/L /) $2 Π $2 0 ξM}hAΞB,0 J 1 BޝDEHI,HDE 1HIHIDELSAVE-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- 10˛ɛ+,' 20*.. өw2 1``2TOO MANY DIGITSINVALIDS} HEXADECIMAL PARAMETER800 0 8 00`,0'D800H,ɛh`2L1NEED D1 THRU D4uT} HEXADECIMAL PARAMETER800 0 8 00`,0'D800H,ɛh`2L1NEED D1 THRU D4uEiͩkΩ͙kCop j`j {j`Hi͝Νh`V}L"UNEM:D"NURͩkΩ͙kCop j`j {j`Hi͝Νh`@STm { AXLPB0NZ  X} +AdAUuA@'A @9A@K@@]@@7c( Y}}uAR@++(#++(#| ANTIC MONTHLY DISK MAR. 1986 |++(# Z}( | Side 'B' |++(# @ -@A [} $ GG;@@,;@ ,;@@,;A,;@,;@@, "D1:MENU" &&@@ \}D:*.* 6,6." 6 @0i6-%@(6.7@<@,A67@ <@ ,.. ]}i67@<@,.7@<@,3 6.|67B:,%@,.367B:,%@,.G67@<@,.(--@ ^}B:,:7<,4 G67<,..] 6.=:, @D67@<@,.7@<@,]67@<@, _}.0$@(''7@<@,4FREE@- @ 2() <@F''7@< `}@,4FREE@K @ P(7@<@,)|U @0W'!-@6+'@,%@' |Z++( a}#| |[ ( |  |\++(#d**(" Sel b}ect HELP.BAS for information.xAR[@@9'-@@#C( FILE NUMBERM A0 c}Q[ BP:,A00"@&6.7@<@,0 AELB6.7+&@,$@%@<+& d}@,$@%@,L B37@<@,4 36.7@<@,!7@<@,4DOS!.0 6 e}.-@B:,07<,4 AH67B:,%@,.7<,   6.! 6.D1:!67B:,%@,.?A f}R@'-@@"?  LOADING ? A@@91@@5%? B[-@ g}@"-  CANNOT RUN 7 @LF:A,"@![% D:HELP.BAS B A0D:MENUATAR h}TOON.SYSMENU.DOC.TXT .TXTC |ATARTOON.SYS(TA0063   <  "EXLINEAFxxy &&;A ,;@,;@,W (} ( (1) HELP file#(@(j}(2) How to 'port' filesW( to an ST disk (( SELECTION(+41)42,@ ,6. D:DOC.TXTk}42,6. D:PORT.TXT1 (}@1@@ A(@2vB:,!@-l}7@<@,4XXX0(3(E-@@"Y(ӠΠf@l(}v @@<( @@dj@|} WELCOME TO THE ANTIC MONTHLY DISKALL of the pron}grams on this side ofthe disk are for the ATARI 520 ST.We recommend you refer to thecorresponding issue of ANTIC forcompo}rehensive documentation. If youwish to order a back issue, or needsubscription information, contact usat (415) 957-0886 orp}, for credit cardorders, dial (800) 227-1617, Ex. 133.In California,(800) 722-3545, Ex. 133XXXThe menu that appeared on q}the screenwhen you booted the disk will onlyRUN programs with a .BAS extender.If you try to run a program and theresponser} is 'cannot run Filename',then check the file extender withthe following list:XXX.SYS Reserved for DOS system files.s}.DAT Data file. Usually accessed by another program..TXT Text file. Usually accessed by another program.t}XXX*** Files for the 520 ST ***.C C Language source code. Must be ported to a 520 ST and then compiledu}. See the corresponding article for complete instructions..S 68000 Assembly Language source code.v} Must be ported to an ST disk. See the corresponding article (and the rest of this file) for complw}ete details.XXX.O A Link file (object code) for the 520 ST. Must be ported to an ST disk. See thx}e corresponding article (and the rest of this file) for complete details..PRG A compiled ST program. y}Must be ported to an ST disk. See the corresponding article (and the rest of this file) for complete detz}ails..LOG Logo Language file. Must be ported to an ST disk. See the corresponding article for comp{}lete details.XXX HIPPO XBIOS HELP FILE:There are two files on this di|}skrelated to the Hippo-C XBIOS articlein our March 1986 issue:HIPOX1.O - The link file, object code.It covers most -- bu}}t not all --routines available to the ST.HIPOX2.C - C source code for a demoprogram that will test several of theXBIOS r~}outines. Use it as an exampleof how to make the calls.XXXCAVEAT We hope these routines will assistthe Hippo-C owne}rs. Unfortunately,because of the many differencesbetween Hippo-C and Alcyon C -- butmostly because of improper parameter}passing -- you still won't be able totype in and run many of ANTIC's Clistings with Hippo-C.XXX Whenever possible, we} will try toadapt our programs to work with asmany configurations of C as we can.But we think ANTIC's published Clistings} should come as close aspossible to the industry standard. Atthis time, only Alcyon C will do this.XXXTHE HIPPO XBIOS} The following are the XBIOS callswe have been able to build for HabaHippo-C. The most important XBIOS calls havebe}en included, but not all of thecalls are here. Calls which seem tobe duplicated by standard BIOS calls,such as Floprd(), }Flopwr(), Flopfmt(),Flopver(), Protobt(), Mfpint(),Gettime(), Settime(), and Supexec()are not here.XXX We have not b}een able to get someof the calls, such as Rsconf(),Jdisint(), Jenabint(), and Cursconf()to work properly. Although it may} bethe Hippo Operating system getting inthe way of proper operation, we justdon't know. Drop us a line if you canhelp.} The XBIOS calls included here havebeen tested using the supplied Clanguage program called HIPOX2.CXXXXBIOS #2 "Physb}ase" Returns the address of theupper-left corner of the 32K screen weare looking at.C Binding:long address;address }= Physbase();XXXXBIOS #3 "Logbase" Returns the address of theupper-left corner of the 32K screen weare drawing to.}C Binding:long address;address = Logbase();XXXXBIOS #4 "Getrez" Returns the current screenresolution. (0, 1, 2).}C Binding:int resolution;resolution = Getrez();XXXXBIOS #5 "Setscreen" Sets the Physbase, Logbase, andresolution }of the screen. If anyparameter passed negative, that valueis not updated.C Binding:long physbase, logbase;int rez;S}etscreen(physbase,logbase,rez);XXXXBIOS #6 "Setpallete" Sets the hardware palette registersto a pointer to RGB color} values madeup of sixteen words.C Binding:long paladdress;Setpallete(paladdress);XXXXBIOS #7 "Setcolor" Sets a}n individual color in thepalette and returns the previouscolor.C Binding:int pal_col, color_val;old_color = Setcolor(p}al_col,color_val);XXXXBIOS #12 "Midiws" Writes string of characters(-1) toMidi Port (see ANTIC, March 1986).C Bin}ding:long string_point;int count;Midiws(string_point, count-1);XXXXBIOS #14 "Iorec" Returns where the seria}l devices'records are located.C Binding:long address;int device;address = Iorec(device);Where: device is0=RS}2321=Keyboard2=Midi PortXXXThe address returned points to arecord in the form of:(long) ibuf; buff pointer(int) m}`)L$BN`FCLEAR68K V02.00, Copyright(c) 1984, Digital Research XXXX-0000-654321 o#,"h}#,E?/ NN o AdpNu#,BNuNV0/"/ NB,d0< A)L"NB?<NAN^Nu o2/0/ H}SoQBNu o0/JfBNuf SNuNVBy)By-By-By-`00y-"|)v0H`Z3-~`h3-~`^By-~`V3}-~`L3-~`B3-~`83-~`..)N|3)`|a|b@0@) PNRy-0y-)v #f Ry-~Ry-0y-"|})v0H y-~"|-4y-Ry- |-2y-2y-)vRy- |-2y-"|)v4y-Ry-Ry-Ry- }|)v2y- xfRy-0y--BJy)fZ.)p?<?< N X)pBy-`0y-"|-0H>/<)N|X} |-2y-)q@)r.)p?<?< N XBy-`By-`Ry- y-oRy-0y-"|-0Hy-lB9)r.)}p?<?< N XBy-`By-`Ry- y-oRy-0y-"|-0Hy-lRy- |-2y-Jf)p@)r.})p?<?< N XN^NuNVHNBW/<)eN X>/<)eN X>/<)eN X n2n B*n`&HHм, @}g H| `HRJf> /.NXJL N^NuNV. /./<*>N PN^NuNV./. /.N PN^NuNVH }BWNH#-#-By,.)[a*n`N`RJgHHм, @fJg2 "g 'fFH>/ RNX(@ f.)/ a}VX H> M2GBRG.Ra`BG`RG M2GJg5pHHм, @gJ5pg M2GBRGH`BWN BW/ RN ,XJ@g.}R/<)aX`l>N ->f@>/ TN ,X|f>B?<N ^\|f.R/<)a|X`$BW/ RN X|g.R/}<*aVX`>?/ NXJf>*/ NXJg-|4.8?<NT>/ ?<N\<f.*/ aX`^}.H?/.aZ\.N>RWNB(@./ NX.a>/ ?<N\<f`.a`|g}`JfBaSy,.-N|f.*+/<*a*XB/9-?9,N\>N NJL0N^NuNV|./NX.} /NVX.*,/NVX.?< NT>N NN^NuNVH*n y- X-Ry,JL N^NuNVH*}n. (nGVfJL8N^NuNVHN0>|fp`>N08*@.HJnfU.)e/.NXJ@f U0`R`.})j/.NXJ@fU0`2>/.?N\J@g3#,3,,p`U0JL N^NuNVBW?. /.a:\N^NuNVBW?. /.a}"\N^NuNV>?. /.a\N^NuNVN f>NN^NuNVHBG`0м*0.N RG|mJLN^NuNVH*n0-}|g*.N -g .N$B@H+@+@Bm m>N JL N^NuNVH>.>N&*@ f3 ,3,,p`NBF0}|f>?<>N tT<l|>N>NzJFf0``3,3,,pJL N^NuNVN^NuNVH*n0-| |f, -}<o >/-?N\>Gg mp`J-gJg-g;| `;| `>0- D@H/?N ^\Bm +mB@JL N^NuNVH}N0>|fp`>N08*@.HJn fUJnfU.)e/.NXJ@fU;n 0``.)j/.NXJ@}fU0`d>/.?N\J@g>Nz3,3,,p`0U>B-H?N ^\BWB-H?N ^\0JL N^NuNVB}W?. /.a\N^NuNVBW?. /.a\N^NuNV>?. /.a\N^NuNVH>N&*@ f3 ,3,,p`$>?-/.} ?<BN tP+@U -JL N^NuNV>B?.a\N^NuNVH*nBnJ gh``BE-n `RRE nJg n %fJEo.}?/. N\-n n n %@R DfBn n H|-@R Df n R Rn| <0fG n R =|<*}f-M n=PT n R `8`*JnlBnH2. A|=@ n R <0m<9o|<.f BF n R <*f-M n<T n} R `*`H2 A<| n R <0m<9oBn<lg<LfRn n R A-HH` RnJng <$` <#}-.-?<?< // N Jngp`pH`RnJng <$` <#-.-Bg?< // N Jn}gp`pH`zRnJng <$` <#-.-Bg?<// N Jngp`pH`&RnJng <$` <}#-.-Bg?<// N Jngp`pH`-M n-PX`-M n0|@B.T`H>?// N} X|`~H>?// N\ X|`XH>?// N X|`4.H?NTRn``|C|}5b@0@+ PN.N:ElJFm:0.E=@JnfX .0f* n -f SE. nH?NTRRn`..H?N}TRn0.SnJ@n.?/.N\n`..H?NTRn0.SnJ@n`0.JL N^NuNVJnlp`0.=@ n }-@>/. /.N!PN^NuNVJnlp`0.=@ n -@>/. /.N#PN^NuNV>/. /.a~P-@. N2.^}AAo>/. /.aP-@ .N^NuNVH *n>. (n,g$Bl >/ ?N\Gg lp`*B@`&`.H?NT|fp` }0SGJ@fB@JL0N^NuNVH. *n Sm mH"m|R``.H?NTJL N^NuNVH. *n BF:-fp`$J}fV-fN>N+@+@fm`2m>NJ@gm@`;| H"mR`-gA+H +@ mR-}gz>/-?N\<Bm `n-g>< g -мb" -:>/-?N\<+mBm `( -:>/-?N}\<;| +mFg mp`H|JL N^NuNVH>N&*@ fB@`-fB@`pJL N^NuNVH>N&*@ f}B@`0|JL N^NuNV>aJ@g <)e`BN^NuNVH>.^GORG>a*@ fB` >/ aXJL N^NuNVH (y+*T`ZB@0-B}A2-@F@J@g>NB`:B@0-ne `*+f>a*@ f>NB`(M*U`JL0N^NuNVH n*PB@0. X@me n} `F(MB@0. HH@B@H@B@0-n 9@B@0,F@9@( n ;n B@0-F@;@#+ PJL0N^NuNVH >.|?GG0@>N}H*@fB`* R*@(M9GB@0,F@9@.Pa 9+JL0N^NuNVH *nQB@0-BA2-@F@J@g>Np`(y}+eeecd(T`e2 BA2-IHABAHAЁ" BB4,JHBBBHB҂b #+B@`n BA2-IHABAHAЁf T0(mB@0-F@;@ }T*`* BA2,IHABAHAЁfB@0-lB@0,F@9@(`(#+B@JL0N^NuNVH *n.a>. ^GORG>a-@fB`J n(P}Pg2d`Sn Jn f`B0. B0. `%Sn Jn f>/.aXJL0N^NuNVN^NuNVN^NuNVH /?.?./} /. nN*@ мfB(n `%H|0|9o^G мfB JL0N^NuNVH-|,*n<.H n. nfz}` |SEJgJEf`h nf$z ` |SEJgJEfJEf-`*n<.JngJGlB@0D@> n P-"n R`B0H@B0>JGf JL N^Nu}NVH >.HμgR*y,(G,.N|f3 ,3,,p`>Bg/ N\ JL0N^NuNVH>N&*}@ fp`XJnfB@`N-g3 ,3,,p`0-g>/. / NP``>/. / NPJL N^NuNVH|BG` }+f +0`RG|m3,3,,pJLN^NuNVp2.`F@H+B@N^NuNVHBG`>aRG|mJLN^NuNVH} 0.8*@.H0.@BUB-+| BB> Bg/ N\> ?< / N\JL0N^NuNVH>.|e3 },3,,B`0B@08*@.H-f3 ,3,,B` JL N^NuNVH *n(n >.B@=@=@``Rnnc L}2n  fB@0.ncf>?.B@0.W 68K V02.00, Copyright(c) 1984, Digital Research XXXX-0000-654321 o#,"h+B2.Ё//-/ N 8=@B0.ѭJnf3,3,,p`^=n`8Rn>?</<+/-/ N 8}=@B0.ѭnb4 -o+mB@0.JL0N^NuNVH*n>?./. /-/ N 8=@Jnf3,3},,p` B0.ѭ -o+mB@0.JL N^NuNVH*n 0.8м.H-@~.a&M`RJg :fJgc .Am .}On*K`K0.`BW/ ?<o n1GBG`BW/ ?<NN t\JgB@`0<>`d>ON tJgB@`0<>`J.?<=N t}T>o n1GBG`,.?<AN tT>``||b@0@+ PN0JL8N^NuNV n am n zn n nHRJfN^N}uNVH *n (n`RJff .JL0N^NuNVH *n (nf .JL0N^NuNVH *n(M`RJf HJL0N^NuNVN^NuNV}H *n(n `$H>a0H>a&op`lp` JfJfB@JL0N^NuNVH>.|am |zn|0JLN^Nu _B0Z"}y,CCbNC NNVH..,. Jf#, <`Hc #,B`:fzB`(xe 〼b`BJg}e`#, JLN^NuJg .NuNV n=h.0n/0n/N P/?.?<?N tPN^NuNV n=h.}0n/0n/N P/?.?<@N tPN^Nu#- NA/9- NuNVBBJlDRBJ lD RB0. -@0.2. An=@} .gDN^Nu#-NN/9-Nu#-NM/9-Nu#-NA/9-NuNVH-n Jnnp` nop`0.R@8BGB/.N%:P}l n -R /.N&X-@B/.N%:Po.`/<D/.N&P-@SG/<A/.N%:Pm`/<D/.N%XP-@RG/<D}/.N%:PlG|0H/N%xX-@`/<D/.N%XP-@RFDm/<B/.N%XP//.N%P-@/<D/.N%:Pm -|}ARGJGl4 n 0R n .R JDlD|` n 0R SFGnBF`j/.N&X:0|0"n R Gf n .R 0H/N%x}X-@//.N&P-@/<D/.N&P-@RFDm n BR .JLN^NuNVH-n Jnnp` nop`0.R@8BGB/}.N%:Pl n -R /.N&X-@B/.N%:Po.`/<D/.N&P-@SG/<A/.N%:Pm`/<D/.N%XP-@}RG/<D/.N%:Pl|0H/N%xX-@`/<D/.N%XP-@RFDm/<B/.N%XP//.N%P-@/<D/.N%}:Pm -|ARGBF`j/.N&X:0|0"n R JFf n .R 0H/N%xX-@//.N&P-@/<D/.N&P-@RF}Dm n ER JGl0D@> n -R 0H |0"n R 0H H@|0"n R n BR .JLN^NuNVH..,. N}' LN^NuNVH..,. N'LN^NuNVH..,. N( LN^NuNVHJl| .D-@`BFJfB`^~` .}-@R .f` .-@S. g .-@޼@ JFg .JLN^NuNVH .м<J}gJFlB`V .:|oJEg <` <`0..μ|`RFJFm`SFJFnJEg D. JLN^NuNVH..,. N}( LN^NuNVH..N& LN^NuNVH..,. N& LN^Nu<NuJg NugR kjklf`>k^g>k^g2k8}<d,&B<ރeNuRid~S<Nu.NuJNu:ڼ.gNugRghEDv}i^E]HE:BB8HD&HC؃HF&؃BDHDHGHFHEބj ޼gNuSiex@ބއdRgNu~NujJ<Numc68343 flo}ating point firmware (c) copyright 1981 by motorola inc.Stack Overflow$C runtimeCON:LST:}~gdc#dd#0d00}f#gx:DNV`jtIncorrect note name. %d : unmatched quoteCannot open Cannot append Cannot crea}te : No matchStack Overflow $  } }n8\\\\\\\\\\\\\l\\\\\\\}\\\r8\\\\\\\\\\\\\p++ }p!!!!"}CP/M-68K(tm), Version 1.2, Copyright (c) 1983, Digital Research XXXX-0000-654321__exit}__break,__start___cpmrv,__base,__sovf_brk___BDOS_blkfill_index}_strchr___pname)[___tname)e___lname)j___xeof)o_midistr)p_musicst)v_end)_merr}or)_main__main_printf|_fprintf___main__creatN_creat _creata _cre}atb 4_exit N__cleanu f_fclose _close __iob*0___fdecl x_fflush __open _op}en _opena ,_openb D_lseek ^_tell __doprt __pftoa\__petoa__pgtoa_f}putn_fputc__flsbuf_isatty_isdevN_ttynamez__afreeb+__aflist+_malloc_}free$_realloc"_malloc___errmal___prtin___prtld$___prtsh_sbrkH_write}__chvec+__allocc0__freecz__chinit___chini__chkc&__wrtasc__wrtbin___open}_ucase"_errno,__errcpm,_strcatV_strcpy_strlen___atab,____atab__strcmp}__sallocB_uldivr,_uldivp_sw___pc_rea__pc_wri 8_trap tlmul _gemdos} _bios _xbios _ftoa!_etoa#fpadd%_fpadd%fpcmp%:_fpcmp%:fpdiv}%X_fpdiv%X_fpltof%x_fpftol&fpmul&_fpmul&fpmult&_fpmult&fpneg&_fpneg}&fpsub&_fpsub&ffpabs&ffpneg&ffpadd'ffpsub&ffpcmp'ffptst'ffpdiv}(ffpmul2(ffpcpyrt@)_h-_i-_j-_notelen-_note-~_restlen-_notest}r-__fds.HR N              } ,"  ,D( 0 <    >  h 0HN&  j^***`&$} D"V8*R$ZF \@(B4.J".86 Jp $""@2&"fHR"D(<@* \<T0^}0 : \ }=@B0.ѭJnf3,3,,p`^=n`8Rn>?</<+/-/ N 8 ;----- Midiws() XBIOS call for midi.c ------------------------------------- ; Written by Patrick Bass ; Version 111885 ; (c)} 1985 Antic Publishing ; .text .global _Midiws ;----------------------------------------------------------------------}---- _Midiws: link a6,#-8 move.l 12(a6),(sp) ;pointer to string move.w 10(a6),-(sp) ;count-1 move.w #12,-(sp) };opcode number trap #14 unlk a6 rts .even  }ws() XBIOS call for midi.c ------------------------------------- ; Written by Patrick Bass ; Version 111885 ; (c) /* * A Monophonic MIDI driver for ALCYON -or- HIPPO-C. * (c) 1985 Antic Publishing * Version 111885 * Written by Tom! } Jeffries * Re-edited and XBIOS calls by Patrick Bass *//*--- Include this file for DIGITAL C only! --------------------! }-----*/#include "osbind.h"/*--- MIDI constants ------------------------------------------------*/#define MODE2 0xb0,0x! }7d,0x00,0x7e,0x00 /* omni on; mono */#define NOTEON 0x90#define NOTEOFF 0x80#define CHANNEL1 0x00#define FULLVELO!}CITY 64#define NOVELOCITY 0"define NUMBER_NOTES 100#define TEMPO 500#define TRUE 1#define FALSE 0/*----- Glob!}als -------------------------------------------------------*/char midistring[]={ MODE2 };char notestring[ NUMBER_NOT!}ES ], restlength[ NUMBER_NOTES ], notelength[ NUMBER_NOTES ], musicstring[]={'g',5,24,24, !} 'd',5,16,0, 'c','#',5,16,0, 'd',5,16,0, 'd',!}'#',5,48,0, 'd',5,48,48, 'f','#',5,24,24, 'g',5,24,24, !} 'x' };int end=0, merror=0, h, i, j, note;/*----- Include this External reference for HIPPO-C on!}ly! -------------extern Midiws();*//*----- Program Body --------------------------------------------------*/main(){ !} merror=FALSE; for(i=0, j=0, h=0; (musicstring[ j ] != 'x'); i++, j++, h++){ switch( musicstri!}ng[ j ] ){ case 'a': note= (-3); break; cas!}e 'b': note= (-1); break; case 'c': !}note= 0; break; case 'd': note= 2; break; c!}ase 'e': note= 4; break; case 'f': n!}ote= 5; break; case 'g': note= 7; break; de!}fault: printf( "Incorrect note name.\n" ); merror= TRUE; !} } if ( musicstring[ ++j ]=='#'){ note++; j++; !} } notestring[ i ]=(( musicstring[ j++ ]*12 )+note ); notelength[ h ]=musicstri!}ng[ j++ ]; restlength[ h ]=musicstring[ j ]; } /*mark end of song*/ notestring[ ++i!} ]=0; if( !merror ){ Midiws( 4, midistring ); midistring[ 0 ]=CHANNEL1+NOTEON; ! } for( i=0; notestring[ i ] !=0; i++ ){ printf( "%d\n", notestring[ i ] ); !!} midistring[ 1 ]= notestring[ i ]; midistring[ 2 ]= FULLVELOCITY; M!"}idiws( 2, midistring ); for( j=0; j<=notelength[ i ]; j++ ){ for( h!#}=0; h<=TEMPO; h++ ); } midistring[ 2 ]=NOVELOCITY; !$}Midiws( 2, midistring ); for( j=0; j<=restlength[ i ]; j++ ){ for( !%}h=0; h<=TEMPO; h++ ); } } midistring[ 0 ]=NOTEOFF; mi!&}distring[ 2 ]=FULLVELOCITY; Midiws( 2, midistring ); }} Written by Tom n /* * HIPPOSOUND v 112185 * A Demo Sound Driver for Haba HIPPO-C * C and XBIOS source written by Patrick Bass * (c) 1985 %(}Antic Publishing * * This program demonstrates the usage of the * "Giaccess()" and "Random()" XBIOS bindings for Haba HIPP%)}O-C. * */ /*----- Global Variables/Constants Declarations -----------------------*/ char copyright[]="(c)1985 Antic Publi%*}shing"; int contrl[12], intin[256], intout[256], ptsin[256], ptsout[256], workin[20], workout[100], handle, i, j, %+} port_state, x_note, y_note, write_command=128, read_command=0, volume=9, chana_lo=0, chana_hi=1, chan_enable=7, %,}chana_vol=8; /*----- External Communications ----------------------------------------*/ extern Giaccess(), Random(); /*-%-}---- Program Body ---------------------------------------------------*/ main() { appl_init(); handle=graf_handle( &i, &i, &%.}i, &i ); for( i=0; i<10; workin[ i++ ]=1 ); workin[ 10 ]=2; v_opnvwk( workin, &handle, workout ); Giaccess( volume, cha%/}na_vol+write_command ); port_state=Giaccess( i, chan_enable+read_command ); Giaccess( 60, chan_enable+write_command ); fo%0}r( i=0; i<100; i++ ){ x_note=Random()&0x00ff; y_note=Random()&0x000f; Giaccess( x_note, chana_lo+write_command ); G%1}iaccess( y_note, chana_hi+write_command ); for( j=0; j<5000; j++ ); } Giaccess( 0, chana_vol+write_command ); Giaccess%2}( port_state, chan_enable+write_command ); v_clsvwk( handle ); appl_exit(); } %3} Sound Driver for Haba HIPPO-C * C and XBIOS source written by Patrick Bass * (c) 1985 $$ ; File: HXBIOS.S ; Atari 520ST XBIOS bindings for Haba HIPPO-C Sound demo. ; (c) 1985 Antic Publishing ; Written by Patr)5}ick Bass ; .text ;---- Global Communications Section ------------------------------------- .global _Random .global _Giac)6}cess ;---- XBIOS 17: Return Random Number ------------------------------------ ; This call will return a random 24-bit numb)7}er in register d0. ; C binding: return_value=Random(); _Random: link a6,#-2 move.w #17,(sp) trap #14 unlk a6 rts)8} ;---- XBIOS 28: Access GI sound chip ------------------------------------ ; This call will pass and recieve values to the )9}AY-3-8910 sound chip. ; C binding: return_value=Giaccess( data, register ); ; Add 128 decimal to register number to WRITE da):}ta into register. ; Add 000 decimal to register number to READ register into return_value. _Giaccess: link a6,#-12 move.);}w 14(a6),(sp) move.w 10(a6),-(sp) move.w #28,-(sp) trap #14 unlk a6 rts )<}ari 520ST XBIOS bindings for Haba HIPPO-C Sound demo. ; (c) 1985 Antic Publishing ; Written by Patr(NV>NNN^NuNV>NNN^NuNV>NNN^NuNV>/. /.?<NNN^NuNV.?<NNN^NuNV>->}?. ?<NNN^NuNV. ?. ?< NNN^NuNV> ?<NNN^NuNV>NNN^NuNV>?. ?<NNN^NuNV>NNN^NuNV. ?. ?<NNN^-?}NuNV>?. ?<NNN^NuN_Setpallete_Setscreen n_Ikbdws_Getrez _Giaccessn_Setcolor ._Cursconf.-@}_Iorec_Midiws_Physbase_Logbase _Bioskeys N_Random-A}NV>NNN^NuNV>NNN^NuNV>NNN^NuNV>/. /.?<NNN^NuNV.?<NNN^NuNV>, /* * XBIOS Driver in HIPPO-C * (c) 1985 Antic Publishing * Written by Patrick Bass * ver. 112185 * */ int pal1[]={ 01C}x703, 0x061, 0x052, 0x003, 0x004, 0x005, 0x006, 0x007, 0x017, 0x027, 0x037, 0x047, 0x057, 0x067, 0x077, 0x777, } port1D}_state, key, reg, handle, color, max_color, i, j, k, l, pal, file_buffer[4000], sdata, device, sector, track, side, count, 1E} speed, flowctl, ucr, rsr, tsr, scr; long number, screen_loc, screen1; char data, pic, pic_buff[32768]; /*---------------1F}------------------------------------------------------*/ main() { screen1=(0xffff00 & pic_buff)+0x0100; do{ /*----- Where1G} are we looking? ---------------------------------*/ screen_loc=Physbase(); printf("\nThe Physical Screen base is at %d\n1H}",screen_loc ); /*----- Where are we drawing? ----------------------------------*/ screen_loc=Logbase(); printf("\nThe1I} Logical Screen Base is at %d\n",screen_loc ); /*----- Determine current resolution ---------------------------*/ i=Getr1J}ez(); printf("\nThe screen resolution is "); switch( i ){ case 0: printf( "LOW 320x200x16.\n"); break; case 1: pr1K}intf( "MEDIUM 640x200x4.\n"); break; case 2: printf( "HIGH 640x400x2.\n"); } /*----- Point to and draw another scree1L}n. ----------------------*/ printf( "\nPress [RETURN] to test setscreen()!\n "); evnt_keybd(); Setscreen( screen1, scre1M}en1, -1 ); for( reg=0; reg<32767; pic_buff[ reg++ ]=Random()&0x00ff ); Setscreen( screen_loc, screen_loc, -1 ); /*----1N}- Change the pallette ------------------------------------*/ printf( "\nPress [RETURN] to change palette.\n" ); evnt_keyb1O}d(); for( i=0; i<16; pal1[ i++ ]=(Random()&0xFFF) ); Setpallete( pal1 ); /*----- Set an individual color -------------1P}-------------------*/ printf("\nPress [RETURN] to set individual colors.\n"); evnt_keybd(); for( reg=0; reg<16; reg++ )1Q}{ printf(" Pallete color: %d\n",reg ); for( i=0; i<0x2000; i++ ){ Setcolor( reg, i ); } } Setcolor( 0, 0x7771R} ); Setcolor( 2, 0x070 ); Setcolor( 3, 0x000 ); Setcolor( 15, 0x000 ); printf("\n"); /*----- Find out where the I/1S}O buffers are ---------------------*/ for( reg=0; reg<3; reg++ ){ number=Iorec( reg ); printf("Device number %d lives1T} at $%d.\n",reg,number ); } /*----- Pick up 5 random numbers -------------------------------*/ printf( "\nHere come 5 1U}random numbers.\n" ); for( i=1; i<6; i++ ){ number=Random(); printf("Random number %d is %d\n",i,number ); } prin1V}tf("\n"); /*----- Configure cursor ---------------------------------------*/ printf("\nThe cursor blinks faster!"); Cu1W}rsconf( 4, 4 ); /*----- Test sound chip ----------------------------------------*/ printf("\nPress a key to make some so1X}und!\n"); evnt_keybd(); Giaccess( 15, 8+128 ); port_state=Giaccess( i, 7 ); Giaccess( 60, 7+128 ); for( reg=0; re1Y}g<5; reg++ ){ for( i=0; i<16; i++ ){ for( j=0; j<256; j=j+3 ){ Giaccess( j, 0+128 ); Giaccess( i, 1+128 ); 1Z} } } } Giaccess( port_state, 7+128 ); Giaccess( 0, 8+128 ); printf("\nHaba XBIOS tests O.K.! Press [RETURN] t1[}o exit."); key=(evnt_keybd()&0x000f); }while( key != 13 ); } atrick Bass * ver. 112185 * */ int pal1[]={ 00K`3n>*o - ЭЭм// ??<JNA NB/<NA"/0<NBNuN9d} aF3=V=hpN^NuNV>a*pN^NuNV3=63 =8# =j> aN^NuNV3=63 =8# =j> aN^NuNV#9e}=j> aN^NuNV#=j3 =63=8>aN^NuNV#=j3 =6>axN^NuNV>ahN^NuNV3=63 9f}=83 =:>a@ n0=X n0=Z n0=\ n0=^B@09=VN^NuNV3=63 =83 =:3=<3=>>a n9g}0=X n0=Z n0=\ n0=^B@09=VN^NuNV#=j>aN^NuNV3=63 =8>apN^NuNV3=63 =89q}8b'DOS SYSb*+DUP SYSbUAUTORUN SYSbWMENU biHELP BASb2mDOC TXTbpMIDI PRGbSMIDI S b MIDI C b 'HSOUND C b 4SHSOUND S b=HIPOX1 O bBHIPOX2 C b[MODERNE LOGb\HSOUND PRGb}PORT TXT3 =:3=<3=>3=@3=B3=D3=F3=H3=J3=L3 =N3"=P#$=j3(=R3*=T>a9r} n,0=X n00=Z n40=\ n80=^ n<0=` n@0=bB@09=VN^NuNV3=63 =8>atN^NuNV#=j3 9s}=6>aTN^NuNV#=j3 =63=8>a,N^NuNV#=j3 =63=8> aN^NuNV#=j3 =63=8>9t}!aN^NuNV#=j3 =6#=n>"aN^NuNV3=6# =j>#aN^NuNV#=j3 =63=8>(alN^NuNV9u}#=j3 =6>)aLN^NuNV#=j3 =63=83=:3=<3=>3=@>*aN^NuNV#=j3 =639v}=83=:3=<>+aN^NuNV#=j3 =63=8>-aN^NuNV#=j3 =6>,a n0=X n0=ZB@099w}=VN^NuNV#=j3 =63=8 n3=:3=<>.a. n0=XB@09=VN^NuNV#=j3 =63=83=:3=9x}<3=>3=@3=B3=D>/aN^NuNV#=j3 =6>2aN^NuNV3=63 =83 =:3=<3=>39y}=@3=B3=D3=F>3aLN^NuNV3=6# =j>4a,N^NuNV3=6>5aN^NuNV#=j>6a n 0=9z}X n0=Z n0=\ n0=^B@09=VN^NuNV3=63 =83 =:3=<>Fa n0=X n0=ZB@09=VN^NuNV39{}=63 =83 =:3=<3=>3=@3=B3=D>Ga0 n0=X n0=ZB@09=VN^NuNV3=63 =839|} =:3=<3=>3=@>HaN^NuNV3=63 =83 =:3=<3=>3=@3=B3=D>IaN^NuNV9}}3=63 =83 =:3=<3=>3=@3=B3=D>Ja4N^NuNV#=j3 =83=:3=<>KaN^NuN9~}V#=j3 =63=83=:>LaN^NuNV>Ma n0=X n 0=Z n0=\ n0=^B@09=VN^NuNV3=6#9} =j>NatN^NuNV>Oad n0=X n 0=Z n0=\ n0=^N^NuNV#=j>Pa$N^NuNV#=j>Qa N^NuNV9}#=j# =n>Za n0=XB@09=VN^NuNV3=63 =83 =:3=<3=>>daN^NuNV3=63 =839} =:3=<3=>>eajN^NuNV3=6>faRN^NuNV3=6>ga:N^NuNV3=63 =8>ha n 0=X n09}=Z n0=\ n0=^B@09=VN^NuNV3=63 =83 =:3=<3=>3=@>iaN^NuNV3=63 =8>j9}aN^NuNV3=6>karN^NuNV3=63 =83 =:3=<3=>3=@>la2 n0=X n0=Z n0=\ n9} 0=^B@09=VN^NuNV#=j>naN^NuNV>oaN^NuNV3=63 =8>pa n =rB@09=VN^NuNV3=63 9}=8# =j>qaN^NuNV#=j3 =6>ra`N^NuNV#=j# =n>xa@N^NuNV3=63 =83 =:#=j#9}=n>yaN^NuNV#=j3 =6>zaN^NuNV#=j3 =6>{aN^NuNV#=j>|aN^NuNV#=j# 9}=n>}aN^NuNV#<#< .мZ#<3NNN^NuNV>?. ?<NNN^Nu /T#@4Nuй4 @/9} AHH@C IJ@gYe2X`"QNupr`p2<0`p2<0`p2< `p2<0`p2r`p?r` p@2<9}``pA2< `pB2<`"`pC2 tE$$.&.ւ$CHH(.*. ڄ$EHHĸgB`tg2E$R(.؂$DHH|gB`tgp`2`$.&.ւ:}$CHH(.*. ڄ$EHHĔ `L|N^NuNVH8 tE$E$RE &R$CHH$Bg` .`LN^NuNVH0 tE$:}E$R$BHHgE&R` .`L N^NuNVH /<N6$/.N6$ . `/<N6$`:}/<N6$`/<N6$`/< N6$`n/< N6$Hn/. N^$HnN:}6$`. gX gf gt g`/<,N6$N $LN^NuNVH8 $nHHg.E$R$B:}HH(<Ƅ/N~&`LN^Nu ^C readwritezero bytes written ==> disk full? file system: } i/o error: write fault read fault write protected insufficient space number = ?<NATNu?<NATNu /??<NA:!}XNu?<NATNu /??<NAXNu /??<NAXNu /??<NAXNu?<NATNu?<NATNu //?< NA\Nu //?< NA\Nu?< NATNu :"}/??<NAXNu?<NATNu?<NATNu?<NATNu?<NATNu?<NATNu //?<NA\Nu?<*NATNu /??<+NAXNu?<,NATNu /??<:#}-NAXNu?</NATNu?<0NATNu / o?/?<6NAPNu //?<9NA\Nu //?<:NA\Nu //?<;NA\Nu / o?/?<NAXNuNV/./. ?. ?<?NA N^NuNV/./. ?. ?<@NA N^Nu //?<ANA\NuNV?.?.:%}/.?<BNA N^NuNV?.?./.?<CNA N^Nu / o?/?<GNAPNu //?<HNA\Nu //?<INA\Nu / o//Bg?<JN:&}A NuNV/././. ?. ?<KNAN^Nu /??<LNAXNu?<MNATNu / o?/?<NNAPNu?<ONATNu / o//Bg?<VNA:'}NuNV?.?./.?<WNA N^Nu //?<NM\Nu /??<NMXNu /??<NMXNu / o???<NM\NuNV?.?.?./:(}. ?. ?<NMN^Nu / o/??<NMPNu?<NMTNu /??<NMXNu /??<NMXNu?< NMTNu?< NMTNu?< NMTNu?<NNT:)}Nur`"r`r`r`r`r`r` rW`r`r |$Nu0/NuNV .p$ @g . ` .N^NuNV .:*}H$ @g . ` .N^Nu /bp`pNuNVH<z .lDD&". lDD( lB@H@40H@0H@`6:+} l$//N#PlS JlDLN&$LN^NuNVH Hn/. Hn/N&$LN^NuNVH /./</<HnN8|$LN^NuNVH0 $n$.HH$B$n$RL N:4}^NuNVH80E$R$BHHEgvE$vE$vE$.HHx%fB`vg".HH$n//. N&`E$R:5}$BHHE.HHx%gB`vg".HH$n//. N&`J.HHv-gB`t f.HHv+gB`t $fB`:6}t f.HHv gB`t $fB`t f.HHv#gB`t $fB`tg.HH `E$vE$`E$v:7}E$`E$vE$`tE$vE$``/<`4/}z`P.HHv*gB`tg8$n$$n$E$vԃE$E$R$BHHE`.HHvlgB`t f.HHvLgB:?}`t $fB`tgE$R$BHHE`.HH `0$n$//</< /</./././. /.Nx0"$$E$:@}vԃE$`4$n$//</< /</./././. /.N0"$$E$vԃE$`$n$//</</</.:A}/././. /.N0"$$E$vԃE$`$n$//</</</./././. /.N0"$$E$vԃE$:B}`D$n$//</</</./././. /.N0"$$E$vԃE$`$n$$n//. N$E$vԃE:C}$`$n$//./././. /.NP.$E$vԃE$`/127 register written.XXXAll programs from ANTIC issues datedprior to August 1984 were reproducedfrot}m ANTIC's Archive. We've updatedthem from our HELP columns andmost are compatible with the XL andXE machines. We have woru}ked to insurethat our programs operate aspublished, but we consider all oursoftware listings to be works inprogress whichv} we encourage you topersonalize and enhance.Good luck, and ENJOY!-ANTIC EDware listings to be works inprogress whichRTIC EDware listings to be works inprogress which we encourage you topersonalize and enhance.Good luck, and ENJOY!-AN      :y}      $   :z}       "  :{}B`t g.HHvă $fB`tgE$vԃE$`.HHvăv83 B*-@@"R("ΠҠՠҠˠҠ_@j%D:MENU D1:HELP.BASile#(@(rST LISTINGSON MONTHLY DISK...and how to get themby CHARLES JACKSONAntic Program EditorFor those ST owners who do not >~}yetown a C compiler, but are eager totry out Antic's C language listings,we are now including the executableobject code o>}n the Antic MonthlyDisk.XXXAll disk files with extendersof .PRG, .TOS, .TPP and .ACC arecompiled ST programs, ready to>} betransferred to an ST disk andexecuted. Given enough disk space,we will also include the sourcecode. Source code file>}s will have a.C extender.XXXPORTING FILESBefore using an ST program, you musttransfer it to an ST disk. Thisprocess >}of transferring filesbetween computers is called"porting."XXX To port a file from the AnticMonthly disk to an ST dis>}k, you'llneed: - A telecommunications programfor the ST which supports XMODEMfile transfers. Chat (version 1.1)or PC>}/InterComm will work).XXX - A similar program for your8-bit Atari which supports XMODEMfile transfers. Chameleon or>}BackTalk will work. Unfortunately,HomeTerm won't do the job because ittranslates all carriage returns intoATASCII value 1>}55. Also, don'texpect to succeed at ST porting withany version of AMODEM.XXXA - 8-bit Atari computerB - An Atari 850 >}Interface Module with a modem cable (RS-232 to D-9.)C - Null modem connectorD - Gender changer (if required)E - Yo>}ur ST    | A |=>| B |=>| C |=>| D |=>| E |     Sample por>}ting configurationXXX IMPORTANT: Both modem programsmust be configured similarly. Ifyour 8-bit software is set for 1>}200baud, your ST software also must beconfigured for 1200 baud. You may use any baud rate whichis supported by both pr>}ograms.Antic used PC/InterComm andChameleon to port files at 9600baud.XXX Additionally, BOTH programs mustbe set fo>}r 8-bit (binary) filetransfers. Once both computers are linkedtogether and both modem programs arerunning, you may beg>}in the filetransfer. You can also reverse thisprocedure to transfer files from STdisks to your 8-bit machine.XXXWALK->}THROUGH DEMOLet's walk-through a sample filetransfer. We'll use BackTalk on an8-bit machine, and Chat on the ST. Con>}figure BackTalk for 1200 baud,with Full Duplex and ASCIItranslation. Press [SELECT],choose the XSEND option, selectXMOD>}EM protocol and enter the nameof the file you wish to port.XXX From the ST desktop, double clickon CHAT.PRG. Make su>}re Chat isrunning at 1200 baud. Use the [F7]function key to change baud rates,if necessary. Now press [F6] andclick on >}the RECEIVE button. Whenthe file selector box appears, press[ESCAPE] and type the name of thefile to receive. Press [RET>}URN] orclick on OK.XXX To begin the transfer, press the[F3] key on the ST and press [START]on the 8-bit Atari. W>}hen you're done, remember topress the ST's [F10] key to closeany open files. You'll also want tomove your ported program >}out of theSUPPORT folder and onto anotherdisk, where you can make backupcopies.XXX Occasionally some versions ofXMO>}DEM will append extra "garbage"characters to your files. Textfiles, such as C listings, areparticularly susceptible to th>}isproblem. If your implementation ofXMODEM appends garbage characters toyour source code, you must removethose character>}s with a text editorbefore compiling the program.s garbage characters toyour source code, you must removethose character<4