ZX-IDE in der Praxis, Tipps & Tricks für ZX81,ZX80

ZX-Team Forum
Benutzeravatar
PokeMon
User
Beiträge: 4478
Registriert: 31.08.2011, 23:41

Re: ZX-IDE in der Praxis, Tipps & Tricks für ZX81,ZX80

Beitrag von PokeMon » 17.01.2016, 18:57

Ich weiß nicht ob ich es schon mal geschrieben habe aber da das Disassemblieren mit der IDE noch nicht gut funktioniert ist mir dieses Internetportal immer eine recht gute Hilfe beim Disassemblieren von Programmen und ROM Files. Man braucht nur die Hex Bytes von einem Anzeigeprogramm wie HxD oder ähnlich kopieren und in das Code Fenster links einfügen und bei Plattform noch Z80 und ggf. die Startadresse setzen, dann erscheint rechts der disassemblierte Text.

https://www.onlinedisassembler.com/

Das disassemblierte File kann man auch als Textdatei downloaden und wer es nach Änderungen ggf. neu kompilieren möchte, der kann z.B. mit dem Editor der ZX-IDE und dem Tool "vertical selection" im Edit Fenster den linken Adressteil sehr einfach abschneiden so dass nur noch der Quellcode übrig bleibt.

Hier kommt man recht weit mit folgenden Schritten:
1. Disassemblieren auf ODA
2. Datei downloaden
3. Datei öffnen in ZX-IDE (Editor)
4. mittlere Spalte mit den Datenbytes löschen, dazu vertical selection auswählen und gewünschte Breite markieren und mit shift und Bild runter markieren (geht recht schnell im Repeat Modus)
5. linke spalte leerzeichen auf dem gleichen Wege löschen so dass die Zeile mit .data:000xxxx anfängt
6. ctrl-h drücken und .data:0000 durch L_ automatisch ersetzen (dadurch hat man saubere Labels mit L_01fa o.ä.)
7. oben eine Zeile einfügen ;labelautodetect - das Semikolon am Anfang ist wichtig und sollte in der ersten Zeile stehen,
damit sind Labels auch ohne Doppelpunkt gültig
8. eventuell weitere Zeilen einfügen wie "defb EQU db" und "defw EQU dw" (ohne die Anführungszeichen, die ZX-IDE kennt nicht defb/defw sondern nur db/dw)

Leider muss man relative Sprünge noch anpassen, aber auch das geht mit Replace ganz gut.
JR 0x ersetzen mit JR L_
Der gleiche Ersetzungsvorgang ist dann noch notwendig mit
DJNZ 0x
JR C,0x
JR NC,0x
JR Z,0x
JR NZ,0x

Das ist zwar ein wenig Arbeit aber funktioniert halbautomatisch und ist immer noch besser als lange Quelltet zu Fuss einzugeben. 8)
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: ZX-IDE in der Praxis, Tipps & Tricks für ZX81,ZX80

Beitrag von PokeMon » 06.03.2016, 22:54

Es gibt einen kleinen Bug, der mich gerade mühsames Suchen mit dem Logic Analyzer besorgt hat.
Im Grunde ein Flüchtigkeitsfehler aber schon blöd wenn man den nicht auf Anhieb sieht.

Code: Alles auswählen

0000: [0000] DB 00                      IN A,(0)
0002: [0002] DB 00                      IN (0),A
0004: [0004] D3 00                      OUT A,(0)
0006: [0006] D3 00                      OUT (0),A
0008: [0008] ED 78                      IN A,(C)
000A: [000A] ED 79                      IN (C),A
000C: [000C] ED 78                      OUT A,(C)
000E: [000E] ED 79                      OUT (C),A
All diese Schreibweisen akzeptierte die ZX-IDE bisher wobei üblicherweise bei IN immer zuerst das Register zu folgen hat und dann der Port, bei OUT genau andersrum. Im Prinzip wäre das nicht weiter störend, wenn das richtig kompiliert würde nur denkt der Parser bei IN (C),A es handele sich wohl offensichtlich um ein OUT. Ich habe das jetzt mal in ein Bugfix Release 1.71.01.r.z80 behoben und eine striktere Syntaxprüfung die solch verdrehte Schreibweisen ablehnt mit der Meldung "invalid operand". Ich warte aber nochmal ein bisschen ob sich in der nächsten Zeit noch andere Bugs finden, bevor ich das jetzt veröffentliche.

