H4TH Applications

ZX-Team Forum
funkheld
User
Beiträge: 194
Registriert: 16.11.2010, 18:20

Re: H4TH Applications

Beitrag von funkheld » 25.12.2017, 16:23

Na,da macht ihr eine frimelei mit dem Forth. Ist fast eine Vergewaltigung vom Forth.
Ihr solltet mehr in den innerern Aufbau schauen vom Forth, dann geht es einfacher.
Umständlicher geht es nimmer mit dem Code.

Es gibt schöne PDF für Anfänger in Forth.

Gruss

bokje
User
Beiträge: 117
Registriert: 02.05.2015, 15:38

Re: H4TH Applications

Beitrag von bokje » 28.12.2017, 12:56

Also ein wenig Thinking Forth (danke mrtinb!) gelesen und probiert (Seite 134):

Code: Alles auswählen

: STRING <BUILDS DUP HERE SWAP 1 + ALLOT W! DOES> ;
" IVXLCDM" STRING ROMANS
0 VARIABLE COLUMN# : ONES 1 COLUMN# ! ; : TENS 3 COLUMN# ! ; : HUNDREDS 5 COLUMN# ! ; : THOUSANDS 7 COLUMN# ! ;
: COLUMN ROMANS COLUMN# @ + ;
: .SYMBOL COLUMN + C@ EMIT ;
: ONER 0 .SYMBOL ; : FIVER 1 .SYMBOL ; : TENER 2 .SYMBOL ;
: ONERS ?DUP IF 0 DO ONER LOOP THEN ;
: ALMOST ONER IF TENER ELSE FIVER THEN ;

Code: Alles auswählen

: /MODS /MOD SWAP ;
: DIGIT 5 /MODS OVER 4 = IF ALMOST DROP ELSE IF FIVER THEN ONERS THEN ;
: ROMAN 1000 /MODS THOUSANDS DIGIT 100 /MODS HUNDREDS DIGIT 10 /MODS TENS DIGIT ONES DIGIT ;

Code: Alles auswählen

2018 ROMAN

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

Re: H4TH Applications

Beitrag von ZX-Heinz » 28.12.2017, 19:32

Funktioniert perfekt bis 3999 ROMAN. Aber 4000 ROMAN nicht mehr.

Zeichen I V _ X _ L _ C _ D _ M _ ↁ _ ↂ
Wert__ 1 5 10 50 100 500 1000 5000 10.000

bokje
User
Beiträge: 117
Registriert: 02.05.2015, 15:38

Re: H4TH Applications

Beitrag von bokje » 28.12.2017, 20:01

Das ist nicht so einfach mit ASCII zu lösen...? :roll: Vielleicht wir nutzen nur Bytes und N bis CCLV...!

Code: Alles auswählen

: NTOSTACK CODE XXXIII N N CCVII ;C ;
;)

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

Re: H4TH Applications

Beitrag von ZX-Heinz » 29.12.2017, 10:22

Die NULL wird in ROMAN das Problem werden, fürchte ich. :?

christoph
User
Beiträge: 411
Registriert: 26.08.2012, 18:16
Wohnort: Oschersleben
Kontaktdaten:

Re: H4TH Applications

Beitrag von christoph » 01.01.2018, 02:21

funkheld hat geschrieben:
25.12.2017, 16:23
Na,da macht ihr eine frimelei mit dem Forth. Ist fast eine Vergewaltigung vom Forth.
Ihr solltet mehr in den innerern Aufbau schauen vom Forth, dann geht es einfacher.
Wie wärs, wenn du uns deine Version vorstellst? Dann hab ich eine Grundlage, das so zu verstehen, wie es richtig ist.
Klug ist, wer nur die Hälfte von dem glaubt, was er hört, weise ist derjenige, der die richtige Hälfte wählt.

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

Re: H4TH Applications

Beitrag von Paul » 01.01.2018, 11:49

christoph hat geschrieben:
01.01.2018, 02:21
funkheld hat geschrieben:
25.12.2017, 16:23
Na,da macht ihr eine frimelei mit dem Forth. Ist fast eine Vergewaltigung vom Forth.
Ihr solltet mehr in den innerern Aufbau schauen vom Forth, dann geht es einfacher.
Wie wärs, wenn du uns deine Version vorstellst? Dann hab ich eine Grundlage, das so zu verstehen, wie es richtig ist.
Sehr gut gekontert Christoph
Theoretisch ist zwischen Theorie und Praxis kein Unterschied.
Praktisch allerdings wohl.

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

