Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » 8080 FigForth unter MicroDos KC 85 » Themenansicht

Autor Thread - Seiten: -1-
000
26.10.2017, 20:11 Uhr
mwd



Hallo,

habe Forth für MicroDos für den KC85 im Download Verzeichnis des KC-Klub gefunden und wollte das ausprobieren. Das Forth im Modul M026 kenne ich ziemlich gut und komme damit auch gut zurecht. Aber unter MicroDos gelingt es mir nicht, Screens auf Diskette abzulegen. Die Diskette wird dazu im Fig Forth in Blöcke aufgeteilt und in den Screen Buffern verfügbar gemacht. Sollte alles automatisch ablaufen. Irgendwie geht das aber nicht. Vielleicht sind nur die richtigen Systemeinstellungen nötig, die ich aber nicht kenne. Kann mir hier jemand mit eigener Erfahrung oder Dokumentation weiterhelfen?

Grüße,
Matthias.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
28.10.2017, 11:28 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

Welches Forth/welchen Download meinst Du genau?
https://www.iee.et.tu-dresden.de/~kc-club/DOWNLOAD/DISK162/FORTH.COM ?

das ist das original fig-forth 1.1 "8080 FIG-FORTH 1.1 VERSION A0 17SEP79"
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)

Dieser Beitrag wurde am 28.10.2017 um 14:20 Uhr von volkerp editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
29.10.2017, 19:14 Uhr
mwd



Genau den Download meine ich.
Mein Problem: Mir gelingt es nicht, Screens auf Diskette abzuspeichern. FIRST und LIMIT sind FIG-FORTH Konstanten. Zwischen beiden Adressen finden 8 Buffer Platz, das entspricht 1 Screen mit 1024 Bytes. Ich dachte, die Diskettenverwaltung findet automatisch statt. Wenn ich also z.B. Screen 1 bearbeiten will werden automatisch die zugehörigen Buffer von Diskette in den Speicherbereich zwischen FIRST und LIMIT transportiert. Und nach Änderungen auch wieder zurück (z.B. mit FLUSH oder bei Zugriff auf einen anderen Screen). Oder ist dem nicht so?

Grüße,
Matthias.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
30.10.2017, 16:33 Uhr
mwd



Konkret mache folgendes:
1. Unter MicroDos starte ich FORTH.COM; das meldet sich mit 8080 FIG-FORTH 1.1
2. Dann tausche ich die Diskette gegen eine CP/M formatierte leere Diskette aus.
3. Jetzt kann ich z.B. Screen 1 auflisten mit 1 LIST. Die Diskette arbeitet und der Inhalt (steht allerdings E5 auf jeder Speicherstelle).
4. Mit 0 1 (LINE) BLANKS schreibe ich in die Zeile 0 des ersten Screen 64 Leerzeichen. Mit 1 LIST kann ich das auflisten. Das funktioniert also. Die Änderung befindet sich allerdings nur im Buffer. Wie schreibe ich das zurück auf die Diskette?
5. UPDATE und FLUSH sollten das Speichern übernehmen, allerdings geht das nicht. Das Laufwerk schaltet sich nicht ein.
6. Mit 2 LIST zeige ich Screen 2 an. Die Buffer werden damit überschrieben und meine Änderungen an Screen 1 gehen verloren.

Irgendwie fehlt für das Wort UPDATE die Info, welcher Buffer zu aktualisieren ist. Zumindest ist das meine Vermutung. An dieser Stelle suche ich jedenfalls weiter. Leider habe ich keine spezielle Dokumentation für diese FIG-FORTH Implementierung. Ich halte mich einfach an den Standard.

Matthias.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
30.10.2017, 16:54 Uhr
mwd



Ich glaube, jetzt geht es. Ich muß nach J E D E R geänderten Zeile das UPDATE-Flag setzen. Dann werden alle Änderungen tatsächlich übernommen! Jetzt kann ich mir endlich einen kleinen Line-Editor zusammenstellen. Oder gibt es einen fertigen Editor? (Den gab es sicher mal).

Viele Grüße,
Matthias.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
31.10.2017, 09:50 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

ich musste mich erstmal reinarbeiten: figforth hatte ich nie unter cp/m mit Diskettenlaufwerk genutzt, nur die KC-Varianten mit zusätzlichen Worten zum Kassetteninterface. Und eine Doku zum Disketteninterface ist spärlich.


Quellcode:

When the system is interpreting from the keyboard, execute
  EMPTY-BUFFERS to clear the disc buffer area.  You may test the
  disc access by typing:  0  BLOCK  64  TYPE
  This should bring sector zero from the disc to a buffer and
  type the first 64 characters. This sector usually contains
  ascii text of the disc directory.
  
UPDATE                                                L0
       Marks the most recently referenced block (pointed to by
       PREV) as altered.  The block will subsequently be
       transferred automatically to disc should its buffer be
       required for storage of a different block.
      
