ARKOS ROM PACK V1.1
-------------------
Includes :
Arkos Rom V1.0
SNArkos V1.4



Credits :
SNArkos by Grim/Arkos.
Other RSXs and AFT by Targhan/Arkos.
CRTC Test by Offset/Futur's.
CPCBooster developed by Antitec/Dirty Minds.


Welcome in this notice about the Arkos Rom. This Rom  contains  RSXs  that  will
enhance the use of your CPC, whether you are a coder or a player !  However,  it
releases all its power of you posess the CPCBooster+ extension by  Antitec/Dirty
Minds. It will allow you to transfer any file or DSK from you PC  to  your  CPC,
and the opposite, thanks to the RSXs of this Rom, a little code  on  PC,  and  a
NULL MODEM cable connected to the COM (serial) port of your PC.  Don't  hesitate
to visit the Dirty Minds website for more information about this wonderful  (and
cheap !) extension :
www.dirtyminds.cpcscene.com


(*IMPORTANT NOTE* : PC that doesn't have a Serial Port aren't to  be  ditched  :
USB/Com adapters exist, making transfers possible ! The problem of slow transfer
came from a little trap from Windows, fortunately bypassed by Grim.


If you don't posess a CPCBooster, the Arkos ROM will surely remain  useful,  for
WriteDSK, the  integrated  CRTC  test,  the  memory  monitoring  RSXs,  and  the
AutoBoot!



Let's have a little overview of the RSXs available in this ROM :
- WriteDSK 1.2 : Allows you to transfer a DSK from a 720k MS  DOS  disc  to  the
CPC. With a CPCBooster you can transfer it directly  from  the  PC,  at  a  much
faster rate. On top of that, you can also transfer Parados discs, as the size is
no more a problem !
- ReadDSK 1.0 : Generates a DSK of the current CPC disc to the PC. All these old
DOS tools can now be thrown to the  dustbin  !  Warning,  ReadDSK  requires  the
CPCBooster.
- GetFile / SendFile : Send any file, binaire, basic or ascii,  between  the  PC
and the CPC ! Headers are detected and managed !
- SetBoot : Defines a file as 'boot'. Once done, a simple CAT (+Shift)  on  your
disc and the file will run automatically !
- Load : Loads any file (including Ascii files !) anywhere in  memory,  with  no
fear of 'memory full'. You can load in bank, even in C2 ! Coders know how useful
it is...
- Header : Always useful, gives the header of a file.
- Burn : Now famous, this RSX writes a ROM into your Ramcard.
- Memory : Dumps the memory into the screen.
- View : Visualizes the memory  in  a  graphical  way,  as  it  is  possible  in
Antoine's Super Monitor.

**** NEW ****

- SNArkos 1.4 : The developper's best friend ! Allows to transfer  any  SNApshot
created on PC with an emulator, to the CPC ! Testing  your  latest  code  almost
instantly on CPC will become a new habit ! Please have a look at  the  separated
notice fore more information.


If you're not satisfied with all this... Tell us what you  need  and  we'll  see
what we can do :).



PC Interface
------------

Before viewing in details what the RSXs can do, let's see how the  PC  interface
is done to allow the transfers with the CPC Booster. Don't be afraid, it's  very
sumple and will work with any release of Windows, XP included of course.

Along with this kit is a little PC program, called 'AFT' (Arkos File  Transfer).
You must run it before each transfer. In fact, just run it once, and let  it  in
the background as long as you use your CPC.

AFT works with the command line (I  didn't  say  MS  DOS  !  AFT  uses  Windows'
standard functions), and run like this :
AFT [/ComPort]

The option [/ComPort] parameter tells with COM Port is used.  By  default,  it's
the 1. If you need to use the 4, just type AFT /4. Simple, ain't it ?

For simplicity's sake, it's advised to put AFT in a folder that is automatically
'scanned', so that you can run it from whatever folder you are in. With XP,  you
can add a 'PATH' to do so. In the Configuration Pannel /  System  /  Advanced  /
Environment Variables, PATH Variable. Don't erase it ! Just add the folder where
you've copied AFT. Copying AFT in the  Windows's  one  should  be  enough,  this
folder being already pointed by the PATH variable.

AFT only sees files of the current folder. Relative paths aren't  supported  for
the moment.

