annotate level1/modules/dwio.asm @ 2898:28ed72477814 lwtools-port

Dummy merge of default branch into lwtools hg -y merge --tool=internal:fail default hg revert --all --no-backup --rev . hg resolve -a -m This dummy merge discards any changes from the default branch so that the result is the same as what lwtools already had. When merging back to default branch later, the discarded changes will be discarded there also, so the result will be that the default branch will contain what the lwtools branch had before these merges. Only scripts/burst was "rescued" from default branch.
author Tormod Volden <debian.tormod@gmail.com>
date Sat, 11 Jan 2014 18:40:44 +0100
parents ed9a4cb85fb3 3231faca9642
children e68c1db27cbe
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
1 ********************************************************************
2724
05b648103e78 Renamed dw3.sb to dwio.sb and rbdw3 to rbdw
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2723
diff changeset
2 * dwio - DriveWire Low Level Subroutine Module
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
3 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
4 * $Id$
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
5 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
6 * Edt/Rev YYYY/MM/DD Modified by
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
7 * Comment
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
8 * ------------------------------------------------------------------
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
9 * 1 2008/01/26 Boisy G. Pitre
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
10 * Started as a segregated subroutine module.
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
11 *
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
12 * 2 2010/01/20 Boisy G. Pitre
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
13 * Added support for DWNet
2387
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
14 *
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
15 * 3 2010/01/23 Aaron A. Wolfe
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
16 * Added dynamic polling frequency
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
17 *
2724
05b648103e78 Renamed dw3.sb to dwio.sb and rbdw3 to rbdw
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2723
diff changeset
18 nam dwio
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
19 ttl DriveWire 3 Low Level Subroutine Module
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
20
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
21 ifp1
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
22 use defsfile
2624
b8c7b7fbf3c9 Major changes:
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2435
diff changeset
23 use drivewire.d
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
24 endc
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
25
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
26 tylg set Sbrtn+Objct
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
27 atrv set ReEnt+rev
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
28 rev set $01
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
29
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
30 mod eom,name,tylg,atrv,start,0
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
31
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
32 * irq
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
33 IRQPckt fcb $00,$01,$0A ;IRQ packet Flip(1),Mask(1),Priority(1) bytes
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
34 * Default time packet
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
35 DefTime fcb 109,12,31,23,59,59
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
36
2435
f3f09398780b initial RFM
aaronwolfe
parents: 2429
diff changeset
37 * for dynamic poll frequency, number of ticks between firing poller - should we move to dwdefs?
2387
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
38 * speed 1 = interactive (typing)
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
39 PollSpd1 fcb 3
2435
f3f09398780b initial RFM
aaronwolfe
parents: 2429
diff changeset
40 * speed 2 = bulk transfer (depending on how much processing needs to be done to incoming stream, 5-8 seems good)
2387
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
41 PollSpd2 fcb 6
2435
f3f09398780b initial RFM
aaronwolfe
parents: 2429
diff changeset
42 * speed 3 = idle
2387
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
43 PollSpd3 fcb 40
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
44 * X pollidle -> drop to next slower rate
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
45 PollIdle fcb 60
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
46
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
47
2724
05b648103e78 Renamed dw3.sb to dwio.sb and rbdw3 to rbdw
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2723
diff changeset
48 name fcs /dwio/
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
49
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
50 * DriveWire subroutine entry table
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
51 start lbra Init
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
52 bra Read
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
53 nop
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
54 lbra Write
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
55
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
56 * Term
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
57 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
58 * Entry:
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
59 * U = address of device memory area
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
60 *
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
61 * Exit:
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
62 * CC = carry set on error
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
63 * B = error code
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
64 *
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
65 Term
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
66 clrb clear Carry
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
67 rts
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
68
2725
c2112f93923a o dwio for Atari now uses routines in ROM, so dwread/dwrite stripped of Atari
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2724
diff changeset
69 Read
c2112f93923a o dwio for Atari now uses routines in ROM, so dwread/dwrite stripped of Atari
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2724
diff changeset
70 IFNE atari
c2112f93923a o dwio for Atari now uses routines in ROM, so dwread/dwrite stripped of Atari
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2724
diff changeset
71 jmp [$FFE0]
c2112f93923a o dwio for Atari now uses routines in ROM, so dwread/dwrite stripped of Atari
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2724
diff changeset
72 ELSE
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
73 use dwread.asm
2725
c2112f93923a o dwio for Atari now uses routines in ROM, so dwread/dwrite stripped of Atari
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2724
diff changeset
74 ENDC
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
75
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
76 Write
2725
c2112f93923a o dwio for Atari now uses routines in ROM, so dwread/dwrite stripped of Atari
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2724
diff changeset
77 IFNE atari
c2112f93923a o dwio for Atari now uses routines in ROM, so dwread/dwrite stripped of Atari
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2724
diff changeset
78 jmp [$FFE2]
c2112f93923a o dwio for Atari now uses routines in ROM, so dwread/dwrite stripped of Atari
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2724
diff changeset
79 ELSE
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
80 use dwwrite.asm
2725
c2112f93923a o dwio for Atari now uses routines in ROM, so dwread/dwrite stripped of Atari
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2724
diff changeset
81 ENDC
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
82
2638
4655eabf00c0 dw3.asm is now common... dwinit.asm now added to for port specific initialization
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2624
diff changeset
83
2725
c2112f93923a o dwio for Atari now uses routines in ROM, so dwread/dwrite stripped of Atari
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2724
diff changeset
84 IFNE atari
c2112f93923a o dwio for Atari now uses routines in ROM, so dwread/dwrite stripped of Atari
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2724
diff changeset
85 DWInit rts
c2112f93923a o dwio for Atari now uses routines in ROM, so dwread/dwrite stripped of Atari
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2724
diff changeset
86 ELSE
2638
4655eabf00c0 dw3.asm is now common... dwinit.asm now added to for port specific initialization
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2624
diff changeset
87 use dwinit.asm
2725
c2112f93923a o dwio for Atari now uses routines in ROM, so dwread/dwrite stripped of Atari
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2724
diff changeset
88 ENDC
2638
4655eabf00c0 dw3.asm is now common... dwinit.asm now added to for port specific initialization
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2624
diff changeset
89
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
90 * Init
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
91 *
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
92 * Entry:
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
93 * Y = address of device descriptor
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
94 * U = address of device memory area
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
95 *
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
96 * Exit:
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
97 * CC = carry set on error
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
98 * B = error code
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
99 *
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
100 * Initialize the serial device
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
101 Init
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
102 clrb clear Carry
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
103 pshs y,x,cc then push CC on stack
2638
4655eabf00c0 dw3.asm is now common... dwinit.asm now added to for port specific initialization
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2624
diff changeset
104 bsr DWInit
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
105
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
106 ; allocate DW statics page
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
107 pshs u
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
108 ldd #$0100
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
109 os9 F$SRqMem
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
110 tfr u,x
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
111 puls u
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
112 lbcs InitEx
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
113 ifgt Level-1
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
114 stx <D.DWStat
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
115 else
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
116 stx >D.DWStat
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
117 endc
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
118 ; clear out 256 byte page at X
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
119 clrb
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
120 loop@ clr ,x+
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
121 decb
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
122 bne loop@
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
123
2321
6a5ada3e2666 added DWINIT op code, dw3 now sends on init just before installing VIRQ
aaronwolfe
parents: 2316
diff changeset
124 * send OP_DWINIT
6a5ada3e2666 added DWINIT op code, dw3 now sends on init just before installing VIRQ
aaronwolfe
parents: 2316
diff changeset
125 ; setup DWsub command
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
126 pshs u
2429
65541e2444dc use dwinit to become compatible with dw3 server
aaronwolfe
parents: 2422
diff changeset
127 ldb #1 ; DRIVER VERSION
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
128 lda #OP_DWINIT ; load command
2429
65541e2444dc use dwinit to become compatible with dw3 server
aaronwolfe
parents: 2422
diff changeset
129 pshs d ; command store on stack
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
130 leax ,s ; point X to stack
2429
65541e2444dc use dwinit to become compatible with dw3 server
aaronwolfe
parents: 2422
diff changeset
131 ldy #2 ; 1 byte to send
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
132 ifgt Level-1
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
133 ldu <D.DWSubAddr
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
134 else
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
135 ldu >D.DWSubAddr
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
136 endc
2640
8d24c482646e o increased timeout in atari dwread.asm module
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2638
diff changeset
137 jsr DW$Write,u ; call DWrite
2429
65541e2444dc use dwinit to become compatible with dw3 server
aaronwolfe
parents: 2422
diff changeset
138 leas 1,s ; leave one byte on stack for response
65541e2444dc use dwinit to become compatible with dw3 server
aaronwolfe
parents: 2422
diff changeset
139
65541e2444dc use dwinit to become compatible with dw3 server
aaronwolfe
parents: 2422
diff changeset
140 ; read protocol version response, 1 byte
65541e2444dc use dwinit to become compatible with dw3 server
aaronwolfe
parents: 2422
diff changeset
141 leax ,s ; point X to stack head
65541e2444dc use dwinit to become compatible with dw3 server
aaronwolfe
parents: 2422
diff changeset
142 ldy #1 ; 1 byte to retrieve
2640
8d24c482646e o increased timeout in atari dwread.asm module
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2638
diff changeset
143 jsr DW$Read,u ; call DWRead
2429
65541e2444dc use dwinit to become compatible with dw3 server
aaronwolfe
parents: 2422
diff changeset
144 beq InstIRQ ; branch if no error
65541e2444dc use dwinit to become compatible with dw3 server
aaronwolfe
parents: 2422
diff changeset
145 leas 3,s ; error, cleanup stack (u and 1 byte from read)
65541e2444dc use dwinit to become compatible with dw3 server
aaronwolfe
parents: 2422
diff changeset
146 lbra InitEx ; don't install IRQ handler
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
147
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
148 * install ISR
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
149 InstIRQ
2429
65541e2444dc use dwinit to become compatible with dw3 server
aaronwolfe
parents: 2422
diff changeset
150 puls a,u ; a has proto version from server.. not used yet
65541e2444dc use dwinit to become compatible with dw3 server
aaronwolfe
parents: 2422
diff changeset
151
65541e2444dc use dwinit to become compatible with dw3 server
aaronwolfe
parents: 2422
diff changeset
152 ifgt Level-1
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
153 ldx <D.DWStat
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
154 else
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
155 ldx >D.DWStat
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
156 endc
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
157 leax DW.VIRQPkt,x
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
158 pshs u
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
159 tfr x,u
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
160 leax Vi.Stat,x ;fake VIRQ status register
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
161 lda #$80 ;VIRQ flag clear, repeated VIRQs
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
162 sta ,x ;set it while we're here...
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
163 tfr x,d ;copy fake VIRQ status register address
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
164 leax IRQPckt,pcr ;IRQ polling packet
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
165 leay IRQSvc,pcr ;IRQ service entry
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
166 os9 F$IRQ ;install
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
167 puls u
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
168 bcs InitEx ;exit with error
2387
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
169 clra
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
170 ldb PollSpd3,pcr ; start at idle
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
171 ifgt Level-1
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
172 ldx <D.DWStat
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
173 else
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
174 ldx >D.DWStat
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
175 endc
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
176 leax DW.VIRQPkt,x
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
177 std Vi.Rst,x ; reset count
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
178 tfr x,y ; move VIRQ software packet to Y
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
179 tryagain
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
180 ldx #$0001 ; code to install new VIRQ
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
181 os9 F$VIRQ ; install
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
182 bcc IRQok ; no error, continue
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
183 cmpb #E$UnkSvc
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
184 bne InitEx
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
185 ; if we get an E$UnkSvc error, then clock has not been initialized, so do it here
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
186 leax DefTime,pcr
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
187 os9 F$STime
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
188 bra tryagain ; note: this has the slim potential of looping forever
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
189 IRQok
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
190 ifgt Level-1
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
191 ldx <D.DWStat
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
192 else
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
193 ldx >D.DWStat
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
194 endc
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
195 ; cheat: we know DW.StatTbl is at offset $00 from D.DWStat, do not bother with leax
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
196 leax DW.StatTbl,x
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
197 tfr u,d
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
198 ldb <V.PORT+1,u ; get our port #
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
199 sta b,x ; store in table
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
200
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
201 InitEx
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
202 puls cc,x,y,pc
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
203
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
204
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
205 ; ***********************************************************************
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
206 ; Interrupt handler - Much help from Darren Atkinson
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
207
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
208 IRQMulti3 anda #$0F ; mask first 4 bits, a is now port #+1
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
209 deca ; we pass +1 to use 0 for no data
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
210 pshs a ; save port #
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
211 cmpb RxGrab,u ; compare room in buffer to server's byte
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
212 bhs IRQM06 ; room left >= server's bytes, no problem
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
213
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
214 stb RxGrab,u ; else replace with room left in our buffer
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
215
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
216 ; also limit to end of buffer
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
217 IRQM06 ldd RxBufEnd,u ; end addr of buffer
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
218 subd RxBufPut,u ; subtract current write pointer, result is # bytes left going forward in buff.
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
219
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
220 IRQM05 cmpb RxGrab,u ; compare b (room left) to grab bytes
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
221 bhs IRQM03 ; branch if we have room for grab bytes
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
222
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
223 stb RxGrab,u ; else set grab to room left
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
224
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
225 ; send multiread req
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
226 IRQM03 puls a ; port # is on stack
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
227 ldb RxGrab,u
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
228
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
229 pshs u
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
230
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
231 ; setup DWsub command
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
232 pshs d ; (a port, b bytes)
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
233 lda #OP_SERREADM ; load command
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
234 pshs a ; command store on stack
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
235 leax ,s ; point X to stack
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
236 ldy #3 ; 3 bytes to send
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
237
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
238 ifgt Level-1
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
239 ldu <D.DWSubAddr
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
240 else
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
241 ldu >D.DWSubAddr
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
242 endc
2640
8d24c482646e o increased timeout in atari dwread.asm module
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2638
diff changeset
243 jsr DW$Write,u ; call DWrite
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
244
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
245 leas 3,s ; clean 3 DWsub args from stack
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
246
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
247 ldx ,s ; pointer to this port's area (from U prior), leave it on stack
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
248 ldb RxGrab,x ; set B to grab bytes
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
249 clra ; 0 in high byte
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
250 tfr d,y ; set # bytes for DW
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
251
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
252 ldx RxBufPut,x ; point X to insert position in this port's buffer
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
253 ; receive response
2640
8d24c482646e o increased timeout in atari dwread.asm module
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2638
diff changeset
254 jsr DW$Read,u ; call DWRead
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
255 ; handle errors?
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
256
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
257
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
258 puls u
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
259 ldb RxGrab,u ; our grab bytes
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
260
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
261 ; set new RxBufPut
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
262 ldx RxBufPut,u ; current write pointer
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
263 abx ; add b (# bytes) to RxBufPut
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
264 cmpx RxBufEnd,u ; end of Rx buffer?
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
265 blo IRQM04 ; no, go keep laydown pointer
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
266 ldx RxBufPtr,u ; get Rx buffer start address
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
267 IRQM04 stx RxBufPut,u ; set new Rx data laydown pointer
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
268
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
269 ; set new RxDatLen
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
270 ldb RxDatLen,u
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
271 addb RxGrab,u
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
272 stb RxDatLen,u ; store new value
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
273
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
274 lbra CkSSig ; had to lbra
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
275
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
276 IRQMulti
2387
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
277 ; set IRQ freq for bulk
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
278 pshs a
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
279 lda PollSpd2,pcr
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
280 lbsr IRQsetFRQ
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
281 puls a
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
282
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
283 ; initial grab bytes
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
284 stb RxGrab,u
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
285
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
286 ; limit server bytes to bufsize - datlen
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
287 ldb RxBufSiz,u ; size of buffer
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
288 subb RxDatLen,u ; current bytes in buffer
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
289 bne IRQMulti3 ; continue, we have some space in buffer
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
290 ; no room in buffer
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
291 tstb
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
292 lbne CkSSig ;had to lbra
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
293 lbra IRQExit ;had to lbra
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
294
2723
22bdfbe8bc68 Optimized dw3.asm routines for Atari and fixed crash in OP_SERPOLL mode. dwread routine now properly returns Carry or Negative set.
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2720
diff changeset
295 bad
22bdfbe8bc68 Optimized dw3.asm routines for Atari and fixed crash in OP_SERPOLL mode. dwread routine now properly returns Carry or Negative set.
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2720
diff changeset
296 leas 2,s ; error, cleanup stack 2
22bdfbe8bc68 Optimized dw3.asm routines for Atari and fixed crash in OP_SERPOLL mode. dwread routine now properly returns Carry or Negative set.
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2720
diff changeset
297 lbra IRQExit2 ; don't reset error count on the way out
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
298
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
299 ; **** IRQ ENTRY POINT
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
300 IRQSvc equ *
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
301 pshs cc,dp ; save system cc,DP
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
302 orcc #IntMasks ; mask interrupts
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
303
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
304 ; mark VIRQ handled (note U is pointer to our VIRQ packet in DP)
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
305 lda Vi.Stat,u ; VIRQ status register
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
306 anda #^Vi.IFlag ; clear flag in VIRQ status register
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
307 sta Vi.Stat,u ; save it...
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
309 ; poll server for incoming serial data
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
310
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
311 ; send request
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
312 lda #OP_SERREAD ; load command
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
313 pshs a ; command store on stack
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
314 leax ,s ; point X to stack
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
315 ldy #1 ; 1 byte to send
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
316
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
317 ifgt Level-1
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
318 ldu <D.DWSubAddr
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
319 else
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
320 ldu >D.DWSubAddr
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
321 endc
2640
8d24c482646e o increased timeout in atari dwread.asm module
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2638
diff changeset
322 jsr DW$Write,u ; call DWrite
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
323
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
324 ; receive response
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
325 leas -1,s ; one more byte to fit response
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
326 leax ,s ; point X to stack head
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
327 ldy #2 ; 2 bytes to retrieve
2640
8d24c482646e o increased timeout in atari dwread.asm module
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2638
diff changeset
328 jsr DW$Read,u ; call DWRead
2723
22bdfbe8bc68 Optimized dw3.asm routines for Atari and fixed crash in OP_SERPOLL mode. dwread routine now properly returns Carry or Negative set.
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2720
diff changeset
329 bcs bad
22bdfbe8bc68 Optimized dw3.asm routines for Atari and fixed crash in OP_SERPOLL mode. dwread routine now properly returns Carry or Negative set.
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2720
diff changeset
330 bne bad
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
331
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
332 ; process response
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
333 IRQSvc2
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
334 ldd ,s++ ; pull returned status byte into A,data into B (set Z if zero, N if multiread)
2387
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
335 bne IRQGotOp ; branch if D != 0 (something to do)
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
336 * this is a NOP response.. do we need to reschedule
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
337 ifgt Level-1
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
338 ldx <D.DWStat
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
339 else
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
340 ldx >D.DWStat
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
341 endc
2422
61778d4bb634 Updated source to use labels from os9defs
boisy
parents: 2387
diff changeset
342 lda DW.VIRQPkt+Vi.Rst+1,x
2387
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
343 cmpa PollSpd3,pcr
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
344 lbeq IRQExit ;we are already at idle speed
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
345
2387
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
346 lda DW.VIRQNOP,x
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
347 inca
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
348 cmpa PollIdle,pcr
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
349 beq FRQdown
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
350
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
351 sta DW.VIRQNOP,x ;inc NOP count, exit
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
352 lbra IRQExit
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
353
2422
61778d4bb634 Updated source to use labels from os9defs
boisy
parents: 2387
diff changeset
354 FRQdown lda DW.VIRQPkt+Vi.Rst+1,x
2387
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
355 cmpa PollSpd1,pcr
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
356 beq FRQd1
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
357 lda PollSpd3,pcr
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
358 FRQd2
2422
61778d4bb634 Updated source to use labels from os9defs
boisy
parents: 2387
diff changeset
359 sta DW.VIRQPkt+Vi.Rst+1,x
2387
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
360 clr DW.VIRQNOP,x
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
361 lbra IRQExit
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
362 FRQd1 lda PollSpd2,pcr
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
363 bra FRQd2
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
364
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
365 ; save back D on stack and build our U
2829
ed9a4cb85fb3 Fixed makefiles and defsfile for level 3
boisy
parents: 2801
diff changeset
366 IRQGotOp
ed9a4cb85fb3 Fixed makefiles and defsfile for level 3
boisy
parents: 2801
diff changeset
367 cmpd #16*256+255
ed9a4cb85fb3 Fixed makefiles and defsfile for level 3
boisy
parents: 2801
diff changeset
368 beq do_reboot
ed9a4cb85fb3 Fixed makefiles and defsfile for level 3
boisy
parents: 2801
diff changeset
369
ed9a4cb85fb3 Fixed makefiles and defsfile for level 3
boisy
parents: 2801
diff changeset
370 pshs d
ed9a4cb85fb3 Fixed makefiles and defsfile for level 3
boisy
parents: 2801
diff changeset
371 * mode switch on bits 7+6 of A: 00 = vserial, 01 = vwindow, 10 = wirebug?, 11 = ?
ed9a4cb85fb3 Fixed makefiles and defsfile for level 3
boisy
parents: 2801
diff changeset
372
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
373 anda #$C0 ; mask last 6 bits
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
374 beq mode00 ; virtual serial mode
2311
b2bc1ad04163 Made changes
aaronwolfe
parents: 2308
diff changeset
375 ; future - handle other modes
2661
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
376 cmpa #%01000000 ; vwindow?
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
377 beq mode01
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
378 lbra IRQExit ; for now, bail
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
379
2661
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
380 * Virtual Window Handler
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
381 mode01
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
382 lda ,s
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
383 anda #%00110000
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
384 beq key
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
385 lbra IRQExit
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
386
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
387 key
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
388 lda ,s
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
389 anda #$0F
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
390 ora #$10
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
391 ifgt Level-1
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
392 ldx <D.DWStat
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
393 else
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
394 ldx >D.DWStat
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
395 endc
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
396 ; cheat: we know DW.StatTbl is at offset $00 from D.DWStat, do not bother with leax
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
397 ; leax DW.StatTbl,x
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
398 lda a,x
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
399 clrb
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
400 tfr d,u
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
401 puls d
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
402 lbra IRQPutch
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
403
2829
ed9a4cb85fb3 Fixed makefiles and defsfile for level 3
boisy
parents: 2801
diff changeset
404 do_reboot
ed9a4cb85fb3 Fixed makefiles and defsfile for level 3
boisy
parents: 2801
diff changeset
405 lda #255
ed9a4cb85fb3 Fixed makefiles and defsfile for level 3
boisy
parents: 2801
diff changeset
406 os9 F$Debug
ed9a4cb85fb3 Fixed makefiles and defsfile for level 3
boisy
parents: 2801
diff changeset
407
2661
9e9ed6d6b4c2 Updated so that scdwn handles SS.Montr
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2640
diff changeset
408 * Virtual Serial Handler
2829
ed9a4cb85fb3 Fixed makefiles and defsfile for level 3
boisy
parents: 2801
diff changeset
409 mode00
ed9a4cb85fb3 Fixed makefiles and defsfile for level 3
boisy
parents: 2801
diff changeset
410 lda ,s ; restore A
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
411 anda #$0F ; mask first 4 bits, a is now port #+1
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
412 beq IRQCont ; if we're here with 0 in the port, its not really a port # (can we jump straight to status?)
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
413 deca ; we pass +1 to use 0 for no data
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
414 ; here we set U to the static storage area of the device we are working with
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
415 ifgt Level-1
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
416 ldx <D.DWStat
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
417 else
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
418 ldx >D.DWStat
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
419 endc
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
420 ; cheat: we know DW.StatTbl is at offset $00 from D.DWStat, do not bother with leax
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
421 ; leax DW.StatTbl,x
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
422 lda a,x
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
423 bne IRQCont ; if A is 0, then this device is not active, so exit
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
424 puls d
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
425 lbra IRQExit
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
426 IRQCont
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
427 clrb
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
428 tfr d,u
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
429
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
430 puls d
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
431
2311
b2bc1ad04163 Made changes
aaronwolfe
parents: 2308
diff changeset
432 * multiread/status flag is in bit 4 of A
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
433 bita #$10
2702
2bd966ffd6d5 Fixed longstanding issue with processes not going away when a network path closed. Also inetd now turns of pause
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2700
diff changeset
434 lbeq IRQPutch ; branch for read1 if multiread not set
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
435
2311
b2bc1ad04163 Made changes
aaronwolfe
parents: 2308
diff changeset
436 * all 0s in port means status, anything else is multiread
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
437
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
438 bita #$0F ;mask bit 7-4
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
439 beq dostat ;port # all 0, this is a status response
2387
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
440 lbra IRQMulti ;its not all 0, this is a multiread
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
441
2314
5f76d1a611f6 term signal sending for serread port status responses
aaronwolfe
parents: 2313
diff changeset
442
5f76d1a611f6 term signal sending for serread port status responses
aaronwolfe
parents: 2313
diff changeset
443 * in status events, databyte is split, 4bits status, 4bits port #
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
444 dostat bitb #$F0 ;mask low bits
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
445 lbne IRQExit ;we only implement code 0000, term
2314
5f76d1a611f6 term signal sending for serread port status responses
aaronwolfe
parents: 2313
diff changeset
446 * set u to port #
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
447 ifgt Level-1
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
448 ldx <D.DWStat
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
449 else
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
450 ldx >D.DWStat
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
451 endc
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
452 lda b,x
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
453 bne statcont ; if A is 0, then this device is not active, so exit
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
454 lbra IRQExit
2372
bfb8eefc19e1 Renamed S$Peer to S$HUP
boisy
parents: 2359
diff changeset
455
2387
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
456 * IRQ set freq routine
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
457 * sets freq and clears NOP counter
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
458 * a = desired IRQ freq
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
459 IRQsetFRQ pshs x ; preserve
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
460 ifgt Level-1
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
461 ldx <D.DWStat
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
462 else
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
463 ldx >D.DWStat
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
464 endc
2422
61778d4bb634 Updated source to use labels from os9defs
boisy
parents: 2387
diff changeset
465 sta DW.VIRQPkt+Vi.Rst+1,x
61778d4bb634 Updated source to use labels from os9defs
boisy
parents: 2387
diff changeset
466 * +++ BGP +++ added following line so that the counter (which was copied by
61778d4bb634 Updated source to use labels from os9defs
boisy
parents: 2387
diff changeset
467 * clock before calling us) gets reset to the same value the reset value. Without
61778d4bb634 Updated source to use labels from os9defs
boisy
parents: 2387
diff changeset
468 * this line, we get called again with the PRIOR Vi.Rst value.
61778d4bb634 Updated source to use labels from os9defs
boisy
parents: 2387
diff changeset
469 sta DW.VIRQPkt+Vi.Cnt+1,x
2387
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
470 clr DW.VIRQNOP,x
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
471 puls x
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
472 rts
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
473
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
474
2372
bfb8eefc19e1 Renamed S$Peer to S$HUP
boisy
parents: 2359
diff changeset
475 * This routine roots through process descriptors in a queue and
bfb8eefc19e1 Renamed S$Peer to S$HUP
boisy
parents: 2359
diff changeset
476 * checks to see if the process has a path that is open to the device
2702
2bd966ffd6d5 Fixed longstanding issue with processes not going away when a network path closed. Also inetd now turns of pause
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2700
diff changeset
477 * represented by the static storage pointer in U. If so, set the Condem
2bd966ffd6d5 Fixed longstanding issue with processes not going away when a network path closed. Also inetd now turns of pause
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2700
diff changeset
478 * bit of the P$State of that process.
2372
bfb8eefc19e1 Renamed S$Peer to S$HUP
boisy
parents: 2359
diff changeset
479 *
2699
1c88a9bc6c8c Reworked to make the searching of the paths in a process more efficient
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2698
diff changeset
480 * Note: we start with path 0 and continue until we get to either (a) the
1c88a9bc6c8c Reworked to make the searching of the paths in a process more efficient
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2698
diff changeset
481 * last path for that process or (b) a hit on the static storage that we
1c88a9bc6c8c Reworked to make the searching of the paths in a process more efficient
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2698
diff changeset
482 * are seeking.
2372
bfb8eefc19e1 Renamed S$Peer to S$HUP
boisy
parents: 2359
diff changeset
483 *
bfb8eefc19e1 Renamed S$Peer to S$HUP
boisy
parents: 2359
diff changeset
484 * Entry: X = process descriptor to evaluate
bfb8eefc19e1 Renamed S$Peer to S$HUP
boisy
parents: 2359
diff changeset
485 * U = static storage of device we want to check against
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
486 RootThrough
2699
1c88a9bc6c8c Reworked to make the searching of the paths in a process more efficient
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2698
diff changeset
487 clrb
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
488 leay P$Path,x
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
489 pshs x
2699
1c88a9bc6c8c Reworked to make the searching of the paths in a process more efficient
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2698
diff changeset
490 loop cmpb #NumPaths
1c88a9bc6c8c Reworked to make the searching of the paths in a process more efficient
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2698
diff changeset
491 beq out
1c88a9bc6c8c Reworked to make the searching of the paths in a process more efficient
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2698
diff changeset
492 incb
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
493 lda ,y+
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
494 beq loop
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
495 pshs y
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
496 ifgt Level-1
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
497 ldx <D.PthDBT
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
498 else
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
499 ldx >D.PthDBT
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
500 endc
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
501 os9 F$Find64
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
502 ldx PD.DEV,y
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
503 leax V$STAT,x
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
504 puls y
2700
772a16760499 Slight improvements
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2699
diff changeset
505 bcs loop +BGP+ Jul 20, 2012: continue even if error in F$Find64
2372
bfb8eefc19e1 Renamed S$Peer to S$HUP
boisy
parents: 2359
diff changeset
506
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
507 cmpu ,x
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
508 bne loop
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
509
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
510 ldx ,s
2801
9ffe2daeb011 Reworked libraries to adhere to lwlink's naming specifications
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2725
diff changeset
511
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
512 ldb #S$HUP
2801
9ffe2daeb011 Reworked libraries to adhere to lwlink's naming specifications
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2725
diff changeset
513 stb P$Signal,x
9ffe2daeb011 Reworked libraries to adhere to lwlink's naming specifications
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2725
diff changeset
514 os9 F$AProc
9ffe2daeb011 Reworked libraries to adhere to lwlink's naming specifications
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2725
diff changeset
515
9ffe2daeb011 Reworked libraries to adhere to lwlink's naming specifications
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2725
diff changeset
516 * lda P$State,x get state of recipient
9ffe2daeb011 Reworked libraries to adhere to lwlink's naming specifications
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2725
diff changeset
517 * ora #Condem set condemn bit
9ffe2daeb011 Reworked libraries to adhere to lwlink's naming specifications
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2725
diff changeset
518 * sta P$State,x and set it back
2372
bfb8eefc19e1 Renamed S$Peer to S$HUP
boisy
parents: 2359
diff changeset
519
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
520 out puls x
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
521 ldx P$Queue,x
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
522 bne RootThrough
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
523 rts
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
524
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
525 statcont clrb
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
526 tfr d,u
2372
bfb8eefc19e1 Renamed S$Peer to S$HUP
boisy
parents: 2359
diff changeset
527 * NEW: root through all process descriptors. if any has a path open to this
2703
aa91dd03121d Fixed bug where ordering of pull was affecting routine
Boisy Pitre <boisy.pitre@nuance.com>
parents: 2702
diff changeset
528 * device, condem it
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
529 ldx <D.AProcQ
2383
b399116a3b5f Now we have a /N descriptor... and the code in scdwn.asm to handle it.
boisy
parents: 2375
diff changeset
530 beq dowaitq
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
531 bsr RootThrough
2383
b399116a3b5f Now we have a /N descriptor... and the code in scdwn.asm to handle it.
boisy
parents: 2375
diff changeset
532 dowaitq ldx <D.WProcQ
b399116a3b5f Now we have a /N descriptor... and the code in scdwn.asm to handle it.
boisy
parents: 2375
diff changeset
533 beq dosleepq
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
534 bsr RootThrough
2383
b399116a3b5f Now we have a /N descriptor... and the code in scdwn.asm to handle it.
boisy
parents: 2375
diff changeset
535 dosleepq ldx <D.SProcQ
2375
707480b7f0b0 Updated
boisy
parents: 2374
diff changeset
536 beq CkLPRC
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
537 bsr RootThrough
2372
bfb8eefc19e1 Renamed S$Peer to S$HUP
boisy
parents: 2359
diff changeset
538
2387
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
539 CkLPRC
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
540 lda <V.LPRC,u
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
541 beq IRQExit ; no last process, bail
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
542 ldb #S$HUP
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
543 os9 F$Send ; send signal, don't think we can do anything about an error result anyway.. so
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
544 bra CkSuspnd ; do we need to go check suspend?
2314
5f76d1a611f6 term signal sending for serread port status responses
aaronwolfe
parents: 2313
diff changeset
545
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
546 ; put byte B in port As buffer - optimization help from Darren Atkinson
2387
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
547 IRQPutCh
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
548 ; set IRQ freq for bulk
2422
61778d4bb634 Updated source to use labels from os9defs
boisy
parents: 2387
diff changeset
549 lda PollSpd1,pcr
2387
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
550 lbsr IRQsetFRQ
8476556e5f0c dynamic ISR/poll frequency
aaronwolfe
parents: 2383
diff changeset
551 ldx RxBufPut,u ; point X to the data buffer
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
552
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
553 ; process interrupt/quit characters here
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
554 ; note we will have to do this in the multiread (ugh)
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
555 tfr b,a ; put byte in A
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
556 ldb #S$Intrpt
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
557 cmpa V.INTR,u
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
558 beq send@
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
559 ldb #S$Abort
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
560 cmpa V.QUIT,u
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
561 bne store
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
562 send@ lda V.LPRC,u
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
563 beq IRQExit
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
564 os9 F$Send
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
565 bra IRQExit
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
566
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
567 store
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
568 ; store our data byte
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
569 sta ,x+ ; store and increment buffer pointer
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
570
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
571 ; adjust RxBufPut
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
572 cmpx RxBufEnd,u ; end of Rx buffer?
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
573 blo IRQSkip1 ; no, go keep laydown pointer
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
574 ldx RxBufPtr,u ; get Rx buffer start address
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
575 IRQSkip1 stx RxBufPut,u ; set new Rx data laydown pointer
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
576
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
577 ; increment RxDatLen
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
578 inc RxDatLen,u
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
579
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
580 CkSSig
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
581 lda <SSigID,u ; send signal on data ready?
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
582 beq CkSuspnd
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
583 ldb <SSigSg,u ; else get signal code
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
584 os9 F$Send
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
585 clr <SSigID,u
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
586 bra IRQExit
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
587
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
588 ; check if we have a process waiting for data
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
589 CkSuspnd
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
590 lda <V.WAKE,u ; V.WAKE?
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
591 beq IRQExit ; no
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
592 clr <V.WAKE,u ; clear V.WAKE
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
593
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
594 ; wake up waiter for read
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
595 ifeq Level-1
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
596 ldb #S$Wake
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
597 os9 F$Send
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
598 else
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
599 clrb
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
600 tfr d,x ; copy process descriptor pointer
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
601 lda P$State,x ; get state flags
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
602 anda #^Suspend ; clear suspend state
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
603 sta P$State,x ; save state flags
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
604 endc
2308
b5f0c5326e7e Changes made to move ISR to dw3
boisy
parents: 2180
diff changeset
605
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
606 IRQExit
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
607 IRQExit2 puls cc,dp,pc ; restore interrupts cc,dp, return
2180
660cc987e18d Added DriveWire 3 modules to distribution
boisy
parents:
diff changeset
608
2374
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
609 emod
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
610 eom equ *
895dec31461a Added back code to send S$HUP to V.LPRC
boisy
parents: 2372
diff changeset
611 end