Seid gewarnt. :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: ZX-IDE in der Praxis, Tipps & Tricks für ZX81,ZX80

Beitrag von funkheld » 24.10.2017, 09:18

Hallo, guten Tag.
Ich bin wieder Anfänger und möchte das Programm ZX81DEMO.p welches von der ZX-IDE compiliert wurde starten. ES funktioniert wunderbar.
Was hat es da mit dieser Variable im Programm ASM auf sich : VAR D=1.2345E21?

Danke.
GRuss

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

Re: ZX-IDE in der Praxis, Tipps & Tricks für ZX81,ZX80

Beitrag von funkheld » 24.10.2017, 10:26

Bei dem ZX81DEMO.ASM dauert es etwa 5 Sekunden bis die Übertragung abgeschlossen ist. Es handelt sich aber auch um ein sehr kleines Programm mit knapp 200 Byte.
Was macht dieses Programm eigentlich ? Ich sehe nur den Text in der Mitte 'CREATED WITH ZX81-IDE' .
Warum sehen die Zeilen bei mir so wie im Bild aus und nicht so:
1 REM |? TAN
2 PRINT USR 16514

Danke.
Gruss
Dateianhänge
Bild2.jpg
Bild2.jpg (18.46 KiB) 366 mal betrachtet

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

Re: ZX-IDE in der Praxis, Tipps & Tricks für ZX81,ZX80

Beitrag von funkheld » 24.10.2017, 12:29

Es funktioniert die HRG-Grafik-16k und die HRG-Grafik-64k wunderbar mit der ZX-IDE bei mir.

Eine tolle Sache.

Danke.
Gruss
Zuletzt geändert von funkheld am 24.10.2017, 13:15, insgesamt 3-mal geändert.

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

Re: ZX-IDE in der Praxis, Tipps & Tricks für ZX81,ZX80

Beitrag von funkheld » 24.10.2017, 12:37

1.71.01.r.z80 habe ich nicht ich habe den 1.71.01.q.z80 der macht den Fehler aber nicht.
Wo gibt es bitte den r?

Danke.
Gruss

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

Re: ZX-IDE in der Praxis, Tipps & Tricks für ZX81,ZX80

Beitrag von tokabln » 24.10.2017, 12:58

Wenn Du den Thread von Pokemon etwas höher richtig liest, hat er die "r" Version noch nicht released, sondern er wartet damit noch etwas für den Fall das noch andere Bugs auftreten.
Ich warte aber nochmal ein bisschen ob sich in der nächsten Zeit noch andere Bugs finden, bevor ich das jetzt veröffentliche.
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
PokeMon
User
Beiträge: 4478
Registriert: 31.08.2011, 23:41

Re: ZX-IDE in der Praxis, Tipps & Tricks für ZX81,ZX80

Beitrag von PokeMon » 24.10.2017, 22:09

Im Nachbarforum habe ich bereits die Version 1.71.01.u.z80 hochgeladen.
Das werde ich hier mal in Kürze nachholen.
http://sinclairzxworld.com/viewtopic.php?f=6&t=1064

Das erklärt aber nicht warum die Datei im EightyOne komisch angezeigt wird.
Wurde das .p File verwendet ?
Neu kompiliert ?

Das ZX81DEMO.ASM (oder .p) ist nur ein Beispielprojekt, welches kompiliert werden kann. Ein Schnellstart. Das hat keine konkrete Funktion, nur ein paar Zeilen zusammengewürfeltes BASIC in Verbindung mit Assembler Code um zu zeigen, wie man darauf zugreifen kann. Das "CREATED WITH ZX-IDE" ist nur ein Gimmick und wird in den Bildschirmspeicher geschrieben (DFILE) aber bei RUN natürlich ggf. gelöscht.
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: ZX-IDE in der Praxis, Tipps & Tricks für ZX81,ZX80