Re: H4TH Applications - MrZ SP0256-AL2

Beitrag von ZX-Heinz » 03.01.2018, 16:08

Inzwischen habe ein H4TH-Programm zur Generierung von Allophonen für den Plapperchip SP0256-AL2 in Echtzeit geschrieben. Notwendige Hardware: Zeddy mit H4TH-ROM und externem Vdrive, sowie MrX&MrZ.
Man kann Texte einschreiben oder mittels CLOAD auch lange Textdateien zum Vorlesen laden. Das Gesamtprogramm zur Textanalyse umfasst allerdings etwa 2500 Bytes (ca. eine A4 Seite). Demo erfolgt in Mahlerts 2018. :D

5.1.18: Korrigierte Programmdatei, jetzt selbstladend:
Dateianhänge
SPEECH4.rtf
(3.8 KiB) 142-mal heruntergeladen

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

Re: H4TH Applications

Beitrag von ZX-Heinz » 25.04.2018, 10:02

Für alle, die H4TH auf dem ZX81NU probieren wollen, gibt es ein neues ZX81NU-ROM: viewtopic.php?f=2&t=1029&p=36233#p36233

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

Re: H4TH Applications

Beitrag von Paul » 25.04.2018, 13:20

Was muss man am Peter RAM modifizieren damit das 4th funktioniert?
Liebe Grüße Paul
Theoretisch ist zwischen Theorie und Praxis kein Unterschied.
Praktisch allerdings wohl.

Benutzeravatar
tokabln
User
Beiträge: 1631
Registriert: 10.11.2013, 00:24
Wohnort: D, Berlin (Mariendorf)

Re: H4TH Applications

Beitrag von tokabln » 25.04.2018, 13:49

Hallo Paul, wenn Du mit dem Peter RAM das kleine 32kB Platinchen meinst, dann schau mal in meine aktualisierte Doku zu der Platine:

viewtopic.php?f=7&t=2735#p36114

Da habe ich beschrieben wie diese Platine auch unter H4TH funktioniert. Dort dann "nur" mit 16K.

Zu Deiner NU Frage:
2k - 16K RAM sollten es auch mit dem NU sein... allerdings meine ich nicht das Platinchen sondern den NU Speicher. Ob allerdings das NU Forth ROM auch im ZX81 funktioniert, muß Heinz beantworten. Aber für den ZX81 gibt es ja eine VDrive ROM Version (ich meine mich zu erinnern auch mit dem Bokje Patch).
Lieben Gruß Torsten
BFZ MFA, ZX80Core, AX81, ZX81, ZX81NU, Spectrum+, Harlequin, VG8010, Amstrad NC100, Cambridge Z88, C64, C128D, Amiga 500 & 1200, Atari Portfolio, HP200LX, IBM PC5155, TP755c, T41, PS/2 (Model 40SX), PS/2E, Accura 101, Apple //e

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

Re: H4TH Applications

Beitrag von Paul » 25.04.2018, 14:08

tokabln hat geschrieben:
25.04.2018, 13:49
Hallo Paul, wenn Du mit dem Peter RAM das kleine 32kB Platinchen meinst, dann schau mal in meine aktualisierte Doku zu der Platine:

viewtopic.php?f=7&t=2735#p36114

Da habe ich beschrieben wie diese Platine auch unter H4TH funktioniert. Dort dann "nur" mit 16K.
Danke Thorsten, genau das meinte ich.
Theoretisch ist zwischen Theorie und Praxis kein Unterschied.
Praktisch allerdings wohl.

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

Re: H4TH Applications: How to use math fcts from ZX81-ROM?

Beitrag von ZX-Heinz » 24.05.2018, 11:41

Für diejenigen, die H4TH auf dem ZX81NU fahren, hat bokje einen Weg gefunden, die mathematischen Funktionen des ZX81-ROMs für H4TH zugänglich zu machen. Das wurde schon in viewtopic.php?f=2&t=2766#p36416 diskutiert, ist inzwischen aber auf einem wirklich praktikablen Stand. Daher gehört dies Thema auch in diesen Thread. Der Reihe nach:

Zuerst wird der NU wie im H4TH-Modus gestartet. Dann lädt man das Programm " NU", es enthält die Befehlszeilen

