1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-07 23:29:39 +00:00

Now that cc65 programs can run as SYS files themselves my ProDOS Loader ulimately has to change from a minimalistic shell replacement to a pure loader (without exit hook). This approach simplifies several things. However the "reboot after exit" option now present as a ProDOS Loader variant has to move into the cc65 program.

git-svn-id: svn://svn.cc65.org/cc65/trunk@4172 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
ol.sc 2009-09-14 19:58:06 +00:00
parent 29cea09e0d
commit 0c161a6cdd
8 changed files with 32 additions and 6 deletions

View File

@ -127,6 +127,7 @@ usage.
<itemize>
<item>_dos_type
<item>get_ostype
<item>rebootafterexit
</itemize>

View File

@ -127,6 +127,7 @@ usage.
<itemize>
<item>_dos_type
<item>get_ostype
<item>rebootafterexit
<item>textframe
<item>textframexy
<item>videomode

View File

@ -67,6 +67,7 @@ function.
<itemize>
<item>_dos_type
<item><ref id="get_ostype" name="get_ostype">
<item>rebootafterexit
</itemize>
@ -75,6 +76,7 @@ function.
<itemize>
<item>_dos_type
<item><ref id="get_ostype" name="get_ostype">
<item>rebootafterexit
<item>textframe
<item>textframexy
<item><ref id="videomode" name="videomode">

View File

@ -140,6 +140,9 @@ extern unsigned char _dos_type;
unsigned char get_ostype (void);
/* Get the machine type. Returns one of the APPLE_xxx codes. */
void rebootafterexit (void);
/* Reboot machine after program termination has completed. */
/* The following #defines will cause the matching functions calls in conio.h
* to be overlaid by macros with the same names, saving the function call
* overhead.

View File

@ -91,6 +91,7 @@ S_OBJS= _scrsize.o \
randomize.o \
rdkey.o \
read.o \
reboot.o \
revers.o \
rwcommon.o \
syschdir.o \

View File

@ -2,7 +2,7 @@
; Startup code for cc65 (Apple2 version)
;
.export _exit
.export _exit, done, return
.export __STARTUP__ : absolute = 1 ; Mark as startup
.import zerobss
.import initlib, donelib
@ -165,10 +165,6 @@ init: ldx #zpspace-1
bne basic
; Check ProDOS system bit map
lda $BF58 ; protection for pages $00 - $07
and #%11110000 ; ignore protection of text pages
cmp #%11000000 ; only zero and stack pages are protected
bne basic
lda $BF6F ; protection for pages $B8 - $BF
cmp #%00000001 ; exactly system global page is protected
bne basic
@ -272,7 +268,7 @@ reset: stx SOFTEV
sta SOFTEV+1
eor #$A5
sta PWREDUP
rts
return: rts
; Quit to ProDOS dispatcher
quit: jsr $BF00 ; MLI call entry point

21
libsrc/apple2/reboot.s Normal file
View File

@ -0,0 +1,21 @@
;
; Oliver Schmidt, 14.09.2009
;
; void rebootafterexit (void);
;
.constructor initreboot
.export _rebootafterexit
.import done, return
_rebootafterexit := return
.segment "INIT"
initreboot:
; Quit to PWRUP
lda #<$FAA6
ldx #>$FAA6
sta done
stx done+1
rts

View File

@ -91,6 +91,7 @@ S_OBJS= _scrsize.o \
randomize.o \
rdkey.o \
read.o \
reboot.o \
revers.o \
rwcommon.o \
syschdir.o \