Fragen zum ZX80

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

Fragen zum ZX80

Beitrag von PokeMon » 26.05.2013, 19:01

Da ich gerade die IDE anpasse auf den ZX80 habe ich folgende Frage.

Gibt es für den ZX80 eigentlich auch ein AUTORUN oder AUTOSTART Modus, also dass ein Programm nach dem Laden automatisch gestartet oder fortgesetzt wird ?

Ich habe mal gerade mit dem Emulator experimentiert aber so wie beim ZX81 scheint es nicht zu funktionieren.

10 PRINT "START"
20 SAVE
30 PRINT "ENDE"

speichert zwar nach RUN das Programm, es erscheint aber danach nur das Listing ?
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Fragen zum ZX80

Beitrag von PokeMon » 26.05.2013, 20:33

Welche Möglichkeiten gibt es in einem ZX80 Programm Assembler zu definieren ?
Da der ZX80 keine Zeilenlänge hat, interpretiert er scheinbar bestimmte Zeichen in REM Zeilen.
Je nach Inhalt habe ich da Flackern beim Listing bis hin zu Totalabstürzen gehabt.

Also in REM Zeilen gibt man wohl besser keinen Assemblercode mit.
Welche Alternativen gibt es ?
Variablen anzulegen mit Assemblercode ?

Es gibt offenbar auch keine RAMTOP Variable, die man herabsetzen könnte.

Gibt es sonst übliche Methoden ?
Außer Hardware wie Zusatz ROMs. :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

Benutzeravatar
medusa
User
Beiträge: 267
Registriert: 13.01.2013, 19:34
Wohnort: Köln

Re: Fragen zum ZX80

Beitrag von medusa » 26.05.2013, 21:19

Ich kenne zwei Varianten Code zu speichern, einmal in PRINT Statements Hex-Ascii auflisten und mit einem Basic-Loader in den Speicher schreiben.

http://www.fruitcake.plus.com/Sinclair/ ... vaders.htm

Auf derselben Seite (Link zum 1K-Space Invaders folgen) ist die zweite Methode beschrieben, bei der Code in einem Integer-Array gespeichert ist. Man darf aber ganz offensichtlich das Programm nicht mit einem RUN, sondern nur einem GOTO starten. :mrgreen:
Richtig Autostart oder LRUN wie es anderswo heißt ist da aber nicht beschrieben.

~medusa.
PDP-11: 012700 176500 012760 000100 000000 000777.
68000: 4E71?
VAX: D450 908051 11FB!
Alpha: 47E8404 A4240000 A4440008 40220400 B404000C...

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

Re: Fragen zum ZX80

Beitrag von PokeMon » 26.05.2013, 21:57

Danke erstmal.

Beim Ausprobieren diverser Statements habe ich nun eine Möglichkeit gefunden, offenbar beliebigen Code auch beim ZX80 in REM Zeilen zu packen.
Dabei funktioniert die gleiche Technik wie auch beim ZX81, nach zwei aufeinanderfolgenden NEWLINE ($76) in einer REM Zeile bricht der ZX80 das Listing ab und dann gibt es wohl auch keine störenden Effekte mehr. Soweit ich das gerade austesten konnte. :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Fragen zum ZX80

Beitrag von Paul » 27.05.2013, 09:43

Zu diesen Fragen gibt es ein Standardwerk :mrgreen:
http://www.users.waitrose.com/~thunor/m ... ter05.html
ZX80 wird als OldRom bezeichnet :wink:
Theoretisch ist zwischen Theorie und Praxis kein Unterschied.
Praktisch allerdings wohl.

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

Re: Fragen zum ZX80

Beitrag von PokeMon » 27.05.2013, 20:55

Ja schön, Danke. :mrgreen:

Neben der Methode, Variablen als Speicherort zu nutzen ist sicher das REM Statement ideal.
Allein schon weil man damit auch Programme mit RUN starten kann.
Allerdings kann ich diese Klimmzüge nicht ganz nachvollziehen.
Effektiver ist der Einsatz von 2 aufeinanderfolgenden Newline.
Dann bricht das Listing mit Darstellung der REM Zeile ab, zeigt den folgenden Code Abschnitt nicht mehr an, führt aber das Programm (nachfolgende Zeilen) dennoch korrekt aus.

Möglicherweise funktioniert auch die Kombination $76,$80 - die den Beginn des Variablen-Bereichs markiert.
Allerdings könnte es sein, dass dann nachfolgende Zeilen nicht mehr ausgeführt werden.
Das muss ich mal testen.
Vielleicht auch eine Methode "geheime" Zeilen oder RUN/GOTO Einsprünge zu verstecken. :mrgreen:
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Fragen zum ZX80

Beitrag von PokeMon » 27.05.2013, 21:04

Und was ist jetzt mit AUTOLOAD bzw. AUTORUN auf dem ZX80 ?
Gibts sowas oder nicht ?
Konnte in Deinem Standardwerk jetzt nichts dazu entdecken. :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Fragen zum ZX80

Beitrag von Paul » 27.05.2013, 21:31

Leider ist im unveränderten ROM kein Autostart vorgesehen.
Im ZXPand Rom mache ich das über eine geänderte Initialisierungsroutine.
Im "Standardwerk" wird davor gewarnt das $76 als Zeilenende zählt.
Die danachfolgenden zwei Byte ergeben die nächste Zeilennummer.
Ist die nächste Zeilennummer größer als 9999 kann das System böse durcheinander kommen.
Besser scheint da den Maschinen Code zwischen Programm und Variablen zu verstecken.
Auch wenn das berechnen der einsprungadresse dann aufwendiger ist.
Theoretisch ist zwischen Theorie und Praxis kein Unterschied.
Praktisch allerdings wohl.

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

Re: Fragen zum ZX80

Beitrag von PokeMon » 27.05.2013, 23:20

Paul hat geschrieben: Im "Standardwerk" wird davor gewarnt das $76 als Zeilenende zählt.
Die danachfolgenden zwei Byte ergeben die nächste Zeilennummer.
Ist die nächste Zeilennummer größer als 9999 kann das System böse durcheinander kommen.
Nein das glaube ich nicht. Es wird nur vor einem einfachen $76 gewarnt. 2 aufeinanderfolgende $76 bringen das System nicht durcheinander sondern beenden nur die LIST Routine. Ist übrigens genauso wie beim ZX81. Da funktioniert das auch sauber. $76 und $80 aufeinanderfolgend sollte auch kein Problem bringen. Direkt am Programmende kommt nämlich der Variablenbereich, abgegrenzt durch ein $80. Ansonsten würde der ZX80 ja den gesamten Speicherbereich als BASIC Programm interpretieren. Tut er aber nicht. Also gibt es Abbruch/Eingrenzungsbedingungen.

Im Moment habe ich nicht die Zeit auch noch in den ROM Routinen rumzuwühlen aber nach meinen Tests ist das eine sichere Methode.
Nach $76,$76 werden übrigens auch keine folgenden Programmzeilen mehr angezeigt, wohl aber ausgeführt.

Der Autor Deines Standardwerks weiß zwar viel aber auch nicht alles.
Ali weiß mehr.
Zumindest hat er diesen Trick hier vor einigen Monaten mal ins Spiel gebracht. :wink:

Paul hat geschrieben:Besser scheint da den Maschinen Code zwischen Programm und Variablen zu verstecken.
Auch wenn das berechnen der einsprungadresse dann aufwendiger ist.
Nein das halte ich für keine gute und keine saubere Methode.
Im Grunde versteckt er auch nur das Ende des Programms bzw. versteckt nur die letzte Zeile.
Ähnlich wie mit $76,$76 nur verwendet er $76,$FF.
Wahrscheinlich bricht das Listing bei Zeilennummer > 9999 einfach ab.
Werde ich mal prüfen bei Gelegenheit.

Viel wichtiger ist, dass die ZX80 Musterplatine fertig ist und in den nächsten Tagen eintrudeln wird. :wink:
Zuletzt geändert von PokeMon am 27.05.2013, 23:32, insgesamt 1-mal geändert.
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Fragen zum ZX80

Beitrag von PokeMon » 28.05.2013, 00:18

Habe ich doch noch mal schnell ein Blick in das Listing des ZX80 geworfen.
Zeilennummer > 16383 werden weder angezeigt noch ausgeführt:

Code: Alles auswählen

; -----------------------------------------
; THE 'PRINT A WHOLE BASIC LINE' SUBROUTINE
; -----------------------------------------

;; OUT-LINE
L04F7:  LD      BC,($4006)      ; fetch E_PPC
        CALL    L061C           ; routine CP-LINES
        LD      D,$97           ; prepare character '>'
        JR      Z,L0507         ; forward with line cursor if line is the
                                ; current edit line to OUT-LINE-1

        LD      DE,$0000        ; else replace line cursor with a
                                ; space in D, and zero to E.
        RL      E               ; pick up any carry from CP-LINES
                                ; should the line precede the
                                ; current edit line.

;; OUT-LINE-1
L0507:  LD      A,(HL)          ; fetch the high byte of line number.
        [b]CP      $40             ; compare with end marker[/b]
        CALL    C,L06BF         ; routine OUT-NUM-2 if a valid line number.
        RET     NC              ; return if out of screen                >>>

        INC     HL              ; address the first command character.
        LD      A,D             ; fetch the space/cursor
        RST     10H             ; print it.
        RET     NC              ; return if out of screen.
Die entscheidende Zeile ist CP $40 (höherwertiges Byte der Zeilennummer).
Wenn es größer oder gleich ist, bricht das Listing ab.

Hier ein kleines Beispielprogramm:

Code: Alles auswählen

10      REM NUR EIN KLEINES TESTPROGRAMM
20      REM 123456789
30      REM INPUT=START-ENDE
40      REM '(C) by PokeMon'

9999    REM 9999
10000   REM 10000
16383   REM 16383
16384   REM 16384
16385   REM 16385
Und so sieht es im Emulator aus: :mrgreen:
Clipboard11a.gif
(98.28 KiB) 37-mal heruntergeladen
Die letzte angezeigte Zeile ist 16383.
Da sieht man auch die Umwandlung der Zahlen.
Die Darstellung der letzten 3 Stellen ist korrekt.
Die Tausenderstelle wird offenbar nur bis 9 interpretiert, danach kommt dann A für 10000, B für 11000 usw. :mrgreen:

Die letzte ausgeführte Zeile (bei RUN) ist ebenfalls 16383.
Clipboard11b.gif
(95.19 KiB) 37-mal heruntergeladen
Zuletzt geändert von PokeMon am 30.05.2013, 21:25, insgesamt 2-mal geändert.
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Fragen zum ZX80

Beitrag von PokeMon » 28.05.2013, 00:26

Übrigens kann man Zeilennummer > 9999 zwar anzeigen und auch ausführen lassen (RUN akzeptiert bis 32767), aber nicht editieren. :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Fragen zum ZX80

Beitrag von PokeMon » 07.06.2013, 01:26

Wie verhält sich eigentlich ein ZX80 mit ZX81 ROM ?
Also ohne NMI Generator ?
Stellt er das Bild auch dar ?
Gibt es sonst Besonderheiten zu beachten ?

Will morgen mal das ZX81 ROM aktivieren und hätte gerne gewußt, was da normal ist beim ZX80. :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Fragen zum ZX80

Beitrag von Paul » 07.06.2013, 07:27

Der ZX80 mit ZX81 ROM ist dauernd im Fast und nutzt dir 066h Routinen natürlich nicht.
Genau so ist das ROM ja konzipiert damit der ZX80 mit Floating Point Basic aufgerüstet werden kann.
Das bedeutet das er das Bild ganz normal bei den Eingaben und Pause anzeigt.
Theoretisch ist zwischen Theorie und Praxis kein Unterschied.
Praktisch allerdings wohl.

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

Re: Fragen zum ZX80

Beitrag von PokeMon » 07.06.2013, 11:59

Danke.
Sowas Ähnliches hatte ich mir zwar gedacht aber bei den Test ist es besser jemanden zu fragen der das System kennt. :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Fragen zum ZX80

Beitrag von PokeMon » 07.06.2013, 14:24

Frage zum Thema Videosignal:
Je nachdem ob man beim Schiebregister Pin 7 oder Pin 9 verdrahtet, wird das Videosignal invertiert oder nicht invertiert ausgegeben.
By the way - gibt es da auf dem Original ZX80 Board eigentlich einen Jumper oder eine andere Auswahlmöglichkeit ? Das Schaltbild bietet sowas an. :wink:
Clipboardzx3.jpg
Clipboardzx3.jpg (32.4 KiB) 11000 mal betrachtet
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Fragen zum ZX80

Beitrag von Paul » 07.06.2013, 15:18

Auf der Unterseite der Platine gibt es ebenfalls die drei Punkte A,B,C.
A und C sind fest verbunden (müsste durchtrennt werden), zwischen A und B ist eine gestrichelte Linie die verbunden werden müsste.
Theoretisch ist zwischen Theorie und Praxis kein Unterschied.
Praktisch allerdings wohl.

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

Re: Fragen zum ZX80

Beitrag von PokeMon » 07.06.2013, 17:11

Ah, okay. :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Fragen zum ZX80

Beitrag von msch » 08.06.2013, 21:00

siehe hier:

http://farm4.staticflickr.com/3419/4607 ... 4a_o_d.jpg

die Punkte A,B,C befinden sich rechts vom mittleren Loch der Platinenbefestigung. Quasi oberhalb der Bildmitte (das Bild ist um 90 Grad gegen den Uhrzeigersinn gedreht).

Hier ein Bild der Platine in der korrekten Ausrichtung:

http://fjkraan.home.xs4all.nl/comp/zx80 ... erside.jpg

Das ganze sollte nach dem Durchtrennen der Leiterbahn mit einem einfachen Ein/Ein-Kippschalter zu realisieren sein.
Zuletzt geändert von msch am 08.06.2013, 22:09, insgesamt 3-mal geändert.
manche meinen lechts und rinks kann man nicht velwechsern.
werch ein illtum! (lichtung, Ernst Jandl)

Benutzeravatar
sbetamax
User
Beiträge: 499
Registriert: 04.03.2006, 22:01
Wohnort: Deutschland / Hessen / Nidda
Kontaktdaten:

Re: Fragen zum ZX80

Beitrag von sbetamax » 08.06.2013, 21:56

Hi,
ich hab einen kleinen Umschalter angelötet und kann damit prima zwischen schwarz und weißem Hintergrund umzuschalten. Mein ZX80 Nachbau ist allerdings zu weit weg um ein Foto zu machen.
Gruß Stephan
_______________
ZX80 (nachbau), ZX81, ZX 2000, ZX NU, IQ8300, ZX Spectrum, ZX Spectrum plus, ZX Spectrum 128, Harlequin, C64

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

Re: Fragen zum ZX80

Beitrag von PokeMon » 09.06.2013, 00:37

Wie stellt man beim ZX80 denn fest, wieviel Speicher er hat ?
Eine RAMTOP Variable gibts da ja nicht.
Irgendwelche anderen Wege um das festzustellen ?
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Fragen zum ZX80

Beitrag von msch » 09.06.2013, 00:40

manche meinen lechts und rinks kann man nicht velwechsern.
werch ein illtum! (lichtung, Ernst Jandl)

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

Speicherausstattung des ZX80

Beitrag von PokeMon » 18.08.2013, 18:52

Hmmm....

Normalerweise müsste der ZX80 problemlos 16k RAM verkraften ($4000-$7FFF).
Das ZX80CORE hat jedenfalls keine Probleme damit.
Der Emulator EightyOne scheint damit aber Probleme zu haben.
Wollte gestern mein EEPROM Loader damit testen.

Wählt man beim Emulator ZX80 aus und 16k Speicher dann macht der komische Sachen.
Hängt sich auch auf beim Laden von Programmen.
Naja dabei ist es mir aufgefallen, da der Emulator nach dem Laden immer abstürzte mit der ZX-IDE bei ZX80 Programmen.
Schwere und vollkommen unnütze Fehlersuche heute. Grrrrmmpf. :evil:

Mit 8kByte Hauptspeicher (natürlich auch mit 4 oder 2 kByte) funktioniert alles einwandfrei.
Der ZX80 startet im Emulator zwar mit 16kB aber wenn man z.B. NEW eingibt, erscheint unten 0/-2.
Mit 8k kommt normal 0/0.

Weiß da jemand was Näheres ??? :wink:
Wer seinen Computer ehrt, lebt nicht verkehrt.

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

Re: Fragen zum ZX80

Beitrag von msch » 18.08.2013, 20:20

Da für den ZX80 ein 16 KB RAM Pack angeboten wurde, würde ich das auch denken:
Sinclair produced RAM expansion packs for the ZX80: the original ZX80 RAM Pack held either 1, 2 or 3 KB of static RAM; a later model held 16 KB, using dynamic RAM chips (DRAM))
Quelle: http://en.wikipedia.org/wiki/ZX80
The Sinclair ZX80 was an all-white computer, although both a white and a black PSU were released for it (both bear the markings Sinclair ZX80). A 1K, 3K and 16K RAM pack were soon to follow, again released initially in white. The 16K RAM pack was later released in black. However, the white PSU and RAM pack are especially rare, mainly due to a large number of returns of the white RAM pack.
Quelle: http://www.rwapsoftware.co.uk/zx802.html
manche meinen lechts und rinks kann man nicht velwechsern.
werch ein illtum! (lichtung, Ernst Jandl)

Benutzeravatar
bbock
User
Beiträge: 357
Registriert: 01.10.2010, 22:06

Re: Fragen zum ZX80

Beitrag von bbock » 20.08.2013, 12:52

Mein ZX80 läuft prima mit einem Timex-Sinclair 16k-Modul.

Bernd

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

Re: Fragen zum ZX80

Beitrag von PokeMon » 20.08.2013, 13:08

Ja meiner auch, die Frage war ja hauptsächlich nach dem Emulator. :mrgreen:
Gut jetzt wissen wir zumindest offiziell, dass die Hardware mit 16k läuft ...

Welche Version benutzt Du ?
Ich habe die Version 1.0 (Test a).
Gibt vielleicht was Neueres - falls ja, wo ?
Wer seinen Computer ehrt, lebt nicht verkehrt.

Antworten