Kernel 0.9.1 : LibGui, MemMgr allow loading resources (FON,PIX....) into AUX MEM

This commit is contained in:
Rémy GIBERT 2017-12-07 17:33:39 +01:00
parent e7681cc3d5
commit 62a907d0b3
16 changed files with 578 additions and 3651 deletions

View File

@ -308,26 +308,48 @@ Create a new copy of this C-String
## Out:
+ A=hMem
# LoadStkObj.YA
# NewStkObj.YA
## In:
## In:
+ Y,A = Size Requested
## Out:
+ A=hMem
+ CC : success
+ YA = PTR to Mem (Uninitialised)
* X = hMem
+ CS :
+ A = EC
# LoadStkObj
Load a file in AUX memory (Stock Objects)
## In:
+ PUSHW = AUXTYPE (Handled by....
+ PUSHB = TYPE ...
+ PUSHB = MODE ...
+ PUSHW = PATH ...FOpen)
## Out:
+ Y,A = File Length
+ X = hMem of Loaded Object in AUX mem
# GetStkObj.A
## In:
+ A = hMem
## Out:
+ A=hMem
+ Y,A = PTR to MemBlock (AUX Mem)
+ (X unmodified)
# FreeStkObj.A
## In:
+ A = hMem To Free (AUX Memory)
## Out:
+ A=hMem
+ none.
+ (X,Y unmodified)
# GetMemStat.YA

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

BIN
.Fonts/SYS8x16.fnt Normal file

Binary file not shown.

BIN
.Fonts/SYS8x8.fnt Normal file

Binary file not shown.

View File

@ -18,7 +18,23 @@ AUTO 6
* S.CB.DstPtr : pointer to Save Buffer
*--------------------------------------
BITBLT >LDYA CB.CACHE+S.CB.SrcPtr
>STYA ZPBMDataPtr
bne BITBLT.1
* CB.CACHE+S.CB.SrcPtr+1 = 0, AUX Handle in CB.CACHE+S.CB.SrcPtr
tya
>SYSCALL GetStkObj.A
sta SETREADAUX
sta SETWRITEAUX
jsr BITBLT.1
sta CLRREADAUX
sta CLRWRITEAUX
rts
BITBLT.1 >STYA ZPBMDataPtr
ldy #S.BM-1

381
FNT2FON.S.txt Normal file
View File

