Skip to content

Latest commit

 

History

History
137 lines (107 loc) · 4.59 KB

build.7.adoc

File metadata and controls

137 lines (107 loc) · 4.59 KB

BUILD(7) Manual Page

NAME

build - a description how to build GeckOS

DESCRIPTION

Building the object files for use on an OS/A65 machine should really be only a 'make', as long as my cross assembler xa http://www.floodgap.com/retrotech/xa/ is in the path. If there weren’t these many options one can change.

ROM OPTIONS

The options below can be set in the appropriate files. But if the programs are assembled as part of a ROM, then "ROM" is defined and the 'local' options are ignored and overwritten by the ones defined in stdrom/rom.a65 or c64rom/c64rom.a65. These two files are the files to build a rom for a CS/A computer with MMU or the C64 respectively.

global options, to be set in stdrom/rom.a65 or c64rom/c64rom.a65:

ROM             mandatory for a rom build. All local options are ignored.

ROMSTART        Where in CPU memory (with MMU with the upper 4 bits set
                to zero, i.e. $00000-$0ffff) starts the ROM.

MIN_MEM		minimum amount of memory for the kernel to start
RAMTEST		If set, RAM is tested on boot
SHORTRAMTEST	if defined, do a short memory test only
MEMINIVAL	clear memory to this value on boot

The following options customize the kernel functionaly:

NEED_CHECKCHLD	Do we need the CHECKCHLD call?
NEED_GETINFO	Should GETINFO be included in kernel?
NEED_RENICE	Should RENICE be included in kernel?
NEED_SLOCK	Should SLOCK be included in kernel?

NO_STREAMS	if set, no streams are available
NO_FSM		if set, no filesystem interface
NO_SEM		if set, semaphores are no available
NO_SEND		if set, no SEND/RECEIVE interface

EOK_SEPARATE	if set kernel is not at top of memory (do not include
		CPU interrupt vectors)
EOK_NOFILL	Do not fill memory in ROM between kernel and end

C64 specific options, to be set in arch/c64//c64rom.a65:

CLEARMEM        if defined, the memory is set to the value CLEARMEM is defined
                to when booting.
C64NEEDCIA1     if defined, disables reading the CIA1 icr in the kernel.
                Therefore it has to be assured that a device reads this
                register to clear the interrupt line again.
                Undefine this for use with the fast RS232 driver.

C64_BGND_COL
C64_TEXT_COL
C64_BORDER_COL  colors to use

C64SWITCH       The terminal switch key, 61= C= key, 4= F1
C64NMIRESET     makes the Restore key a RESET key. Doesn't work with fast
                serial driver!
STACKCOPY       If defined in non-MMU systems, save stack area somewhere else
                when doing a task switch. If a task switch is done, the stack
                is copied back. If not defined, divide the 6502 stack
                from $100 to $1ff into pieces, one for each task and one
                for the system. It's faster without, but with this option
                there is much more stack space per task and more tasks
                are available.

CS/A specific options

ROMTEST         with ROMTEST the MMU is not loaded, but the contents of
                the MMU registers secured with GETBLK. Also memory is
                not tested (to test a new system ROM)

kernel options in kernel/kernel.a65:

ROM             with ROM all options are set globally or somewhere else
CMOSCPU         for (Rockwell) CMOS CPU
NOMMU           system for a computer without MMU
NOSINPORT       system has no SYSPORT, but LED is driven, if a board is
                plugged in
NOENVIRQ        to build system where tasks cannot have an own irq routine
BATMEM          main memory is not erased at memory test (for battery buffered
                RAM)
NOMIRRORMEM     if the memory chip is definitely not mirrored (i.e. no
                unconnected CPU address lines), one can
                disable the test for this.
NMIDEV          enables NMI routine (without MMU only)

fsiec options in oafs/fsiec.a65

INVERT          parallel IEEE488 port output lines are inverted
PARALLEL        do it for IEEE488 interface, not serial interface
                (works for CS/A computer and C64). NOLOOP has then
                to be defined also.
NOCMD           do not interpret other fs commands than FS_OPEN_*
NOFS            do not register as fs - listen on bus only
NOLOOP          do not listen on bus - register as fs only
STDTST          include STDIO lib if needed.
NOPRG           without PRG header

lmon options in apps/lmon.a65:

SHORTMON        no assembler/disassembler in monitor
NOSYSFKT        no file/system calls in monitor
SHORTLINE       use 40 columns instead of 80

SEE ALSO

AUTHOR

Written by André Fachat.

REPORTING BUGS