ZeddyNet für H4TH

ZX-Team Forum
Antworten
bokje
User
Beiträge: 111
Registriert: 02.05.2015, 15:38

ZeddyNet für H4TH

Beitrag von bokje » 10.02.2019, 19:46

Mein Projekt für Mahlerts, denn es ist noch nicht fertig:

Code: Alles auswählen

WINIT
HEX 28 05 19 60 01 01 HW! 
DECIMAL 10 10 10 53 IP! 
255 255 255 0 SM! 10 10 10 18 GW!
30000 PORT
: GET 80 DPORT 10 10 10 55 CONNECT
BEGIN WSR@ DUP 0 = ABORT" CANNOT CONNECT " 23 = UNTIL    
CR>C " .4TH HTTP/1.1" + SWAP # 5 0W> + " GET /WEBDAV/" + C>W SEND
CR>C " HOST: H4TH" + C>W SEND
CR>C CR>C + " CONNECTION: CLOSE" + C>W SEND
BEGIN WSR@ 28 = UNTIL CLOSE
BEGIN W>C DUP .CN 2 = UNTIL W>ED ;
0 GET
Ladet "00000.4TH" von einem Web Server im Editor :)

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

Re: ZeddyNet für H4TH

Beitrag von tokabln » 10.02.2019, 21:17

Uih... vielleicht kannst ja Du und Heinz versuchen mir H4TH Grundlagen in Mahlerts bei zu bringen :mrgreen:

Wäre ich Euch dankbar...
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: 1610
Registriert: 05.12.2011, 14:45

Re: ZeddyNet für H4TH

Beitrag von ZX-Heinz » 11.02.2019, 18:35

Da bin ich schon gespannt! Verwendest Du die "Netzwerkkarte nach SE, ZX81 JM11/2015" mit dem "ZeddyNet V.3"-GAL?

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

Re: ZeddyNet für H4TH

Beitrag von bokje » 11.02.2019, 22:22

ZX-Heinz hat geschrieben:
11.02.2019, 18:35
Verwendest Du die "Netzwerkkarte nach SE, ZX81 JM11/2015" mit dem "ZeddyNet V.3"-GAL?
Ich habe eine "Netzwerkkarte nach SE, ZX81 JM03/2012" und standard I/O Adressen.
tokabln hat geschrieben:
10.02.2019, 21:17
Uih... vielleicht kannst ja Du und Heinz versuchen mir H4TH Grundlagen in Mahlerts bei zu bringen :mrgreen:
Gerne! Für jetzt, etwas zum experimentieren... ZX81 BASIC hat "slicing":

Code: Alles auswählen

PRINT "ABCDEF"(2 TO 5)
Mit H4TH kann das definiert werden z.B. mit einem Wort "CSLICE". Forth ist einfach und schwer gleichzeitig wegen die Stapel und H4TH hat da noch eine:

Code: Alles auswählen

Getippt         STAPEL     CHAR STAPEL
--------        ------     -----------
" ABCDEF"       6          ABCDEF      (nicht "ABCDEF"!)
2 5             6 2 5      ABCDEF
Wir brauchen:
2 - 1 = 1 für dropping "A"
5 - (2-1) = 4 für .CN (2-1 noch einmal -> DUP)
6 - 5 = 1 für dropping "F" (5 noch einmal am Ende -> DUP)

Code: Alles auswählen

DUP             6 2 5 5    ABCDEF
ROT             6 5 5 2    ABCDEF
1 -             6 5 5 1    ABCDEF
DUP             6 5 5 1 1  ABCDEF
CDROP           6 5 5 1    BCDEF
-               6 5 4      BCDEF
.CN             6 5        F           (Console output: BCDE)
-               1          F
CDROP
Also:

Code: Alles auswählen

" ABCDEF" 2 5 DUP ROT 1 - DUP CDROP - .CN - CDROP
Oder (es gibt kein CSWAP):

Code: Alles auswählen

: CSLICE DUP ROT 1 - DUP CDROP - PAD W! - CDROP PAD W@ ;
Beispiel:

Code: Alles auswählen

" ABCDEF" 2 5 CSLICE .CN

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

Re: ZeddyNet für H4TH

Beitrag von ZX-Heinz » 12.02.2019, 15:35

@bokje: Ein sehr schönes Beispiel für Anfänger, um FORTH zu lernen.

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

Re: ZeddyNet für H4TH

Beitrag von tokabln » 12.02.2019, 19:05

@bokje: Dankeschön... jetzt muß ich das nur noch verstehen was Du da von mir willst :mrgreen:

Ich werde das mal im Emulator probieren...
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

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

Re: ZeddyNet für H4TH

Beitrag von bokje » 16.02.2019, 11:47

Ein bisschen näher: ein Webserver :)

Code: Alles auswählen

: CSL DUP ROT 1 - DUP CDROP - PAD W! - CDROP PAD W@ ; ( CSLICE )
: PRS W>C DUP 15 - 6 SWAP CSL ># IF LOAD ELSE .CN THEN ; ( PARSE "GET" AND LOAD FILE )
: RPL 16 WIR! CR>C " HTTP/1.1 200 OK" + C>W SEND CR>C CR>C + " CONTENT-LENGTH: 512" + C>W SEND ED>W SEND BEGIN WIR@ 16 AND UNTIL ; ( SEND EDITOR SCREEN )
: WC BEGIN WSR@ DUP 0 = ABORT" E" 23 = UNTIL ." C" ; ( WAIT FOR CONNECTION )
: WG BEGIN WIR@ 4 AND UNTIL ; ( WAIT FOR "GET" HEADER )
: WE BEGIN WIR@ 4 AND IF W>C DUP .CN 2 = ELSE 0 THEN UNTIL ; ( NEXT HEADERS )
: WD BEGIN WSR@ 0= UNTIL ; ( WAIT UNTIL SOCKET CLOSED )
: GO 8080 PORT BEGIN OPEN LISTEN ." W" WC WG PRS WE RPL DISCON WD AGAIN ;

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

Re: ZeddyNet für H4TH

Beitrag von ZX-Heinz » 17.02.2019, 13:27

@bokje: W>C, CR>C, C>W,... sind in H4TH nicht definiert.

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

Re: ZeddyNet für H4TH

Beitrag von bokje » 17.02.2019, 16:55

@Heinz: Ja, diese neue Worte sind noch in Entwicklung, vermutlich werden sie etwas machen wie beschrieben im Anhang.
Dateianhänge
w.pdf
(16.86 KiB) Noch nie heruntergeladen

Antworten