@ -0,0 +1,381 @@
PR#3
PREFIX /A2OSX.BUILD
NEW
INC 1
AUTO 6
.LIST OFF
.OP 65C02
.OR $2000
.TF /A2OSX.BUILD/FNT2FON
*--------------------------------------
.INB /A2OSX.BUILD/INC/MACROS.I
.INB /A2OSX.BUILD/INC/A2OSX.I
.INB /A2OSX.BUILD/INC/LIBGUI.I
*--------------------------------------
ZPPTR1 .EQ ZPBIN
ZPInputBufPtr .EQ ZPBIN+2
ZPInputBufLen .EQ ZPBIN+4
ZPInputDataPtr .EQ ZPBIN+6
ZPBMPRowBytes .EQ ZPBIN+8
ZPPIXRowBytes .EQ ZPBIN+10
ZPBufPtr .EQ ZPBIN+12
ZPLineCount .EQ ZPBIN+14
*--------------------------------------
* File Header (16 Bytes)
*--------------------------------------
CS.START cld
jmp (.1,x)
.DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1
.DA 0
.DA CS.END-CS.START CS
.DA DS.END-DS.START DS
.DA #64 SS
.DA #16 ZP
.DA 0
*--------------------------------------
* Relocation Table
*--------------------------------------
.1 .DA CS.INIT
.DA CS.RUN
.DA CS.DOEVENT
.DA CS.QUIT
L.MSG.USAGE .DA MSG.USAGE
L.MSG.FILE.OK .DA MSG.FILE.OK
L.MSG.HEADER.OK .DA MSG.HEADER.OK
L.MSG.HEADER.KO .DA MSG.HEADER.KO
L.MSG.DONE .DA MSG.DONE
.DA 0
*--------------------------------------
CS.INIT
.1 >INC.G ArgCount
>SYSCALL GetArg.A
bcs .7
>STYA ZPPtr1
lda (ZPPtr1)
cmp #'-'
bne .4
ldy #1
lda (ZPPtr1),y
ldx OptionList
.2 cmp OptionList,x
beq .3
dex
bne .2
.99 >LDYA L.MSG.USAGE
>SYSCALL PrintF.YA
lda #K.E.SYN
sec
rts
.3 ldy OptionVars-1,x
lda #$80
sta (pData),y
bra .1
.4 >LDA.G hInputBuf
bne .5
jsr CS.INIT.OPENINPUT
bcc .1 scan for any other args
rts
.5 >LDA.G hOutputFile
bne .99
jsr CS.INIT.CREATEOUTPUT
bcc .1 scan for any other args
rts
.7 >LDA.G hOutputFile
beq .99
>LDYAI 256
>SYSCALL GetMem.YA
bcs CS.INIT.RTS
>STYA ZPBufPtr
txa
>STA.G hBuf
.8 clc
CS.INIT.RTS rts
*--------------------------------------
CS.INIT.OPENINPUT
>PUSHWI 0 Aux type
>PUSHBI 0 Type
>PUSHBI SYS.FOpen.R
>PUSHW ZPPtr1
>SYSCALL LoadFile
bcs CS.INIT.RTS
>STYA ZPInputBufLen
>PUSHYA
txa
>STA.G hInputBuf
>SYSCALL GetMemPtr.A
>STYA ZPInputBufPtr
>LDYA L.MSG.FILE.OK
>SYSCALL PrintF.YA
lda (ZPInputBufPtr)
cmp #'B'
bne .99
ldy #1
lda (ZPInputBufPtr),y
cmp #'M'
bne .99
ldy #$1C BBP LO
lda (ZPInputBufPtr),y
cmp #1
bne .99
iny BBP HI
lda (ZPInputBufPtr),y
bne .99
ldy #$16 H LO
lda (ZPInputBufPtr),y
>STA.G PIX.Header+S.BM.H
pha
eor #$ff
sta ZPLineCount
ldy #$17 H HI
lda (ZPInputBufPtr),y
>STA.G PIX.Header+S.BM.H+1
>PUSHA
eor #$ff
sta ZPLineCount+1
pla
>PUSHA
ldy #$12 W LO
lda (ZPInputBufPtr),y
>STA.G PIX.Header+S.BM.W
pha
ldy #$13 W HI
lda (ZPInputBufPtr),y
>STA.G PIX.Header+S.BM.W+1
>PUSHA
pla
>PUSHA
>LDYA L.MSG.HEADER.OK
>SYSCALL PrintF.YA
clc
rts
.99 >LDYA L.MSG.HEADER.KO
>SYSCALL PrintF.YA
lda #K.E.IBIN
sec
rts
*--------------------------------------
CS.INIT.CREATEOUTPUT
>PUSHWI 0 Aux type
>PUSHBI $CB PIX Type
>PUSHBI SYS.FOpen.W+SYS.FOpen.X
>PUSHW ZPPtr1
>SYSCALL FOpen
bcs .9
>STA.G hOutputFile
.9 rts
*--------------------------------------
CS.RUN lda #S.BM.F.BBP1
>STA.G PIX.Header+S.BM.F
>LDA.G PIX.Header+S.BM.W
sta ZPBMPRowBytes
sta ZPPIXRowBytes
iny
lda (pData),y
sta ZPBMPRowBytes+1
sta ZPPIXRowBytes+1
lda ZPBMPRowBytes
and #%00011111
beq .1
lda ZPBMPRowBytes
and #%11100000
clc
adc #%00100000
bcc .1
inc ZPBMPRowBytes+1
.1 lsr ZPBMPRowBytes+1
ror
lsr ZPBMPRowBytes+1
ror
lsr ZPBMPRowBytes+1
ror
sta ZPBMPRowBytes
lda ZPPIXRowBytes
and #%00000111
beq .2
lda ZPPIXRowBytes
and #%11111000
clc
adc #%00001000
bcc .2
inc ZPPIXRowBytes+1
.2 lsr ZPPIXRowBytes+1
ror
lsr ZPPIXRowBytes+1
ror
lsr ZPPIXRowBytes+1
ror
sta ZPPIXRowBytes
>STA.G PIX.Header+S.BM.RowBytes
lda ZPInputBufPtr
clc
adc ZPInputBufLen
sta ZPInputDataPtr
lda ZPInputBufPtr+1
adc ZPInputBufLen+1
sta ZPInputDataPtr+1
>PUSHEA.G PIX.Header
>PUSHWI S.BM
>LDA.G hOutputFile
>PUSHA
>SYSCALL FWrite
bcs CS.RUN.RTS
CS.RUN.LOOP inc ZPLineCount
bne .1
inc ZPLineCount+1
beq .8
.1 lda ZPInputDataPtr
sec
sbc ZPBMPRowBytes
sta ZPInputDataPtr
lda ZPInputDataPtr+1
sbc ZPBMPRowBytes+1
sta ZPInputDataPtr+1
>LDYA ZPBufPtr
>STYA ZPPTR1
ldy #0
.2 lda (ZPInputDataPtr),y
tax
lda TWIST,x
sta (ZPPTR1)
inc ZPPTR1
bne .3
inc ZPPTR1+1
.3 iny
cpy ZPPIXRowBytes
bne .2
>PUSHW ZPBufPtr
>PUSHW ZPPIXRowBytes
>LDA.G hOutputFile
>PUSHA
>SYSCALL FWrite
bcs CS.RUN.RTS
bra CS.RUN.LOOP
.8 >LDYA L.MSG.DONE
>SYSCALL PrintF.YA
lda #0
sec
CS.RUN.RTS rts
*--------------------------------------
CS.DOEVENT sec
rts
*--------------------------------------
CS.QUIT >LDA.G hBuf
beq .1
>SYSCALL FreeMem.A
.1 >LDA.G hOutputFile
beq .8
>SYSCALL FClose.A
.8 clc
rts
*--------------------------------------
CS.END
TWIST .DA #%00000000,#%10000000,#%01000000,#%11000000,#%00100000,#%10100000,#%01100000,#%11100000
.DA #%00010000,#%10010000,#%01010000,#%11010000,#%00110000,#%10110000,#%01110000,#%11110000
.DA #%00001000,#%10001000,#%01001000,#%11001000,#%00101000,#%10101000,#%01101000,#%11101000
.DA #%00011000,#%10011000,#%01011000,#%11011000,#%00111000,#%10111000,#%01111000,#%11111000
.DA #%00000100,#%10000100,#%01000100,#%11000100,#%00100100,#%10100100,#%01100100,#%11100100
.DA #%00010100,#%10010100,#%01010100,#%11010100,#%00110100,#%10110100,#%01110100,#%11110100
.DA #%00001100,#%10001100,#%01001100,#%11001100,#%00101100,#%10101100,#%01101100,#%11101100
.DA #%00011100,#%10011100,#%01011100,#%11011100,#%00111100,#%10111100,#%01111100,#%11111100
.DA #%00000010,#%10000010,#%01000010,#%11000010,#%00100010,#%10100010,#%01100010,#%11100010
.DA #%00010010,#%10010010,#%01010010,#%11010010,#%00110010,#%10110010,#%01110010,#%11110010
.DA #%00001010,#%10001010,#%01001010,#%11001010,#%00101010,#%10101010,#%01101010,#%11101010
.DA #%00011010,#%10011010,#%01011010,#%11011010,#%00111010,#%10111010,#%01111010,#%11111010
.DA #%00000110,#%10000110,#%01000110,#%11000110,#%00100110,#%10100110,#%01100110,#%11100110
.DA #%00010110,#%10010110,#%01010110,#%11010110,#%00110110,#%10110110,#%01110110,#%11110110
.DA #%00001110,#%10001110,#%01001110,#%11001110,#%00101110,#%10101110,#%01101110,#%11101110
.DA #%00011110,#%10011110,#%01011110,#%11011110,#%00111110,#%10111110,#%01111110,#%11111110
.DA #%00000001,#%10000001,#%01000001,#%11000001,#%00100001,#%10100001,#%01100001,#%11100001
.DA #%00010001,#%10010001,#%01010001,#%11010001,#%00110001,#%10110001,#%01110001,#%11110001
.DA #%00001001,#%10001001,#%01001001,#%11001001,#%00101001,#%10101001,#%01101001,#%11101001
.DA #%00011001,#%10011001,#%01011001,#%11011001,#%00111001,#%10111001,#%01111001,#%11111001
.DA #%00000101,#%10000101,#%01000101,#%11000101,#%00100101,#%10100101,#%01100101,#%11100101
.DA #%00010101,#%10010101,#%01010101,#%11010101,#%00110101,#%10110101,#%01110101,#%11110101
.DA #%00001101,#%10001101,#%01001101,#%11001101,#%00101101,#%10101101,#%01101101,#%11101101
.DA #%00011101,#%10011101,#%01011101,#%11011101,#%00111101,#%10111101,#%01111101,#%11111101
.DA #%00000011,#%10000011,#%01000011,#%11000011,#%00100011,#%10100011,#%01100011,#%11100011
.DA #%00010011,#%10010011,#%01010011,#%11010011,#%00110011,#%10110011,#%01110011,#%11110011
.DA #%00001011,#%10001011,#%01001011,#%11001011,#%00101011,#%10101011,#%01101011,#%11101011
.DA #%00011011,#%10011011,#%01011011,#%11011011,#%00111011,#%10111011,#%01111011,#%11111011
.DA #%00000111,#%10000111,#%01000111,#%11000111,#%00100111,#%10100111,#%01100111,#%11100111
.DA #%00010111,#%10010111,#%01010111,#%11010111,#%00110111,#%10110111,#%01110111,#%11110111
.DA #%00001111,#%10001111,#%01001111,#%11001111,#%00101111,#%10101111,#%01101111,#%11101111
.DA #%00011111,#%10011111,#%01011111,#%11011111,#%00111111,#%10111111,#%01111111,#%11111111
*--------------------------------------
OptionList >PSTR "Vv"
OptionVars .DA #bVerbose,#bVerbose
MSG.USAGE >CSTR "Usage : FNT2FON FNT-File \r\n -V : Verbose Mode\r\n"
MSG.FILE.OK >CSTR "Font File Loaded, %D Bytes Read\r\n"
MSG.HEADER.OK >CSTR "Font File Size : %D x %D pixels\r\n"
MSG.HEADER.KO >CSTR "Invalid Input File Format\r\n"
MSG.DONE >CSTR "All Done!!!\r\n"
*--------------------------------------
.DUMMY
.OR 0
DS.START
PIX.Header .BS S.BM
ArgCount .BS 1
hInputBuf .BS 1
hOutputFile .BS 1
bVerbose .BS 1
hBuf .BS 1
DS.END
.ED
*--------------------------------------
MAN
SAVE /A2OSX.BUILD/FNT2FON.S
ASM

