Robotrontechnik-Forum

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

Robotrontechnik-Forum » Technische Diskussionen » Text umwandeln zum einladen in Forth... » Themenansicht

Autor Thread - Seiten: -1-
000
01.05.2013, 13:00 Uhr
funkheld



Volker hat mir dazu mut gemacht.

Ich habe jetzt mal ein Tool geschrieben für das Forth in Purebasic.

Mein Forth habe ich so compiliert :
init_top: dw 8000h ; top
init_sod: dw 8000h ; sod
init_eod: dw A000h ; eod

Also mein Speicherbereich für die Screens liegen von 8000H bis A000H.
Bei A000 liegt der USB-Stick und bei D000 der Grafikteiber für die Grafikroutinen.
Dann habe ich ca 32Kb Speicher frei und wenn mein Forth geladen ist ca noch 17Kb frei.

Die originalen Screen(fth) von Forth kann ich in eine Binär-Datei umwandeln, die dann in den Speicherbereich von Forth geladen werden können, bei mir ab 8000H und dann zb mit "1 5 THRU"
eingelesen werden :

Dieses ist der normaler Screen aus der grossen Sammlung die es gibt, die ich dann in eine Binär-Datei umwandle zum Laden ab 8000H :

Screen # 01 -----------------------

00 \ 20 Z80 - Forth Asssembler
01
02 ONLY FORTH ALSO DEFINITIONS
03 DECIMAL
04 ASSEMBLER ALSO DEFINITIONS
05
06 DEFER C, FORTH ' C,
07 ASSEMBLER IS C,
08 DEFER , FORTH ' ,
09 ASSEMBLER IS ,
10 DEFER HERE FORTH ' HERE
11 ASSEMBLER IS HERE
12 DEFER >MARK
13 DEFER ?>RESOLVE
14 DEFER <MARK
15 DEFER ?<RESOLVE
---------------------------------------------------------

Dann kann ich normalen Text umwandeln in einen Screen(fth), es werden automatisch Screens
erweitert 1..2..3...usw :

Normaler Text:

VARIABLE X
VARIABLE Y

: STERN
GCLS
GON
360 0 DO
I SIN 80 10000 */ X !
I COS 80 10000 */ Y !
128 128 X @ 128 + Y @
128 + GLINE
10 +LOOP
KEY
DROP
GOFF ;

: GCL
GCLS ;

: GAN
GON
KEY
DROP
GOFF ;
-----------------------------------------------------

daraus sind diese Screen(fth) entstanden, woraus dann wieder die Binär-Datei erstellt wird :

Screen # 1

00 \
01 VARIABLE X
02 VARIABLE Y
03
04 : STERN
05 GCLS
06 GON
07 360 0 DO
08 I SIN 80 10000 */ X !
09 I COS 80 10000 */ Y !
10 128 128 X @ 128 + Y @
11 128 + GLINE
12 10 +LOOP
13 KEY
14 DROP
15 GOFF ;

Screen # 2

00 \
01
02 : GCL
03 GCLS ;
04
05 : GAN
06 GON
07 KEY
08 DROP
09 GOFF ;
10
11
12
13
14
15
--------------------------------------------------

Da mein Screenbereich in Forth nur von 8000H bis A000H geht , werden bei mehr ab 10 Screens automatisch eine neue Binärdatei angelegt zb Screen 1-10 datei0.bin und Screen 11-15 datei1.bin.

Dann kann ich auch eine mit dem normalen Assembler compilierte Binär-Datei in einen Screen einlesen für Forth : "code .....NEXT END-CODE". Das ist für mich manchmal einfacher , weil der Forth-Assembler doch bei einigen Sachen nicht so einfach ist.

So sieht dann eine umgewandelte Binär-Datei vom Assembler für Forth aus ,auch werden wieder automatisch neue Screens erstellt :

Screen # 1

00 \
01 HEX CODE TEST
02 C5 C, FD C, E5 C, 3E C, 08 C,
03 D3 C, 08 C, AF C, D3 C, 08 C,
04 F5 C, 21 C, 00 C, EC C, 22 C,
05 1B C, 00 C, 21 C, FF C, EF C,
06 22 C, 1D C, 00 C, 21 C, FF C,
07 00 C, 22 C, 23 C, 00 C, E7 C,
08 11 C, F1 C, 3C C, FE C, 08 C,
09 20 C, E3 C, 26 C, 80 C, 2E C,
10 80 C, 7C C, E6 C, 07 C, 07 C,
11 07 C, 07 C, 47 C, 3E C, BE C,
12 90 C, 32 C, 55 C, 01 C, CB C,
13 3C C, CB C, 3C C, CB C, 3C C,
14 4C C, 7D C, E6 C, 07 C, D3 C,
15 08 C, CB C, 3D C, CB C, 3D C,

Screen # 2

00 \
01 CB C, 3D C, 45 C, 04 C, 21 C,
02 E0 C, EB C, 11 C, 20 C, 00 C,
03 19 C, 10 C, FD C, 09 C, CB C,
04 C6 C, FD C, E1 C, C1 C, C9 C,
04 NEXT END-CODE DECIMAL
05
06
07
08
09
10
11
12
13
14
15
-------------------------------------------------
Diese kann ich dann noch ausbessern und dann in eine Binär-Datei umwandeln wie ganz oben zum reinladen in meine Forth-Adresse ab 8000H.

So habe ich auch jetzt mal das ganze Format kennengelernt usw.

Es geht jetzt ruck zuck vom erstellen im Textformat bis zum fertigen einlesen in Forth zum testen.

Gruss
peter

Dieser Beitrag wurde am 01.05.2013 um 13:10 Uhr von funkheld editiert.
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