mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-19 07:30:41 +00:00
KERNEL:IRQ mode for IIgs (not yet preemptive)
CC:most of it working, many bugs remain DAN2ETH.DRV:broken, lot of debug code included
This commit is contained in:
parent
0ac5def14f
commit
1e404b5bcf
Binary file not shown.
@ -6,18 +6,22 @@ CODE.Init stz ZPCCConst
|
||||
|
||||
>STZ.G CC.bInitCode
|
||||
|
||||
>STA.G CC.ScopeID
|
||||
iny
|
||||
sta (pData),y
|
||||
|
||||
>LDYAI PCC.FH.CS
|
||||
>STYA ZPCCCode
|
||||
|
||||
>LDYAI 20 char *ARGV[10]
|
||||
>STYA ZPCCData
|
||||
|
||||
>STZ.G CC.ScopeID
|
||||
iny
|
||||
sta (pData),y
|
||||
|
||||
lda #'_'
|
||||
>STA.G CC.Label
|
||||
ldy #SCOPE-1
|
||||
lda #0
|
||||
|
||||
.1 sta (ScopeStk),y reset initial Scope ID, LocalPtr, FrameSize
|
||||
dey
|
||||
bpl .1
|
||||
|
||||
clc
|
||||
.99 rts
|
||||
|
@ -34,7 +34,7 @@ CORE.Init lda #SL._
|
||||
>STYA ScopeStk
|
||||
txa
|
||||
>STA.G CC.hScopeStk
|
||||
|
||||
|
||||
>LDYAI 256
|
||||
>SYSCALL GetMem
|
||||
bcs .9
|
||||
@ -43,6 +43,9 @@ CORE.Init lda #SL._
|
||||
txa
|
||||
>STA.G CC.hStmtStk
|
||||
|
||||
lda #'_'
|
||||
>STA.G CC.Label
|
||||
|
||||
lda #CC.LookupIdx
|
||||
tay
|
||||
sta (pData),y
|
||||
|
@ -3,7 +3,7 @@ NEW
|
||||
*--------------------------------------
|
||||
F.Decl jsr SCOPE.New
|
||||
bcs .99
|
||||
|
||||
|
||||
lda (ZPSymBufPtr) #SYM.T
|
||||
pha
|
||||
|
||||
@ -18,7 +18,8 @@ F.Decl jsr SCOPE.New
|
||||
tax
|
||||
beq .11 function is void
|
||||
|
||||
.10 jsr F.AddReturnVar Y,A = T/Q
|
||||
.10 lda #'R'
|
||||
jsr SYM.NewLabelA
|
||||
bcs .99
|
||||
|
||||
.11 jsr CORE.GetNCharNBNL Skip (
|
||||
@ -117,7 +118,12 @@ F.Def >LDA.G CC.bInitCode
|
||||
|
||||
|
||||
|
||||
.2 >LDA.G CC.FrameSize
|
||||
.2 ldy ScopePtr
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
lda (ScopeStk),y #SCOPE.FrameSize
|
||||
|
||||
jsr CODE.LDAI A = f() ARGS size
|
||||
bcs .99
|
||||
|
||||
@ -199,28 +205,6 @@ F.DeclGetTQ lda (ZPLineBufPtr)
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
F.AddReturnVar ldx ZPLineBufPtr
|
||||
phx
|
||||
ldx ZPLineBufPtr+1
|
||||
phx
|
||||
|
||||
>STYA ZPPtr2 Y,A = T/Q
|
||||
|
||||
lda #'R'
|
||||
>STA.G CC.Label+1
|
||||
|
||||
>LEA.G CC.Label
|
||||
>STYA ZPLineBufPtr
|
||||
|
||||
jsr F.NewArg
|
||||
|
||||
plx
|
||||
stx ZPLineBufPtr+1
|
||||
plx
|
||||
stx ZPLineBufPtr
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
F.NewArg >LDYA.G CC.SymID
|
||||
>STYA.G CC.SymIDSave
|
||||
|
||||
|
@ -36,7 +36,7 @@ KW.IF jsr SCOPE.New
|
||||
|
||||
jsr STMT.New00
|
||||
bcs .99
|
||||
|
||||
|
||||
jmp STMT.SetType
|
||||
|
||||
.9 lda #E.CSYN
|
||||
@ -73,7 +73,7 @@ KW.IF.END jsr STMT.Close
|
||||
|
||||
jsr STMT.New00
|
||||
bcs .99
|
||||
|
||||
|
||||
jmp STMT.SetType
|
||||
|
||||
.9 lda #E.CSYN
|
||||
@ -85,7 +85,7 @@ KW.ELSE lda #E.CSYN illegal
|
||||
rts
|
||||
*--------------------------------------
|
||||
KW.ELSE.END jsr STMT.Close
|
||||
bcs .99
|
||||
bcs .99
|
||||
|
||||
lda #'X' define EXIT Label
|
||||
jsr SYM.NewLabelA
|
||||
@ -620,42 +620,19 @@ KW.CONTINUE lda #'C'
|
||||
sec
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
KW.RETURN ldx ZPLineBufPtr
|
||||
phx
|
||||
ldx ZPLineBufPtr+1
|
||||
phx
|
||||
|
||||
lda #'R'
|
||||
>STA.G CC.Label+1
|
||||
|
||||
>LEA.G CC.Label
|
||||
>STYA ZPLineBufPtr
|
||||
|
||||
jsr SYM.Lookup
|
||||
|
||||
plx
|
||||
stx ZPLineBufPtr+1
|
||||
plx
|
||||
stx ZPLineBufPtr
|
||||
|
||||
KW.RETURN lda #'R'
|
||||
jsr SYM.LookupLabelA
|
||||
bcs .99
|
||||
|
||||
ldy #SYM.Q
|
||||
lda (ZPLookupSymPtr),y
|
||||
pha
|
||||
lda (ZPLookupSymPtr) SYM.T
|
||||
tay
|
||||
pla
|
||||
txa
|
||||
|
||||
jsr EXP.Eval
|
||||
bcs .99
|
||||
|
||||
jsr SYM.GetYASizeOfInAX Y,A=T/Q
|
||||
tax X = sizeof
|
||||
jsr CODE.SetRetValue
|
||||
bcs .99
|
||||
|
||||
jsr SYM.LookupFree
|
||||
jsr CODE.SetRetValue
|
||||
bcs .99
|
||||
|
||||
lda #'X'
|
||||
|
@ -138,14 +138,14 @@ PCC.FH.RUN lda #0
|
||||
>PUSHA returned int=0
|
||||
>PUSHA
|
||||
|
||||
>PUSHA int ARGC (hi byte)
|
||||
>PUSHA int ARGC (hi byte=0)
|
||||
|
||||
ldy #S.PS.ARGC
|
||||
lda (pPS),y
|
||||
>PUSHA int ARGC (lo byte)
|
||||
|
||||
>PUSHW pData *char[] ARGV
|
||||
>DEBUG
|
||||
* >DEBUG
|
||||
PCC.FH.MAIN .EQ *-PCC.FH.ORG+1
|
||||
jsr $FFFF jsr main
|
||||
>PULLA
|
||||
|
@ -1,27 +1,46 @@
|
||||
NEW
|
||||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
SCOPE.New >INCW.G CC.ScopeID
|
||||
|
||||
lda ScopePtr
|
||||
SCOPE.New lda ScopePtr
|
||||
tay
|
||||
clc
|
||||
adc #SCOPE
|
||||
bcs .9
|
||||
|
||||
sta ScopePtr
|
||||
|
||||
ldy #CC.ScopeID+3
|
||||
|
||||
.1 lda (pData),y
|
||||
pha
|
||||
dey
|
||||
bpl .1
|
||||
|
||||
|
||||
|
||||
|
||||
dec bLocalScope
|
||||
|
||||
iny
|
||||
iny #SCOPE.LocalPtr
|
||||
lda (ScopeStk),y
|
||||
pha
|
||||
|
||||
>LDA.G CC.ScopeID
|
||||
* clc
|
||||
adc #1
|
||||
sta (pData),y
|
||||
tax
|
||||
iny
|
||||
lda (pData),y
|
||||
adc #0
|
||||
|
||||
ldy ScopePtr
|
||||
iny
|
||||
sta (ScopeStk),y #SCOPE.ID Hi
|
||||
txa
|
||||
dey
|
||||
sta (ScopeStk),y #SCOPE.ID Lo
|
||||
|
||||
iny
|
||||
iny
|
||||
pla
|
||||
sta (ScopeStk),y #SCOPE.LocalPtr
|
||||
|
||||
iny
|
||||
lda #0
|
||||
sta (ScopeStk),y #SCOPE.FrameSize
|
||||
|
||||
lda #'F'
|
||||
jsr SYM.LookupLabelA
|
||||
bcs .99
|
||||
@ -32,19 +51,22 @@ SCOPE.New >INCW.G CC.ScopeID
|
||||
bcs .99
|
||||
|
||||
.DO _DBG_SCOPE=1
|
||||
>PUSHW L.MSG.DEBUG.SCIN
|
||||
jsr SCOPE.Push
|
||||
|
||||
lda ScopePtr
|
||||
lsr
|
||||
lsr
|
||||
>PUSHA
|
||||
|
||||
>PUSHB.G CC.LocalPtr
|
||||
>PUSHB.G CC.FrameSize
|
||||
>PUSHBI 5
|
||||
>SYSCALL PrintF
|
||||
>DEBUG
|
||||
>PUSHW L.MSG.DEBUG.SCIN
|
||||
jsr SCOPE.Push
|
||||
|
||||
lda ScopePtr
|
||||
>PUSHA
|
||||
|
||||
tay
|
||||
iny
|
||||
iny
|
||||
>PUSHB (ScopeStk),y
|
||||
iny
|
||||
>PUSHB (ScopeStk),y
|
||||
|
||||
>PUSHBI 5
|
||||
>SYSCALL PrintF
|
||||
* >DEBUG
|
||||
.FIN
|
||||
|
||||
clc
|
||||
@ -59,7 +81,12 @@ SCOPE.Close lda #'F' define FRAME SIZE
|
||||
jsr SYM.NewLabelA
|
||||
bcs SCOPE.New.RTS
|
||||
|
||||
>LDA.G CC.FrameSize
|
||||
ldy ScopePtr
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
lda (ScopeStk),y #SCOPE.FrameSize
|
||||
|
||||
jsr CODE.RemLocal
|
||||
bcs SCOPE.New.RTS
|
||||
|
||||
@ -67,12 +94,15 @@ SCOPE.Close lda #'F' define FRAME SIZE
|
||||
>PUSHW L.MSG.DEBUG.SCOUT
|
||||
jsr SCOPE.Push
|
||||
lda ScopePtr
|
||||
lsr
|
||||
lsr
|
||||
>PUSHA
|
||||
|
||||
>PUSHB.G CC.LocalPtr
|
||||
>PUSHB.G CC.FrameSize
|
||||
tay
|
||||
iny
|
||||
iny
|
||||
>PUSHB (ScopeStk),y #SCOPE.LocalPtr
|
||||
iny
|
||||
>PUSHB (ScopeStk),y #SCOPE.FrameSize
|
||||
|
||||
>PUSHBI 5
|
||||
>SYSCALL PrintF
|
||||
.FIN
|
||||
@ -91,24 +121,29 @@ SCOPE.Close lda #'F' define FRAME SIZE
|
||||
jsr SCOPE.Push
|
||||
|
||||
lda ScopePtr
|
||||
lsr
|
||||
lsr
|
||||
>PUSHA
|
||||
|
||||
>PUSHB.G CC.LocalPtr
|
||||
>PUSHB.G CC.FrameSize
|
||||
tay
|
||||
iny
|
||||
iny
|
||||
>PUSHB (ScopeStk),y
|
||||
iny
|
||||
>PUSHB (ScopeStk),y
|
||||
|
||||
>PUSHBI 5
|
||||
>SYSCALL PrintF
|
||||
>DEBUG
|
||||
* >DEBUG
|
||||
.FIN
|
||||
|
||||
clc
|
||||
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
SCOPE.Push ldy ScopePtr
|
||||
SCOPE.Push lda ScopePtr
|
||||
|
||||
SCOPE.PushY iny #SCOPE.ID+1
|
||||
SCOPE.PushA clc
|
||||
adc #SCOPE.ID+1
|
||||
tay
|
||||
lda (ScopeStk),y
|
||||
>PUSHA
|
||||
dey #SCOPE.ID
|
||||
|
152
BIN/CC.S.SYM.txt
152
BIN/CC.S.SYM.txt
@ -204,10 +204,13 @@ SYM.SetAddrL ldy #SYM.SizeOf+1
|
||||
|
||||
lda (ZPSymBufPtr),y
|
||||
clc
|
||||
>ADC.G CC.LocalPtr
|
||||
ldy ScopePtr
|
||||
iny
|
||||
iny
|
||||
adc (ScopeStk),y
|
||||
bcs .9
|
||||
|
||||
sta (pData),y
|
||||
sta (ScopeStk),y
|
||||
|
||||
ldy #SYM.Addr
|
||||
sta (ZPSymBufPtr),y
|
||||
@ -216,8 +219,12 @@ SYM.SetAddrL ldy #SYM.SizeOf+1
|
||||
lda (ZPSymBufPtr),y
|
||||
|
||||
clc
|
||||
>ADC.G CC.FrameSize
|
||||
sta (pData),y
|
||||
ldy ScopePtr
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
adc (ScopeStk),y
|
||||
sta (ScopeStk),y
|
||||
|
||||
clc
|
||||
rts
|
||||
@ -544,21 +551,19 @@ SYM.Lookup >LDA.G CC.LookupIdx
|
||||
.1 pha
|
||||
>PUSHB.G CC.hSyms
|
||||
>PUSHW ZPLineBufPtr
|
||||
ply
|
||||
phy
|
||||
jsr SCOPE.PushY
|
||||
pla
|
||||
pha
|
||||
jsr SCOPE.PushA
|
||||
>SYSCALL SListLookup
|
||||
bcc .8
|
||||
|
||||
pla
|
||||
cmp #CC.ScopeIDs
|
||||
beq .9
|
||||
|
||||
dec
|
||||
dec
|
||||
* sec
|
||||
sbc #SCOPE
|
||||
bra .1
|
||||
|
||||
|
||||
.99 lda #E.OOH
|
||||
* sec
|
||||
rts
|
||||
@ -600,9 +605,10 @@ SYM.Lookup >LDA.G CC.LookupIdx
|
||||
* "_C"ontinue
|
||||
* "_D"efault
|
||||
* "_E"lse
|
||||
* "_F"rameSize
|
||||
* "_F"rame Size
|
||||
* "_J"umpTable
|
||||
* "_L"oop
|
||||
* "_R"eturn value
|
||||
* "_S"statement
|
||||
* e"_X"it
|
||||
*--------------------------------------
|
||||
@ -622,12 +628,6 @@ SYM.NewLabelA bit bPass2
|
||||
|
||||
>STYA.G CC.LabelID
|
||||
|
||||
lda #SYM.T.VOID
|
||||
>STA.G CC.LabelBuf
|
||||
lda #SYM.Q.POINTER
|
||||
iny
|
||||
sta (pData),y
|
||||
|
||||
ldy #CC.LabelBuf+SYM.DefSize
|
||||
lda #SYM.Def
|
||||
sta (pData),y
|
||||
@ -636,16 +636,22 @@ SYM.NewLabelA bit bPass2
|
||||
cmp #'F'
|
||||
bne .1
|
||||
|
||||
ldy #CC.LabelBuf+SYM.SC
|
||||
lda #SYM.SC.AUTO
|
||||
sta (pData),y
|
||||
jsr SYM.NewLabelF
|
||||
bra .7
|
||||
|
||||
>LDA.G CC.FrameSize
|
||||
ldy #CC.LabelBuf+SYM.Addr
|
||||
sta (pData),y
|
||||
bra .2
|
||||
.1 cmp #'R'
|
||||
bne .6
|
||||
|
||||
.1 ldy #CC.LabelBuf+SYM.SC
|
||||
jsr SYM.NewLabelR
|
||||
bra .7
|
||||
|
||||
.6 lda #SYM.T.VOID
|
||||
>STA.G CC.LabelBuf
|
||||
lda #SYM.Q.POINTER
|
||||
iny
|
||||
sta (pData),y
|
||||
|
||||
iny
|
||||
lda #SYM.SC.STATIC
|
||||
sta (pData),y
|
||||
|
||||
@ -656,7 +662,7 @@ SYM.NewLabelA bit bPass2
|
||||
lda ZPCCCode+1
|
||||
sta (pData),y
|
||||
|
||||
.2 .DO _DBG_SYM=1
|
||||
.7 .DO _DBG_SYM=1
|
||||
jsr SYM.DEBUGNL
|
||||
.FIN
|
||||
|
||||
@ -675,7 +681,46 @@ SYM.NewLabelA bit bPass2
|
||||
.FIN
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
SYM.NewLabelF lda #SYM.T.UCHAR
|
||||
>STA.G CC.LabelBuf
|
||||
lda #0
|
||||
iny
|
||||
sta (pData),y
|
||||
|
||||
iny
|
||||
lda #SYM.SC.AUTO
|
||||
sta (pData),y
|
||||
|
||||
ldy ScopePtr
|
||||
iny
|
||||
iny
|
||||
iny
|
||||
lda (ScopeStk),y #SCOPE.FrameSize
|
||||
|
||||
ldy #CC.LabelBuf+SYM.Addr
|
||||
sta (pData),y
|
||||
rts
|
||||
*--------------------------------------
|
||||
SYM.NewLabelR ldy #SYM.Q
|
||||
lda (ZPSymBufPtr),y
|
||||
and #$F8 strip off SYM.Q.FUNC...
|
||||
pha
|
||||
|
||||
lda (ZPSymBufPtr)
|
||||
>STA.G CC.LabelBuf
|
||||
pla
|
||||
iny
|
||||
sta (pData),y
|
||||
|
||||
iny
|
||||
lda #SYM.SC.AUTO
|
||||
sta (pData),y
|
||||
rts
|
||||
*--------------------------------------
|
||||
SYM.LookupLabelA
|
||||
cmp #'R'
|
||||
beq .1
|
||||
|
||||
bit bPass2
|
||||
bmi .1
|
||||
|
||||
@ -688,23 +733,22 @@ SYM.LookupLabelA
|
||||
|
||||
>PUSHB.G CC.hSyms ...for SListGetData
|
||||
|
||||
ldy ScopePtr
|
||||
lda ScopePtr
|
||||
|
||||
.2 phy
|
||||
.2 pha
|
||||
>PUSHB.G CC.hSyms
|
||||
>PUSHEA.G CC.Label
|
||||
ply
|
||||
phy
|
||||
jsr SCOPE.PushY
|
||||
pla
|
||||
pha
|
||||
jsr SCOPE.PushA
|
||||
>SYSCALL SListLookup
|
||||
bcc .8
|
||||
bcc .3
|
||||
|
||||
ply
|
||||
cpy #CC.ScopeIDs
|
||||
pla
|
||||
beq .9
|
||||
|
||||
dey
|
||||
dey
|
||||
* sec
|
||||
sbc #SCOPE
|
||||
bra .2
|
||||
|
||||
.9 inc pStack discard CC.hSyms
|
||||
@ -713,7 +757,7 @@ SYM.LookupLabelA
|
||||
sec
|
||||
rts
|
||||
|
||||
.8 plx
|
||||
.3 plx
|
||||
|
||||
>PUSHA KeyID.HI
|
||||
tya
|
||||
@ -733,8 +777,14 @@ SYM.LookupLabelA
|
||||
|
||||
plx
|
||||
|
||||
>LDA.G CC.Label+1
|
||||
ldy #SYM.T return T/Q
|
||||
cmp #'R'
|
||||
beq .4
|
||||
|
||||
ldy #SYM.Addr
|
||||
lda (ZPLookupPtr),y
|
||||
|
||||
.4 lda (ZPLookupPtr),y
|
||||
|
||||
pha
|
||||
|
||||
@ -773,7 +823,7 @@ SYM.LookupFree >LDA.G CC.LookupIdx
|
||||
.8 clc
|
||||
rts
|
||||
|
||||
.9 lda E.INVH
|
||||
.9 lda #E.INVH
|
||||
* sec
|
||||
|
||||
.99 rts
|
||||
@ -962,7 +1012,6 @@ SYM.DEBUGN >PUSHW L.MSG.DEBUG.SYMN
|
||||
>PUSHA
|
||||
>PUSHBI 7
|
||||
>SYSCALL Printf
|
||||
* >DEBUG
|
||||
rts
|
||||
|
||||
SYM.DEBUGU >PUSHW L.MSG.DEBUG.SYMU
|
||||
@ -975,7 +1024,15 @@ SYM.DEBUGU >PUSHW L.MSG.DEBUG.SYMU
|
||||
iny
|
||||
lda (ZPSymBufPtr),y
|
||||
>PUSHA
|
||||
>PUSHBI 5
|
||||
|
||||
ldy #SYM.Addr+1
|
||||
lda (ZPSymBufPtr),y
|
||||
>PUSHA
|
||||
dey
|
||||
lda (ZPSymBufPtr),y
|
||||
>PUSHA
|
||||
|
||||
>PUSHBI 7
|
||||
>SYSCALL Printf
|
||||
rts
|
||||
|
||||
@ -989,8 +1046,17 @@ SYM.DEBUGS >PUSHW L.MSG.DEBUG.SYMS
|
||||
iny
|
||||
lda (ZPSymBufPtr),y
|
||||
>PUSHA
|
||||
>PUSHBI 5
|
||||
|
||||
ldy #SYM.Addr+1
|
||||
lda (ZPSymBufPtr),y
|
||||
>PUSHA
|
||||
dey
|
||||
lda (ZPSymBufPtr),y
|
||||
>PUSHA
|
||||
|
||||
>PUSHBI 7
|
||||
>SYSCALL Printf
|
||||
>DEBUG
|
||||
rts
|
||||
|
||||
SYM.DEBUGG >PUSHW L.MSG.DEBUG.SYMG
|
||||
|
38
BIN/CC.S.txt
38
BIN/CC.S.txt
@ -11,7 +11,7 @@ NEW
|
||||
.INB inc/mli.e.i
|
||||
*--------------------------------------
|
||||
_DBG_SYM .EQ 0
|
||||
_DBG_SCOPE .EQ 1
|
||||
_DBG_SCOPE .EQ 0
|
||||
_DBG_OUT .EQ 0
|
||||
*--------------------------------------
|
||||
FILES.MAX .EQ 4
|
||||
@ -539,20 +539,22 @@ CS.QUIT jsr CODE.Quit
|
||||
*--------------------------------------
|
||||
PrintVerboseMsg
|
||||
.DO _DBG_SCOPE=1
|
||||
>PUSHW L.MSG.DEBUG.SC
|
||||
jsr SCOPE.Push
|
||||
|
||||
lda ScopePtr
|
||||
sec
|
||||
sbc #CC.ScopeIDs
|
||||
lsr
|
||||
>PUSHA
|
||||
|
||||
>PUSHB.G CC.LocalPtr
|
||||
>PUSHB.G CC.FrameSize
|
||||
>PUSHBI 5
|
||||
>SYSCALL PrintF
|
||||
* >DEBUG
|
||||
>PUSHW L.MSG.DEBUG.SC
|
||||
jsr SCOPE.Push
|
||||
|
||||
lda ScopePtr
|
||||
>PUSHA
|
||||
|
||||
tay
|
||||
iny
|
||||
iny
|
||||
>PUSHB (ScopeStk),y
|
||||
iny
|
||||
>PUSHB (ScopeStk),y
|
||||
|
||||
>PUSHBI 5
|
||||
>SYSCALL PrintF
|
||||
* >DEBUG
|
||||
.FIN
|
||||
|
||||
ldy #S.PS.hStdOut
|
||||
@ -661,8 +663,8 @@ MSG.LINKING2 .CZ "*** %H:%H:%18s T/Q=%h/%h, SC=%h, Def=%h, SizeOf=%H, @=%H\r\n"
|
||||
MSG.GENERATING .CZ "*** Generating: %s\r\n"
|
||||
.DO _DBG_SYM=1
|
||||
MSG.DEBUG.SYMN .CZ "New SymID=%H[%H],T=%h,Q=%h,SC=%h "
|
||||
MSG.DEBUG.SYMU .CZ "Upd SymID=%H,T=%h,Q=%h,SC=%h\r\n"
|
||||
MSG.DEBUG.SYMS .CZ "Sto SymID=%H,T=%h,Q=%h,SC=%h\r\n"
|
||||
MSG.DEBUG.SYMU .CZ "Upd SymID=%H,T=%h,Q=%h,SC=%h,@=%H\r\n"
|
||||
MSG.DEBUG.SYMS .CZ "Sto SymID=%H,T=%h,Q=%h,SC=%h,@=%H\r\n"
|
||||
MSG.DEBUG.SYMG .CZ "Get SymID=%H,T=%h,Q=%h,SC=%h\r\n"
|
||||
MSG.DEBUG.SYMNL .CZ "New (%s) ID=%H[%H],T=%h,Q=%h,SC=%h "
|
||||
MSG.DEBUG.SYMSL .CZ "Sto ID=%H,T=%h,Q=%h,SC=%h\r\n"
|
||||
@ -1142,8 +1144,6 @@ CC.hStmtStk .BS 1
|
||||
CC.hSyms .BS 1
|
||||
|
||||
CC.ScopeID .BS 2
|
||||
CC.LocalPtr .BS 1
|
||||
CC.FrameSize .BS 1
|
||||
|
||||
CC.bInitCode .BS 1
|
||||
*--------------------------------------
|
||||
|
@ -28,18 +28,18 @@ IO.8255.S.ByteRcvd .EQ %00100000
|
||||
IO.8255.Mode .EQ $C083-$88
|
||||
*--------------------------------------
|
||||
.MA READBYTE
|
||||
lda #IO.8255.S.ByteRcvd
|
||||
:1 bit IO.8255.S,x
|
||||
bne :1
|
||||
:1 inc $600+37
|
||||
lda IO.8255.S,x
|
||||
and #IO.8255.S.ByteRcvd
|
||||
beq :1
|
||||
lda IO.8255.Data,x
|
||||
.EM
|
||||
|
||||
.MA WRITEBYTE
|
||||
sta IO.8255.Data,x
|
||||
* lda #IO.8255.S.ByteSent
|
||||
:1 bit IO.8255.S,x
|
||||
:1 inc $600+38
|
||||
bit IO.8255.S,x
|
||||
bpl :1
|
||||
|
||||
.EM
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
@ -100,18 +100,14 @@ Dev.Detect >STYA ZPArgPtr
|
||||
|
||||
lda ZPPtr1+1
|
||||
and #$0F
|
||||
tay
|
||||
sta DEVSLOT0x
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
asl
|
||||
ora #$88
|
||||
tax
|
||||
|
||||
lda #$fa
|
||||
sta IO.8255.Mode,x
|
||||
cmp IO.8255.Mode,x
|
||||
beq .3
|
||||
sta DEVSLOTx0
|
||||
bra .3
|
||||
|
||||
.2 dec FD.DEV.NAME+3
|
||||
lda ZPPtr1+1
|
||||
@ -125,14 +121,8 @@ Dev.Detect >STYA ZPArgPtr
|
||||
lda #MLI.E.NODEV
|
||||
sec
|
||||
.99 rts
|
||||
|
||||
.3 stx DEVSLOTx0
|
||||
sty DEVSLOT0x
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*--------------------------------------
|
||||
.3
|
||||
* sta DIB+S.DIB.VERSION+1
|
||||
* sta DIB+S.DIB.VERSION
|
||||
|
||||
@ -216,6 +206,8 @@ FD.DEV.NAME .AZ "eth7"
|
||||
*--------------------------------------
|
||||
* Driver Code
|
||||
*--------------------------------------
|
||||
* https://github.com/profdc9/ip65/blob/main/drivers/dan2d.s
|
||||
*--------------------------------------
|
||||
ZPIOCTL .EQ ZPDRV
|
||||
ZPBufPtr .EQ ZPDRV+2
|
||||
Counter .EQ ZPDRV+4
|
||||
@ -310,7 +302,6 @@ OPEN lda #S.DIB.S.OPENED
|
||||
lda #$FA
|
||||
sta IO.8255.Mode,x
|
||||
|
||||
|
||||
lda #IO.8255.Cmd.PFX
|
||||
>WRITEBYTE
|
||||
lda #IO.8255.Cmd.INIT
|
||||
@ -318,7 +309,7 @@ OPEN lda #S.DIB.S.OPENED
|
||||
|
||||
ldy #0
|
||||
|
||||
.1 lda DCB+S.DCB.NIC.MAC+0,y
|
||||
.1 lda DCB+S.DCB.NIC.MAC,y
|
||||
>WRITEBYTE
|
||||
iny
|
||||
|
||||
@ -327,6 +318,10 @@ OPEN lda #S.DIB.S.OPENED
|
||||
|
||||
>READBYTE
|
||||
beq .8
|
||||
|
||||
|
||||
lda #"!
|
||||
sta $600+30
|
||||
|
||||
lda #MLI.E.IO
|
||||
sec
|
||||
@ -334,6 +329,10 @@ OPEN lda #S.DIB.S.OPENED
|
||||
|
||||
.8 lda #S.DIB.S.OPENED
|
||||
tsb DIB+S.DIB.S
|
||||
|
||||
lda #"O
|
||||
sta $600+30
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
@ -358,24 +357,31 @@ READ php
|
||||
|
||||
>STYA ZPIOCTL
|
||||
|
||||
jsr DEBUG.ClrR
|
||||
|
||||
ldx DEVSLOTx0
|
||||
|
||||
lda #IO.8255.Cmd.PFX
|
||||
>WRITEBYTE
|
||||
lda #IO.8255.Cmd.POLL
|
||||
>WRITEBYTE
|
||||
lda #2048
|
||||
lda #1514
|
||||
>WRITEBYTE
|
||||
lda /2048
|
||||
lda /1514
|
||||
>WRITEBYTE
|
||||
|
||||
lda #"R
|
||||
sta $600+32
|
||||
|
||||
>READBYTE
|
||||
ldy #S.IOCTL.BYTECNT
|
||||
sta (ZPIOCTL),y
|
||||
pha
|
||||
eor #$ff
|
||||
sta Counter
|
||||
|
||||
>READBYTE
|
||||
iny
|
||||
sta (ZPIOCTL),y
|
||||
pha
|
||||
eor #$ff
|
||||
@ -399,8 +405,12 @@ READ php
|
||||
dey
|
||||
pla
|
||||
sta (ZPIOCTL),y
|
||||
|
||||
ldx DEVSLOTx0
|
||||
|
||||
lda #"R
|
||||
sta $600+33
|
||||
|
||||
ldy #0
|
||||
|
||||
.2 inc Counter
|
||||
@ -433,11 +443,13 @@ WRITE php
|
||||
sei
|
||||
>STYA ZPIOCTL
|
||||
|
||||
jsr DEBUG.ClrW
|
||||
|
||||
ldx DEVSLOTx0
|
||||
|
||||
lda #IO.8255.Cmd.PFX
|
||||
>WRITEBYTE
|
||||
lda #IO.8255.Cmd.POLL
|
||||
lda #IO.8255.Cmd.SEND
|
||||
>WRITEBYTE
|
||||
ldy #S.IOCTL.BYTECNT
|
||||
lda (ZPIOCTL),y
|
||||
@ -471,14 +483,40 @@ WRITE php
|
||||
bne .1
|
||||
|
||||
inc ZPBufPtr+1
|
||||
bne .1
|
||||
bra .1
|
||||
|
||||
.8 >READBYTE
|
||||
bne READWRITE.9
|
||||
.8
|
||||
lda #"W
|
||||
sta $600+35
|
||||
|
||||
>READBYTE
|
||||
bne WRITE.99
|
||||
|
||||
lda #"W
|
||||
sta $600+36
|
||||
|
||||
plp
|
||||
clc
|
||||
rts
|
||||
|
||||
WRITE.99 lda #MLI.E.IO
|
||||
plp
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
DEBUG.ClrR lda #"R
|
||||
sta $600+31
|
||||
lda #"?
|
||||
sta $600+32
|
||||
sta $600+33
|
||||
rts
|
||||
*--------------------------------------
|
||||
DEBUG.ClrW lda #"W
|
||||
sta $600+34
|
||||
lda #"?
|
||||
sta $600+35
|
||||
sta $600+36
|
||||
rts
|
||||
*--------------------------------------
|
||||
DRV.CS.END
|
||||
DEVSLOTx0 .BS 1
|
||||
|
@ -198,10 +198,14 @@ STATUS >STYA ZPIOCTL
|
||||
ldy #S.IOCTL.S
|
||||
lda (ZPIOCTL),y
|
||||
beq .1
|
||||
|
||||
cmp #S.IOCTL.S.GETDIB
|
||||
bne STATUS.DCB
|
||||
|
||||
ldx #S.DIB-1
|
||||
.HS 2C bit abs
|
||||
|
||||
.HS 2C BIT ABS
|
||||
|
||||
.1 ldx #3
|
||||
|
||||
ldy #S.IOCTL.BUFPTR
|
||||
@ -231,6 +235,7 @@ STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||
lda PacketPageDATA,x
|
||||
and #PP.LineST.LinkOK
|
||||
beq .1
|
||||
|
||||
lda #S.DCB.NIC.LINK.OK
|
||||
tsb DCB+S.DCB.NIC.LINK
|
||||
|
||||
@ -242,8 +247,10 @@ STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||
ldy PacketPageDATA,x
|
||||
and /PP.TestCTL.FDX
|
||||
beq .1
|
||||
|
||||
lda #S.DCB.NIC.LINK.FD
|
||||
tsb DCB+S.DCB.NIC.LINK
|
||||
|
||||
.1 ldy #S.IOCTL.BUFPTR
|
||||
lda (ZPIOCTL),y
|
||||
sta .3+1
|
||||
@ -251,13 +258,16 @@ STATUS.DCB cmp #S.IOCTL.S.GETDCB
|
||||
lda (ZPIOCTL),y
|
||||
sta .3+2
|
||||
ldx #S.DCB.NIC-1
|
||||
|
||||
.2 lda DCB,x
|
||||
|
||||
.3 sta $ffff,x SELF MODIFIED
|
||||
dex
|
||||
bpl .2
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
STATUS.9 lda #MLI.E.BADCTL
|
||||
sec
|
||||
rts
|
||||
|
@ -5,6 +5,23 @@ NEW
|
||||
IO.IIGS.INTEN .EQ $C041 R,W
|
||||
IO.IIGS.INTFLAG .EQ $C046 R
|
||||
IO.IIGS.CLRVBLINT .EQ $C047 W
|
||||
*--------------------------------------
|
||||
.MA TKCALL
|
||||
ldx ##TK.]1
|
||||
jsl $E10000
|
||||
.EM
|
||||
*--------------------------------------
|
||||
TK.SetHeartBeat .EQ $1203
|
||||
* TK.DelHeartBeat .EQ $1303
|
||||
* TK.ClrHeartBeat .EQ $1403
|
||||
|
||||
TK.GetVector .EQ $1103
|
||||
TK.SetVector .EQ $1003
|
||||
* $000C Vertical blanking interrupt handler
|
||||
TK.IntSource .EQ $2303
|
||||
|
||||
* $0002 vblEnable Enable vertical blanking interrupts
|
||||
* $0003 vb1Disable Disable vertical blanking interrupts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE INC/IO.IIGS.I
|
||||
SAVE inc/io.iigs.i
|
||||
|
@ -133,7 +133,7 @@ CORE.Events jsr CORE.GetEvents
|
||||
*--------------------------------------
|
||||
CORE.Quit php
|
||||
sei
|
||||
jsr CORE.IRQ.Off
|
||||
jsr CORE.IRQOff
|
||||
|
||||
plp
|
||||
|
||||
@ -488,19 +488,38 @@ CORE.LastPSID .DA #0
|
||||
CORE.EvtIndex .BS 1
|
||||
CORE.EvtCount .BS 1
|
||||
*--------------------------------------
|
||||
* Called by IIgs formware, Native Mode, 8bits
|
||||
*--------------------------------------
|
||||
CORE.IRQGS .OP 65816
|
||||
|
||||
pha
|
||||
phb
|
||||
phx
|
||||
phy
|
||||
|
||||
phk
|
||||
plb
|
||||
|
||||
stz IO.IIGS.CLRVBLINT
|
||||
|
||||
jsr CORE.IRQ.Switch
|
||||
|
||||
ply
|
||||
plx
|
||||
plb
|
||||
pla
|
||||
|
||||
* clc
|
||||
rtl
|
||||
|
||||
* bra CORE.IRQ.Switch
|
||||
.OP 65C02
|
||||
*--------------------------------------
|
||||
* Called by :
|
||||
* - Kernel IRQ Manager (AuxLC)
|
||||
* - ProDOS IRQ Manager (GP)
|
||||
*--------------------------------------
|
||||
CORE.IRQ.IIGS lda IO.IIGS.INTFLAG
|
||||
and #$08
|
||||
beq CORE.IRQ.DEV
|
||||
|
||||
stz IO.IIGS.CLRVBLINT
|
||||
|
||||
bra CORE.IRQ.Switch
|
||||
*--------------------------------------
|
||||
CORE.IRQ.TCLOCK ldy IRQ.n0
|
||||
CORE.IRQTK ldy IRQ.n0
|
||||
|
||||
lda $c080,y
|
||||
and #$20
|
||||
@ -511,7 +530,7 @@ CORE.IRQ.TCLOCK ldy IRQ.n0
|
||||
|
||||
bra CORE.IRQ.Switch
|
||||
*--------------------------------------
|
||||
CORE.IRQ.MOUSE jsr $FFFF SELF MODIFIED,SERVEMOUSE
|
||||
CORE.IRQM jsr $FFFF SELF MODIFIED,SERVEMOUSE
|
||||
bcs CORE.IRQ.DEV Not From Mouse
|
||||
|
||||
ldx IRQ.0n
|
||||
@ -519,11 +538,10 @@ CORE.IRQ.MOUSE jsr $FFFF SELF MODIFIED,SERVEMOUSE
|
||||
and #MOUSESTSx.INTVBL IRQ was caused by VBL ?
|
||||
beq CORE.IRQ.DEV
|
||||
|
||||
ldx CORE.IRQ.MOUSE.2+2 $Cn
|
||||
ldx CORE.IRQM.2+2 $Cn
|
||||
ldy IRQ.n0
|
||||
|
||||
CORE.IRQ.MOUSE.2
|
||||
jsr $FFFF SELF MODIFIED,READMOUSE
|
||||
CORE.IRQM.2 jsr $FFFF SELF MODIFIED,READMOUSE
|
||||
*--------------------------------------
|
||||
CORE.IRQ.Switch inc IRQ.Tick
|
||||
|
||||
@ -592,41 +610,55 @@ CORE.IRQ.DEV ldx #0
|
||||
.8 clv clear V (no task switching)
|
||||
rts
|
||||
*--------------------------------------
|
||||
CORE.IRQ.IIGS.Off
|
||||
lda #$08
|
||||
trb IO.IIGS.INTEN
|
||||
CORE.IRQGSOff .OP 65816
|
||||
|
||||
clc
|
||||
xce go to native mode
|
||||
rep #$30 long M,X
|
||||
|
||||
pea $0003 Disable vertical blanking interrupts
|
||||
>TKCALL IntSource
|
||||
bcs *
|
||||
|
||||
pea $000C Vertical blanking interrupt handler
|
||||
lda IRQ.GSVect+2
|
||||
pha
|
||||
lda IRQ.GSVect
|
||||
pha
|
||||
>TKCALL SetVector
|
||||
bcs *
|
||||
|
||||
sep #$30 short M,X
|
||||
sec
|
||||
xce back to emulation mode
|
||||
|
||||
.OP 65C02
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
CORE.IRQ.TCLOCK.Off
|
||||
ldx IRQ.n0
|
||||
CORE.IRQTKOff ldx IRQ.n0
|
||||
stz $c080,x
|
||||
|
||||
lda $c088,x
|
||||
lda $c080,x
|
||||
|
||||
ldx IRQ.0n
|
||||
* sta SETPAGE2
|
||||
* stz $478,x
|
||||
* stz $7f8,x
|
||||
|
||||
* sta CLRPAGE2
|
||||
stz $478,x
|
||||
stz $7f8,x
|
||||
*--------------------------------------
|
||||
CORE.IRQ.Off rts
|
||||
CORE.IRQOff rts
|
||||
*--------------------------------------
|
||||
CORE.IRQ.MOUSE.Off
|
||||
ldy CORE.IRQ.MOUSE.Off.1+2 Cn
|
||||
CORE.IRQMOff ldy CORE.IRQMOff.1+2 Cn
|
||||
ldy IRQ.n0
|
||||
lda #0
|
||||
CORE.IRQ.MOUSE.Off.1
|
||||
jmp $ffff SELF MODIFIED
|
||||
CORE.IRQMOff.1 jmp $ffff SELF MODIFIED
|
||||
*--------------------------------------
|
||||
IRQ.InKernel .BS 1
|
||||
IRQ.InLib .BS 1
|
||||
IRQ.Skip .BS 1
|
||||
|
||||
IRQ.GSVect .BS 4
|
||||
|
||||
IRQ.IntNum .BS 1
|
||||
IRQ.n0 .BS 1
|
||||
IRQ.0n .BS 1
|
||||
|
@ -376,11 +376,11 @@ SysScrInit.TTYPtrs
|
||||
ldy #S.DCB.TTY-1
|
||||
|
||||
lda #0
|
||||
|
||||
|
||||
.1 sta (ZPPtr1),y
|
||||
dey
|
||||
bne .1
|
||||
|
||||
|
||||
lda FD.TTY+S.FD.DEV.DEVID
|
||||
sta (ZPPtr1)
|
||||
|
||||
@ -551,7 +551,7 @@ CPU.Init2c lda RDIOUDIS
|
||||
bpl .8
|
||||
|
||||
sta IO.IIC.DISVBL
|
||||
|
||||
|
||||
.8 pla
|
||||
bpl CPU.InitOk
|
||||
|
||||
@ -802,7 +802,7 @@ DevMgrInit.VXD >LDYAI VSD.PATCH
|
||||
|
||||
jsr .10
|
||||
bcc .8
|
||||
|
||||
|
||||
>LDYAI VED.PATCH
|
||||
jsr .10
|
||||
bcs .9
|
||||
@ -812,7 +812,7 @@ DevMgrInit.VXD >LDYAI VSD.PATCH
|
||||
sec
|
||||
sbc #1
|
||||
sta .81+1
|
||||
|
||||
|
||||
iny
|
||||
lda (ZPPtr1),y
|
||||
sbc #0
|
||||
@ -838,7 +838,7 @@ DevMgrInit.VXD >LDYAI VSD.PATCH
|
||||
*--------------------------------------
|
||||
.10 >STYA ZPPtr1
|
||||
|
||||
ldy #VXD.PATCH.SIZE-1
|
||||
ldy #9 10 bytes
|
||||
|
||||
.11 lda $BF41,y
|
||||
cmp (ZPPtr1),y
|
||||
@ -846,12 +846,12 @@ DevMgrInit.VXD >LDYAI VSD.PATCH
|
||||
|
||||
dey
|
||||
bpl .11
|
||||
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
|
||||
.19 sec
|
||||
rts
|
||||
rts
|
||||
*--------------------------------------
|
||||
VSD.PATCH bit RRAMWRAMBNK2
|
||||
jsr $D002
|
||||
@ -862,7 +862,6 @@ VED.PATCH bit RRAMWRAMBNK2
|
||||
jsr $D401
|
||||
bit RRAMWRAMBNK1
|
||||
rts
|
||||
VXD.PATCH.SIZE .EQ 10
|
||||
*--------------------------------------
|
||||
* Setup AuxLC $FFFE->Kernel IRQ Handler
|
||||
* if irq not handled, jmp (S.IrqMgrOldFFFE)
|
||||
@ -885,30 +884,56 @@ IrqMgrInit >LDYAI MSG.IRQ
|
||||
|
||||
lda K.MLI.PARAMS+1
|
||||
sta IRQ.INTNUM
|
||||
|
||||
plp
|
||||
*--------------------------------------
|
||||
lda A2osX.HWType
|
||||
cmp #A2osX.HWType.IIgs
|
||||
bne .1
|
||||
|
||||
lda #"G"
|
||||
sta IRQ.Mode
|
||||
.OP 65816
|
||||
|
||||
lda #$08
|
||||
tsb IO.IIGS.INTEN
|
||||
clc
|
||||
xce go to native mode
|
||||
rep #$30 long M,X
|
||||
|
||||
jsr IrqMgrInit.HZ2Tick
|
||||
pea $000C Vertical blanking interrupt handler
|
||||
pea $0000
|
||||
pea $0000
|
||||
>TKCALL GetVector
|
||||
bcs *
|
||||
pla
|
||||
sta IRQ.GSVect+2
|
||||
|
||||
pla
|
||||
sta IRQ.GSVect
|
||||
|
||||
pea $000C Vertical blanking interrupt handler
|
||||
pea $0000
|
||||
pea CORE.IRQGS
|
||||
>TKCALL SetVector
|
||||
bcs *
|
||||
|
||||
pea $0002 Enable vertical blanking interrupts
|
||||
>TKCALL IntSource
|
||||
bcs *
|
||||
|
||||
>LDYAI CORE.IRQ.IIGS
|
||||
jsr IrqMgrInit.SetV
|
||||
sep #$30 short M,X
|
||||
sec
|
||||
xce back to emulation mode
|
||||
|
||||
>LDYAI CORE.IRQ.IIGS.Off
|
||||
.OP 65C02
|
||||
|
||||
jsr IrqMgr.HZ2Tick
|
||||
|
||||
>LDYAI CORE.IRQGS
|
||||
jsr IrqMgr.SetV
|
||||
|
||||
>LDYAI CORE.IRQGSOff
|
||||
>STYA CORE.Quit+3
|
||||
|
||||
>LDYAI MSG.IRQ.IIGS
|
||||
>LDYAI MSG.IRQGS
|
||||
ldx #"G"
|
||||
sec
|
||||
bra .8
|
||||
bra IrqMgrInit.8
|
||||
|
||||
.9 plp
|
||||
sec
|
||||
@ -917,25 +942,21 @@ IrqMgrInit >LDYAI MSG.IRQ
|
||||
.1 cmp #A2osX.HWType.IIc
|
||||
beq .2
|
||||
|
||||
jsr IrqMgrInit.TClock
|
||||
jsr IrqMgr.TClk
|
||||
bcs .3
|
||||
|
||||
lda #"C"
|
||||
sta IRQ.Mode
|
||||
>LDYAI CORE.IRQTK
|
||||
jsr IrqMgr.SetV
|
||||
|
||||
>LDYAI CORE.IRQ.TCLOCK
|
||||
jsr IrqMgrInit.SetV
|
||||
|
||||
>LDYAI CORE.IRQ.TCLOCK.Off
|
||||
>LDYAI CORE.IRQTKOff
|
||||
>STYA CORE.Quit+3
|
||||
|
||||
>LDYAI MSG.IRQ.CLOCK
|
||||
>LDYAI MSG.IRQTK
|
||||
ldx #"C"
|
||||
sec
|
||||
bra .8
|
||||
bra IrqMgrInit.8
|
||||
|
||||
.2 php
|
||||
sei
|
||||
sta CLRPAGE2
|
||||
.2 sta CLRPAGE2
|
||||
lda #$60
|
||||
sta $5fa //c EXTINT COM1:Dont buffer but get IRQ
|
||||
sta $5fb //c EXTINT COM2:Dont buffer but get IRQ
|
||||
@ -944,43 +965,40 @@ IrqMgrInit >LDYAI MSG.IRQ
|
||||
|
||||
stz $4FF //c ROM FF: no ACIABUF
|
||||
stz $4FC //c ROM 0X: no ACIABUF
|
||||
plp
|
||||
|
||||
.3 jsr IrqMgrInit.Mouse
|
||||
.3 jsr IrqMgr.Mouse
|
||||
bcs .7
|
||||
|
||||
lda #"V"
|
||||
sta IRQ.Mode
|
||||
>LDYAI CORE.IRQM
|
||||
jsr IrqMgr.SetV
|
||||
|
||||
>LDYAI CORE.IRQ.MOUSE
|
||||
jsr IrqMgrInit.SetV
|
||||
|
||||
>LDYAI CORE.IRQ.MOUSE.Off
|
||||
>LDYAI CORE.IRQMOff
|
||||
>STYA CORE.Quit+3
|
||||
|
||||
>LDYAI MSG.IRQ.MOUSE
|
||||
>LDYAI MSG.IRQM
|
||||
ldx #"V"
|
||||
sec
|
||||
bra .8
|
||||
bra IrqMgrInit.8
|
||||
|
||||
.7 jsr IrqMgrInit.HZ2Tick
|
||||
.7 jsr IrqMgr.HZ2Tick
|
||||
|
||||
lda #"P"
|
||||
sta IRQ.Mode
|
||||
>LDYAI MSG.IRQ.POLL
|
||||
ldx #"P"
|
||||
>LDYAI MSG.IRQP
|
||||
clc
|
||||
|
||||
.8 ror A2osX.IRQMode
|
||||
IrqMgrInit.8 ror A2osX.IRQMode
|
||||
stx IRQ.Mode
|
||||
>SYSCALL2 puts
|
||||
|
||||
plp
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
IrqMgrInit.SetV >STYA IRQ.JSR+1
|
||||
IrqMgr.SetV >STYA IRQ.JSR+1
|
||||
>STYA GP.IRQ.JSR+1
|
||||
rts
|
||||
*--------------------------------------
|
||||
IrqMgrInit.TClock
|
||||
stz ZPPtr1 Try finding a TClock Card...
|
||||
IrqMgr.TClk stz ZPPtr1 Try finding a TClock Card...
|
||||
lda #$C1
|
||||
sta ZPPtr1+1
|
||||
|
||||
@ -1016,19 +1034,10 @@ IrqMgrInit.TClock
|
||||
lda #A2osX.S.CLK
|
||||
sta A2osX.S,x
|
||||
|
||||
php
|
||||
sei
|
||||
|
||||
lda #$40+$20 Enable interrupt + 64Hz
|
||||
sta $c080,y
|
||||
|
||||
lda #$40
|
||||
|
||||
* sta SETPAGE2
|
||||
* sta $478,x
|
||||
* sta $7f8,x
|
||||
|
||||
* sta CLRPAGE2
|
||||
sta $478,x
|
||||
sta $7f8,x
|
||||
|
||||
@ -1041,12 +1050,10 @@ IrqMgrInit.TClock
|
||||
sta CORE.Tick10t
|
||||
dec A2osX.IRQMode
|
||||
|
||||
plp
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
IrqMgrInit.Mouse
|
||||
stz ZPPtr1 Try finding a Mouse Card...
|
||||
IrqMgr.Mouse stz ZPPtr1 Try finding a Mouse Card...
|
||||
lda #$C1
|
||||
sta ZPPtr1+1
|
||||
|
||||
@ -1056,23 +1063,26 @@ IrqMgrInit.Mouse
|
||||
lda (ZPPtr1),y
|
||||
cmp Mouse.SIG,x
|
||||
bne .3
|
||||
|
||||
dex
|
||||
bpl .2
|
||||
|
||||
bra .4
|
||||
|
||||
.3 inc ZPPtr1+1 no match, try next slot....
|
||||
lda ZPPtr1+1
|
||||
cmp #$C8
|
||||
bne .1
|
||||
|
||||
sec
|
||||
* sec
|
||||
rts
|
||||
|
||||
.4 lda ZPPtr1+1
|
||||
|
||||
sta .11+2
|
||||
sta CORE.IRQ.MOUSE.Off.1+2
|
||||
sta CORE.IRQ.MOUSE+2
|
||||
sta CORE.IRQ.MOUSE.2+2
|
||||
sta CORE.IRQMOff.1+2
|
||||
sta CORE.IRQM+2
|
||||
sta CORE.IRQM.2+2
|
||||
and #$0f
|
||||
sta IRQ.0n
|
||||
asl
|
||||
@ -1082,15 +1092,13 @@ IrqMgrInit.Mouse
|
||||
|
||||
sta IRQ.n0
|
||||
|
||||
php
|
||||
sei
|
||||
bit RROMBNK2 Renable ROM to allow MOUSE II firmware works properly
|
||||
ldy #INITMOUSE
|
||||
jsr .10
|
||||
|
||||
ldy #SETMOUSE
|
||||
lda (ZPPtr1),y
|
||||
sta CORE.IRQ.MOUSE.Off.1+1
|
||||
sta CORE.IRQMOff.1+1
|
||||
lda #MOUSEMODx.INTVBL+MOUSEMODx.ACTIVE
|
||||
jsr .10
|
||||
|
||||
@ -1098,23 +1106,18 @@ IrqMgrInit.Mouse
|
||||
bit RRAMWRAMBNK1
|
||||
ldy #SERVEMOUSE
|
||||
lda (ZPPtr1),y
|
||||
sta CORE.IRQ.MOUSE+1
|
||||
sta CORE.IRQM+1
|
||||
|
||||
ldy #READMOUSE
|
||||
lda (ZPPtr1),y
|
||||
sta CORE.IRQ.MOUSE.2+1
|
||||
sta CORE.IRQM.2+1
|
||||
|
||||
jsr IrqMgrInit.HZ2Tick
|
||||
jsr IrqMgr.HZ2Tick
|
||||
dec A2osX.IRQMode
|
||||
|
||||
plp
|
||||
clc
|
||||
rts
|
||||
|
||||
.9 plp
|
||||
sec
|
||||
rts
|
||||
|
||||
.10 pha
|
||||
lda (ZPPtr1),y
|
||||
sta .11+1
|
||||
@ -1124,8 +1127,7 @@ IrqMgrInit.Mouse
|
||||
|
||||
.11 jmp $ffff SELF MODIFIED
|
||||
*--------------------------------------
|
||||
IrqMgrInit.HZ2Tick
|
||||
lda A2osX.HZ
|
||||
IrqMgr.HZ2Tick lda A2osX.HZ
|
||||
sta CORE.TickPer10t
|
||||
sta CORE.Tick10t
|
||||
asl
|
||||
@ -1308,10 +1310,10 @@ DRV.BLKDEVX .DA DRV.RamDrive
|
||||
.DA DRV.BlkDev
|
||||
*--------------------------------------
|
||||
MSG.IRQ .AZ "Interrupt Manager..."
|
||||
MSG.IRQ.IIGS .AZ " Apple IIgs VBL IRQ Activated."
|
||||
MSG.IRQ.MOUSE .AZ " Mouse Card VBL IRQ Activated."
|
||||
MSG.IRQ.CLOCK .AZ " Clock Card IRQ Activated."
|
||||
MSG.IRQ.POLL .AZ " Polling Mode."
|
||||
MSG.IRQGS .AZ " Apple IIgs VBL IRQ Activated."
|
||||
MSG.IRQM .AZ " Mouse Card VBL IRQ Activated."
|
||||
MSG.IRQTK .AZ " Clock Card IRQ Activated."
|
||||
MSG.IRQP .AZ " Polling Mode."
|
||||
MSG.EVT .AZ "Event Manager..."
|
||||
MSG.TSK .AZ "Task Manager..."
|
||||
MSG.PWD .AZ "Password Manager..."
|
||||
|
Loading…
x
Reference in New Issue
Block a user