Robotrontechnik-Forum

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

Robotrontechnik-Forum » Technische Diskussionen » [CAOS 4.2] IX, IY und AF' ... » Themenansicht

Autor Thread - Seiten: -1-
000
12.04.2026, 08:22 Uhr
Asato

Avatar von Asato

Moin,

gestern habe ich bei einem kleinen Programm u. a. IX, IY und AF' verwendet und dabei ein kurioses Programmverhalten beobachtet, das im Debugger schließlich den Verdacht begründete, dass CAOS im Hintergrund aktiv ist und diese Register teilweise nutzt. Kann das sein?

Grüße

Steffen
--
https://unchainedgroup.wordpress.com/
https://codeberg.org/Asato
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
12.04.2026, 11:00 Uhr
susowa



IX ist tabu.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
12.04.2026, 13:16 Uhr
Asato

Avatar von Asato

Mag sein, für meine Zwecke bin ich bare metal unterwegs, brauche CAOS also nicht.

Ich nehme an, dass CAOS auf den PIO und CTC Interrupts meinem Programm dazwischenfunkt, oder gibt's noch andere Quellen?
--
https://unchainedgroup.wordpress.com/
https://codeberg.org/Asato
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
12.04.2026, 13:48 Uhr
maleuma



IX wird als Zeiger für Systemarbeitszellen benutzt, also auch für den Tastaturinterrupt beispielsweise. Wenn du IX ändern willst, dann nur über das CAOS-Unterprogramm SIXD - siehe Handbuch.
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
12.04.2026, 14:42 Uhr
Bert




Zitat:
Asato schrieb
Mag sein, für meine Zwecke bin ich bare metal unterwegs, brauche CAOS also nicht.


Naja, solange Du Dein Programm mit CAOS lädst und startest, gelten auch erstmal die Regeln von CAOS.
Siehe CAOS-Handbuch, Kapitel '3.14 Spezielle Systembedingungen'.


Zitat:

Ich nehme an, dass CAOS auf den PIO und CTC Interrupts meinem Programm dazwischenfunkt, oder gibt's noch andere Quellen?


Siehe Handbuch 'Kapitel 3.6.6 Interrupttabelle'.
Neben PIO und CTC für die Tastatur kommen ggf. noch Interrupts durch die Module M003, M021 und M052 dazu.
--
Viele Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
12.04.2026, 14:52 Uhr
maleuma



Wenn Du CAOS nicht brauchst, kannst du den CAOS-ROM auch wegschalten.
Dann musst Du aber auch alle Interruptquellen so uminitialisieren, dass keine Interrupts mehr in den CAOS-ROM gehen.
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
12.04.2026, 16:41 Uhr
Asato

Avatar von Asato


Zitat:
Bert schrieb
Naja, solange Du Dein Programm mit CAOS lädst und startest, gelten auch erstmal die Regeln von CAOS.
Siehe CAOS-Handbuch, Kapitel '3.14 Spezielle Systembedingungen'.



In meiner Originalausgabe von Juli 1988 gibt's den Abschnitt nicht (aber im 3.12 steht etwas) .. Klar, CAOS startet, aber danach brauche ich es nicht mehr, so dass ich meine eigenen Regeln nach dem Start machen kann .. mich wundert nur, dass offenbar auch AF' neben IX betroffen ist *kopfkratz* ... als alter DOSianer bin ich irritiert über Systeme, die mir Prozessorregister wegnehmen, schlechter Stil bei einem Prozessor, der nur so wenig hat


Zitat:
Bert schrieb
Siehe Handbuch 'Kapitel 3.6.6 Interrupttabelle'.
Neben PIO und CTC für die Tastatur kommen ggf. noch Interrupts durch die Module M003, M021 und M052 dazu.



Okay, guter Hinweis!


Zitat:
Mario schrieb
Wenn Du CAOS nicht brauchst, kannst du den CAOS-ROM auch wegschalten.



Ah, interessant! Hab ich schon gesucht, aber nicht gefunden. Wie macht man das? Kann ich dann auf den Speicherbereich, in den CAOS gemapped ist, direkt zugreifen?


Zitat:
Mario schrieb
Dann musst Du aber auch alle Interruptquellen so uminitialisieren, dass keine Interrupts mehr in den CAOS-ROM gehen.



