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: 82
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: 1432
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: 82
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: 1432
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: 398
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: 2730
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: 1432
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) 32-mal heruntergeladen

Benutzeravatar
ZX-Heinz
User
Beiträge: 1432
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: 2730
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: 1319
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
BMZ MFA, ZX80Core, AX81, ZX81, ZX81NU, Spectrum+, Harlequin, Amstrad NC100, Cambridge Z88, C64, C128D, Amiga 500, Amiga 1200, Atari Portfolio, HP200LX, IBM PC 5155, TP755c, T41, PS/2 (Model 40SX), PS/2E, Accura 101, Apple //e

Benutzeravatar
Paul
User
Beiträge: 2730
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: 1432
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: 1319
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
BMZ MFA, ZX80Core, AX81, ZX81, ZX81NU, Spectrum+, Harlequin, Amstrad NC100, Cambridge Z88, C64, C128D, Amiga 500, Amiga 1200, Atari Portfolio, HP200LX, IBM PC 5155, TP755c, T41, PS/2 (Model 40SX), PS/2E, Accura 101, Apple //e

Benutzeravatar
ZX-Heinz
User
Beiträge: 1432
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: 1432
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) 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 ;

Antworten