]> git.sur5r.net Git - cc65/blob - libsrc/cbm/exehdr.s
There's no 'closeallstreams' (anymore ?).
[cc65] / libsrc / cbm / exehdr.s
1 ;
2 ; Ullrich von Bassewitz, 2010-11-14
3 ;
4 ; This module supplies a small BASIC stub program that jumps to the machine
5 ; language code that follows it using SYS.
6 ;
7
8         ; The following symbol is used by linker config to force the module
9         ; to get included into the output file
10         .export         __EXEHDR__: absolute = 1
11
12 .segment        "EXEHDR"
13
14         .addr   Next
15         .word   .version        ; Line number
16         .byte   $9E             ; SYS token
17 ;       .byte   <(((Start / 10000) .mod 10) + '0')
18         .byte   <(((Start /  1000) .mod 10) + '0')
19         .byte   <(((Start /   100) .mod 10) + '0')
20         .byte   <(((Start /    10) .mod 10) + '0')
21         .byte   <(((Start /     1) .mod 10) + '0')
22         .byte   $00             ; End of BASIC line
23 Next:   .word   0               ; BASIC end marker
24 Start:
25
26 ; If the start address is larger than 4 digits, the header generated above
27 ; will not contain the highest digit. Instead of wasting one more digit that
28 ; is almost never used, check it at link time and generate an error so the
29 ; user knows something is wrong.
30
31 .assert (Start < 10000), error, "Start address too large for generated BASIC stub"
32
33