Robotrontechnik-Forum

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

Robotrontechnik-Forum » Technische Diskussionen » Z1013 Rückkehr zum Monitor » Themenansicht

Autor Thread - Seiten: -1-
000
11.01.2020, 21:56 Uhr
Bert



Hallo Forum!

Wie kommt man beim Z1013 elegant in den Monitor zurück?

Folgender Beispielcode:

Quellcode:

; zmac version 5jan2019        http://48k.ca/zmac.html
; zmac --zmac hello.z80 -o hello.hex

_OUTCH  equ 00h
_INCH   equ 01h
_PRST7  equ 02h
    
        org 100h

        ; Zeichenkette ausgeben
        rst 20h
        db _PRST7
        db 0ch, 'Hello Z1013!', 0dh + 80h

        ; auf Taste warten
        rst 20h
        db _INCH

        ; Rücksprung ins Betriebssystem
        ;ret
        ; Rücksprung ins Betriebssystem
        rst 38h



Wenn man mit RET zurückspringt, wird der Bildschirm gelöscht und die Startmeldung erscheint.
Mit RST 38H bekommt man '? #'


Wie komme ich zum normalen Prompt (#), wie z.B. beim Display-Kommando?

Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
12.01.2020, 08:52 Uhr
ralle



Der Promt ist die Raute. Fragezeichen gibt der nur bei völliger Verständnislosigkeit. Also falscher befehl.
--
Gruß Ralle

Wenn Sie dazu neigen, Bedienungsanleitungen zusammen mit dem Verpackungsmaterial wegzuwerfen, sehen Sie bitte von einem derart drastischen Schritt ab!...
... Nachdem Sie das Gerät eine Weile ausprobiert haben, machen Sie es sich am besten mit dieser Anleitung und ihrem Lieblingsgetränk ein oder zwei Stunden lang in Ihrem Sessel bequem. Dieser Zeitaufwand wird Sie dann später belohnen...

aus KENWOOD-Bedienungsanleitung TM-D700
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
12.01.2020, 10:46 Uhr
Mobby5



Das ist nicht die Antwort auf Berts Frage.

Ich kenn die Internas des Z1013 jetzt nicht wirklich, kann mir aber vorstellen, dass beim Betätigen der Taste am Ende des Programms, der Tastencode noch in einem Puffer steht und dann bei/nach rst38 ausgeführt werden will und daher als falscher Befehl interpretiert wird.
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden

Dieser Beitrag wurde am 12.01.2020 um 10:49 Uhr von Mobby5 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
12.01.2020, 15:47 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

RST 38 ist üblich, ebenso die Anzeige „? #“.

Es gibt keinen Standardeinsprung im System, s. http://hc-ddr.hucki.net/wiki/doku.php/z1013/software/monitor/riesa202
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
12.01.2020, 17:12 Uhr
PIC18F2550

Avatar von PIC18F2550

Jmp F000
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
12.01.2020, 18:54 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

Mit Jp F000 reinitialisierst du den Rechner,
Das ist wie Kaltstart, keine einfache Rückkehr in den Monitor.
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
12.01.2020, 19:28 Uhr
PIC18F2550

Avatar von PIC18F2550

Er wollte nur zurück in den Monitor, sonst müsste er uns sagen welche Systemzellen verändert werden.
So müsste er sich mit dem Systemrom befassen und davon eine angepaßten Kopie von der Initalisierung basteln von wo er dann in den Rom springt.
--
42 ist die Antwort auf die "Frage nach dem Leben, dem Universum und dem ganzen Rest"
Aktuelle Projektdokumentationen
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
12.01.2020, 20:01 Uhr
Bert



Danke für alle Hinweise.

Eigentlich sollte es mit RET funktionieren. Im Quelltext zum Monitor auf Volkers Seite steht:

Quellcode:

     262/    F0AC : 01 5F F0                LD    BC,KDO2            ;Returnadresse
     263/    F0AF : C5                      PUSH    BC
     264/    F0B0 : E9                      JP    (HL)            ;Sprung zur Routine


Bei KDO2 (bzw. INLIN) wird der normale Prompt ausgegeben. Das Fragezeichen wird bei KDO1 ausgegeben.

Wobei, ich hab mir das gerade im jkcemu angeschaut.
Auf dem Stack steht 0000h und damit geht es nach RET einfach dort weiter.

Auf Stack und Registern ist zumindest im Emulator nicht zu erkennen, woher man kommt.


Da bleibt wohl doch nur der Weg mit RST 38h:

Zitat:

RST 38H, wird als zentraler Fehleransprung ver-
wendet, bei Eintritt in den Monitor erscheint ?#




Edit:
Ich glaub ich hab's: Es gibt beim Z1013 einen Anwender-Stack und einen System-Stack.
In letzterem steht auch die richtige Rücksprungadresse: F05Fh (KDO2). Deswegen funktioniert bei Systemprogrammen auch ein einfaches RET...

Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
16.01.2020, 23:02 Uhr
gerritsoft

Avatar von gerritsoft

Frank hat mir von eurem Faden berichtet und das hat mich jetzt gekratzt als alter Z1013-Hase.
Ich hab es am echten Z1013 noch mal gecheckt.

(1)Am sichersten ist die Methode, am Ende ein C3 00 F0 zu verwenden.
Leider ist das wie oben zu lesen ein Kaltstart, aber es funktioniert deswegen
auch mit allen Monitoren von 2.02 bis Brosig.

(2)Hier die wohl eleganteste Methode:
Habe ich mir überlegt und probiert, geht mögl. mit allen Monitoren,
wahrscheinlich sicher, da kein normaler Stacküberlauf es torpedieren kann,
und ohne irritierendes Fragezeichen:
SP auf 00B0-2 (System-Stack) stellen und RET.
31 AE 00 LD SP,000AEH
C9 RET

Ich weiß nicht ob gängige Progs dies nutzen und untersuche es noch weiter.

(3)Ein RST 38 liefert das Fragezeichen.
Damit ist FF für alle Monitore auch die kürzeste und drittsichere Methode
(sofern kein Error/Stacküberlauf die Zellen bei 38h zerschossen hat).

(4)Am 2.02 kann man C3 5F F0 verwenden (entspr. System-Stack).
Gilt wie gesagt nur für den ursprünglichen Monitor 2.02.
A2 (Komfort-Tastatur) und Brosig haben wieder andere laut Frank (FL),
da würde solch ein C3 auch Schaden anrichten - siehe (2)

(5)Für C9 (RET) kommt es noch auf den Programmstart an.
Es gibt die Möglichkeit, ein Programm mit @Buchstabe zu starten,
dann muß ab 00B0 eingetragen sein Buchstabe Niederw. Höherw. Startadresse,
also in 3-Byte Schritten, gibt entsprechend auch 48 Byte dafür.
Damit behandelt sie der Monitor wie Systemprogramme, verwendet
den System-Stack und alles geht gut.
Damit klappt C9.

Definitiv geht C9 nicht beim Start der Anwendung
durch den Befehl J Adr (Jump Adresse),
damit kann man u.U. den ganzen RAM abschießen.
Ursache ist der durch J erzwungene Anwenderstack ab <0090h.
Also (2)

(6)Eine Möglichkeit haben wir auch noch getestet,
selbststartende Headersave-Programme Typ C.
Da diese i.d.R. per HS Kommando @L geladen werden,
behandelt sie der Monitor wie Systemprogramme usw.
Also man kann dort C9 verwenden.
Nur wenn solch ein Programm einen anderen Stack verwendet,
muß der Rücksprung angepasst sein - siehe (2)
--
Ich kann auch geschweißte Kassetten reparieren.
Null eins fuenf sieben acht eins neun zwei zwei vier vier neun. Bringen wir sie raus! Energie!

Dieser Beitrag wurde am 17.01.2020 um 04:59 Uhr von gerritsoft editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
16.01.2020, 23:39 Uhr
gerritsoft

Avatar von gerritsoft

@Mobby5

ich hatte 30 Jahre lang angenommen, das Fragezeichen erscheint bei RST 38 zwingend, bei Analyse des Monitors sah ich aber in den Calls nach F058 ziemlich viele Verzweigungen.
--
Ich kann auch geschweißte Kassetten reparieren.
Null eins fuenf sieben acht eins neun zwei zwei vier vier neun. Bringen wir sie raus! Energie!

Dieser Beitrag wurde am 17.01.2020 um 04:49 Uhr von gerritsoft 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