annotate 3rdparty/utils/smartwatch/swread.asm @ 711:63a34e438dde

Now assembles for L1 and L2
author boisy
date Sat, 04 Jan 2003 02:24:07 +0000
parents 8537883cc963
children 7d4057b4b5cd
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
221
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
1 ********************************************************************
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
2 * SWRead - Read SmartWatch clock
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
3 *
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
4 * $Id$
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
5 *
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
6 * Copyright May, 1990 by Robert Gault
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
7
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
8 * SWREAD will read smartwatch compensating for 12hr mode if active
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
9 * time will be sent to OS-9 in 24hr mode for compatability
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
10 *
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
11 * The routine does grab a large uninterruptible block of time from
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
12 * the system, but no other way seems possible.
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
13 *
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
14 * syntax swread [n&] n=1-60 minutes
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
15 * D.Daywk stored for possible use
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
16 *
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
17 * Ed. Comments Who YY/MM/DD
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
18 * ------------------------------------------------------------------
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
19 * 1 Created RG 91/03/01
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
20 * 1 Changed irq handling; MPI handling; RG 91/10/29
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
21 * error handling
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
22 * 1 Removed relocation routine. Removal could be RG 92/12/26
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
23 * dangerous if OS-9 did not grab block from the
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
24 * low addresses first. Code must not be in a
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
25 * RAM/ROM block when ROMs activated.
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
26 * 2 Relocated part of clock read routine to RG 94/12/19
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
27 * shorten the time spent with irqs off.
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
28
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
29 nam SWRead
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
30 ttl Read SmartWatch clock
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
31
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
32 ifp1
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
33 use defsfile
255
8537883cc963 Comment improvements
boisy
parents: 221
diff changeset
34 use systype
221
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
35 endc
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
36
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
37 cartI equ $FF22 cartridge IRQ report
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
38 rom equ $FFDE
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
39 ram equ $FFDF
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
40 IEN equ %00100000
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
41 FEN equ %00010000
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
42 SCS equ %00000100
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
43 ROM1 equ %00000010
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
44 ROM0 equ %00000001
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
45 *D.Cntury set $6A century byte
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
46
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
47 type set prgrm+objct
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
48 revs set reent+1
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
49 edition set 2
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
50
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
51 mod pgrmend,name,type,revs,start,size
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
52
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
53 name fcs /SWRead/
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
54 fcb edition
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
55
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
56 locblk0 rmb 2 pointer to block 0
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
57 locblk3E rmb 2 pointer to block $3E ie. disk ROM
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
58 dpsave rmb 1
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
59 sleep rmb 1 sleep interval time in minutes
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
60 byte1 rmb 1 temp storage of clock read data; if never changes - no clock
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
61 clkflag rmb 1 set when clock is found
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
62 mpiimage rmb 1
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
63 sleepflg rmb 1 indicates multiple reads requested
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
64 timer rmb 1 count down for sleep interval; per minute
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
65 century rmb 1 century flag
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
66 rawdata rmb 8 direct readout from clock chip
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
67
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
68 stack rmb 200
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
69 size equ .
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
70
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
71 message1 fcc /no clock found/
255
8537883cc963 Comment improvements
boisy
parents: 221
diff changeset
72 fcb C$CR
221
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
73 setime fcc /setime/ forced chain to setime routine
255
8537883cc963 Comment improvements
boisy
parents: 221
diff changeset
74 fcb C$CR
221
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
75
255
8537883cc963 Comment improvements
boisy
parents: 221
diff changeset
76 errmes fcb C$LF
221
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
77 fcc /Swread syntax:/
255
8537883cc963 Comment improvements
boisy
parents: 221
diff changeset
78 fcb C$LF,C$LF
221
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
79 fcc /swread [n&]/
255
8537883cc963 Comment improvements
boisy
parents: 221
diff changeset
80 fcb C$LF
221
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
81 fcc / The parameter string is optional; n = 1 to 60 min/
255
8537883cc963 Comment improvements
boisy
parents: 221
diff changeset
82 fcb C$LF
221
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
83 fcc / permitting the watch to be poled in background every/
255
8537883cc963 Comment improvements
boisy
parents: 221
diff changeset
84 fcb C$LF
221
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
85 fcc / n minutes. Use decimal time values./
255
8537883cc963 Comment improvements
boisy
parents: 221
diff changeset
86 fcb C$CR
221
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
87 allert fcb $C5,$3A,$A3,$5C,$C5,$3A,$A3,$5C,0
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
88
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
89 start clr <sleepflg
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
90 cmpd #2
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
91 blo noparams
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
92 ldd ,x
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
93 cmpa #'?
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
94 lbeq syntax
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
95 cmpa #'-
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
96 lbeq syntax
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
97
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
98 cmpb #'0 if second byte is CR then only one number
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
99 blo onebyte
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
100 subd #$3030 convert from ascii to bcd
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
101
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
102 cmpd #$600 one hour skip is max
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
103 lbhi syntax
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
104 cmpb #9 must be a number from 0-9
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
105 lbhi syntax
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
106
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
107 pshs b convert reg.D to hexidecimal
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
108 ldb #10
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
109 mul
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
110 addb ,s+
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
111 bra storeit
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
112
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
113 onebyte suba #'0
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
114 cmpa #9
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
115 lbhi syntax
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
116
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
117 storeit stb <timer
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
118 stb <sleep used to reset timer on count down
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
119 com <sleepflg
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
120
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
121 noparams equ *
255
8537883cc963 Comment improvements
boisy
parents: 221
diff changeset
122 lda MPI.Slct
221
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
123 anda #3 retain IRQ settings
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
124 ora #$30 start at slot 4; ROM setting
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
125 sta <mpiimage
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
126
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
127 doit pshs u
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
128 ldb #1 single block
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
129 ldx #$3E disk rom; $07C000-$07DFFF
255
8537883cc963 Comment improvements
boisy
parents: 221
diff changeset
130 os9 F$MapBlk map into user space clock ROM
221
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
131 bcs exit2
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
132 stu locblk3E save pointer
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
133 ldx #0 system direct page
255
8537883cc963 Comment improvements
boisy
parents: 221
diff changeset
134 os9 F$MapBlk system direct page
221
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
135 bcs exit2
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
136 leax ,u faster but = to TFR; get pointer for system DP
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
137 stu locblk0 save pointer
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
138 tfr dp,b get our own DP
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
139 stb dpsave
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
140
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
141 bsr readclk
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
142
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
143 ldb #1 unmap blocks from user space
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
144 ldu locblk3E get pointer
255
8537883cc963 Comment improvements
boisy
parents: 221
diff changeset
145 os9 F$ClrBlk
221
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
146 ldb #1
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
147 ldu locblk0 get pointer
255
8537883cc963 Comment improvements
boisy
parents: 221
diff changeset
148 os9 F$ClrBlk
221
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
149 puls u
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
150
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
151 tst <clkflag was clock found?
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
152 beq error2
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
153 tst <sleepflg are we in repeat mode?
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
154 beq exit
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
155
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
156 snooze ldx #3540 = one minute of ticks minus one second for overhead
255
8537883cc963 Comment improvements
boisy
parents: 221
diff changeset
157 os9 F$Sleep
221
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
158 cmpx #0
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
159 bne exit received signal so quit
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
160
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
161 dec timer
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
162 bne snooze
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
163
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
164 lda sleep reset timer
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
165 sta timer
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
166 bra doit go and read the clock
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
167
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
168 exit2 leas 2,s puls u
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
169 coma set cc
255
8537883cc963 Comment improvements
boisy
parents: 221
diff changeset
170 os9 F$Exit
8537883cc963 Comment improvements
boisy
parents: 221
diff changeset
171 error ldb #E$IllArg
8537883cc963 Comment improvements
boisy
parents: 221
diff changeset
172 os9 F$Exit
221
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
173
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
174 error2 lda #2 error path
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
175 leax message1,pcr
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
176 ldy #40
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
177 os9 I$WritLn
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
178 * force a normal Setime as SmartWatch was not detected
255
8537883cc963 Comment improvements
boisy
parents: 221
diff changeset
179 lda #Prgrm+Objct modul type
221
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
180 ldb #2 size of data area
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
181 leax setime,pcr
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
182 ldy #0 parameter size
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
183 leas stack,u
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
184 leau size,u
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
185 os9 F$Chain
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
186 exit clrb
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
187 os9 F$exit
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
188
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
189 * this is the heart of the clock reading routine
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
190 * regX regU point to system direct page
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
191 readclk pshs cc
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
192 lda d.hinit,x get $FF90 image
255
8537883cc963 Comment improvements
boisy
parents: 221
diff changeset
193 ldb MPI.Slct get current setting
221
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
194 pshs d save them
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
195 anda #^(IEN+FEN+ROM1+ROM0) no GIME IRQ/FIRQ; external access
255
8537883cc963 Comment improvements
boisy
parents: 221
diff changeset
196 orcc #IntMasks stop interrupts
221
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
197 sta $FF90
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
198 sta rom go to ROM mode
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
199 ldx <locblk3E point to clock ROM
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
200 ldb <mpiimage get new value for MPI
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
201 clr <clkflag start with clock not found
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
202 lda locblk3E
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
203 tfr a,dp point to clock
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
204
255
8537883cc963 Comment improvements
boisy
parents: 221
diff changeset
205 findclk stb MPI.Slct set new slot
221
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
206 leay allert,pcr point to clock wakeup code
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
207 lda <4 clear clock at $C004
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
208 clrb
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
209 bita #1 1bit serial I/O port; if no clock, all bits should be 0 or 1
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
210 beq low
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
211 comb
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
212 low stb >byte1 save as flag for found clock
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
213
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
214 nxtbyte ldb #8 bits/byte
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
215 lda ,y+
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
216 beq gettime
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
217 nxtbit lsra do a serial generation
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
218 bcs high
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
219 cmpa <0 talk to clock at $C000; cmp faster than tst
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
220 bra high2
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
221 high cmpa <1 talk to clock at $C001
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
222 high2 decb
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
223 bne nxtbit
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
224 bra nxtbyte
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
225
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
226 gettime lda #8 8 bytes to read from clock
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
227 pshs a
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
228 ldy #rawdata
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
229 * read serial bit stream from clock
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
230 timebyte lsr <4
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
231 rora
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
232 lsr <4
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
233 rora
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
234 lsr <4
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
235 rora
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
236 lsr <4
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
237 rora
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
238 lsr <4
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
239 rora
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
240 lsr <4
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
241 rora
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
242 lsr <4
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
243 rora
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
244 lsr <4
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
245 rora
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
246 sta ,y+ store in raw data
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
247 cmpa >byte1 if reg.A never changes then no clock
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
248 beq maybe always possible that a clock byte might look like ROM
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
249 inc >clkflag indicate a found clock
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
250 maybe dec ,s
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
251 bne timebyte
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
252 leas 1,s yank counter
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
253 tst >clkflag did we find the clock?
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
254 bne found
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
255 ldb >mpiimage try another MPI slot
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
256 bitb #$30 did we get to slot 0?
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
257 beq found
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
258 subb #$10 next slot
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
259 stb >mpiimage save image so that we don't hunt the next time.
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
260 bra findclk
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
261
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
262 found lda >dpsave
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
263 tfr a,dp back to program DP
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
264 sta ram go back to RAM mode
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
265 puls d
255
8537883cc963 Comment improvements
boisy
parents: 221
diff changeset
266 stb MPI.Slct restore to original setting
221
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
267 tst cartI clear CART flag incase autostart ROM pack was present in MPI
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
268 sta $FF90 restore GIME mode
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
269 puls cc restore IRQs
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
270 tst <clkflag
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
271 beq noclk
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
272 ldx #rawdata
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
273 leay D.Slice,u
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
274 ldb #8
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
275 pshs b
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
276 trans lda ,x+ translate serial data into OS-9 format
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
277 ldb ,s
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
278 cmpb #1 year
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
279 bne notyr
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
280 cmpa #$80 binary coded decimal number
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
281 bhi nintn
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
282 * ldb #20
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
283 * stb D.Cntury,u
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
284 sta <century
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
285 bra notyr
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
286 nintn
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
287 * ldb #19
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
288 * stb D.Cntury,u
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
289 clr <century
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
290 *notyr ldb ,s
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
291 notyr cmpb #4 day of the week
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
292 bne notdywk
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
293 anda #7
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
294 sta D.Daywk,u
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
295 bra nxtdata
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
296 notdywk cmpb #5 special 12/24, AM/PM indicator
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
297 bne cnvrt convert any number
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
298 bita #%10000000 12/24 hour bit
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
299 beq cnvrt 24 hour time
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
300 bita #%00100000 AM/PM bit since 12 hour time, check AM/PM
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
301 pshs cc
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
302 anda #%00011111 keep only time
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
303 puls cc
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
304 bne PMhr
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
305 cmpa #$12 bcd value
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
306 bne cnvrt
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
307 clra 12 AM = 0 hrs 24hr time
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
308 bra cnvrt
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
309 Pmhr cmpa #$12 bcd value
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
310 beq cnvrt 12PM = 1200 24 hr time
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
311 adda #$12 all other times (1-11) add 12; ie. 1300-2300
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
312 cnvrt tfr a,b return result in reg.B
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
313 anda #%11110000 get MSN
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
314 lsra
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
315 lsra
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
316 sta ,-s save #4a
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
317 lsra
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
318 sta ,-s save #2a
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
319 subb ,s+ 16a+b-4a
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
320 subb ,s+ 12a+b-2a=10a+b
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
321 stb ,-y decrease pointer and then store
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
322 nxtdata dec ,s
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
323 bne trans
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
324 tst <century
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
325 beq not20
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
326 lda #100
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
327 adda 1,y
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
328 sta 1,y
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
329 not20 puls b,pc
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
330
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
331 noclk clr D.Daywk,u clear garbage as new date routine reads D.Daywk
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
332 leay D.Time,u
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
333 ldd #7
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
334 noclklp sta ,y+ clear clock packet; faster than a clr ,y+
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
335 decb
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
336 bne noclklp
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
337 * clr D.Cntury,u
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
338 clr <century
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
339 clr <clkflag
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
340 rts
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
341
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
342 syntax lda #2
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
343 leax errmes,pcr
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
344 ldy #300
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
345 os9 I$Writln
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
346 clrb
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
347 os9 F$Exit
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
348
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
349 emod
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
350 pgrmend equ *
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
351 end
5a27279ccc08 Added new utils
boisy
parents:
diff changeset
352