Robotrontechnik-Forum

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

Robotrontechnik-Forum » Technische Diskussionen » Programmierung von Grafikeffekten auf DDR-Computern » Themenansicht

Autor Thread - Seiten: [ 1 ] -2-
600
09.02.2026, 07:07 Uhr
ralle



Richtig. Laut Artikel allerdings nicht fest an Adresse gebunden. Es sind nur die CALL-Befehle anzupassen oder zurück zu übersetzen, als Toolpaket.
--
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
601
09.02.2026, 19:00 Uhr
maleuma




Zitat:
ralle schrieb
Richtig. Laut Artikel allerdings nicht fest an Adresse gebunden. Es sind nur die CALL-Befehle anzupassen oder zurück zu übersetzen, als Toolpaket.


In dem abgebildeten Teil der FA-Seite kann ich das nicht herauslesen. Deshalb habe ich mir den MC-Teil einmal im Reassembler angesehen. Es sind tatsächlich keine absoluten Sprünge bzw. UP-Aufrufe enthalten, sodass man das tatsächlich auf einen anderen Adressbereich verschieben könnte.
Dafür sind aber UP-Aufrufe enthalten, welche in den CAOS-COM laufen. Der Autor hat in dem Beitrag nicht darauf hingewiesen, dass das Programm nur unter CAOS 4.2 lauffähig ist.

Enthalten sind:
CALL E044H (PADR1 vom CRT-Treiber)
CALL E329H (CRT-Routine)
CALL E06AH (DABR-Routine)
CALL E05EH (TCIF-Routine)
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
602
10.02.2026, 07:14 Uhr
Bert




Zitat:
maleuma schrieb
Der Autor hat in dem Beitrag nicht darauf hingewiesen, dass das Programm nur unter CAOS 4.2 lauffähig ist.


Er kannte wahrscheinlich nix anders


Zitat:

Enthalten sind:
CALL E044H (PADR1 vom CRT-Treiber)
CALL E329H (CRT-Routine)
CALL E06AH (DABR-Routine)
CALL E05EH (TCIF-Routine)



Das ist sehr schlechter Stil. Wozu gibt es denn die Sprungverteiler...
Außerdem könnte man noch eine kleine Sprungtabelle am Anfang des Codes realisieren. Dann muß man bei Anpassungen nicht die CALLs im BASIC-Programm nachziehen.
--
Viele Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
603
10.02.2026, 08:51 Uhr
ralle



Man hätte es ebensogut im BASIC auf die Speicherzellen poken können. Im Zweifel mit BLOAD einlesen. Vermutlich ist der Bereich deshalb, weil beim Kaltstart des Interpreters der Speicher gelöscht währe.
--
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
604
10.02.2026, 09:15 Uhr
susowa




Zitat:
Bert schrieb
Das ist sehr schlechter Stil. Wozu gibt es denn die Sprungverteiler...



Die funktionieren nur für CAOS-UP's, welche in der SUTAB stehen. "PADR1 vom CRT-Treiber" steht vermutlich nicht als CAOS-UP zur Verfügung.

Ist natürlich trotzdem schlechter Stil !

MfG susowa
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
605
10.02.2026, 12:14 Uhr
Bert



Ist 'PADR1 vom CRT-Treiber' was anderes als UP34h?

--
Viele Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
606
10.02.2026, 16:32 Uhr
maleuma



Ja, PADR1 berechnet HL anhand des aktuellen Fensterbeginns und läuft dann in PADR rein. Das müsste sonst noch vorher separat programmiert werden und würde den Code größer werden lassen.

Quellcode:

E040          ;CRT-Treiber
E040
E040 ED5BA0B7 PADR0:  LD      DE,(CURSO)
E044 2A9CB7   PADR1:  LD      HL,(WINON)
E047 19               ADD     HL,DE
E048 CB24             SLA     H
E04A CB24             SLA     H
E04C CB24             SLA     H
E04E                  ;
E04E F5       PADR:   PUSH    AF              ;**34**
E04F 7D               LD      A,L     ;Spalte
E050 6C               LD      L,H     ;Pixelzeile
E051 FE28             CP      28H
E053 3006             JR      NC,IAD2 ;zu gross
E055 F680             OR      80H
E057 67               LD      H,A     ;HL=Pixeladr.
E058 F1               POP     AF
E059 A7               AND     A       ;CY=0
E05A C9               RET
E05B                  ;
E05B F1       IAD2:   POP     AF
E05C 37               SCF             ;CY=1
E05D C9               RET


