TD\O_ COMET To ASCII v1.2 (c) 1995 Simon CookeAlso: QDOS v1.2 (c) 1995 Simon CookeThese programs are freeware. However, copyright remains with Simon CookeSimon Cooke will not be held responsible for loss of earnings or data through the use of these programs. DISCLAIMER ENDS.through the use of these programs. DISCLAIMER ENDS. QDOSv1.2 ` ' a a 'COMET2ASCI_-$)՜ ˧ ՜$)' ::\com2asci.c>_  a 0 a  ::\docreader ?^ a  a ::\QDOSv12 .S ?] p ) p ::\SAMDOS22  ?\* m ggsamfont  \ ` ) ` ::\QDOS v1.2 f  ` :\ CONVERTER f ) ` :\AUTO  \- J ctoa.JYN  ?[ !&b ) b!&ctoadocs [-՜ % ՜{--f ) _CONVERTme!?Z  Ld  dL Iconv .S @Z a a                          RL>TL*fAFL2A2lA"A"fA*hAFL=2A2mA"A"hA 6 wL!6 wLV#^Sxɯ> !x!y"x6 6nf6 lLFN 4 4V^rs͊Ltu{[ErE͸Lw͸Lɯ! B!# x M :2A1M;\:ALNLWMZWM[{AM> N fMO#GfMfMy #x fM ^#V#! xlMlMlMlMlMlMlMlMlMFlMNlMVlM^lMflMnlMvlM~:@1MxK\ͥNQͥNRͥNSͥNTͥNUͥNVͥNWͥNXͥNYͥNZͥN[ͥN\ͥN]ͥN^ͥN_ͥN`ͥNaͥNbͥNcͥNdͥNeͥNfͥNgͥNhͥNiͥNjͥNkͥNlͥNmͥNnͥNoͥNp&od͓N ͓N}0GOɯR8< > 0M*@|(zxN22O2MOC3OCNO{xNC:OMZ@MZ2 x_~{ANonsense in SAMDOS 1.Nonsense in SNOS 1.Statement end erroEscape requesteTRK- 65,SCT- 8,ErroFormat TRK- 65 losCheck disk in drivNo "BOOT" filInvalid file namInvalid statioInvalid devicVariable not founVerify faileWrong file typMerge erroCode erroPupil se  Invalid codReading a write filWriting a read filno AUTO* filNetwork ofNo such drivDisk is write protecteNot enough space on disDirectory fulFile not founEnd of filFile name useNo SAMDOS loadeStream useChannel uses~1~W!Qs@>!VXKS >4[ >)<yXS XS( x :A:AL2ASA"A!xxG> >E>@Hz(02Ak%-~@2A!A:A2 x2PA/J!~::A( Z!Q!x*A[ARGJ n>!"@1~   !P":A2:A2:A2G(?(^{~YLEE ͦL͏E;GQEV!5SS͇CZCͧC!CrEH( (ͦL    ER͏EEER͐E:RA(P*x"&AQ^VS:RAE!"xD ͻS :6AE!"xͺC ͻS $S *&A"xQwVDͻS S$S Q!IGÐE>WMnZj&> UH͐EN<ͶS  ͶSͶSͶSzOͶSzOͶSKͻSͶSͶSͶSNͶS ͶSͶSͶSͶSͶSͶSNͶS=SNͶSͶSöSq#{ !NT~ 8[U# 6 wL~ R#^' a!2"{G (>{0>[>*O G (:<2(>  8+^+Vz :\2/=2=2[×6`!D"Z P  MA* x |$~$$~$~~*@UTPUT DIFA TO ROMUIFA0SBOOK2LD DDSAMDOS2  m SAMDOS2 m ggAUTO  b ՜* DK%KSNAP @CALLäB BPDEFWNRTEQINCHLsA¡B21APCB!"@2 x!xMZC AM{Z@MZMW$[tX%ZEZ1ZWYVcYgYK A@MZ*@|:1Aħ@sA" A2A"ASACAPC!"@7WM[:AOZC ZCxZCyz:PA=2PA@WCW"*A**ACH?GzEˉE2AE͇CZClLͥCCͼD xO xO xO xO xO xO G ͘CwTN2AEElL'DͼD͇CZC xO xO xO xO xO xO G ØC2AEElL.wͅD͘CͼD͇CZCy2D2D2Db g( w#,(wұDæD cLlL:A<2A Ng ͦL͢L͢LæLE!A'D aC:Ay:A<2A N(͏EͦLz ͸MdN{A_E:A<2 x: x z(>2AF FG ! ~wLyx+F dHr#s͘LͺCwÂL+F V#^D~ÂL͜MyF~͂L*xw#"xvC+F SxV#^͇CG G#"x2A͑LEEZClLZC*x z xO xO xO xO xO xO G (͊LD"xlLV#^ÏF͘CD[xÀF*x7B:PA 7=2PA*x@ "x2.A:/A*,A",A:.A͜MbGr͂L*x#vCV"x+F SxdHr#s͘LͺC͇CGTH;G!G8SxdHr#s#K(AC(A!IG2A͊LEͥC*,AZC*xZC z :/AxO +xO xO xO xO xO G :.A(͊LD"x:/A",A+^+V:.A͑LK(A C(Ax¼G͘CcL[x*xRG!w~ {_ 8(_͕H #~(ͻS̕HHJXN~wx ݶ"w"4 4!@:Ag(#~6 wL ~ :@[U#!xw2"A͐EbDsL~IF( FG:7AIN VʳI6 wLF#NCx*A "AIIIN %sL~w( YU>*[UYUF&o> UYUHN(&`@  :"A<(2"A> 2"A> [U'*x> UYUsL~S^ f(I~( cL4HͻSHzH~/w#~ 0H 61M[( QUHVJ(7sL6ͺC6#!:A ͶJ !A!ͶJdH͑Lr s!cL~w##Ji0Yi8Q!jowLy x(6͂L͊LͺCJ>@H\NsL"x~w##*xͺC:7A(M>H`NsL~0=ͣMw:A >TL6 wL sL}A RL>TL>H`NsL~0=ͣMw::A ~ =  ~ WMt[! ^6A0_EYL>HHNIKwZ]/JZRG]:K[xD=ZiF]E[Y`N6úC:AEYL[ADy*A^:.A:AEy*A^:.AYL[AͺC2.A|M@|?gB!~AA_:}A2:A2IA:A2QA*A"LA:A2PA*A˼"A"JA1MZ29A1MZ26A0_"x~O#~:(%0 0&W#~:(0 0_zW#~: z26Ay29A#*x ;ARL:9AD N&Qo6`!D"Z>y=Q *6\$!!!'!!U'g2s12@c: ͗>yyGA!" !!!D!T!" ! !!$!ͣ!(!!0!!8!!2K\v!_ux /O/!t~#(_x ~#yz  ~#(A>@o~#o&))))w,w-,,~#_!;;;;~٢w#{!_~٢w# x :!d8dx(0w# 8 x0w#6.#0wx >2>12>2ˣ2>0!q:_x2: {2y:\ >M2ޣ!n{2ΣxQx  y{( !2)2: !2K V":!_yӀx2: #{2 Ç))))!+G>G(> !O!Q ~(@( `((6#!"Z"Z"Z"Z"Z"Z"Z"Z"Z"Z"Z"Z"Z"Z"Z"Z"Z"Z: !I"p[x!xw#x zgyGOo> 'oldl l}0&xR8OxA т 0͒>0w#< 03>(( 22&&((*$   *>*> >  "&*2"">" " $>> <"  <""> """""" >>  ""&*. "">"""<""<""<" "<"""  ""<> < >> < " &"""">"""""$(0($" >"6*""""""2*&"""""""<""< """*$<""<($"" ">"""""""""""""""**""""""> > 88* 8>" <"""< """">  <"" <"""" "$8$" 4****<"""""""<""< "",2  <""""""""""*""""">>  T>,[UATT 6 wLV+^U>,[U+V+^U> [U~O#^#~W#ZX BASICBASIC ZX D.ARRAYD.ARRAYZX $.ARRAY$.ARRAYZX C ZX SNP 48kMD.FILEZX SCREEN$SCREEN$SPECIAL ZX SNP 128k OPENTYPE N/A EXECUTE WHAT?2AzgyG:A)U> ')U&Ud&U &U}05xR8OxA т0[U>0~[U~#> LUTape ready ? press SPACE .LU - DIRECTORY * LU Number of Free K-Bytes =LU MILES GORDON TECHNOLOGY plc 1 LUOVERWR%ITE LUAre you SURE ? (y/nLU" (y/nLU * SAM DRIVE LU Enter source disk press any keLUFormat disk at track LUCopy disk at track LUVerify disk at track LUEnter target disk press any keQ͐Vi0i8QQ"VMNM͚[Ly >>N>QM yMMC\NM#\L>ͱM >WM[!;AA_q[)\!;AA_q[!;AoA:6AG:RA̕M)\EͽX8 ͪM`NL\DͥWiF)\EMIJV͟\/J8 ͥWRGJrMMV>:A2PA! [A!0_>*2;A>28AYLͼWML(# ͇[ʹY|[ͻYC\! MLE>LNE>XL:8A> [UV: x0[U͋U!"AH͞UH!h(( P((![AR0 R>-[U<U> [UM yMMC\L!;AA_q[ͫ[0ͱM sL~w(JsL6ͺCrMͪM`NL͸M 2̀M!x͐Ew2}DS}:}wsL~ #~ I 7[}:}(<2}ͻS zMC\NM#\L!;AA_q[)\!;AA_q[[YhN)\[Y`N#WA ͺCL>HsL>@>25AM yMMC\L!;AA_q[ͫ[8 ͪM`NL6 wL:5AO/G~ͱM wͺCrMͻYN,(;("M2A:AMNM|[ʹY͚[(QSAʹY͚[( [AYSAʹY͚[(CAL:6A2A!IAx ~6F#YLY;^LYLY͙^L TFYLML ~ c~# ͚[y27A0_L:K:A 5M(0[xD2A2A2A>1~!@>2PAiFQ WM,NMZ1MZ2A"AOMZ1MZ+| =[y[OR72A"A2A]#]MM( L(C\ 25AM#\L!;AA_q[:5A )\!;AA_q[)\UJL"RL:9AD NE͚[y26AM͚[yN28AL!͸M )̀M!xw͐EDS$AsL~2"A~(I 7:"Aw(cL4[$AͻS zMu\(y= N͉\ N29A;,M)\C\6A!RANq#u\yN!BN!:A>6 #= !;A:AL$2AA?[a?{0 $N!A:A!oA;A ~*( ?(##~..(sLA RL6 wL!!A}A06 wLV#^* A0}A#^>}A>PA!KO 0 #]EYL:K[ASA#]\]iFYL[xD=Z*A"LAKAy2PA[A˺SJA\]6 z y @TF(N#|8˴G<͇M]E20AG:AYL/J8Z*LA[JARG     a$="X" a$="x"2999 a$ l44287:ascaddr,44287-32768:ascp,1:cometa=44287+(b(&4b50PK+35#) ~&7fff)+16384@*(a(&4b50PK+34"))  Ecomp,(cometa {16384@)-1:comaddr,(cometa z16384@)  Qinputp,a(&4b50PK+34"):inputa,(b(&4b50PK+35#))~&7fff [:0,0;" # CONVERT ASCII SOURCE TO COMET FILE 9 " ''"Converting ASCII source to COMET format. Please wait.":err=_40963:0:lnof=b(lengtha)+16384@*a(lengthp) err02091+ 8'"File conversion completed. New file length is:";lnof 9f$=a$:kf$8f$=f$+" .S"(kf$+1) ''"Please enter a filename. X will abort and return you to the main"'"menu, however, just pressing return will use the default file"'"name of: """+f$+"""" G:"Enter Filename to save COMET source under:";b$:b$=""2090* b$="x" b$="X"2999  9f$=b$:kf$8f$=f$+" .S"(kf$+1) *f$ lcometa,lnof:2999 +"Error in input file: "; ,1err=1"Invalid character in input file." -,err=2"Invalid character in label." . err=3"Label too long." /''"Press a key.":  'options  [0,0;" CONFIGURATION g " A'"Press a number to change the configuration of the converter:" ,'"COMET to ASCII:"'"---8"''" 1  Output file format."''"ASCII to COMET:"'"---"''" 2  Input file format."'" 3  Hash (""#"") handling."'" 4  Number type conversion"''" 5  Save configuration to disk."''" 6  Return to main menu without saving." ײ" (Any changes will still be active, but will not be per2manent"'" unless you save them.)":#0;" CONFIGURATION J " !a$:a$<"1" a$>"6"3035 _na$:opformat:ipfor  mat(:hashes$:numbertype:savetodisk:3999 3001  5savetodisk:"com2asci.c"l40960,2499 :  conftitle [0,0;" CONFIGURATION ! " \21,0;" CONFIGURATION "   hashes: conftitleP 2,0;"Convert strings beginning with a # so that they begin with an &?"''"eg. #0FA3 would become &0  FA3"''"Current mode: "; :ahashtype=0"convert #'s to &'s",:ڻ"don't convert #'s to &'s", ''"Press a number:"''" 1  Convert #'s to &'s"''" 2  Don't convert #'s to &'s"''" 3  Return to configuration screen" n6,0;"Current mode: "; :ahashtype=0"convert #'s to &'s",:ڻ"don't convert #'s to &'s", !a$:a$<"1" a$>"3"5030 6na$:hashtype,0:hashtype,1:5099  5021  numbertype: conftitleP ;2z$)՜= COMET TO ASCII v1.2  1995 Simon Cooke, Entropy  3:#:8,8: elfcr=43364d,eoltype=43365e,hashtype=43366f,numtype=43367g,linewidth=43368h scomaddr=43459é,comp=43461ũ,ascaddr=43462Ʃ,ascp=43464ȩ,lengtha=43474ҩ,lengthp=43476ԩ 'inputp=43467˩,inputa=43465ɩ \:6,0;" COMET SOURCE -> ASCII / ASCII -> COMET CONVERTER v1.2 " #'"1) Convert COMET to ASCII file"br '"2) Convert ASCII file to COMET file" (9"3) Options"'"4) Load documentation"'"5) Exit to Basic" 2I'"   1995 Simon Cooke " <a$:a$<"1" a$>"5"60< F:na$:comasc:asccom:optionsܩ:90Z: P 1 Z "ctoadocs" comasc  Y0,0;" # CONVERT COMET SOURCE TO ASCII FILE b " z''"Enter name of source file to load, or enter X to abort."'"Entering no name will re-read the directory from the disc." &:"Filename:";a$:a$=""1010 a$="X" a$="x"1140t 9f$=a$:kf$8f$=f$+" .S"(kf$+1) Lf$ l44287:comaddr,44287-32768:comp,1:asca=44287+(b(&4b50PK+35#) ~&7fff)+16384@*(a(&4b50PK+34")) VAascp,(asca {16384@)-1:ascaddr,(asca z16384@) W[:0,0;" # CONVERT COMET SOURCE TO ASCII FILE  " X$''"Converting file... Please wait" `@40960:0:lnof=b(lengtha)+16384@*a(lengthp) e8'"File conversion completed. New file length is:";lnof jB:"Enter Filename to save ASCII text under:";a$:a$ lasca,lnof t asccom  Y0,0;" # CONVERT ASCII SOURCE TO COMET FILE " z''"Enter name of source file to load, or enter X to abort."'"Entering no name will re-read the directory from the disc." &:"Filename:";a$:a$=""1010 )   7=anumtype ~4:a0numtype,anumtype-4:numtype,anumtype +4 xca$="4"a=anumtype ~8:a0numtype,anumtype-8:numtype,anumtype +8 fa$="5"a=anumtype ~16:a0numtype,anumtype-16:numtype,anumtype +16  5130    opformat :conftitleP Ȑ2,0;"COMET to ASCII can produce ASCII output"'"files in four different formats:"''" 1  No line terminators, padded to 64 chars"'" H (eg Outwrite)"''" 2  Carriage return terminates lines"'" (eg Macintosh, SAM)"''" 3  Line feed terminates lines"'" (eg Amiga, Unix)"''" 4  Carriage return + line feed terminates lines"'" (eg PC, MSDOS, CPM, Printer, Terminals)"' )'" 5  Return to configuration menu" /18,0;'"Current output format: "; )alfcr=0"No line terminators",, (alfcr=1"CR terminates line",, )alfcr=2"LF terminates lines",, .alfcr=3"CR + LF terminates lines",, !a$:a$<"1" a$>"5"5335 a$="5"5399 lfcr,na$-1:5330   ipformat :conftitleP "2,0;"COMET to ASCII can convert both files with line terminators and"'"files without line terminators from ASCII to COMET format." ,'" 1  Automatic input format detection"'" (Auto-determines whether the file has line terminators)"''" 2  Carriage return or line feed (or both) terminates lines"'" (Any combination, do"es not have to be consistent)"''" 3  No line terminators. (eg Outwrite format)"''" 4  Set line width for conversion when there are no line"'" terminators."''" 5  Exit to configuration menu" 6%18,0;"Current mode: "; ;}aeoltype=0"Automatic",,:aeoltype=1"CR or LF terminators",,:aeoltype=2"No line terminators",, <9'"Line width if no terminators are used: ";alinewidth, =!a$:a$<"1" a$>"5"5437= >a$="5"5499{ ?Ja$="4"va:a<1 a>2555439?:linewidth,a:54306 @"eoltype,na$-1:54306 { ' 'N40959:3:#:8,8:"com2asci.c"l40960:1 N "comet2asci"10000' ^fEi osrgosrg4fcrdoltypeeashtypefumtypeg@inewidthh omaddrénompũ scaddrƩ?scpȩ engthaҩ1engthpԩ nputp˩nputaɩsca(no  *fQometa'rrre testeratatrtesteratatrtesteratatrtestera1atrtestera2atrtestera1atrtestera1atrtesteraanewidth3ainewidth3aunewidth4aunewidth2aunewidth6ainewidth1ainewidthastestfnoftadth astest .Sbnoftapthcom2fnoftapth com2 .Saiputapth4 000 N 399{ 45499{ 4 4 46 f%  s^fEi osrgosrg4fcrdoltypeeashtypefumtypeg@inewidthh omaddréompũ scaddrƩ?scpȩ engthaҩengthpԩ nputp˩nputaɩatat,0;"Numerical Conversion"''"COMET To ASCII can convert from a variety of number formats and"'"bases to standard COMET forms, including C format hex, octal,"'"postfix binary, etc."''"NB: Zero prefixed octal conversion can lead to strange results."'"Please consult the documentation for more details." &'"Press a number to toggle actions:"  13 ,0;" 1  ";:( a(numtype) ~1) = 1"Convert postfix binary to prefix binary. eg 01010b -> %01010":ڻ"Don't convert postfix binary.",, 14,0;" 2  ";:(a(numtype) ~2) = 2"Convert postfix hex to prefix hex. eg 0FB3Ah -> &FB3A",:ڻ"Don't convert postfix hexadecimal.",, 15,0;" 3  ";:(a(numtype) ~4) = 4"Convert prefix hex (C style) to prefix hex. eg 0xFB -> &FB",:ڻ"Don't convert prefix hexadecimal.",, (16,0;" 4  ";:(a(numtype) ~8) = 8"Convert prefix octal to prefix hex. eg 011 -> &09",:ڻ"Don't convert prefix octal.",h,, 217,0;" 5  ";:(a(numtype) ~16) = 16"Convert postfix octal to postfix hex. eg 11o -> &09",:ڻ"Don't convert postfix octal.",, <:18,0;" 6  Return to configuration menu" F!a$:a$<"1" a$>"6"5190F Pa$="6"5299 Zda$="1"a=anumtype ~1:a0numtype,anumtype -1:numtype,anumtype +1 dca$="2"a=anumtype ~2:a0numtype,anumtype-2:numtype,anumtype +2 nca$="3"a    H"ҩN2s1:e(8!"!VB*ɩ:˩ "##"کǧ!6*Ux2ީ*̩:ΩKɩ:˩(:~ 2ީ (:ީ &~ #t(˴<#t(˴<2Ω"̩Cɩ*̩:ΩKɩ:h:˩(~ #t(˴<= ߯2Ω"̩Cɩx @:˩=2˩ 8>?> *é"ϩ:ũ 2ѩ*Ʃ"̩:ȩ 2Ω!"ҩ2ԩ2:Ω*̩KɩV:˩(x0~ ( ( # x S!~( (#6+!쫯G2ީ2թ2ש~(= :ީ 0:שO:թ /2ީ2ީ:ש ~; 2թ~" :ש2ש#2ީ!~(̈́E k!~(#`."eh"کǧ!~ͣ(#>2ީ~ ((:(;( >>2x02~(:( (#"ߩS!p2ܩ!*ߩ[:ܩ~(ͣ ̈́>2ܩ:>"&!(; (#~(  #~(O*q#"*"ߩ>2ީhB! (#~(( #~([*ߩ~ͣ(#>2ީ"ߩS~ #~ ("ߩh"ߩ;(2":f # >&w&(L%(e~͗*#"ߩSh:ީ( "ߩ*ߩ?>;>#~#"ߩ~#~͗( ̈́ G0#w#*ߩ[~ͣ(#"ߩShw##x Å#~#" "ߩSh2ݩ0 #2ݩ#~X :gW +#>&å+S"ߩ~͗ #x+~̈́ #~ͣ +~#H(eB1O(O":ݩ:g_[>&!!~#080)))o|c}c*"ߩSh":gg ":gO[>&!~0:8 AG#*"ߩSh":g[>%!~02#*"ߩSh????vv 870A[8 a{8zɿ0:80ɿ!N(# $%&'()-+*/\,:;"#:<2"yKک*ϩ:ѩw#t(˴< x "ϩ2ѩ*ک[ҩt( ˴:ԩ<2ԩ"ҩ!qADADAANBBICALCCCCPCPDCPCPICPDADDEDEFDEFDEFDEFDDJNDUMEEQEEXHALHIIINININDININIIIJJLLDLDDLDLDILISMDANNENONOFOOOROTDOTIOUOUTOUTPPPOPUSRERERETRETRRLRLRLCRLRRRRRRRCRRRSSBSCSESLSLSSRSRSUXOD•D͖DӗDטINCBIθINCLUDŧ@(C) 1995 Simon Cooke, Entropy. Entropy is a trademark of Simon Cooke. All rights reserved.6a>2"s!Q~(v(0n( f(^(V(0N( F(# x ͎d{Ɓ<{#>GO>T>GO>Ts1`2 !G x 1:û: yT (Zo&))))2 :g.)):o&):W~#w~#,w>:<2@2:<22`=L2222>2>2ɯ2_:2@@2:<2@0:2!@ # x{{!(Ă<{1!@_~ 2#^#V"> >͸͸͸!@"Á*Á|>2:*~#"8) ?~2Ł#"::Ł> ͸=*Á+"Á 2Ł::Ł*Á+"Á͸2Ł::Łցo&)ӂ^#V!у~͸*Á+"Á#t 1992 ENTROPYError: Cannot find decompaction table~#͸z "%(+.147:=@CFILORUX[^adgjmpsvy|   !#%')+-/1357you'loulousconcomI'lentigh   eninouanceiaanmapragI''lhan'eaeeovI'eealouSAthThdikeavopoiaieeuriovibamohoarisna .,'oscenitcifseooie'nfpqbureuetoreapmtTlfIipmIooesueccaAAaIiIsCeddbesgaaioaoi<<<<<;>>>>>Page:2!":"Ɓ> ͻz6:"( ! Ă:"W:@( !Ă!Ă:"*!W(:"(=2"{!W(:"(8>!W(:"W:@(z<!W(:"W:@(zW:@8z:  @!W({!W f!W(u#!W(X#!W(!WxT~_~#!W~G~/_zʄ=~y)C$B"#(DA!@ 807",$"SC>2>͸:G>͸>͸:( > ͸:=2:O>͸:G> ͸>͸:( > ͸:=2 y >͸:G>͸>͸*}:2:2*~#"(͸(:=2> ͸:G>͸:W:='''2:''_:W:S:'22 *:G*~w#*" y : artesteratatrtesteratatrtestera1atrtestera2atrtestera1atrtestera1atrtesteraanewidth3ainewidth3aunewidth4aunewidth2aunewidth6ainewidth1ainewidthastestfnoftadthV astest .Sbnoftapthcom2fnoftapth com2 .Saiputapth4aoputapth5U a:{:O2s1*é"̩:ũ 2Ω*Ʃ"ϩ:ȩ 2ѩ!"ҩ2ԩ2!6 ?2թ2֩2ש!^"ة*̩:Ω*ة^#VF#N#x xi:֩ *ة##"ة^#V>2֩:թR~#" :ש/2ש>";8"c:֩ *ة##"ة^#V>2֩!&(~ ##=~ :<2y#e2+~ #>=2+ >:-:թ :ש(>; >2թe~#o&->2թ>; Ét( ˴:Ω<2Ω"̩[ϩ:ѩ:d @!@>!"ک!+@~ + HCک!Kک:dG(> O(> r( ˲:ѩ<2ѩSϩ*ҩ t( ˴:ԩ<2ԩ W   I (͸>1͸ 0 Oxyx0͸0͸>2!`͹>2!"!"2:#8A(.( (!!q~Y( 6Y#6e#66N#6o#6!΋!!26!W !"! ͹! "!cĂ*! "!qĂ!"s$>22#>@2!"Ɓ:΋Y > z :Y > !W 12>!">:"͇>2G>͇:G<2GW: @0Send Linefeeds: YeSend Form-Feed after page: NoPrint header (top 2 lines): YeSkip 2 lines after page: YePrint pagPrint all texE  6xit men> > >26!W :N >(=2><2#@2#> :rN> ɯ/O/(BackgroundPen/textChoose from lisInput palette numberSwap pen and paper colourExit menAmber on blacBlack on ambeGrey on blacBlack on greWhite on BlacBlack on whitGreen on blacBlack on greebbxx@@ENTROPY presents*Document Reader v1.3 1992 Cookie Of EntropHi to: All members of Entropy, Colin MacD, TG, The DVLord Insanity, Roger Hartley and everyone else I know (Not eno  Eugh memory for long greetz!The FASTEST decompact-as-you-watch text reader system made Press to abort?<300000 < 00003??l  9p,;ENTROPY SAMDOS patch, to clear up system,;--%;All coding, (C) 1995 Simon Cooke.C;This program is freeware. All Copyright remains with the author?;Resets all vectors to original values - namely to clear out;other DOS'es, etc...=;Also determines number of internal drives, memory, etc...;Modifications:;-- !;v1.0:  Initial release@;v1.1: 3 Checked for RESET keys - but crashed with someA;   7 programs. Nasty. Try reserving some heap space?C; 5RESET keys (sym+cntrl+delete, or caps+cntrl+edit)?; 8are currently not checked for because of thisB;v1.2: 5 v1.0 wasn't restoring data bytes in upper memory>; 0check. Also, if 4Mb of memory was installed,@; 2it would register as zero - due to the counter); being only 8 bits wide..; NBoth of these are now fixed. ;To do: ;------A;Restore NMI vector   back to normal - could this change between;ROM versions?4;Deallocate screens list, shift it back to normal lmpr&FA hmpr&FB vmpr&FCjclsbl&014Ejpalet&0154jclscr&018Djscrn&0100jmode&015Aromvers&000F#version12;boot sys version 1.0chars&5C36pramtp&5CB4 xmeml128&8009&8009 "SAMDOS22"start,81;set up DOS page..., (),96,324 (23046), (&FE),,511,0,28 clear.chip(),(),255  ,clear.chip ,(chars), ,sam.font,768 ,sam.font,font.space,&FF build.font ,sam.font,font.space2,%01010101 build.font ,(hmpr) %00011111 (hmpr), ,(lmpr)(lmpr.store+1),(sp.store+1),,stack+256 ,(vmpr)127(vmpr.store+1), ,(vmpr) %10011111 %01000000 (vmpr),query.system,(vmpr.store+1)3132 (lmpr), clear.scr$,&03F8;set basic MODE 3 palette,127(),() ,,(),,font.space2-512(font.pos+1),,6*1024;screen line start ,topmesg print.line ,17*1024,copyright print.line,font.space-512(font.pos+1), ,8*1024 ,drives print.line ,9*1024,internalk print.line ,10*1024,externalk print.line ,12*1024 ,basicrom print.line ,14*1024 ,sambus print.line ,15*1024 ,sammouse print.line wait.10 clear.scrsp.store,&0000 lmpr.store,&00 (lmpr), [ ,(vmpr) %10000000 vmpr.store&00 (vmpr), (&5C4B),;restore palette! clear.scr,0,1 ,&5FFF(), wait.10,750 waiter ,&01F8,()1 ,waiter ,(&FE)31, ,(&F9) %11100000ͼ,line.tableʓ colorloop,()255,exitcolor, ,&01F8lwait,() ,lwait,() ,&00F8(), colorloop exitcolorɓ, ,waiter print.lineʬ  ͊@ x !W!W(͊:=G: x :2!W͊:2!>(͹2!W(>2!a͹>2! "!"2:(H(X!͹>2>2!"!"2:='_!~2p#~2ed:pG:e2px2edz! M͹>2@ x d: 2>2:e!$ : 2>2:p!$ !W(:= >2!W(:< >2!W(A!W(:!e=(!p~=w!W:=!e(!p~<w2u"d0 d>               !,0 line.l,()7, ,line.lɬ,,64, put.lineʣʆ,()127,8ʣ,,0,,,,font.pos,&0000,,ɣ put.char,()(),,()(),ʓ,128,ɓ put.charɆɣ put.line build.font,768bloop,(); make font BOLD,(),ʣʓ ,table,0,,()(),ɓ,&0F ,table,0   ,,,()(),ɣ, ,bloop query.system ,(&000F) ,vrsion,0 hundreds100,lessth100100 hundreds lessth100,', ,tens,48(),tens,',0 tenloop10 ,lessth1010 tenloop lessth10,',,48(), (),".",',48128(),,255 check.drv2, (243),ʆ,0$Ɇ ,(243) ,not.drv2 check.drv2!,208; set up  m dvar for drive 2(32768+147), check.mem not.drv2,"1" (drives), ,"e"+128(grammar),;clear drive 2 dvar(32768+147), check.mem ,(lmpr),' ,16+32 (lmpr), ,k512,(0),,255 ramloop,(0),,(0) ,k256k ramloop,(0),,' (lmpr),,' ,(pramtp)15,found512k,"M"(internex), found512kk256k ,k256 found512k,(0),,' (lmpr),,internalk+1,3 check.  Tclok ,&B0EF ,&0F00,()ʃ clk.llp(),,()15;strip unused bits ,no.clk ,clk.llp,1 no.clkɃ(),,;finished init messages ,noclock ,found ,nsambus,5 noclock mouse_detect mouse_scan(mouse_space+6), mouse_scan,(mouse_space+6)&0F ,nomse ,found,nsammouse,5nomse;check for 1mb's ,(lmpr),' ,(hmpr)3132 (lmpr),herewego-&8000 herewego ,(hmpr)128 (h  7mpr), ,(&8000),0,,0 memloop1, (xmeml),,255 ramloop2, (&8000), ,(&8000),nomemhere ramloop2 nomemhere, (&8000), ,memloop1 ,(hmpr)127 (hmpr), herewegob herewegob,' (lmpr),,,,, ,numstoreptnum,externalk,',,',4, ,nospaces," " spaceloop(), spaceloop nospaces ,numstore,',,',01;Clears allo  }cation table to start-up values... ,&5100,32 loopalloc,()&FF ,notthis&40 ,notthis&60 ,notthis&C0 ,notthis (),&00 notthis loopalloc;Clear vectors: ,&0000 (&5ADA), (&5ADC), (&5ADE), (&5AE2), (&5AE4), (&5AE6), (&5AE8), (&5AEA), (&5AEC), (&5AEE), (&5AF0), (&5AF2), (&5AF4), (&5AF6), (&5AF8), (&5AFA), (&5AFC), (&5AFE),;Doesn't clear NMI (yet!) ,(&000F)11͈,73(&5B70),;resto  re ANYIV mouse_scan ,&FFFE,(),mouse_space ,&080F,()ͼms1(),,(),ms1ptnum,',',0ՈՑՈՑ,,,, ,34464,pnm2 pnum5ypnum5,&20 pnum5x,0 pnum5y,0 ,10000pnm2pnum4 ,1000pnm1pnum3,100pnm1pnum2,10pnm1pnum1,&30pntpnm1,0pnm2ʃ,,0pnm3ۣ,ۀ, ,pnm4pnm3pnm4,  ,,,, ,pnm5ɓpntpnm5&30pntɓ,&30pnt(),,','table%00 %00000011 %00001100 %00001111 %00110000 %00110011 %00111100 %00111111 %11000000 %11000011 %11001100 %11001111 %11110000 %11110011 %11111100 %11topmesg"System Auto-Boot v"version/10+48,"."version\10+48+128drives"2 Disk Driv"grammar"e","s"+128 internalk" 768k Internal RA"internex"M"+128"  masquerading as 256" "k"+128 externalk"8192k External RA" "M"+128 basicrom"BASIC ROM version "vrsion"x.x" " "+128sambus"SAMBus Clock "nsambus"not " "foun" "d"+128found"foun" "d"+128"sammouse"SAM Mouse Interface " nsammouse"not foun" "d"+128( copyright"(c) 1995 Cookie of Entrop" "y"+128 k256"256" k512"512" line.table$46,1,47,16,48,17,49,17+4,50,17+6451,17+68,52,17+64,53,17+454,17,55,16,56,1,57,0)134,1,135,16,136,17,137,17+4,13 /8,17+64139,17+68,140,17+64,141,17+4142,17,143,16,144,1,145,0 255,255 palette0,16,32,48,64,18,96,1200,17,34,51,68,85,102,127sam.font"samfont"length$-&8009 font.space1536 font.space21536 stack256 mouse_space9 $numstore63290132901startn E             [ !P":A2:A2:A2G(?(^{~YLEE ͦL͏E;GQEV!5SS͇CZCͧC!CrEH( (ͦL    ER͏EEER͐E:RA(P*x"&AQ^VS:RAE!"xD ͻS :6AE!"xͺC ͻS $S *&A"xQwVDͻS S$S Q!IGÐE>WMnZj&> UH͐EN<ͶS  ͶSͶSͶSzOͶSzOͶSKͻSͶSͶSͶSNͶS ͶSͶSͶSͶSͶSͶSNͶS=SNͶSͶSöSq#{ !NT~ 8[U# 6 wL~ R#^  ! m!2"{G (>{0>[>*O G (:<2(>  8+^+Vz :\2/=2=2[&Qo6`!D"Z P  MA* x |$~$$~$~~*@UTPUT DIFA TO ROMUIFA0SBOOK2LD DDSAMDOS2  m SAMDOS2 m ggAUTO  b ՜* DK%KSNAP @CA  LLäB BPDEFWNRTEQINCHLsA¡B21APCB!"@2 x!xMZC AM{Z@MZMW$[tX%ZEZ1ZWYVcYgYK A@MZ*@|:1Aħ@sA" A2A"ASACAPC!"@7WM[:AOZC ZCxZCyz:PA=2PA@WCW"*A**ACH?GzEˉE2AE͇CZClLͥCCͼD xO xO xO xO xO  @xO G ͘CwTN2AEElL'DͼD͇CZC xO xO xO xO xO xO G ØC2AEElL.wͅD͘CͼD͇CZCy2D2D2Db g( w#,(wұDæD cLlL:A<2A Ng ͦL͢L͢LæLE!A'D aC:Ay:A<2A N(͏EͦLz ͸MdN{A_E:A<2 x  p: x z(>2AF FG ! ~wLyx+F dHr#s͘LͺCwÂL+F V#^D~ÂL͜MyF~͂L*xw#"xvC+F SxV#^͇CG G#"x2A͑LEEZClLZC*x z xO xO xO xO xO xO G (͊LD"xlLV#^ÏF͘CD[xÀF*x7B:PA 7=2PA*x@ "x2.A:/A*,A",A:.A͜MbGr͂L*x#vCV"x+F SxdHr#s͘LͺC͇CGTH;G!G8SxdHr#s#K(AC(A!IG2A͊LEͥC*,AZC*xZC z :/AxO  xO xO xO xO xO G :.A(͊LD"x:/A",A+^+V:.A͑LK(A C(Ax¼G͘CcL[x*xRG!w~ {_ 8(_͕H #~(ͻS̕HHJXN~wx ݶ"w"4 4!@:Ag(#~6 wL ~ :@[U#!xw2"A͐EbDsL~IF( FG:7AIN VʳI6 wLF#NCx*A "AIIIN %sL~w( YU>*[UYUF&o> UYUHN(&`@  :"A<(2"A> 2"A> [U'*x> UYUsL~S^ f(I~( cL4HͻSHzH~/w#~ 0H 61M[( QUHVJ(7sL6ͺC6#!:A ͶJ !A!ͶJdH͑Lr s!cL~w##Ji0Yi8Q!jowLy x(6͂L͊LͺCJ>@H\NsL"x~w##*xͺC:7A(M>H`NsL~0=ͣMw:A >TL6 wL sL}A RL>TL>H`NsL~0=ͣMw::A ~ =  ~ TL*fAFL2A2lA"A"fA*hAFL=2A2mA"A"hA 6 wL!6 wLV#^Sxɯ> !x!y"x6 6nf6 lLFN 4 4V^rs͊Ltu{[ErE͸Lw͸Lɯ! B!# x M :2A1M;\:ALNLWMZWM[{AM> N fMO#GfMfMy #x fM ^#V#! xlMlMlMlMlMlMlMlMlMFlMNlMVlM^lMflMnlMvlM~:@1M  K\ͥNQͥNRͥNSͥNTͥNUͥNVͥNWͥNXͥNYͥNZͥN[ͥN\ͥN]ͥN^ͥN_ͥN`ͥNaͥNbͥNcͥNdͥNeͥNfͥNgͥNhͥNiͥNjͥNkͥNlͥNmͥNnͥNoͥNp&od͓N ͓N}0GOɯR8< > 0M*@|(zxN22O2MOC3OCNO{xNC:OMZ@MZ2 x_~{ANonsense in SAMDOS 1.Nonsense in SNOS 1.Statement end erroEscape requesteTRK- 65,SCT- 8,ErroFormat TRK- 65 losCheck disk in drivNo "BOOT" filInvalid file namInvalid statioInvalid devicVariable not founVerify faileWrong file typMerge erroCode erroPupil se fInvalid codReading a write filWriting a read filno AUTO* filNetwork ofNo such drivDisk is write protecteNot enough space on disDirectory fulFile not founEnd of filFile name useNo SAMDOS loadeStream useChannel uses~1~W!Qs@>!VXKS >4[ >)<yXS XS( x :A:AL2ASA"A!xxG> >E>@Hz(02Ak%-~@2A!A:A2 x2PA/J!~::A( Z!Q!x*A[ARGJ n>!"@1~              5R&ac7 > 30="CONVERTER" 40959:"comet2asci" osrgosrgpoUtoonpoJnoo ppo ?poo@mpo4moomjUt n~`pf mgbeod timer .Saeod timer .Sftod timer .Sfaodce No File amodceonuk iff2 .Sfaodceonuk iff2 .Samodceonuk i ff2 .Sfaodceonuk iff2 .Samodceonuk mode4half faatreonuk mode4half faodreonuk mode4half amatr entropyr.Sfaodr ENTROPYR.Sfaodr ENTROPYR.S #VUH "6 wLAT ˩> T>,[UATT 6 wLV+^U>,[U+V+^U> [U~O#^#~W#ZX BASICBASIC ZX D.ARRAYD.ARRAYZX $.ARRAY$.ARRAYZX C ZX SNP 48kMD.FILEZX SCREEN$SCREEN$SPECIAL ZX SNP 128k OPENTYPE N/A EXECUTE WHAT?2AzgyG:A)U> ')U&Ud&U &U}05xR8OxA т0[U>0~[U~#> LUTape ready ? press SPACE .LU - DIRECTORY * LU Number of Free K-Bytes =LU MILES GORDON TECHNOLOGY plc 1 LUOVERWR  ITE LUAre you SURE ? (y/nLU" (y/nLU * SAM DRIVE LU Enter source disk press any keLUFormat disk at track LUCopy disk at track LUVerify disk at track LUEnter target disk press any keQ͐Vi0i8QQ"VMNM͚[Ly >>N>QM yMMC\NM#\L>ͱM >WM[!;AA_q[)\!;AA_q[!;AoA:6AG:RA̕M)\EͽX8 ͪM`NL\DͥWiF)\EMIJV͟\/J8 ͥWRGJrMMV>:A2PA! [A!0_>*2;A>28AYLͼWML(# ͇[ʹY|[ͻY  yC\! MLE>LNE>XL:8A> [UV: x0[U͋U!"AH͞UH!h(( P((![AR0 R>-[U<U> [UM yMMC\L!;AA_q[ͫ[0ͱM sL~w(JsL6ͺCrMͪM`NL͸M 2̀M!x͐Ew2}DS}:}wsL~ #~ I 7[}:}(<2}ͻS zMC\NM#\L!;AA_q[)\!;AA_q[[YhN)\[Y`N#WA ͺCL>HsL>@>25AM yMMC\L!;AA_q[ͫ[8 ͪM`NL6 wL:5AO/G~ͱM wͺCrMͻYN,(;("M2A:AMNM|[ʹY͚[(  5QSAʹY͚[( [AYSAʹY͚[(CAL:6A2A!IAx ~6F#YLY;^LYLY͙^L TFYLML ~ c~# ͚[y27A0_L:K:A 5M(0[xD2A2A2A>1~!@>2PAiFQ WM,NMZ1MZ2A"AOMZ1MZ+| =[y[OR72A"A2A]#]MM( L(C\ 25AM#\L!;AA_q[:5A )\!;AA_q[)\UJL"RL:9AD NE͚[y26AM͚[yN28AL!͸M )̀M!xw͐EDS$AsL~2"A~(I 7:"Aw(  xcL4[$AͻS zMu\(y= N͉\ N29A;,M)\C\6A!RANq#u\yN!BN!:A>6 #= !;A:AL$2AA?[a?{0 $N!A:A!oA;A ~*( ?(##~..(sLA RL6 wL!!A}A06 wLV#^* A0}A#^>}A>PA!KO 0 #]EYL:K[ASA#]\]iFYL[xD=Z*A"LAKAy2PA[A˺SJA\]6 z y @TF(N#|8˴G<͇M]E20AG:AYL/J8Z*LA[JARG  ιHJ:0A]:AX!!@ 1M[<)))(˿_xTM'DAUTO*  >WMt[! ^6A0_EYL>HHNIKwZ]/JZRG]:K[xD=ZiF]E[Y`N6úC:AEYL[ADy*A^:.A:AEy*A^:.AYL[AͺC2.A|M@|?gB!~AA_:}A2:A2IA:A2QA*A"LA:A2PA*A˼"A"JA1MZ29A1M[Z26A0_"x~O#~:(%0 0&W#~:(0 0_zW#~: z26Ay29A#*x ;ARL:9AD N& `>>(( 22&&((*$   *>*> >  "&*2"">" " $>> <"  <""> """""" >>  ""&*. "">"""<""<""<" "<"""""<> < >> < " &"""">"""""$(0($" >"6*""""""2*&"""""""<""< """*$<""<($"" ">"""""""""""""""**""""""> > 88*   8>" <"""< """">  <"" <"""" "$8$" 4****<"""""""<""< "",2  <""""""""""*""""">> ,O,<- Ba 1 P[CAPS]Prt Mu ,P,-> Fw 1 P[TAB]Cts,A,f\/ Ba 5 Ps[CNTRL] lr Mu,Q,/\ Fw 5 Ps[ESC],X QuQܲmϴ eUp d Dn m curs[SP  ACE] [RETURN]selects tLeft d r m rgh cycles of values.[EDIT] turns y pP y (c)1995 ENTROPYm ASCInvt1v1.2_sucts f e, --lSimple ͝yjt load d fo ΀ suctsr-=m To ASCII=-nm To ASCIwl cvt COMET fes ASCIfes fr fms:jOwre fm (Ը le 64 s wid e nocos ce d of le)K/Mac fm (Ը le tm wh cri turn)AUNIXI/Amigfm (Ը le tm wh le fd)Dm ASCInvtTMSDOS/P  C fm (Ը le tm wh cri turnd le fd)_-=ASCITo m=-n slly me ld e lot of ts Ѹse frs-p fe fm-- e e ts se fr wh p fesfault st "A"whh wk f mostifnot of p fes y r gramOrsts clu "CR LF tmes les" "No letms"r a mom To ASCIlks rgh first 256bytes of p feIf does fd Šr criturn le fd da aumes fe hasno le tms ( Owre fm)   tm ASCInvtTIfhev does fd CR LF aumes fehas le tms w rghV CR/LF mo ao-tect bypaдd fe t as if Ը le tm wh Šr CR LFD No tms mo ao-tect aga bypaгBNB: CR/LF mo fe does h tlyt whh not es LF CR cos - bo - d leAs lg as if fe es boشy alws cur r CR n LF wl co cctlyIf y d'ccur rblk les wl st fal COMET p feg-Ha cvs-/If ha cvs   selectдy ps gn wh a"#" act wl g wh amrsd "&".Becae of w le psдha acts m ASCInvtTly cur gn of hacimal numrunle aembl whh fe y e cvt was wrt f es "#" co se waJt case poible able "#" cvsb not neyd-Numr fm cvs-& poible ggle o act of fr numr fm cvtsf1) nvt fr C style heWh selectд cvt wl alt hacimal numrs of fm "0x" ua  l COMET "&FFFF" fm鳀K2) nvt fr postfix he t wl cvt e hacimalm ASCInvtTnumrs of fm "0h" COMET fm鳀R3) nvt fr postfix nyb t wl cvt e ny numrs of fm "0101010b" COMET "%0101010" fm鳀L4) nvt fr C style tal hacimalTOne of slly "dodgr" cvs ts cvtfr tal hacimal aumes tal numrs ewrt wh l 0 act - eg13 w 015 ݀tal blem curs wh cimal numr wrt wh l zob stl  td of cimal fmF asⴠ fault st of ggle NOT рcvtm ASCInvtT5) nvt fr postfix talc t wl cvt e tal numrs of fm "000o" COMET hacimalZ-Le Wid-4Fes whh do not h le tms nd h o lewid ecifd fault wid of 64whh ablef Taswd/Owre fesFts of ASCII->COMET nvt--lUnlike std m feslals e iifd by ˋ first ؋ lefo by Šr col sewhe-a (a               C pse evy؋ p ou fݝy fݰ So he m ASCInvtUWeڴ sryso ks f ad s y f!yMy nt ؋ f FRED wl bably vs 1.2 of QDOS p vs of DOS whh cls yr system f yô d aft - weڴI've t e gra f Dar -- sh I've pln f vy lgwheyBe s yô1Si oke (ok)jRE CHAOS - ENTROPY - PURE CHAOS - ENTROPY - PURE CHAOS - ENTROPYBWWW: http://jumr.mcc.ac.uk/~sicEMAIL: si.cke@umt.ac.uk@jumr.mcc.ac.ukSNAIL: Si oke18 Braem DriveSaleCheiʹM33 4NJ,UK@NTROPY - PURE CHAOS - ENTROPY - PURE CHAOS - ENTROPY - PURE CHAO m ASCInvt - Vs HryLv0.1: ASCI COMET cvt first vs wrtγVy u pot of almost ˋ unableLv0.2: COMET To ASCIcvt bas Chr Whe res.unftunelyChr stu d wk r(1994)Dv1.0: Ha COMET fe fm by wr ss of testfesWrote m ASCIcvtb not or w nd(June 1994)]v1.1: Wrote ASCI-> COMET cvtStl nds ˀ wrt wk rgh   fes rh ˋ tymemy basд e r memy cLg fes (as wh v1.0) c cae of cvably a mae dur cvs if y fl memyrv1.2: Fix se m bugsStl se "ft" ̀- simes as e left ݳBign m ASCInvt - ًs To Do / W LtGTo do:@Wre res ad/wre fes as y e cvtдrh st kp evy؋ memyIRre DEFB/DEFM res e f cases whh COMETw em valid (eg DEFB "heheheh"+&80DEFM "SJ"+&80)GAlt DEFM so if fls le wl   MWPl r ltiple eslMofy cm lt e wd-wrap?END OF DOCUMENTATION*SnrMt RkyMiRky Wbles (HүPre eecly - wh e y ev wre ba рme?)Gd WDn V BkelChr WheDavidLburyl PigttGeo Wkle d Mike AndwsIf I'vems ybody not lirea y! m ASCInvtTOr gz :)Evye IϪwho e (if memr rly)Andwr (Ne mes game! - d test s tt о wh fݰ)David Zambi (Yr mos eso pol times makes me w pa ) D Zambi (Brli s!!!)Paul Crpn (Hy livejt dn r_oad fr me mlve not.. as does Andwactuy..btw: ne e wh FRED Dar cor..b s h f bs wh yr BMPcvt..whh why e n ;) )Wne ales(Ok..n ..whe c of Spre 2? :) ).d k IϪ frt..ES-- eecly Md Kaz (ks f gz Liv S**t d Lyr3 -׸ aci)Elec AݾyMkMt Rnd (yrGamesmast stu brli! Kp !)l MacD dl AnrnGraham Burtη ( Pat was od)DDʹSteve Tl (tsk..give y c of ݼo щ MultiROMd wh do y do? :) )D Whme d Dek MgA ClksMk SturdyMt BlDr Andy Wr..m ASCInvtUSry if I've ftt yeb s whe..HWh've ly?bWeڴs last al ar FRED 1992 wh Ero 2(d't c Sccy mos ͝y...)I've byˤr lots of ؋sNot ly h wk ias f lots of hwe d softweb I've рUniwrt f vis azes (fr gul 2-3 pcolumn evy Yr Scl tl clos dnрfts .NETtn d mms Tod d N Us aze)d 8h held p gh Prime (wh ev ars :( lst lks ׸ tt prt n I've βable stk o )Fݝy st whe cg fݰ o lot of jects I've sttг ΉTOO lg :)uAs f as wrote gram..turn p d fd!<m ASCInvtUWeڴnd June / July 1994was ask by High Voltsoftwe (bas ChaUSA) ce r d gram games f m stt o Game Grdwk w JaguմSegSurnSy Plst al|y nd se amples of wkb unftunely (dunrprly) d h ac 쟴so seh g COMET sr fes ASCIfm f mLmd do by wr m -> ASCIhalf of cvtut joblk s d bl Ȉ r paid cb cid 'd ׸ tt fݰ o geMost le hr sry h ght was g;clos frnds k was we fݰ geAlso circumsts we slly dodgy se ws - aft 90ds y c h turf me wh so ׸ as p m ASCInvtU-fe heqSo st henRely t hold of MastDOS v2.3 sr coks Dr Andy Wrso  c wk E-DOSy ta tal ily wh MastDOSHe g me sr ASCIfm fr h CP/M aemblAft wk ofn-sp typ whh w wrts tempt g wk vs of E-DOS f Ҵg wh fnd bugs rid vs of MastDOS weevywhe - rs of c ams of hc COMET aemblc aemble MastDOS PC ϋ PDSb c't g fe fr PC - w't p Ѳkjt PDS hwewhh d't hLTod cid wre vse last nasty pt of am of wk nd g  a   } in a,(0x0f8) ld e,a cp 30 jr nz,reloop4 nextcolour  ld bc, 00F8h ld a,(hl)  y cp &ff jr z,start out (c),a  inc hl inc e nextline:! ld a,1 in a,(0f8h)  \ cp e jr z,nextcolour8 jr nextline5 ,colourtable db 1,16,17,16,1,0,2,32,34,32,2,0  db 4,64,68,64,0,255' 5a(;Example file for COMET to ASCII v1.2(;--;(C) 1995 Simon Cooke327681,0 start,colourtable,&7F ,(&FE) ,reloop;exit to basic againreloop,%00000001 ,(&0F8),30 ,reloop nextcolour ,&00F8,()&FF ,start(), nextline,1 ,(&0F8),nextcolour nextline. colourtable1,16,17,16,1,&00,2,32,34,32,2,04,64,68,64,&00,255 A MDAT "SAMDOS22"1 start:$  LD H,81 ;set up DOS page... LD L,A LD (HL),96 LD HL,324  LD (23046),HL  ՜ 3:#:"ctoa.JYN"l49152:ldcp=(18+(a49166)*3):lmag=b&4b73sK-32768+16384@*(a&4b72rK):16384@,M(4915249151+ldcp):38300,M(49152+ldcp49151+lmag):"docre.ader"l32768:32768:"comet2asci"  E osrgosrg1'2<Hmmm. Best have a cup of tea and a biccy while this works...Afadre fred aegesgXWg4Cookie here! I see you've discovered the messages...Afadregg fred11bwdrAfadre letteraegess2t.Try phoning 0372 962536 and ask for Shirley...aeges<Hmmm. Best have a cup of tea and a biccy while this works...Afadre testeratatrtesteratatrtesteratatrtestera1atrBtestera2atrtestera1atrtestera1atrtester0. Ld;Example file for COMET to ASCII v1.2  ;---  ;(C) 1995 Simon Cooke; org 32768 dump 1,01 {  start di ld hl,colourtable7 ld a,0x7f in a,(#fe) rra  rra! jr c,reloop  W, ei ret  ;exit to basic again  reloop: ld a,00000001b     ce2  EXX LD D,%01 EXX  CALL build.font8  IN A,(hmpr)  AND %00011111 OUT (hmpr),A w9 IN A,(lmpr)  LD (lmpr.store+1),A  LD (sp.store+1),SP6 LD SP,stack+2567  IN A,(vmprh) AND 127 LD (vmpr.store+1),A  IN A,(vmpr)  AND %10011111 OR %01000000 OUT (vmpr),A9 CALL queryss.system7  LD A,(vmpr.store+1)  AND 31  OR 32  OUT (lmpr),A9  CALL clear.scr    -LD BC,&03F8 ;set basic MODE 3 palette LD A,127 OUT (C),A DEC B XOR A OUT (C),A LD B,A OUT (  |C),B; LD HL,font.space2-512  LD (font.pos+1),HL6 &LD HL,6*1024 ;screen line start LD IX,topmesg  CALL print.line  To4 DI XOR A OUT (&FE),A LD BC,511 LD D,0 LD A,28 clear.chip: ~s OUT (C),A DEC A DEC B OUT (C),D INC B CP 255 JR NZ,clear.chip! m LD HL,(chars)  INC H EX DE,HL LD HL,sam.font LD BC,768  LDIR> LD HL,sam.font z LD IX,font.space EXX LD D,&FF EXX  CALL build.font8  LD HL,sam.font LD IX,font.spa    T LD HL,14*1024  LD IX,sambus CALL print.line8  LD HL,15*1024  LD IX,sammouse CALL print.line6  q CALL wait.10: CALL clear.scrQ  sp.store: LD SP,&00002 lmpr.store: LD A,&00  OUT (lmpr),A9  IN A,(vmpr)  AND %10000000  vmpr.store: OR &00 OUT (vmpr),A9  EI u XOR A LD (&5C4B),A9 HALT ;restore palette!  RET7 clear.scr:" LD HL,0  u LD DE,1  LD BC,&5FFF LD (HL),L  LDIR RET7 wait.10:# LD DE,750 wai  yqter:$ LD BC,&01F8 IN A,(C) CP 1 JR NZ,waiter9 XOR A IN A,(&FE)   w CPL  AND 31 LD C,A XOR A IN A,(&F9) CPL  AND %11100000 OR C T LD HL,17*1024  LD IX,copyright  CALL print.line8  LD HL,font.space-512 LD (font.pos+1),HL6 LD HL,8*1024 LD IX,drives CALL print.line8  LD HL,9*1024 LD IX,internalk  CALL print.line8  LD HL,10*1024  LD IX,externalk  CALL print.line8  LD HL,12*1024  LD IX,basicrom CALL print.line7      u JR NZ,lwait9 LD A,(HL)  INC HL  LD BC,&00F8 OUT (C),A JR colorloop. )q exitcolor:"  POP DE  DEC DE LD A,D OR E JR NZ,waiter9 RET  rQd print.line:" PUSH IX LD C,0  line.l:$ INC C g LD A,(IX)  INC IX BIT 7,A JR Z,line.l9  POP IX< LD B,C q LD A,64  SUB C LD L,A4 put.line:# PUSH HL  PUSH BC LD A,(IX)  ;m AND 127 INC IX LD B,8< PUSH HL LD L,A LD H,0 ADD HL,HL    ADD HL,HL ADD HL,HL ADD HL,HL  font.pos: LD DE,&0000 ADD HL,DE EX DE,HL POP HL put.char:   ' LD A,(DE) LD (HL),A  INC DE  INC L LD A,(DE) LD (HL),A  DEC L INC DE  nm RET NZ<  LD HL,line.table PUSH DE5 colorloop:" LD A,(HL)  INC HL  w CP 255 JR Z,exitcolor8 LD E,A LD BC,&01F8 lwait:$ IN A,(C) CP E      Mo POP HL  INC L INC L DJNZ put.line  RET7 build.font:" LD BC,768    bloop:$ LD A,(HL)  ;make font BOLD ADD A,A OR (HL)  INC HL LD E,A PUSH HL  PUSH DE   } LD HL,table  SRL E SRL E SRL E SRL E LD D,0 ADD HL,DE LD A,(HL)  *s EXX  AND D EXX LD (IX),A  INC IX  POP DE LD A,E AND &0F { LD HL,table LD D,0 LD E,A ADD HL,DE LD A,(HL)  EXX  AND D EXX  _ LD (IX),A  INC IX  POP HL<  DEC BC LD A,B OR C$  m JR NZ,bloop9  RET7 query.system:! LD A,(&000F) LD HL,vrsion LD B,0   k hundreds:# CP 100 JR C,lessth1008 INC B SUB 100 JR hundreds    5 lessth100:" EX AF,AF' LD A,B OR A JR Z,tens ADD A,48 LD (HL),A INC HL i PUSH DE LD DE,128 ADD HL,DE POP DE<  DJNZ put.char9  POP BC      o  tens:% EX AF,AF' LD B,0 tenloop:#  CP 10  JR C,lessth108 INC Bm SUB 10 JR tenloop2 lessth10:# EX AF,AF' LD A,B ADD A,48  LD @ (HL),A  INC HL  LD (HL),"."  INC HL EX AF,AF' ADD A,48 OR 128 LD (HL),A  xs LD B,255 check.drv2:" LD A,B OUT (243),A PUSH BC LD B,0 DJNZ $ POP BC IN A,(243) CP B JR NZ,not.drv28 DJNZ check.drv28 LD A,208 ;set up dvar for drive 2 } LD (32768+147),A7 JR check.mem1 not.drv2:# LD A,"1" LD (drives),A  LD A,"e"+128  LD (grammar),A XOR A ;clear drive 2 dvar  LD (32768+147),A/ check.mem:"  IN A,(lmpr) EX AF,AF' LD A,16+32 cg OUT (lmpr),A9 LD HL,k512: LD A,(0) LD E,A< LD B,255 ramloop  zm:# LD A,B LD (0),A LD A,(0) CP B JR NZ,k256k DJNZ ramloop5   Nu LD A,E LD (0),A; EX AF,AF'  OUT (lmpr),A EX AF,AF':  LD A,(pramtp)   <   " ׉ OR 32  OUT (lmpr),A  JP herewego-&8000 herewego:# IN A,(hmpr) OR 128 OUT (hmpr),A)  y CP 15  JR NZ,found512k7 LD A,"M" LD (internex),A  JR found512k1  k256k:   LD HL,k256 found512k:" LD A,E LD (0),A EX AF,AF'  OUT (lmpr),A9  LD DE,internalk+1  ] LD BC,3  LDIRV check.clok:" LD BC,&B0EF  LD DE,&0F000   IN A,(C) PUSH AF5 clk.llp:# OUT (C),D IN A,(C) AND 15  ;strip unused bits CP D Ti JR NZ,no.clk9 DEC D JR NZ,clk.llp8 LD E,1  no.clk:$ POP AF  5 OUT (C),A; LD A,E OR A ;finished init messages  JR Z,noclock9 LD HL,found  LD DE,nsambus  c LD BC,5  LDIR noclock: mouse_detect:! CALL mouse_scan  XOR A LD (mouse_space+6),A CALL mouse_scan  ] LD A,(mouse_space+6) AND &0F JR NZ,nomse9  LD HL,found  LD DE,nsammouse LD BC,5  LDIR   eu&  nomse: ;check for 1mb's?  IN A,(lmpr) EX AF,AF'  IN A,(hmpr)  AND 31       u0 / ;Clears allocation table to start-up values...0  LD HL,&5100 LD B,32 loopalloc:" LD A,(HL)  CP &FF   < JR Z,notthis CP &40 JR Z,notthis CP &60 JR Z,notthis CP &C0 JR Z,notthis LD (HL),&0T{ LD A,(&8000) LD HL,0 LD E,A LD C,04 memloop1:# LD A,C OUT (xmeml),A 1 LD B,255 ramloop2:# LD A,B LD (&8000),A LD A,(&8000) CP B JR NZ,nomemhere   DJNZ ramloop29  INC HL nomemhere:" LD A,E LD (&8000),A DEC C JR NZ,memloop1 w3 IN A,(hmpr) AND 127 OUT (hmpr),A9  JP herewegob herewegob:" EX AF,AF'   OUT (lmpr),A9 ADD HL,HL ADD HL,HL ADD HL,HL ADD HL,HL LD IX,numstore CALL ptnum K LD DE,externalk EX AF,AF' LD B,A EX AF,AF' LD A,4 SUB B LD B,A OR A u JR Z,nospaces8 LD A," "  spaceloop:" LD (DE),A  INC DE  DJNZ spaceloop" %y nospaces:# LD HL,numstore EX AF,AF' LD C,A EX AF,AF' LD B,0 LDIR&  .   01o  ptnum:$ EX AF,AF'  XOR A EX AF,AF'  XOR A LD DE,0  RR C   4o RR D RR C RR D LD A,D ADD H LD H,A LD A,C ADC E    LD B,A LD DE,34464 LD C,A CALL pnm2 JR pnum5y3 pnum5:$ LD A,&20 pnum5x:~q0 notthis:#  INC HL  DJNZ loopalloc1  ;Clear vectors:@ LD HL,&0000 LD (&5ADFA),HL  LD (&5ADC),HL  LD (&5ADE),HL  LD (&5AE2),HL  LD (&5AE4),HL  LD (&5AE6),HL  LD (&5AE8),HL  LD (&5AEA),HL LD (&5AEC),HL  LD (&5AEE),HL  LD (&5AF0),HL  LD (&5AF2),HL  LD (&5AF4),HL  LD (&5AF6),HL  LD (&5AF8),HL  LD (&5AFA),HL LD (nw &5AFC),HL  LD (&5AFE),HL1 ;Doesn't clear NMI (yet!); LD A,(&000F) CP 11  RET C  LD HL,73 #LD (&5B70),HL ;restore ANYIV  RET7 mouse_scan:" LD BC,&FFFE IN A,(C) LDDq HL,mouse_space  LD DE,&080F IN A,(C) AND E CP E RET NZ5 ms1:%  ] LD (HL),A  INC HL IN A,(C) DEC D JR NZ,ms1Z  RET      6i ADD &30 CALL pnt POP DE LD A,&30 RET7 pnt:% LD (IX),A  s INC IX EX AF,AF'  INC A EX AF,AF'  RET7 table:  DEFB %00 DEFB %00000011   ܩ DEFB %00001100 DEFB %00001111 DEFB %00110000 DEFB %00110011 DEFB %00111100 DEFB %00111111 DEFB %11000000 DEFB %11000011    DEFB %11001100 DEFB %11001111 DEFB %11110000 DEFB %11110011 DEFB %11111100 DEFB %111 ) topmesg: DEFM "System Auto-Boot v"  u$ LD B,0  pnum5y:$ LD C,0 LD DE,10000 CALL pnm2 pnum4:$ LD DE,1000 e CALL pnm1 pnum3:$ LD DE,100 CALL pnm1 pnum2:$ LD DE,10 CALL pnm1 pnum1:  ug LD A,L ADD &30 JR pnt4  pnm1:% LD BC,0 pnm2:% PUSH AF  Qy LD A,B LD B,0 AND A  pnm3:% SBC HL,DE SBC A,C JR C,pnm4  INC B  w JR pnm3 pnm4:% ADD HL,DE ADC A,C LD C,A LD A,B LD B,C AND A [ JR NZ,pnm5: POP DE  ADD D RET Z JR pnt4  pnm5:  P   N +DEFB 134,1,135,16,136,17,137,17+4,138,17+64 " DEFB 139,17+68,140,17+64,141,17+4  DEFB 142,17,143,16,144,1,145,01 DEFB 255,2552 palette:#  DEFB 0,16,32,48,64,18,96,120 DEFB 0,17,34,51,68,85,102,127* sam.font: MDAT "samfont"  length: EQU $-&80092  font.space: DEFS 1536 font.space2: DEFS 1536&    stack: DEFS 256  mouse_space: DEFS 9  numstore: DEFS 6= ORG 32901 DUMP 32901 JP start     DEFB version/10+48,"." DEFB version\10+48+128-  drives: DEFM "2 Disk Driv" grammar: DEFB "e","s"+1280 ( internalk: DEFM " 768k Internal RA"  internex: DEFB "M"+128  DEFM " masquerading as 256" DEFB "k"+1282 ( externalk: DEFM "8192k External RA" DEFB "M"+1282 ) basicrom: DEFM "BASIC ROM version " vrsion: DEFM "x.x"  DEFB " "+1282  sambus: DEFM "SAMBus Clock "  nsambus: DEFM "not " DEFM "foun" DEFB "d"+1282  found: DEFM "foun"   DEFB "d"+1282 + sammouse: DEFM "SAM Mouse Interface " nsammouse: DEFM "not foun" DEFB "d"+1282 0 copyright: DEFM "(c) 1995 Cookie of Entrop" DEFB "y"+128 *  k256: DEFM "256"  k512: DEFM "512"3 line.table:" &DEFB 46,1,47,16,48,17,49,17+4,50,17+64 DEFB 51,17+68,52,17+64,53,17+4 DEFB 54,17,55,16,56,1,57,0       B   \         t   j         f   x                              !!!!!!!!!! !  !!!!!!!!!! !  """""""""" "  """""""""" "  ########## #  ########## #  $5$$$$$$$$$ $  $$$$$$$$$$ $  %%%%%%%%%% %  %+%%%%%%%%% %  &'&&&&&&&&& &  &&&&&&&&&& &  '''''''''' '  '9''''''''' '  (Y((((((((( (  (((((((((( (  )))))))))) )  )G))))))))) )  *K********* *  ********** *  ++++++++++ +  +U+++++++++ +  ,},,,,,,,,, ,  ,,,,,,,,,, ,  ---------- -  -c--------- -  .o......... .  .......... .  ////////// /  /q///////// /  0000000000 0  0000000000 0  1111111111 1  1111111111 1  2222222222 2  2222222222 2  3333333333 3  3333333333 3  42444444444 4  4444444444 4  5555555555 5  5,555555555 5  6 666666666 6  6666666666 6  7777777777 7  7>777777777 7  8^888888888 8  8888888888 8  9999999999 9  9@999999999 9  :L::::::::: :  :::::::::: :  ;;;;;;;;;; ;  ;R;;;;;;;;; ;  <z<<<<<<<<< <  <<<<<<<<<< <  ========== =  =d========= =  >h>>>>>>>>> >  >>>>>>>>>> >  ?????????? ?  ?v????????? ?  @-@@@@@@@@@ @  @@@@@@@@@@ @  AAAAAAAAAA A  A3AAAAAAAAA A  B?BBBBBBBBB B  BBBBBBBBBB B  CCCCCCCCCC C  C!CCCCCCCCC C  D DDDDDDDDD D  DDDDDDDDDD D  EEEEEEEEEE E  EEEEEEEEEE E  FFFFFFFFFF F  FFFFFFFFFF F  GGGGGGGGGG G  GGGGGGGGGG G  HeHHHHHHHHH H  HHHHHHHHHH H  IIIIIIIIII I  I{IIIIIIIII I  JwJJJJJJJJJ J  JJJJJJJJJJ J  KKKKKKKKKK K  KiKKKKKKKKK K  LALLLLLLLLL L  LLLLLLLLLL L  MMMMMMMMMM M  M_MMMMMMMMM M  NSNNNNNNNNN N  NNNNNNNNNN N  OOOOOOOOOO O  OMOOOOOOOOO O OM