Work In Progress

This commit is contained in:
Rémy GIBERT 2015-09-16 17:58:06 +02:00
parent 7c787a2c6c
commit cbfa59e2af
1 changed files with 42 additions and 39 deletions

View File

@ -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