changeset 2337:75e4303de24c

Fixed issue with wrong offset into ssig stuff
author boisy
date Wed, 13 Jan 2010 15:48:52 +0000
parents 39d0df63f56d
children a640af6b4582
files level1/modules/dw3.asm level1/modules/scdwn.asm
diffstat 2 files changed, 15 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/level1/modules/dw3.asm	Wed Jan 13 14:55:13 2010 +0000
+++ b/level1/modules/dw3.asm	Wed Jan 13 15:48:52 2010 +0000
@@ -262,7 +262,7 @@
           bne		IRQMulti3	; continue, we have some space in buffer
           ; no room in buffer
           tstb
-          lbne		CkSig   ;had to lbra
+          lbne		CkSSig   ;had to lbra
           lbra		IRQExit    ;had to lbra
           
 
@@ -399,11 +399,11 @@
           inc		RxDatLen,u
 
 CkSSig
-          lda           <V.SSigID,u     ; send signal on data ready?
+          lda           <SSigID,u     ; send signal on data ready?
           beq           CkSuspnd
-          ldb           <V.SSigSg,u     ; else get signal code
+          ldb           <SSigSg,u     ; else get signal code
           os9           F$Send
-          clr           <V.SSigID,u
+          clr           <SSigID,u
           bra           IRQExit
 
           ; check if we have a process waiting for data	
--- a/level1/modules/scdwn.asm	Wed Jan 13 14:55:13 2010 +0000
+++ b/level1/modules/scdwn.asm	Wed Jan 13 15:48:52 2010 +0000
@@ -113,7 +113,7 @@
             
 Init		equ		*
 
-          lda		IT.PAR,y
+          lda	IT.PAR,y
           pshs      a				; save parity byte for later
 
 ; link to subroutine module
@@ -247,9 +247,8 @@
 Read      equ           *
 * Check to see if there is a signal-on-data-ready set for this path.
 * If so, we return a Not Ready error.
-          lda           <V.SSigID,u     data ready signal trap set up?
+          lda           <SSigID,u     data ready signal trap set up?
           bne           NotReady        yes, exit with not ready error
-
           pshs  	cc,dp       ; save IRQ/Carry status, system DP
 
 ReadChr   orcc          #IntMasks	; mask interrupts
@@ -440,7 +439,14 @@
 		cmpa      #SS.ComSt
                 beq       comst
                 cmpa      #SS.SSig
-		bne       donebad
+		beq       ssig
+                cmpa      #SS.Relea
+                bne      donebad
+relea           lda      PD.CPR,y	get curr proc #
+                cmpa     <SSigID,u    same?
+                bne      ex
+                clr      <SSigID,u    clear process id
+ex              rts
 ssig            pshs    cc
                 orcc    #IntMasks
                 lda     PD.CPR,y        ; get curr proc #
@@ -451,7 +457,7 @@
 * if here, we have data so send signal immediately
                 os9     F$Send
                 puls    cc,pc
-ssigsetup       std     <V.SSigID,u     ; save process ID & signal
+ssigsetup       std     <SSigID,u     ; save process ID & signal
                 puls    cc,pc
 
 comst		leax      PD.OPT,y