Jump to content

Recommended Posts

I was skimming over some old messages in csa8 when I noticed someone asking about the OS ROM source code. Someone pointed to a 6 meg PDF of an Atari publication with a listing of the source. Someone else whined about it being a grayscale PDF file with the listing sideways, and that he couldn't do anything with the PDF. So I downloaded it, found that Preview on OS X was perfectly capable of saving a rotated version. Even more, I found that Omnipage Pro X had no major complaints about it, other than automatically rotating most of the pages to upside-down.

 

So I OCR'ed it, then spent a couple of evenings cleaning up the listing. I even got it to assemble (after doing a few search 'n replaces to get around the assembler syntax it used) to something much like a ROM file I had. The comments may still have a few errors, but it did seem to assemble correctly.

 

The differences between it and a ROM file I had were 1) the floating point and character set regions were not included, 2) the reset/interrupt vectors were missing, and 3) there were some patches that may have been made to improve emulator performance. After adding the code below, I got it to match the top 8K.

 

 .ORG  IHINIT+$12; $E6E7
NOP
NOP
NOP

.ORG  $E90B      ; not defined above
.BYTE $66,$66,$7E,$66,$00,$00,$7C
.ORG  *+3; JMP SETVBL
.BYTE $66,$7C,$00,$00,$3C,$66,$60,$60
.BYTE $66,$3C,$00,$00,$78,$6C,$66,$66
.BYTE $6C,$78,$00,$00,$7E,$60,$7C,$60
.BYTE $60,$7E,$00,$00,$7E,$60,$7C,$60
.BYTE $60,$60,$00,$00,$3E,$60,$60,$6E
.BYTE $66,$3E,$00,$00,$66,$66,$7E

.ORG  $EDE8     ; not defined above
.WORD $8524

.ORG  PWRUP+9   ; $F12E
.JSR  SPECL+5   ; $F244

.ORG  SPECL     ; $F23F
CMP   #$D0
BNE   HOWMCH    ; $F25F
RTS

.ORG  HOWMCH+8  ; $F267
BNE   SPECL+4   ; $F243 (=RTS)

.ORG  HOWMCH+$15; $F274
JMP   SPECL

.ORG  CLRCHP+9  ; $F283
NOP
NOP
NOP

.ORG  BELL      ; $F90A
RTS

.ORG  $FFF8     ; 6502 vectors
.WORD PIRQ,PNMI,PWRUP,PIRQ; $E6F3,$E791,$F125,$E6F3

a800ossrc.zip

  • Like 1

Share this post


Link to post
Share on other sites

And I'm going to go ahead and say that I know someone has probably already done this, but I went ahead and did it anyhow because if someone had, then nobody who knew about it said so in that thread. And I felt like doing it.

 

I definitely know others have disassembled and commented it on their own. I don't even have to look, it's just natural that someone would have done so. Well, that's nice, but it's no substitute for the historical preservation of the original source code.

Share this post


Link to post
Share on other sites
I was skimming over some old messages in csa8 when I noticed someone asking about the OS ROM source code.

 

I thought that they were asking for the XL source code. Which AFAIK was lost and never found till now. But, let me dream, might be in the VAX that Kurt recently got!

 

The source code you list (800 OS-B) is widely available in hardocpy as part of the "Technical Reference". Some dealers still have them brand new, and they show often at Ebay as well. But it is nice to have an OCRed version, thanks.

 

The differences between it and a ROM file I had were 1) the floating point and character set regions were not included, 2) the reset/interrupt vectors were missing, and 3) there were some patches that may have been made to improve emulator performance.

 

It doesn't include the floating point because it is(was) not by copyright atari, but by OSS instead. This is because the FP is actually part of Basic, and was included in the main OS because lack of space in the cart. The source was published by OSS along with the souce of Basic.

 

The interrupt vectors are modified for a LINT version, this is explained in the header of the source.

Share this post


Link to post
Share on other sites