: H4TH CODE 1 5F 8C 0ED 78 C7 ;C ;
: ZX81 ( BACK H4TH: USR 8215 ) CODE 21 0 60 22 4 40 1 5F 4C 0ED 78 C3 E5 3 ;C ;


Nach dem Compilieren erfolgen die Aufrufe:
H4TH <CR> und ZX81 <CR>.
Im Ergebnis befindet man sich jetzt im ZX81 Modus ("K"-cursor). MIt
RAND USR 8215
zurück nach H4TH. Von nun an sind die Funktionen nutzbar. Als Beispiel diene die Quadratwurzel:

: SQRT CODE D7 1 5F 4C 0ED 78 44 4D CD 20 15 EF 25 34 CD 8A 15 60 69 1 5F 8C 0ED 78 CF ;C ;

Nach Compilieren liefert die Befehlszeile
DECIMAL 49 SQRT U.
das Ergebnis 7. Der gößtmögliche Radikand ist 65335 (=#FFFF). Kenner des ZX81-ROMs werden in den Kommandos CD 20 15 (=CALL #1520) die Stack-BC-Routine erkennen, und in CD 8A 15 die Rückgabe FP-to-BC. Nach diesem Vorbild können SIN u.a. abgerufen werden.

Edit (13:27): EF 25 ist RST #28 DEFB #25, also der ZX81-Aufruf für SQRT.
Zuletzt geändert von ZX-Heinz am 24.05.2018, 13:28, insgesamt 1-mal geändert.

Benutzeravatar
tokabln
User
Beiträge: 1631
Registriert: 10.11.2013, 00:24
Wohnort: D, Berlin (Mariendorf)

Re: H4TH Applications

Beitrag von tokabln » 24.05.2018, 12:02

Hallo Heinz,

danke für dieses Update... aber etwas verstehe ich gerade nicht.

Heisst das, das sowohl das NU ROM als auch das ZX81 ROM gleichzeitig auf dem NU laufen?
Kannst Du bitte das Ganze bitte etwas genauer beschreiben? Ich habe gerade einen Knoten im Gehirn.

Lieben Dank
Lieben Gruß Torsten
BFZ MFA, ZX80Core, AX81, ZX81, ZX81NU, Spectrum+, Harlequin, VG8010, Amstrad NC100, Cambridge Z88, C64, C128D, Amiga 500 & 1200, Atari Portfolio, HP200LX, IBM PC5155, TP755c, T41, PS/2 (Model 40SX), PS/2E, Accura 101, Apple //e

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

Re: H4TH Applications

Beitrag von ZX-Heinz » 24.05.2018, 12:47

tokabln hat geschrieben:
24.05.2018, 12:02
Heisst das, das sowohl das NU ROM als auch das ZX81 ROM gleichzeitig auf dem NU laufen?
Hallo Torsten,
nicht gleichzeitig, sondern abwechselnd! Das kann m.W. kein Emulator! Genauer: Auf holmatics ROM gibt es 4x8k Bänke (1-4). Auf Bank2 liegt das ZX81-ROM, auf Bank3 das H4TH-ROM. Durch Ansteuerung der Hardware kann man zwischen diesen Bänken hin- und herschalten und zum Glück werden dabei die Systemvariablen wechselseitig nicht zerstört, da in verschiedenen Bereichen liegend. Mit den Eingangsbefehlen H4TH und ZX81 wird das ZX81-System einmalig initialisiert. Dann geht man mit RAND USR 8215 zurück zu H4TH. Falls nun num. Fkten aus dem ZX81-ROM gebraucht werden, wird kurz dahin geschaltet, das Ergebnis auf BC gelegt, und schließlich über HL auf den H4TH-Stack.
Gruß, Heinz

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

Re: H4TH Applications - SINUS

Beitrag von ZX-Heinz » 25.05.2018, 11:54

Hier ist der Sinus,abgeholt vom ZX81-ROM. Eingegeben wird x im Gradmass zwischen 0 und 180°. Der Ausgabewert ist dann 10000*sin(x).
Beispiel:
30 SIN <CR>, die Ausgabe ist 5012 (entspricht 0,5000 mit Fehler von 2 promille). Hier ist das Programm:

: SIN (DEGREE) DECIMAL 175 * (Xrad*10^4 on stack)
CODE D7 1 5F 4C 0ED 78 E5 1 10 27 CD 20 15 C1 CD 20 15 1 10 27 CD 20 15 EF 01 05 1C 04 34 CD 8A 15 C5 E1 1 5F 8C 0ED 78 CF ;C ;

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

Re: H4TH Applications - SINUS2

Beitrag von ZX-Heinz » 29.05.2018, 16:00

Hier ist ein verbesserter Sinus, abgeholt vom ZX81-ROM. Eingegeben wird x im Gradmass zwischen 0 und 180°. Der Ausgabewert ist dann 10000*sin(x).
Der Unterschied zum vorherigen Programm besteht darin, dass die Multiplikation mit Pi/180 im ZX81-Calculator ausgeführt wwird. Da man hier 10 stellige Genauigkeit hat, entfällt der 2 promille Fehler! Alle vier ausgegeben Stellen sind jetzt richtig. Diese Verbesserung hatte bokje vorgeschlagen, von ihm stammt auch der 5-byte-Wert für Pi/180. Hier ist der Quelltext in Assembler:

rst 10h; get stack value in HL
push iy; store stack address
ld bc,0x4c5f; switch to ZX81 ROM
in a,(c)
PUSH HL
LD BC,#2710 (=10000dec)
call 0x1520; stack-bc
POP BC
call 0x1520; stack-bc ; im Stack: Alpha|10000
rst 28h; use calculator
defb #30 read next 5 bytes onto stack
defb #EB, #0E, #FA, #35, #12 (=Pi/180); im Stack: Pi/180|Alpha|10000
defb #04 (multiply, gives radiant on stack)
defb #1C (SIN (DEFB #1C))
defb #04 (multiply by 10000 from stack)
defb #34 (#34 = end-calc)
call 0x158a; fp-to-bc
push BC
pop HL
ld bc,0x8c5f
in a,(c)
pop iy; restore stack address
rst 08h; put the result (HL) on stack

Als H4TH-Pgm sieht das wie folgt aus:

: SIN (DEGREE)
CODE D7 FD E5 01 5F 4C 0ED 78 E5 01 10 27 CD 20 15 C1 CD 20 15
EF 30 EB 0E FA 35 12 04 1C 04 34 CD 8A 15 C5 E1
01 5F 8C 0ED 78 FD E1 CF ;C DECIMAL U. ;


Ein 45 SIN <CR> sollte 7071 liefern, 90 SIN entsprechend 10000.

Vor der Verwendung nicht die einmalige Aktivierung H4TH-ZX81 und RAND USR 8215 vergessen! Siehe posting.php?mode=reply&f=2&t=2338#pr36520
Zuletzt geändert von ZX-Heinz am 31.05.2018, 10:21, insgesamt 2-mal geändert.

Benutzeravatar
Joachim
User
Beiträge: 1194
Registriert: 06.11.2004, 20:21

Re: H4TH Applications

Beitrag von Joachim » 30.05.2018, 15:01

Ihr seid echte Cracks! Super!
Viele Grüße!
Joachim


ZX80, ZX81, ZX-Spectrum, ZX96, ZX2000, ZXmore, ZX81NU, Blauer Engel, AX81

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

Re: H4TH und Zeddynet

Beitrag von ZX-Heinz » 30.04.2019, 21:00

Nur der Vollständigkeit auch in diesem Thread: Es gibt einen16k H4TH ROM (Editor: bokje) , der die Zeddynet-karte unterstützt und chats ermöglicht.

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

Re: H4TH und Zeddynet

Beitrag von ZX-Heinz » 30.04.2019, 21:01

Nur der Vollständigkeit auch in diesem Thread: Es gibt einen16k H4TH ROM (Editor: bokje) , der die Zeddynet-karte unterstützt und chats ermöglicht.

bokje
User
Beiträge: 117
Registriert: 02.05.2015, 15:38

B>>>>F<<<

Beitrag von bokje » 01.05.2019, 20:36

H4TH kann hier gut angewendet werden weil die Worte neu definiert werden können, obwohl es dann mit "ERROR R" warnt. "[" definieren war eine ganz gute BF ;) Mit diese Lösung sind " " benötigt. Mit einem Demo passt es auf einem Schirm, nur am Ende with "," benutzt ;)

