Category : Assembly Language Source Code
Archive   : JULIAN-A.ZIP
Filename : JULIAN.THD

Output of file : JULIAN.THD contained in archive : JULIAN-A.ZIP
#: 6251 S1/Assembler [P]
23-Mar-89 08:05:26
Sb: #Julian date routine
Fm: GARY MILLER 72657,3010
To: All

I've tried the IBMFF but can't seem to find an assembler Julian date and
reverse Julian date routine/routines. Anyone know of one on any lib???

* Replies: 6280, 6394

#: 6280 S1/Assembler [P]
24-Mar-89 12:41:33
Sb: #6251-#Julian date routine
Fm: Charles Lazo III 72210,17
To: GARY MILLER 72657,3010 (X)

This really shouldn't be very hard to do. I have a C code routine that
computes a date number (not the Julian date, but to get that you only need to
add an offset) for all dates between 1/1/1980 and 1/1/2080 which would be
something to go on if you choose to write this routine yourself. I'll upload
it here in a message if you'd like.

* Reply: 6296

#: 6296 S1/Assembler [P]
24-Mar-89 21:50:43
Sb: #6280-#Julian date routine
Fm: GARY MILLER 72657,3010
To: Charles Lazo III 72210,17 (X)

Might be interesting, but I don't C, you see. How does it handle leap years?
Really looking for text to assembly to text. The basic routine I've seen is a
real *** buster.

* Replies: 6303, 6305, 6312

#: 6303 S1/Assembler [P]
25-Mar-89 01:45:17
Sb: #6296-#Julian date routine
Fm: David Bartmess 70003,4346
To: GARY MILLER 72657,3010 (X)

As far as leap years, just (I don't know assembler very well, so I'll use 'C'
terminology) 'mod' the year, and if the remmainder is = 0, it's a leap year.
But remember, if a year is evenly divisible by 100, 400, or 1000, it's not
counted as a leap year (to make up for those micro-seconds we lose every
year!) So the year 2000 is a leap year. Hope this helps!

* Reply: 6326

#: 6326 S1/Assembler [P]
25-Mar-89 20:31:52
Sb: #6303-#Julian date routine
Fm: Dave Angel 71046,1567
To: David Bartmess 70003,4346 (X)

Important correction: the year 2000 *IS* a leap year. 1700, 1800, 1900 were
the exceptions, not 2000. A year is a leap year if it's divisible by 4, but
not by 100, unless it's also divisible by 400. I don't know of any special
case for the year 3000, but I don't expect any of my programs to cover that

* Replies: 6355, 6367

#: 6355 S1/Assembler [P]
26-Mar-89 12:05:03
Sb: #6326-#Julian date routine
Fm: Charles Lazo III 72210,17
To: Dave Angel 71046,1567 (X)

Any additional adjustments from now on will have to be in multiples of some
number in excess of our current year since adjustments can't be retroactive.
In fact, according to Dr. Friedman, author of the AUTODA.ARC file (the one I
mentioned earlier as my reference), there is talk of making the year 4000 a
non leap year. It is merely academic if Nostradamus was correct in his
prediction that 3792 is the last year the world will know. (However, the
calendar could still be maintained off planet.)

* Reply: 6373

#: 6373 S1/Assembler [P]
26-Mar-89 22:51:09
Sb: #6355-Julian date routine
Fm: Ty Halderman 70155,1125
To: Charles Lazo III 72210,17 (X)

Just watched Escape from Planet of the Apes. It claims the date the world
blows up is in 3955. (didn't specify the month & day, tho.)

I guess 4000 won't be a problem, like you say.

--Ty (who watches anything)

#: 6367 S1/Assembler [P]
26-Mar-89 19:00:14
Sb: #6326-Julian date routine
Fm: David Bartmess 70003,4346
To: Dave Angel 71046,1567 (X)

Thanks, I goofed. That's exactly what I meant, except I said it backwards.
Like all good programmers, sometimes I'm an airhead 'cause I've got my mind on
my next project!

#: 6305 S1/Assembler [P]
25-Mar-89 05:03:44
Sb: #6296-#Julian date routine
Fm: Charles Lazo III 72210,17
To: GARY MILLER 72657,3010 (X)

Alright, you don't want to see the C then (anyway it's also a date checking
routine and all that would be too much for someone who hasn't a handle on C
yet.) So let's get down to specifics since you've intrigued me and I feel up
to working on some routines like this over the weekend. As to leap years the
last I read about this a leap year is one which is evenly divisible by 4,
except when it is also divisible by 100 and then it is not a leap year, but if
400 divides it it is a leap year. So 2000 is a leap year and the last one
such was 1600. Now it seems that they were talking about making still another
adjustment to the calendar, but I don't know if that is firm yet. Perhaps the
1000 year interval which David Bartmess mentioned (are you listening David)
has something to do with this. Of course, all of this is valid only for the
Gregorian Calendar which started sometime in the 16th century. And Britain
and America didn't adopt this calendar for many years after its promulgation
by the Papacy. Thus, should the routines work only for the Gregorian Calendar
or the Julian as well?

You said that the program should convert "text to assembly to text", but in
exactly what way? I imagine the best way to design a program would be to make
it a filter that read from standard input and sent the converted result
(either a Julian date or Gregorian date depending upon the direction of
conversion) to standard output. But since you were asking for a library
function maybe you'd prefer that the input came from a calling routine which
passed an ASCIIZ string pointed to by ds:dx. Then likewise analogous to some
DOS routines a return code would be passed in ax if there was an error (if so
the carry would be set) but if no error then ds:ax would point to the
converted result. Howzat?

* Reply: 6306

#: 6306 S1/Assembler [P]
25-Mar-89 08:41:52
Sb: #6305-#Julian date routine
Fm: GARY MILLER 72657,3010
To: Charles Lazo III 72210,17 (X)

Just fine. Do it in assembly.
You'll note that the CIS message dating is dd-mmm-yy and this is also one of
the formats that LOTUS 123 offers. I have an APL routine that I adapted from a
basic routine I found years ago (YYMMDD) but would be very hard pressed to
state or restate the algorithm. For obvious reasons such a routine in assembly
(one of my latest aberrations) would be useful.

* Reply: 6313

#: 6313 S1/Assembler [P]
25-Mar-89 13:15:52
Sb: #6306-#Julian date routine
Fm: Charles Lazo III 72210,17
To: GARY MILLER 72657,3010 (X)

Ok, here's what I'll do. I'll write the to-from conversion routines as stand
alone subroutines that may be assembled to obj for the linker. As I said this
shouldn't to very hard to do. As a guide to the necessary dates and algorithm
construction I'll reference a file I found that provides perpetual calendars
and days-between-two-dates calculation for _any_ two dates back to BC times.
This file is available here, I think, in an IBMAPP DL for use with Lotus.
I've got it somewhere, but can't find it now. No date validity checking will
be available when I release these probably sometime within the coming week or
two. I'll announce here in a message to you the name of the uploaded file. In
the following release there will be date validity checks and support of more
than the format which you mentioned (DD-MMM-YY). Then again in what may be
the final release I'll add a program (a filter as mentioned) that will read
text files--such as a *.msg file produced by TAPCIS--and replace dates by
their Julian day equivalent. The second phase should take a while; don't hold
your breath!

Anything else for wish list?

* Reply: 6319

#: 6319 S1/Assembler [P]
25-Mar-89 19:24:36
Sb: #6313-Julian date routine
Fm: GARY MILLER 72657,3010
To: Charles Lazo III 72210,17 (X)

If you mean "I'll reference a file" to do a lookup, that is exactly what I
wanted to avoid. I wanted true stand alone.
As far as TAPCIS, replacing the dates with Julian would cause more confusion
than less. Remember the message numbers are a kind of Julian anyway.

#: 6312 S1/Assembler [P]
25-Mar-89 13:01:53
Sb: #6296-#Julian date routine
Fm: Chris Rouse 71420,614
To: GARY MILLER 72657,3010 (X)


There's a file in DL1? of MSSYS called Dater.Arc which contains assembly
source code for a routine which converts MM/DD/[YY]YY to an integer, days
since 01/01/80 and a routine which converts it back to string. It's designed
for linking with QuickBASIC, but it's pretty generic.


* Replies: 6318, 6321

#: 6318 S1/Assembler [P]
25-Mar-89 19:24:26
Sb: #6312-Julian date routine
Fm: GARY MILLER 72657,3010
To: Chris Rouse 71420,614 (X)

Thanks, I'll look at it.

#: 6321 S1/Assembler [P]
25-Mar-89 19:32:09
Sb: #6312-Julian date routine
Fm: GARY MILLER 72657,3010
To: Chris Rouse 71420,614 (X)

I see you are the author, or at least the uploader. DATER.ARC is here in LIB

