Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-09-30 17:32:54 +02:00
parent adfbd6f74d
commit eb0182dfd9
8 changed files with 282 additions and 105 deletions

Binary file not shown.

View File

@ -8,6 +8,7 @@ NEW
.INB inc/macros.i
.INB inc/a2osx.i
.INB inc/mli.e.i
.INB inc/com.i
*--------------------------------------
ZPTmpPtr1 .EQ ZPDRV
*--------------------------------------
@ -110,8 +111,8 @@ CS.END
DEVSIG.Offset .HS 0507
DEVSIG.Value .HS 4848
DEVSIG.Length .EQ DEVSIG.Value-DEVSIG.Offset
MSG.DETECT .AZ "Apple PIC (Parallel Interface Card).\r\n"
MSG.DETECT.OK .AZ "PIC Installed As Device : %S\r\n"
MSG.DETECT .AZ "Apple PIC (Parallel Interface Card)"
MSG.DETECT.OK .AZ "PIC Installed As Device : %s\r\n"
MSG.DETECT.KO .AZ "No PIC Found.\r\n"
ARGS .BS 2
*--------------------------------------
@ -127,6 +128,18 @@ FD.DEV.NAME .AZ "lpt1"
*--------------------------------------
* Driver Code
*--------------------------------------
PIC.WDATA .EQ $C080
PIC.WSTROBE .EQ $C082
PIC.RCTRL .EQ $C083
PIC.RACK .EQ $C084
PIC.STROBE500 .EQ $C085 pin 13 ????
PIC.IRQEN .EQ $C086
PIC.IRQDIS .EQ $C087 Reset ACK, DIS AutoStrobe
*--------------------------------------
ZPIOCTL .EQ ZPDRV
ZPBufPtr .EQ ZPDRV+2
ZPCount .EQ ZPDRV+4
*--------------------------------------
DRV.CS.START cld
jmp (.1,x)
.1 .DA STATUS
@ -137,47 +150,146 @@ DRV.CS.START cld
.DA A2osX.BADCALL
.DA OPEN
.DA CLOSE
.DA A2osX.BADCALL
.DA READ
.DA WRITE
L.STAT .DA STAT
.DA 0 end or relocation
*--------------------------------------
STATUS >LDYA L.STAT
STATUS jsr STATUS.CONTROL.Init
ldy #S.IOCTL.STATCODE
lda (ZPIOCTL),y
beq .1
cmp #S.IOCTL.STATCODE.GETDIB
bne STATUS.DCB
ldy #S.DIB-1
.HS 2C bit abs
.1 ldy #3
.2 lda DIB,y
sta (ZPBufPtr),y
dey
bpl .2
clc
rts
STATUS.DCB cmp #S.IOCTL.STATCODE.GETDCB
bne .3
ldy #S.DCB.COM-1
.2 lda DCB,y
sta (ZPBufPtr),y
dey
bpl .2
clc
rts
.3 cmp #S.IOCTL.STATCODE.EOF
bne STATUS.9
lda DIB+S.DIB.S
and #S.DIB.S.OPENED
beq OPEN.E
.8 clc
rts
STATUS.9 lda #MLI.E.BADCTL
sec
rts
*--------------------------------------
CONTROL jsr STATUS.CONTROL.Init
ldy #S.IOCTL.CTRLCODE
lda (ZPIOCTL),y
cmp #S.IOCTL.CTRLCODE.SETDCB
bne STATUS.9
ldy #S.DCB.COM-1
.2 lda (ZPBufPtr),y
sta DCB,y
dey
bpl .2
*--------------------------------------
OPEN lda DIB+S.DIB.S
bit #S.DIB.S.OPENED
beq OPEN.1
OPEN.E lda #MLI.E.OPEN
sec
rts
OPEN.1 ldx DEVSLOTn0
stz PIC.IRQDIS,x
lda #S.DIB.S.OPENED
tsb DIB+S.DIB.S
clc
rts
*--------------------------------------
CONTROL
CLOSE lda #S.DIB.S.OPENED
trb DIB+S.DIB.S
clc
rts
*--------------------------------------
OPEN
READ jsr READ.WRITE.Init
clc
rts
*--------------------------------------
CLOSE
clc
WRITE jsr READ.WRITE.Init
.1 inc ZPCount
bne .2
inc ZPCount+1
beq .8
.2 lda (ZPBufPtr)
inc ZPBufPtr
bne .3
inc ZPBufPtr+1
.3 sta PIC.WDATA,x
* sta PIC.WSTROBE,x
bra .1
.8 clc
rts
*--------------------------------------
WRITE
clc
READ.WRITE.Init ldx DEVSLOTn0
STATUS.CONTROL.Init
>STYA ZPIOCTL
ldy #S.IOCTL.BUFPTR
lda (ZPIOCTL),y
sta ZPBufPtr
iny
lda (ZPIOCTL),y
sta ZPBufPtr+1
iny #S.IOCTL.BYTECNT
lda (ZPIOCTL),y
eor #$ff
sta ZPCount
iny
lda (ZPIOCTL),y
eor #$ff
sta ZPCount+1
rts
*--------------------------------------
DRV.CS.END
DEVSLOT0n .BS 1
DEVSLOTCn .BS 1
*DEVSLOT0n .BS 1
*DEVSLOTCn .BS 1
DEVSLOTn0 .BS 1
*--------------------------------------
STAT .DA #S.DIB.S.WRITE
DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ
.DA #0,#0,#0
>PSTR "Parallel Card"
.DA #0,#0,#0
.DA #S.DIB.T.CHAR
.DA #0
.DA $0900
*--------------------------------------
DIB .DA #S.DIB.S.WRITE
.DA #0,#0,#0
>PSTR "Serial Card/Port"
>PSTR "Apple // Int Crd"
.DA #S.DIB.T.CHAR
.DA #0
.DA K.VER

View File

@ -123,6 +123,7 @@ S.WND.hCUR .EQ S.OBJ+16
S.WND.TitleX1 .EQ S.OBJ+18
S.WND.TitleX2 .EQ S.OBJ+20
S.WND.TBAR.Y2 .EQ S.OBJ+22
S.WND.MBAR.Y1 .EQ S.OBJ+22
S.WND.MBAR.Y2 .EQ S.OBJ+24
S.WND.SBAR.Y1 .EQ S.OBJ+26
S.WND.InnerW .EQ S.OBJ+28

View File

@ -39,7 +39,7 @@ DrawToYA jsr OBJ.Get
.8 clc
.9 rts
Draw.Jmp jmp (J.Cmds-S.CB.CMD.DRAWLINE-2,x)
Draw.Jmp jmp (J.Cmds-S.CB.CMD.DRAWLINE,x)
*--------------------------------------
* In: Control Block in CB.Cache
* CMD
@ -271,11 +271,17 @@ DrawLine.IncX lda DX
bra .1
.8 rts
*--------------------------------------
DrawText2 jsr GFXWrite.CB
DrawText2 lda #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD
sta CB.Cache+S.CB.CMD
jsr GFXWrite.CB
bcs .9
jsr GFXWrite.CB
lda CB.Cache+S.CB.SrcPtr
>SYSCALL2 FreeStkObj
.9 rts
*--------------------------------------

View File

@ -16,7 +16,12 @@ MENU.New >STYA ZPPtr1
MENU.Paint
MENU.Close
*--------------------------------------
MENU.MBarInit >STYA ZPPtr1
MENU.MBarInit >STYA ZPMENUPtr
>STYA ZPPtr1
ldy #S.MBAR.S
lda (ZPPtr1),y
bmi .80
stz DX
stz DX+1
@ -24,12 +29,12 @@ MENU.MBarInit >STYA ZPPtr1
.1 lda (ZPPtr1)
beq .8
ldy #S.MBAR.TEXT
lda (ZPPtr1),y
pha
iny
lda (ZPPtr1),y
ply
lda #S.MBAR.TEXT
clc
adc ZPPtr1
tay
lda ZPPtr1+1
adc #0
ldx hSYSFONB
jsr FON.GetTextSize
@ -85,7 +90,7 @@ MENU.MBarInit >STYA ZPPtr1
sta (ZPPtr1),y
lda (ZPPtr1)
sec
clc
adc ZPPtr1
sta ZPPtr1
bcc .1
@ -95,9 +100,9 @@ MENU.MBarInit >STYA ZPPtr1
.8 lda #$80
ldy #S.MBAR.S
sta (ZPMENUPtr),y
sta (ZPPtr1),y
clc
.80 clc
rts
*--------------------------------------
MBAR.New