Genau, das interessiert mich, aber mehr als PIO und CTC gibt's im Basismodell D001 Auslieferungszustand vom Band - mal abgesehen von Zusatzmodulen, die Bert erwähnte - nicht, oder? Würde ich die von mir nicht benötigten Interruptroutinen deaktivieren ...

Grüße

Steffen
--
https://unchainedgroup.wordpress.com/
https://codeberg.org/Asato
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
12.04.2026, 19:08 Uhr
Bert




Zitat:
Asato schrieb
.. mich wundert nur, dass offenbar auch AF' neben IX betroffen ist *kopfkratz* ...


Bei welcher Gelegenheit macht sich das mit AF' bemerkbar? Kann man das irgendwie nachstellen? Betrifft es eher A' oder eher F'?



Zitat:

Ah, interessant! Hab ich schon gesucht, aber nicht gefunden. Wie macht man das?


Port 88h, Bit 0 ausschalten. Vorher mit DI alle Interrupts abschalten:

Quellcode:

PIOADAT EQU 88h

  DI
  IN A, (PIOADAT)
  RES 0, A
  OUT (PIOADAT), A




Zitat:

Kann ich dann auf den Speicherbereich, in den CAOS gemapped ist, direkt zugreifen?


Der CAOS-ROM geht von E000h bis FFFFh. Nach dem Wegschalten ist da nix mehr und man liest von allen Speicherstellen FFh. Dafür sorgen die Pullups an den Datenleitungen.
Auf was willst Du da direkt zugreifen?
--
Viele Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
12.04.2026, 23:40 Uhr
susowa




Zitat:
Bert schrieb

Auf was willst Du da direkt zugreifen?


Dann könnte man ab C000H bis FFFFH mit einem Block des M011 oder mit dem M022 etwas Sinnvolles tun.

Btw: Das AF' von CAOS in Beschlag genommen wird, wäre mir neu. Das könnte dann sozusagen ein bisher "unentdecktes" Feature sein.

MfG

Dieser Beitrag wurde am 12.04.2026 um 23:40 Uhr von susowa editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
13.04.2026, 06:30 Uhr
u-held



Du kannst das IX-Register fast frei verwenden, wenn Du vor der Verwendung den alten Wert sicherst und Interrupts abschaltest. Dann kannst Du allerdings auch keine Tasten abfragen und sonstige CAOS-Funktionen nutzen. Nach Deinem Programm müssen IX wiederhergestellt und Interrupts erlaubt werden.

VG, Dietmar
--
Kompetenz simulieren
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
13.04.2026, 10:01 Uhr
Asato

Avatar von Asato


Zitat:
Bert schrieb
Bei welcher Gelegenheit macht sich das mit AF' bemerkbar? Kann man das irgendwie nachstellen? Betrifft es eher A' oder eher F'?



Betraf A' (auf F' habe ich nicht geachtet). War eine triviale Routine, die halt A' nutzte mit EX, allerdings im Zusammenhang mit der illegalen Nutzung von IX .. kann aber auch ein Fehler bei
https://floooh.github.io/tiny8bit/kc854-ui.html sein, da das Fehlverhalten in der Programmausführung bei den anderen Emulatoren nicht auftrat. Nach DI am Anfang des Programmes trat der Fehler dann auch bei dem EMU nicht mehr auf.


Zitat:
Port 88h, Bit 0 ausschalten. Vorher mit DI alle Interrupts abschalten:



Perfekt, danke! Ich nehme an, nach einem Reset ist alles beim Alten? Oder muss die Maschine ausgeschaltet werden?


Zitat:
Auf was willst Du da direkt zugreifen?



Wäre ja schön gewesen, wenn ein Teil des regulären Arbeitsspeichers (RAM8?!) zurückgemapped wird, sodass man nicht mehr umschalten müsste zum Zugriff ...


Zitat:
Dietmar schrieb
Du kannst das IX-Register fast frei verwenden, wenn Du vor der Verwendung den alten Wert sicherst und Interrupts abschaltest. Dann kannst Du allerdings auch keine Tasten abfragen und sonstige CAOS-Funktionen nutzen. Nach Deinem Programm müssen IX wiederhergestellt und Interrupts erlaubt werden.



Interrupts brauche ich, die müsste ich umbiegen auf Leerfunktionen. Tasten hm .. müsste ich ggf. selbst abfragen ...


