From 74acfeccd19036006fd30e11dc88fd8409f55d6e Mon Sep 17 00:00:00 2001 From: burniouf Date: Sun, 26 Nov 2023 14:17:41 +0100 Subject: [PATCH] KERNEL & DRVs : lot of fixes around DEV.Open() , KCONFIG SH : fiw for line wrap ProDOS.FX : removed a strange bug inherited from 2.0.3 trashing FCBs --- .Floppies/A2OSX.BUILD.po | Bin 33553920 -> 33553920 bytes .Floppies/A2OSX.TEST.po | Bin 819200 -> 819200 bytes BIN/SH.S.IO.txt | 4 +- BIN/SH.S.txt | 2 +- DRV/DAN2ETH.DRV.S.txt | 2 +- DRV/GRAPPLER.DRV.S.txt | 4 +- DRV/GRAPPLERP.DRV.S.txt | 4 +- DRV/LANCEGS.DRV.S.txt | 4 +- DRV/MKBOARD.DRV.S.txt | 4 +- DRV/MOUSE.DRV.S.txt | 5 ++ DRV/PIC.DRV.S.txt | 7 +-- DRV/PPPSSC.DRV.S.txt | 4 +- DRV/UTHER2.AI.DRV.S.txt | 4 +- DRV/UTHERNET.DRV.S.txt | 4 +- DRV/UTHERNET2.DRV.S.txt | 4 +- INC/A2osX.I.txt | 2 +- ProDOS.FX/ProDOS.S.XDOS.A.txt | 13 ++--- ProDOS.FX/ProDOS.S.XDOS.B.txt | 9 ++-- ProDOS.FX/ProDOS.S.XDOS.C.txt | 87 +++++++++++++--------------------- ProDOS.FX/ProDOS.S.XDOS.D.txt | 76 +++++++++++++++-------------- ProDOS.FX/ProDOS.S.XDOS.E.txt | 42 ++++++++-------- ProDOS.FX/ProDOS.S.XDOS.F.txt | 42 ++++++++-------- SBIN/NETWORKD.S.txt | 2 +- SBIN/TELNETD.S.txt | 2 +- SHARED/X.SSC.DRV.S.txt | 4 +- SHARED/X.UDETH.DRV.S.txt | 2 +- SYS/KERNEL.S.GP.txt | 12 ++--- SYS/KERNEL.S.INIT.txt | 21 ++++++-- SYS/KERNEL.S.STAT.txt | 4 +- SYS/KERNEL.S.TERMX.txt | 42 ++++++++++------ SYS/KERNEL.S.UNISTD.txt | 8 +++- 31 files changed, 219 insertions(+), 201 deletions(-) diff --git a/.Floppies/A2OSX.BUILD.po b/.Floppies/A2OSX.BUILD.po index 408d9eb93cebee2faaec71b307606c61a2c38318..697075a868142570d7e7e54b9da4767d7b2f2a10 100644 GIT binary patch delta 443965 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 diff --git a/BIN/SH.S.IO.txt b/BIN/SH.S.IO.txt index 26365c32..7f2433bf 100644 --- a/BIN/SH.S.IO.txt +++ b/BIN/SH.S.IO.txt @@ -51,7 +51,7 @@ IO.Reset.In sec .8 clc rts *-------------------------------------- -IO.Pipe.Out >PUSHEA.G IO.TMPFIFO +IO.Pipe.Out >PUSHEA.G IO.FIFONAME >PUSHWZ mode >SYSCALL MKFIFO bcs .9 @@ -129,7 +129,7 @@ IO.Pipe.OpenR ldx #O.RDONLY+O.TEXT IO.Pipe.OpenW ldx #O.WRONLY+O.TEXT -IO.Pipe.Open >LEA.G IO.TMPFIFO +IO.Pipe.Open >LEA.G IO.FIFONAME *-------------------------------------- IO.FOpenYAX >PUSHYA txa diff --git a/BIN/SH.S.txt b/BIN/SH.S.txt index 9d66cbce..497bc6fa 100644 --- a/BIN/SH.S.txt +++ b/BIN/SH.S.txt @@ -780,7 +780,7 @@ Sleep .BS 4 *M32.BUF .BS 12 -1234567890\0 TimeBuf .EQ * M32.BUF .EQ * -IO.TMPFIFO .BS 12 /tmp/fifoXX\0 +IO.FIFONAME .BS 12 /dev/fifoXX\0 *-------------------------------------- DS.END .ED *-------------------------------------- diff --git a/DRV/DAN2ETH.DRV.S.txt b/DRV/DAN2ETH.DRV.S.txt index 34500c73..5b5797cb 100644 --- a/DRV/DAN2ETH.DRV.S.txt +++ b/DRV/DAN2ETH.DRV.S.txt @@ -149,7 +149,7 @@ Dev.Detect >STYA ZPArgPtr ldx DEVSLOT0x lda #A2osX.S.NIC - sta A2osX.S,x + sta A2osX.S-1,x * clc .9 rts *-------------------------------------- diff --git a/DRV/GRAPPLER.DRV.S.txt b/DRV/GRAPPLER.DRV.S.txt index 0f200566..28a97749 100644 --- a/DRV/GRAPPLER.DRV.S.txt +++ b/DRV/GRAPPLER.DRV.S.txt @@ -46,7 +46,7 @@ Dev.Detect >STYA ARGS .1 and #$0f tay - lda A2osX.S,y + lda A2osX.S-1,y bne .3 ldx #DEVSIG.Length-1 @@ -79,7 +79,7 @@ Dev.Detect >STYA ARGS pha tay lda #A2osX.S.COM - sta A2osX.S,y + sta A2osX.S-1,y pla asl asl diff --git a/DRV/GRAPPLERP.DRV.S.txt b/DRV/GRAPPLERP.DRV.S.txt index 5a416dbd..ea597196 100644 --- a/DRV/GRAPPLERP.DRV.S.txt +++ b/DRV/GRAPPLERP.DRV.S.txt @@ -46,7 +46,7 @@ Dev.Detect >STYA ARGS .1 and #$0f tay - lda A2osX.S,y + lda A2osX.S-1,y bne .3 ldx #DEVSIG.Length-1 @@ -79,7 +79,7 @@ Dev.Detect >STYA ARGS pha tay lda #A2osX.S.COM - sta A2osX.S,y + sta A2osX.S-1,y pla asl asl diff --git a/DRV/LANCEGS.DRV.S.txt b/DRV/LANCEGS.DRV.S.txt index bdba537f..29446f59 100644 --- a/DRV/LANCEGS.DRV.S.txt +++ b/DRV/LANCEGS.DRV.S.txt @@ -51,7 +51,7 @@ Dev.Detect >STYA ZPArgPtr ldx #$70 ldy #7 -.1 lda A2osX.S,y IO based detection, avoid scanning in Disk Controller IO!!!! +.1 lda A2osX.S-1,y IO based detection, avoid scanning in Disk Controller IO!!!! bne .2 lda L91C96.BSR+1,x @@ -100,7 +100,7 @@ Dev.Detect >STYA ZPArgPtr ldx DEVSLOT0x lda #A2osX.S.NIC - sta A2osX.S,x + sta A2osX.S-1,x * clc .9 rts *-------------------------------------- diff --git a/DRV/MKBOARD.DRV.S.txt b/DRV/MKBOARD.DRV.S.txt index 5b2d0f78..18b22d15 100644 --- a/DRV/MKBOARD.DRV.S.txt +++ b/DRV/MKBOARD.DRV.S.txt @@ -42,7 +42,7 @@ Dev.Detect >STYA ARGS .1 and #$0f tay - lda A2osX.S,y + lda A2osX.S-1,y bne .3 ldy #4 @@ -74,7 +74,7 @@ Dev.Detect >STYA ARGS pha tay lda #A2osX.S.SND - sta A2osX.S,y + sta A2osX.S-1,y pla asl asl diff --git a/DRV/MOUSE.DRV.S.txt b/DRV/MOUSE.DRV.S.txt index 69128ddc..ffd950ea 100644 --- a/DRV/MOUSE.DRV.S.txt +++ b/DRV/MOUSE.DRV.S.txt @@ -73,6 +73,8 @@ Dev.Detect >LDYA L.MSG.DETECT sta GOMOUSE.JMP+2 and #$0F sta DEVSLOT0n + tax + ora #$30 sta FD.DEV.NAME+3 asl @@ -80,6 +82,9 @@ Dev.Detect >LDYA L.MSG.DETECT asl asl sta GOMOUSE.n0+1 + + lda #A2osX.S.XY + sta A2osX.S-1,x >PUSHW L.MSG.DETECT.OK >PUSHW L.FD.DEV.NAME diff --git a/DRV/PIC.DRV.S.txt b/DRV/PIC.DRV.S.txt index 4310841b..f4395cd7 100644 --- a/DRV/PIC.DRV.S.txt +++ b/DRV/PIC.DRV.S.txt @@ -7,6 +7,7 @@ NEW *-------------------------------------- .INB inc/macros.i .INB inc/a2osx.i + .INB inc/kernel.i .INB inc/mli.e.i .INB inc/com.i *-------------------------------------- @@ -46,7 +47,7 @@ Dev.Detect >STYA ARGS .1 and #$0f tay - lda A2osX.S,y + lda A2osX.S-1,y bne .3 ldx #DEVSIG.Length-1 @@ -79,7 +80,7 @@ Dev.Detect >STYA ARGS pha tay lda #A2osX.S.COM - sta A2osX.S,y + sta A2osX.S-1,y pla asl asl @@ -292,7 +293,7 @@ DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ .PS "Apple // Int Crd" .DA #S.DIB.T.CHAR .DA #0 - .DA #0,#94 + .DA K.VER *-------------------------------------- DCB .DA #S.DCB.T.COM .DA #0 FLAGS diff --git a/DRV/PPPSSC.DRV.S.txt b/DRV/PPPSSC.DRV.S.txt index 11f95f88..0c297367 100644 --- a/DRV/PPPSSC.DRV.S.txt +++ b/DRV/PPPSSC.DRV.S.txt @@ -117,7 +117,7 @@ Dev.Detect >STYA ZPArgsPtr .1 and #$0f tay - lda A2osX.S,y + lda A2osX.S-1,y bne .3 ldx #DEVSIG.Length-1 @@ -187,7 +187,7 @@ Dev.Detect >STYA ZPArgsPtr and #$0F tax lda #A2osX.S.NIC - sta A2osX.S,x + sta A2osX.S-1,x * clc diff --git a/DRV/UTHER2.AI.DRV.S.txt b/DRV/UTHER2.AI.DRV.S.txt index ab710fd2..ec4579cd 100644 --- a/DRV/UTHER2.AI.DRV.S.txt +++ b/DRV/UTHER2.AI.DRV.S.txt @@ -55,7 +55,7 @@ Dev.Detect >STYA ZPArgPtr ldx #$70+$88 ldy #7 -.1 lda A2osX.S,y IO based detection, avoid scanning in Disk Controller IO!!!! +.1 lda A2osX.S-1,y IO based detection, avoid scanning in Disk Controller IO!!!! bne .2 lda #W5100.MR.RST @@ -127,7 +127,7 @@ Dev.Detect >STYA ZPArgPtr ldx DEVSLOT0x lda #A2osX.S.NIC - sta A2osX.S,x + sta A2osX.S-1,x * clc .9 rts *-------------------------------------- diff --git a/DRV/UTHERNET.DRV.S.txt b/DRV/UTHERNET.DRV.S.txt index e82b33a0..0085447d 100644 --- a/DRV/UTHERNET.DRV.S.txt +++ b/DRV/UTHERNET.DRV.S.txt @@ -56,7 +56,7 @@ Dev.Detect >STYA ZPArgPtr ldx #$70 ldy #7 -.1 lda A2osX.S,y IO based detection, avoid scanning in Disk Controller IO!!!! +.1 lda A2osX.S-1,y IO based detection, avoid scanning in Disk Controller IO!!!! bne .2 lda /PP.ID @@ -121,7 +121,7 @@ Dev.Detect >STYA ZPArgPtr ldx DEVSLOT0x lda #A2osX.S.NIC - sta A2osX.S,x + sta A2osX.S-1,x * clc .9 rts *-------------------------------------- diff --git a/DRV/UTHERNET2.DRV.S.txt b/DRV/UTHERNET2.DRV.S.txt index e0f10b30..5ff14815 100644 --- a/DRV/UTHERNET2.DRV.S.txt +++ b/DRV/UTHERNET2.DRV.S.txt @@ -53,7 +53,7 @@ Dev.Detect >STYA ZPArgPtr ldx #$70+$88 ldy #7 -.1 lda A2osX.S,y IO based detection, avoid scanning in Disk Controller IO!!!! +.1 lda A2osX.S-1,y IO based detection, avoid scanning in Disk Controller IO!!!! bne .2 lda #W5100.MR.RST @@ -125,7 +125,7 @@ Dev.Detect >STYA ZPArgPtr ldx DEVSLOT0x lda #A2osX.S.NIC - sta A2osX.S,x + sta A2osX.S-1,x * clc .9 rts *-------------------------------------- diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index e3368f24..bcbaa643 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -67,7 +67,7 @@ A2osX.HZ .EQ A2osX.KCONFIG+00 5/6 for 50/60Hz A2osX.TTYDEVS .EQ A2osX.KCONFIG+01 A2osX.F .EQ A2osX.KCONFIG+02 A2osX.F.CHROOT .EQ %10000000 ChRooting to /RAMx -A2osX.F.PMODE .EQ %01000000 Pre-emptive Mode +A2osX.F.PMODE .EQ %01000000 Preemptive Mode * A2osX.S .EQ A2osX.KCONFIG+09 7 slots A2osX.S.Z80 .EQ $80 diff --git a/ProDOS.FX/ProDOS.S.XDOS.A.txt b/ProDOS.FX/ProDOS.S.XDOS.A.txt index 8714463e..e8a34918 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.A.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.A.txt @@ -346,9 +346,9 @@ XDOS.SysDeath tax death error code. .1 sta IO.CLRPAGE2 switch in text page 1. - ldy #deathmsg.LEN-1 + ldy #XDOS.SysErrMsgL-1 -.2 lda deathmsg,y +.2 lda XDOS.SysErrMsg,y sta $400,y 'SYS ERR-$' dey bpl .2 @@ -361,7 +361,7 @@ XDOS.SysDeath tax death error code. adc #$06 inc to alpha a-f -.3 ldy #deathmsg.LEN +.3 ldy #XDOS.SysErrMsgL ora #$80 sta $400,y @@ -381,9 +381,9 @@ XDOS.BFMgr lda XDOS.CmdFlags,x translate into command address. sta cmdtemp and #$3F bit 6 is refnum, 5 is time to process tax - lda cmdtable,x move address to indirect jump + lda XDOS.CmdJmps,x move address to indirect jump sta .8+1 - lda cmdtable+1,x high byte + lda XDOS.CmdJmps+1,x high byte sta .8+2 lda #$20 init backup bit flag @@ -695,10 +695,11 @@ badref lda #MLI.E.BADREF requested refnum is sec illegal (out of range) rts *-------------------------------------- -XDOS.Online jsr mvdbufr figure out how big buffer has to be. +XDOS.Online jsr XDOS.GetUserBuf figure out how big buffer has to be. stz cbytes set this for valdbuf routine. stz cbytes+1 + ldy #$01 lda (ZP.A3L),y if 0 then cbytes=$100 else $010 for one and #$F0 device. mask out unused nibble. diff --git a/ProDOS.FX/ProDOS.S.XDOS.B.txt b/ProDOS.FX/ProDOS.S.XDOS.B.txt index 6912e422..c359c911 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.B.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.B.txt @@ -208,9 +208,9 @@ XDOS.FindFile jsr XDOS.CheckPath see if file exists XDOS.CheckPath jsr XDOS.FindVol bcs fnderr.RTS - bne lookfil0 branch if more than root + bne XDOS.CheckPath1 branch if more than root - jsr XDOS.ZPT.InitGBuf + jsr XDOS.ZPT.InitGBuf zpt = GBUF+4 ldy #$1F move in id and date info @@ -228,6 +228,7 @@ XDOS.CheckPath jsr XDOS.FindVol lda #$D0 fake directory file sta XDOS.DE.Filename + lda XDOS.GBuf+2 check forward link. ora XDOS.GBuf+3 if non-zero, assume full sized directory bne .3 else assume it's the slot 3 /RAM volume @@ -244,7 +245,7 @@ errdir lda #MLI.E.BADDIR directory error fnderr sec fnderr.RTS rts *-------------------------------------- -lookfil0 stz nofree reset free entry indicator. +XDOS.CheckPath1 stz nofree reset free entry indicator. sec dir to be searched has header in this block. @@ -363,7 +364,7 @@ L386C asl .FIN movhead jsr XDOS.GetDH move directory info. - jmp lookfil0 do next local pathname. + jmp XDOS.CheckPath1 do next local pathname. *-------------------------------------- XDOS.GetDH ldx #10 move this directory info diff --git a/ProDOS.FX/ProDOS.S.XDOS.C.txt b/ProDOS.FX/ProDOS.S.XDOS.C.txt index 6476f3dc..4eca0321 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.C.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.C.txt @@ -390,13 +390,13 @@ L3DFD lda #MLI.E.BEYEOF invalid position rts *-------------------------------------- XDOS.SetMark ldy #$04 index to user's desired position. - ldx XDOS.FCBPtr file's control block index. + ldx XDOS.FCBPtr file's control block index. inx inc by 2 for index to hi eof inx sec indicate comparisons are necessary. -.1 lda (ZP.A3L),y move it to 'tpos' - sta tposll-2,y +.1 lda (ZP.A3L),y move it to 'tpos' + sta XDOS.TmpPos-2,y bcc .2 branch if mark < eof cmp XDOS.FCBs+FCB.EOF,x @@ -411,12 +411,12 @@ XDOS.SetMark ldy #$04 index to user's desired position. eor #$01 preserves carry status. bne .1 branch if more. *-------------------------------------- -rdposn ldy XDOS.FCBPtr test to see if new position is +rdposn ldy XDOS.FCBPtr test to see if new position is lda XDOS.FCBs+FCB.MARK+1,y within the same (current) data block. and #$FE sta scrtch - lda tposlh middle byte of new position + lda XDOS.TmpPos+1 middle byte of new position sec sbc scrtch sta scrtch @@ -425,7 +425,7 @@ rdposn ldy XDOS.FCBPtr test to see if new position is cmp #$02 must be within 512 bytes of beginning bcs L3E44 of current position. - lda tposhi make sure within the same 64k. + lda XDOS.TmpPos+2 make sure within the same 64k. cmp XDOS.FCBs+FCB.MARK+2,y bne L3E44 branch if not. @@ -439,8 +439,9 @@ L3E44 lda XDOS.FCBs+FCB.STYPE,y determine file type for positioning. jmp dirmark no, test for dir type. -L3E50 ldy #$A4 clear illegal filetype entry in fcb - sta XDOS.FCBs,y +L3E50 +* ldy #$A4 ??????? clear illegal filetype entry in fcb +* sta XDOS.FCBs,y ??????? WILL TRASH anther FCB lda #MLI.E.BADREF and report error sec rts @@ -459,7 +460,7 @@ L3E6B ldy XDOS.FCBPtr test to see if current index block lda XDOS.FCBs+FCB.MARK+2,y is usable by checking if new and #$FE position is within 128k of the sta scrtch beginning of current sapling level - lda tposhi chunk. + lda XDOS.TmpPos+2 chunk. sec sbc scrtch bcc L3E9D branch if a new index block is needed. @@ -471,9 +472,9 @@ L3E6B ldy XDOS.FCBPtr test to see if current index block dex bne datlevel1 no, use current indexes. -L3E89 lda tposlh is new position < 512 ? +L3E89 lda XDOS.TmpPos+1 is new position < 512 ? lsr - ora tposhi + ora XDOS.TmpPos+2 bne L3EEF no, mark both data and index block as lda XDOS.FCBs+FCB.1stBLK,y unallocated. 1st block is only block @@ -492,7 +493,7 @@ L3EA9 ldx levels be sure there is a top index cpx #$03 before reading it... beq posindex branch if file is a tree. - lda tposhi is new position within range of a + lda XDOS.TmpPos+2 is new position within range of a lsr sapling file (less than 128k) ? php save results lda #$07 (no level is allocated for new pos'n) @@ -517,7 +518,7 @@ posindex jsr XDOS.ClrFCBStatus clr all alloc requirements for previous jsr rfcbfst position. get highest level index block bcs L3ED4 - lda tposhi then test for a sap level index block + lda XDOS.TmpPos+2 then test for a sap level index block lsr tay lda (zpt),y @@ -597,23 +598,23 @@ rnewpos sta ZP.BLKNUM+1 jsr XDOS.ClrFCBStatus show whole chain is allocated. *-------------------------------------- -svmark ldy XDOS.FCBPtr update position in fcb +svmark ldy XDOS.FCBPtr update position in fcb iny iny ldx #$02 -L3F68 lda XDOS.FCBs+FCB.MARK,y save old mark in case calling routine +L3F68 lda XDOS.FCBs+FCB.MARK,y save old mark in case calling routine sta oldmark,x fails later. - lda tposll,x + lda XDOS.TmpPos,x sta XDOS.FCBs+FCB.MARK,y dey dex move 3 byte position marker bpl L3F68 clc set up indirect address to buffer - lda ZP.DataPtr page pointed to by the current + lda ZP.DataPtr page pointed to by the current sta sos position marker. - lda tposlh + lda XDOS.TmpPos+1 and #$01 adc ZP.DataPtr+1 sta sos+1 @@ -630,15 +631,15 @@ L3F9C lda scrtch recover results of previous subtraction. sta cntent blocks must be read to get to new pos'n. lda XDOS.FCBs+FCB.MARK+1,y test for positive direction - cmp tposlh indicated by carry. + cmp XDOS.TmpPos+1 indicated by carry. lda XDOS.FCBs+FCB.MARK+2,y - sbc tposhi + sbc XDOS.TmpPos+2 bcc L3FB9 if set, position forward. otherwise, L3FAB ldy #$00 read directory file in reverse order. - jsr dirpos1 read previous block. + jsr XDOS.DirSeek read previous block. bcs L3FD6 if error. inc cntent count up to 128. @@ -647,7 +648,7 @@ L3FAB ldy #$00 read directory file in reverse order. bmi svmark always. L3FB9 ldy #$02 position is forward from current. - jsr dirpos1 read next directory block + jsr XDOS.DirSeek read next directory block bcs L3FD6 if error. dec cntent @@ -655,22 +656,17 @@ L3FB9 ldy #$02 position is forward from current. beq svmark branch always. *-------------------------------------- -dirpos1 lda (ZP.DataPtr),y get link address of previous or next +XDOS.DirSeek lda (ZP.DataPtr),y get link address of previous or next sta ZP.BLKNUM directory block. - cmp #$01 test for null byte into carry - iny but first be sure there is a link. - lda (ZP.DataPtr),y get the rest of the link. - bne L3FD8 branch if certain link exists. - - bcs L3FD8 was the low part null as well ? + iny + lda (ZP.DataPtr),y get the rest of the link. + sta ZP.BLKNUM+1 + ora ZP.BLKNUM but first be sure there is a link. + bne XDOS.ReadFCB.DBLK branch if certain link exists. lda #MLI.E.EOF something is wrong with directory file! - sec error. - L3FD6 rts - -L3FD8 sta ZP.BLKNUM+1 *-------------------------------------- XDOS.ReadFCB.DBLK lda #$01 read command @@ -690,23 +686,6 @@ XDOS.ReadFCB.DBLK .9 rts *-------------------------------------- -*rfcbidx lda #$01 prepare to read index block : read command -* sta ZP.CMDNUM - -* ldx #zpt address of current index buffer. -* XDOS.FileIOPtrX go read index block. -* bcs L400C error - -* ldy XDOS.FCBPtr -* lda ZP.BLKNUM -* sta XDOS.FCBs+FCB.IBLK,y save block address of this index in fcb -* lda ZP.BLKNUM+1 -* sta XDOS.FCBs+FCB.IBLK+1,y - -** clc - -*L400C rts -*-------------------------------------- wfcbfst jsr XDOS.FlushBM update the bitmap and write file's 1st block. ldx #$02 write command @@ -715,7 +694,7 @@ wfcbfst jsr XDOS.FlushBM update the bitmap and write file's 1st block. rfcbfst ldx #$01 read command. lda #FCB.1stBLK - ora XDOS.FCBPtr add offset to XDOS.FCBPtr + ora XDOS.FCBPtr add offset to XDOS.FCBPtr tay txa get back command @@ -751,8 +730,6 @@ XDOS.FileIO2 sec also, set to indicate reg call made to stz GP.ERROR clear global error code. jmp XDOS.DevCall call the driver. *-------------------------------------- - -*-------------------------------------- XDOS.WriteDBLK ldx #ZP.DataPtr point at memory address with x and lda #FCB.DBLK disk address with y. ora XDOS.FCBPtr add offset to XDOS.FCBPtr @@ -848,7 +825,7 @@ L40FF ldx #$06 move address of 1st block of file, end L4101 sta ZP.BLKNUM+1 of file and current usage count. lda XDOS.FCBPtr - ora ofcbtbl,x this is done via a translation table + ora XDOS.DE2FCB,x this is done via a translation table tay between directory info and fcb. lda XDOS.DE.KeyPtr,x sta XDOS.FCBs,y @@ -877,7 +854,7 @@ L4101 sta ZP.BLKNUM+1 of file and current usage count. ldy #$02 etc. set desired position to 0. lda #$00 -L413C sta tposll,y +L413C sta XDOS.TmpPos,y dey bpl L413C diff --git a/ProDOS.FX/ProDOS.S.XDOS.D.txt b/ProDOS.FX/ProDOS.S.XDOS.D.txt index 98efcf96..e942986b 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.D.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.D.txt @@ -1,10 +1,10 @@ NEW AUTO 3,1 *-------------------------------------- -XDOS.Read jsr mvdbufr xfer buffer address and request count +XDOS.Read jsr XDOS.GetUserBuf xfer buffer address and request count jsr mvcbytes to a more accessable location, also pha get fcb attributes and save on stack. - jsr calcmrk calc mark after read, test if mark > eof + jsr XDOS.CalcNewMark calc mark after read, test if mark > eof pla carry set means end mark > eof. and #$01 test for read enabled. beq .9 @@ -13,11 +13,11 @@ XDOS.Read jsr mvdbufr xfer buffer address and request count ldy XDOS.FCBPtr request to read until just before eof. lda XDOS.FCBs+FCB.EOF,y result = (eof-1) - position - sbc tposll + sbc XDOS.TmpPos sta cbytes sta rwreql lda XDOS.FCBs+FCB.EOF+1,y - sbc tposlh + sbc XDOS.TmpPos+1 sta cbytes+1 sta rwreqh ora cbytes if both bytes = 0 then eof error @@ -74,12 +74,12 @@ L424E inc ZP.DataPtr+1 incll ptrs by one block (512 bytes) inc ZP.DataPtr+1 dec rwreqh dec rwreqh - inc tposlh - inc tposlh + inc XDOS.TmpPos+1 + inc XDOS.TmpPos+1 bne L4269 if pos'n doesn't get to a 64k boundary - inc tposhi otherwise, must check for a 128k one. - lda tposhi carry set if 128k boundary reached. + inc XDOS.TmpPos+2 otherwise, must check for a 128k one. + lda XDOS.TmpPos+2 carry set if 128k boundary reached. eor #$01 lsr @@ -147,7 +147,7 @@ rwdone ldy #$06 return total # of bytes actually read preprw ldy XDOS.FCBPtr adj pointer to user's buffer to make sec the transfer lda ZP.UserBuf - sbc tposll + sbc XDOS.TmpPos sta ZP.UserBuf bcs .1 if no adjustment to hi address needed @@ -162,7 +162,7 @@ preprw ldy XDOS.FCBPtr adj pointer to user's buffer to make lda XDOS.FCBs+FCB.NLBYTE,y move newline character to more sta nlchar accesible spot. -.2 ldy tposll index to 1st data. +.2 ldy XDOS.TmpPos index to 1st data. lda ZP.DataPtr reset low order of position pointer to sta sos beginning of page. ldx rwreql get low order count of requested bytes. @@ -191,10 +191,10 @@ L4319 dex dec # of bytes left to move. lda sos+1 test for end of buffer, but first inc ZP.UserBuf+1 adjust user buffer pointer - inc tposlh and position + inc XDOS.TmpPos+1 and position bne L4329 - inc tposhi + inc XDOS.TmpPos+2 L4329 inc sos+1 and sos buffer high address. eor ZP.DataPtr+1 (carry is undisturbed) @@ -227,14 +227,14 @@ L4350 iny adjust position. bne L435D inc ZP.UserBuf+1 inc pointers - inc tposlh + inc XDOS.TmpPos+1 bne L435D - inc tposhi + inc XDOS.TmpPos+2 L435D bit setvflg (sets v flag) -L4360 sty tposll save low position +L4360 sty XDOS.TmpPos save low position bvs L4366 inx leave request as +1 for next call @@ -304,11 +304,12 @@ mvcbytes ldy #$04 move request count to a more accessable location sta cbytes+1 sta rwreqh ldy XDOS.FCBPtr return y = val(XDOS.FCBPtr), + lda XDOS.FCBs+FCB.ACCESS,y a = attributes - clc and carry clear... +* clc and carry clear... rts *-------------------------------------- -mvdbufr ldy #$02 move the pointer to user's buffer +XDOS.GetUserBuf ldy #$02 move the pointer to user's buffer lda (ZP.A3L),y to the block file manager sta ZP.UserBuf z-page area iny @@ -326,11 +327,14 @@ XDOS.GetFCB.ST ldy XDOS.FCBPtr return storage type * y,x,a is unknown * carry set indicates scrtch > eof *-------------------------------------- -calcmrk ldx #$00 +XDOS.CalcNewMark + ldx #$00 ldy XDOS.FCBPtr + clc -L43EE lda XDOS.FCBs+FCB.MARK,y - sta tposll,x + +.1 lda XDOS.FCBs+FCB.MARK,y + sta XDOS.TmpPos,x sta oldmark,x adc cbytes,x sta scrtch,x @@ -340,18 +344,18 @@ L43EE lda XDOS.FCBs+FCB.MARK,y iny inx - bne L43EE always. - + bne .1 always. +*-------------------------------------- eoftest lda scrtch,x new mark in scrtch. cmp XDOS.FCBs+FCB.EOF,y is new position > eof ? - bcc L4414 no, proceed. - bne L4414 yes, adjust 'cbytes' request + bcc .1 no, proceed. + bne .1 yes, adjust 'cbytes' request dey dex all tree bytes compared ? bpl eoftest no, test next lowest -L4414 rts +.1 rts *-------------------------------------- werreof jsr plus2fcb reset eof to pre-error position. @@ -392,7 +396,7 @@ plus2fcb lda #$02 on exit both a and y = XDOS.FCBPtr+2. *-------------------------------------- XDOS.Write jsr mvcbytes first determine if requested write is legal. pha - jsr calcmrk save a copy of eof to old eof, set/clr + jsr XDOS.CalcNewMark save a copy of eof to old eof, set/clr jsr wadjeof carry to determine if new mark > eof. pla get attributes again. and #$02 is write enabled ? @@ -410,7 +414,7 @@ L4462 jsr XDOS.TestWP otherwise, make sure device is not jmp rwdone else do nothing. -L4472 jsr mvdbufr move the user's buffer ptr to bfm zero +L4472 jsr XDOS.GetUserBuf move the user's buffer ptr to bfm zero cmp #$04 page area, also get storage type. bcs L445E if not tree, return an access error. @@ -498,10 +502,10 @@ L4507 iny page crossed ? lda sos+1 test for end of buffer inc ZP.UserBuf+1 but first adjust user buffer pointer - inc tposlh and position + inc XDOS.TmpPos+1 and position bne L451C - inc tposhi + inc XDOS.TmpPos+2 bne L451C lda #MLI.E.BEYEOF out of range if > 32MB @@ -532,14 +536,14 @@ L4539 iny and position bne L4546 inc ZP.UserBuf+1 inc pointers - inc tposlh + inc XDOS.TmpPos+1 bne L4546 - inc tposhi + inc XDOS.TmpPos+2 L4546 bit setvflg set v flag -L4549 sty tposll save low position +L4549 sty XDOS.TmpPos save low position stx rwreql and remainder of request count. php save statuses @@ -547,7 +551,7 @@ L4549 sty tposll save low position jsr XDOS.SetFCBStatus clc adjust user's low buffer address - lda tposll + lda XDOS.TmpPos adc ZP.UserBuf sta ZP.UserBuf bcc L4564 @@ -576,7 +580,7 @@ topdown jsr swapdown make current 1st block an entry in new L457A jsr alcwblk get another block address for the sap bcs L45B1 level index. branch if errors. - lda tposhi calculate position of new index block + lda XDOS.TmpPos+2 calculate position of new index block lsr in the top of the tree. tay lda scrtch get address of newly allocated index @@ -686,9 +690,9 @@ XDOS.TestWPA sta ZP.UNITNUM make the device status call .1 jmp XDOS.PopBlkNumRTS restore the block # *-------------------------------------- -XDOS.Tpos2Y lda tposhi get index to next block address +XDOS.Tpos2Y lda XDOS.TmpPos+2 get index to next block address lsr - lda tposlh + lda XDOS.TmpPos+1 ror tay index to address = int(pos/512) XDOS.Tpos2Y.RTS rts diff --git a/ProDOS.FX/ProDOS.S.XDOS.E.txt b/ProDOS.FX/ProDOS.S.XDOS.E.txt index a516b0d4..72d221ee 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.E.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.E.txt @@ -300,7 +300,7 @@ L47EF lda XDOS.FCBs+FCB.EOF,y ldx #$02 L47FD lda (ZP.A3L),y position mark to new eof - sta tposll,x + sta XDOS.TmpPos,x dey dex bpl L47FD @@ -308,7 +308,7 @@ L47FD lda (ZP.A3L),y position mark to new eof ldx #$02 point to 3rd byte. L4808 lda oldeof,x see if eof moved backwards so blocks - cmp tposll,x can be released. + cmp XDOS.TmpPos,x can be released. bcc eofset (branch if not) bne purge branch if blocks to be released @@ -344,7 +344,7 @@ purge jsr XDOS.FlushOne make sure file is current ldx #$02 L4840 lda XDOS.FCBs+FCB.MARK,y - cmp tposll,x compare until not equal or carry clear. + cmp XDOS.TmpPos,x compare until not equal or carry clear. bcc L485F branch if eof > mark. bne L484E branch if eof < mark. @@ -356,7 +356,7 @@ L4840 lda XDOS.FCBs+FCB.MARK,y L484E ldy XDOS.FCBPtr ldx #$00 -L4853 lda tposll,x fake position, correct position will +L4853 lda XDOS.TmpPos,x fake position, correct position will sta XDOS.FCBs+FCB.MARK,y be made below... iny inx @@ -364,13 +364,13 @@ L4853 lda tposll,x fake position, correct position will bne L4853 L485F jsr XDOS.GetFreeCntVCBX force free block count before releasing - lda tposll blocks. prepare for purge of excess... + lda XDOS.TmpPos blocks. prepare for purge of excess... sta dseed all blocks and bytes beyond new eof - lda tposlh must be zero'd + lda XDOS.TmpPos+1 must be zero'd sta dsap and #$01 sta dseed+1 - lda tposhi + lda XDOS.TmpPos+2 lsr sta dtree ror dsap pass position in terms of block & bytes. @@ -396,9 +396,9 @@ L485F jsr XDOS.GetFreeCntVCBX force free block count before releasing L489F sta dseed+1 L48A2 ldy XDOS.FCBPtr also must pass file's 1st block address. lda XDOS.FCBs+FCB.1stBLK,y - sta firstbl + sta XDOS.1stBLK lda XDOS.FCBs+FCB.1stBLK+1,y - sta firstbh + sta XDOS.1stBLK+1 stz deblock lastly, initialize # of blocks to stz deblock+1 be free'd. jsr detree deallocate blocks from tree. @@ -410,7 +410,7 @@ L48A2 ldy XDOS.FCBPtr also must pass file's 1st block address. ldx #$ff L48C2 inx - lda firstbl,x + lda XDOS.1stBLK,x sta XDOS.FCBs+FCB.1stBLK,y move in possible new first file block lda XDOS.FCBs+FCB.UBLK,y address. adjust usage count also sbc deblock,x @@ -431,7 +431,7 @@ L48C2 inx ldx #2 L48F2 lda XDOS.FCBs+FCB.MARK,y tell 'rdposn' to go to correct - sta tposll,x + sta XDOS.TmpPos,x eor #$80 position from incorrect place. sta XDOS.FCBs+FCB.MARK,y dey @@ -500,7 +500,7 @@ XDOS.GetFileInfo bcs .9 .1 lda XDOS.DE.Filename transfer bytes from internal order to - lsr call spec via 'inftabl' translation + lsr call spec via XDOS.DE2FINFO translation lsr table but first change storage type to lsr external (low nibble) format. lsr @@ -508,7 +508,7 @@ XDOS.GetFileInfo ldy #$11 index to last of user's spec table. -.2 lda inftabl-3,y +.2 lda XDOS.DE2FINFO-3,y and #$7F strip bit used by setinfo tax lda XDOS.DE.Filename,x move directory info to call spec. table @@ -533,7 +533,7 @@ XDOS.SetFileInfo ldy #$0D init pointer to user supplied list. -.1 ldx inftabl-3,y get index to corresponding 'd.' table. +.1 ldx XDOS.DE2FINFO-3,y get index to corresponding 'd.' table. bmi .2 branch if parameter can't be set. lda (ZP.A3L),y @@ -905,9 +905,9 @@ L4B45 lda GP.DEVNUM last device used. bcs L4B67 before going thru deallocation. lda XDOS.DE.KeyPtr 'detree' needs first block address - sta firstbl + sta XDOS.1stBLK lda XDOS.DE.KeyPtr+1 - sta firstbh + sta XDOS.1stBLK+1 lda XDOS.DE.Filename find out which storage type. and #$F0 strip off name length. cmp #$40 is it a seed, sapling or tree ? @@ -927,9 +927,9 @@ XDOS.DestroyFile * lda #$00 set 'detree' input variables, must be -L4B6F stz stortyp,x in order: deblock, dtree, dsap, dseed. +.1 stz stortyp,x in order: deblock, dtree, dsap, dseed. dex - bne L4B6F loop until all zero'd. + bne .1 loop until all zero'd. lda #$02 this avoids an extra file i/o and pre- sta dseed+1 vents destruction of any deleted data. @@ -938,8 +938,8 @@ L4B6F stz stortyp,x in order: deblock, dtree, dsap, dseed. dec delflag reset flag. bcs L4B93 (de-evolution) -L4B85 ldx firstbh - lda firstbl now deallocate seed. +L4B85 lda XDOS.1stBLK now deallocate seed. + ldx XDOS.1stBLK+1 jsr XDOS.DeallocAX bcs L4B93 @@ -961,7 +961,7 @@ L4BAF cmp #$01 adjust carry accordingly rts *-------------------------------------- L4BCD bcc L4B85 branch widened (always taken) - +*-------------------------------------- XDOS.DestroyDir cmp #$D0 is this a directory file ? bne L4C1B no, file incompatible. diff --git a/ProDOS.FX/ProDOS.S.XDOS.F.txt b/ProDOS.FX/ProDOS.S.XDOS.F.txt index 95df25f3..769b44ba 100644 --- a/ProDOS.FX/ProDOS.S.XDOS.F.txt +++ b/ProDOS.FX/ProDOS.S.XDOS.F.txt @@ -6,7 +6,7 @@ NEW * * on entry: * stortype = storage type in upper nibble, lower nibble is undisturbed. -* firstbl & firstbh = first block of file (index or data). +* XDOS.1stBLK = first block of file (index or data). * deblock = 0 * dtree = ptr to 1st block with data to be deallocated at tree level. * dsap = ptr to 1st block at sapling level. @@ -14,7 +14,7 @@ NEW * * on exit: * stortype = modified result of storage type (if applicable). -* firstbl & h = modified if storage type changed. +* XDOS.1stBLK = modified if storage type changed. * deblock = total number of blocks freed at all levels. * dtree, dsap, deseed unchanged. * @@ -204,16 +204,16 @@ L4D4F jmp XDOS.WriteGBuf update data block to disk. L4D52 rts return error status. -drdfrst lda firstbl read specified 1st block into XDOS.GBuf - ldx firstbh +drdfrst lda XDOS.1stBLK read specified 1st block into XDOS.GBuf + ldx XDOS.1stBLK+1 jmp XDOS.ReadGBufAX go read it *-------------------------------------- * beware that dealloc may bring in a new bitmap block and may destroy * locations 46 and 47 which are used to point to the current index block. *-------------------------------------- -shrink ldx firstbh first deallocate top index block +shrink ldx XDOS.1stBLK+1 first deallocate top index block phx - lda firstbl + lda XDOS.1stBLK pha save block address of this index block. jsr XDOS.DeallocAX free it from the bitmap pla @@ -223,9 +223,9 @@ shrink ldx firstbh first deallocate top index block bcs L4D1E report errors. lda XDOS.GBuf get # of new 1st block from old index. - sta firstbl + sta XDOS.1stBLK lda XDOS.GBuf+$100 - sta firstbh + sta XDOS.1stBLK+1 ldy #$00 jsr XDOS.SwapGBUFY flip that one entry in old top index. sec now change file type, @@ -830,7 +830,7 @@ XDOS.CmdFlags .HS A0A1A2 .HS 50515253 .HS 94959697 -cmdtable .DA XDOS.Create +XDOS.CmdJmps .DA XDOS.Create .DA XDOS.Destroy .DA XDOS.Rename .DA XDOS.SetFileInfo @@ -869,13 +869,18 @@ xdosver .HS 00 compat .HS 00 .HS C3270D000000 .FIN -rootstuf .HS 0F02000400000800 +rootstuf .HS 0F.0200.0400.000800 whichbit .HS 8040201008040201 -ofcbtbl .HS 0C0D1819151617 -inftabl .HS 1E101F2080939421 - .HS 22232418191A1B -deathmsg .AS -"SYS ERR-$0" -deathmsg.LEN .EQ *-deathmsg +XDOS.DE2FCB .DA #FCB.1stBLK+0 + .DA #FCB.1stBLK+1 + .DA #FCB.UBLK+0 + .DA #FCB.UBLK+1 + .DA #FCB.EOF+0 + .DA #FCB.EOF+1 + .DA #FCB.EOF+2 +XDOS.DE2FINFO .HS 1E.10.1F.20.80.93.94.21.22.23.24.18.19.1A.1B +XDOS.SysErrMsg .AS -"SYS ERR-$0" +XDOS.SysErrMsgL .EQ *-XDOS.SysErr *-------------------------------------- XDOS.DATA .DUMMY *-------------------------------------- @@ -943,9 +948,7 @@ XDOS.BM.DevID .HS 00 XDOS.BM.BlkNum .HS 0000 XDOS.BM.Idx .HS 00 -tposll .HS 00 -tposlh .HS 00 -tposhi .HS 00 +XDOS.TmpPos .HS 000000 rwreql .HS 00 rwreqh .HS 00 @@ -968,8 +971,7 @@ cferr .HS 00 * deallocation temporary variables -firstbl .HS 00 -firstbh .HS 00 +XDOS.1stBLK .HS 0000 stortyp .HS 00 *-------------------------------------- deblock .HS 0000 diff --git a/SBIN/NETWORKD.S.txt b/SBIN/NETWORKD.S.txt index 463f268c..cf5c95f5 100644 --- a/SBIN/NETWORKD.S.txt +++ b/SBIN/NETWORKD.S.txt @@ -79,7 +79,7 @@ CS.INIT lda DevID stx hBuf >STYA IOCTL+S.IOCTL.BUFPTR for CS.INIT.DEV - + jsr CS.INIT.DEV bcs .90 diff --git a/SBIN/TELNETD.S.txt b/SBIN/TELNETD.S.txt index 7f73e7bd..a9d16db8 100644 --- a/SBIN/TELNETD.S.txt +++ b/SBIN/TELNETD.S.txt @@ -244,7 +244,7 @@ MSG.TCPIPERR .AZ "TELNETD:TCP/IP Not initialized properly." MSG.SKTERR .AZ "TELNETD:Listen Error." MSG.INCOMING .CZ "TELNETD:Incoming Connection [SKT=%h] From : %d.%d.%d.%d\r\n" *-------------------------------------- -NOD.Template .AZ "/tmp/tty%h" +NOD.Template .AZ "/dev/tty%h" CMD.Template .AZ "${ROOT}sbin/getty -E %s ${ROOT}sbin/login" *-------------------------------------- SA.LOCAL .DA #AF.INET S.SOCKADDR.AF diff --git a/SHARED/X.SSC.DRV.S.txt b/SHARED/X.SSC.DRV.S.txt index f543ea03..06d4edcc 100644 --- a/SHARED/X.SSC.DRV.S.txt +++ b/SHARED/X.SSC.DRV.S.txt @@ -49,7 +49,7 @@ Dev.Detect >STYA ZPArgPtr .1 and #$0f tay - lda A2osX.S,y + lda A2osX.S-1,y bne .3 ldx #DEVSIG.Length-1 @@ -112,7 +112,7 @@ Dev.Detect >STYA ZPArgPtr and #$0F tay lda #A2osX.S.COM - sta A2osX.S,y + sta A2osX.S-1,y * clc diff --git a/SHARED/X.UDETH.DRV.S.txt b/SHARED/X.UDETH.DRV.S.txt index 4494cbac..96fa7589 100644 --- a/SHARED/X.UDETH.DRV.S.txt +++ b/SHARED/X.UDETH.DRV.S.txt @@ -144,7 +144,7 @@ Dev.Detect >STYA ZPArgPtr ldx DEVSLOT0x lda #A2osX.S.NIC - sta A2osX.S,x + sta A2osX.S-1,x * clc .9 rts *-------------------------------------- diff --git a/SYS/KERNEL.S.GP.txt b/SYS/KERNEL.S.GP.txt index 9886a644..6e210807 100644 --- a/SYS/KERNEL.S.GP.txt +++ b/SYS/KERNEL.S.GP.txt @@ -49,17 +49,15 @@ NEW *-------------------------------------- * Public Vars *-------------------------------------- - .LIST ON .BS A2osX.KCONFIG-* - .LIST OFF *-------------------------------------- * Kernel Config Block *-------------------------------------- - .DA #6 A2osX.HZ=60hz - .DA #2 A2osX.TTYDEVS=2 - .DA #0 ChRoot/Preemptive Disabled - .HS 000000000000 spare - .HS 00000000000000 All Slots marked as "Free" + .DA #6 A2osX.HZ : 60hz + .DA #2 A2osX.TTYDEVS : 2 + .DA #0 A2osX.F : ChRoot/Preemptive Disabled + .BS A2osX.S-* + .BS 7 All Slots marked as "Free" *-------------------------------------- MAN SAVE usr/src/sys/kernel.s.gp diff --git a/SYS/KERNEL.S.INIT.txt b/SYS/KERNEL.S.INIT.txt index 394909c9..e6bef4b7 100644 --- a/SYS/KERNEL.S.INIT.txt +++ b/SYS/KERNEL.S.INIT.txt @@ -139,7 +139,9 @@ Kernel.Init2 sei >LDYAI MSG.FX jsr PrintFYA -.5 lda A2osX.HZ +.5 sta IO.SETALTZP + lda A2osX.HZ + sta IO.CLRALTZP pha >LDYAI MSG.HZ jsr PrintFYA @@ -293,6 +295,15 @@ KConfigLoad >LDYAI MSG.KCREAD pla plp bcs .9 + + ldx #15 + +.3 lda A2osX.KCONFIG,x + sta IO.SETALTZP + sta A2osX.KCONFIG,x + sta IO.CLRALTZP + dex + bpl .3 >LDYAI MSG.KCREAD.OK bra .8 @@ -619,7 +630,7 @@ CPU.Init.Z80 >PUSHWI MSG.Z80 sta A2osX.Z80SLOT tax lda #A2osX.S.Z80 - sta A2osX.S,x + sta A2osX.S-1,x >PUSHWI MSG.Z80.OK lda A2osX.Z80SLOT @@ -845,7 +856,7 @@ DevMgrInit >LDYAI MSG.DEV lda #A2osX.S.BLK .7 ldx FD.BDEV+S.FD.DEV.BUSID - sta A2osX.S,x + sta A2osX.S-1,x .8 dec .1+1 bmi .80 @@ -907,7 +918,7 @@ DevMgr.VXD >LDYAI VSD.PATCH bit IO.RRAMWRAMBNK1 lda #A2osX.S.VXD - sta A2osX.S,x + sta A2osX.S-1,x plp @@ -1109,7 +1120,7 @@ IrqMgr.TClk stz ZPPtr1 Try finding a TClock Card... tay get $n0 sty IRQ.n0 lda #A2osX.S.CLK - sta A2osX.S,x + sta A2osX.S-1,x lda #$40+$20 Enable interrupt + 64Hz sta $c080,y diff --git a/SYS/KERNEL.S.STAT.txt b/SYS/KERNEL.S.STAT.txt index 29d68e84..ed5903cf 100644 --- a/SYS/KERNEL.S.STAT.txt +++ b/SYS/KERNEL.S.STAT.txt @@ -154,7 +154,7 @@ K.MKFIFO jsr STAT.PM ldy #0 -.1 lda STAT.TMPFIFO,y +.1 lda STAT.DEVFIFO,y sta (ZPPtr1),y fill pathname buffer iny cpy #9 @@ -283,7 +283,7 @@ STAT.PM >PULLW K.S.STAT+S.STAT.MODE >PULLW ZPPtr1 pathname rts *-------------------------------------- -STAT.TMPFIFO .AS "/tmp/fifo" +STAT.DEVFIFO .AS "/dev/fifo" *-------------------------------------- MAN SAVE usr/src/sys/kernel.s.stat diff --git a/SYS/KERNEL.S.TERMX.txt b/SYS/KERNEL.S.TERMX.txt index 3c668a88..f85c4b7f 100644 --- a/SYS/KERNEL.S.TERMX.txt +++ b/SYS/KERNEL.S.TERMX.txt @@ -359,43 +359,57 @@ TERMX.CUF clc .8 clc rts *-------------------------------------- -TERMX.BS -TERMX.CUB ldy #S.DCB.TTY.CH - lda (ZPDCBPtr),y - beq TERMX.BS.8 +TERMX.CUB sec no wrap - dec - sta (ZPDCBPtr),y + .HS 90 BCC -TERMX.BS.8 clc +TERMX.BS clc wrap + + jsr TERMX.BS1 + + clc rts *-------------------------------------- -TERMX.DEL ldy #S.DCB.TTY.CH +TERMX.BS1 ldy #S.DCB.TTY.CH lda (ZPDCBPtr),y beq .1 dec sta (ZPDCBPtr),y - bra .3 -.1 ldy #S.DCB.TTY.CV + clc + rts + +.1 bcs .9 no wrap + + ldy #S.DCB.TTY.CV lda (ZPDCBPtr),y - beq TERMX.BS.8 + sec + beq .9 dec sta (ZPDCBPtr),y ldy #S.DCB.TTY.CH lda #79 - sta (ZPDCBPtr),y S.DCB.TTY.CH + sta (ZPDCBPtr),y + + clc -.3 lda #C.SPACE +.9 rts +*-------------------------------------- +TERMX.DEL clc wrap + jsr TERMX.BS1 + bcs TERMX.CR.8 + + lda #C.SPACE jmp SetCharAtCurPos *-------------------------------------- TERMX.CR lda #0 ldy #S.DCB.TTY.CH sta (ZPDCBPtr),y - clc + +TERMX.CR.8 clc rts *-------------------------------------- TERMX.SO sec diff --git a/SYS/KERNEL.S.UNISTD.txt b/SYS/KERNEL.S.UNISTD.txt index 385176c7..ad1758a0 100644 --- a/SYS/KERNEL.S.UNISTD.txt +++ b/SYS/KERNEL.S.UNISTD.txt @@ -38,7 +38,7 @@ UNISTD.Open ldx #5 /dev/ jsr K.GetDevByName bcc .6 -.2 ldx #1 + ldx #1 .3 lda FILEs.hFD-1,x beq .5 @@ -69,7 +69,11 @@ UNISTD.Open ldx #5 /dev/ cpx #K.FILE.MAX+1 bcc .3 - jmp FS.OPEN.REG + lda #MLI.E.NODEV +* sec + rts + +.2 jmp FS.OPEN.REG .6 jsr DEV.GetPDrv