Sehe auch http://forum.tlienhard.com/phpBB3/viewt ... fuck#p1586

Code: Alles auswählen

0 VARIABLE BF 10 ALLOT
BF 2 + BF !
: BF@ BF @ ;
: ++ + ;
: -- - ;
: DOT . ;
: > BF@ 1 + BF ! ;
: < BF@ 1 - BF ! ;
: , BF@ C! ;
: . BF@ C@ EMIT ;
: + BF@ C@ 1 ++ , ;
: - BF@ C@ 1 -- , ;
: [[ BF@ C@ 0= ;
' [[ INTEGER A[[
: ]] IMM A[[ CODE D1 E1 E1 D7 CD D3 07 C3 E9 17 ;C ;
' ]] INTEGER A]]
: [ IMM A]] HERE CODE D7 E5 D7 CD 92 08 ;C ;
: ] IMM CODE C3 05 18 ;C ;
: H4TH + + + + + + + + + [ - > > + < + + + + + + + + < ] > . > [ - < < + > - - > ] < - - . < [ - > > + < + + + < ] > + + + + + . 48 , . ;
bf.png
bf.png (9.78 KiB) 2332 mal betrachtet

Benutzeravatar
Joachim
User
Beiträge: 1194
Registriert: 06.11.2004, 20:21

