diff --git a/DRV/CONSOLE.DRV.S.txt b/DRV/CONSOLE.DRV.S.txt index 69355e38..218457f7 100644 --- a/DRV/CONSOLE.DRV.S.txt +++ b/DRV/CONSOLE.DRV.S.txt @@ -829,7 +829,7 @@ EscSeqParam .BS 4 STAT .DA #S.DEVSTAT.S.WRITE+S.DEVSTAT.S.READ .DA #0,#0,#0 >PSTR "ANSI 80c Console" - .DA #S.DEVSTAT.TYPE.CHAR + .DA #S.DEVSTAT.T.CHAR .DA #0 .DA $0900 ENQ.String >CSTR "A2osXTERM" diff --git a/DRV/DHGR.DRV.S.txt b/DRV/DHGR.DRV.S.txt index 7a56c92a..7b3ecff4 100644 --- a/DRV/DHGR.DRV.S.txt +++ b/DRV/DHGR.DRV.S.txt @@ -10,14 +10,14 @@ AUTO 6 *-------------------------------------- .INB /A2OSX.BUILD/INC/MACROS.I .INB /A2OSX.BUILD/INC/A2OSX.I - .INB /A2OSX.BUILD/INC/PRODOS.I + .INB /A2OSX.BUILD/INC/MLI.ERR.I .INB /A2OSX.BUILD/INC/IO.I .INB /A2OSX.BUILD/INC/LIBGFX.I *-------------------------------------- ZPBase .EQ ZPDRV ZPShiftLo .EQ ZPDRV+2 ZPShiftHi .EQ ZPDRV+4 -ZPCtrlBlk .EQ ZPDRV+8 limited to 8 bytes for now...have to modify kernel +ZPCtrlBlk .EQ ZPDRV+8 *-------------------------------------- * File Header (16 Bytes) *-------------------------------------- @@ -124,29 +124,31 @@ Dev.Detect >LDYA L.MSG.DETECT clc rts CS.END -MSG.DETECT >CSTR "\nApple IIe/IIc DHGR Driver.\n" +MSG.DETECT >CSTR "Apple IIe/IIc DHGR Driver.\r\n" *-------------------------------------- * Device Header (16 Bytes) *-------------------------------------- -DEV.HEADER .DA DRV.CS.START +DEV.HEADER cld + jmp (DRV.CS.START,x) .DA #0 - >PSTR "GFX" NAME - .HS 00 NAME must Be 5 bytes long + .BS 6 +DEV.HEADER.NAME >PSTR "GFX" + .BS 1 *-------------------------------------- * Driver Code *-------------------------------------- -DRV.CS.START cld - jmp (.1,x) -.1 .DA STATUS - .DA BADCALL +DRV.CS.START .DA STATUS .DA BADCALL .DA BADCALL .DA BADCALL + .DA CONTROL .DA BADCALL .DA OPEN .DA CLOSE .DA BADCALL .DA BADCALL + .DA BADCALL +*-------------------------------------- .DA SETPIXEL .DA GETPIXEL .DA HLINE @@ -157,7 +159,8 @@ DRV.CS.START cld .DA SETCUR .DA HIDECUR .DA SHOWCUR -L.DEVSTAT .DA DEVSTAT +*-------------------------------------- +L.STAT .DA STAT L.DIV7.0 .DA DIV7.0 L.MOD7.0 .DA MOD7.0 L.Shift0.Lo .DA Shift0.lo @@ -168,7 +171,7 @@ BADCALL lda #MLI.ERR.BADCALL sec rts *-------------------------------------- -STATUS >LDYA L.DEVSTAT +STATUS >LDYA L.STAT clc rts *-------------------------------------- @@ -599,7 +602,7 @@ Shift5.hi .BS 128 Shift6.lo .BS 128 Shift6.hi .BS 128 *-------------------------------------- - .INB DRV/DHGR.DRV.T + .INB /A2OSX.SRC/DRV/DHGR.DRV.T *-------------------------------------- DIV7.hi .BS 3 MOD7.lo .BS 3 @@ -628,22 +631,21 @@ SB.Page .BS 1 SB.StartCol .BS 1 SB.Col .BS 1 *-------------------------------------- -DEVSTAT .DA #0 - .DA #0,#0,#0 size - >PSTR "Apple II Mouse" - .BS 2 - .DA #0 +STAT .DA #0 + .DA #0,#0,#0 + >PSTR "Apple II DHGR" + .BS 3 + .DA #S.DEVSTAT.T.GFX .DA #0 .DA $0900 *-------------------------------------- DEVSTAT.MODES .DA #%10000011 XOR,16 & B/W DEVSTAT.W .DA 560 X.SIZE DEVSTAT.H .DA 192 Y.SIZE - .LIST ON *-------------------------------------- DRV.SIZE .EQ *-DRV.CS.START *-------------------------------------- .LIST OFF MAN -SAVE DRV/DHGR.DRV.S +SAVE /A2OSX.SRC/DRV/DHGR.DRV.S ASM diff --git a/DRV/DHGR.DRV.T.txt b/DRV/DHGR.DRV.T.txt index e30910b6..376764e8 100644 --- a/DRV/DHGR.DRV.T.txt +++ b/DRV/DHGR.DRV.T.txt @@ -185,6 +185,6 @@ BASEH .HS 20.24.28.2C.30.34.38.3C .HS 23.27.2B.2F.33.37.3B.3F *-------------------------------------- MAN -SAVE DRV/DHGR.DRV.T -LOAD DRV/DHGR.DRV.S +SAVE /A2OSX.SRC/DRV/DHGR.DRV.T +LOAD /A2OSX.SRC/DRV/DHGR.DRV.S ASM diff --git a/DRV/LANCEGS.DRV.S.txt b/DRV/LANCEGS.DRV.S.txt index 389df1ff..01b0b3a9 100644 --- a/DRV/LANCEGS.DRV.S.txt +++ b/DRV/LANCEGS.DRV.S.txt @@ -444,7 +444,7 @@ DEVSTAT .DA #0 .BS 3 size >PSTR "LanCEGS/L91C96" .BS 1 - .DA #S.DEVSTAT.TYPE.NET + .DA #S.DEVSTAT.T.NET .BS 1 Subtype .BS 2 Version *-------------------------------------- diff --git a/DRV/MOUSE.DRV.S.txt b/DRV/MOUSE.DRV.S.txt index b8313605..e01d9ca8 100644 --- a/DRV/MOUSE.DRV.S.txt +++ b/DRV/MOUSE.DRV.S.txt @@ -129,26 +129,25 @@ DEVSIG.Value .HS 38180120D6 *-------------------------------------- * Device Header (16 Bytes) *-------------------------------------- -DEV.HEADER .DA DRV.CS.START +DEV.HEADER cld + jmp (DRV.CS.START,x) .DA #0 -DEV.HEADER.NAME >PSTR "MOUx" + .BS 6 +DEV.HEADER.NAME >PSTR "MOUX" *-------------------------------------- * Driver Code *-------------------------------------- -DRV.CS.START cld - jmp (.1,x) -.1 .DA STATUS +DRV.CS.START .DA STATUS .DA READBLOCK .DA BADCALL .DA BADCALL - .DA BADCALL + .DA CONTROL .DA BADCALL .DA OPEN .DA CLOSE .DA BADCALL .DA BADCALL L.DEVSTAT .DA DEVSTAT -L.READBLOCK.FLAGS .DA READBLOCK.FLAGS .DA 0 end or relocation *-------------------------------------- BADCALL lda #MLI.ERR.BADCALL @@ -159,6 +158,115 @@ STATUS >LDYA L.DEVSTAT clc rts *-------------------------------------- +READBLOCK >STYA ZPTmpPtr1 + + lda #0 + sta (ZPTmpPtr1) Reset Flags + + php + sei + +* ldy #READMOUSE DONE BY IRQ MANAGER +* jsr GOMOUSE + + ldx DEVSLOT0n + + lda MOUSESTSx,x + and #MOUSESTSx.DOWN+MOUSESTSx.LDOWN + beq .3 no button state change:up & previously up + cmp #MOUSESTSx.DOWN+MOUSESTSx.LDOWN + beq .3 no button state change:down & previously down + + asl if CS, down & previously up + bcc .1 + + lda #EVENT.MOUSEUP + bra .2 + +.1 lda #EVENT.MOUSEDOWN + +.2 sta (ZPTmpPtr1) + +.3 lda MOUSESTSx,x + and #MOUSESTSx.MOVED + beq .4 + + lda (ZPTmpPtr1) + ora #EVENT.MOUSEMOVE + sta (ZPTmpPtr1) + +.4 ldy #1 + + lda MOUSEXLOx,x + sta (ZPTmpPtr1),y + + iny + lda MOUSEXHIx,x + sta (ZPTmpPtr1),y + + iny + lda MOUSEYLOx,x + sta (ZPTmpPtr1),y + + iny + lda MOUSEYHIx,x + sta (ZPTmpPtr1),y + + plp + + + lda (ZPTmpPtr1) + beq .9 + + clc + rts + +.9 lda #MLI.ERR.EOF + sec + rts +*-------------------------------------- +CONTROL >STYA ZPTmpPtr1 + + php + sei + + ldy #0 + ldx #0 set X + jsr CONTROL.SETCLAMP + + ldy #4 + ldx #1 set Y + jsr CONTROL.SETCLAMP + + ldy #HOMEMOUSE + jsr GOMOUSE + + plp + clc + rts +*-------------------------------------- +CONTROL.SETCLAMP + lda (ZPTmpPtr1),y + sta LOCLAMPLO + + iny + lda (ZPTmpPtr1),y + sta LOCLAMPHI + + iny + lda (ZPTmpPtr1),y + sta HICLAMPLO + + iny + lda (ZPTmpPtr1),y + sta HICLAMPHI + + txa + ldy #CLAMPMOUSE + jsr GOMOUSE + + rts +*-------------------------------------- OPEN php sei @@ -172,92 +280,11 @@ OPEN php ldy #INITMOUSE Reset jsr GOMOUSE - stz LOCLAMPLO - stz LOCLAMPHI - lda #559 - sta HICLAMPLO - lda /559 - sta HICLAMPHI - - lda #0 set X - ldy #CLAMPMOUSE - jsr GOMOUSE - - stz LOCLAMPLO - stz LOCLAMPHI - lda #191 - sta HICLAMPLO - lda /191 - sta HICLAMPHI - - lda #1 set Y - ldy #CLAMPMOUSE - jsr GOMOUSE - - ldy #HOMEMOUSE - jsr GOMOUSE - plp clc rts *-------------------------------------- -READBLOCK php - sei - - ldy #READMOUSE - jsr GOMOUSE - - stz READBLOCK.FLAGS - - ldx DEVSLOT0n - - lda MOUSESTSx,x - and #MOUSESTSx.DOWN+MOUSESTSx.LDOWN - beq .3 no button state change:up & previously up - cmp #MOUSESTSx.DOWN+MOUSESTSx.LDOWN - beq .3 no button state change:down & previously down - - asl if CS, down & previoulsy up - bcc .1 - - lda #EVENT.MOUSEUP - bra .2 - -.1 lda #EVENT.MOUSEDOWN - -.2 sta READBLOCK.FLAGS - -.3 lda MOUSESTSx,x - and #MOUSESTSx.MOVED - beq .4 - - lda READBLOCK.FLAGS - ora #EVENT.MOUSEMOVE - sta READBLOCK.FLAGS - -.4 lda MOUSEXLOx,x - sta READBLOCK.XY - lda MOUSEXHIx,x - sta READBLOCK.XY+1 - lda MOUSEYLOx,x - sta READBLOCK.XY+2 - lda MOUSEYHIx,x - sta READBLOCK.XY+3 - - plp - - - lda READBLOCK.FLAGS - beq .9 - - clc - rts - -.9 lda #MLI.ERR.EOF - sec - rts -*-------------------------------------- CLOSE php sei ldx DEVSLOT0n @@ -290,13 +317,10 @@ DEVSTAT .DA #0 .DA #0,#0,#0 size >PSTR "Apple II Mouse" .BS 2 - .DA #S.DEVSTAT.TYPE.XY + .DA #S.DEVSTAT.T.XY .DA #0 .DA $0900 *-------------------------------------- -READBLOCK.FLAGS .BS 1 -READBLOCK.XY .BS 4 -*-------------------------------------- MAN -SAVE DRV/MOUSE.DRV.S +SAVE /A2OSX.SRC/DRV/MOUSE.DRV.S ASM diff --git a/DRV/PIC.DRV.S.txt b/DRV/PIC.DRV.S.txt index 579021a8..015b25fc 100644 --- a/DRV/PIC.DRV.S.txt +++ b/DRV/PIC.DRV.S.txt @@ -155,7 +155,7 @@ STAT .DA #S.DEVSTAT.S.WRITE .DA #0,#0,#0 >PSTR "Parallel Card" .DA #0,#0,#0 - .DA #S.DEVSTAT.TYPE.CHAR + .DA #S.DEVSTAT.T.CHAR .DA #0 .DA $0900 *-------------------------------------- diff --git a/DRV/SSC.DRV.S.txt b/DRV/SSC.DRV.S.txt index 0dac86b0..ad86700e 100644 --- a/DRV/SSC.DRV.S.txt +++ b/DRV/SSC.DRV.S.txt @@ -205,7 +205,7 @@ DEVSLOTn0 .BS 1 STAT .DA #S.DEVSTAT.S.WRITE+S.DEVSTAT.S.READ .DA #0,#0,#0 >PSTR "Serial Card/Port" - .DA #S.DEVSTAT.TYPE.CHAR + .DA #S.DEVSTAT.T.CHAR .DA #0 .DA $0900 *-------------------------------------- diff --git a/DRV/SSC.I.DRV.S.txt b/DRV/SSC.I.DRV.S.txt index e92adea4..f4531e76 100644 --- a/DRV/SSC.I.DRV.S.txt +++ b/DRV/SSC.I.DRV.S.txt @@ -325,7 +325,7 @@ OUTBUF .BS BUF.SIZE STAT .DA #S.DEVSTAT.S.WRITE+S.DEVSTAT.S.READ+S.DEV.S.IRQ .DA #0,#0,#0 >PSTR "Serial Card/Port" - .DA #S.DEVSTAT.TYPE.CHAR + .DA #S.DEVSTAT.T.CHAR .DA #0 .DA $0900 *-------------------------------------- diff --git a/DRV/UTHER2.AI.DRV.S.txt b/DRV/UTHER2.AI.DRV.S.txt index 9df259c6..da473654 100644 --- a/DRV/UTHER2.AI.DRV.S.txt +++ b/DRV/UTHER2.AI.DRV.S.txt @@ -510,7 +510,7 @@ DEVSLOTx0 .BS 1 DEVSTAT .DA #0 .BS 3 size >PSTR "UtherNetII/W5100" - .DA #S.DEVSTAT.TYPE.NET + .DA #S.DEVSTAT.T.NET .BS 1 Subtype .BS 2 Version *-------------------------------------- diff --git a/DRV/UTHERNET.DRV.S.txt b/DRV/UTHERNET.DRV.S.txt index b9c8be9c..e2c515b7 100644 --- a/DRV/UTHERNET.DRV.S.txt +++ b/DRV/UTHERNET.DRV.S.txt @@ -448,7 +448,7 @@ DEVSLOTx0 .BS 1 DEVSTAT .DA #0 .BS 3 size >PSTR "Uthernet/CS8900A" - .DA #S.DEVSTAT.TYPE.NET + .DA #S.DEVSTAT.T.NET .BS 1 Subtype .BS 2 Version *-------------------------------------- diff --git a/DRV/UTHERNET2.DRV.S.txt b/DRV/UTHERNET2.DRV.S.txt index b9c8af40..a688ffeb 100644 --- a/DRV/UTHERNET2.DRV.S.txt +++ b/DRV/UTHERNET2.DRV.S.txt @@ -396,7 +396,7 @@ DEVSLOTx0 .BS 1 DEVSTAT .DA #0 .BS 3 size >PSTR "UtherNetII/W5100" - .DA #S.DEVSTAT.TYPE.NET + .DA #S.DEVSTAT.T.NET .BS 1 Subtype .BS 2 Version *-------------------------------------- diff --git a/Floppies/A2OSX.BOOT.po b/Floppies/A2OSX.BOOT.po index 30d621c0..3c35821c 100644 Binary files a/Floppies/A2OSX.BOOT.po and b/Floppies/A2OSX.BOOT.po differ diff --git a/Floppies/A2OSX.BUILD.po b/Floppies/A2OSX.BUILD.po index c2b5ae22..06f41625 100644 Binary files a/Floppies/A2OSX.BUILD.po and b/Floppies/A2OSX.BUILD.po differ diff --git a/Floppies/A2OSX.SRC.po b/Floppies/A2OSX.SRC.po index af6eaeb9..5362b7c2 100644 Binary files a/Floppies/A2OSX.SRC.po and b/Floppies/A2OSX.SRC.po differ diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index e60d7149..a3229963 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -326,14 +326,6 @@ S.MEMSTAT.DH .EQ 20 * S.MEMSTAT .EQ 24 *-------------------------------------- -* 'GFX' Class Driver Functions -*-------------------------------------- -*DEVMGR.GFX.SETPIXEL .EQ 14 -*DEVMGR.GFX.GETPIXEL .EQ 16 -*DEVMGR.GFX.HLINE .EQ 18 -*DEVMGR.GFX.VLINE .EQ 20 -*DEVMGR.GFX.BITBLT .EQ 22 -*-------------------------------------- * DEVMGR (new API) = Smartport *-------------------------------------- * JMP : (A=Device) @@ -375,6 +367,14 @@ DEVMGR.READ .EQ 16 DEVMGR.WRITE .EQ 18 DEVMGR.IRQ .EQ 20 *-------------------------------------- +* 'GFX' Class Driver Functions +*-------------------------------------- +DEVMGR.GFX.SETPIXEL .EQ 22 +DEVMGR.GFX.GETPIXEL .EQ 24 +DEVMGR.GFX.HLINE .EQ 26 +DEVMGR.GFX.VLINE .EQ 28 +DEVMGR.GFX.BITBLT .EQ 30 +*-------------------------------------- S.DEVSTAT.S .EQ 0 S.DEVSTAT.S.BLOCK .EQ %10000000 S.DEVSTAT.S.WRITE .EQ %01000000 @@ -386,28 +386,29 @@ S.DEVSTAT.S.IRQ .EQ %00000010 S.DEVSTAT.S.OPENED .EQ %00000001 S.DEVSTAT.SIZE .EQ 1 3 bytes S.DEVSTAT.IDSTRING .EQ 4 1 (LEN) + 16 MAX -S.DEVSTAT.TYPE .EQ 21 -S.DEVSTAT.TYPE.RAM .EQ $00 Memory Expansion Card (RAM disk) -S.DEVSTAT.TYPE.3.5 .EQ $01 3.5" disk -S.DEVSTAT.TYPE.PROFILE .EQ $02 ProFile-type hard disk -S.DEVSTAT.TYPE.GENSCSI .EQ $03 Generic SCSI -S.DEVSTAT.TYPE.ROM .EQ $04 ROM disk -S.DEVSTAT.TYPE.CDROM .EQ $05 SCSI CD-ROM -S.DEVSTAT.TYPE.TAPE .EQ $06 SCSI tape or other SCSI sequential device -S.DEVSTAT.TYPE.HD .EQ $07 SCSI hard disk +S.DEVSTAT.T .EQ 21 +S.DEVSTAT.T.RAM .EQ $00 Memory Expansion Card (RAM disk) +S.DEVSTAT.T.3.5 .EQ $01 3.5" disk +S.DEVSTAT.T.PROFILE .EQ $02 ProFile-type hard disk +S.DEVSTAT.T.GENSCSI .EQ $03 Generic SCSI +S.DEVSTAT.T.ROM .EQ $04 ROM disk +S.DEVSTAT.T.CDROM .EQ $05 SCSI CD-ROM +S.DEVSTAT.T.TAPE .EQ $06 SCSI tape or other SCSI sequential device +S.DEVSTAT.T.HD .EQ $07 SCSI hard disk * .EQ $08 Reserved -S.DEVSTAT.TYPE.SPRINTER .EQ $09 SCSI printer -S.DEVSTAT.TYPE.5.25 .EQ $0A 5-1/4" disk +S.DEVSTAT.T.SPRINTER .EQ $09 SCSI printer +S.DEVSTAT.T.5.25 .EQ $0A 5-1/4" disk * .EQ $0B Reserved * .EQ $0C Reserved -S.DEVSTAT.TYPE.PRINTER .EQ $0D Printer -S.DEVSTAT.TYPE.CLOCK .EQ $0E Clock -S.DEVSTAT.TYPE.MODEM .EQ $0F Modem -S.DEVSTAT.TYPE.DISKII .EQ $10 -S.DEVSTAT.TYPE.PRODOS .EQ $11 -S.DEVSTAT.TYPE.NET .EQ $12 Network board -S.DEVSTAT.TYPE.XY .EQ $13 X,Y Pointing Device -S.DEVSTAT.TYPE.CHAR .EQ $14 +S.DEVSTAT.T.PRINTER .EQ $0D Printer +S.DEVSTAT.T.CLOCK .EQ $0E Clock +S.DEVSTAT.T.MODEM .EQ $0F Modem +S.DEVSTAT.T.DISKII .EQ $10 +S.DEVSTAT.T.PRODOS .EQ $11 +S.DEVSTAT.T.NET .EQ $12 Network board +S.DEVSTAT.T.XY .EQ $13 X,Y Pointing Device +S.DEVSTAT.T.CHAR .EQ $14 +S.DEVSTAT.T.GFX .EQ $15 S.DEVSTAT.SUBTYPE .EQ 22 S.DEVSTAT.SUBTYPE.EXT .EQ $80 S.DEVSTAT.SUBTYPE.DSKSW .EQ $40 diff --git a/LIB/LIBGFX.S.txt b/LIB/LIBGFX.S.txt index c757c348..48fcb923 100644 --- a/LIB/LIBGFX.S.txt +++ b/LIB/LIBGFX.S.txt @@ -43,11 +43,6 @@ LIB.UNLOAD clc *-------------------------------------- InitGFXA sta hDev - >SYSCALL GetDevInfoA - bcs .9 - >STYA ZPPtr1 - - clc rts diff --git a/SBIN/DESKTOP.S.txt b/SBIN/DESKTOP.S.txt index a3d737c4..dab2afdd 100644 --- a/SBIN/DESKTOP.S.txt +++ b/SBIN/DESKTOP.S.txt @@ -13,6 +13,8 @@ AUTO 6 .INB /A2OSX.BUILD/INC/A2OSX.I .INB /A2OSX.BUILD/INC/LIBGFX.I *-------------------------------------- +ZPPtr1 .EQ ZPBIN +*-------------------------------------- * File Header (16 Bytes) *-------------------------------------- CS.START cld @@ -35,6 +37,8 @@ L.LIBGFX .DA LIBGFX L.DEVNAME.GFX .DA DEVNAME.GFX L.DEVNAME.MOUSE .DA DEVNAME.MOUSE L.MSG.INIT .DA MSG.INIT +L.MouseClamp .DA MouseClamp +L.MouseData .DA MouseData L.SetPixel.X .DA SetPixel.X L.DrawLine.X1 .DA DrawLine.X1 .DA 0 @@ -53,14 +57,9 @@ CS.INIT >LDYA L.MSG.INIT .10 stx hDevGFX - ldx pDev - phx - ldx pDev+1 - phx - >STYA GoDevGFX+1 - >STYA pDev + txa ldx #DEVMGR.OPEN jsr GoDevGFX @@ -76,21 +75,37 @@ CS.INIT >LDYA L.MSG.INIT .20 stx hDevMouse >STYA GoDevMouse+1 - >STYA pDev ldx #DEVMGR.OPEN jsr GoDevMouse - ldx #DEVMGR.SELECT Mouse driver disturb graphic mode.... + ldx #DEVMGR.CONTROL Mouse driver disturb graphic screen.... jsr GoDevGFX + ldx #DEVMGR.STATUS get graphic mode and resolution.... + jsr GoDevGFX -.21 pla - sta pDev+1 - pla - sta pDev + >STYA ZPPtr1 + + ldy #S.DEVSTAT+1 + lda (ZPPtr1),y + sta MouseClamp+2 + iny + lda (ZPPtr1),y + sta MouseClamp+3 - lda hDevGFX + iny + lda (ZPPtr1),y + sta MouseClamp+6 + iny + lda (ZPPtr1),y + sta MouseClamp+7 + + >LDYA L.MouseClamp + ldx #DEVMGR.CONTROL + jsr GoDevMouse + +.21 lda hDevGFX >LIBCALL hLibGFX,LIBGFX.InitGFXA lda (pPs) @@ -102,37 +117,35 @@ CS.INIT >LDYA L.MSG.INIT clc rts *-------------------------------------- -CS.RUN clc - rts -*-------------------------------------- -CS.DOEVENT ldy #S.EVT.hDEV +CS.RUN ldy #S.EVT.hDEV - lda hDevMouse Mouse is active ? - beq .1 go check KB - - cmp (pEvent),y Event coming from Mouse ? - bne .1 go check KB - lda A2osX.ASCREEN GUI screen active ? cmp #3 - bne .98 no, discard mouse event & exit + bne .8 no, exit.... - ldy #S.EVT.DATALO - lda (pEvent),y - and #4 mouse move - beq .98 + lda hDevMouse Mouse is active ? + beq .4 go check KB - ldy #S.EVT.DATAW2 - lda (pEvent),y - sta SetPixel.Y + >LDYA L.MouseData + ldx #DEVMGR.READBLOCK + jsr GoDevMouse + bcs .4 go check KB + + lda MouseData + bit #4 mouse move + beq .1 - dey - lda (pEvent),y X.HI + lda MouseData+1 + sta SetPixel.X + + lda MouseData+2 sta SetPixel.X+1 - dey - lda (pEvent),y X.LO - sta SetPixel.X + lda MouseData+3 + sta SetPixel.Y + + lda MouseData+4 + sta SetPixel.Y+1 lda #4 sta SetPixel.Mode @@ -143,20 +156,23 @@ CS.DOEVENT ldy #S.EVT.hDEV >LDYA L.SetPixel.X ldx #DEVMGR.GFX.SETPIXEL jsr GoDevGFX -.98 clc Mark event proceeded + clc rts + +.1 bit #$20 + beq .4 + + jsr Destop.Paint -.1 lda A2osX.ASCREEN GUI screen active ? - cmp #3 - bne .99 not for us... - - sec - rts - - -.99 sec + +.4 + +.8 clc rts *-------------------------------------- +CS.DOEVENT sec + rts +*-------------------------------------- CS.QUIT clc rts *-------------------------------------- @@ -215,10 +231,12 @@ CS.END DEVNAME.GFX >PSTR "GFX" DEVNAME.MOUSE >PSTR "MOU1" LIBGFX >PSTR "libgfx.o" -MSG.INIT >CSTR "DESKTOP:Init...\n" +MSG.INIT >CSTR "DESKTOP:Init...\r\n" hLibGFX .BS 1 hDevGFX .BS 1 hDevMouse .BS 1 +MouseClamp .BS 8 +MouseData .BS 5 SetPixel.X .BS 2 SetPixel.Y .BS 2 SetPixel.Mode .BS 1 diff --git a/SYS/KERNEL.S.D01.txt b/SYS/KERNEL.S.D01.txt index a6827802..0a128875 100644 --- a/SYS/KERNEL.S.D01.txt +++ b/SYS/KERNEL.S.D01.txt @@ -90,7 +90,7 @@ DevMgr.NUL.Code .DA .1 STATUS .2 .DA #S.DEV.S.WRITE+S.DEV.S.READ .DA #0,#0,#0 >PSTR "NULL DEVICE " - .DA #S.DEVSTAT.TYPE.CHAR + .DA #S.DEVSTAT.T.CHAR .DA #0 .DA $0900 *-------------------------------------- @@ -112,7 +112,7 @@ DevMgr.SYS.Code .DA .1 STATUS .2 .DA #S.DEV.S.WRITE+S.DEV.S.READ .DA #0,#0,#0 >PSTR "A2osX SYS Screen" - .DA #S.DEVSTAT.TYPE.CHAR + .DA #S.DEVSTAT.T.CHAR .DA #0 .DA $0900 *-------------------------------------- diff --git a/SYS/KERNEL.S.GP.txt b/SYS/KERNEL.S.GP.txt index 74ad949e..eedf2f08 100644 --- a/SYS/KERNEL.S.GP.txt +++ b/SYS/KERNEL.S.GP.txt @@ -131,7 +131,7 @@ A2osx.DIIStat .DA #S.DEVSTAT.S.BLOCK+S.DEVSTAT.S.WRITE+S.DEVSTAT.S.READ .DA #0 >PSTR "Disk II 5.25" .BS 4 - .DA #S.DEVSTAT.TYPE.DISKII + .DA #S.DEVSTAT.T.DISKII .DA #0 .DA #0,#9 *-------------------------------------- @@ -187,7 +187,7 @@ A2osX.BlkDrv.Go ldy #S.DEV.ROM.JMP A2osX.BlkStat .DA #S.DEVSTAT.S.BLOCK+S.DEVSTAT.S.WRITE+S.DEVSTAT.S.READ .BS 3 >PSTR "ProDOS Block Dev" - .DA #S.DEVSTAT.TYPE.PRODOS + .DA #S.DEVSTAT.T.PRODOS .DA #0 .DA #0,#9 *-------------------------------------- diff --git a/SYS/KERNEL.S.INIT3.txt b/SYS/KERNEL.S.INIT3.txt index 2b75b76d..a26cd9e4 100644 --- a/SYS/KERNEL.S.INIT3.txt +++ b/SYS/KERNEL.S.INIT3.txt @@ -170,11 +170,11 @@ IrqMgrInit php lda #$C1 sta ZPPtr1+1 -.1 ldx #DEVSIG.Value-DEVSIG.Offset-1 +.1 ldx #Mouse.SIG-Mouse.OFS-1 -.2 ldy DEVSIG.Offset,x +.2 ldy Mouse.OFS,x lda (ZPPtr1),y - cmp DEVSIG.Value,x + cmp Mouse.SIG,x bne .3 dex bpl .2 @@ -194,17 +194,17 @@ IrqMgrInit php rts .4 lda ZPPtr1+1 - sta GOMOUSE.JMP+2 DEVSLOTCn + sta K.IrqMgrVBL.MSM+2 sta K.IrqMgrVBL.MRM+2 - + and #$0f sta K.IrqMgrVBL.0n asl asl asl asl - sta GOMOUSE.n0+1 + sta K.IrqMgrVBL.n0 ldy #SERVEMOUSE @@ -217,12 +217,17 @@ IrqMgrInit php bit RROMBNK2 Renable ROM to allow MOUSE II firmware works properly - ldx K.IrqMgrVBL.0n - lda $7F8,x - and #$0F - ora #9 ldy #SETMOUSE - jsr GOMOUSE + lda (ZPPtr1),y + sta .7+1 + + lda #9 #MOUSEMODx.INTVBL+MOUSEMODx.ACTIVE + + ldx ZPPtr1+1 DEVSLOTCn + stx .7+2 + ldy K.IrqMgrVBL.n0 + +.7 jsr $ffff self Modified, CALL SETMOUSE bcs * bit RRAMWRAMBNK1 Back To LC Ram @@ -234,18 +239,8 @@ IrqMgrInit php clc rts *-------------------------------------- -GOMOUSE pha - stz ZPPtr1 - ldx GOMOUSE.JMP+2 DEVSLOTCn - stx ZPPtr1+1 - lda (ZPPtr1),y - sta GOMOUSE.JMP+1 -GOMOUSE.n0 ldy #$ff - pla -GOMOUSE.JMP jmp $ffff Self Modified -*-------------------------------------- -DEVSIG.Offset .HS 05070B0CFB -DEVSIG.Value .HS 38180120D6 +Mouse.OFS .HS 05070B0CFB +Mouse.SIG .HS 38180120D6 *-------------------------------------- DevMgrInit stz ZPPtr1 lda #$C1 diff --git a/SYS/KERNEL.S.IRQ.txt b/SYS/KERNEL.S.IRQ.txt index 0ec2dc9d..dce97bfd 100644 --- a/SYS/KERNEL.S.IRQ.txt +++ b/SYS/KERNEL.S.IRQ.txt @@ -55,7 +55,9 @@ K.IrqMgr.Y .BS 1 K.IrkMgr.VBL .BS 1 K.IrkMgr.VBLINT .BS 1 *-------------------------------------- -* Called by ProDOS IRQ Manager (GP) +* Called by : +* Kernel IrqHandlerAuxLC +* ProDOS IRQ Manager (GP) *-------------------------------------- K.IrqHandler lda K.IrkMgr.VBL beq .10 0, totally disabled.... @@ -74,8 +76,9 @@ K.IrqHandler lda K.IrkMgr.VBL inc K.IrkMgr.VBLINT - lda #$80 - sta K.IrkMgr.VBL Confirm VBL signal valid for EvtMgr + lda SYS.BASL0+37 + eor #'V' + sta SYS.BASL0+37 Confirm VBL signal valid for EvtMgr clc rts @@ -85,25 +88,25 @@ K.IrqHandler lda K.IrkMgr.VBL ldx DevMgr.Count -.1 ldy #S.DEV.S +.4 ldy #S.DEV.S lda ($fe),y and #S.DEV.S.IRQ - beq .2 + beq .6 phx jsr K.IrqHandlerJMP plx bcc .8 CC, IRQ cleared by device -.2 lda $fe +.6 lda $fe clc adc #S.DEV sta $fe - bcc .3 + bcc .7 inc $ff -.3 dex - bne .1 +.7 dex + bne .4 sec diff --git a/SYS/KERNEL.S.RUN.txt b/SYS/KERNEL.S.RUN.txt index a4a05675..aa0f4f82 100644 --- a/SYS/KERNEL.S.RUN.txt +++ b/SYS/KERNEL.S.RUN.txt @@ -40,19 +40,17 @@ K.KernelRun jsr TSK.TskMgrRun .4 lda A2osX.ASCREEN cmp #2 is SYS active? - bne .42 - - lda K.IrkMgr.VBL if verified = $80 + bne .6 ldx SYS.CPULOADI - ora SYS.CPULOADC,x + lda SYS.CPULOADC,x sta SYS.BASL0+38 dex - bpl .41 + bpl .5 ldx #3 -.41 stx SYS.CPULOADI +.5 stx SYS.CPULOADI -.42 bit OPENAPPLE +.6 bit OPENAPPLE bpl K.KernelRun lda KBD