Index

Function Name: IOINIT

Purpose: Initialize system I/O
Call address: $FF84 (hex) 65412 (decimal)
Preparation:

	Registers:	none
	Memory		system map
	Flags:		none
	Calls:		none
Results:
	Registers:	.A used
			.X used
			.Y used
	Memory:		initialize I/O
	Flags:		none

Description: IOINIT is perhaps the major function of the Reset handler. It initializes both CIA's (timers, keyboard, serial port, user port, cassette) and the 8502 port (keyboard, cassette, VIC bank). It distinguishes a PAL system from and NTSC one and sets PALCNT ($A03) if PAL. The VIC, SID and 8563 devices are initialized, including the downloading of character definitions to 8563 display RAM (if necessary). The system 60Hz IRQ source, the VIC raster, is started (pending IRQs are cleared). IOINIT utilizes the status byte INIT_STATUS ($A04) as follows:

$A04 bit 7 = 0 -> Full initialization (set INIT_STATUS bit 7)
	     1 -> Partial initialization. (not 8563 character definitions)
You should be sure IRQ's are disabled before calling IOINIT to avoid interrupts while the various I/O devices are bing initialized.

EXAMPLE:

	SEI
	JSR $FF84	;initialize system I/O
	cli