From: Greg King (gngking_at_erols.com)
Date: 2003-02-13 08:43:11
-----Original Message-----
From: Michael McIntosh
Date: Tuesday, February 11, 2003, 03:07 PM
>
> I am writing a program that runs automatically upon loading by overwriting
> the BASIC warm-start vector while loading, and causing it to execute code
> at $02A7 when it finishes loading. That code, in turn, loads another
> program, and executes it.
>
> I have to write this code in assembly because I only have 89 bytes to work
> with ($02A7-$02FF).
You can make your program smaller by removing lines that are not needed:
ldx $ba ; get device # that loaded this program
ldy #1 ; (load at address that's stored in file)
jsr setlfs ; store numbers (Kernal call)
lda #(.strlen(PROGRAM_NAME)) ; get length of filename
ldx #<(_filename) ; set lower address of filename
ldy #>(_filename) ; set upper address of filename
jsr setnam ; set file-name (kernal call)
lda #0 ; set flag for load, not verify, operation
jsr load ; load program-file (kernal call)
bcc EXEC ; branch to execution if no load-error
jmp $e104 ; jump into C64 BASIC's error-routines
EXEC:
jmp PROGRAM_ADDR ; jump to program's entry-point
----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo_at_musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.
This archive was generated by hypermail 2.1.3 : 2003-02-13 10:27:20 CET