View File

@ -220,8 +220,8 @@ SYS.GetMemStat.YA .EQ $EE
* .EQ $F4
* .EQ $F6
* .EQ $F8
SYS.LoadStkObj.YA .EQ $FA
SYS.NewStkObj.YA .EQ $F8
SYS.LoadStkObj .EQ $FA
SYS.GetStkObj.A .EQ $FC
SYS.FreeStkObj.A .EQ $FE
*--------------------------------------

View File

@ -37,6 +37,17 @@ H.BIN.DRV.REL.TABLE .EQ 0
ZPKERNEL .EQ $0
ZPMEMMGR .EQ $8
*--------------------------------------
* MoveAux / XFer
*--------------------------------------
A1L .EQ $3C
A2L .EQ $3E
A4L .EQ $42
XFer.JMP .EQ $3ED
AuxMove .EQ $C311
XFer .EQ $C314 CS:M->X, VS:Use Aux ZP
*--------------------------------------
* $42-$47 ProDOS Block Device Drivers Main
*--------------------------------------
* $5E-$C8 RESERVED APPLESOFT Main/Aux (ROM Call, no need to switch back MainZP)
@ -91,7 +102,7 @@ K.SP.PARAMS .EQ $0360 Max 9 bytes
K.MLI.PATH .EQ $0369 64+1
K.MLI.PARAMS .EQ $03AA Main, 18 bytes min for GetFileInfo (ATLK needs MORE!!!...32 max for now)
*--------------------------------------
K.STACKTOP .EQ $03EF down to $3E0
K.STACKTOP .EQ $03ED XFer !!! down to $3E0
*--------------------------------------
*** $3F0-$3FF IRQ Handler.... ***
*--------------------------------------

