/
281.txt
198 lines (128 loc) · 5.99 KB
/
281.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
* OS/8 の日時
[41]
[[PDP-8]] ([TIME[西暦1965年][1965]]) の [[OS]] である [[OS/8]] における[[日時]]についてです。
[43]
[[OS/8]] では[[日付]]は3ビットで表されました。 [SRC[>>44]]
8年分記述でき、基本的に
[ [TIME[西暦1970年][1970]], [TIME[西暦1977年][1977]] ]
と解釈されました。
[SRC[>>42]]
[45]
[[OS/8]] の後継の [[COS-310]] の[[ファイルシステム]]は、
この点が改善されていたとされます。
[SRC[>>44, >>39]]
具体的には不明です。
[REFS[
[FIG(quote)[
[FIGCAPTION[
[42] [CITE[Directory of linctape-images/os8l/ps-8-system-25.linc]], [TIME[2023-01-01T07:24:47.000Z]] <http://www.pdp8online.com/pdp8cgi/os8_html?act=dir;fn=linctape-images/os8l/ps-8-system-25.linc;sort=ext>
]FIGCAPTION]
>OS/8 can only store dates for an 8 year period so dates will be shown as 1970-1977 unless the media had a printed directory or other information find the correct date range.
]FIG]
[FIG(quote)[
[FIGCAPTION[
[44]
[CITE@en[Doug Jones's DEC PDP-8 FAQs]], [[Douglas W. Jones]], [TIME[2023-01-01T07:27:01.000Z]] <http://homepage.cs.uiowa.edu/~jones/pdp8/faqs/>
]FIGCAPTION]
>COS-310, DEC's commercial operating system for the PDP-8, supported the DIBOL language. COS-310 was a derivative of MS/8 and OS/8, but with a new text file format. The file system is almost the same as OS/8, but dates are recorded differently, and a few applications can even run under both COS and OS/8.[SNIP[]]
]FIG]
]REFS]
* TOPS-10の日時
[32]
[[PDP-10]] ([TIME[西暦1966年][1966]]) の [[OS]] である [[TOPS-10]] における[[日時]]についてです。
** 日付形式
[34]
場面により、数種類の[[日付形式]]が使われていました。
[3] [DFN[date]] [SRC[>>1 #page=10]]
[EG[
[4]
[CODE[22-11-79]] = [TIME[1979-11-22]]
]EG]
[17] ANSI format: [TIME[19721019]] = [TIME[1972-10-19]] [SRC[>>1 #page=115]]
;; [31] [[ANSI X3.30-1971]] あたりか?
[19] >>1 #page=330
[EG[
[20]
[CODE[07-18-80]]
(おそらく[TIME[1980-07-18]])
]EG]
[33] [[日時]]中の[[日付]]: >>10
** 時刻形式
[35]
[[日の時刻]]の[[形式][時刻形式]]は何通りかありました。
[6] [DFN[hh:mm:ss]] [SRC[>>1 #page=10]]
[21] 自動生成[[ファイル名]] : hhmmss [SRC[>>1 #page=108]]
[22] Time of day in milliseconds [SRC[>>1 #page=87]]
** 日時形式
[5] [DFN[date-time]] [SRC[>>1 #page=10]] : 絶対、相対の2通り
*** 絶対日時形式
[9] [SRC[>>1 #page=21]]
[10] [[日付]]は[[年月日]]の順序と[[月名]]の違いで3通り
[11] [[月名]]は1から3文字、[[曜日名]]は3か4文字
[12]
[[時]]以外は省略可能
[13]
[[年]]は1桁、[[2桁][2桁年号]]、4桁。
[14] 0, 80, 1980 が[TIME[西暦1980年][1980]]を表すという例が示されています。
どういう補完なのかは不明。
[36]
3桁がないということは1桁は意図的に認めたのでしょうが、[[米国]]では (当時は?)
そういう用法があったのでしょうか。
[37]
[[FIPS 4]] も1桁, 2桁, 4桁を認めてます。当時の[[米国]]ではそれが一般的だったのでしょうか。
それとも両者は関係があるのでしょうか。
*** 相対日時形式
[7] 現在日時からの[[差][時間長]]で表現、
[CODE[-]] で[[過去]]、 [CODE[+]] で[[未来]] [SRC[>>1 #page=21]]
[EG[
[8]
[CODE[-3D:4:27:21]] = 3日4時間27分21秒前
]EG]
*** その他の日時形式
[38] この他に、絶対時刻と違った形式の日時が使われることがありました。
[16] [CODE[DAYTIME]] の形式 >>1 #page=84
[18] >>1 #page=241
** DATE75
[24]
[[TOPS-10]] は元来[TIME[1964-01-01]]から[TIME[1975-01-04]]の[[日付]]しか処理できませんでした。
[SRC[>>23]]
[26]
[[TOPS-10]] は[TIME[西暦1967年][1967]]に始まり、
[TIME[西暦1970年][1970]]にこの名前となったとされます
[SRC[>>25]] ので、
初期開発当時としてはこの範囲は妥当だったのでしょう。
;; [27]
どのような[[データ構造]]だったのでしょう?
2[SUP[12]] ビットの[[日]]数だと11年と4日より数十日多いような?
[28]
[DFN[DATE-75]] と呼ばれる修正で3ビット追加され、[TIME[2052-02-01]]まで扱えるようになりました。
[SRC[>>23]]
[29]
ところが元々未使用だった3ビットは他の目的に使われることがあり、
様々な[[不具合]]を生じていました。
[SRC[>>23]]
[30]
[TIME[1986-01-09]]には追加された3ビットのうちの2ビット目が使われるようになり、
今度は2ビット目を使っていたプログラムで[[不具合]]が生じました。
[SRC[>>23]]
[15]
挙動切り替えのための
[DFN[[CODE[DATE75]]]],
[DFN[[CODE[NODATE75]]]] なるオプションがありました。
[SRC[>>1 #page=51, 52]]
[40]
[CITE[Wikipedia]]
は[[日時桁溢れ問題]]の最古の事例として掲載しています。
[SRC[>>39]]
[REFS[
- [23]
[CITE@en-GB[[[The RISKS Digest]] Volume 4 Issue 45]], [TIME[2021-07-01T14:00:47.000Z]], [TIME[2022-12-04T09:46:19.551Z]] <http://catless.ncl.ac.uk/Risks/4.45.html#subj1>
-[25]
[CITE@en[[[TOPS-10]] - Wikipedia]], [TIME[2022-12-03T12:30:49.000Z]], [TIME[2022-12-04T09:49:09.120Z]] <https://en.wikipedia.org/wiki/TOPS-10>
- [39]
[CITE@en[Time formatting and storage bugs - [[Wikipedia]]]], [TIME[2022-12-04T05:12:54.000Z]], [TIME[2022-12-04T12:33:13.517Z]] <https://en.wikipedia.org/wiki/Time_formatting_and_storage_bugs>
]REFS]
** メモ
- [1] [CITE[tops10-aa-0916d-tb.pdf]], [TIME[2011-01-30T01:07:57.000Z]], [TIME[2022-12-04T09:18:43.794Z]] <http://bitsavers.trailing-edge.com/scandocs.trailing-edge.com/tops10-aa-0916d-tb.pdf>
- [2] [CITE[2_Operating_System_Commands_Manual.pdf]], [TIME[2022-09-16T04:55:53.000Z]], [TIME[2022-12-04T09:18:54.943Z]] <https://www.livingcomputers.org/UI/UserDocs/Tops-10-v7-04/2_Operating_System_Commands_Manual.pdf>
* メモ