Yes, this is the OS B source code from that tech ref.

 

And where else can you get such gems as:

 

INTEMP: .RES 1 ;IAN'S TEMP (RENAMED FROM T1 BY POPULAR DEMA

 

and...

 

; DRAW -- DRAW A LINE FROM OLDROW,OLDCOL TO NEWROW,NEWCOL

; (THE AL MILLER METHOD FROM BASKETBALL)

Share this post


Link to post
Share on other sites
So I OCR'ed it, then spent a couple of evenings cleaning up the listing.  I even got it to assemble (after doing a few search 'n replaces to get around the assembler syntax it used) to something much like a ROM file I had.  The comments may still have a few errors, but it did seem to assemble correctly.

 

Thanks!

Share this post


Link to post
Share on other sites
I thought that they were asking for the XL source code. Which AFAIK was lost and never found till now.

 

I think Nir Dary had (has ?) it.

 

It has (had) the actual source with the original comments, or just a disassembly?

Share this post


Link to post
Share on other sites
It has (had) the actual source with the original comments, or just a disassembly?

 

If I remember right he mentioned he would have the fully documented listing (from Atari Labs). Perhaps Nir can answer this question by himself as he is a member of this board...

Share this post


Link to post
Share on other sites

OKay, here is the source to the XL OS Rev5, this should cover most of the needed information for everything up to the 800XL, I know I have the patches and sources to the 1450XLD "TONG OS" someplace...

 

 

 

 

Curt

OS_Rev5.zip

Share this post


Link to post
Share on other sites
OKay, here is the source to the XL OS Rev5,

 

This is FABULOUS ! Thanks a lot Kurt.

 

Do you happen to have older revisions? Rev2 would be the best because that's the one in most (all?) standard XL/XE systems.

Share this post


Link to post
Share on other sites

I will post on my Computers section this coming week all of the various versions I have on file.

 

 

 

Curt

 

OKay, here is the source to the XL OS Rev5,

 

This is FABULOUS ! Thanks a lot Kurt.

 

Do you happen to have older revisions? Rev2 would be the best because that's the one in most (all?) standard XL/XE systems.

962719[/snapback]

Share this post


Link to post
Share on other sites

OKay, here is the source to the XL OS Rev5, this should cover most of the needed information for everything up to the 800XL, I know I have the patches and sources to the 1450XLD "TONG OS" someplace...

 

And here, years later, is an assembled binary of this OS revision:

 

 

I will post on my Computers section this coming week all of the various versions I have on file.

 

... still waiting, Curt ...

Edited by Kr0tki

Share this post


Link to post
Share on other sites

OKay, here is the source to the XL OS Rev5, this should cover most of the needed information for everything up to the 800XL, I know I have the patches and sources to the 1450XLD "TONG OS" someplace...

 

And here, years later, is an assembled binary of this OS revision:

 

Which is the one you assembled?

 

Quote mentions "Rev5" but your file name reads "1r4" (1984, crc32 "D0C84956")

Share this post


Link to post
Share on other sites

I don't know why the original archive is called "Rev5" - the ROM signature in the source clearly states it's CC000001 Rev. 4 (1984-09-06).

Share this post


Link to post
Share on other sites

Confusing. The Rev. 4 I have is dated 1987 (crc32: 1EAF4002) and is nowhere the same as the one you assembled.

Share this post


Link to post
Share on other sites

Not really confusing if you know the details. The above "Rev. 5" OS was not used in any production machine. OS versions BB000001 rev. 3 and 4, that were featured in the XEs and XEGS, were not developed from the above OS but were modifcations of the earlier BB000001 rev. 2, which was mounted in the 600/800XLs.

Share this post


Link to post
Share on other sites

The confusing part is that Rev. 4 is copyright 1987 while the discussed "Rev. 5 " is copyright 1984. That's what's mentioned in the code. Of course such a situation is possible, just not logical.

 

 

How I'm supposed to archive it :-))

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...