PR#3
PREFIX /A2OSX.SRC
NEW
INC 1
AUTO 6
				.LIST OFF
*--------------------------------------
* K.LoadLibYA
*  in :
*   Y,A = PTR To Lib Name
* out :
*   A = hMem To loaded LIB
*--------------------------------------
K.LoadLibYA		>STYA K.LoadLib.Name	save libname for K.FileSearch
				>LDYAI ENV.LIB			push ENVNAME=LIB
				>SYSCALL SYS.GetEnvYA	get value for ENV=LIB
				bcs .99
				
				>PUSHYA					Push $LIB value

				>PUSHW K.LoadLib.Name
				
				jsr K.FileSearch		find libname in $LIB
				bcs .99

				stx K.LoadLib.hFullName
				
				jsr K.LoadExeYA			Y,A=filename full path
				bcs .98
				
				stx K.LoadLib.hMem
				>STYA pLib

				ldx #LIBMGR.LOAD
				jsr pLibJmp				Call LIB.LOAD function
				
				bcs .97				

				jsr .98					Cleanup...
				
				lda K.LoadLib.hMem
				clc
				rts
				
.97				pha
				lda K.LoadLib.hMem
				jsr K.FreeMemA
				pla
				
.98				pha
				lda K.LoadLib.hFullName
				jsr K.FreeMemA
				pla
				
				sec
.99				rts
*--------------------------------------
K.LoadLib.Name	.BS 2
K.LoadLib.hFullName	.BS 1
K.LoadLib.hMem	.BS 1
*--------------------------------------
* K.UnloadLibA
*  in :
*   A = hMem To Lib
* out :
*--------------------------------------
K.UnloadLibA	pha
				jsr K.GetMemByIDA
				>STYA ZPQuickPtr1
				ldy #S.MEM.REFCNT
				lda (ZPQuickPtr1),y		Get count of those referencing this lib
				dec						only one left ?	
				beq .1
				sta (ZPQuickPtr1),y
				pla
				clc
				rts
				
.1				ldy #S.MEM.PTR
				lda (ZPQuickPtr1),y
				sta pLib
				
				iny
				lda (ZPQuickPtr1),y
				sta pLib+1
				
				ldx #LIBMGR.UNLOAD
				jsr pLibJmp				Call LIB.UNLOAD function
				pla
				jmp K.FreeMemA
*--------------------------------------
MAN
SAVE SYS/KERNEL.S.LIB
LOAD SYS/KERNEL.S
ASM