#: 6394 S1/Assembler [P]
27-Mar-89 21:54:45
Sb: #6251-#Julian date routine
Fm: John Kennedy 75136,1413
To: GARY MILLER 72657,3010 (X)

What do you mean by "assembler" and what do you mean by "Julian date".
Unfortunately, both terms have more than one meaning.

* Reply: 6398

#: 6398 S1/Assembler [P]
27-Mar-89 23:28:27
Sb: #6394-#Julian date routine
Fm: GARY MILLER 72657,3010
To: John Kennedy 75136,1413 (X)

For "assembler" read "assembly language". For examples I would suggest (my
def here, probably not totally correct, well okay, maybe remotely) a series of
coding conventions stored as a text file capable of being "assembled" and/or
converted using an "assembler" such as MASM, OPTASM, IBM Marco Assembler, etc.
etc. into "object" code and "linked" into a binary file of machine executable
transportable instructions. I'm sure you get the general idea.
For "Julian date" think in terms of a numbering system which represents
successive calendar dates as consecutive integers. Perhaps Julian "type"
dating system may be more correct but if these volunteers want to make it
"true" Julian that's okay by me. LOTUS uses what is probably considered a
modified Julian system, commencing as it does at Jan 1, 1900 (?). In any case
the request is a prog that will translate the dd-mmm-yy format into its
integer representation and then upon request translate the integer back into
the dd-mmm-yy date format.

* Reply: 6483

#: 6483 S1/Assembler [P]
30-Mar-89 12:44:27
Sb: #6398-#Julian date routine
Fm: John Kennedy 75136,1413
To: GARY MILLER 72657,3010 (X)

By "Assembler", I couldn't tell which machine you meant. Mainframes,
minis, and Macs all have assemblers, too....

I have Julian-date routines in just about every language _except_ MASM,
unfortunately. PL/I, Ada, C, Pascal, BASIC, FORTRAN, COBOL, mainframe
assembler.... This is the true Julian date, with zero at January 1, 4713 B.C.
(O.S.) I keep meaning to port to MASM, but the 32-bit divisions make it a
little awkward.

By the way, my problem with "Julian date" is that this can also mean "date
according to the Julian calendar, as used until the Gregorian reform of 1582".
(Pure coincidence -- the Julian date was named for Julius Caesar Scaliger, the
father of the inventor, and the Julian calendar was given its name in
distinction to the Gregorian calendar by people unaware of the Julian date.)
Unfortunately, idiots also started using the word "Julian" to describe yy.ddd

* Replies: 6487, 6490, 6510, 6517

#: 6487 S1/Assembler [P]
30-Mar-89 15:18:00
Sb: #6483-Julian date routine
Fm: GARY MILLER 72657,3010
To: John Kennedy 75136,1413 (X)

Well, this is just another case of a little knowledge being a dangerous thing
(on my part).
I thank you for the education and the interest in helping you have

#: 6490 S1/Assembler [P]
30-Mar-89 17:24:54
Sb: #6483-#Julian date routine
Fm: Jonathan Anderson 73310,3700
To: John Kennedy 75136,1413 (X)

By "idiots" I assume you mean people in the government and the manufacturers
who support them?
--- Jon

* Reply: 6635

#: 6635 S1/Assembler [P]
03-Apr-89 20:43:41
Sb: #6490-Julian date routine
Fm: John Kennedy 75136,1413
To: Jonathan Anderson 73310,3700 (X)

Yes, I do. People who make up new meanings for words in the same domain
where they already have established meanings are idiots. It was bad enough
when (by unfortunate accident) "Julian date" already had two meanings, both
established for centuries, and both still in use. Adding a third was the act
of a complete decerebrate.

#: 6510 S1/Assembler [P]
30-Mar-89 23:21:56
Sb: #6483-#Julian date routine
Fm: Chris Rouse 71420,614
To: John Kennedy 75136,1413 (X)


How do you handle the transition from Julian to Gregorian calendars? I've
always used a base year of 1584 because I couldn't come up with an acceptable
way to adjust the dates and still have 01/01/1584 be 1,461 days after
01/01/1580. My best solution was to ignore it, which kind of defeats the
purpose when you consider the types of applications a very old base year would
be needed for.


* Reply: 6636

#: 6636 S1/Assembler [P]
03-Apr-89 20:43:57
Sb: #6510-Julian date routine
Fm: John Kennedy 75136,1413
To: Chris Rouse 71420,614 (X)

