Here are the docs i have for the ARGS.EPR rom image that i sent you, i am also attaching few other files that i hope you will find interesting. Here it is, ARGS-OS 3. It is a modified ROMDisk OS by Ralf David / Klaus Peters, but Klaus Peters (distributer) agreed that Roland Buehler uses it. ARGS-OS 3 was mainly made by Roland Buehler but I did the final work, so= here is my doc: If you want to use it, you'll have to UNARC the file ARGSOS3.ARC and burn it on an 128KBit-Eprom (27128). Then either replace the old OS with it or use a switch to select between them (I hope you know how). ROMDisk-OS features: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - highspeed SIO-routine for upgraded drives (about 76000 baud) (if it fails use function key + Shift-Control-U) - mini-monitor: Start with function-key + Shift-Control-M (use with +, *, Shift-+, Shift-*, A, ESC) - supports the ROMDisk (of course) Additional ARGS-OS features: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D - supports the ARGS-Centronics-cartridge (if this cart is not fitted, the normal P:-handler is used) - includes the ZRAM-DMA routine to use expansion-Ram Disadvantages: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - The monitor-function conflicts with the Shift-Control-M command of ACTION! - No self-test (have you ever needed it?) - no international charset - any expansion using $D506 may confuse the "P:"-handler - a small bug for all users without ROMDisk: the ROMDisk-OS was mainly build to support the ROMDisk - it doesn't check wether a ROMDisk is plugged in or not. If you want to use "D2:" you'll have to put the non-existing ROMDisk to another number (function key + Control + Number). In the next weeks I won't have time to fix this, sorry. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D Important Pokes in the ARGS-OS: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D $CFC8-$CFCE (53192-53198): ASCII-String "ARGS-OS" $CFCF (53199): version (now: 3) $CFD0-CFE7 (53200-53223): jumptable $CFE8-CFFF (53224-53247): jumptable for BASIC used |normal |BASIC entries: |Hex |Decimal |Hex |Dezimal ----------------+---------------+---------------+---------------+-------- ZRam-DMA |$CFD0 |53200 |$CFE8 |53224 ----------------+---------------+---------------+---------------+-------- don't care if you don't have the ARGS-Centronics-cart: EOL <-> CR | | | | translation: | | | | Off |$CFD3 |53203 |$CFEB |53227 On |$CFD6 |53206 |$CFEE |53230 ----------------+---------------+---------------+---------------+-------- How to use the normal ZRam-DMA: ------------------------------- The ZRam-DMA uses several bytes ($D6 - $E2) in the Zeropage. If you use the routine from a language other than BASIC, you'll have to set the following variables: mode ($D6): 0 -> read from expansion memory else -> write into expansion memory ZRam-address ($D7/$D8): address in the expansion memory normal adress ($DB/$DC): address in the normal RAM length ($DD/$DE): length of the block to transfer block ($DF): mask for the chosen block (see below) Then just jump to $CFD0. How to use it with BASIC: ------------------------- No Peeks, no Pokes, just one USR-routine: A=3DUSR( 53224, ,
,
, , )=7F (in BASIC this call has to be in ONE line, of course) mode: '4' means "read from expansion Ram" '8' means "write into expansion Ram" Example: The command A=3DUSR( 53224, 4, 10000, ADR(A$), 3333, 224 ) reads 3333 Bytes from the expansion Ram (address 10000, block 224) into the string A$. How to choose a block: --------------------- With 'block' I mean a sequence of 4 banks, e.g. $E3, $E7, $EB, $EF or $23, $27, $2B, $2F The routine takes the chosen block, adds a value ($03, $07, $0B or $0F) and switches to the corresponding bank like: POKE PORTB, (block OR <3/7/$B/$F>) AND PEEK(PORTB) You don't have to worry about this if you have a XE-compatible expansion. Reasonable values for blocks are: 64K expansion RAM: $E0 (224) 256K expansion RAM: $E0 (224) $A0 (160) $60 (96) $20 (32) I am not quite sure how to use it with an 1MB Axlon-expansion - any suggestions are welcome! I think it does not work with a 4MB expansion, but if anyone needs this by all means then write to me! Users who want to use it with a Peters 1MB-expansion have to set the segment number (0-3) in $D600 (54784), if you want to use the full 1MB. =3D=3D=3D=3D=3D=3D=3D=3D Caution: =3D=3D=3D=3D=3D=3D=3D=3D - Be sure that the highest expansion-address:
+ - 1 is below $10000 (65536)! - Your screenmemory shouldn't be between $4000-$7FFF (16384 - 32767), or you'll get rubbish on your screen while using the ZRam-DMA. - I tested it with BASIC but until now not (really) with assembler! Bug reports (including errors and insufficent English in this doc), suggestions for improvement and additional features (there isn't much space left!) please send to:=7F jscharrl@ba-stuttgart.de Jochen Scharrlach Vordernbergstr. 27 70191 Stuttgart Germany or (if you are also interested in ARGS-Hardware) Roland Buehler Engelgasse 21 72348 Rosenfeld Germany .