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
Letzte ÜberarbeitungBeide Seiten der Revision
z9001:basic [2011/04/12 06:32] volkerpz9001:basic [2013/06/12 06:59] – Link mit z9001:module:192k_modul geändert zu z9001:module_sonstige:192k_modul volkerp
Zeile 96: Zeile 96:
 Die Anweisungen PRINT#, LIST#, LOAD#, INPUT# sind mit den Gerätenummern 0 ,2 ,3 und CLOAD, CLOAD*, CSAVE, CSAVE* mit beliebigen zugewiesenen Peripheriegeräten funktionstüchtig, wobei die "BASIC-üblichen" und die "Betriebssystem- üblichen" Aufzeichnungsverfahren anwendbar sind. Eine durchgehende Behandlung von OPEN und CLOSE ist dabei gewährleistet. Bei der Anwendung von Treiberprogrammen für serielle Schnittstellen (V24, IFSS) oder parallele Schnittstellen (CENTRONICS) mit verschiedenen Protokollen ist Datenaustausch mit gleichen und anderen Rechnern möglich. Die Anweisungen PRINT#, LIST#, LOAD#, INPUT# sind mit den Gerätenummern 0 ,2 ,3 und CLOAD, CLOAD*, CSAVE, CSAVE* mit beliebigen zugewiesenen Peripheriegeräten funktionstüchtig, wobei die "BASIC-üblichen" und die "Betriebssystem- üblichen" Aufzeichnungsverfahren anwendbar sind. Eine durchgehende Behandlung von OPEN und CLOSE ist dabei gewährleistet. Bei der Anwendung von Treiberprogrammen für serielle Schnittstellen (V24, IFSS) oder parallele Schnittstellen (CENTRONICS) mit verschiedenen Protokollen ist Datenaustausch mit gleichen und anderen Rechnern möglich.
  
-Mir sind bislang 2 verschiedene Revisionen dieser Erweiterung bekannt: Aus dem [[z9001:module:192k_modul|]] und von einer Kassette. Beide verzichten auf den RENUMBER-Befehl, enthalten dafür Blockungsalgorithmen für die Kassettenarbeit.+Mir sind bislang 2 verschiedene Revisionen dieser Erweiterung bekannt: Aus dem [[.:module_sonstige:192k_modul|]] und von einer Kassette. Beide verzichten auf den RENUMBER-Befehl, enthalten dafür Blockungsalgorithmen für die Kassettenarbeit.
  
 ===== CP/M-BASIC ===== ===== CP/M-BASIC =====
Zeile 152: Zeile 152:
 | basic-2le.rom | BASIC-Erweitwerung von L.Elßner, Version 1.00 |  | basic-2le.rom | BASIC-Erweitwerung von L.Elßner, Version 1.00 | 
 | basea.rom | BASIC-Erweitwerung von L.Elßner, vermutlich ältere Version (kleine Unterschiede in den Merkzellen für die Kassettenroutinen) |  | basea.rom | BASIC-Erweitwerung von L.Elßner, vermutlich ältere Version (kleine Unterschiede in den Merkzellen für die Kassettenroutinen) | 
 +
 +
 +===== Patch BASIC86 =====
 +
 +um das o.a. Problem beim BASIC86, einen sinnlosen Kopfblock zu schreiben, zu umgehen, gibt es einen kleinen Patch. Der kleine Nachteil dieser Lösung ist, das jetzt wieder direkt interne Monitoraufrufe getätigt werden.
 +
 +-> weitere Patches s. Assemblerquellcode bm608p.asm
 +
 +<code>
 +; Patch in BASIC-Erweiterung BM608 für write tape
 +; nicht OPENW nutzen, das (schreibt nur sinnlosen (!!!) Block 0
 + org 0E68Bh
 +                call    0F593h
 +                ld      a, 1
 +                ld      (6Bh), a ; BLNR
 +                nop
 +                nop
 +;
 + org 0E6EEh
 +                push    de
 +                call    sub_E7D8
 +                pop     de
 +
 +
 + org   0e7d8h
 +sub_E7D8:       ld      a, (6Bh) ; BLNR
 +                dec     a
 +                jp      nz, 0F46Fh ; wenn nicht Block 1
 +                ld      bc, 1770h ; sonst: langer Vorton
 +                jp      0F472h ; fuer ersten Block
 +</code>
  
    
Zeile 241: Zeile 272:
  
 ===== Internas ===== ===== Internas =====
 +
 +7.8.2012: Das Zahlenformat des BASIC entspricht dem SKR-Standardformat.
 +s. Lampe/ Jorke/ Wengel: Algorithmen der Mikrorechentechnik, VEB Verlag Technik, Berlin, 1983, S. 82ff.
 +
  
 <code> <code>
Zeile 448: Zeile 483:
  
 Es gibt keine direkte Möglichkeit zu ermitteln, ob es sich um  Es gibt keine direkte Möglichkeit zu ermitteln, ob es sich um 
-ein Zahlen- oder Stringfeld handelt. Auch die Größe ist nicht bestimmbar :-(+ein Zahlen- oder Stringfeld handelt. Auch die Größe ist nicht direkt bestimmbar 
 +(mit ein paar Programmtricks geht es aber -> total commander plugin listtap2 zeigt auch Felder an!)
  
 84 85 7C 3F A$(0)       je 4 Byte pro Feldwert 84 85 7C 3F A$(0)       je 4 Byte pro Feldwert
  • z9001/basic.txt
  • Zuletzt geändert: 2021/05/25 05:44
  • von volkerp