I either require or allow (depending on what seemed simplest to code in a
given language) the transition date as an additional
argument/operand/parameter (depending on the language), with the transition
date (defined as the first day reckoned as Gregorian) specified either as a
Julian date or as yyyy/mm/dd in Gregorian, with the default (when there is a
default) at the Roman date.

To be extra-sure, most of the routines have been tested semi-exhaustively
-- i.e., with all possible dates to be converted, and with Gregorian
transition set to never, and to 1582.

In comments, I also specify a few more details, but I don't attempt to
implement them. For example, for the first few generation or so after Caesar,
due to a mistake in translation, leap years were held every three years, and
then a few were skipped to get back on track. Also, before the eighth month
was renamed "August", the year was 31/29(30)/31/30/31/30/31/30/31/30/31/30.
When February lost a day to August, September through December also got
shuffled around to avoid having three 31-day months in a row.

And, of course, the Julian Calendar was not in use before the time of
Julius Caesar; however, it has become conventional to project it back, since
things were rather chaotic up til then.

#: 6517 S1/Assembler [P]
31-Mar-89 00:41:49
Sb: #6483-#Julian date routine
Fm: J. W. Rider 72426,1640
To: John Kennedy 75136,1413 (X)

My morphology for Julians looks some like this:

Julian DATE -- year month day of the Julian (vs Gregorian) gregorian
calendar. Only historians use this data item any more.

Julian DAY -- number of days that have elapsed since 1 Jan 4713BC (classic
definition used by astronomers); the last six digits of that
number (used by modern navigators mostly).

ORDINAL day -- the number of days that have elapsed since the beginning of
the year, frequently called "day-of-year" or "DOY" in my data
dictionaries. Why some dimwitted beancounters insist upon
incorrectly calling this "julian" is beyond me. If I'm in a
foul mood, I won't even bother trying to find out if the
problem definer really meant "ordinal" and give him "julian"
if he asks for it.

Julienne Date -- a piece of tropical fruit cut into long, thin pieces.

* Replies: 6637, 6656

#: 6637 S1/Assembler [P]
03-Apr-89 20:44:10
Sb: #6517-Julian date routine
Fm: John Kennedy 75136,1413
To: J. W. Rider 72426,1640 (X)

Actually, some Eastern Orthodox churches are still on the Julian Calendar,
originally for the same reason that Protestants were (because the Gregorian
Calendar was invented by that wicked villain, the Pope), and now largely
because the Gregorian Calendar was introduced to Russia by the Bolsheviks.
The predominantly Eastern Orthodox nations did not convert, even for civil
purposes, until this century.

#: 6656 S1/Assembler [P]
04-Apr-89 15:23:08
Sb: #6517-#Julian date routine
Fm: John Kennedy 75136,1413
To: J. W. Rider 72426,1640 (X)

I like your definitions, but of course they're no good unless everyone
uses them, alas! What an annoying thing it is that two calendar systems
happened by sheer coincidence to be named after men named "Julius".

* Reply: 6683

#: 6683 S1/Assembler [P]
05-Apr-89 01:43:52
Sb: #6656-#Julian date routine
Fm: J. W. Rider 72426,1640
To: John Kennedy 75136,1413 (X)

I wonder if it would do any good to point out that the chronological systems
weren't named after the same "Julius". One was named after a roman caesar and
the other after some guy's father.

That way we could have a "Caesarian date" and a "Papist date" versus "Father's

* Reply: 6701

#: 6701 S1/Assembler [P]
05-Apr-89 15:10:50
Sb: #6683-#Julian date routine
Fm: John Kennedy 75136,1413
To: J. W. Rider 72426,1640 (X)

Unfortunately, even that wouldn't work. The Julian calendar was named
after Julius Caesar, but the Julian date was named after the father of the
inventor. The inventor's name was Joseph Justus Scaliger. His father's name
was (ta-da!) Julius Caesar Scaliger.

You can't win!

* Reply: 6771

#: 6771 S1/Assembler [P]
06-Apr-89 23:49:58
Sb: #6701-Julian date routine
Fm: J. W. Rider 72426,1640
To: John Kennedy 75136,1413

<< about Julius Caesar Scaliger >>

Well, that is what happens when you only remember this stuff part of the time.
Of course, *now* I'll never forget that piece of trivia again. Too bad they
don't have a nerd version of trivial pursuit.

  3 Responses to “Category : Assembly Language Source Code
Archive   : JULIAN-A.ZIP
Filename : JULIAN.THD

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: