mirror of
https://github.com/A2osX/A2osX.git
synced 2025-03-24 09:33:48 +00:00
Kernel 0.93+
This commit is contained in:
parent
c13c9698da
commit
6f603c3edc
Binary file not shown.
@ -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
|
||||
*--------------------------------------
|
||||
|
@ -60,5 +60,5 @@ DS.END
|
||||
.ED
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/BIN/BIN/MKDIR.S
|
||||
SAVE USR/SRC/BIN/MKDIR.S
|
||||
ASM
|
||||
|
@ -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 :
|
||||
*--------------------------------------
|
||||
|
Loading…
x
Reference in New Issue
Block a user