View File

@ -52,7 +52,8 @@ S.CB.MODE.MONO .EQ %00000001 b/w (1 bit/pixel)
*S.CB.MODE.C8 .EQ %00000100
S.CB.MODE.C16 .EQ %00001000 16 colors (4 bits/pixel)
*S.CB.MODE.C256 .EQ %00010000 256 colors (8 bits/pixel)
S.CB.COLOR .EQ 3
S.CB.COLOR .EQ 3 xPIXEL,xLINE,FILLRECT
S.CB.FONT .EQ 3 DRAWTEXT
S.CB.X1 .EQ 4 xPIXEL,xLINE,FILLRECT,BITBLT,GETRECTBUFSIZE,DRAWLINE
S.CB.Y1 .EQ 6 xPIXEL,xLINE,FILLRECT,BITBLT,GETRECTBUFSIZE,DRAWLINE
S.CB.X2 .EQ 8 VLINE,FILLRECT,DRAWLINE
@ -87,6 +88,17 @@ S.BM.MASK.OFS .EQ 6
*
S.BM .EQ 8
*--------------------------------------
S.FON.H .EQ 0
S.FON.Ascent .EQ 1
S.FON.PixW .EQ 2 if 0, variable W
S.FON.PixH .EQ 3
S.FON.First .EQ 4
S.FON.Last .EQ 5
S.FON.Default .EQ 6
S.FON.Break .EQ 7
*
S.FON .EQ 8
*--------------------------------------
S.MOUSE.X1 .EQ 0
S.MOUSE.Y1 .EQ 2
S.MOUSE.X2 .EQ 4