(nice tip : to run the command line from  the  Windows  Explorer,  in  a  chosen
folder, run the Explorer / Tools / Folder options / File Type.  Select  'Folder'
and 'Advanced', then 'New'. Type the action name (I chose 'Dos Prompt'), and  by
Browsing, select  the  'cmd'  program  that  is  in  Windows/System32.  Now,  by
right-clicking on a folder in the Folder area of the Explorer, you'll be able to
'Dos Prompt' directly there. Ain't it cool ?)


Once  started,  ADR  will  test  the  COM  port.  A  success  doesn't  mean  the
communication with the CPC is done - it is tested when a RSX is run -  but  that
the COM port is useable. The CPC can now give orders ! A '*' is written  at  any
CPC command. A transfer end is noted, as well as critical errors  (can't  create
PC files, file not found...). To quit AFT, use Crtl-C.

If AFT is not started when a RSX does a request, there will be an error on  CPC.
Don't worry, press space to try again.

However, the non-detection of the CPCBooster by a RSX is critical. Don't  forget
that you must NOT plug extensions while the computer is on. Turn it  off,  check
your cables and plugs, turn on, and run the RSX.

Last note, filenames given by the CPC are short, long names must be replaced  by
the equivalent as short names (eg : thedem~1.dsk).



Now, let's have a look into what the RSXs can do.

WriteDSK and ReadDSK have their own notice, that you can find in this kit.



GetFile
-------
|GF[A],"filename",[start],[exec]

GetFile allows you to transfer a file from the PC to the CPC.  Run  AFT  in  the
folder of the file(s) you want to transfer before all.
When the file is found on the PC, the transfer begins. The CPC will tell you  if
a AMSDOS header is found. Headers are useful, because they  tell  the  filetype,
and the Start and Execution addresses. If no header is  found,  these  addresses
are fixed to &4000, and the type to Binary.
Use |GF will only create Binary or Basic file, according to the header. The  [A]
parameter means  'Ascii',  and  will  force  the  creation  of  an  Ascii  file,
headerless. If the PC file had a header, it will be ignored.
Start and Exec parameters allow to force these addresses, regardless of what  is
said in the header. Ascii files can't handle these parameters.

Examples :
|GF,"rotozoom.bin"
|GF,"gfx.scr",&c000,0
|GFA,"source.mxm"



SendFile
--------
|SF[N],"filename"

SendFile allows you to transfer files from the  CPC  to  the  PC.  The  transfer
begins when the PC manages to create the file in the current folder. By default,
the file is transfered with its header, or without if it's an Ascii file.
The [N] option means 'No Header', and will remove the header if it exists.

Examples :
|SF,"waves.bas"
|SFN,"precalcs.tab"





SetBoot
-------
|SETBOOT,"filename",0/1

Revolutionary RSX, SetBoot sets a 'bootable'  status  on  any  executable  file,
whether it's Binary or Basic. Once a file is 'bootable',  just  type  CAT  (with
Shift when pressing Enter) to see the program  start  !  Over  are  the  useless
searches on a disc, looking for the executable of a game, tool or even demo !

As you might guess, the Arkos Rom is necessary to boot.  What's  more,  the  Rom
must be set to an inferior slot to the Disc Rom (Amsdos or Parados, generally in
Rom 7). However, don't be afraid, the boot won't modify any byte in  your  file.
It's completely safe ! For more technical information about the Autoboot, please
refer to the end of this file.

The 'filename' parameter defines the file to be set as boot. The last  parameter
sets the Boot status (=1) or remove it (=  0).  This  doesn't  affect  the  file
content. It is necessary to unprotect the disc for the setting operation  to  be
successful.

A simple 'CAT' will show the name of the boot file, if the  disc  have  one.  To
Boot, type 'CAT', press Shift when pressing Enter and behold the miracle !

Finally, note that, to boot, you must ONLY type CAT in direct mode (= not  in  a
program),  with  no  instruction  behind.  Thus,  the  Boot  doesn't  harm   the
functioning of any program, but remains handy for users !
The Autoboot only works on DATA format, the most usual one (sectors &c1-&c9). If
Setboot returns a 'file not found' but the file is given by CAT, this means  the
format is  IBM,  SYSTEM  or  VENDOR.  If  some  users  requests  a  multi-format
managment, then I'll see what I can do about it !


Examples :
|SETBOOT,"DIA",1
|SETBOOT,"-ECOLE",0






Load
----
|LD,"filename",[Address],[Bank],[AdBuffer]

This RSX loads a file anywhere in memory. It  works  like  the  Basic  function,
except that it won't give any Memory Full ! However, caution not  to  erase  any
System area ! It also loads Ascii files...
Unless [Address] is set, the file is loaded  according  to  its  Start  address,
logically. If you load an Ascii file, Address is needed.

The Bank parameter allows to load a file in a bank, like &C4-&C7, &C0,  or  more
interestingly, in C2 (128k needed of course !). In this case,  it's  advised  to
set Address. 0 will point at the beginning of &c4, &4000 in &c5,  &8000  in  &c6
and &c000 in &c7. Of course, it's possible to load a file across several banks !
Loading a file in #c2 is slower because done byte by byte. Can't  have  all  the
advantages at once !

The last parameter, ADBuffer, is an additional security to protect  the  memory.
You must surely know that when you load a file, a 2kb (&800) buffer is  used  by
the Amsdos, placed in Himem-&800. This himem depends on your Roms configuration,
but can be set with the 'Memory' basic command. When you load  a  'normal'  file
(binary/basic), this buffer is actually NOT  used,  so  don't  bother  with  it.
However, it is required when loading a file byte by byte (loading an Ascii file,
on in &c2). If you load an ascii file up  in  the  memory  (&a000),  it  may  be
crushed by the buffer. In this case, move this one with ADBuffer.

