mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-03 09:33:01 +00:00
Kernel 0.9.1 : KERNEL, Preemtive mode, Code cleaning....step by step....#6
This commit is contained in:
parent
7550b8bdfb
commit
5bdf3479dd
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -307,7 +307,6 @@ A2CharAX pha
|
|||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
and #$0F
|
|
||||||
ora #$30
|
ora #$30
|
||||||
cmp #'9'+1
|
cmp #'9'+1
|
||||||
bcc .1
|
bcc .1
|
||||||
|
@ -221,7 +221,6 @@ A2CharAX pha
|
|||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
and #$0F
|
and #$0F
|
||||||
ora #$30
|
|
||||||
cmp #'9'+1
|
cmp #'9'+1
|
||||||
bcc .1
|
bcc .1
|
||||||
adc #6
|
adc #6
|
||||||
|
@ -12,8 +12,7 @@ AUTO 4,1
|
|||||||
.INB /A2OSX.BUILD/INC/XY.MOUSE.I
|
.INB /A2OSX.BUILD/INC/XY.MOUSE.I
|
||||||
.INB /A2OSX.BUILD/INC/LIBGUI.I
|
.INB /A2OSX.BUILD/INC/LIBGUI.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPGoMouse .EQ ZPDRV
|
ZPTmpPtr1 .EQ ZPDRV
|
||||||
ZPTmpPtr1 .EQ ZPDRV+2
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -40,9 +39,9 @@ Dev.Detect >LDYA L.MSG.DETECT
|
|||||||
|
|
||||||
stz ZPTmpPtr1
|
stz ZPTmpPtr1
|
||||||
lda #$C1
|
lda #$C1
|
||||||
sta ZPTmpPtr1+1
|
.1 sta ZPTmpPtr1+1
|
||||||
|
|
||||||
.1 ldx #DEVSIG.Value-DEVSIG.Offset-1
|
ldx #DEVSIG.Value-DEVSIG.Offset-1
|
||||||
|
|
||||||
.2 ldy DEVSIG.Offset,x
|
.2 ldy DEVSIG.Offset,x
|
||||||
lda (ZPTmpPtr1),y
|
lda (ZPTmpPtr1),y
|
||||||
@ -52,7 +51,9 @@ Dev.Detect >LDYA L.MSG.DETECT
|
|||||||
bpl .2
|
bpl .2
|
||||||
|
|
||||||
lda ZPTmpPtr1+1
|
lda ZPTmpPtr1+1
|
||||||
sta DEVSLOTCn
|
sta GOMOUSE+2
|
||||||
|
sta GOMOUSE.Cn+1
|
||||||
|
sta GOMOUSE.JMP+2
|
||||||
and #$0F
|
and #$0F
|
||||||
sta DEVSLOT0n
|
sta DEVSLOT0n
|
||||||
ora #$30
|
ora #$30
|
||||||
@ -61,7 +62,7 @@ Dev.Detect >LDYA L.MSG.DETECT
|
|||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
sta DEVSLOTn0
|
sta GOMOUSE.n0+1
|
||||||
|
|
||||||
>PUSHW L.DEV.HEADER.NAME
|
>PUSHW L.DEV.HEADER.NAME
|
||||||
>LDYA L.MSG.DETECT.OK
|
>LDYA L.MSG.DETECT.OK
|
||||||
@ -69,8 +70,8 @@ Dev.Detect >LDYA L.MSG.DETECT
|
|||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.3 inc ZPTmpPtr1+1 no match, try next slot....
|
.3 lda ZPTmpPtr1+1 no match, try next slot....
|
||||||
lda ZPTmpPtr1+1
|
inc
|
||||||
cmp #$C8
|
cmp #$C8
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
@ -79,8 +80,7 @@ Dev.Detect >LDYA L.MSG.DETECT
|
|||||||
|
|
||||||
lda #MLI.E.NODEV
|
lda #MLI.E.NODEV
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
MSG.DETECT .AZ "Apple Mouse Driver.\r\n"
|
MSG.DETECT .AZ "Apple Mouse Driver.\r\n"
|
||||||
@ -118,9 +118,7 @@ STATUS >LDYA L.DEVSTAT
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
READBLOCK >STYA ZPTmpPtr1
|
READBLOCK >STYA ZPTmpPtr1
|
||||||
|
|
||||||
ldy #S.MOUSE.S
|
stz READBLOCK.S+1 Reset Flags
|
||||||
lda #0
|
|
||||||
sta (ZPTmpPtr1),y Reset Flags
|
|
||||||
|
|
||||||
php
|
php
|
||||||
sei
|
sei
|
||||||
@ -151,9 +149,8 @@ READBLOCK >STYA ZPTmpPtr1
|
|||||||
lda MOUSEYHIx,x
|
lda MOUSEYHIx,x
|
||||||
sta (ZPTmpPtr1),y
|
sta (ZPTmpPtr1),y
|
||||||
|
|
||||||
ldy #S.MOUSE.S
|
|
||||||
lda #S.MOUSE.S.MOVE
|
lda #S.MOUSE.S.MOVE
|
||||||
sta (ZPTmpPtr1),y
|
tsb READBLOCK.S+1
|
||||||
|
|
||||||
stz bDblClick Reset DblClick flag
|
stz bDblClick Reset DblClick flag
|
||||||
|
|
||||||
@ -167,10 +164,8 @@ READBLOCK >STYA ZPTmpPtr1
|
|||||||
asl if CS, down & previously up
|
asl if CS, down & previously up
|
||||||
bcc .2
|
bcc .2
|
||||||
|
|
||||||
ldy #S.MOUSE.S
|
|
||||||
lda #S.MOUSE.S.DOWN
|
lda #S.MOUSE.S.DOWN
|
||||||
ora (ZPTmpPtr1),y
|
tsb READBLOCK.S+1 button has been pressed, start drag...
|
||||||
sta (ZPTmpPtr1),y button has been pressed, start drag...
|
|
||||||
|
|
||||||
lda MOUSEXLOx,x
|
lda MOUSEXLOx,x
|
||||||
sta SrcDrag
|
sta SrcDrag
|
||||||
@ -186,13 +181,12 @@ READBLOCK >STYA ZPTmpPtr1
|
|||||||
|
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.2 ldy #S.MOUSE.S
|
.2 lda READBLOCK.S+1
|
||||||
lda (ZPTmpPtr1),y
|
|
||||||
|
|
||||||
pha save move state
|
pha save move state
|
||||||
|
|
||||||
ora #S.MOUSE.S.UP
|
ora #S.MOUSE.S.UP
|
||||||
sta (ZPTmpPtr1),y
|
sta READBLOCK.S+1
|
||||||
|
|
||||||
pla get back move state
|
pla get back move state
|
||||||
|
|
||||||
@ -209,15 +203,11 @@ READBLOCK >STYA ZPTmpPtr1
|
|||||||
|
|
||||||
.3 dec bDblClick
|
.3 dec bDblClick
|
||||||
|
|
||||||
ldy #S.MOUSE.S
|
tsb READBLOCK.S+1
|
||||||
ora (ZPTmpPtr1),y
|
|
||||||
sta (ZPTmpPtr1),y
|
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.4 lda #S.MOUSE.S.DRAG
|
.4 lda #S.MOUSE.S.DRAG
|
||||||
ldy #S.MOUSE.S
|
tsb READBLOCK.S+1
|
||||||
ora (ZPTmpPtr1),y
|
|
||||||
sta (ZPTmpPtr1),y
|
|
||||||
|
|
||||||
ldy #S.MOUSE.X2+3
|
ldy #S.MOUSE.X2+3
|
||||||
|
|
||||||
@ -228,9 +218,11 @@ READBLOCK >STYA ZPTmpPtr1
|
|||||||
|
|
||||||
.8 plp
|
.8 plp
|
||||||
|
|
||||||
ldy #S.MOUSE.S
|
READBLOCK.S lda #$ff SELF MODIFIED
|
||||||
lda (ZPTmpPtr1),y
|
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
|
ldy #S.MOUSE.S
|
||||||
|
sta (ZPTmpPtr1),y
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -245,11 +237,11 @@ CONTROL >STYA ZPTmpPtr1
|
|||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
ldx #0 set X
|
ldx #0 set X
|
||||||
jsr CONTROL.SETCLAMP
|
jsr SETCLAMP
|
||||||
|
|
||||||
ldy #4
|
ldy #4
|
||||||
ldx #1 set Y
|
ldx #1 set Y
|
||||||
jsr CONTROL.SETCLAMP
|
jsr SETCLAMP
|
||||||
|
|
||||||
ldy #HOMEMOUSE
|
ldy #HOMEMOUSE
|
||||||
jsr GOMOUSE
|
jsr GOMOUSE
|
||||||
@ -258,28 +250,6 @@ CONTROL >STYA ZPTmpPtr1
|
|||||||
clc
|
clc
|
||||||
rts
|
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
|
OPEN php
|
||||||
sei
|
sei
|
||||||
|
|
||||||
@ -311,25 +281,37 @@ CLOSE php
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* PRIVATE
|
* PRIVATE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GOMOUSE pha
|
SETCLAMP lda (ZPTmpPtr1),y
|
||||||
stz ZPGoMouse
|
sta LOCLAMPLO
|
||||||
ldx DEVSLOTCn
|
|
||||||
stx ZPGoMouse+1
|
iny
|
||||||
lda (ZPGoMouse),y
|
lda (ZPTmpPtr1),y
|
||||||
sta ZPGoMouse
|
sta LOCLAMPHI
|
||||||
ldy DEVSLOTn0
|
|
||||||
pla
|
iny
|
||||||
jmp (ZPGoMouse)
|
lda (ZPTmpPtr1),y
|
||||||
|
sta HICLAMPLO
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda (ZPTmpPtr1),y
|
||||||
|
sta HICLAMPHI
|
||||||
|
|
||||||
|
txa
|
||||||
|
ldy #CLAMPMOUSE
|
||||||
|
*--------------------------------------
|
||||||
|
GOMOUSE ldx $FF00,y SELF MODIFIED
|
||||||
|
stx GOMOUSE.JMP+1
|
||||||
|
GOMOUSE.Cn ldx #$ff SELF MODIFIED
|
||||||
|
GOMOUSE.n0 ldy #$ff SELF MODIFIED
|
||||||
|
GOMOUSE.JMP jmp $FFFF SELF MODIFIED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.CS.END
|
DRV.CS.END
|
||||||
DEVSLOT0n .BS 1
|
DEVSLOT0n .BS 1
|
||||||
DEVSLOTn0 .BS 1
|
|
||||||
DEVSLOTCn .BS 1
|
|
||||||
bDblClick .BS 1
|
bDblClick .BS 1
|
||||||
SrcDrag .BS 4
|
SrcDrag .BS 4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DEVSTAT .DA #0
|
DEVSTAT .DA #0
|
||||||
.DA #0,#0,#0 size
|
.DA #0,#0,#0
|
||||||
>PSTR "Apple II Mouse"
|
>PSTR "Apple II Mouse"
|
||||||
.BS 2
|
.BS 2
|
||||||
.DA #S.DSTAT.T.XY
|
.DA #S.DSTAT.T.XY
|
||||||
|
@ -165,7 +165,6 @@ A2CharAX pha
|
|||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
and #$0F
|
|
||||||
ora #$30
|
ora #$30
|
||||||
cmp #'9'+1
|
cmp #'9'+1
|
||||||
bcc .1
|
bcc .1
|
||||||
|
@ -38,10 +38,7 @@ K.ExpandStr.YA stz ENV.hStr Reset Intermediate string...
|
|||||||
.21 bit ENV.bNoExp
|
.21 bit ENV.bNoExp
|
||||||
bpl .23
|
bpl .23
|
||||||
|
|
||||||
.22 ldx ENV.BufLen
|
.22 jsr ENV.AddAToBuf
|
||||||
sta K.Buf256,x
|
|
||||||
inx
|
|
||||||
stx ENV.BufLen
|
|
||||||
bra .11
|
bra .11
|
||||||
|
|
||||||
.23 ldx ENV.bInVar already in a var?
|
.23 ldx ENV.bInVar already in a var?
|
||||||
@ -134,14 +131,6 @@ ENV.GetValue jsr ENV.ExpandSysVar
|
|||||||
jsr ENV.AddP3ToBuf
|
jsr ENV.AddP3ToBuf
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
|
||||||
ENV.BufLen .BS 1
|
|
||||||
ENV.bNoExp .BS 1
|
|
||||||
ENV.bInVar .BS 1
|
|
||||||
ENV.bFound .BS 1
|
|
||||||
ENV.hStr .BS 1
|
|
||||||
ENV.VarLen .BS 1
|
|
||||||
ENV.VarName .BS 16
|
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # PutEnv.YA
|
* # PutEnv.YA
|
||||||
* ## In:
|
* ## In:
|
||||||
@ -354,8 +343,9 @@ ENV.ExpandSysVar
|
|||||||
asl
|
asl
|
||||||
tax
|
tax
|
||||||
jmp (ENV.SysVarsJmp,x)
|
jmp (ENV.SysVarsJmp,x)
|
||||||
|
*--------------------------------------
|
||||||
ENV.SysVars .AS "*#?@$!"
|
ENV.SysVars .AS "*#?@$!"
|
||||||
|
*--------------------------------------
|
||||||
ENV.SysVarsJmp .DA ENV.SysVarsArgs
|
ENV.SysVarsJmp .DA ENV.SysVarsArgs
|
||||||
.DA ENV.SysVarsArgC
|
.DA ENV.SysVarsArgC
|
||||||
.DA ENV.SysVarsRC
|
.DA ENV.SysVarsRC
|
||||||
@ -389,19 +379,6 @@ ENV.SysVarsArgs lda #1
|
|||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENV.AddP3ToBuf ldx ENV.BufLen
|
|
||||||
ldy #$ff
|
|
||||||
dex
|
|
||||||
|
|
||||||
.1 iny
|
|
||||||
inx
|
|
||||||
lda (ZPPtr3),y
|
|
||||||
sta K.Buf256,x
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
stx ENV.BufLen
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
ENV.SysVarsArgC ldy #S.PS.ARGC
|
ENV.SysVarsArgC ldy #S.PS.ARGC
|
||||||
.HS 2C
|
.HS 2C
|
||||||
ENV.SysVarsRC ldy #S.PS.RC
|
ENV.SysVarsRC ldy #S.PS.RC
|
||||||
@ -438,10 +415,13 @@ ENV.SysVarsCPID ldy #S.PS.CPID
|
|||||||
ldx ENV.BufLen
|
ldx ENV.BufLen
|
||||||
lda .3+1
|
lda .3+1
|
||||||
beq .4
|
beq .4
|
||||||
|
|
||||||
|
ora #$30
|
||||||
sta K.Buf256,x
|
sta K.Buf256,x
|
||||||
inx
|
inx
|
||||||
|
|
||||||
.4 lda .2+1
|
.4 lda .2+1
|
||||||
|
pha
|
||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
@ -452,9 +432,11 @@ ENV.SysVarsCPID ldy #S.PS.CPID
|
|||||||
sta K.Buf256,x
|
sta K.Buf256,x
|
||||||
inx
|
inx
|
||||||
|
|
||||||
.5 lda .2+1
|
.5 pla
|
||||||
|
|
||||||
and #$0f
|
and #$0f
|
||||||
ora #$30
|
|
||||||
|
.8 ora #$30
|
||||||
sta K.Buf256,x
|
sta K.Buf256,x
|
||||||
inx
|
inx
|
||||||
|
|
||||||
@ -554,6 +536,33 @@ ENV.NextEnvP3 ldy #0
|
|||||||
inc ZPPtr3+1
|
inc ZPPtr3+1
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
ENV.AddP3ToBuf ldx ENV.BufLen
|
||||||
|
ldy #$ff
|
||||||
|
dex
|
||||||
|
|
||||||
|
.1 iny
|
||||||
|
inx
|
||||||
|
lda (ZPPtr3),y
|
||||||
|
sta K.Buf256,x
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
stx ENV.BufLen
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
ENV.AddAToBuf ldx ENV.BufLen
|
||||||
|
sta K.Buf256,x
|
||||||
|
inx
|
||||||
|
stx ENV.BufLen
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
ENV.BufLen .BS 1
|
||||||
|
ENV.bNoExp .BS 1
|
||||||
|
ENV.bInVar .BS 1
|
||||||
|
ENV.bFound .BS 1
|
||||||
|
ENV.hStr .BS 1
|
||||||
|
ENV.VarLen .BS 1
|
||||||
|
ENV.VarName .BS 16
|
||||||
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.ENV
|
SAVE /A2OSX.SRC/SYS/KERNEL.S.ENV
|
||||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
||||||
|
@ -1155,11 +1155,10 @@ HEX2DEC ror .31+1
|
|||||||
lsr
|
lsr
|
||||||
|
|
||||||
.6 and #$0F
|
.6 and #$0F
|
||||||
|
|
||||||
|
beq .7 a zero?
|
||||||
ora #$30
|
ora #$30
|
||||||
|
|
||||||
cmp #'0' a zero?
|
|
||||||
beq .7
|
|
||||||
|
|
||||||
inc PADLEN found a non zero, Print all digits, even if 0, next time
|
inc PADLEN found a non zero, Print all digits, even if 0, next time
|
||||||
ldy #'0'
|
ldy #'0'
|
||||||
sty PADCHAR
|
sty PADCHAR
|
||||||
|
@ -556,24 +556,26 @@ K.StrFTime.Y ldy #S.Time.YEAR
|
|||||||
K.StrFTime.addDecPtr1Y
|
K.StrFTime.addDecPtr1Y
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
K.StrFTime.addDecA
|
K.StrFTime.addDecA
|
||||||
sta K.StrFTime.BIN
|
|
||||||
stz K.StrFTime.DEC
|
|
||||||
|
|
||||||
sed
|
stz .2+1
|
||||||
|
|
||||||
ldx #8
|
ldx #8
|
||||||
|
sed
|
||||||
|
|
||||||
.1 asl K.StrFTime.BIN
|
.1 asl
|
||||||
|
pha
|
||||||
|
.2 lda #$ff Self Modified
|
||||||
|
|
||||||
lda K.StrFTime.DEC
|
adc .2+1
|
||||||
adc K.StrFTime.DEC
|
sta .2+1
|
||||||
sta K.StrFTime.DEC
|
|
||||||
|
|
||||||
|
pla
|
||||||
dex
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
cld
|
cld
|
||||||
|
|
||||||
* lda K.StrFTime.DEC already in A
|
lda .2+1
|
||||||
pha
|
pha
|
||||||
lsr
|
lsr
|
||||||
lsr
|
lsr
|
||||||
@ -613,9 +615,6 @@ K.StrFTime.MON >PSTR "January"
|
|||||||
>PSTR "November"
|
>PSTR "November"
|
||||||
>PSTR "December"
|
>PSTR "December"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.StrFTime.BIN .BS 1
|
|
||||||
K.StrFTime.DEC .BS 1 always < 100
|
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.TIME
|
SAVE /A2OSX.SRC/SYS/KERNEL.S.TIME
|
||||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
||||||
|
Loading…
x
Reference in New Issue
Block a user