Mercurial > hg > Members > kono > nitros9-code
changeset 2309:f3e79ee2ffef
Driver now moved ISR to dw3, all works
author | boisy |
---|---|
date | Sun, 03 Jan 2010 15:24:52 +0000 |
parents | b5f0c5326e7e |
children | 7820a7317242 |
files | 3rdparty/customboots/boisy/makefile level1/modules/clock2_dw3.asm level1/modules/rbdw3.asm level1/modules/scdwt.asm |
diffstat | 4 files changed, 51 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- a/3rdparty/customboots/boisy/makefile Sun Jan 03 14:35:04 2010 +0000 +++ b/3rdparty/customboots/boisy/makefile Sun Jan 03 15:24:52 2010 +0000 @@ -14,13 +14,16 @@ SYSGO = $(MD)/sysgo_dd # We make our own bootfile and kernel track -KERNEL = $(MD)/rel_80 $(MD)/boot_1773_6ms $(MD)/krn +KERNEL = $(MD)/rel_80 $(MD)/boot_dw3 $(MD)/krn BOOTFILE = $(MD)/krnp2 $(MD)/ioman $(MD)/init \ $(MD)/dw3.sb \ $(MD)/scf.mn \ $(MD)/scdwt.dr $(MD)/term_scdwt.dt \ $(MD)/clock_60hz $(MD)/clock2_dw3 \ - $(SYSGO) $(CD)/shell_21 + $(SYSGO) $(CD)/shell_21 \ + $(CD)/mdir $(CD)/pmap $(CD)/dmem $(CD)/dump +# $(MD)/rbf.mn \ +# $(MD)/rbdw3.dr $(MD)/ddx0.dd \ SUPPORTFILES = startup
--- a/level1/modules/clock2_dw3.asm Sun Jan 03 14:35:04 2010 +0000 +++ b/level1/modules/clock2_dw3.asm Sun Jan 03 15:24:52 2010 +0000 @@ -65,8 +65,13 @@ Init -* We do not bother checking if D.DWSubAddr is $0000 because it will always be since -* we are the first module to use the subroutine module. +* Check if subroutine already linked + IFGT Level-1 + ldx <D.DWSubAddr + ELSE + ldx >D.DWSubAddr + ENDC + bne leave IFGT Level-1 ldx <D.Proc pshs x @@ -86,6 +91,7 @@ sty >D.DWSubAddr ENDC jmp ,y call initialization routine +leave rts emod eom equ *
--- a/level1/modules/rbdw3.asm Sun Jan 03 14:35:04 2010 +0000 +++ b/level1/modules/rbdw3.asm Sun Jan 03 15:24:52 2010 +0000 @@ -128,6 +128,13 @@ decb bne Init2 +* Check if subroutine module has already been linked + IFGT LEVEL-1 + ldu <D.DWSubAddr + ELSE + ldu >D.DWSubAddr + ENDC + bne InitEx2 * Link to subroutine module clra leax name+2,pcr @@ -151,8 +158,10 @@ IFGT Level-1 puls a,x stx <D.Proc +InitEx2 rts ELSE +InitEx2 puls a,pc ENDC
--- a/level1/modules/scdwt.asm Sun Jan 03 14:35:04 2010 +0000 +++ b/level1/modules/scdwt.asm Sun Jan 03 15:24:52 2010 +0000 @@ -160,6 +160,22 @@ puls u ; restore u already +; tell DW we have a new port opening (port mode already on stack) + ldb <V.PORT+1,u ; get our port # + lda #OP_SERINIT ; command + pshs d ; command + port # on stack + leax ,s ; point X to stack + ldy #3 ; # of bytes to send + + pshs u + IFGT Level-1 + ldu <D.DWSubAddr + ELSE + ldu >D.DWSubAddr + ENDC + jsr 6,u ; call DWrite + puls u + ; set up local buffer ldb #RxBufDSz ; default Rx buffer size leax RxBuff,u ; default Rx buffer address @@ -170,22 +186,17 @@ abx ; add buffer size to buffer start.. stx RxBufEnd,u ; save Rx buffer end address -; tell DW we have a new port opening (port mode already on stack) - ldb <V.PORT+1,u ; get our port # - lda #OP_SERINIT ; command - pshs d ; command + port # on stack - leax ,s ; point X to stack - ldy #3 ; # of bytes to send - - IFGT Level-1 - ldu <D.DWSubAddr - ELSE - ldu >D.DWSubAddr - ENDC - jsr 6,u ; call DWrite - - leas 2,s ; clean dw args off stack (leave port mode) - + tfr u,d (A = high page of statics) + puls b + puls b (B = port number) + IFGT Level-1 + ldx <D.DWStat + ELSE + ldx >D.DWStat + ENDC +; cheat: we know DW.StatTbl is at offset $00 from D.DWStat, do not bother with leax +; leax DW.StatTbl,x + sta b,x InitEx equ * puls a,pc InitEx2 @@ -437,6 +448,7 @@ clrb rts + IFEQ 1 SetPortSig cmpa #SS.PortSig bne SetPortRel lda PD.CPR,y current process ID @@ -450,6 +462,7 @@ bsr ReleaSig clrb rts + ENDC donebad comb ldb #E$UnkSVc rts