Finally, note that when you load a file in #c2, whatever type it is, the  buffer
is set in the  first  64k  RAM,  because  I  open  a  bank  (&c4  to  &c7,  from
&4000-&7fff) to load the bytes one by one. So, take care no to  set  the  buffer
inside this area. As well, when you load an ascii file in  bank  (&c4-&c7),  the
bank is opened, so take care of your buffer. But in a general  way,  the  buffer
address doesn't need to be set.

Last note, a bank given in parameter is not closed when the RSX  work  is  over,
unless you opened &c2, in which case the bank is closed (&c0).


Examples :
|LD,"screen.scr"
|LD,"screen.scr",&c000
|LD,"ascii.txt",&4000,&c0,&c000
|LD,"gfx.win",0,&c2




Header
------
|HD,"filename"

Very simple yet handy RSX, gives the filetype of the  file  (0  =Basic  2=Binary
#16=Ascii), as well as the Start, Length  and  Execution  address.  Ascii  files
don't have any of these.



Burn
----
|BN,"filename",Rom

Burn is a must have, for those tired of using the Ram7  tool,  lost  on  a  disc
hidden somewhere... Enter the Rom filename, and the ROM where to  copy  it,  and
Burn will do the job ! When the rom is  loaded,  set  the  Write  mode  of  your
Ramcard to 1 and press space. When the copy is done, set it to 0. That's it !



Memory
------
|MM,[Address]

Simple and useful, Memory reads the memory and writes on  screen  the  bytes  in
hexa as well as the ascii characters corresponding.  Address  is  optional,  but
remains in memory, and is shared with |VW. Pressing a  key  Pauses/Restarts  the
scrolling, Esc exits.




View
----
|VW,[Address]

Last RSX, but handy and rather cool :). View displays the memory as  the  window
that you can resize. Very useful to find a lost graphic in memory, a font, or to
rip sprites in a game. Once again, Address is optional but remains in memory.
Here're the keys to have fun with :

Up/down/left/right : expand/shrink the window size, vertically or horizontally.
Control+Shift  +  Left/right  :  Expand/shrink   the   window   width   to   its
minimum/maximum.
Control/Shift + Left/right : Address decreases/increases. Visually, scrolls.
Shift + Up/Down : Slow vertical motion.
Control + Up/Down : Fast vertical motion.
Control+Shift + Up/Down : One page vertical motion. Depends on the height of the
window.
0,1,2 : Changes mode.
Space : Gives indications about the window : address, size, mode.
Esc : Exit.






---------------

That's it !

We hope that you'll appreciated this ROM, and that it will improve the  way  you
use your CPC.


Please also note that it's just a beginning, it's very  easy  to  integrate  AFT
into any program (explorer-like, DSK Manager, or even an emulator !). If  you're
a developper, don't hesitate  to  contact  us.  The  protocol  of  communication
between the CPC and the PC is very simple, and easily useable in any program.


SOME TECHNICAL NOTES :

CPCBooster transfer :
A transfer is done at 115200 Bauds (no Parity, 1 Bit Stop, 8 Bits Data). A  128k
transfer takes about 12 seconds.


AutoBoot :
We're very proud of this feature :). The Arkos Rom must be placed below the Disc
Rom, because our rom bypasses the RET in #BE7F, that  is  reinitialised  by  the
Disc Rom. No worry, this RET is made for this. All CAS vectors make a call  here
when executed or over. What our Rom does, is just add a little code  there  that
tests the Word in #40 (where the direct Basic  line  is  coded).  If  the  'CAT'
token, followed by a '0' (end of line) are found, then the Boot can begin.  This
token is erased so that a boot doesn't happen twice without  be  asked  to.  The
Boot flag is written in the file declaration (the first  one,  if  the  file  is
bigger than 16k), at the 13th byte (unused). Setting #AA there activates Boot, 0
(or anything else) deactivates it.

When the boot is run, it loads the &c1-&c4 sectors of the directory, looking for
a bootable file, thanks to the 13th byte of their declaration.  If  no  bootable
file is found, a RET is performed so that the CAT can continue normally. In  the
opposite case, is Shift is not pressed, the Boot filename is  written,  and  the
CAT executed normally. If Shift is pressed, the file is executed through a  RUN,
with exactly the same command as in Basic, thus allowing a  full  compatibility,
and the execution of Binary as well as Basic files.

If the &c1-&c4 sectors aren't found, then the CAT performs normally. This allows
some Parados discs to Boot (the ones with 64 entries), and avoid errors  if  the
format is unknown.

Rather cool, huh ? :)




If you've any remarks, suggestions about this Rom, write us here :
targhan@cpcscene.com
grim@cpcscene.com

Visit the Arkos website to download our productions :
www.arkos.cpcscene.com

And here's the Dirty Minds site to order your future CPCBooster :
www.dirtyminds.cpcscene.com




See you soon !
The Arkos Team.
 by Grim/Arkos.
Other RSXs and AFT by Targhan/Arkos.
CRTC Test by Offset