Robotrontechnik-Forum

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

Robotrontechnik-Forum » Technische Diskussionen » KC85/4 / CAOS/Umschalten der Speicherebenen » Themenansicht

Autor Thread - Seiten: -1-
000
03.07.2017, 09:47 Uhr
srn

Avatar von srn

Hallo zusammen,

wenn zum Beispiel die Ebenen 0 und 1 des RAM4 getauscht werden
SW 4 3
SW 4 7
SW 4 3
dauert dies recht lange.
Was passiert, wenn dieses Umschalten in einer ISR vorgenommen wird?
Meine Annahme: Ein laufendes Programm (zum Beispiel Musikwiedergabe) wird dadurch merklich unterbrochen.

Ist das korrekt?

Danke und viele Grüße.
René
--
http://www.kc-und-atari.de/ --- M004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
03.07.2017, 17:18 Uhr
Mobby5



Eigentlich sollte sowas dann ruckzuck passieren. Es dauert ja schon einen kurzen Moment, bevor das "SWITCH", nach Aufruf im CAOS, im Speicher gefunden wird.
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
03.07.2017, 20:34 Uhr
MarioM



Der 2 Block von RAM4 sind die Reste der ungenutzen IRM Blocke - die liegen weiterhin auf den Adressbereichen im IRM Bereich - Mario kopiert den Bereich des Ram 4 dorthin - und gibt den RAM4 wieder frei - beim zurückschalten werden
beide Speicherinhalte getauscht - deshalb dauert es etwas länger als bei einem normalen umschalten von anderen Speicherbereichen.

ich hoffe das das so korrekt ist.

Gruß Mario
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
03.07.2017, 20:49 Uhr
srn

Avatar von srn

Hallo Mario und Ingo,

das klingt plausibel. Ich hätte noch dazuschreiben sollen, daß ich es nur am Emulator getestet hatte. Dann werde ich mal einen anderen Bereich testen, wie es damit aussieht.

Viele Grüße.
René
--
http://www.kc-und-atari.de/ --- M004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
04.07.2017, 14:37 Uhr
srn

Avatar von srn

Kann man denn in den oberen Ebenen des RAM8 (also bei einem KC85/5) auch richtige Anwenderprogramme ablegen?
Im Handbuch steht: Frei für Anwender.
RAM8 ist aber tw. der Farb- und Pixel-Speicher und dann liegt da noch System-Zeugs drin.
Wenn ich da zum Beispiel in die Ebene D etwas lade, ist entweder der Rechner "tot" oder
der Bildspeicher wird überschrieben.
Weiß jemand, ob die Ebenen auch tatsächlich für Anwenderkode verwendet werden können?

Danke.
-René
--
http://www.kc-und-atari.de/ --- M004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
04.07.2017, 14:58 Uhr
Enrico
Default Group and Edit


Das geht schon.
UNIPIC macht das wohl so.
Du schaltest nur falsch.
Das meiste der 256k RAM liegt auf der Ebene.
Steht das denn nicht im HB drin?
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
04.07.2017, 19:43 Uhr
srn

Avatar von srn


Zitat:
Enrico schrieb
Du schaltest nur falsch.



Sehe ich auch so. Aber wo nur steht's im Handbuch, wie es richtig geht?
Der Fehler sitzt wie meistens vor dem Objekt
--
http://www.kc-und-atari.de/ --- M004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
04.07.2017, 20:55 Uhr
MarioM



Das kommt auch auf die CAOS Version an. Da musst du Mario fragen. Denke nur daran wenn du dort Programme ablegst und ausführst ist, sind auch die IRM-Arbeitszellen ausgeblendet. Du kannst also keine Caos-System bzw. Unterprogramme verwenden oder dann wieder umschalten. Dafür gibt es die Programme F018h und F01Bh (siehe neues HB Seite 108 Abschn. 3.5.3.)

Gruß Mario
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
05.07.2017, 07:33 Uhr
srn

Avatar von srn

Naja, deshalb wollte ich ja auch nur den Bereich 0800-A800 belegen.
Aber auch wenn ich die Ebenen über Block 1 verwende, zerschießt es mir das Bild.
F01B schaltet den IRM ja ganz ab. Damit komme ich ja dann an nichts mehr heran.
Ich bin hier bestimmt auf dem Holzweg.

