|Acc.#1998.0191||Danko page 8||AC#667|
| ARCHIVES CENTER # 667; FOLDER 48;
|1030 DIM MO $ (12): FNI= 1 TO 12: READ MO $ ( I ): NEXT|
|1040 INPUT "-----------(1900-1999)"; Y: Y=Y-1900|
|1050 D=1; M=1; GO SUB 2000:|
|1060 PRINT= P, TAB (20); 19N+Y:, PRINT #P, TAB (21) "-----"|
|1070 FN I=C to C+36Y - Y= INT (Y/4) * 4)|
|1080 C=I: GO SUB 3000|
|1090 D= 1 THEN PRINT #P: PRINT #P: PRINT #P, TAB (20): MO$|
|1100 W=I-INT (1/7) * 7-7 ( I= INT (I/7) *7)|
|1110 PRINT#P, TAB ((W+1)*4); D; IF W=7 THEN PRINT #P|
|1120 NEXT I|
|2010 J=INT(30.42*(M-1))-(M=2)+(M>2 and M<8)-(m>2A and INT (Y/4)*4=Y)+D|
|2020 C= J+365*Y + INT (Y-1)/4)+1|
|3010 L= INT (C/1461.1)|
|3020 Y= L*4- (C>(L*1461)+366)* (INT(C-L*1461-366/365.1+1)|
|3030 J= C-Y*365-INT (Y/4)+(Y>0)-(INT (Y/4)*4=Y)|
|3040 M=J+(J>59 AND INT (Y/4)*4=Y)|
|3050 M=INT (M/30.42)+1-(M=60)+(M=31)-(M=9 or M=12 or M=152 or M=182)|
|3060 D=1: I=C; JI=J; GO SUB 2000; J=J1|
|3070 D= I-C+1|
|Literal transcription from S.F. Danko.
| This document is an assembly language program [probably] written for a main frame computer.
The program is designed to calculate a date from 1900 to 1999.
The program listed that begins at 1030 is a sub-routine for a larger program.
The program steps are incremented by 10's.
|LOCATION: The code in 1050 in reference to 2000
is a sub-routine location which does not appear in Danko's paper.
The sub-routine ends at 2030. The code in 3010 is a sub-routine that begins in 3000 (not listed in document) and ends in 3080. Code in 1030 to 1130 is an input to the printer and defines page layout and printing perameters.
The program ends at location 1130. Probably written in the late 1950's or early 1960's.
Defined by: Sherman L. Naidorf, 1999 Smithsonian Volunteer
|COMMENTS: April 2, 2001:
May I provide some information about one specific entry to the "Danko collection", namely [this page] http://smithsonianchips.si.edu/danko/danko8.htm?
This is not an assembly program, it is written in (an early version of) BASIC.
And it is very likely not a subroutine, because in that case the statement in line 1130 would read "RETURN" and not "END". Main programs are terminated with END, subroutines are terminated with RETURN.
The numbers that are incremented in 10s have little to do with "program steps", they are just line numbers that are used for the text editor with which you write the program. For example, if you forgot to write a statement, say "A = B + C", between the third and fourth line, then you would enter "1055 A = B + C" (in fact, any number between 1051 and 1059 will do). The BASIC interpreter does not receive the line numbers, they are just for the editor to keep track of the correct order of program lines.
The subroutine location 2000 that your author of the comments is missing, was probably only a comment (because the following statements up to 2030 constitue a valid program), or maybe that version of the BASIC interpreter simply jumps to the next available statement which would be 2010 then. Or, the program is simply erronous.
Same for 3000/3010.
Hope I could clarify a few things.
Greetings from Austria,
Your contacts for requesting information and/or appointments to research the Chip Collection are:
NMAH Archives Center
Manuscript Technology Collections
Nance L. Briscoe
Information Technology & Society - Electricity Collections