Bruce Tomlin Posted November 2, 2005 Share Posted November 2, 2005 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 1 Quote Link to comment Share on other sites More sharing options...
Bruce Tomlin Posted November 2, 2005 Author Share Posted November 2, 2005 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. Quote Link to comment Share on other sites More sharing options...
danwinslow Posted November 2, 2005 Share Posted November 2, 2005 Beautiful, thanks for the work Bruce Quote Link to comment Share on other sites More sharing options...
ijor Posted November 2, 2005 Share Posted November 2, 2005 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. Quote Link to comment Share on other sites More sharing options...
Bruce Tomlin Posted November 2, 2005 Author Share Posted November 2, 2005 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) Quote Link to comment Share on other sites More sharing options...
Chrodegang Posted November 6, 2005 Share Posted November 6, 2005 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. Quote Link to comment Share on other sites More sharing options...
Chrodegang Posted November 6, 2005 Share Posted November 6, 2005 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! Quote Link to comment Share on other sites More sharing options...
ijor Posted November 7, 2005 Share Posted November 7, 2005 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? Quote Link to comment Share on other sites More sharing options...
Chrodegang Posted November 7, 2005 Share Posted November 7, 2005 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... Quote Link to comment Share on other sites More sharing options...
Curt Vendel Posted November 7, 2005 Share Posted November 7, 2005 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 Quote Link to comment Share on other sites More sharing options...
ijor Posted November 9, 2005 Share Posted November 9, 2005 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. Quote Link to comment Share on other sites More sharing options...
Curt Vendel Posted November 10, 2005 Share Posted November 10, 2005 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] Quote Link to comment Share on other sites More sharing options...
Kr0tki Posted April 23, 2012 Share Posted April 23, 2012 (edited) 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 April 23, 2012 by Kr0tki Quote Link to comment Share on other sites More sharing options...
Fox-1 / mnx Posted April 23, 2012 Share Posted April 23, 2012 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") Quote Link to comment Share on other sites More sharing options...
Kr0tki Posted April 24, 2012 Share Posted April 24, 2012 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). Quote Link to comment Share on other sites More sharing options...
Fox-1 / mnx Posted April 24, 2012 Share Posted April 24, 2012 Confusing. The Rev. 4 I have is dated 1987 (crc32: 1EAF4002) and is nowhere the same as the one you assembled. Quote Link to comment Share on other sites More sharing options...
Kr0tki Posted April 25, 2012 Share Posted April 25, 2012 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. Quote Link to comment Share on other sites More sharing options...
Fox-1 / mnx Posted April 25, 2012 Share Posted April 25, 2012 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 :-)) Quote Link to comment Share on other sites More sharing options...
Kr0tki Posted August 5, 2012 Share Posted August 5, 2012 (edited) I've just found out that I have botched my previous attempt to assemble OS rev. 5. I am attaching the corrected binary and removing the invalid one. cc1r4.rom.zip Edited August 5, 2012 by Kr0tki Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.