--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
607
11.02.2026, 15:15 Uhr
Dresdenboy



Mal ein anderes Thema:

T-State-genaue Synchronisation auf eine Flanke

Das macht natürlich nur Sinn, wenn man es braucht und die Bedingungen stimmen, d.h. z.B. gleicher oder ein voneinander abgeleiteter Takt für die beteiligten Bausteine.

Bei HeikoS könnte das z.B. für die Sprites auf dem JU+TE relevant sein.

Ich brauche es für den BIC, natürlich nicht für eine Tabellenkalkulation, aber für Grafikeffekte mit zeilenweisen Änderungen. Ich schrieb ja in <405> schon darüber bzgl. Hblank. Falls man mit >20 T-States Jitter (IN + JR/JP) leben kann, ist das natürlich kein Problem, aber falls diese Checks oft erfolgen müssen, kostet das schon deutlich.

Neben solchen Effekten gibt es einen anderen Nutzen: Falls man genau seine Position bzgl. der Bilddarstellung kennt, braucht man z.B. auch nicht irgendwelche Statusbits checken. Z.B. beim GDC ist dann nicht nötig, auf FIFO FULL oder READ DATA zu prüfen, weil klar ist, dass es in den entspr. Zyklen so klappen wird.

Die oben beschriebene Variante braucht natürlich viele Zeilen, um sich zu synchronisieren. Das kann sich schon für folgende Frames reduzieren, indem man einen framegenauen CTC-Interrupt zu einer genauen Startzeit (nach obigem Sync) aufsetzt (siehe <450> im BIC-Austausch), sollte bei Nutzung von HALT bis zum nächsten Frame der Jitter nur noch 0-4 T-States betragen. (BIC hat 1 M1-Waitstate).

Das braucht dann nur noch wenige Zeilen, um die HBlank-Flanke zu erwischen. Aber auch die kosten schonmal >1% der Zeit, wenn man dazwischen nicht viel tun kann. Es ginge auch nebenbei innerhalb von zyklusgezähltem Code (per Hand, VSCode-Plugin oder zmac-Assembler) mit insgesamt ca. 150 T-States Overhead, aber braucht immer noch mehrere Zeilen. Und falls man aus dem Takt kommt, müsste man es wiederholen.

Daher habe ich mir, in Anlehnung an C64-Methoden (der ja richtige Rasterinterrupts hat sowie 2 Zyklen-NOPs und sogar CPU-Takt-schnelle CIA-Zähler, was einige Tricks ermöglicht), etwas für den BIC oder andere Z80-Systeme (die ja meist einen CTC haben) überlegt:
Sofern sich z.B. der CTC-Timer für eine Zeile genau programmieren lässt (beim BIC: 240 T-States, also Timerwert 15 mit Vorteiler 16), kann bei entspr. Startpunkt schnell eine Synchronisation zumindest zu den CTC-Timer-Flanken erfolgen bzw. der vorliegende Jitter indirekt ermittelt werden. Falls man über Interrupt (z.B. über denselben CTC-Timer, der ja auch mit einem Vielfachen von 15 - oder mit was auch immer man benötigt - laufen kann) nach HALT an die Stelle kam, beträgt der Jitter wie oben 0-4 T-States. Dann reicht zumindest auf dem BIC als Grundgerüst eine Sequenz wie:

Quellcode:

  IN A,(80h) ; 12
  LD D,A     ; 5  -> 17 T-States auf dem BIC, also immer 1 mehr als der CTC-Timer-Zyklus mit Vorteiler 16
  IN A,(80h) ; 12
  LD E,A     ; 5
  IN A,(80h) ; 12
  LD H,A     ; 5
  IN A,(80h) ; 12
  ADD A,D    ; 5
  ADD A,E    ; 5 einfach mal addieren, hier gibt es mehrere Möglichkeiten, z.B. ADD HL,DE usw.
  RLA        ; 5
  LD L,A     ; 5 Summe*2 in L
  JP (HL)    ; 5 H kann hier auch schon 2 versch. Werte haben (z.B. 14h oder 13h)
             ; 88 T-States



