TForth auf dem NU?

ZX-Team Forum
Antworten
Benutzeravatar
ZX-Heinz
User
Beiträge: 1312
Registriert: 05.12.2011, 14:45

TForth auf dem NU?

Beitrag von ZX-Heinz » 27.10.2017, 10:46

Leider läuft ToddyForth (tforth.p) auf dem NU im ZX81-Modus nicht. Und zwar liegt das Problem in der Bildschirmausgabe: Offensichtlich wird die Zeichenbibliothek nicht gefunden.
Könnten NU-Experten helfen? Der Vorteil von Tforth auf dem NU: Auch Freunde, die keinen Forth-ROM auf dem Zeddy/NU betreiben könnten so auf einfache Weise ein Forth-System ausprobieren, da es einfach als p-File zugeladen wird. Der bisherige Nachteil: Microdrive und Vdrive sind nicht eingebunden. Nur TAPE ist möglich.

Läuft es eigentlich auf dem ZXmore?
Dateianhänge
tforth10.p
(4.71 KiB) 7-mal heruntergeladen

Benutzeravatar
siggi
User
Beiträge: 2140
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, tiefste Werreraa
Kontaktdaten:

Re: TForth auf dem NU?

Beitrag von siggi » 27.10.2017, 11:07

Andersrum gefragt: auf welchem System (RAM/ROM-Ausbau) läuft es denn?
Wenn es den Zeichengenerator nicht am Ende des BASIC-ROMS adressiert, sondern in einem "Mirror-Rom" (also ein Rom-Image, das durch Spiegleung bei 8-16K oder 32-48K beim 16K-Zeddy vorhanden ist), dann funzt es nicht an allen "aktuellen" Zeddies mit vollem Ramausbau 56/64K.

Gruß
Siggi
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

funkheld
User
Beiträge: 154
Registriert: 16.11.2010, 18:20

Re: TForth auf dem NU?

Beitrag von funkheld » 27.10.2017, 11:24

Nur TAPE ist möglich.
Es gibt auch das TForth 1.2 welches mit dem ZXPand läuft. Funktioniert wunderbar auch mit dem EightyOne.
Da gibt es den Befehl FLOAD und FSAVE. Es wird dann ein p-Datei erstellt auf der SD-Karte.
So kann man das TForth mit eigenen Wörtern ergänzen und dann als p abspeichern

Da es bei allen TForth auch den ASM-Source-Code gibt für den TASM , kann man es anschauen evtl sogar den ASM-Code für eigene Bedürfnisse anpassen. Man braucht da nicht in der TForth.p rumwühlen.


Gruss

Benutzeravatar
mrtinb
User
Beiträge: 60
Registriert: 30.12.2016, 07:16
Wohnort: Kolding, Denmark
Kontaktdaten:

Re: TForth auf dem NU?

Beitrag von mrtinb » 27.10.2017, 11:41

TForth 1.0 gibt es in zwei Versionen:
  • TForth10.p, der UDG verwendet
  • TForth10-std.p verwendet kein UDG
TForth 1.2 verwendet kein UDG.
Martin
ZX81, Lambda 8300, Commodore 64, Mac G4 Cube

Benutzeravatar
ZX-Heinz
User
Beiträge: 1312
Registriert: 05.12.2011, 14:45

Re: TForth auf dem NU?

Beitrag von ZX-Heinz » 27.10.2017, 13:15

@martinb: Thank you for the hint: T4th10 runs on the EightyOne with 16k RAM BUT REQIRES RAM 8k-16k!!! In contrast, T4th10-std runs also without RAM at 8k-16k. Unfortunately, the chars "!" or "@" are printed only as small squares without UDG.

@siggi: Im NU läuft das T4th10-std.p Programm, was wohl an UDG liegt, wie martinb schrieb. Hat der NU RAM in 8k-16k? Muss der extra aktiviert werden? Probier doch bitte einmal selbst. Ich musste die Dateien von Tforth... in T4th10.p und T4th10s.p umtaufen, da Vdrive nur 8 Zeichen nimmt.

Gebraucht werden auch die Zeichen "!"=Shift 1, "@"= Shift 2 , " ' " = Shift T.
Dateianhänge
t4th10s.p
(4.71 KiB) 7-mal heruntergeladen
t4th10.p
(4.71 KiB) 7-mal heruntergeladen

Benutzeravatar
siggi
User
Beiträge: 2140
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, tiefste Werreraa
Kontaktdaten:

