ZX81-IDE SW-Entwicklungsumgebung

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

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von PokeMon » 26.10.2014, 19:46

So - habe mal einen Blick drauf geworfen.
Ist ja tatsächlich C Code verfügbar.
Aber die EXE läuft auch auf meinem Rechner.

Kurze Frage: Ist das ein Prototyp oder läuft das Ding mit allen Z80 Instruktionen ?
Also von Dir fertig programmiert/implementiert ?
Werden auch die undokumentierten Instruktionen unterstützt wie LD A,IXh usw. ?
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
bodo
User
Beiträge: 310
Registriert: 14.02.2007, 17:21
Kontaktdaten:

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von bodo » 02.11.2014, 16:49

PokeMon hat geschrieben:Wer ist beide ? Meinst Du Dich selbst auch damit ? :mrgreen:
Genau: "beide" Programme.

Interessant wird es Sprungtabellen und Programmiertricks, deren Detektion durch eine Automatik nicht trivial sein dürfte.
PokeMon hat geschrieben:Werden auch die undokumentierten Instruktionen unterstützt wie LD A,IXh usw. ?
Da fragst du mich was, Moment, ich muss nachsehen... Es sieht so aus, wenn auch die Schreibweise meinem damaligen Kenntnisstand entspricht.
B0D0: Real programmers do it in hex.

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

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von PokeMon » 02.11.2014, 22:02

bodo hat geschrieben:Interessant wird es Sprungtabellen und Programmiertricks, deren Detektion durch eine Automatik nicht trivial sein dürfte.
Da kann man auf eine Automatik aber (zumindest im ersten Schritt) verzichten.
Ich stelle mir neben der Automatik dann auch noch eine Funktion zum manuellen Disassemblieren vor (von Adresse bis Adresse), um diesen Bereich als Code zu übersetzen, den das Programm zunächst nur als reine Daten interpretiert. Rom wurde ja auch nicht an einem Tag erbaut. Ich weiß halt nur noch nicht, wann ich dazu komme das zu Testen und einzubauen. Derzeit haben Hardware Projekte bei mir Vorrang. Aber irgendwann schaue ich mir das schon an. :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von Paul » 21.11.2016, 14:34

Gibt es eigentlich eine Chance auf eine Linux oder OS X Variante der IDE?
Oder kann ich für Linux eine CLI Version des z80 fasm erzeugen?
Den FASM für Linux gibt es ja. Oder kann der inzwischen von Haus aus Z80?
Liebe Grüße Paul
Theoretisch ist zwischen Theorie und Praxis kein Unterschied.
Praktisch allerdings wohl.

Benutzeravatar
msch
User
Beiträge: 3629
Registriert: 05.02.2013, 15:42
Wohnort: Hessen, Rhein-Main-Gebiet

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von msch » 21.11.2016, 15:34

FASM gibt es sogar für OS X:
https://github.com/JohnDDuncanIII/fasm-osx

Ob Karl die IDE mal portiert (sofern das so ohne weiteres überhaupt möglich ist), kann nur er beantworten.
Ganz so trivial wird das aber nicht sein...
manche meinen lechts und rinks kann man nicht velwechsern.
werch ein illtum! (lichtung, Ernst Jandl)

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

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von Paul » 21.11.2016, 17:13

Unter wine auf Linux läuft es akzeptabel.
Nativ wäre sicher besser.
Liebe Grüße Paul
Theoretisch ist zwischen Theorie und Praxis kein Unterschied.
Praktisch allerdings wohl.

Benutzeravatar
msch
User
Beiträge: 3629
Registriert: 05.02.2013, 15:42
Wohnort: Hessen, Rhein-Main-Gebiet

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von msch » 21.11.2016, 17:15

Paul hat geschrieben:Unter wine auf Linux läuft es akzeptabel.
Unter Wine(bottler) unter OS X auch ;-)
manche meinen lechts und rinks kann man nicht velwechsern.
werch ein illtum! (lichtung, Ernst Jandl)

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

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von PokeMon » 21.11.2016, 21:23

Paul hat geschrieben: Oder kann ich für Linux eine CLI Version des z80 fasm erzeugen?
Den FASM für Linux gibt es ja. Oder kann der inzwischen von Haus aus Z80?
Liebe Grüße Paul
Nein - FASM kann Z80 nicht von Haus aus.
Du könntest mal die Linux Version hier als Attachment ausprobieren.
Ich habe es ohne Fehler kompilieren können und sollte eigentlich funktionieren (auch mit den ZX BASIC Erweiterungen).
Ich habe kein Linux, kann es daher nicht probieren.
Ist aber nur Command Line Version ohne Editor und anderem Schnickschnack.
FASM-LUX.zip
(36.4 KiB) 47-mal heruntergeladen
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von Paul » 21.11.2016, 22:08

Danke sehr.
Ich sag bescheid sobald ich testen konnte.
Liebe Grüße Paul
Theoretisch ist zwischen Theorie und Praxis kein Unterschied.
Praktisch allerdings wohl.

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

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von Paul » 23.11.2016, 12:26

Paul hat geschrieben:Unter wine auf Linux läuft es akzeptabel.
Nativ wäre sicher besser.
Liebe Grüße Paul
Ich muss das korrigieren.
Unter wine startet es und erzeugt auch binaries, bei mir aber kein Listing.
Es wird "nur" die .fas Datei erzeugt, dann aber keine .lst Datei.
Fehlermeldungen gibt es leider keine...
Funktioniert das bei einem von euch unter wine?
Theoretisch ist zwischen Theorie und Praxis kein Unterschied.
Praktisch allerdings wohl.

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

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von bokje » 23.11.2016, 15:21

Ja, bei mir mit Linux Mint erzeugt Ctrl-F8 auch .lst Datei (ZX80DEMO und ZX81DEMO)...
Zuletzt geändert von bokje am 24.11.2016, 07:47, insgesamt 1-mal geändert.

Benutzeravatar
msch
User
Beiträge: 3629
Registriert: 05.02.2013, 15:42
Wohnort: Hessen, Rhein-Main-Gebiet

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von msch » 23.11.2016, 15:25

Unter Linux noch nicht probiert, wohl aber am Mac unter Wine (1.7.5.3 und 1.8-rc4):
ZX-IDE-Mac-Wine.png
ZX-IDE-Mac-Wine.png (118.52 KiB) 3829 mal betrachtet
.FAS, .LST, .P werden problemlos erzeugt. Und auch der Eightyone kann aus der IDE heraus gestartet werden:
ZX-IDE-Eightyone.png
ZX-IDE-Eightyone.png (84.79 KiB) 3829 mal betrachtet
manche meinen lechts und rinks kann man nicht velwechsern.
werch ein illtum! (lichtung, Ernst Jandl)

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

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von PokeMon » 23.11.2016, 22:10

Paul, hast Du die Version verwendet, die ich hochgeladen habe ?
Deine Message per Email deutet auf den Download der neuesten Version 1.71.54 hin - bei mir ist allerdings die Versionsmeldung 1.71.01s.Z80 - ich vermute Du hast auf der FASM Website die neues Version heruntergeladen, die natürlich nur x86 kennt und nicht Z80.
Bildschirmfoto 2016-11-23 um 22.08.31.png
Bildschirmfoto 2016-11-23 um 22.08.31.png (47.52 KiB) 3809 mal betrachtet
Ich habe das FASM-LUX mal auf meinen Ubuntu Server hochgeladen und kann das Programm starten:

Code: Alles auswählen

xxxxxx@lvps87-xxx-xx-xx:~$ ./FASM
flat assembler  version 1.71.01s.Z80 11/2016 >> Zilog Z80 instruction set + ZX-BASIC + undoc <<
usage: fasm <source> [output]
optional settings:
 -m <limit>    set the limit in kilobytes for the available memory
 -p <limit>    set the maximum allowed number of passes
 -s <file>     dump symbolic information for debugging
xxxxxx@lvps87-xxx-xx-xx:~$
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von PokeMon » 23.11.2016, 22:57

Ich muss das nochmal testen, komme aber momentan nicht dazu.
Beim Kompilieren bekomme ich einen Segmentation Fault unter Ubuntu.
Es läuft aber unter OS X in einer WINE Umgebung als Editor und Kompilieren, Emulator starten, Listing funktioniert - lediglich die Tastenkombination Ctrl-F8 scheint von OS X oder WINE benutzt zu sein - man muss das Listing dann über das Menü erzeugen per Mausklick. Lässt sich sicherlich beheben.
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
msch
User
Beiträge: 3629
Registriert: 05.02.2013, 15:42
Wohnort: Hessen, Rhein-Main-Gebiet

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von msch » 25.11.2016, 16:11

Denke daran, dass beim Mac die Control-Taste der CMD-Taste entspricht und dass je nach Belegung der F-Tasten (Systemeinstellungen > Tastatur) u.U. auch noch FN gedrückt werden muss ;-)
Ich kann bei meiner Tastatur mit CMD + FN + F8 compilieren.
manche meinen lechts und rinks kann man nicht velwechsern.
werch ein illtum! (lichtung, Ernst Jandl)

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

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von PokeMon » 25.11.2016, 17:56