(die T-States für BIC kann man hier unter Timing Z80+M1 sehen: https://map.grauw.nl/resources/z80instr.php ) Für Systeme ohne M1-Waitstate oder z.B. einen Z8 braucht man einen anderen Sampling-Code oder erhält einfach nur andere Zahlen als Ergebnis, da IN A,(n)+LD r,A nur 11+4 also 15 T-States braucht. Dann ist das 1 Takt kürzer als der CTC-Timerzyklus, wo man durch leichtes Verschieben die Flanke von der anderen Seite "einfängt".

Daraufhin wird in eine der 2 Speicherseiten entspr. HL gesprungen, wo sich weiterer Code zum Ausgleich des Jitters befindet. Da je nach System andere Speicherbereiche nutzbar sind oder auch der Platz knapp sein kann (auch, wenn pro Seite nur einige weitere Bytes genutzt werden), kann das entspr. angepasst werden.

Da der CTC-Timer hier gelesen wird, kann sowohl mit dessen gelesenen Werten (z.B. späteres Lesen liefert kleinere CTC-Werte) aber auch ein paar Berechnungen ein brauchbarer Adressraum geschaffen werden. Unterscheiden sich die Werte in L z.B. teils nur um 1, würden angesprungene Befehle teils überlappen. Das kann auch trickreich genutzt werden. Z.B. 18h, 18h, 20h wäre ein JR 18h überlagert mit einem JR 20h. So ähnliche Techniken werden im Sizecoding genutzt oder auch auf dem C64 in einer "NOP-Rutsche". Der JR-Sprung kann dann entspr. Zeitausgleichscode anspringen und schließlich ein finales Sprungziel.

Das ganze sollte auch nicht von System-ISRs durcheinander gebracht werden, was für eine Demo nicht so schwer zu handhaben ist.

VG,
Matthias
--
___________________________________
Produktionen im Rahmen der "The Computer Art Community" (Demoszene): https://demozoo.org/sceners/64936/, YT-Kanal: https://www.youtube.com/@4lpha0ne/videos
Aktuelle Projekte: GDC-Analysen für Grafikeffekte u. Demo/Game-Framework, universelles BIC-Modul auf Pico-Basis, Packer mit sehr kleinem 6502-Dekompressor
HW: BIC, MSX2+, KC87, KC85/2-4, KCC, LC-80, PC1715, C64, C16, Plus/4, A500, A1200, Mega 65, µCs ...

Dieser Beitrag wurde am 12.02.2026 um 14:54 Uhr von Dresdenboy editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
608
13.02.2026, 19:47 Uhr
HeikoS



Hallo Matthias,

wenn ich das richtig verstanden habe, müsste das so gehen, wie du es beschrieben hast, vorausgesetzt, man bekommt die CTC-Timer wirklich synchron zum Bildaufbau programmiert. Die ISR muss dann noch zum richtigen Zeitpunkt, z.B. bei einer bestimmten Zeile, zuschlagen und mit deinem Code, über den CTC-Zählerstand, dann richtig „einrasten“. Bin gespannt, ob das funktioniert.

Bei den Sprites-Demos auf dem Ju+Te 6K war das sehr viel einfacher, als zeilenweise bestimmte Modifikationen durchzuführen, wie Du es planst. Damit flüssige Sprite-Bewegungen möglich sind, müssen für einen Bewegungs-Schritt die Operationen:

- „Löschen“ an alter Position (t-1) und
- „Schreiben“ an neuer Position (t)

atomar und immer komplett pro Frame in der Blanking-Phase ausgeführt werden. Sonst sieht man ein „Flackern“ oder „Ausblenden“ der Sprites während der Bewegung. Das kann man sehr gut durch Einrasten per Polling am V-Sync-Impuls erreichen. Da geht auch nicht viel Zeit verloren, weil alles gerade so in die Blanking-Phase passt (und die Erstellung der Adress-Tabellen sogar noch außerhalb gemacht werden muss).

Bei Spielen würde man diese Abläufe dann eher durch eine ISR triggern und atomar durchlaufen lassen. Dazu bin ich aber noch nicht gekommen. Wäre sicher interessant, die Möglichkeiten des Z8 dazu zu nutzen. Der hat ja Timer „on-chip“.

Viele Grüße, Heiko
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
609
15.02.2026, 13:57 Uhr
Dresdenboy



@Heiko:
Beim BIC arbeitet der GDC ja mit CPU-Takt oder 1/2 davon (Teiler 4 u. 8 für die 15 MHz). Und da alle GDC-Operationen inkl. Bildaufbauzeiten darauf basieren, geht es da glücklicherweise.

Klar, eine Sprite-Engine mit bildweisem Update funktioniert ja so, wie du schreibst. Ich glaube eher, dass der Nutzenfall für zeilenweise Operationen eher im stärkeren Ausnutzen der dunkelgetasteten Phasen ist. Natürlich nur, wenn man dafür schnell genug ist. Beim BIC kümmert sich ja auch noch der non-flash-Modus mit u. der FIFO-Buffer kann genutzt werden, um diesen mit mehreren OUTI o.ä. schonmal voll zu stopfen, damit der GDC den Buffer bei Dunkeltastung schon einmal verarbeiten kann. Da hilft natürlich auch, zu wissen, wo man auf dem Bildschirm u. innerhalb der Zeile gerade ist, um nicht die angesprochenen Tests auf HBlank, FIFO full usw. machen zu müssen.

Palette, Grafikmodus etc. ändern u.ä. wäre da auch eher schon interessant. Oder man erzielt noch mehr Sprites oder andere Bildänderungen pro Frame, wenn man diese so eintaktet, wie das Bild mit der Zeit aufgebaut wird.

VG,
Matthias
--
___________________________________
Produktionen im Rahmen der "The Computer Art Community" (Demoszene): https://demozoo.org/sceners/64936/, YT-Kanal: https://www.youtube.com/@4lpha0ne/videos
Aktuelle Projekte: GDC-Analysen für Grafikeffekte u. Demo/Game-Framework, universelles BIC-Modul auf Pico-Basis, Packer mit sehr kleinem 6502-Dekompressor
HW: BIC, MSX2+, KC87, KC85/2-4, KCC, LC-80, PC1715, C64, C16, Plus/4, A500, A1200, Mega 65, µCs ...
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
610
08.03.2026, 09:25 Uhr
HeikoS



Inzwischen habe ich mich weiter durch die Disketten von Herrn Thierbach gewühlt. Die letzte Version der Software „3D-Grafik“ ist vom März 1990 und läuft mit N x M011/M022 und D004. Die Speicherverwaltung erfolgt automatisch, je nachdem wie viele RAM-Module gefunden werden. Die Module werden automatisch ab C000 eingeblendet. Im LOAD/SAVE-Menü kann zwischen DISK und TAPE umgeschaltet werden.

Die Grafik-Dateien aus der MP (s. Link) sind nicht auf den Disketten vorhanden, da müssen die Kassetten noch weiter durchsucht werden.

https://www.robotrontechnik.de/html/forum/thwb/showtopic.php?threadid=22549#254473

Ich bin von Herrn Thierbachs Arbeit sehr beeindruckt. Alles in Assembler programmiert. Ein komplettes Programm-Paket, mit dem man arbeiten kann, inkl. Handbuch.

Viele Grüße, Heiko










Dieser Beitrag wurde am 08.03.2026 um 09:29 Uhr von HeikoS editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
611
08.03.2026, 11:17 Uhr
Dresdenboy



@Heiko:
Super Arbeit! Und insgesamt ist es ein sehr wertvolles Stück Software. Hast du dir auch schon die Linien-Routinen angeschaut?

Falls du da noch einen Deep Dive suchst, ist hier der aktuelle Talk von einem Demoscener (Quiss/Reflex alias Matthias Kramm) über schnellste Linienroutinen auf dem C64 bzw. 6502.
https://www.youtube.com/watch?v=aOjp1XHrGVE

Da wurde auch eine weniger komplexe Methode (von einem Oxyron-Mitglied) zitiert, wo die Pixel, die in das gleiche Byte geschrieben werden, vor dem Schreiben in den Speicher zusammengefasst werden.

VG,
Matthias
--
___________________________________
Produktionen im Rahmen der "The Computer Art Community" (Demoszene): https://demozoo.org/sceners/64936/, YT-Kanal: https://www.youtube.com/@4lpha0ne/videos
Aktuelle Projekte: GDC-Analysen für Grafikeffekte u. Demo/Game-Framework, universelles BIC-Modul auf Pico-Basis, Packer mit sehr kleinem 6502-Dekompressor
HW: BIC, MSX2+, KC87, KC85/2-4, KCC, LC-80, PC1715, C64, C16, Plus/4, A500, A1200, Mega 65, µCs ...
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
612
08.03.2026, 12:27 Uhr
HeikoS




Zitat:
Dresdenboy schrieb
@Heiko:
Super Arbeit! Und insgesamt ist es ein sehr wertvolles Stück Software. ...



Ja, das finde ich auch und wir haben es Peter (P.S.) zu verdanken !!!

Er hatte sich an die 5. Computerfachtagung in Frankfurt/O. errinnert und von dem Programm erzählt.

https://www.robotrontechnik.de/html/forum/thwb/showtopic.php?threadid=22549#254468

Ich muss noch ein wenig üben, um z.B. einen "Überflug" oder "Durchgang" zu starten.

Viele Grüße, Heiko
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
613
10.03.2026, 13:25 Uhr
HeikoS




Zitat:
Dresdenboy schrieb
@Heiko:
... Hast du dir auch schon die Linien-Routinen angeschaut? ...)