Re: TForth auf dem NU?

Beitrag von siggi » 27.10.2017, 13:27

Klar hat der NU bei 8-16K ram. Aber:
wenn "T4th10" UDG benutzt, dann läuft es auf KEINEM realen Zeddy, denn der kann kein UDG!!!!
Zeddy kann kein UDG, NU kann kein UDG, ZxMore kann UDG, Zeddy+Chroma81 kann UDG

Nur wenn das ZX81-BASIC-ROM durch ein Forth-ROM ersetzt wird, könnte vermutlich ein realer Zeddy benutzt werden.
Oder der Zeddy muß für UDG hardwaremässig aufgerüstet werden.

Gruß
Siggi
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Benutzeravatar
mrtinb
User
Beiträge: 60
Registriert: 30.12.2016, 07:16
Wohnort: Kolding, Denmark
Kontaktdaten:

Re: TForth auf dem NU?

Beitrag von mrtinb » 27.10.2017, 14:16

"UDG 4 ZXpand" von Andy Rea ist dein Freund. Es funktioniert mit den meisten Speichererweiterungen für Bereich 8k - 16k einschließlich ZxBlast.

https://www.sellmyretro.com/offer/detai ... pand-28480
Martin
ZX81, Lambda 8300, Commodore 64, Mac G4 Cube

Benutzeravatar
siggi
User
Beiträge: 2140
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, tiefste Werreraa
Kontaktdaten:

Re: TForth auf dem NU?

Beitrag von siggi » 27.10.2017, 14:20

Kann aber nur ZWISCHEN einem Zeddy und einer externen Speichererweiterung (ZxPand, ZxBlast,...) verwendet werden ....
Nützt also nichts, wenn man schon intern alles Ram hat (NU, aufgerüstete Zeddies)
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Benutzeravatar
ZX-Heinz
User
Beiträge: 1312
Registriert: 05.12.2011, 14:45

Re: TForth auf dem NU?

Beitrag von ZX-Heinz » 27.10.2017, 14:48

Da T4th auf dem ZX81 Platform läuft, sind beim NU die Vdrive-Routinen zugänglich. Sie müssten sich also leicht als CALL einbinden lassen. Einfach dort, wo die Verzweigung für LOAD "+.." abgeht? Mir würde es genügen zu wissen, wie man ein Byte (oder ein BASIC-Program) zum Vdrive schickt und von dort empfängt. In der H4TH-Variante habe ich die gesamte Bit-Mimik mit dem Vdrive neu gemacht und nur Ollis IO-Adresse des Vdrives verwendet.

Benutzeravatar
ZX-Heinz
User
Beiträge: 1312
Registriert: 05.12.2011, 14:45

Re: TForth auf dem NU?

Beitrag von ZX-Heinz » 27.10.2017, 20:03

Ich verfolge jetzt eine - wie mir scheint - sehr sehr einfache Idee, LOAD/SAVE bei T4th auf dem NU zu realisieren. Meine (schon teilweise erprobte) Idee ist folgende:

Da T4th als ZX81-Anwendung gestartet wurde und FSVA/FLOAD ohnehin das gesamte p-File übernimmt, genügt es, aus dem laufenden T4th Programm zu BASIC zurück zu kehren und dann einfach LOAD "+NAME" zu geben.

Die "Rückkehr zu BASIC" mache ich mit dem dem neuen Kommando STOP :

HEX
CODE STOP CF C, 0C C, NEXT


Dieser Code entspricht
RST #08
DEFB #0C

Aber: Da das Programm T4th10s.p selbststartend war, wird es sofort wieder gestartet.
An die ZX81-Experten: Wie kann ich ein p-File einmalig so ändern, dass kein Autostart entsteht?
Es handelt sich um das File
Dateianhänge
tforth12.p
(4.78 KiB) 7-mal heruntergeladen

Benutzeravatar
Jens
User
Beiträge: 1049
Registriert: 23.08.2005, 13:31
Wohnort: D-31582 Nienburg/Weser
Kontaktdaten:

Re: TForth auf dem NU?

Beitrag von Jens » 27.10.2017, 20:56