Re: H4TH Applications

Beitrag von Joachim » 09.05.2019, 12:59

Bitte seid gnädig, ich bin Forth-Neuling.
Ich habe die H4TH-Anleitung durchgemacht und dabei erfahren, dass H4TH an einem Header bzw. Identifier erkennt, ob ein EPROM mit einem Wörterbuch oder ein RAM ab Adresse 8192 vorhanden ist. Wenn ich das im Hexeditor richtig sehe, dann ist das so beim 16K-langen H4TH. Ich verwende das H4TH, das 8KB lang ist und das VDRIVE ansprechen kann. Wäre es möglich, dass man ein Wort in den Kern implementiert, das ein Dictionary ab Adresse 8192 speichern und laden kann? Sozusagen eine Erweiterung für VLOAD und VSTORE.
Viele Grüße!
Joachim


ZX80, ZX81, ZX-Spectrum, ZX96, ZX2000, ZXmore, ZX81NU, Blauer Engel, AX81

bokje
User
Beiträge: 117
Registriert: 02.05.2015, 15:38

Re: H4TH Applications

Beitrag von bokje » 09.05.2019, 19:19

Das ist eine gute Frage! Und es ist im Prinzip auch möglich eine Art "image load" zu implementieren. Vielleicht wird es schwer die Erweiterungen neben die normalen VLOAD und VSTORE im 8K kern zu haben.

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

Re: H4TH Applications

Beitrag von ZX-Heinz » 09.05.2019, 20:48

Joachim hat geschrieben:
09.05.2019, 12:59
Wäre es möglich, dass man ein Wort in den Kern implementiert, das ein Dictionary ab Adresse 8192 speichern und laden kann? Sozusagen eine Erweiterung für VLOAD und VSTORE.
Hallo Joachim,
mit jedem Programm kann man neue Prozeduren mit einem Namen erzeugen. Diese Namen sind gleichberechtigt mit dem im ROM liegenden alten Vokabular. Nur, dass Du diese Programme als flüchtige Programme erst wieder zuladen musst. Das ist mit dem Vdrive aber kein Problem. Diese Programme liegen dann ab Adr #4000. Wo genau ist eigentlich unwichtig. Du könntest Dir das aber über
' NAME U. (Apostroph mit Shift&D)
anzeigen lassen.

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

Re: H4TH Applications - Zeddynet

Beitrag von ZX-Heinz » 17.08.2019, 10:36

bokje hat vor einiger Zeit eine H4TH-16k-Erweiterung geschrieben, die zur Ansteuerung der Zeddynet-Karte dient und chats im Zeddynet mittels H4TH ermöglicht. Das Programm arbeitet inzwischen sehr stabil. Da die Porgramme ja im H4TH-Quelltext zugeladen werden, ist eine Änderung des User-Namens oder eine Änderung der Platform (z.B. freenode.net statt irc.zxq.de o.a.) sehr leicht möglich. Das ist ein gewisser Vorteil gegenüber dem chat-Programm für der ZX81. Letzteres wiederum bringt eine 64Zeichenausgabe mit, die dem H4TH noch fehlt.

Damit gibt es inzwischen DREI mögliche Zugänge mittels Zeddy in das Netz:
1. siggis "chat" mit Zeddynet-LAN-Karte und ZX81/NU
2. bokjes 16k-H4TH-ROM und Programme für ZX81 und Zeddynet-LAN-Karte
3. holmatics PiZero-huckepack auf der UART-Karte als WLAN-Variante

Antworten