Viele Grüße.
René
--
http://www.kc-und-atari.de/ --- M004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
05.07.2017, 20:10 Uhr
MarioM



Stimmt. Ich würde auch nur auf den RAM-Ebenen ab 8000h was laufen lassen aber nicht in den IRM Blöcken. Du hast ja sowieso schon 2 Blöcke in diesem Bereich beim Grundgerät 85/4.

Gruß Mario
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
05.07.2017, 21:49 Uhr
FL



Hallo René,

man kann den IRM nur als Ganzes ein- und ausschalten.
Wenn Dein Programm hinter dem IRM liegt, kann es das System nur über Umwege aufrufen. Dafür gibt es im CAOS die Programmverteiler 4 bis 6.
(Bei den Verteilern 5 und 6 benötigst Du zusätzlich noch einen eigenen Stack.)

Gruß
Frank.

Dieser Beitrag wurde am 05.07.2017 um 21:50 Uhr von FL editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
06.07.2017, 06:39 Uhr
srn

Avatar von srn

Hallo Mario, hallo Frank,

irgendwie steige ich nicht dahinter.
Macht es viel Aufwand, wenn Ihr bitte mal einen kurzen Beispielkode einstellt, damit ich sehe, wie der RAM8 geschaltet werden muß, um anschließend dort ein ca. 4kB großes Programm (ab 8000) abzulegen und es dann später aufzurufen?
Also hauptsächlich geht's mir um das Schalten und den Aufruf.
Ich habe mir zwar die Beschreibungen zu den PV 3-5 durchgelesen, aber die schalten den IRM beim Aufruf ein und beim Rücksprung aus. Bislang nahm ich an, ich müßte das genau umgekehrt tun.


Danke Euch und viele Grüße.
René
--
http://www.kc-und-atari.de/ --- M004
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
06.07.2017, 21:03 Uhr
MarioM



Denke daran das dein Programm im RAM8 keinen zugriff auf die Arbeitszellen im IRM hat (ist ja ausgeschaltet). Der interne Speicher wird über die Bits der Ausgaberegister 84h,86h, sowie über die PIO-Ports 88h und 89h (siehe HB Mario Leubner S.102) gesteuert.
Pio Port A Bit 2 (88h) schaltet den IRM ein/aus. Port B (89h) Bit 5 den Ram 8 ein/aus, Bit 6 den Schreibschutz. Ausgabekanal 84h Bit 4-7 die RAM Blöcke auf Adresse 8000h.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
06.07.2017, 21:34 Uhr
FL



DEMORAM8.ASM
DEMORAM8.KCC
DEMORAM8.WAV

Mit dem RAM8 mußt Du nicht viel machen.
Du wählst mit SWITCH eine RAM8-Bank aus und lädtst das Programm.
Durch eine Installationsroutine (z.B. via Autostart) verschiebt es sich dann in den RAM8.
Im Hauptprogramm selbst mußt Du eigentlich nur den IRM im Auge behalten.

Leider ist es nicht möglich das ganze Programm hinter dem IRM zu verstecken.
Nach Menüworten, die im RAM8 stehen, sucht das CAOS nicht.
Außerdem sind nicht alle CAOS-UP für die Programmverteiler 2-6 geeignet.
Dadurch benötigst Du außerhalb des RAM8 noch ein paar Hilfs-UP die zu Fuß
den IRM schalten und über PV1 das UP aufrufen.

Im Beispiel betrifft das den Aufruf vom CAOS-UP 17H (INLIN).
PV2 bis 6 zerstören die Rückgabeparameter des UP.
INLIN möchte aber im Register DE den Zeilenanfang der Eingabe zurückgeben.

Gruß
Frank.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
06.07.2017, 23:07 Uhr
Enrico
Default Group and Edit


Du wirst das wohl am besten händisch machen müssen.
Schau Dir doch mal Franks RAMTEST-Programm an.
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
015
07.07.2017, 06:34 Uhr
srn

Avatar von srn

Hallo Frank,

vielen Dank. Das schaue ich mir in Ruhe genau an. Habe es eben überflogen und mindestens die Hälfte muß ich erstmal kapieren.
Bin leider kein Assembler-Programmierer mehr und von den CAOS-Innereien verstehe ich ja noch weniger.
Aber mit Deinem Beispiel bekomme ich das hin, das weiß ich.

Viele Grüße.
René
--
http://www.kc-und-atari.de/ --- M004
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