: UPDATE     ( MARK THE BUFFER POINTED TO BY PREV AS ALTERED *)  8 58
: EMPTY-BUFFERS   ( CLEAR BLOCK BUFFERS; DON'T WRITE TO DISC *) 11 58
: DR0      0  OFFSET  !  ;                 ( SELECT DRIVE #0 *) 14 58
: DR1   07D0  OFFSET  !  ;                 ( SELECT DRIVE #1 *) 15 58
: BUFFER                 ( CONVERT BLOCK# TO STORAGE ADDRESS *)  1 59
: BLOCK         ( CONVERT BLOCK NUMBER TO ITS BUFFER ADDRESS *)  1 60      

FLUSH    ---
Write all updated buffers to disc.  This has been modified to
cope with an error in the Micropolis CPM disc drivers.





Einen kleinen Zeileneditor findest Du z.B. im Brodie "Starten mit Forth" oder im Vack.
Alternativ im Fig-Forth Installation manual. Die Datei FIGINST.ZIP ist im Internet leicht zu finden.

Oder beim F83 (lined):
https://hc-ddr.hucki.net/wiki/lib/exe/fetch.php/forth:forth83.zip
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)

Dieser Beitrag wurde am 31.10.2017 um 09:57 Uhr von volkerp editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
04.11.2017, 17:41 Uhr
mwd



Danke Volker.

Habe mir mittlerweile einen kleinen Zeileneditor programmiert (aus: "Systems Guide to fig-Forth"). Wie viele Screens passen eigentlich auf eine 800 kB große Diskette? Wenn jeder Screen 1k belegt, dann sollten das 800 sein. Das scheint aber nicht zu stimmen. Ich überlege, ob es sinnvoll ist, eine Diskette mit MicroDOS und Forth.com zu erstellen und dann ab, sagen wir Screen 50, mit Screens zu belegen. Dadurch bleiben die Dateien unberührt. Aber wo ist die Obergrenze? Und hoffentlich wird die Diskette von vorne her befüllt, sonst ist das alles Nonsens.

Matthias.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
07.11.2017, 18:08 Uhr
mwd



Hallo VolkerP,

kann ich eigentlich den Quellcode zu oben genanntem Fig-Forth bekommen? Mich interessieren da schon noch ein paar Details. Z.B. werden auf der Diskette pro Spur nur die Sektoren 2-27 benutzt. Das ist ziemlich wenig bei 80 möglichen Sektoren. Damit bekäme man nur 260 Screens auf eine Diskette mit 800 kB. Das Wort T&SCALC berechnet Spur und Sektor und benutzt die Variablen DENSITY und DRIVE. Kann man damit etwa die Diskettenbenutzung steuern?

Viele Grüße,
Matthias.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
10.11.2017, 13:12 Uhr
ralle



Ein weiteres Problem sind die definierten DIR-Einträge. Manchmal nur 128 Files möglich.
--
Gruß Ralle

Wenn Sie dazu neigen, Bedienungsanleitungen zusammen mit dem Verpackungsmaterial wegzuwerfen, sehen Sie bitte von einem derart drastischen Schritt ab!...
... Nachdem Sie das Gerät eine Weile ausprobiert haben, machen Sie es sich am besten mit dieser Anleitung und ihrem Lieblingsgetränk ein oder zwei Stunden lang in Ihrem Sessel bequem. Dieser Zeitaufwand wird Sie dann später belohnen...

aus KENWOOD-Bedienungsanleitung TM-D700
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
10.11.2017, 14:35 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

@mwd: Das ist 8080-fig-forth 1.1.

hier gibts die Dokus:

http://www.forth.org/fig-forth/contents.html

und z.B. hier die Datei

http://www.classiccmp.org/cpmarchives/cpm/Software/WalnutCD/simtel/sigm/vols000/vol070/forth110.asm

@ralle: fig-forth interessiert sich nicht für CP/M-Dateistrukturen. Die Diskette wird komplett selbst verwaltet.
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
10.11.2017, 19:41 Uhr
mwd



Danke VolkerP!

Da stand ich wohl etwas auf der Leitung. Es handelt sich also um das Original, d.h. es gab keine eventuellen Anpassungen an den KC! Dann erklären sich auch die 26 Sektoren, von denen ich oben (007) sprach. Da taucht im Quellcode der Wert 26 Sektoren pro Track für Single Density 8" Floppys auf. Mit der Variablen DENSITY=1 kann Double Density ausgewählt werden, so daß tatsächlich auf 52 Sektoren benutzt werden. Gut, sind nicht 80, aber immerhin. Möglicherweise kann man einfach durch setzen der entsprechenden Werte die Diskettenparameter anpassen. Werde ich mal versuchen, oder hat das schon jemand gemacht?

Viele Grüße,
Matthias.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
10.11.2017, 20:00 Uhr
kaiOr

Avatar von kaiOr

Teste lieber das zur Nutzung der BDOS-Funktionen umgebaute FigForth v1.1g auf:
http://www.cpm.z80.de/binary.html
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
10.11.2017, 22:24 Uhr
mwd



Super Tip !!!

Auf der Seite war ich zwar schonmal, habe dieses File aber irgendwie ignoriert. Funktioniert super. Screens befinden sich im File und nicht mehr einfach so auf Diskette (obwohl ich das auch nicht so schlecht fand).
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek