1. Forum
  2. Marketplace
    1. Terms Of Condition
    2. Map
    3. Reviews
  3. Gallery
    1. Albums
    2. Map
  4. Tools
  5. Games
    1. C64 Emulator (viciious )
  6. Lexicon
  7. Filebase
  8. Retro-Links
  • Login
  • Register
  • Search
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Pages
  • Forum
  • Gallery
  • Lexicon
  • Files
  • Link-Database
  • Marketplace Item
  • More Options

Dear visitor, welcome! Create an account or sign in to comment

You need to be a member in order to leave a comment

Already have an account? Sign in here.

Sign In Now

Sign up for a new account in our community. It's easy!

Register a new account
  1. Forum
  2. Marketplace
    1. Terms Of Condition
    2. Map
    3. Reviews
  3. Gallery
    1. Albums
    2. Map
  4. Tools
  5. Games
    1. C64 Emulator (viciious )
  6. Lexicon
  7. Filebase
  8. Retro-Links
  1. Forum
  2. Marketplace
    1. Terms Of Condition
    2. Map
    3. Reviews
  3. Gallery
    1. Albums
    2. Map
  4. Tools
  5. Games
    1. C64 Emulator (viciious )
  6. Lexicon
  7. Filebase
  8. Retro-Links
  1. Martins Retro Seite
  2. Retro-Computer
  3. Sonstige 8-32 Bit'er ...
  • Menü
  • Menü
  • Sidebar
  • Sidebar
  1. Forum
  2. Marketplace
    1. Terms Of Condition
    2. Map
    3. Reviews
  3. Gallery
    1. Albums
    2. Map
  4. Tools
  5. Games
    1. C64 Emulator (viciious )
  6. Lexicon
  7. Filebase
  8. Retro-Links

