annotate level1/cmds/date.asm @ 1402:cd2c72039609

Made source more better :)
author boisy
date Thu, 27 Nov 2003 03:32:41 +0000
parents 84ea83668304
children ecffde67b7be
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
1 ********************************************************************
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
2 * Date - Print Date/Time
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
3 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
4 * $Id$
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
5 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
6 * Greetings; September 25, 1996
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
7 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
8 * This 'Date' module, date5, has been expanded a wee bit to
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
9 * make it smart enough to handle dates to the year 2099.
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
10 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
11 * In order to have it do it in a math conversion, I would have had to
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
12 * make the 8 bit math it does into 16 bit, and there aren't enough
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
13 * registers in the 6809 to pull that off in a reasonable code size.
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
14 * So it still does 8 bit math, but only has a 1900-2099 year total
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
15 * range. This is more than the recently converted clock for the Disto
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
16 * 4n1 I just uploaded, as that clock now has a range from 1980 to 2079.
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
17 * A simple subtraction determines if it prints a leading 20, and the
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
18 * contents of the register after the subtraction, or it reloads the
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
19 * string pointer to point at 19 and reloads the year register to get
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
20 * the year 00-99 to print.
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
21 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
22 * This contains no 6309 specific code, so Nitros9 and a 6309 cpu
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
23 * are not required to use it, box stock is fine.
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
24 *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
25 * Gene Heskett, <gene_heskett@wvlink.mpl.com>
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
26 *
1325
84ea83668304 Redid comments, reset all rev nibbles that weren't explictly set to 0
boisy
parents: 924
diff changeset
27 * Edt/Rev YYYY/MM/DD Modified by
84ea83668304 Redid comments, reset all rev nibbles that weren't explictly set to 0
boisy
parents: 924
diff changeset
28 * Comment
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
29 * ------------------------------------------------------------------
1325
84ea83668304 Redid comments, reset all rev nibbles that weren't explictly set to 0
boisy
parents: 924
diff changeset
30 * 5 1996/09/25 Gene Heskett
84ea83668304 Redid comments, reset all rev nibbles that weren't explictly set to 0
boisy
parents: 924
diff changeset
31 * Made Y2K compliant.
84ea83668304 Redid comments, reset all rev nibbles that weren't explictly set to 0
boisy
parents: 924
diff changeset
32 *
84ea83668304 Redid comments, reset all rev nibbles that weren't explictly set to 0
boisy
parents: 924
diff changeset
33 * 6 1999/05/07 Boisy G. Pitre
84ea83668304 Redid comments, reset all rev nibbles that weren't explictly set to 0
boisy
parents: 924
diff changeset
34 * Made compliant with 1900-2155.
84ea83668304 Redid comments, reset all rev nibbles that weren't explictly set to 0
boisy
parents: 924
diff changeset
35 *
84ea83668304 Redid comments, reset all rev nibbles that weren't explictly set to 0
boisy
parents: 924
diff changeset
36 * 7 2003/01/14 Boisy G. Pitre
84ea83668304 Redid comments, reset all rev nibbles that weren't explictly set to 0
boisy
parents: 924
diff changeset
37 * New option is now -t, code compacted a bit.
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
38
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
39 nam Date
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
40 ttl Print Date/Time
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
41
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
42 ifp1
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
43 use defsfile
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
44 endc
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
45
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
46 tylg set Prgrm+Objct
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
47 atrv set ReEnt+rev
1325
84ea83668304 Redid comments, reset all rev nibbles that weren't explictly set to 0
boisy
parents: 924
diff changeset
48 rev set $00
834
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
49 edition set 7
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
50
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
51 mod eom,name,tylg,atrv,start,size
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
52
834
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
53 org 0
924
c155aac72190 Made cosmetic changes
boisy
parents: 834
diff changeset
54 sysyear rmb 1
c155aac72190 Made cosmetic changes
boisy
parents: 834
diff changeset
55 sysmonth rmb 1
c155aac72190 Made cosmetic changes
boisy
parents: 834
diff changeset
56 sysday rmb 1
c155aac72190 Made cosmetic changes
boisy
parents: 834
diff changeset
57 syshour rmb 1
c155aac72190 Made cosmetic changes
boisy
parents: 834
diff changeset
58 sysmin rmb 1
c155aac72190 Made cosmetic changes
boisy
parents: 834
diff changeset
59 syssec rmb 1
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
60 u0006 rmb 2
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
61 u0008 rmb 440
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
62 size equ .
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
63
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
64 name fcs /Date/
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
65 fcb edition
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
66
834
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
67 MonTable fcs '???'
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
68 fcs 'January'
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
69 fcs 'February'
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
70 fcs 'March'
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
71 fcs 'April'
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
72 fcs 'May'
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
73 fcs 'June'
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
74 fcs 'July'
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
75 fcs 'August'
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
76 fcs 'September'
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
77 fcs 'October'
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
78 fcs 'November'
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
79 fcs 'December'
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
80
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
81 start pshs x
924
c155aac72190 Made cosmetic changes
boisy
parents: 834
diff changeset
82 leax sysyear,u
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
83 leau u0008,u
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
84 stu <u0006
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
85 os9 F$Time
834
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
86 bsr Add2Buff go print the date in buffer
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
87 ldd [,s++] now, did we have a -t
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
88 andb #$DF
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
89 cmpd #$2D54 -T?
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
90 bne PrBuff wasn't
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
91 ldd #C$SPAC*256+C$SPAC else space it out
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
92 std ,u++
834
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
93 bsr DoTime and go add the time to the buffer
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
94 PrBuff lda #C$CR terminate the line to print
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
95 sta ,u+
834
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
96 lda #1 standard out
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
97 ldx <u0006
834
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
98 ldy #40
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
99 os9 I$WritLn and go print it
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
100 bcs Exit
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
101 clrb
834
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
102 Exit os9 F$Exit
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
103
924
c155aac72190 Made cosmetic changes
boisy
parents: 834
diff changeset
104 DoTime ldb <syshour
834
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
105 bsr Byte2ASC
924
c155aac72190 Made cosmetic changes
boisy
parents: 834
diff changeset
106 ldb <sysmin
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
107 bsr L00AB
924
c155aac72190 Made cosmetic changes
boisy
parents: 834
diff changeset
108 ldb <syssec
834
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
109 L00AB lda #':
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
110 sta ,u+
834
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
111 bra Byte2ASC
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
112
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
113 Add2Buff leay >MonTable,pcr point to month table
924
c155aac72190 Made cosmetic changes
boisy
parents: 834
diff changeset
114 ldb <sysmonth get month byte
834
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
115 beq L00C4 branch if zero (illegal)
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
116 cmpb #12 compare against last month of year
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
117 bhi L00C4 if too high, branch
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
118 L00BD lda ,y+ get byte
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
119 bpl L00BD keep going if hi bit not set
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
120 decb else decrement month
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
121 bne L00BD if not 0, keep going
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
122 L00C4 bsr PrtStrng
924
c155aac72190 Made cosmetic changes
boisy
parents: 834
diff changeset
123 ldb <sysday
834
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
124 bsr Byte2ASC
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
125 ldd #C$COMA*256+C$SPAC get comma and space in D
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
126 std ,u++ store in buffer and increment twice
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
127 lda #19
924
c155aac72190 Made cosmetic changes
boisy
parents: 834
diff changeset
128 ldb <sysyear get year
834
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
129 CntyLp subb #100
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
130 bcs pr we have century we need
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
131 inca
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
132 bra CntyLp
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
133 pr addb #100
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
134 pshs b
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
135 tfr a,b
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
136 bsr Byte2ASC
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
137 puls b
834
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
138
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
139 Byte2ASC lda #$2F start A out just below $30 (0)
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
140 Hundreds inca inc it
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
141 subb #100 subtract 100
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
142 bcc Hundreds if result >= 0, continue
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
143 cmpa #'0 zero?
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
144 beq Tens if so, don't add to buffer
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
145 sta ,u+ else save at U and inc.
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
146 Tens lda #$3A start A out just above $39 (9)
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
147 TensLoop deca dec it
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
148 addb #10 add 10
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
149 bcc TensLoop if carry clear, continue
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
150 sta ,u+ save 10's digit
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
151 addb #'0
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
152 stb ,u+ and 1's digit
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
153 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
154
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
155 * * * * * * * * * * *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
156 * make fcs strings printable
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
157 PrtStrng lda ,y
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
158 anda #$7F
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
159 sta ,u+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
160 lda ,y+
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
161 bpl PrtStrng
834
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
162 lda #C$SPAC
4a8e6693b9fe New option is -t, compacted a bit
boisy
parents: 0
diff changeset
163 sta ,u+
0
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
164 rts
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
165
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
166 * * * * * * * * * * *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
167 * all done here folks
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
168 emod
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
169 eom equ *
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
170 end
6641a883d6b0 Initial revision
boisy
parents:
diff changeset
171