Zitat:
Bert schrieb
Siehe Handbuch 'Kapitel 3.6.6 Interrupttabelle'.
Neben PIO und CTC für die Tastatur kommen ggf. noch Interrupts durch die Module M003, M021 und M052 dazu.



Werden die Module beim Einstecken automatisch initialisiert? Angenommen, mein Programm trifft auf einen KC 85/4 in voller Ausbaustufe wie würde ich sicherstellen, dass alles aus D001 sauber deaktiviert wird, wenn mein Programm die Kontrolle übernimmt?

Beste Grüße

Steffen
--
https://unchainedgroup.wordpress.com/
https://codeberg.org/Asato
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
13.04.2026, 20:53 Uhr
Bert




Zitat:
Asato schrieb

Zitat:
Port 88h, Bit 0 ausschalten. Vorher mit DI alle Interrupts abschalten:



Perfekt, danke! Ich nehme an, nach einem Reset ist alles beim Alten? Oder muss die Maschine ausgeschaltet werden?


Reset reicht. WIMRE ist der Unterschied zwischen Reset und Power-On nur, das bei letzterem der (Grund-)Speicher gelöscht wird. Außerdem werden die Modul initialisiert.



Zitat:

Interrupts brauche ich, die müsste ich umbiegen auf Leerfunktionen. Tasten hm .. müsste ich ggf. selbst abfragen ...


Warum das Rad neu erfinden? Welche Interrupts willst Du denn nutzen und wofür?
Eigne ISR können in der Interrupttabelle nachgetragen werden. Die Tabelle liegt im RAM.


Zitat:

Werden die Module beim Einstecken automatisch initialisiert?


Ja. Welche Module automatisch aktiviert werden hängt dabei von der CAOS-Version ab:
Ein CAOS 3.1 z.B. aktiviert ein M022 im Schacht 08.
Seit CAOS 4.2 gibt es direkten Support für ein M003.
Die Joystickmodule werden ab CAOS 4.5 supported.
Das USB vom M052 wird seit CAOS 4.7 automatisch berücksichtigt.

Für mich klingen Deine Fragen eher so, als ob Du gegen CAOS arbeiten willst, statt mit CAOS

Vielleicht ist auch der JUMP-Befehl was für Dich: Der schaltet ein Speichermodul mit FFh ein und CAOS komplett weg. Gedacht war das für ein neues Betriebssystem, welches per Modul kommt. Genutzt wird das im KC85/2. Der kann mit einem M006 zum KC85/3 'aufgerüstet' werden.
--
Viele Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
14.04.2026, 11:12 Uhr
ralle



Man kann ein M022 16k Expander-RAM mit eigenen OS befüllen und mit Jump Schachtnummer ansprechen. Funktioniert so beim KC85/4 mit Dos4.62. Allerdings müsste man den Bereich ab 4000h bis 7FFFh intern ausschalten und der Modul dort hin schalten. Dann kann von beliebigen Datenträger das OS dort installiert werden.
--
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
013
14.04.2026, 13:23 Uhr
Asato

Avatar von Asato


Zitat:
Bert schrieb
Für mich klingen Deine Fragen eher so, als ob Du gegen CAOS arbeiten willst, statt mit CAOS



Ich bin da leidenschaftslos. Ausgang der Diskussion war ja der Gebrauch des IX Registers, der von CAOS verboten wird. Ich brauche CAOS nach dem Start des Programms halt nicht weiter, daher die Vor- und Nachteile und ob es Wert ist, den Stress wegen eines Registers in Kauf zu nehmen und CAOS abzuschalten.

Grüße

Steffen
--
https://unchainedgroup.wordpress.com/
https://codeberg.org/Asato
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
14.04.2026, 18:30 Uhr
susowa




Zitat:
Asato schrieb
... daher die Vor- und Nachteile und ob es Wert ist, den Stress wegen eines Registers in Kauf zu nehmen...


Nach meiner bisherigen Erfahrung eher nicht. Die Interrupts betreffen alle I/O-Module (auch Eigenbau) mit möglichen Int-Quellen - das hat man auch ohne CAOS nicht unter Kontrolle. Du kannst zwar Dein Programm im DI laufen lassen mit dem RESET-Taster als Tastatur, das ist aber sehr spartanisch. Der Verzicht auf IX ist stressfrei und lässt das System am Leben, Software kann man doch anpassen ...

MfG
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