CBM 3032 Programm aus Basic laden

  • Aguetul
  • February 19, 2026 at 9:41 AM
  • Aguetul
    Nostalgiker
    Reactions Received
    24
    Posts
    78
    • February 19, 2026 at 9:41 AM
    • #1

    Ich möchte ein Programm, welches mittels TIM im Speicherbereich hex0280 bis hex6800 auf SD-Karte (petsd+) abgespeichert wurde, von einem Basic-Loader aus laden.

    Dieser Loader sieht prinzipiel wie folgt aus:

    10 load "beispiel",8

    Nach Ausführen des Loaders wird das Programm nur unvollständig geladen und läuft nicht.

    Workaround ist, den Loader unter TIM auch im Speicherbereich hex0280 bis hex6800 abzuspeichern.

    Gibt es eine andere Lösung? Einstellen bestimmter Pointer?

  • Online
    natas
    Intermediate
    Reactions Received
    78
    Posts
    222
    • February 19, 2026 at 6:56 PM
    • #2

    Ich vermute mal das ist wie beim C64, Daten oder Maschinensprachprogramme lädt man mit LOAD"BEISPIEL",8,1 dann sollte es auch an die Adresse $0280 landen.
    Mit LOAD"BESPIEL",8 lädt man an die BASIC Startadresse $0401.

    Es wäre ganz gut zu wissen was du genau vor hast.
    Welches BASIC hast du? 3.0 oder 4.0

    Soll das ein selbst startendes Programm werden? Wozu dann der Loader?

  • Aguetul
    Nostalgiker
    Reactions Received
    24
    Posts
    78
    • February 19, 2026 at 7:10 PM
    • #3

    Nein, das Problem liegt nicht dort. Die Bereiche unterhalb hex0400 werden einwandfrei geladen (Kontrolle mittels Disassembler) , bei bestimmten Pointer-Einstellungen auch das gesamte Programm. Es lässt sich dann einwandfrei bis zur letzten Zeile listen, aber nicht starten. Fehler wie "out of memeory error" treten auf. Irgend etwas mit den Pointern auf das Basic-Ende etc. stimmt nicht!

    Mittels TIM (ein CBM-Tool, existiert nicht für C64?) kann man ein Programm mit gewählter Start- und Endadresse abspeichern. Beispiel:

    sys 4

    . s "beispiel",08,0400,6800

    der Speicherbereich wird unter dem Namen "beispiel" von hex0400 bis hex6800 auf Laufwerk 8 abgespeichert.

  • Online
    natas
    Intermediate
    Reactions Received
    78
    Posts
    222
    • February 19, 2026 at 7:17 PM
    • #4

    Du überschreibst mit dem Programm System Bereiche unter anderem die beiden Tapebuffer.
    Die übrigens bei $027A anfangen, bei $0280 liegt der zweite Buchstabe des Dateinamens.
    Durch diese alternative Ladeadresse setzt du die Automatic die bei BASIC Programmen die Pointer automatisch korrekt setzt außer Kraft, daher die Frage was soll das?
    Schonmal daran gedacht den Maschinensprach Code zuerst zu laden und dann das BASIC Programm? und nicht das ganze als Block.

  • Aguetul
    Nostalgiker
    Reactions Received
    24
    Posts
    78
    • February 19, 2026 at 7:33 PM
    • #5

    Dort liegt nicht das Problem! Das Problem taucht immer auf, wenn man von einem kleinen Basic-Loader-Programm ein größeres auch reines Basic-Programm lädt. Alle Adressen des Loader-Programms bleiben irgendwie erhalten, so dass das nachgeladene Programm nicht läuft!

    Definitiv kein Problem des Maschinecodes unterhalb 0400!! Vergiss den!

  • Online
    natas
    Intermediate
    Reactions Received
    78
    Posts
    222
    • February 19, 2026 at 8:01 PM
    • #6

    Das Problem ist, das BASIC LOAD nur im Direktmodus korrekt unterstützt zumindest wenn du versuchst etwas größeres als das zuerst geladene Programm zuladen.

    Falls du BASIC 4.0 hast versuch es mal mit DLOAD, das müsste eigentlich im Gegensatz zu LOAD auch als Teil eines Programms funktionieren.

    Der C64 Trick müsste angepasst auch auf dem CBM mit BASIC 2/3 funktionieren:

    Quote

    Im Emu hat das nur 1 mal geklappt.

    Hier ist ein Artikel dazu:
    https://web.archive.org/web/2022111301…978_oct_nov.pdf

    Seite 11

    Zu Beitrag #2 der CBM kennt die Sekundäradresse nicht mit der Funktion Unterscheidung an Basicstart laden ohne und mit ,1 an die original Adresse. Der CBM lädt immer and die Adresse die bei Speichern genutzt wurde.

    Mad gibt es einen Trick wie man die Zeilennummern beim Codeblock abschalten kann?

  • Aguetul
    Nostalgiker
    Reactions Received
    24
    Posts
    78
    • February 19, 2026 at 8:32 PM
    • #7

    Leider verfügen meine CBM3032 nur über Basic 2.

    Ich bin immer aber nicht davon überzeugt, dass man mitttels Versetzung einiger Pointer das Problem nicht lösen kann!?

  • Online
    natas
    Intermediate
    Reactions Received
    78
    Posts
    222
    • February 19, 2026 at 8:39 PM
    • #8

    Woher weißt du den das vom BASIC definierte Ende vom größeren Programm? Und den Anfang der Variablen.

    Leider antwortest du ja nicht auf Fragen.

    Wenn das Zweite ein BASIC Programm ist kannst du die korrekten Werte ja einfach auslesen.
    Wenn du statt mit einem Loader versuchst alles zu laden vom großen BASIC Programm (angenommen es ist ein) die ML Routine im Tapebuffer nach lädst sollte es keine Probleme geben. (bin ich mir aber nicht sicher)
    Hier noch ein Beitrag zu der Problematik: https://www.atarimagazines.com/compute/issue6…am_Chaining.php

  • Online
    Mad
    Founding member
    Administrator
    Founding member
    Reactions Received
    1,332
    Posts
    1,678
    Images
    8
    Videos
    6
    Bookmarks
    5
    entries
    25
    Files
    15
    Location
    Artlenburg
    • February 19, 2026 at 9:39 PM
    • #9
    Quote from natas

    Mad gibt es einen Trick wie man die Zeilennummern beim Codeblock abschalten kann?

    keine Ahnung, aber ich noch nichts mit gemacht und auch noch nicht rausbekommen wie man die weg bekommt .

    Eine ADMIN schläft nicht er ROOT

    Mein Inventar :-)

    mehrere C64, Dolphin Dos 2, SD2IEC, MMC2IEC, IECATA V2, XS-1541, XU-1541-SD, SwinSID X2, 1541U+ eth, Easyflash 1+3, DIAG-BLACK II, Chameleon 64 mit RR-Net, TuningBoard64, Modular64, 64Micro, KFC, WIC64 :thumbup:

  • Aguetul
    Nostalgiker
    Reactions Received
    24
    Posts
    78
    • February 19, 2026 at 9:44 PM
    • #10

    Welche Antworten schulde ich dir denn?

    Der C64-Ansatz ist interessant, in diese Richtung hatte ich auch schon gedacht und getestet. Leider funktioniert er beim CBM3032 nicht, möglicherweise wegen der Adressen 624, 625 und 158. Habe versucht, entsprechende Zero-Page Adressen des CBM hier einzusetzen, bisher ohne Erfolg.

  • Online
    natas
    Intermediate
    Reactions Received
    78
    Posts
    222
    • February 19, 2026 at 10:15 PM
    • #11

    100 QO$ = CHR$ (34) : REM DEFINE QUOTE FOR PRINTING
    110 REM PRINT ENTRIES TO THE SCREEN IN PROPER SPOTS
    120 PRINT" {CLEAR} {03 DOWN} LOAD"; QO$; "INVISIBLE WEDGE"; QO$; ",8"
    130 PRINT"{04 DOWN} RUN"
    140 PRINT"{DOWN} LOAD"; QO$; "PRINTER"; QO$;",8"
    150 PRINT"{04 DOWN}RUN"
    160 PRINT "{02 DOWN}LOAD"; QO$; "WORD PROC"; QO$;", 8"
    170 PRINT"{04 DOWN}RUN{HOME}"
    180 REM POKE SIX RETURNS INTO KEYBOARD BUFFER
    190 REM POKE # OF RETURNS INTO LOC. 158
    200 FORI = 1TO6 : POKE622 + I, 13 : NEXT : POKE158, 6

    Bootmaker For VIC, PET and 64

    Hab es endlich gefunden.

  • Aguetul
    Nostalgiker
    Reactions Received
    24
    Posts
    78
    • February 20, 2026 at 9:38 AM
    • #12

    Du hast mir mal wieder auf die Sprünge geholfen. Der Artikel aus dem Atarimagazin war sehr hilfreich!

    Meine Lösung ist:

    1. Größtes der Programme laden, um Pointer zu ermitteln, dann
    print peek(42),print peek(43)
    Beispiel:
    peek(42)=216 (LO byte)
    peek(43)=103 (HI byte)


    2. Ladevorgang Beispiel:
    10 poke42,216:poke43,104 <= Hi byte + 1 !!
    20 poke44,216:poke45,104
    30 poke46,216:poke47,104
    40 load”wortpro3”,8

    Einfach, aber erfolgreich!

  • Online
    natas
    Intermediate
    Reactions Received
    78
    Posts
    222
    • February 20, 2026 at 12:46 PM
    • #13

    Gern geschehen, wäre sowas nichts für ein ROM das auch etwas vom knappen Speicher überbleibt?
    Ist das WordPro 3?

  • Aguetul
    Nostalgiker
    Reactions Received
    24
    Posts
    78
    • February 20, 2026 at 3:14 PM
    • #14

    Bezüglich ROM: leider sind alle Sockel bei mir EPROMs belegt.

    1. Newtim (Assembler und Disassembler)

    2. Basic Expand (Erweiterung um renumber, append, ...)

    3. Multidot (Pixel-Grafik für dem CBM3032)

    Wordpro3 habe ich hier nur als Beispiel eingefügt. Es handelt sich um einen Wortprozessor, mit dem ich seinerzeit meine Dissertation schrieb. Siehe:

    /pub/cbm/pet/utilities/text/

  • Aguetul
    Nostalgiker
    Reactions Received
    24
    Posts
    78
    • February 20, 2026 at 3:30 PM
    • #15

    Wordpro3 ist nicht im ROM-Bereich, sondern auf der SD-Karte. Es ist ein Maschinenprogramm, dem ich seinerzeit Umlaute verpasst hatte (mit Hilfe eines deutschen Character-ROMS).

    Übrigens funktioniert die o.g. Methode für einen Loader nur bei Basic-Programmen . Ich habe einige Tests gemacht.

  • Online
    natas
    Intermediate
    Reactions Received
    78
    Posts
    222
    • February 20, 2026 at 3:48 PM
    • #16
    Quote from Aguetul

    Wordpro3 ist nicht im ROM-Bereich, sondern auf der SD-Karte. Es ist ein Maschinenprogramm, dem ich seinerzeit Umlaute verpasst hatte (mit Hilfe eines deutschen Character-ROMS).

    Übrigens funktioniert die o.g. Methode für einen Loader nur bei Basic-Programmen . Ich habe einige Tests gemacht.

    BASIC 4 hat da DLOAD damit sollte es klappen.
    Aber warum ist dieser Loader überhaupt notwendig? Ist das irgendwie rekonstruiert? Warum kann man es nicht einfach direkt laden?
    Oder ist das ein verkürztes Menü welches sich in der Mache befindet.

  • Aguetul
    Nostalgiker
    Reactions Received
    24
    Posts
    78
    • February 20, 2026 at 4:27 PM
    • #17

    Ich habe eine kleine Microshell angelehnt an die Linux-Bash in Basic geschrieben. Diese verwende ich, um mich im Filesystem zu bewegen. Befehle wie cd, cp, date, ls, uname, mkdir, rm, rmdir etc. können ausgeführt werden. Auch starte ich damit Programme direkt, wie z.B. wordpro3, dafür benötige ich den Loader.

    Natürlich hätte ich das alles gerne als Maschinenprogramm einem ROM. Dafür fehlt mir aber sowohl das Knowhow als auch der Antrieb.

    Verwendet werden die sd2iec-Kommandos (C64, VC20), die auch unter petsd+ (CBM3032) gleichermaßen existieren.

  • Online
    natas
    Intermediate
    Reactions Received
    78
    Posts
    222
    • February 20, 2026 at 8:43 PM
    • #18

    Wenn es so weit fertig ist, kann man es kompilieren und dann tatsächlich auch in ein ROM brennen.

    Da bei dir alle Sockel bereits belegt sind müsste man sich etwas überlegen.

    Das Multidot ROM ist vermutlich das ROM welches am seltesten genutzt wird, daher würde es sich anbieten hier einen ROM Umschalter zu verbauen, also einfach ein größeres EPROM und die höheren Adressleitungen werden im einfachsten Fall durch einen Schalter oder einen kleinen Microcontroller der Tastenkombinationen abfängt und umschaltet.

    Beim 3032 ist ja normal keine interne Datasette verbaut, hier würde sich ein C64 Tapecart gut machen die Hardware und die Firmware sollte kompatibel sein nur die Menü-Software müsste angepasst werden.

  • Aguetul
    Nostalgiker
    Reactions Received
    24
    Posts
    78
    • February 21, 2026 at 9:25 AM
    • #19

    Icch denke mal darüber nach.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!