Kann ich nicht bestätigen.
CTRL-F9 (ctrl+fn+f9) geht ja.
CTRL-F8 (ctrl+fn+f8) geht nicht.
F9 (fn+f9) und F8 (fn+f8) geht ja auch.
Irgendwie scheint auf CTRL-F8 was anderes zu liegen, zumindest beim Mac Mini mit der Apple Tastatur.
Mit CMD+fn+F8 passiert gar nichts.

PS: Scheint tatsächlich belegt zu sein - zumindest habe ich hier nichts eingestellt.
Bildschirmfoto 2016-11-25 um 17.58.22.png
Bildschirmfoto 2016-11-25 um 17.58.22.png (63.52 KiB) 3763 mal betrachtet
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
msch
User
Beiträge: 3629
Registriert: 05.02.2013, 15:42
Wohnort: Hessen, Rhein-Main-Gebiet

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von msch » 25.11.2016, 20:11

Nicht CTRL+Fn+F8 sondern CMD+Fn+F8!
Klappt bei mir problemlos, wobei ich keine Original Apple Tasatatur nutze, sondern eine von Matias.ca - das sollte trotzdem keinen Unterschied machen.
manche meinen lechts und rinks kann man nicht velwechsern.
werch ein illtum! (lichtung, Ernst Jandl)

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

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von PokeMon » 25.11.2016, 21:47

Das ist bei Deiner Tastatur wohl anders.
CTRL-F9 (bei mir ctrl-fn-f9) funktioniert ja auch korrekt.
Mit F8 ist das ja die gleiche Kombination nur F8 statt F9.
Die Zusatztasten sind also korrekt.
CMD-FN-F9 funktioniert bei mir auch nicht. Statt dessen aber ctrl-fn-f9.

Ctrl-F8 aktiviert bei mir die Menüzeile ganz oben, so wie es auch unter der Standard Tastenbelegung angegeben ist (siehe Screenshot, Focus auf Startmenüs).
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
msch
User
Beiträge: 3629
Registriert: 05.02.2013, 15:42
Wohnort: Hessen, Rhein-Main-Gebiet

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von msch » 25.11.2016, 23:30

Interessant. Wie sind bei Dir die F-Tasten belegt? Steuern die Tasten z.B. Die Audiofunktion (lauter, leiser, an/aus) mit oder ohne gedrückter FN-Taste?
Das überrascht mich etwas, dass sich hier offenbar das Matias-Keyboard anders verhält, als das Apple Keyboard...
Oder aber die Kurzbefehle sind bei Dir anders belegt. Mein OS ist 10.11 (El Capitan).
Unabhängig davon entspricht der STRG/CTRL-Taste von Windows der Befehls/CMD-Taste beim Mac (es sei denn, es wurde unter Tastatur > Sondertasten nicht abweichend zugeordnet).
manche meinen lechts und rinks kann man nicht velwechsern.
werch ein illtum! (lichtung, Ernst Jandl)

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

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von PokeMon » 26.11.2016, 13:08

Ich habe auch El Capitan und an den Tastatureinstellungen nichts verändert.
Vielleicht die Tastenwiederholung, bin ich nicht sicher aber keine Tasten anders belegt oder ähnlich.
Alles Standard.
Bildschirmfoto 2016-11-26 um 13.07.21.png
Bildschirmfoto 2016-11-26 um 13.07.21.png (45.64 KiB) 3737 mal betrachtet
Bildschirmfoto 2016-11-26 um 13.07.30.png
Bildschirmfoto 2016-11-26 um 13.07.30.png (50.74 KiB) 3737 mal betrachtet
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
bodo
User
Beiträge: 310
Registriert: 14.02.2007, 17:21
Kontaktdaten:

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von bodo » 07.02.2018, 22:04

Nach vielen Monaten wollte ich mal wieder an einem Programm weiterarbeiten, musste aber feststellen, dass sich meine Quelltexte nicht mehr übersetzen lassen. Vom FASMW-ZX benutze ich die aktuelle Version 1.17.01q.Z80:

Code: Alles auswählen

;LISTOFF
format zx81
;labelusenumeric
MEMAVL          EQU     MEM_2K
DFILETYPE       EQU     AUTO
STARTUPMSG      EQU     ''      ;Empty to make a clean screen
include 'SINCL-ZX\ZX81.INC'
;LISTON
        REM     _asm
start:
        ld      c,$1234 and $FF
        ld      b,0
        ret
        end     _asm
AUTORUN:
        PRINT USR #start
;LISTOFF
include 'SINCL-ZX\ZX81POST.INC'
Der Übersetzer mault an der Zeile "ld c,..." herum mit "extra characters on line". Wenn ich den Ausdruck "$1234 and $FF" durch "$34" ersetze, klappt alles. Ist die Auswertung von Ausdrücken irgendwo verloren gegangen? Das wäre sehr schade, denn natürlich ist das Beispiel deutlich gekürzt. Im tatsächlichen Fall steht $1234 für eine 16-Bit-Adresse, deren unteres Byte ich brauche. Und es gibt so einige Stellen, an denen ich Berechnungen dem Übersetzer überantworte - ist halt gut lesbarer Stil.
B0D0: Real programmers do it in hex.

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

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von PokeMon » 10.02.2018, 17:40

Muss man mal nachschauen, welche Version hast Du vorher benutzt (bei der das ging) ?

Heisst es gibt was Neues in Mahlerts ? 8)
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
bodo
User
Beiträge: 310
Registriert: 14.02.2007, 17:21
Kontaktdaten:

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von bodo » 10.02.2018, 18:49

Oha, da fragst du mich was. Vermutlich habe ich das letzte Mal kurz vor dem Treffen 2015 daran gearbeitet - und da scheint es noch akzeptiert worden zu sein. Sicher habe ich die damals aktuelle Version benutzt.

Allerdings fürchte ich, dass ich bis Mahlerts nichts Neues vorzuzeigen haben werde. Die freie Zeit ist schlicht immer noch zu begrenzt, um etwas Vernünftiges auf die Reihe zu kriegen. :(

Vielleicht beschäftige ich mich bis dahin noch mit anderen Themen, die mir in den Sinn kamen, und dann könnte es was zu erzählen geben. Nur als "Appetizer" und ohne Versprechen auf Erfüllung:
  • Visicalc für ZX81 (hier geht es mir erstmal um die Realisierung von Formeln mit dem "Rechenwerk" im BASIC; vielleicht kann sogar der BASIC-interne Editor benutzt werden - noch kein Speichern oder Laden von Tabellen)
  • Experimente mit Pseudo-HRG (analog zu den Spielen von ANDRE***), das Demo "Metropolis" hat mich schon beeindruckt.
B0D0: Real programmers do it in hex.

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

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von PokeMon » 15.02.2018, 00:32

Also ich habe mir das angesehen und das ist kompliziert zu beheben.
Daher habe ich nur 2 Workarounds für Dich, ich hoffe Du kannst Dich mit einem von beiden anfreunden.

Das Problem ist, dass AND in 3 verschiedenen Kontexten existiert, als BASIC Schlüsselwort, als Z80 Instruktion und zusätzlich als logischer Operator in regulären Ausdrücken. Es würde jetzt zu weit führen hier sehr in die Tiefen des Assemblers zu gehen (FASMW) aber er ist so strukturiert, dass in verschiedenen Phasen der Text in mehrere Zwischencodes umgewandelt wird und erst am Ende daraus Binärcode entsteht. Es ist daher für die einzelnen Umwandlungsphasen nicht erkennbar, in welchem Kontext das Schlüsselwort interpretiert wird. Reguläre Ausdrücke (Expressions) werden weit früher ausgewertet als Instruktionen.

Das Problem existiert nur bei den sich überschneidenden Schlüsselwörtern AND und OR.
Eine Alternative wäre hier MOD zu benutzen - erfordert aber die Änderung des Codes und ist ein wenig Geschmacksache.
Eine andere habe ich in die neue Version 1.71.01v.Z80 (02/2018) gepackt und im Tutorial Thread (1. Posting) aktualisiert.
Da wurden die Schlüsselwörter für reguläre Ausdrücke (oder Expressions wie es im FASM Kontext heißt) von mir nun in _and und _or geändert.

Code: Alles auswählen

        ld      c,$1234 and $FF
;      Alternative 1
        ld      c,$1234 mod 256
;      Alternative 2
        ld      c,$1234 _and $FF
Um sich das Ändern des Quellendes zu erleichtern, reicht eigentlich eine Anweisung am Anfang aus:

Code: Alles auswählen

and fix _and
Zumindest konnte ich keine negativen Auswirkungen auf Z80 Assembler (AND) oder BASIC (AND) feststellen.
Sollte eigentlich funktionieren.
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
bodo
User
Beiträge: 310
Registriert: 14.02.2007, 17:21
Kontaktdaten:

Re: ZX81-IDE SW-Entwicklungsumgebung

Beitrag von bodo » 16.02.2018, 21:13

Vielen Dank für den schnellen Patch! :D

Mit der "v"-Version und "_and" funktioniert es, und natürlich ist der "mod"-Workaround auch funktionstüchtig. Ich bevorzuge die möglichst sofort verständliche Variante an der jeweiligen Stelle - und ab und zu brauche ich wirklich ein AND bzw. OR. Nun kann ich gut weitermachen: Allerdings steht momentan die Überarbeitung der Quelltexte an, denn ich verstehe meine eigenen Sachen nicht mehr vollständig. Ein klarer Fall von zu wenig Kommentierung. :?
B0D0: Real programmers do it in hex.

Antworten