Kann gerade nicht im Kochbuch nachsehen (bin auf der Fähre Richtung Schweden), meine aber, das vor dem LOAD einmal RAND USR 865 einzugeben ist (oder 867?)...
Wenn du tot bist, dann merkst du das selber nicht. Es ist nur schwer für die anderen. Wenn du blöd bist, dann ist es genauso.
Und: uıɐbɐ ʎɐqǝ uo pɹɐoqʎǝʞ ɐ ʎnq ɹǝʌǝ ɹǝʌǝu ןןıʍ ı
Der ZX81 rechnet mit allem, nur nicht mit seinem Besitzer...

Benutzeravatar
Paul
User
Beiträge: 2501
Registriert: 10.03.2010, 12:01
Wohnort: Germanys west end

Re: TForth auf dem NU?

Beitrag von Paul » 27.10.2017, 21:26

Das wäre FAST RAND USR 836
geht aber natürlich nur von Tape.
ZXPand kann den Autostart von SD unterdrücken.
Theoretisch ist zwischen Theorie und Praxis kein Unterschied.
Praktisch allerdings wohl.

funkheld
User
Beiträge: 154
Registriert: 16.11.2010, 18:20

Re: TForth auf dem NU?

Beitrag von funkheld » 27.10.2017, 22:40

Du kannst den TFORTH-Source-Code ändern und neu compilieren mit dem TASM.
Dort im ASM-Code kannst du diese Routine rausnehmen und dann compilieren.

Ich habe es jetzt so gemacht :

TFORTH12.p gestartet

Dann :
HEX
CODE STOP CF C, 0C C, NEXT

Dann : s" forth" fsave

Da hatte ich jetzt ein neues Forth auf der SD-Karte von EightyOne (ZXpand_SD_Card)

Kann jetzt mit STOP zu Basic zurück und auch wieder neu starten.

Gruss

Benutzeravatar
ZX-Heinz
User
Beiträge: 1312
Registriert: 05.12.2011, 14:45

Re: TForth auf dem NU?

Beitrag von ZX-Heinz » 28.10.2017, 11:06

funkheld hat geschrieben:
27.10.2017, 22:40
Ich habe es jetzt so gemacht :
Gruss
Danke! Das ist genau das, was ich brauche!

Benutzeravatar
ZX-Heinz
User
Beiträge: 1312
Registriert: 05.12.2011, 14:45

Re: TForth auf dem NU?

Beitrag von ZX-Heinz » 28.10.2017, 12:00

Es geht nun ein Stückchen weiter:
Tatsächlich kommt man mit der obigen, durch STOP (besser wäre BYE) ergänzten Forth-Version zu BASIC zurück, und mit RUN zu FORTH. Von BASIC kann das Vdrive wie üblich angesprochen werden. Ich habe folgendes versucht:

a) SAVE "+NAME" Dabei entsteht ein File der Länge von ca. 950 Bytes, also nicht das richtige. Nicht lauffähig. FRAGE: Welche SysVar enthält die Programmlänge? Vielleicht muss die erst gesetzt werden, da durch Forth korrumpiert?

b) SAVE als BIN-file auf Vdrive: SAVE "+:NAME:16384:5000" liefert ein File, das mit LOAD ... ein lauffähiges, allerdings etwas korrumpiertes FORTH zurückbringt.

Hier die STOP-Variante:
T4th12VD.P
(4.79 KiB) 6-mal heruntergeladen

Benutzeravatar
siggi
User
Beiträge: 2140
Registriert: 06.12.2005, 08:34
Wohnort: D, Hessen, tiefste Werreraa
Kontaktdaten:

Re: TForth auf dem NU?

Beitrag von siggi » 28.10.2017, 12:31

ZX-Heinz hat geschrieben:
28.10.2017, 12:00
FRAGE: Welche SysVar enthält die Programmlänge?
Gibt's nicht! Selbst rechnen ist angesagt. Details siehe:
http://www.worldofspectrum.org/ZX81BasicProgramming/
Chapter 27 und 28

Gruß
Siggi
Mein ZX81-Web-Server: online seit 2007
http://zx81-siggi.endoftheinternet.org/index.html

Benutzeravatar
PokeMon
User
Beiträge: 4478
Registriert: 31.08.2011, 23:41

Re: TForth auf dem NU?

Beitrag von PokeMon » 28.10.2017, 17:52