Beitrag von funkheld » 24.10.2017, 23:19

Hallo, mit der Version u funktioniert diese HRG-Compilierung nicht mehr.
Mit der q geht es wieder.

Gruss

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

Re: ZX-IDE in der Praxis, Tipps & Tricks für ZX81,ZX80

Beitrag von PokeMon » 24.10.2017, 23:36

Kannst Du mal Dein Programm hochladen - dann kann ich mir das mal anschauen.
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: ZX-IDE in der Praxis, Tipps & Tricks für ZX81,ZX80

Beitrag von funkheld » 25.10.2017, 00:07

Das ist die HRG wie sie hier als Beispiel reingelegt wurde für die FASMW-ZX.
Dazu noch die zx81.rom

Gruss
Dateianhänge
sinus.p
(1.34 KiB) 7-mal heruntergeladen
hrg-16k.p
(5.35 KiB) 10-mal heruntergeladen
hrg.asm
(3.19 KiB) 10-mal heruntergeladen

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

Re: ZX-IDE in der Praxis, Tipps & Tricks für ZX81,ZX80

Beitrag von PokeMon » 26.10.2017, 01:11

Muss ich mir morgen mal ansehen.
Es gab eine Änderung mit LOAD A$ was offenbar die systeminterne load directive beeinflusst.
Da hast Du Dir aber eine sehr seltene Anwendung rausgesucht, das war mal im Rahmen eines Vortrags in Mahlerts und betrifft das Patchen von ROM Files mit der IDE. :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: ZX-IDE in der Praxis, Tipps & Tricks für ZX81,ZX80

Beitrag von funkheld » 26.10.2017, 09:13

Hat mir gut gefallen , weil es ein ROM war mit Grafik.

Gruss

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

Re: ZX-IDE in der Praxis, Tipps & Tricks für ZX81,ZX80

Beitrag von PokeMon » 26.10.2017, 12:01

Du kannst die Programme auch direkt in den Emulator laden in den Speicher.
Also HRG16k.p danach am Besten NEW (setzt RAMTOP selbst) und dann das SINUS.P oder PIPES.P oder ähnliches.
Das HRG16k.p ist nur der Treiber für HRG und das andere sind BASIC Programme, die die Fähigkeiten des Treibers nutzen.

Man kann das im ROM unterbringen wenn man Platz hat und auf den Ladevorgang verzichten (insbesondere wenn man kein Massenspeicher hat wie VDRIVE o.ä.) aber letztlich wird das sowieso ins RAM kopiert und dort gestartet. Man nutzt also eigentlich nur den Bereich 8-16k um Programme dauerhaft im Zugriff zu haben. Ist aber im Grunde genommen eher eine Spielerei oder eine "Machbarkeitsstudie". Also rein akademischer Natur. :wink:

Das HRG hat Matthias Swatosch programmiert, der ist gelegentlich auch hier im Forum unterwegs. Auch sein POWER BASIC ist sehr nützlich. Alles Weitere dazu hier:

http://www.swatosch.de/zx81/
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: ZX-IDE in der Praxis, Tipps & Tricks für ZX81,ZX80

Beitrag von funkheld » 03.11.2017, 19:28

Gutes Fachwissen hast du.
Eine tolle Sache.

Danke.
Gruss

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

Re: ZX-IDE in der Praxis, Tipps & Tricks für ZX81,ZX80

Beitrag von funkheld » 05.11.2017, 18:57

Wie kommt bitte der Text am oberen Rand in den FASMW-ZX ?

Gruss
Dateianhänge
Bild2.jpg
Bild2.jpg (20 KiB) 209 mal betrachtet

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

Re: ZX-IDE in der Praxis, Tipps & Tricks für ZX81,ZX80

Beitrag von PokeMon » 06.11.2017, 00:15