View File

@ -203,7 +203,7 @@ WND.Show >SYSCALL2 GetMemPtr
tax
iny
lda (ZPWNDPtr),y
ldy #S.WND.TBAR.Y2+1
sta (ZPWNDPtr),y
txa
@ -253,18 +253,18 @@ WND.Show >SYSCALL2 GetMemPtr
.3 ldy #S.WND.MBAR+1
lda (ZPWNDPtr),y
beq .7
lda Counter+1
clc
adc SYSFON.Hp2
sta Counter+1
ldy #S.WND.TBAR.Y2
lda (ZPWNDPtr),y
clc
adc SYSFON.Hp2
adc SYSFON.H
tax
iny
lda (ZPWNDPtr),y
adc #0
@ -273,24 +273,24 @@ WND.Show >SYSCALL2 GetMemPtr
txa
dey
sta (ZPWNDPtr),y
lda #S.WND.S.HASMBAR
jsr WND.SetStatus
jsr WND.PaintMBar
.7 ldy #S.WND.STATUS+1
lda (ZPWNDPtr),y
beq .8
lda Counter+1
clc
adc SYSFON.Hp2
sta Counter+1
lda #S.WND.S.HASSBAR
jsr WND.SetStatus
jsr WND.PaintSBar
.8 lda #0
@ -413,17 +413,17 @@ WND.PaintTopBar lda #S.CB.CMD.FILLRECT
jsr PutA2CBBuf
lda #S.CB.M.C16
jsr PutA2CBBuf
ldx PREFS.TBARCOLORI
ldy #S.OBJ.S
lda (ZPWNDPtr),y
and #S.WND.S.ACTIVE
beq .10
ldx PREFS.TBARCOLORA
.10 txa
.10 txa
jsr PutA2CBBuf
ldy #S.OBJ.X1
@ -487,7 +487,7 @@ WND.PaintTopBar lda #S.CB.CMD.FILLRECT
beq .3
pha
lda L.BM.Close
ldx L.BM.Close+1
sta ZPObjPtr
@ -501,19 +501,19 @@ WND.PaintTopBar lda #S.CB.CMD.FILLRECT
iny
lda (ZPWNDPtr),y
sbc #0
tax
pla
jsr WND.PaintTopBarBMAtAX
pla
.3 bit #S.WND.F.MIN
beq .4
pha
lda L.BM.Min
ldx L.BM.Min+1
sta ZPObjPtr
@ -527,17 +527,17 @@ WND.PaintTopBar lda #S.CB.CMD.FILLRECT
iny
lda (ZPWNDPtr),y
sbc #0
tax
pla
jsr WND.PaintTopBarBMAtAX
pla
.4 bit #S.WND.F.MAX
beq .8
lda L.BM.Max
ldx L.BM.Max+1
sta ZPObjPtr
@ -551,7 +551,7 @@ WND.PaintTopBar lda #S.CB.CMD.FILLRECT
iny
lda (ZPWNDPtr),y
sbc #0
tax
pla
@ -630,7 +630,7 @@ WND.PaintTopBarBMAtAX
lda #0 S.CB.DstPtr
jsr PutA2CBBuf
jsr PutA2CBBuf
rts
*--------------------------------------
WND.PaintTopBarTitle
@ -659,9 +659,9 @@ WND.PaintTopBarTitle
lda (ZPWNDPtr),y
sec
sbc CB.Cache+S.CB.SrcW
sta DX
iny
lda (ZPWNDPtr),y
sbc CB.Cache+S.CB.SrcW+1
@ -669,7 +669,7 @@ WND.PaintTopBarTitle
lsr
ror DX
sta DX+1
ldy #S.OBJ.X1
lda (ZPWNDPtr),y
clc
@ -681,7 +681,7 @@ WND.PaintTopBarTitle
lda (ZPWNDPtr),y
adc DX+1
sta CB.Cache+S.CB.X1+1
ldy #S.OBJ.Y1
lda (ZPWNDPtr),y
clc
@ -698,51 +698,40 @@ WND.PaintTopBarTitle
.9 rts
*--------------------------------------
WND.PaintMBar ldy #S.WND.MBAR
lda (ZPWNDPtr),y
sta ZPMENUPtr
iny
lda (ZPWNDPtr),y
sta ZPMENUPtr+1
ldy #S.MBAR.S
lda (ZPMENUPtr),y
bmi .1
>LDYA ZPMENUPtr
jsr MENU.MBarInit
.1 jsr CB.Clear
WND.PaintMBar jsr CB.Clear
lda #S.CB.CMD.FILLRECT
sta CB.Cache+S.CB.CMD
lda #S.CB.OP.SET
sta CB.Cache+S.CB.OP
lda #S.CB.M.MONO
sta CB.Cache+S.CB.M
lda PREFS.MBARCOLOR
sta CB.Cache+S.CB.OP.COLOR
sta CB.Cache+S.CB.COLOR
ldy #S.OBJ.X1
lda (ZPWNDPtr),y
sta CB.Cache+S.CB.X1
iny
lda (ZPWNDPtr),y
sta CB.Cache+S.CB.X1+1
ldy #S.OBJ.X2
lda (ZPWNDPtr),y
sta CB.Cache+S.CB.X2
iny
lda (ZPWNDPtr),y
sta CB.Cache+S.CB.X2+1
ldy #S.WND.TBAR.Y2
ldy #S.WND.MBAR.Y1
lda (ZPWNDPtr),y
sta CB.Cache+S.CB.Y1
iny
lda (ZPWNDPtr),y
sta CB.Cache+S.CB.Y1+1
@ -750,18 +739,81 @@ WND.PaintMBar ldy #S.WND.MBAR
iny #S.WND.MBAR.Y2
lda (ZPWNDPtr),y
sta CB.Cache+S.CB.Y2
iny
lda (ZPWNDPtr),y
sta CB.Cache+S.CB.Y2+1
jsr PutCBCache2CBBuf
ldy #S.WND.MBAR
lda (ZPWNDPtr),y
pha
iny
lda (ZPWNDPtr),y
ply
jsr MENU.MBarInit
.1 lda (ZPMENUPtr)
beq .8
jsr CB.Clear
lda #S.CB.CMD.DRAWTEXT2
sta CB.CACHE+S.CB.CMD
lda #S.CB.OP.SET+S.CB.OP.INVERSE
sta CB.Cache+S.CB.OP
lda #S.CB.M.MONO
sta CB.Cache+S.CB.M
lda hSYSFONB
sta CB.CACHE+S.CB.hFont
ldy #S.MBAR.XT
lda (ZPMENUPtr),y
clc
ldy #S.OBJ.X1
adc (ZPWNDPtr),y
sta CB.CACHE+S.CB.X1
ldy #S.MBAR.XT+1
lda (ZPMENUPtr),y
ldy #S.OBJ.X1+1
adc (ZPWNDPtr),y
sta CB.CACHE+S.CB.X1+1
ldy #S.WND.MBAR.Y1
lda (ZPWNDPtr),y
sta CB.CACHE+S.CB.Y1
iny
lda (ZPWNDPtr),y
sta CB.CACHE+S.CB.Y1+1
lda #S.MBAR.TEXT
clc
adc ZPMENUPtr
sta CB.CACHE+S.CB.TxtPtr
lda #0
adc ZPMENUPtr+1
sta CB.CACHE+S.CB.TxtPtr+1
jsr PutCBCache2CBBuf
lda (ZPMENUPtr)
clc
adc ZPMENUPtr
sta ZPMENUPtr
bcc .1
inc ZPMENUPtr+1
bra .1
.8 clc
.9 rts
rts
*--------------------------------------
WND.PaintSBar lda #S.CB.CMD.HLINE
jsr WND.PaintBorders.H
@ -772,7 +824,7 @@ WND.PaintSBar lda #S.CB.CMD.HLINE
iny
lda (ZPWNDPtr),y
jsr PutA2CBBuf
ldy #S.OBJ.Y2
lda (ZPWNDPtr),y
sec
@ -782,7 +834,7 @@ WND.PaintSBar lda #S.CB.CMD.HLINE
lda (ZPWNDPtr),y
sbc #0
jsr PutA2CBBuf
ldy #S.OBJ.X2
lda (ZPWNDPtr),y
jsr PutA2CBBuf
@ -843,16 +895,16 @@ WND.PaintSBar lda #S.CB.CMD.HLINE
sta CB.Cache+S.CB.M
lda PREFS.SBARCOLOR
sta CB.Cache+S.CB.OP.COLOR
lda CB.Cache+S.CB.X1
clc
adc CB.Cache+S.CB.SrcW
sta CB.Cache+S.CB.X1
lda CB.Cache+S.CB.X1+1
adc CB.Cache+S.CB.SrcW+1
sta CB.Cache+S.CB.X1+1
ldy #S.OBJ.X2
lda (ZPWNDPtr),y
sta CB.Cache+S.CB.X2

