OS/A65 Building Procedure

(c) 1989-96 Andre Fachat


Building the object files for use on a CS/A65 machine should really be only a 'make', as long as my cross assembler xa is in the path. If there weren't these many options one can change.

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.

C64		to be defined if a C64 version is to be built.
		The following options have to be set when doing a C64 build:
		NOMMU, NOSYSPORT, SHORTLINE. VIDPAGE has to be defined to
		14, and CLK2MHZ and CMOSCPU have to be undefined.
		NMIDEV has to be defined for the fast RS232 driver.


C64 specific options, to be set in c64rom/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!



kernel options in oa1/oa1.a65:

ROM		with ROM all options are set globally or somewhere else
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)
CMOSCPU		for (Rockwell) CMOS CPU
NOMMU		system for a computer without MMU 
NOSYSPORT	system has no SYSPORT (at $efe0)
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.
CLK2MHZ		if NOSYSPORT or NOSINPORT, the CPU clock has to be set here
NMIDEV		enables NMI routine (without MMU only)
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.


shell options in oash/sh.a65:

SHORTMON	no assembler/disassembler in monitor
NOSYSFKT	no file/system calls in monitor
NOMON		no monitor
NOSH		no shell
NOPRG		without PRG header
SHORTLINE	use 40 columns instead of 80


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