Die Grafikzeichen kann man mit ALT-9 einschalten und per Mausklick an die entsprechende Cursorstelle einsetzen. Wenn Grafikzeichen in einer Datei drin sind, wird die Zeile auch automatisch nach dem Laden eingeblendet. ALT-9 schaltet es ein und aus (manuell). Ist kompatibel zu den Grafikzeichen beim ZX81, da wird SHIFT-9 verwendet. SHIFT-9 geht aber nicht in der IDE da dort Klammer zu liegt.
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: ZX-IDE in der Praxis, Tipps & Tricks für ZX81,ZX80

Beitrag von funkheld » 06.11.2017, 08:34

Danke.
GRuss

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

Re: ZX-IDE in der Praxis, Tipps & Tricks für ZX81,ZX80

Beitrag von funkheld » 07.11.2017, 09:02

Hallo, guten Tag.
Ich speche über die ZX81-IDE das HRG an.

Wenn ich es starte, wird ganz kurz die Grafik gezeigt und der Starttext von der STARTUPMSG erscheint dann wieder sofort, obwohl ich eine JR-Endlosschleife eingebaut habe.

Woran liegt das bitte ?

Danke.
Gruss

Code: Alles auswählen

format zx81
;labelusenumeric
;LISTOFF
        MEMAVL     =   MEM_48K
        STARTMODE  EQU SLOW_MODE
        DFILETYPE  EQu AUTO
        STARTUPMSG EQU 'HRG ZX81-IDE'

        include 'd:\zx81\SINCL-ZX\ZX81.INC'
;LISTON
        AUTOLINE 10
        
        REM EIN TESTPROGRAMM
        
        REM _asm        
label2:
        ld a,1
        call 0x7fe3
        
        ld a,0x12
        call 0x7fe3
        
        ld a,0x06     
        ld bc,0x0000  
        ld de,0xffbf  
        call 0x7fe3
        
        ld a,0x0f
        ld bc,0xffff
        push bc
        ld bc,0x0000
        push bc
        ld bc,0x0a64
        push bc
        ld bc,0x1467
        push bc
        call 0x7fe3
WEITER:
        JR WEITER

        END _asm

AUTORUN:
        RAND USR #label2

        include 'd:\zx81\SINCL-ZX\ZX81DISP.INC'
VARS_ADDR:

WORKSPACE:
assert ($-MEMST)<MEMAVL

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

Re: ZX-IDE in der Praxis, Tipps & Tricks für ZX81,ZX80

Beitrag von funkheld » 07.11.2017, 12:24

Die Grafikzeichen kann man mit ALT-9 ...
Der FASMW-ZX.EXE geht in die ewigen Jagtgründe...

Gruss

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

Re: ZX-IDE in der Praxis, Tipps & Tricks für ZX81,ZX80

Beitrag von Jens » 07.11.2017, 13:44

Unten fehlt

; end of program

Ich kann das kompilieren, aber der ZX hängt sich dann auf :-\

Gruß
Jens
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
PokeMon
User
Beiträge: 4478
Registriert: 31.08.2011, 23:41

Re: ZX-IDE in der Praxis, Tipps & Tricks für ZX81,ZX80

Beitrag von PokeMon » 07.11.2017, 22:10

funkheld hat geschrieben:
07.11.2017, 12:24
Die Grafikzeichen kann man mit ALT-9 ...
Der FASMW-ZX.EXE geht in die ewigen Jagtgründe...

Gruss
Da wird eine spezielle Schriftart verwendet, die man erst installieren muss (einmalig).
Bitte die entsprechenden Kapitel im ersten Beitrag des Threads lesen, ich habe extra ein Inhaltsverzeichnis erstellt.
viewtopic.php?f=2&t=802&start=25#p11430
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: ZX-IDE in der Praxis, Tipps & Tricks für ZX81,ZX80

Beitrag von funkheld » 07.11.2017, 22:59

Ahhh.... danke.

Jetzt ist sie daaaaa....


Gruss

Antworten