Robotrontechnik-Forum

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

Robotrontechnik-Forum » Technische Diskussionen » Frage zum Startupcode beim KC87 » Themenansicht

Autor Thread - Seiten: -1-
000
27.01.2016, 09:52 Uhr
Bert



Hallo Forum,

ich habe gerate im Startupcode vom KC87 rumgestöbert und bin über die folgende Merkwürdigkeit gestolpert:


Damit wird ab der auf 0036h(=EOR) hinterlegten Adresse die folgenden 256 Bytes überschrieben.
Nun gibt es m.E. zwei Fälle:
1. Neustart
da ist EOR noch nicht initialisiert und zeigt sonstwo hin und

2. Restart
da werden eben mal 256 Bytes hinter dem logischen RAM-Ende überschrieben.
Hierbei kann man noch unterscheiden, ob das logische gleich dem physischen RAM-Ende ist, da wird dann ins Nirwana oder in einen ROM-Bereich geschrieben. Die andere Möglichkeit ist: EOR zeigt in den RAM, in dem Fall wird ein Stück Speicher hinter EOR überschrieben.

Ich kann in dem Codestück keinen sinnvollen Zweck finden.

Im Fall 1 schaltet möglicherweise unbeabsichtigt das ROM-Modul (welches die Schreibbefehle auf ROM-Adressen zum aktivieren bzw. deaktivieren nutzt). Ok, solche Module gab es erst später, aber das Verhalten scheint mir auch nirgendwo (öffentlich) dokumentiert zu sein.

Und im Fall 2 werden evtl. wichtige Daten gelöscht, einfach so.

Hat jemand evtl. eine Idee, warum das gemacht wird?
Habe ich irgend etwas übersehen?

Viele Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
27.01.2016, 10:23 Uhr
volkerp
Default Group and Edit
Avatar von volkerp

das ist ein Bug im OS. Eigentlich soll hier wirklich der RAM hinter EOR geleert werden, aber beim Kaltstart funktioniert das nicht, da EOR noch nicht initialisiert ist. Manchmal wird dadurch hier zufälligerweise auf die Adresse FCxx..FFxx zugegriffen und damit der Schalt-ROM abgeschaltet :-(

Das Löschen des Bereichs hinter EOR ist in der Doku beschrieben.
Damit sollten etwa Parameter für Treiber zurückgesetzt werden. Leider hat dieses Verhalten zur Folge, dass alle Programme (z.B. Treiber), die EOR zum eigenen Schutz vor den eigenen Beginn setzen, hier extra noch 100h Byte dazu geben, um nicht selbst gelöscht zu werden.

s.a. dazu bei Ulrich: http://www.sax.de/~zander/z9001/tip/tipc.html
--
VolkerP

http://hc-ddr.hucki.net
(Z9001, Z1013, LC-80, ...)

Dieser Beitrag wurde am 27.01.2016 um 10:46 Uhr von volkerp editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
27.01.2016, 15:39 Uhr
Bert



Vielen Dank für die Bestätigung bzw. Aufklärung.

Viele Grüße,
Bert
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