*********************************************************************************
* VZ 200 / LASER  - RAM-DRIVE 1.0 -  (C) 2007 Gernot  -  www.vz200-online.de.vu *
************************      Kurzreferenz der Befehle      *********************

&DIR				Zeigt das Inhalts-Verzeichnis der RAM-Disk an

&INIT				Lscht das Inhalts-Verzeichnis, gibt alles frei

&SAVE "[DATEINAME]"		BASIC Programm auf RAM-Disk speichern
&SAVE "[DATEINAME]",XXXX,YYYY	Maschinenprogramm auf RAM-Disk speichern

&LOAD "[DATEINAME]"		ldt die bezeichnete Datei

&MERGE "[DATEINAME]"		ein BASIC Programm von RAM-Disk zuladen

&RUN				startet die Autorun Datei "INFO" falls vorhanden
&RUN "[DATEINAME]"		startet ein BASIC-/Maschinenprogramm von RAM-Disk

&REN "[NAME-ALT]","[NAME-NEU]"	Datei umbenennen

&ERA "[DATEINAME]"		lscht die bezeichnete Datei, gibt den Platz frei

&STATUS				Freie Bytes anzeigen

Sonderbefehle :
&OLD				stellt eine mit NEW gelschte Datei wieder her
&CSAVE "[DATEINAME]",XXXX,YYYY	ein Maschinenprogramm auf Kassette speichern
&USR (XXXX)			startet Maschinenprogramm bei Adresse XXXX

	- XXXX und YYYY sind vierstellige Hexzahlen.

***************************      FEHLERMELDUNGEN      ***************************
                       erscheinen als Texte in gewohnter Weise

Ohne LASER_DOS sind die folgenden Fehlermeldungen verschlsselt :
 2: ERROR - FILE ALREADY EXISTS
 3: ERROR - DIRECTORY FULL
 7: ERROR - DISK FULL
 8: ERROR - FILE ALREADY OPEN ( Interner Fehler, drfte !nie! zu sehen sein )
12: ERROR - FILE TYPE MISMATCH
13: ERROR - FILE NOT FOUND

*********************************************************************************

Vorgeschichte
 
Mit dem VZ habe ich BASIC gelernt. Weil mir Funktionsumfang und Geschwindigkeit
nicht ausreichten, habe ich mich auch mit Maschinensprache auseinandergesetzt.
Ich entwickelte meine Sequenzen in Z80 Code mit Bleistift und Radiergummi auf
Papier, schrieb als Eingabehilfe einen BASIC Monitor, einen DATA Generator und
testete die Routinen am realen Gert. Das Speichern auf Kassette war so mhselig,
dass es zu oft unterblieb, was regelmssig mit dem Verlust der ganzen Tipparbeit
endete.
 - Damals htte ich gerne 50 oder 100 DM fr solch ein Programm ausgegeben !
Statt dessen zahlte ich knapp 1000 DM fr zwei Floppy Laufwerke und hatte danach
keinen weiteren Bedarf. Meine Art der Befehlserweiterung stammt aus dieser Zeit.
Die persnliche Herausforderung ist mir geblieben; es war schwierig. Deshalb gab
es so etwas in den letzten 25 Jahren nicht.


Warum heute ?
 
Eigentlich fehlte mir beim VZEM nur das zweite Laufwerk. Die Programmiererei ist
einfacher geworden, weil sich der Code mit Notepad schreiben lsst und der VZEM
eine ideale Entwicklungs-Plattform darstellt. Ich wollte wissen ob es berhaupt
mglich ist, ob neben dem notwendigen OS noch genug Platz fr Programme bleibt.
Mein anvisiertes Ziel lag unter 2,5 K. Ein recursiver sich selbst verschiebender,
-verndernder Spagetticode. - Also alles, was man nicht tun sollte. Selbst fr
"Alte Hasen" kaum nachzuvollziehen. Es schont antike Laufwerke und Disketten. Fr
Interessierte, die ihr Gert evtl. von ebay, oder vom Flohmarkt haben, knnte es
ntzlich sein, denn Floppy Laufwerke sind selten und einen Ersatz dafr gibt es
bisher nicht. Wer mit realen Disketten Erfahrung hat, wird die hufigen I/O ERROR
vermissen. - Wer sich nur mit den VZEM beschftigt, wird es wohl wenig verwenden.


