PR#3
PREFIX /A2OSX.BOOT
DELETE A2OSX.SYSTEM
PREFIX /A2OSX.SRC
NEW
INC 1
AUTO 8
				.LIST OFF
*--------------------------------------
* ****** START OF MLI QUIT CODE ******
* Load Address :$1000-$12FF
*--------------------------------------
MLIOPEN00.PATH	.EQ $200
MLIOPEN00.BUFF	.EQ $0C00				1k Buffer for MLI open
MLIREAD00.ADDR	.EQ $2000				for loading KERNEL
*--------------------------------------
				.PH $1000
*--------------------------------------
* Kernel Stage 1
*--------------------------------------
A2osX.QC.Start	.EQ *
A2osX.QC		cld
				jmp A2osX.QC.Start1
				
A2osX.QC.Prefix	.BS 64				
				
A2osX.QC.Start1	sei
				ldx #$FF
				txs
				cli
				
				bit RROMBNK1
				>LDYAI A2osX.QC
				>STYA POWERUP
				jsr SETPWRC

				ldx #$17
.1				stz MEMTABL,x			Reset ProDOS memory bitmap
				dex
				bpl .1
				lda	#$CF				protect zero page, stack and page 1
				sta	MEMTABL
				lda #$03
				sta	MEMTABL+$17			protect ProDOS & A2osX global page
				
				lda #$8C				Reset 80 col screen ($0C=FF=HOME)
				jsr $C300
				
				>LDAXI MSG.INIT1
				jsr A2osX.QC.PrintAX
				
				ldx #0
.2				lda $1200,x				Setup Global Page
				sta $BE00,x
				inx
				bne .2

.3				jsr MLI
				.DA #MLISETPREFIX
				.DA MLISETPREFIX00
				bcc .4
				
				>LDAXI MSG.SETPREFIXKO
				jsr A2osX.QC.PrintAX
				>LDAXI A2osX.QC.Prefix
				jsr A2osX.QC.PrintAX

				>DEBUGOA

				bra .3
				
.4				>LDAXI MSG.SETPREFIXOK
				jsr A2osX.QC.PrintAX
				
				>LDAXI MSG.KLOADING
				jsr A2osX.QC.PrintAX
				
				jsr A2osX.QC.KLoad
				bcs .9
				
*				>LDYAI GO.Reset
*				>STYA POWERUP
*				bit RROMBNK1
*				jsr SETPWRC
				
				>LDAXI MSG.INIT1OK
				jsr A2osX.QC.PrintAX

				>DEBUGOA
				jmp $2000
				
.9				>LDAXI MSG.KLOADING.KO
				jsr A2osX.QC.PrintAX
				bra *
*--------------------------------------
A2osX.QC.KLoad	ldx A2osX.QC.Prefix
.1				lda A2osX.QC.Prefix,x
				sta MLIOPEN00.PATH,x
				dex
				bne .1
				
				ldx A2osX.QC.Prefix
				ldy #0
.2				lda SYSKERNEL+1,y
				sta MLIOPEN00.PATH+1,x
				inx
				iny
				cpy SYSKERNEL
				bne .2
				stx MLIOPEN00.PATH
				
				>LDAXI MLIOPEN00.PATH
				jsr A2osX.QC.PrintAX				
				
				jsr MLI
				.DA #MLIOPEN
				.DA MLIOPEN00
				bcs .9
				
				lda MLIOPEN00+5
				sta MLIREAD00+1
				sta MLICLOSE00+1
				jsr MLI
				.DA #MLIREAD
				.DA MLIREAD00
				bcs .9
				
				jsr MLI
				.DA #MLICLOSE
				.DA MLICLOSE00

.9				rts
*--------------------------------------
A2osX.QC.PrintAX
				>STAX TmpPtr1
				lda (TmpPtr1)
				tax
				beq .9
				ldy #1
				
.1				lda (TmpPtr1),y
				ora #$80
				jsr COUT
				iny
				dex
				bne .1
				
.9				jsr CROUT
				rts				
*--------------------------------------
MLISETPREFIX00	.DA #1
				.DA A2osX.QC.Prefix
MLIOPEN00		.DA #3
				.DA MLIOPEN00.PATH
				.DA MLIOPEN00.BUFF				
				.BS 1
MLIREAD00		.DA #4
				.BS 1
				.DA MLIREAD00.ADDR
				.DA $2FFA
				.BS 2
MLICLOSE00		.DA #1
				.BS 1
*--------------------------------------
SYSKERNEL		>PSTRING "SYS/KERNEL"
*--------------------------------------
MSG.INIT1		>PSTRING "A2osX[Stage1]:Init"
MSG.SETPREFIXOK >PSTRING "Set Prefix OK"
MSG.SETPREFIXKO >PSTRING "Insert Vol:"
MSG.KLOADING	>PSTRING "Loading Kernel..."
MSG.KLOADING.KO	>PSTRING "Error While Loading Kernel."
MSG.INIT1OK		>PSTRING "A2osX[Stage1]:Complete."
*--------------------------------------
				.BS $1300-*
				.EP
*--------------------------------------
MAN
SAVE A2OSX.S.QC
LOAD A2OSX.S
ASM