View File

@ -306,11 +306,11 @@ AUTO 6
*--------------------------------------
.MA LDYA
.DO ]#=2
lda ]1+1,]2
ldy ]1,]2
lda ]1+1,]2
.ELSE
lda ]1+1
ldy ]1
lda ]1+1
.FIN
.EM
*--------------------------------------

View File

@ -59,22 +59,10 @@ CS.INIT >LDYA L.MSG.INIT
>PUSHBI $CB Type
>PUSHBI SYS.FOpen.R
>PUSHW L.FILENAME
>SYSCALL LoadFile
>SYSCALL LoadStkObj
bcs .9
txa
>SYSCALL GetMemPtr.A
>STYA CB.BitBlt+S.CB.SrcPtr
>STYA ZPPtr1
ldy #S.BM.W+3
ldx #3
.1 lda (ZPPtr1),y
sta CB.BitBlt+S.CB.SrcW,x
dey
dex
bpl .1
sta CB.BitBlt+S.CB.SrcPtr
jsr Destop.Paint
@ -206,8 +194,8 @@ CB.BitBlt .DA #S.CB.CMD.BITBLT
.DA #0
.DA 0 X1
.DA 0 Y1
.BS 2 W
.BS 2 H
.DA 141 W
.DA 150 H
.DA 200 DestX
.DA 60 DestY
.BS 2 SrcPtr

View File

@ -188,6 +188,22 @@ BITBLT
*--------------------------------------
GETRECTBUFSIZE
*--------------------------------------
* In:
* S.CB.S.CB.FONT : hFont
* S.CB.SrcPtr : Ptr to Text
* S.CB.DstPtr : Buffer Size (in bytes)
*--------------------------------------
GETTEXTSIZE lda CB.Cache+S.CB.FONT
ldx #SYS.GetMemPtr.A
jsr GO.Kernel
>STYA ZPFontPtr
*--------------------------------------
* In:
* S.CB.S.CB.FONT : hFont
* S.CB.SrcPtr : Ptr to Text
* S.CB.DstPtr : Buffer Size (in bytes)
*--------------------------------------
DRAWTEXT
*--------------------------------------
* IN:
* Y,A = num1 (16)
@ -221,6 +237,8 @@ YAMultX stx GBYTE
bne .2
rts
*--------------------------------------
GO.Kernel jmp ($E000,x)
*--------------------------------------
Mono.NMasks .DA #%11111110
.DA #%11111101
.DA #%11111011

View File

@ -151,8 +151,8 @@ K.SYSCALL.JMP .DA 0 $00
.DA 0
.DA 0
.DA 0
.DA 0
.DA K.LoadStkObj.YA
.DA K.NewStkObj.YA
.DA K.LoadStkObj
.DA K.GetStkObj.A
.DA K.FreeStkObj.A
*--------------------------------------

View File