Was es kann
 
Die Hlfte der RAM Banks der 64K Speichererweiterung im VZ/LASER ist ungenutzt.
Lediglich 2K davon beansprucht das RAM-DRIVE OS. So ergeben sich rund 30 K zum
schnellen Speichern von Programmen (Siehe bei Benchmark).

 - Microsoft knnte mit 32 K nicht mehr viel anfangen ;-)
 - RAM-DRIVE kann hier bis zu 15 Programme verwalten
 - Der BASIC Arbeitsspeicher steht uneingeschrnkt zur Verfgung
 - Es funktioniert schneller und fehlerfreier, als ein reales Laufwerk

Von den etwa 800 Programmen der Club Liste ist nur eins zu lang fr RAM-DRIVE
(354/TB). Die am hufigsten verwendeten Programme knnen hier abgelegt und mit
MAKEDISK als Image gesichert werden, um nicht alles einzeln nachladen zu ms-
sen. Es sind mit MAKEDISK Zusammenstellungen und Demo Disks mglich, die auf
jedem VZ/LASER mit 64 K Speichererweiterung laufen.
Testversionen berstehen im RAM-DRIVE sogar solche System Crashs, die eine reale
Diskette lschen wrden. Nach solch einem Absturz, oder nach einem RESET kann
mit erneutem Laden von RAM-DRIVE die virtuelle Diskette i.d.R. reaktiviert
werden.
Die Disk Kommandos entsprechen den LASER-DOS Kommandos, mssen also nicht neu
erlernt werden. Lediglich ein "&" ist voranzustellen. "&" ersetzt ebenfalls das
"B" bei BRUN, BLOAD und BSAVE. Ergnzungen sind &OLD, &MERGE, &USR() und &CSAVE.
&RUN ohne "Dateiname" startet die AUTORUN-Datei "INFO", oder gibt einen kurzen
Vorstelltext aus, falls diese fehlt.
Trotz seiner Funktionalitt beansprucht es nur 48 Byte Speicher in der
Communication Area, die aber nur sehr selten von anderen Programmen genutzt
wurde; ist also mit den meisten Programmen lauffhig.


Benchmark
 
Ich war selbst so verblfft ber die Geschwindigkeit auf meinem
realen VZ, dass ich die Zeiten mit einer Stoppuhr gemessen habe :
Eine 30K Datei aus dem Speicher in die VZEM Disk zu laden dauert ca. 32s
Das Speichern mit RAM-DRIVE auf dem VZEM ist fast gleich schnell.
- Dieselbe Datei von KASSETTE in den VZ zu laden braucht etwa 7 Minuten.
Um sie auf ein reales Laufwerk zu schreiben/laden sind rund 40s ntig.
Speichern/Laden mit RAM-DRIVE braucht unter 1 Sekunde (250 KBit/s) !!!
Auf dem VZ/LASER also mit der durchschnittlichen Lesegeschwindigkeit
eines 4-fach CDROM Laufwerks !


Was es nicht kann

Ohne 64 K geht es nicht ! Die Kommandos funktionieren bisher nur im Direct Modus.
(Mit ein paar Pokes auch in Programmen). Sequentielle Dateien knnen nicht ver-
arbeitet werden. Nur wenige andere Programme verwenden den ERROR Ausgang 79A6H,
bzw. den kleinen RAM Bereich bei 784DH. Mit solchen wird RAM-DRIVE nicht
funktionieren. Ohne LASER DOS erfolgen Fehlermeldungen teilweise nicht im
ausfhrlichem Text, sondern als Ziffern Ausgabe.
 - Nach dem Ausschalten "vergisst" der VZ/LASER alles.


Was sonst noch mglich wre

Bei verkleinerter RAM-Disk 15% schneller, und die Verarbeitung sequentieller
Dateien; mit 4 MB Speichererweiterung bis zu 126 virtuelle Laufwerke beim
VZ/LASER oder auf VZEM.
Mit einer Akku gepufferten Speichererweiterung blieben die Dateien dauerhaft
erhalten. ( Transportables Disk Laufwerk fr die Westentasche :)
Eine Aktivierung des Laufwerkes msste aber extra erfolgen, evtl. durch ein
gendertes ROM (EPROM).
Volle Funktionalitt in Programmen mit einem neuen EX-BASIC;
daran schreib ich noch :(
Vielleicht bis Mrz, VZ/LASER 25-jhriges Jubilum. Wre ein passender Anlass ...


Bekannte Fehler
 
Bereits CLOAD und CRUN nahmen keine Rcksicht auf die tatschliche Speichergrsse
des VZ/LASER. Wenn man versucht eine zu grosse Datei in zu wenig freien Speicher
zu laden, dann endet das mit einem Absturz.
Beim (B)LOAD und (B)RUN des LASER-DOS wurde dieser traditionelle Bug beibehalten,
auch deshalb habe ich ihn so bernommen.
Bei Benutzung des &MERGE Befehls kann es sehr schnell zu bergrossen Dateien
kommen, indem man z.B. zu einer 17 K Datei eine gleiche oder grssere hinzuldt.
Man sollte also wissen, was man tut !
Beim ersten Laden von RAM-DRIVE auf dem VZ kann &DIR kryptische Zeichen anzeigen,
&STATUS gibt einen falschen Wert an. Das liegt daran, das im Speicher zufllige
Muster stehen.
Lsst sich mit &INIT beheben. RAM-DRIVE lscht die Banks nicht, um Dateien aus
einer vorhergehenden Sitzung nicht zu verlieren !


Garantie - Gewhrleistung
 
Keine, - die Benutzung geschieht auf eigene Gefahr. Risiken und Nebenwirkungen
sind mir aber bisher unbekannt. Im Zweifel gilt die Salvatorische Klausel.


Shareware
 
fr VZ/LASER Computer. Gibt's das ? Jau, dies ist die erste echte Shareware :-)
Alles in dieser Zusammenstellung kann frei benutzt und soll auch kopiert werden.
Weitergabe ist gewnscht, ist aber nur mit diesem kompletten Zip File gestattet.
Die einzige Einschrnkung besteht im Kopier-Programm. MAKEDISK darf ! nicht !
weitergegeben werden. Wer das nicht akzeptieren mag, soll selber eins schreiben.
MAKEDISK zum Speichern der RAM-Disks gibt es nur auf Anfrage von mir, nach
persnlicher Registrierung und einer Banknote deines Heimatlandes mit einer "5".
(5 Rubel, 5 YEN, 5 DDR-MARK, 5 PESETAS, 5 LIRE (?), ... ) mglichst aus 1983.


In diesem zip File muss enthalten sein :
 
Rd-vz.vz		RAM-DRIVE Programm fr VZ Laser
Vz-ram-drive.wav	dto. als *.wav zum berspielen auf den VZ/LASER
Vz-rdisk.vz		RAM-DISK Demo fr VZ/LASER
Vz-ram-disk-demo.wav	dto. als *.wav zum berspielen auf den VZ/LASER

Ramdrive.txt		diese Information

Rd-vzem.vz		RAM-DRIVE Programm fr VZEM
Vzemrdsk.vz		RAM-DISK Demo fr VZEM

Achtung ! VZ=Realer VZ/LASER, VZEM=Guy Thomason's Emulator

Marburg, Mai 2007

*********************************************************************************

Historie
 
11.5.07 Neue Initialisierung fr RAM-DRIVE. Weitere Tests und Speed Messungen.
	Alles aktualisiert und zum Upload vorbereitet.
 8.5.07 Hab die RAM-DRIVE Demo zum VZ berspielt. Ist ja irre schnell ! Viel
        besser als mit VZEM. Bin selbst berrascht, wirklich sehenswert ! All die
        Mhe hat sich gelohnt. RAM-DRIVE allein startet dagegen vllig unerwartet
        auf meinen VZ/LASER in MODE(1). - Wie das jetzt ? Na, werd ich finden ...
 7.5.07 Scheint so, als wren jetzt alle Bugs behoben. Demo angepasst und
        erweitert. Noch ein paar Tests auf meinen VZ/LASER. Es reicht allmhlich.
 6.5.07 Bisher kein Feedback zu meinen Programmen, wie RAM-DRIVE, BACKITUP oder
        zu den PDF's. Werd' das Zeug uploaden, und dann ist's wohl genug. 
 5.5.07 Nach letztem Debugging neuer Fehler bei &LOAD T: aufgetreten. Auf dem VZ
        assembliert. Im Quellcode waren nur 2 Byte zu ndern. Null Problemo,
        alles funktioniert wie erwartet. Die RAM Banks des VZ enthalten nach dem
        Einschalten zufllige Bitmuster, macht nix. Rund 17 Byte frei, aber keine
        Lust mehr auf weitere Features.
 4.5.07	File TYP "I:" fr Images eingefhrt (B: mit Startadresse 7000H). Doch
        wieder einen kleinen Bug in der Speichersequenz gefunden. -Weiter testen.
 1.5.07 Carry Fehler und andere Macken in &LOAD beseitigt. Scheint, als ob alle
	Bugs behoben wren. Jetzt 9 Byte brig ? Wird Zeit fr 'ne richtige Demo.
30.4.07 Der 08:ERROR sollte endgltig behoben sein. &LOAD startet nun BASIC Files
        und ich weiss nicht warum, alles andere jetzt sehr stabil.
        Bald Testlauf auf realem VZ/LASER.
29.4.07 Mehrere Kommandos pro Zeile sind jetzt mglich. Dazu einiges gendert.
        Alles wird gut. Nun mit Vorstelltext. Echt cool :) Bei Optimierung wieder
        ein paar neue Bugs eingebaut - ahgrrr.
28.4.07 Noch einmal etwa 70 Byte freigeschaufelt. Alles ist mchtig komplex
        geworden. Das Feintuning nervt allmhlich.
24.4.07 1. Ausdruck 15 Seiten, 1050 Zeilen, rund 4.5 m Papier.
22.4.07 berarbeitung der Beschreibung, MERGE-Token Anpassung fr Obrist, Olney,
        G.Wolf. Russel & Harrison's fehlt mir. Kein einziges Byte mehr frei.
21.4.07 &CSAVE fertig, dadurch 24 Byte zu lang; Optimierung war kein Problem.
17.4.07 Demo Upload. (kostete mich 15 Euro, nicht das Handy, ... vodafone)
15.4.07 Debugging. Fehlermeldungen auch ohne LASER-DOS. Demo ergnzt auf 24 K.
14.4.07 Vorbereitung fr CSAVE auf Cassette, so kam es zu &USR. Fehlerroutinen,
        Optimierung, letztes (?) Byte rauspressen.
12.4.07 Demo Upload 800/GS fr VZEM vorbereitet.
11.4.07 Jetzt auch &SAVE"NAME",xxxx,yyyy.
        Bischen rumgespielt: &DIR und &RUN sind vom Programm aus mglich ! 
 6.4.07 &MERGE funktioniert. Es finden sich immer neue Bug's.
 1.4.07 &ERA fertig. &RUN ohne Dateiname startet das File "INFO", wenn vorhanden.
22.3.07 Erste Testversion in VZ-ALIVE vorgestellt. &MERGE fehlt noch,
        &ERA unfertig.

Februar 2007 - Konzeptionelle berlegungen und INIT Routine.