Register Yourself Login

Latest Posts

  • VC20 Basic und Umlaute

    Aguetul March 5, 2026 at 8:44 PM
  • C64 und C64c

    Aguetul March 5, 2026 at 8:02 PM
  • Commodore PC1 Technical Manual / Schaltpläne 10/1987

    natas March 2, 2026 at 9:17 PM
  • CBM 3032 Programm aus Basic laden

    Aguetul February 21, 2026 at 9:25 AM
  • Webfund: Einige schöne PET Projekte

    natas February 18, 2026 at 5:07 PM
  • Fischertechnik Interface Platine

    _8Bit_Joey February 16, 2026 at 7:13 PM
  • Gehäuse für den RCT (Retro Chip Tester) und Widerstandsdekade

    _8Bit_Joey February 16, 2026 at 7:06 PM
  • VC20 Basic V2

    Aguetul February 15, 2026 at 8:10 PM
  • Commodore 64 Ultimate in der Founders Edition

    Mad February 7, 2026 at 11:45 PM
  • Bestellt jemand bei Digikey? Ich möchte gern ein HIDMAN Modul bauen.

    Turboschlumpf February 5, 2026 at 3:28 PM
  • Bildschirm CBM3032 zu hell

    natas January 15, 2026 at 8:59 AM
  • Hilfe bei Spindelmotoren gesucht

    natas January 14, 2026 at 10:31 PM

Tags

  • CBM3032 Basic Loader
  1. Privacy Policy
  2. Contact
  3. Legal Notice
  4. Terms Of Use
Style: Core by cls-design
Stylename
Core
Manufacturer
cls-design
Designer
Tom
Licence
Commercial styles
Help
Supportforum
Visit cls-design
Martins Retro Seite in the WSC-Connect App on Google Play
Martins Retro Seite in the WSC-Connect App on the App Store
Download