mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-16 03:32:13 +00:00
Work In Progress
This commit is contained in:
parent
7c787a2c6c
commit
cbfa59e2af
@ -15,10 +15,12 @@ AUTO 6
|
||||
*---------------------------------------
|
||||
SYM.BLOCK.SIZE .EQ 4096
|
||||
SYM.BLOCK.MAX .EQ 8
|
||||
SRC.IN.DEPTH.MAX .EQ 7
|
||||
*---------------------------------------
|
||||
ERR.INV.ARGS .EQ 1
|
||||
ERR.SRC.INV.TYPE .EQ 2
|
||||
ERR.SRC.TOO.LONG .EQ 3
|
||||
ERR.SRC.TOO.MANY.IN .EQ 4
|
||||
ERR.SYM.TOO.LARGE .EQ 10
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
@ -50,13 +52,6 @@ CS.INIT >LDYA L.LIBSTR
|
||||
>LOADLIBYA
|
||||
sta hLIBSTR
|
||||
|
||||
ldy #VAR.INIT
|
||||
lda #0
|
||||
.1 sta (pData),y
|
||||
iny
|
||||
cpy #VAR.INIT.END
|
||||
bne .1
|
||||
|
||||
ldy #S.PS.hARGS
|
||||
lda (pPs),y
|
||||
bne CS.INIT.ARGS
|
||||
@ -156,29 +151,29 @@ CS.DOEVENT ldy #S.EVT.hDEV is Event from active IN device?
|
||||
.9 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.QUIT ldy SRC.INDEX
|
||||
CS.QUIT ldy SRC.COUNT
|
||||
lda (pData),y
|
||||
bmi .8
|
||||
beq .8
|
||||
|
||||
.1 clc
|
||||
adc #SRC.hREFNUMS
|
||||
adc #SRC.hREFNUMS-1
|
||||
tay
|
||||
lda (pData),y
|
||||
>SYSCALL SYS.MLICloseA
|
||||
|
||||
ldy SRC.INDEX
|
||||
ldy SRC.COUNT
|
||||
lda (pData),y
|
||||
clc
|
||||
adc #SRC.hBUFFERS
|
||||
adc #SRC.hBUFFERS-1
|
||||
tay
|
||||
lda (pData),y
|
||||
>SYSCALL SYS.FreeMemA
|
||||
|
||||
ldy SRC.INDEX
|
||||
ldy SRC.COUNT
|
||||
lda (pData),y
|
||||
dec
|
||||
sta (pData),y
|
||||
bpl .1
|
||||
bne .1
|
||||
|
||||
.8 lda hLIBSTR
|
||||
>SYSCALL SYS.UnloadLibA
|
||||
@ -190,21 +185,33 @@ LOAD.ASM.T
|
||||
rts
|
||||
*---------------------------------------
|
||||
SRC.OPEN sta hFileName
|
||||
|
||||
ldy #SRC.COUNT
|
||||
lda (pData),y
|
||||
cmp #SRC.IN.DEPTH.MAX
|
||||
bne .10
|
||||
|
||||
lda #ERR.SRC.TOO.MANY.IN
|
||||
sec
|
||||
rts
|
||||
|
||||
.10 lda hFileName
|
||||
>SYSCALL SYS.MLIOpenA
|
||||
bcs .99
|
||||
|
||||
pha
|
||||
ldy #SRC.INDEX
|
||||
ldy #SRC.COUNT
|
||||
lda (pData),y
|
||||
clc
|
||||
adc #SRC.hREFNUMS
|
||||
adc #SRC.hREFNUMS-1
|
||||
tay
|
||||
pla
|
||||
sta (pData),y
|
||||
ldy #SRC.INDEX
|
||||
|
||||
ldy #SRC.COUNT
|
||||
lda (pData),y
|
||||
clc
|
||||
adc #SRC.hBUFFERS
|
||||
adc #SRC.hBUFFERS-1
|
||||
tay
|
||||
txa
|
||||
sta (pData),y
|
||||
@ -214,16 +221,14 @@ SRC.OPEN sta hFileName
|
||||
bcs .99
|
||||
|
||||
>STYA ZPQuickPtr1
|
||||
ldy #1
|
||||
lda (ZPQuickPtr1),y
|
||||
pha
|
||||
|
||||
ldy #SRC.INDEX
|
||||
ldy #SRC.COUNT
|
||||
lda (pData),y
|
||||
clc
|
||||
adc #SRC.hFILETYPES
|
||||
adc #SRC.hFILETYPES-1
|
||||
tay
|
||||
pla
|
||||
|
||||
ldy #1
|
||||
lda (ZPQuickPtr1),y
|
||||
sta (pData),y
|
||||
|
||||
cmp #$04 TXT?
|
||||
@ -231,14 +236,15 @@ SRC.OPEN sta hFileName
|
||||
|
||||
>PUSHBI $0D
|
||||
>PUSHBI $FF
|
||||
>PUSHB SRC.hREFNUMS
|
||||
>PUSHB hFileName
|
||||
>SYSCALL SYS.MLINewLine
|
||||
bcs .99
|
||||
|
||||
bra .8
|
||||
|
||||
.1 cmp #$FA BAS?
|
||||
bne .98
|
||||
|
||||
ldy #SRC.INDEX
|
||||
.8 ldy #SRC.COUNT
|
||||
lda (pData),y
|
||||
inc
|
||||
sta (pData),y
|
||||
@ -250,10 +256,10 @@ SRC.OPEN sta hFileName
|
||||
.99 sec
|
||||
rts
|
||||
*---------------------------------------
|
||||
SRC.ReadLine ldy #SRC.INDEX
|
||||
SRC.ReadLine ldy #SRC.COUNT
|
||||
lda (pData),y
|
||||
clc
|
||||
adc #SRC.hFILETYPES
|
||||
adc #SRC.hFILETYPES-1
|
||||
tay
|
||||
lda (pData),y
|
||||
bmi SRC.ReadLine.BIN
|
||||
@ -336,10 +342,10 @@ SRC.ReadLine.TXT
|
||||
*--------------------------------------
|
||||
SRC.ReadLine.YA >PUSHYA
|
||||
>PUSHW L.READ.BUFFER
|
||||
ldy #SRC.INDEX
|
||||
ldy #SRC.COUNT
|
||||
lda (pData),y
|
||||
clc
|
||||
adc #SRC.hREFNUMS
|
||||
adc #SRC.hREFNUMS-1
|
||||
tay
|
||||
lda (pData),y
|
||||
>PUSHA
|
||||
@ -414,14 +420,12 @@ READ.BUFFER .BS 256
|
||||
.DUMMY
|
||||
.OR 0
|
||||
DS.START
|
||||
*---------------------------------------
|
||||
VAR.INIT
|
||||
bSTOP .BS 1
|
||||
bCANCEL .BS 1
|
||||
SRC.INDEX .BS 1
|
||||
SRC.hREFNUMS .BS 8 Store ref_num of opened files (Main, .INs & .INBs)
|
||||
SRC.hBUFFERS .BS 8 Store hMem to allocated buffers
|
||||
SRC.hFILETYPES .BS 8 Store file type of opened SRC files
|
||||
SRC.COUNT .BS 1
|
||||
SRC.hREFNUMS .BS SRC.IN.DEPTH.MAX Store ref_num of opened files (Main, .INs & .INBs)
|
||||
SRC.hBUFFERS .BS SRC.IN.DEPTH.MAX Store hMem to allocated buffers
|
||||
SRC.hFILETYPES .BS SRC.IN.DEPTH.MAX Store file type of opened SRC files
|
||||
|
||||
SRC.LINENUM .BS 2
|
||||
ASM.T.hFILENAME .BS 1
|
||||
@ -429,7 +433,6 @@ ASM.T.hFILE .BS 1 handle to loaded ASM.T.xxxxx
|
||||
DST.hFILENAME .BS 1
|
||||
DST.hREFNUM .BS 1
|
||||
DST.hBUFFER .BS 1
|
||||
VAR.INIT.END
|
||||
*---------------------------------------
|
||||
ASM.T.FILENAME .BS 65 PStr ProDOS Max Path Len +1
|
||||
TARGET.FILENAME .BS 65 PStr ProDOS Max Path Len +1
|
||||
|
Loading…
x
Reference in New Issue
Block a user