Das sieht sehr nach dem Bresenham-Algorithmus aus.

s. https://nextcloud-ext.peppermint.de/s/Dn3eYQLDy7rzNK2

Wenn Herr Thierbach damit einverstanden ist, würde ich das Programm und die restlichen Quellen auch veröffentlichen. Bin ja mit ihm im Gespräch. Das ist sicher für alle KC85-Retro-Freunde ein sehr interessantes Stück DDR-Software-Geschichte.

Alles Gute für die OP !

Viele Grüße, Heiko
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
614
10.03.2026, 16:30 Uhr
ralle



Theoretisch dürfte das schon mit den CAOS 4.8 gehen.
--
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
615
10.03.2026, 19:14 Uhr
HeikoS




Zitat:
ralle schrieb
Theoretisch dürfte das schon mit den CAOS 4.8 gehen.



Jetzt muss ich auch sagen: Das verstehe ich nicht. Was meinst du damit ? ... dass in CAOS 4.8 auch der Bresenham-Algorithmus steckt? Der wurde ja eigentlich auf fast allen Rechnern der damaligen Zeit implementiert, LINE gibt es doch seit min. CAOS 3.1 im HC-BASIC.

Viele Grüße, Heiko
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
616
10.03.2026, 20:45 Uhr
HeikoS



Das ist das KC-System, mit dem „3D-Grafik“ damals entwickelt wurde. 2 x 64KB RAM + 1 x 16MB RAM + D004.

Disketten ließen sich leider nicht lesen, die hatte ich aber vorher schon auf einem anderen System gesichert. Da ich das Programm aber auch einmal auf originaler Hardware laufen lassen wollte, musste an den 3 Geräten die Standard-Wartung durchgeführt werden. Sicherungen inkl. Sicherungshalter waren oxidiert/korrodiert, sie wurden gesäubert/gewechselt. Dann war noch eine kleine Einstellung an der PLL-Schaltung im D004 (Disk-Aufsatz) notwendig, auch ein Standard-Problem. Nun läuft das System, nach so vielen Jahren, wieder einwandfrei.

Viele Grüße, Heiko



EDIT: Mit einem M052 habe ich nur durch hin- und her-switchen die ältere Kassetten-Version zum Laufen gebracht. Das Programm benötigt RAM immer auf C000H. Gibt es eine Möglichkeit, mit dem M052 eine Disk-Funktion zu simulieren, die zum D004 kompatibel ist ?

Dieser Beitrag wurde am 10.03.2026 um 20:52 Uhr von HeikoS editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
617
11.03.2026, 08:23 Uhr
ralle



Ja CAOS 4.8. Mario hat die ganze Massenspeichermimik überarbeitet.
--
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
618
11.03.2026, 21:10 Uhr
maleuma




Zitat:
HeikoS schrieb in 616
Gibt es eine Möglichkeit, mit dem M052 eine Disk-Funktion zu simulieren, die zum D004 kompatibel ist ?


Leider nicht. Der Zugriff auf das D004 geht über I/O-Befehle zum Koppel-RAM. Das kann mit dem M052 nicht simuliert werden.

CAOS 4.8 leitet die Kassetten-Routinen je nach eingestelltem DEVICE auf D004 oder USB um. Damit kann alte Software, welche eigentlich für Kassette entwickelt wurde, auch auf USB zugreifen. Allerdings muss USB wissen, welche Datei es laden soll, während man bei Kassette das Band selbst an die richtige Stelle spulen musste.
Deshalb ist beim Lesen die Übergabe eines Dateinamens erforderlich, was die alten Programme oft nicht machen.
--
Mario.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
619
Heute, 08:01 Uhr
HeikoS



@maleuma:

Danke für die Info, hatte das im CAOS 4.8 auch ausprobiert, das DEVICE-Konzept ist wirklich super! In „3D-Grafik“ ist der Source-Code von „FLOAD“ 1:1 in Assembler eingebaut inkl. der vielen I/O-Befehle.

„3D-Grafik“ lädt in der Disk-Version tatsächlich noch Teile von der Floppy nach und hängt daher, wenn er kein D004 erkennt. Wenn es gestartet ist, kann man zw. TAPE/DISK umschalten. Ich muss mal probieren, ob die TAPE-Funktion mit CAOS 4.8 und M052 dann den Dateinamen in „3D-Grafik“ irgendwie abfragt. Aber wahrscheinlich nicht …

Grüße, Heiko
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
620
Heute, 09:52 Uhr
ralle



In Basic funktioniert es. Allerdings leider ohne richtige Bezeichnung. Bei Kassette muss das DIR eben außen vor bleiben. Das würde es zwar machen, aber nicht sinnvoll. Ich habe es bei MinTex probiert.
--
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
621
Heute, 10:36 Uhr
HeikoS




Zitat:
HeikoS schrieb
@maleuma:
... Ich muss mal probieren, ob die TAPE-Funktion mit CAOS 4.8 und M052 dann den Dateinamen in „3D-Grafik“ irgendwie abfragt. Aber wahrscheinlich nicht …

Grüße, Heiko



Wie vermutet, geht das nicht:



Grüße, Heiko
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
622
Heute, 12:05 Uhr
Dresdenboy




Zitat:
HeikoS schriebIn „3D-Grafik“ ist der Source-Code von „FLOAD“ 1:1 in Assembler eingebaut inkl. der vielen I/O-Befehle.

„3D-Grafik“ lädt in der Disk-Version tatsächlich noch Teile von der Floppy nach und hängt daher, wenn er kein D004 erkennt. Wenn es gestartet ist, kann man zw. TAPE/DISK umschalten. Ich muss mal probieren, ob die TAPE-Funktion mit CAOS 4.8 und M052 dann den Dateinamen in „3D-Grafik“ irgendwie abfragt. Aber wahrscheinlich nicht …


Hier gäbe es ja mehrere Lösungsansätze. Ich schaue ja eher so von der Seite zu, aber überlege gerne mit. Wenn z.B. FLOAD aufgerufen wird, könnte da stattdessen zu einer Routine gesprungen werden, die den Namen für eine Kassettenoperation übergibt und dann das Laden startet?

VG,
Matthias
--
___________________________________
Produktionen im Rahmen der "The Computer Art Community" (Demoszene): https://demozoo.org/sceners/64936/, YT-Kanal: https://www.youtube.com/@4lpha0ne/videos
Aktuelle Projekte: GDC-Analysen für Grafikeffekte u. Demo/Game-Framework, universelles BIC-Modul auf Pico-Basis, Packer mit sehr kleinem 6502-Dekompressor
HW: BIC, MSX2+, KC87, KC85/2-4, KCC, LC-80, PC1715, C64, C16, Plus/4, A500, A1200, Mega 65, µCs ...
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: [ 1 ] -2-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek