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 jsr K.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 BIN.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 pha iny lda (ZPQuickPtr1),y ply >STYA pLib ldx #LIBMGR.UNLOAD jsr pLibJmp Call LIB.UNLOAD function pla jmp K.FreeMemA *-------------------------------------- ENV.LIB >PSTRING "LIB" MAN SAVE SYS/KERNEL.S.LIB LOAD SYS/KERNEL.S ASM