View File

@ -194,13 +194,15 @@ L.Cursors .DA CUR.Arrow
.DA CUR.Wait6
J.Clip .DA CLIP.Point SETPIXEL
.DA CLIP.Point GETPIXEL
.DA CLIP.HLine
.DA CLIP.VLine
.DA CLIP.HLine HLINE
.DA CLIP.VLine VLINE
.DA CLIP.Rect FILLRECT
.DA CLIP.BitBlt
.DA CLIP.BitBlt BITBLT
.DA CLIP.Rect GETRECTBUFSIZE
.DA CLIP.Line
.DA CLIP.Text
.DA CLIP.Text DRAWTEXT
.DA CLIP.Text GETTEXTSIZE
.DA CLIP.Line DRAWLINE
.DA CLIP.BitBlt DRAWTEXT2
.DA 0
*--------------------------------------
LIB.LOAD lda LibCount
@ -318,13 +320,14 @@ CB.Get >STYA .1+1
rts
*--------------------------------------
GetCBBuf >LDYAI 256
GetCBBuf >LDYAI 512
>SYSCALL GetMem
bcs .9
stx hCBBuf
>STYA ZPCBPtr
>STYA ZPCBBufPtr
.9 rts
*--------------------------------------
PutCBCache2CBBuf
@ -457,7 +460,7 @@ MENU.Sys .DA #2 ID
.DA #0
*--------------------------------------
PREFS.BESTVIEWEDX .DA #$FC
PREFS.MBARXMARGIN .DA #10
PREFS.MBARXMARGIN .DA #5
PREFS.BORDERCOLOR .DA #C.BLACK
PREFS.TBARCOLORA .DA #C16.D.BLUE
PREFS.TBARCOLORI .DA #C16.L.BLUE

View File

@ -126,14 +126,12 @@ WND.Test >PUSHBI S.WND.F.RESIZE+S.WND.F.MOVE+S.WND.F.CLOSE+S.WND.F.MAX+S.WND.F.
>PUSHW L.WND.TITLE
>LIBCALL hLIBGUI,LIBGUI.WND.SetProp
lda hWND
>PUSHA
>PUSHB hWND
>PUSHBI S.WND.MBAR
>PUSHW L.WND.MBAR
>LIBCALL hLIBGUI,LIBGUI.WND.SetProp
lda hWND
>PUSHA
>PUSHB hWND
>PUSHBI S.WND.STATUS
>PUSHW L.WND.STATUS
>LIBCALL hLIBGUI,LIBGUI.WND.SetProp