Kernel 0.93+

This commit is contained in:
Rémy GIBERT 2019-10-09 12:05:08 +02:00
parent c13c9698da
commit 6f603c3edc
4 changed files with 24 additions and 19 deletions

Binary file not shown.

View File

@ -23,6 +23,7 @@ ZPPtrDevName .BS 2
ArgIndex .BS 1
hDevID .BS 1
hBuf .BS 1
bLL .BS 1
bCustomBlkSize .BS 1
MediaBlkSize .BS 2
@ -152,7 +153,6 @@ CS.RUN.Format jsr CS.RUN.GetBlockSize
bcs .9
jsr CS.RUN.BuildCat
bcs .9
jsr CS.RUN.WriteCat
bcs .9
>LDYA L.MSG.OK
@ -236,10 +236,8 @@ CS.RUN.BuildCat >PUSHEA.G VolName
>SYSCALL GetMem0 BufferSize
bcs .9
phx
>STYA.G IOCTL+S.IOCTL.BUFPTR
pla
>STA.G hBuf
stx hBuf
jsr .7
>PUSHEA.G VolName
>PUSHW.G IOCTL+S.IOCTL.BUFPTR
@ -272,7 +270,7 @@ CS.RUN.WriteCat >PUSHEA.G IOCTL
CS.DOEVENT sec
rts
*--------------------------------------
CS.QUIT >LDA.G hBuf
CS.QUIT lda hBuf
beq .1
>SYSCALL FreeMem
.1 lda hLIBBLKDEV
@ -324,7 +322,6 @@ DS.START
VolName .BS 16
IOCTL .BS S.IOCTL
hBuf .BS 1
DIB .BS S.DIB
DS.END .ED
*--------------------------------------

View File

@ -60,5 +60,5 @@ DS.END
.ED
*--------------------------------------
MAN
SAVE USR/SRC/BIN/BIN/MKDIR.S
SAVE USR/SRC/BIN/MKDIR.S
ASM

View File

@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
.LIST OFF
.OP 65C02
.OR $2000
@ -333,7 +332,7 @@ RW.BLOCK2.CT .BS 4 Creation time
RW.BLOCK2.TB .BS 2 Total Blocks
RW.BLOCK2.END .EQ *
*--------------------------------------
.INB USR/SRC/X.PRINTF.S
.INB USR/SRC/SHARED/X.PRINTF.S
*--------------------------------------
RW.MSG .AZ "RAMWorks (I,II,III,z-Ram) Driver For A2osX\n"
RW.MSG.OK .AZ "/RAM3 Device Already Installed.\n"
@ -379,14 +378,16 @@ RWDRV.START cld ProDOS will check that byte!!!
rol
inc +1 for skipping Aux BANK 0
plx move page into X
* php Disable IRQ as no vector set in RW Banks
sei
beq RWDRV.GOAUX move from/to aux page0/1
cpx #$C0
bcs RWDRV.GOAUX move from/to aux LC
*--------------------------------------
* X=Page($02 -> $BF),A=Bank,Y=CMD
*--------------------------------------
* php
sei Disable IRQ as no vector set in RW Banks
sta RWBankSelect Select RAMWorks Bank
sta CLR80STORE make sure SETREADAUX/SETWRITEAUX effective everywhere
@ -396,10 +397,12 @@ RWDRV.START cld ProDOS will check that byte!!!
inc DRV.BUFF+1
dey Y=CMD, zero if read
bne RWDRV.W non zero, go write
sta SETREADAUX
ldx #DRV.A2L READ:copy from RAM to BUFF
lda #DRV.BUFF
bra RWDRV.RW
RWDRV.W sta SETWRITEAUX
ldx #DRV.BUFF
lda #DRV.A2L WRITE:copy from BUFF to RAM
@ -416,8 +419,9 @@ RWDRV.RW.DST sta ($FF),y
bne RWDRV.RW.SRC
.HS 24 BIT Zero Page to skip RTS
.LIST ON
RWDRV.RTS rts $FF58 Must Be RTS
.LIST OFF
dec DRV.BUFF+1
dec DRV.A2H
dex
@ -426,6 +430,7 @@ RWDRV.RTS rts $FF58 Must Be RTS
stz RWBankSelect
sta CLRREADAUX
sta CLRWRITEAUX
* plp
cli
@ -435,6 +440,7 @@ RWDRV.MAXHI ldy #$FF
RWDRV.EXITOK lda #0 make A=0
clc
rts
RWDRV.IOERR lda #MLI.E.IO Carry already set
rts
*--------------------------------------
@ -444,17 +450,21 @@ RWDRV.GOAUX pha save BANK
sta SETWRITEAUX
ldy #RWDRVX.XM.SIZE Backup begining of $300 to generate move code
.1 lda RWDRV.XM.RUN-1,y
sta RWDRVX.XM.SAVE-1,y
dey
bne .1
pla restore BANK
sta SETREADAUX
jsr RWDRVX.START Setup Code in main mem at $300 for data move
* returns : CC=WRITE, CS=READ
sta CLRREADAUX CLRWRITEAUX already triggered by code copy
jsr RWDRV.XM.RUN Now execute generated code in main memory
sta SETREADAUX
jsr RWDRVX.RESTORE
sta CLRREADAUX
rts A & carry setup properly by RWDRVX.RESTORE
@ -518,10 +528,7 @@ RWDRVX.RESTORE ldy #RWDRVX.XM.SIZE Now, restore begining of $300
* CC=WRITE :
* CS=READ :
*--------------------------------------
RWDRVX.XM.START php
sei
ldx #0
RWDRVX.XM.START ldx #0
ldy #2 2 pages to copy
RWDRVX.XM.COPY jsr RWDRV.XM.RUN+RWDRVX.XM.MNLC-RWDRVX.XM.START WRITE:copy from MAIN to TMP
@ -549,7 +556,6 @@ RWDRVX.XM.DST sta $FFFF,x
inc RWDRV.XM.RUN+RWDRVX.XM.DST+2-RWDRVX.XM.START
dey
bne RWDRVX.XM.COPY
plp
RWDRVX.XM.MNLC stz RWBankSelect ProDOS always uses LCBANK1
bit RRAMWRAMBNK1
@ -571,7 +577,9 @@ RWDRVX.XM.SAVE .BS RWDRVX.XM.SIZE
.EP
*--------------------------------------
RWDRVX.B.END
RWDRVX.SIZE .EQ RWDRVX.B.END-RWDRVX.B.START
.LIST ON
RWDRVX.SIZE .EQ RWDRVX.B.END-RWDRVX.B.START
.LIST OFF
*--------------------------------------
* CONTROL SECTION :
*--------------------------------------