@ -34,14 +34,14 @@ Mem.ReqFlags .EQ ZPMEMMGR+6 store requested Flags
*\--------------------------------------
K.GetMem >PULLB Mem.ReqFlags store requested flags
>PULLA get requested size LO
tay
>PULLA get requested size HI
sta Mem.ReqSize+1
>PULLYA get requested size
bit Mem.ReqFlags S.MEM.F.AUX ?
bpl K.GetMem.I
.HS 2C bit abs
K.GetMemAux.YA stz Mem.ReqFlags
sta SETREADAUX Aux Mem requested,switch to AUX
sta SETWRITEAUX
@ -64,7 +64,7 @@ K.GetMem >PULLB Mem.ReqFlags store requested flags
*\--------------------------------------
K.GetMem0.YA ldx #S.MEM.F.INIT0
stx Mem.ReqFlags
.HS 2C bit abs
.HS 2C bit abs
*/--------------------------------------
* # GetMem.YA
* ## In:
@ -77,9 +77,10 @@ K.GetMem0.YA ldx #S.MEM.F.INIT0
* A = EC
*\--------------------------------------
K.GetMem.YA stz Mem.ReqFlags
sta Mem.ReqSize+1
K.GetMem.I tya
K.GetMem.I sta Mem.ReqSize+1
tya
bit #$0F 16 bytes aligned ?
beq .10 yes, request it
@ -443,21 +444,21 @@ K.NewStr.YA >STYA .1+1
>STYA .4+1
stz Mem.ReqFlags
stz Mem.ReqSize+1
ldy #0
lda #0
.1 lda $ffff,y
.1 ldx $ffff,y
beq .2
iny
bne .1
inc Mem.ReqSize+1
inc
inc .1+2
bne .1
.2 iny Add one for ending 0
bne .3
inc Mem.ReqSize+1
inc
.3 jsr K.GetMem.I
bcs .9
@ -532,29 +533,106 @@ K.SListFree
*--------------------------------------
MEM.SList.Next
*/--------------------------------------
* # LoadStkObj.YA
* ## In:
* # NewStkObj.YA
* ## In:
* Y,A = Size Requested
* ## Out:
* A=hMem
* CC : success
* YA = PTR to Mem (Uninitialised)
* X = hMem
* CS :
* A = EC
*\--------------------------------------
K.LoadStkObj.YA
K.NewStkObj.YA sta SETREADAUX
sta SETWRITEAUX
jsr K.GetMem.YA
sta CLRREADAUX
sta CLRWRITEAUX
rts
*/--------------------------------------
* # LoadStkObj
* Load a file in AUX memory (Stock Objects)
* ## In:
* PUSHW = AUXTYPE (Handled by....
* PUSHB = TYPE ...
* PUSHB = MODE ...
* PUSHW = PATH ...FOpen)
* ## Out:
* Y,A = File Length
* X = hMem of Loaded Object in AUX mem
*\--------------------------------------
K.LoadStkObj >SYSCALL LoadFile
bcs .99
stx .8+1 Save MAIN hMem
>STYA A2L Save LEN temporarly
jsr K.GetMemAux.YA
bcs .9
stx .80+1
>STYA A4L Save Destination Address in AUX
lda .8+1
jsr K.GetMemPtr.A
>STYA A1L Save MAIN base Ptr
pha Add Allocated LEN
tya
clc
adc A2L
sta A2L
pla
adc A2L+1
sta A2L+1 to get End address in A2L/H
sec Main To Aux
jsr AuxMove
.8 lda #$ff SELF MODIFIED
jsr K.FreeMem.A release MAIN memory
.80 lda #$ff Returns AUX hMem
rts
.9 pha
jsr .8
pla
sec
.99 rts
*/--------------------------------------
* # GetStkObj.A
* ## In:
* A = hMem
* ## Out:
* A=hMem
* Y,A = PTR to MemBlock (AUX Mem)
* (X unmodified)
*\--------------------------------------
K.GetStkObj.A
K.GetStkObj.A sta SETREADAUX
jsr K.GetMemPtr.A
sta CLRREADAUX
rts
*/--------------------------------------
* # FreeStkObj.A
* ## In:
* A = hMem To Free (AUX Memory)
* ## Out:
* A=hMem
* none.
* (X,Y unmodified)
*\--------------------------------------
K.FreeStkObj.A
K.FreeStkObj.A sta SETREADAUX
sta SETWRITEAUX
jsr K.FreeMem.A
sta CLRREADAUX
sta CLRWRITEAUX
rts
*/--------------------------------------
* # GetMemStat.YA
* ## In: