Basicheader für ASM-Start beim PLus4/C16 mit 64 Kb ?

Es gibt 13 Antworten in diesem Thema, welches 2.174 mal aufgerufen wurde. Der letzte Beitrag (15. Oktober 2017 um 14:56) ist von spacer.

  • Hallo, wie sieht bitte die Routine fü rden Basicstart beim Plus4 aus ?

    C64 :
    ------------------------------------------
    * = $801

    !byte $b, $08, $a, 0, $9E, $32, $30, $36, $31, 0, 0, 0 ; basic header
    -------------------------------------------

    Plus4 :
    .........

    Danke.
    Gruss

  • Ist genauso eine Basic-Zeile

    Code
    *= $1000
    !byte $00,$0c,$10,$0a,$00,$9e,$34,$31,$30,$39,$00,$00,$00
    ; main
    *=$100d
    
    
    ... hier Dein Programm

    If we're evil or divine - we're the last in line. - Ronnie James Dio (1984) -
    Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. |

  • Gleich, nur auf den Basic Start des Plus vier angepasst.
    Der liegt bei... Google wird es dir verraten.

    GREETINGS PROFESSOR FALKEN
    A STRANGE GAME.
    THE ONLY WINNING MOVE IS NOT TO PLAY.
    HOW ABOUT A NICE GAME OF CHESS?

  • Code
    *= $1000
    !byte $00,$0c,$10,$0a,$00,$9e,$34,$31,$30,$39,$00,$00,$00

    Man könnte auch

    Code
    *= $0fff
    !byte $00,$00,$0c,$10,$0a,$00,$9e,$34,$31,$30,$39,$00,$00,$00

    oder

    Code
    *= $0ffe
    !byte $00,$00,$00,$0c,$10,$0a,$00,$9e,$34,$31,$30,$39,$00,$00,$00

    oder

    Code
    *= $0ffd
    !byte $00,$00,$00,$00,$0c,$10,$0a,$00,$9e,$34,$31,$30,$39,$00,$00,$00

    nehmen, das ist alles genauso falsch: Ein Basic-Header beginnt nun mal mit dem Linkpointer, und die Ladeadresse endet immer auf $01.

    Yes, I'm the guy responsible for the Bitte melde dich an, um diesen Link zu sehen. cross assembler. And some Bitte melde dich an, um diesen Link zu sehen..

  • Bei Ladeadresse mti $1001 startet es beim Plus4 nicht nur mit $1000.

    Gruss

  • nehmen, das ist alles genauso falsch: Ein Basic-Header beginnt nun mal mit dem Linkpointer, und die Ladeadresse endet immer auf $01.


    Ist natürlich richtig und auch falsch. :) Ist natürlich besser, wenn man die eine $00 raus lässt, um dann nach $1001 zu laden. Ansonsten muss man immer absolut laden.
    Wenn die $00 drin ist, man nach $1000 lädt, steht es jedoch genau so richtig im Speicher.

    Beißen wir einfach ein Byte ab:

    Code
    *= $1001
    !byte $0b,$10,$0a,$00,$9e,$34,$31,$30,$39,$00,$00,$00

    If we're evil or divine - we're the last in line. - Ronnie James Dio (1984) -
    Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. |

  • Knusper...kusper..
    Jetzt geht es auch wieder mit $1001 uw.

    Gruss

  • Wer kann mir bitte einmal den Basicheader entschlüsseln ?
    Wie kommen die Werte zustande?
    Wo liegt das ASM-Programm , welches ausgeführt werden soll?

    ----------------------------------------------------------------------
    *= $1001
    !byte $0b,$10,$0a,$00,$9e,$34,$31,$30,$39,$00,$00,$00
    *=$c000 >>>>> muss dieses auch aufgeführt werden ?
    ......
    .......
    .......
    -----------------------------------------------------------------------

    Danke.
    Gruss

  • Ich habe den Header gefunden in Sourcecode.

    Warum ist dieses Programm beim Compilieen ca 17kb gross?

    Danke.
    Gruss


  • Weil dein rts bei $5000 im Speicher liegt. Von $1000 bis $5000 sind numal 16kb :wink:

    Gruß, Gerd

    Bitte melde dich an, um diesen Link zu sehen.

    Bitte melde dich an, um diesen Link zu sehen.

  • Wer kann mir bitte einmal den Basicheader entschlüsseln ?
    Wie kommen die Werte zustande?
    Wo liegt das ASM-Programm , welches ausgeführt werden soll?

    Lies mal Bitte melde dich an, um diesen Link zu sehen..

    Yes, I'm the guy responsible for the Bitte melde dich an, um diesen Link zu sehen. cross assembler. And some Bitte melde dich an, um diesen Link zu sehen..

  • Ist das Verhalten eigentlich genormt`Ich kenne das nur so, daß zwar der virtuelle Programmzähler neu gesetzt wird, aber der Objektcode lückenlos an das Vorherige anschließt (oder, bei 'richtigen' Assemblern, ein neues Code-Segment angefangen wird, das vom Linker dann zum entsprechenden Executable zusammengeführt wird)

    KI-Verwendung in diesem Posting: Rechtschreibkontrolle des Browsers.
    Abweichungen aufgrund des technischen Fortschritts oder individueller Vorlieben vorbehalten.

  • Also lückenlos so:

    ----------------------------------------------------------------------
    *= $1001
    !byte $0b,$10,$0a,$00,$9e,$34,$31,$30,$39,$00,$00,$00
    ......
    ......
    .......
    .......
    -----------------------------------------------------------------------

    Gruss