Przyszedł mi do głowy pomysł, gdy czytałem o Fast Loaderach dla Commodore, ale może taki program już istnieje. Pomysł to program będący "odwrotnością" ATRUtil, robiący z obrazów dyskietek jeden plik wykonywalny. Banki dodatkowej pamięci zawierałyby w tym przypadku zawartość dyskietki, czyli powstałby wirtualny dysk. Są SUPER PACKER i XRLOADER, ale bez dostępnego opisu co i jak robią trudno mi ocenić ich użyteczność w takim zastosowaniu. Taki program musiałby chyba zawierać wrapper na DOSowe funkcje odczytu plików. Gdyby go przemyśleć, to może dałoby radę umieszczać w ext RAM programy wielodyskietkowe.
EDIT: Jak widzę DOS 2.5 ma RAMDISK.SYS. Będę musiał o tym poczytać.
RAMDISK.SYS z DOS 2.5 to bardzo prosty program, który tylko formatuje ext ram (zakłada, że mamy model 130XE i zakłada ramdysk 64KB oidp) za pomocą funkcji format z handlera D: zawartego w dosie. Kiedyś się nim bawiłem i nawet zrobiłem sobie własny RAMDISK.SYS nieco krótszy (zajmował 3 sektory) - niestety wielkość ramdysku zależy od maksymalnej wielkości dyskietki obsługiwanej przez DOS 2.5 - czyli 130 Kb (ED). Zmiana tego wymaga modyfikacji samego DOSa i struktury dyskietki (VTOC, linki w sektorach i konstrukcja directory).
Edit: Obsługa atrów mogłaby być zrobiona przez handler SIO do urządzenia D: (podmiana wektorów DSKINT, DSKINIT, SIOINT w tablicy skoków $E450). Wtedy nie trzeba by modyfikować dosów, żeby z tym działać, a i narzędzia dyskowe mogłyby pracować z tym dobrze. Mankamentem tego rozwiązania jest zajęcie RAM pod ROMem (szkoda, że tablica skoków nie jest przepisywana do low RAM). Może da się to zrobić przez obsługę nowego urządzenia jakoś (na tym się kompletnie nie znam - wiem tylko, że są newdev równoległe i SIO właśnie; może by warto rozpoznać temat...)? Może wtedy nie trzeba by zajmować RAM pod ROM?
W załączniku mój własny RAMDISK.SYS z modyfikacjami DOS 2.5 bazujący na analizie standardowego RAMDISK.SYS. Używam go na emulatorze z rozszerzeniem 320K RAMBO - pod niektórymi innymi może się wieszać - zakładam na sztywno odrębność banków $83, $87, $8B, $8F, $A3, $A7, $AB, $AF więc jeśli warunek nie jest spełniony to idzie to w krzaki. Napisałem to dawno temu dysponując własnym rozszerzeniem 192K z "Moje ATARI" i używałem tego tylko z własnym komputerem :) Banki $Cx były wolne. Na pewno warto byłoby to poprawić (usiądę w wolnej chwili). Plik w formacie ATASCII (znaki końca wiersza $9B) dla QA.
Edit: Flaga $7380 ($3380 w banku) to znacznik rodzaju dosa we VTOC (sektor $168) :) Po tym rozpoznaję, czy ramdysk jest sformatowany.
1. malo ktora gra wielodyskowa komunikuje sie ze stacja dyskow poprzez standardowe dosy. mi w tej chwili zadna sesnowna gra do glowy nie przychodzi (bo o demach nie wspomniec). 2. jesli juz jakims cudem bedziesz mial tego xexa, to w jaki sposob ma zostac zrealizowany wybor, ktory dysk/xex ma byc ladowany? bez zmian w samym sofcie sie nie obejdzie.
if you require a bigger ramdisk but you still want to use DOS 2.5, I have the following things for you in my collection:
- DOS 2.71 a patched version of DOS 2.5 from former german democratic republic; think I once renamed it to DOS 2.75 and/or back to DOS 2.5 again; includes patches of 13 (or more?) serious DOS 2.5 bugs, as well as a new ramdisk driver and a new utility.com program (still uses only 90k and 130k densities, like DOS 2.5 does!)
=> to use the 256k RD-driver in this DOS simply rename RD256k.COM into Ramdisk.COM (256k only for RD-blocks 8ACE; 128k for RD-blocks AE, 64k for RD-block E)
- DOS-XF / DOS-XLE: programmed by Reitershan in 1990 (as requested by Atari Deutschland then for the XF551 drive), it is not only similar, but fully compatible to Turbo-DOS XL/XE (also by Reitershan). It uses the well-familiar DOS 2.5 DUP-menu, with a few enhancements, like e.g. 1-8 for Dir. of drive 1-8, formats 90k-360k and ramdisks up to 256k; there is even an option (P) to switch back to standard DOS 2.5; this DOS has been written with the source-code of DOS 2.5 (made available for Reitershan by Atari Deutschland), so it is as compatible as possible to DOS 2.5 but still offers some enhancements; luckily all Turbo-DOS XL/XE utilities can be used with this DOS (e.g. the Ramdisk-driver from Turbo-DOS!);
=> use the Autorun.SYS (batchfile-driver+RD-installer) on the disk or rename Ramdisk.OBJ (only RD-formatter, DUP.SYS + MEM.SAV copier) to Ramdisk.COM for ramdisks up to 256k... (note: the type of ramdisk must be configured with the program config.com; I did set it up for 8ACE type ramdisks, but you could setup any other ramdisk you like up to 256k)...