Robotrontechnik-Forum

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

Robotrontechnik-Forum » Technische Diskussionen » Universelles Dateiformat für BASIC-Programme am KC85/2..5 » Themenansicht

Autor Thread - Seiten: -1-
000
01.01.2021, 17:57 Uhr
FL



Hallo Leute,

vor einiger Zeit traf ich mich mit Gerrit (GERRiTsoft).
Wir hatten im CAOS 4.7 die Tapelist-Funktion ausprobiert.
Dabei fiel uns bei einigen Basic-Programmen auf,
daß sie als MC-Programm angezeigt wurden.
Ursache war, daß sie mit der Zeilennummer 1000 beginnen.
Das 18.Byte im 1.Block des Files hat dann den Wert 3.
Dadurch wird es als selbststartendes MC-File erkannt.

Wir fragten uns, ob es möglich sei, eine Datei zu erstellen,
die sowohl mit BASIC-CLOAD als auch mit CAOS-LOAD geladen werden kann,
und in beiden Fällen funktioniert.

Noch am gleichen Abend entstand LOADHACK.
Ein mit LOADHACK verändertes und mit CSAVE gespeichertes Programm
läßt sich sowohl mit BASIC-CLOAD als auch mit CAOS-LOAD laden.
Beim Laden mit CAOS-LOAD ist das File selbststartend.
Der Aufruf über das CAOS-Menü ist ebenfalls möglich.

Als Beispiel haben wir das Programm BLUMEN von Gerrit gewählt: BLUMEN.SSS BLUMEN.WAV
Detailierte Informationen findet Ihr im Quellcode.
LOADHACK.ASM LOADHACK.KCC LOADHACK.WAV

Alles Gute im neuen Jahr
Frank.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
01.01.2021, 18:01 Uhr
ralle



Und mit 4.8? Übrigens, Danke
--
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
01.01.2021, 18:59 Uhr
Bert




Zitat:
FL schrieb
...
Ursache war, daß sie mit der Zeilennummer 1000 beginnen.
Das 18.Byte im 1.Block des Files hat dann den Wert 3.
Dadurch wird es als selbststartendes MC-File erkannt.



Hallo Frank,

An welcher Speicherstelle landet denn das 18. Byte im ersten Block des Files?
Und auf welchen Filetyp bezieht sich das? SSS oder KCC (bzw. KCB)?

Robbi hat ja eine nette Liste mit den BASIC-Arbeitszellen auf seiner Homepage:
http://www.sax.de/~zander/z9001/baszell.pdf

Wenn ich das richtig sehe, werden BASIC-Programme (egal ob SSS oder KCC/KCB) ab 0300h in den RAM geladen (wenn man ein ROM-BASIC verwendet).

Ich kann mir irgendwie noch nicht vorstellen, das durch ein einfaches ändern eines Bytes das Programm selbststartend wird. Das Programm BSAVE schreibt dafür z.B. den RUN-Token in den Eingabepuffer und außerdem ein kleines Stück Maschinencode, welches den BASIC-ROM zuschaltet und den Warmstart anspringt...

Viele Grüße,
Bert
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
01.01.2021, 19:42 Uhr
FL



Nein, ein einfaches Ändern eines Bytes reicht natürlich nicht. Wir haben dem Basic-Programm
LOADHACK quasi untergeschoben und daraus ein Basic-Programm mit eingebettetet Maschinencode
gemacht. Die Selbststartroutine (LOADHACK) ist damit im Programm selbst enthalten, oberhalb 400h.
Sie sorgt auch für die Initialisierung des Basic-Arbeitsbereichs von 0300h-0400h.

Das Programm ist so aufgebaut, daß es LOAD den üblichen Vorblock vorgaukelt obwohl es sich
eigentlich um ein Basic-Programm handelt (mit CSAVE gespeichert).

Wenn man mit LOAD versucht die Datei BLUMEN.SSS/BLUMEN.WAV zu laden, findet CAOS im Block 01
an der 18.Stelle (Anzahl Argumente) den Wert 03 und dahinter gültige Werte für Lade, End- und
Startadresse.
Wir haben dabei beide Fälle berücksichtigt. BLUMEN.SSS für Diskette und BLUMEN.WAV für
Kassette (mit/ohne Dateinamen im Block 01).

Es ist also ein SSS- und KCC-File in einem.

Gruß
Frank.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
02.01.2021, 12:32 Uhr
maleuma



Das ist ja ein interessanter Ansatz, habe es mit CAOS 4.8 und Laden vom USB-Stick ausprobiert. Das Einlesen und starten funktioniert sowohl mit dem CAOS-Kommando (LOAD BLUMEN.SSS) als auch mit BASIC (CLOAD "BLUMEN").

Nur im Vorblock der SSS-Datei ist dabei leider kein sinnvoller Programmname in den ersten 12 Byte für die Interpretation als KCC-Datei möglich. Dort muss ja die erste BASIC-Zeile stehen. Aber sonst eine prima Sache!
--
Mario.
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