Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
z9001:software:disk_os [2012/02/25 13:33] – [Programme] volkerpz9001:software:disk_os [2023/09/30 12:42] (aktuell) – [Beispiel-Session] volkerp
Zeile 10: Zeile 10:
  
 Bei der vorliegenden Version wird eine 2MB- [[z9001:cpm:raf2008|]] Bei der vorliegenden Version wird eine 2MB- [[z9001:cpm:raf2008|]]
-auf Port 24h korrekt erkannt und als Massenspeicher genutzt. +auf **Port 20h** korrekt erkannt und als Massenspeicher genutzt. 
-Geplant ist eine komplette Unterstützung auch von Floppy-Disketten. Vorbereitet ist dafür schon alles.+Ebenso ist es möglich, auf Floppy-Disketten zu schreibenUnterstützt werden alle Standardformate 624K, 720K (MSDOS), 780K, 800K.
  
 Das ganze basiert auf CP/M. Ein originales [[cpm:cpa|]]-BDOS wurde genutzt und ein passendes BIOS, das im Wesentlichen auf Diskettenfunktionalität reduziert ist, geschrieben. Das ganze basiert auf CP/M. Ein originales [[cpm:cpa|]]-BDOS wurde genutzt und ein passendes BIOS, das im Wesentlichen auf Diskettenfunktionalität reduziert ist, geschrieben.
Zeile 28: Zeile 28:
 ===== Laden ===== ===== Laden =====
  
-Die derzeitige Testversion belegt den Speicherbereich von 4000h-57ffh. Das ist ein Kompromiss, um trotzdem mit BASIC, Asssembler u.v.a. Programmen testen zu können, ohne ständig auf EOR oder anderes achten zu müssen. Der Speicher für Treiber oder andere Systemtools bleibt frei, der Speicher am RAM-Ende (unterhalb C000h) steht auch zur Verfügung.+Die derzeitige Version **DOS4** belegt den Speicherbereich von 4000h-57ffh. Das ist ein Kompromiss, um trotzdem mit BASIC, Asssembler u.v.a. Programmen testen zu können, ohne ständig auf EOR oder anderes achten zu müssen. Der Speicher für Treiber oder andere Systemtools bleibt frei, der Speicher am RAM-Ende (unterhalb C000h) steht auch zur Verfügung.
  
-Geplant ist zukünftig die Verwendung des Shadow-RAMs für die Software.+Die Version **DOSX** benötigt ein 64K-RAM-Modul, arbeitet dafür komplett im Shadow-RAM. Der gesamte Speicher bis BCFF ist frei verfügbar! Diese Version wird vom Mega-Flash-Modul direkt in den Shadow-RAM geladenVorhandende Programme im Speicher (z.B. große Basic-Programme > 12K) werden dabei nicht überschrieben!
  
-In der aktuellen Software zum [[z9001:module:megaflash|]] wird der Treiber mit +In der aktuellen Software zum [[z9001:module_sonstige:megaflash|]] wird der Treiber mit 
  
-  DOS+  DOS4 bzw. DOSX
  
-gestartet. (s. Bild)+gestartet. (vglobiges Bild)
  
-Tipp: Man sollte die RAM-Disk zuerst unter CPM initialisieren. Dann kann man die Disk sowohl unter CP/M als auch im OS nutzen.+Tipp: Man sollte die RAM-Disk zuerst unter CP/M initialisieren. Dann kann man die Disk sowohl unter CP/M als auch im OS nutzen.
  
  
 ===== Befehle ===== ===== Befehle =====
  
-| **DRIVE** lw: | Laufwerk wechseln (derzeit gibt es nur A:) |+| **DRIVE** lw: | Laufwerk wechseln (A:, B:, P:) |
 | **DDIR** [muster] | Inhalt anzeigen (wie DIR unter CP/M) | | **DDIR** [muster] | Inhalt anzeigen (wie DIR unter CP/M) |
 | **DDELETE** muster | Datei(en) löschen (wie ERA unter CP/M) | | **DDELETE** muster | Datei(en) löschen (wie ERA unter CP/M) |
 | **DOS** | "disk OS", Nutzen der DISK-Routinen im normalen OS | | **DOS** | "disk OS", Nutzen der DISK-Routinen im normalen OS |
 | **CAOS** | "cassette OS", Nutzen der Kassettenroutinen im normalen OS | | **CAOS** | "cassette OS", Nutzen der Kassettenroutinen im normalen OS |
-| **SAVE** fname[.typ] aadr,eadr[,sadr] | das ist das normale OS-SAVE, funktioniert aber auch mit Disk |+| **DDUMP** muster | Datei blockweise anzeigen (nur in DOSX enthalten) | 
 +| **OS-SAVE** fname[.typ] aadr,eadr[,sadr] | das ist das normale OS-SAVE, funktioniert aber auch mit Disk |
  
 Im Z9001-OS kann mit "DOS" bzw. "CAOS" zwischen Diskette und Kassette umgeschaltet werden. Im Z9001-OS kann mit "DOS" bzw. "CAOS" zwischen Diskette und Kassette umgeschaltet werden.
  
 +===== Start =====
 +
 +Mit
 +  HELP DOS
 +gibt es eine kurze Hilfe.
 +
 +
 +DOSX unterstützt 2 Floppy-Laufwerke (robotron) und die RAF2008.
 +Nach dem Start von DOSX mit 
 +  DOSX
 +ist die RAM-Floppy aktiv. Mit
 +  DRIVE A:
 +wird auf Floppy A: umgeschaltet.
 +
 +Mit LOAD und SAVE wird nun wie mit Kassette gearbeitet, unter BASIC entsprechend mit CLOAD/CSAVE.
  
 ===== Programme ===== ===== Programme =====
Zeile 66: Zeile 82:
 von Diskette (incl. Feldern und ASCII). von Diskette (incl. Feldern und ASCII).
  
-Im aktuellen [[z9001:module:megaflash|]] ist dieses BASIC bereits enthalten. Außerdem wird versucht, ein nichtgefundenes Kommando von Diskette zu laden! (Im originalen OS wird in diesem Fall intern CLOAD aufgerufen. Es erscheint dann das bekannte "start tape". Aber leider ist CLOAD mit internen Aufrufen und nicht mit CALL 5-Funktionen implementiert, so dass hier leider keine Diskettenabfrage erfolgt. Für einen 100%-igen Kassettenersatz müsste man die Routinen MAREK und KARAM aus dem Z9001-OS ersetzen. Das geht aber nur, wenn man den System-ROM gegen einen EPROM mit einem angepasstem OS austauscht.)+Im aktuellen [[z9001:module_sonstige:megaflash|]] ist dieses BASIC bereits enthalten. Außerdem wird versucht, im neuen CCP des Moduls ein nichtgefundenes Kommando von Diskette zu laden! (Im originalen OS wird in diesem Fall intern CLOAD aufgerufen. Es erscheint dann das bekannte "start tape". Aber leider ist CLOAD mit internen Aufrufen und nicht mit CALL 5-Funktionen implementiert, so dass hier leider keine Diskettenabfrage erfolgt. Für einen 100%-igen Kassettenersatz müsste man die Routinen MAREK und KARAM aus dem Z9001-OS ersetzen. Das geht aber nur, wenn man den System-ROM gegen einen EPROM mit einem angepasstem OS austauscht.)
  
-**ZMxx** funktioniert nicht mit Diskette. Die Punch/Reader-Treiber für +**ZMxx** funktioniert original nicht mit Diskette. Die Punch/Reader-Treiber für Kassette springen leider direkt in den Monitor und nutzen nicht CALL 5. Um das hinzubekommen, müsste ich den Monitor patchen.
-Kassette springen leider direkt in den Monitor und nutzen nicht CALL +
-5. Um das hinzubekommen, müsste man den Monitor patchen.+
  
 +**KCPASCAL** funktioniert nicht mit Diskette. Ursache dafür ist einfach, dass KCPASCAL den gesamten Speicher von 300h bis BFFFh belegt. Da bleibt kein Platz mehr für ein BDOS-Wrapper.
 +
 +**PRETTYC** funktioniert nicht komplett mit Diskette. Das Speichern funktioniert, doch beim Laden wird leider nicht OPENR genutzt. PrettyC verfügt über einen Modifikations-Selbstschutz, ein Patchen ist nicht ohne weiteres möglich.
  
 ===== Internes ===== ===== Internes =====
Zeile 77: Zeile 94:
 Die Programme werden auf der Diskette im KCC-Format abgespeichert, d.h. mit Kopf-Block, gefolgt vom Speicherabzug. Die Programme werden auf der Diskette im KCC-Format abgespeichert, d.h. mit Kopf-Block, gefolgt vom Speicherabzug.
  
-Die Endung COM wird dabei in KCC geändert, damit es nicht zu Verwechslungen mit CP/M-Programmen kommt.+Die Endung .COM wird dabei in .KCC geändert, damit es nicht zu Verwechslungen mit CP/M-Programmen kommt. d.h., OS-COM Programme werden als .KCC auf der Diskette gespeichert und beim Laden von OS-COM-Programmen wird nach einer .KCC-Datei gesucht. Bei der Arbeit im OS merkt man von diesen internen Umbenennungen nichts, es ist hier ganz normal .COM zu schreiben!
  
 Mit Diskette funktionieren nur Programme, die für die Kassettenarbeit die BOS-Call 5-Routinen OS-konform nutzen. D.h., zum Schreiben muss OPENW, WRITS, und CLOSW genutzt werden! Fehlt CLOSW, wird in den neuen BDOS-Call 5-Funktionen versucht; dies zu erkennen und die Datei ordnungsgemäß auf Diskette zu schließen. Das ist aber noch ungetestet! Mit Diskette funktionieren nur Programme, die für die Kassettenarbeit die BOS-Call 5-Routinen OS-konform nutzen. D.h., zum Schreiben muss OPENW, WRITS, und CLOSW genutzt werden! Fehlt CLOSW, wird in den neuen BDOS-Call 5-Funktionen versucht; dies zu erkennen und die Datei ordnungsgemäß auf Diskette zu schließen. Das ist aber noch ungetestet!
Zeile 83: Zeile 100:
 Um herauszufinden, wie ein Programm auf Kassette schreibt, gibt es im Mega-Flash ein kleines Hilfsprogramm CALL5DBG. Dieses ist nach DOS/CAOS neu zu starten. Es werden die Kassettenfunktionen mit Namen ausgegeben, gefolgt von DMA, BLNR und LBLNR (Stand vor Aufruf der eigentlichen Funktionen). Um herauszufinden, wie ein Programm auf Kassette schreibt, gibt es im Mega-Flash ein kleines Hilfsprogramm CALL5DBG. Dieses ist nach DOS/CAOS neu zu starten. Es werden die Kassettenfunktionen mit Namen ausgegeben, gefolgt von DMA, BLNR und LBLNR (Stand vor Aufruf der eigentlichen Funktionen).
  
 +===== Beispiel-Session =====
 +
 +Hier wird ein [[z9001:module_sonstige:kombimodul|]] genutzt. Das Modul hat eine Floppy angeschlossen, auf dem Modul ist eine RAM-Disk.
 +DOSX arbeitet im Shadow-RAM und belegt nur den Hauptspeicherbereich BD00..BFFF. Bei BASIC wird dieser Bereich beachtet, man muss kein memory end eingeben.
 +
 +Disk formatieren, aktives Laufwerk setzen, BASIC-Programm aus Disk speichern, Forth laden und mit SAVE-SYSTEM auf Disk speichern:
 +
 +<code>
 +robotron  Z 9001                                  Meldung nach RESET 
 +
 +KOMBI-MODUL                                       Startmeldung Mega-Flash-Software
 +XOS
 +>VER                                              Version anzeigen
 +(c) V.Pohlers, Neustadt i.H., 10/5/2021
 +>INITKC                                           Diskette formatieren
 +
 +
 +MKD 8/88: INITKC fuer KC 85/87
 +
 +Formatieren im LW (A/B) :
 +
 +Diskette stecken:  <ENTER>
 +
 +
 +WARNUNG !!!
 +Alle Dateien auf der Diskette werden gel
 +oescht ! (J/N) :
 +
 +
 +Formatieren von Spur : 79
 +Noch einmal ? (J/N) : >                
 +
 +>DOSX                                             Treiber für Diskette starten
 +SHADOW DISK OS V.Pohlers 5/7/2021
 +  A:, B: Floppy
 +  M: RAF Kombi-Modul 406k
 +current drive: M                                  die RAM-Floppy des Kombi-Moduls ist Standard-Laufwerk
 +>DRIVE A:                                         Umschalten auf Laufwerk A:
 +
 +>DDIR                                             Disketteninhalt
 +
 +NO FILE                                           Disk ist leer
 +>BASIC                                            BASIC starten
 +
 +HC-BASIC
 +
 +MEMORY END ? :                                    einfach ENTER
 +46830 BYTES FREE                                  BASIC beachtet die Speichernutzung durch USBX
 +
 +OK
 +>10PRINT"HALLO"                                   kleines Programm
 +>CSAVE"HALLO                                      speichern (auf Disk)
 +OK
 +>DIR                                              DIR in BASIC
 +
 +A: HALLO    ZBS
 +OK
 +>NEW
 +>CLOAD"HALLO                                      Programm laden (jetzt von Disk)
 +
 +___HALLO   FILE FOUND
 +OK
 +>
 +>RUN                                              Programm starten
 +HALLO
 +OK
 +>BYE                                              BASIC beenden
 +
 +XOS                                               Mega-Flash-Software meldet sich
 +SHADOW DISK OS V.Pohlers 5/7/2021                 der DOSX-Treiber meldet sich
 +  A:, B: Floppy
 +  M: RAF Kombi-Modul 406k
 +current drive: A                                  Laufwerk A: ist weiterhin aktiv
 +>FORTH                                            FORTH starten (von Modul) 
 +...
 +SAVE-SYSTEM TEST                                  System speichern unter neuem Namen
 +
 +
 +                                 ok
 +BYE
 +XOS
 +>DDIR                                             Disketteninhalt anzeigen
 +
 +A: HALLO    ZBS : TEST     KCC                    ein BASIC-Programm, ein OS-Programm
 +>                                                 (Endung KCC statt COM wegen CP/M, s. Doku)
 +
 +>TEST                                             und Programm von Disk laden und starten
 +...
 +Z80 FORTH 1.3 (Z9001)
 +AG FORTH
 +Th. Beierlein / V. Pohlers
 +                                        
 +BYE
 +XOS
 +SHADOW DISK OS V.Pohlers 5/7/2021
 +  A:, B: Floppy
 +  M: RAF Kombi-Modul 406k
 +current drive: A
 +>
 +</code>
  
  • z9001/software/disk_os.1330176816.txt.gz
  • Zuletzt geändert: 2012/02/25 13:33
  • von volkerp