ZX-Heinz hat geschrieben:
28.10.2017, 12:00
a) SAVE "+NAME" Dabei entsteht ein File der Länge von ca. 950 Bytes, also nicht das richtige. Nicht lauffähig. FRAGE: Welche SysVar enthält die Programmlänge? Vielleicht muss die erst gesetzt werden, da durch Forth korrumpiert?
Also Standard BASIC Programme werden werden gesichert von 16393 bis zum Inhalt von E_LINE (an Adresse 16404, ein 16 Bit Pointer). Genau so wird auch bei LOAD wieder zurückgelesen. Bit 7 von CD_FLAG (16443) wird üblicherweise zurückgesetzt und Bit 6 enthält aktuell den FAST/SLOW Modus (Bit 6=1 SLOW Mode). Das Zurücksetzen von Bit 7 ist notwendig, weil die üblichen Laderoutinen in eine Funktion springen, die zunächst den Display Modus wiederherstellen. Normalerweise kümmern sich LOAD und SAVE aber selbst darum.

Weil sowohl die Systemvariablen als auch der Bildschirmspeicher mit gespeichert wird, ist das Ergebnis bei sehr kleinen Programmen deutlich größer. Alleine der Bildschirm enthält in der expanded version (>4k) 793 Bytes. Der Variablenbereich ist 116 Bytes (16509-16393). Ich weiß aber nicht, ob das mit dem TForth harmoniert resp. wie sich das TForth im Speicher einnistet. Wäre möglich, dass TForth unterhalb RAMTOP sitzt.
The display is fixed in memory at address 16530 (4092h), corresponding to first screen position (DFILE+1).
http://zx81.eu5.org/toddysofte.html
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
ZX-Heinz
User
Beiträge: 1312
Registriert: 05.12.2011, 14:45

Re: TForth auf dem NU?

Beitrag von ZX-Heinz » 28.10.2017, 20:00

@pokemon: Danke für die Nachhilfe, und ich bin ein Stückchen weiter. Ich kann in Forth das Ende des Files ermitteln ( DP @ U. ), dann mit STOP zurück zu BASIC, das "Ende des Files" in E_LINE gepokt und dann SAVE. Das ergibt ein File der richtigen Länge. Zurückladen und RUN öffnet Forth, aber dies ist etwas korumpiert: Einige Zeichen falsch uund die Kommandos sind weg. Save (ohne E_LINE) als binary von 16384 mit obiger Länge und zurückladen bringt auch ein Forth, die Kommandos sind da, aber die Zeichen sind teilweise falsch. Statt eines Zeichens kommt manchmal eine ganze Zeile. Aber es geht vorwärts!

Ein entscheidender Nachteil von Tforth liegt aber in folgendem: Man kann immer nur das Gesamtpaket speichern. Einzelne Programmteile, die gerade in Arbeit sind, lassen sich nicht auslösen. Im Gegensatz dazu sind die Programme bei H4TH einfache Textfiles, die auch am PC gelesen, editiert oder mit paste'n'copy bearbeitet werden können. Ein sehr großer Vorteil. Daher werde ich mit T4TH wahrscheinlich nicht weitermachen.

Das o.a. T4TH12VD.P kannst Du ja mal auf dem ZXmore im ZX81-modus laufen lassen, mit STOP kommst Du zu BASIC zurück.

funkheld1
User
Beiträge: 1
Registriert: 28.10.2017, 22:02

Re: TForth auf dem NU?

Beitrag von funkheld1 » 29.10.2017, 08:53

Im Gegensatz dazu sind die Programme bei H4TH einfache Textfiles, die auch am PC gelesen,
Das wird beim TFOrth auch so gemacht..
Ich schreibe die Forthprogramme mit einem Texteditor auf dem Notebook und übertrage die dann nach TForth zum Emulator.
Die Programme sind dadurch auch schön strukturiert und leicht durchschaubar.

Gruss

funkheld
User
Beiträge: 154
Registriert: 16.11.2010, 18:20

Re: TForth auf dem NU?

Beitrag von funkheld » 01.11.2017, 23:15

Wieviel Forth-Progger gibt es hier ?

Gruss

funkheld
User
Beiträge: 154
Registriert: 16.11.2010, 18:20

Re: TForth auf dem NU?

Beitrag von funkheld » 10.11.2017, 12:09

Ein entscheidender Nachteil von Tforth liegt aber in folgendem: Man kann immer nur das Gesamtpaket speichern.
Wenn du ZXPand hast, kannst du auch aus dem TForth einzelne Speicherbereiche Saven bzw kannst deine Test.fth an Adresse 32768 laden mit ZXPand und 32768 load eingeben zum compilieren.

Gruss

Antworten