luckybuck Posted February 19, 2015 Share Posted February 19, 2015 (edited) Hello together! Would like to start a separate topic for MAC/65 out of a discussion within the ACTION! source code topic. As of 2015 to my knowledge there are 3 carts and 2 disk versions of MAC/65 available: - MAC/65 Macro Assembler (disk|cart) version, year : 2.00, 1982 (disk) version, year : 4.20, 1982 (disk) version, year : 1.02, 1984 (black cart?) version, year : 1.01, 1984 (black cart) version, year : 1.00, 1984 (orange cart) ; I have an orange cart with 1.01 myself author/company : Stephen D. Lawrow, Jim Dunion, OSS, Inc. available..... : 1982-1984 and up to 1994 package....... : assembler, editor, monitor, manual features...... : macros, source include Two pass 6502 assembler with integrated editor/monitor. Mac/65 is a direct descendant of the Atari Assembler/ Editor (via EASMD). Source: http://en.wikipedia.org/wiki/MAC/65 ACTION!, Basic XE, Basic XL and Mac/65 were sold to Tom Harker at ICD. From another topic concerning the OSS Newsletters: Fall 1986 page 13: " OSS Newsletter Fall 1986 -------------- --------- A: Version 1.01 and 1.02 are fixed to produce the proper code (PS - 1.02 is the latest version). For update information see the update info sheet. " Further: " Mike distributed one of the disk based versions of SD and disk based MAC/65 with DDT as freeware. " Source: https://groups.google.com/forum/#!msg/comp.sys.atari.8bit/wWxsqsmVcVI/z6W0y0U8eHEJ Does anyone have that freeware version, else one with DDT? Stephen is a really good soul: https://groups.google.com/forum/#!msg/comp.sys.atari.8bit/wWxsqsmVcVI/z6W0y0U8eHEJ https://groups.google.com/forum/#!msg/comp.sys.atari.8bit/TVwmswjj2zI/Z_8TwOXPIMsJ MD5 checksum of the 1.02 rom version, the real McCoy! : b560d57e36c9a4b95e6fd296937148d5 Same for the 1.02 car version : a67098f4476c95c778396f7cd269a24e Further: Type 3: OSS '034M' 16 KB cartridge There are two types of OSS cartridges. Both are 16 KB and occupy 8 KB of address space between $A000 and $BFFF. The cartridge memory is divided into 4 banks, 4 KB each. One bank ('main') is always mapped to $B000-$BFFF. The other 3 banks are mapped to $A000-$AFFF. The current bank is selected by accessing a byte in $D500-$D5FF. Only 4 lowest bits of address are significant. The '034M' scheme is the more complicated one. The main bank is D. An access to: · $D5x0 or $D5x1 selects bank A. · $D5x3 or $D5x7 selects bank B. · $D5x4 or $D5x5 selects bank C. · $D5x2 or $D5x6 is not useful. It disables ROM (there're $FF bytes in $A000-$AFFF). · $D5x8-$D5xF disables whole cartridge (enables computer's memory in address space between $A000 and $BFFF). Type 15: OSS 'M091' 16 KB cartridge This is the simpler one of OSS schemes. It uses only A0 and A3 address lines: · A3=0, A0=0 - $A000-$AFFF: bank B, $B000-$BFFF: bank A · A3=0, A0=1 - $A000-$AFFF: bank D, $B000-$BFFF: bank A · A3=1, A0=0 - disable cartridge · A3=1, A0=1 - $A000-$AFFF: bank C, $B000-$BFFF: bank A Bugs: There is a bug in the MAC/65 cartridge which gives an error on a JSR or JMP to a zero page address. A temporary fix would be to use macros in the source code. As examples, try these: 1000 .MACRO @JSR 1010 .BYTE $20 1020 .WORD %1 1030 .ENDM 1040 .MACRO @JMP 1050 .BYTE $4C 1060 .WORD %1 1070 .ENDM To invoke the macro, type @JSR (or @JMP) in place of the JSR or JMP instruction, and the proper hex code will be generated. From OSS newsletter (summer 1983): Comparision of 1.01 and 1.02 carts: 00000009: CA CC 0000000E: 94 92 00000022: 8D BD 00000023: 00 4E 00000024: D5 03 00000025: A6 C9 00000026: 08 04 00000027: F0 D0 00000028: 07 02 00000029: A5 A9 0000002A: 83 02 0000002B: D0 8D 0000002C: 03 8F 0000002D: 4C 04 0000002E: D5 60 0000002F: BE 00 00000030: D8 8D 00000031: 58 00 00000032: A2 D5 00000033: FF A6 00000034: 9A 08 00000035: 86 F0 00000036: 11 07 00000037: E8 A5 00000038: 86 83 00000039: A7 D0 0000003A: 86 03 0000003B: A6 4C 0000003C: 86 D5 0000003D: A2 BE 0000003E: 20 D8 0000003F: BF 58 00000040: B7 A2 00000041: A2 FF 00000042: 15 9A 00000044: BF EE 00000045: B7 AF 000006B2: A9 A0 000006B4: 9D B9 000006B5: 4E 8D 000006B6: 03 04 000006B7: AD 9D 000006B8: 8D 4E 000006B9: 04 03 000006BA: 9D CA 000006BB: 4C 88 000006BC: 03 10 000006BD: AD F6 000006BE: 8E E8 000006BF: 04 E8 000006C0: 9D E8 000006C1: 4D EA 000006C2: 03 EA 00000BBF: 4D 22 00000BC0: B6 B0 00000FFA: 22 30 00001014: B1 B2 00001016: 63 43 00001FEE: 00 86 00001FEF: 00 11 00001FF0: 00 E8 00001FF1: 00 86 00001FF2: 00 A2 00001FF3: 00 86 00001FF4: 00 A6 00001FF5: 00 86 00001FF6: 00 A7 00001FF7: 00 20 00001FF8: 00 BF 00001FF9: 00 B7 00001FFA: 00 A2 00001FFB: 00 15 00001FFC: 00 4C 00001FFD: 00 BF 00001FFE: 00 B7 000022C4: AA F0 000022C5: BB AF 00002FF0: 00 20 00002FF1: 00 AA 00002FF2: 00 BB 00002FF3: 00 AD 00002FF4: 00 8F 00002FF5: 00 04 00002FF6: 00 D0 00002FF7: 00 05 00002FF8: 00 A9 00002FF9: 00 02 00002FFA: 00 8D 00002FFB: 00 8D 00002FFC: 00 04 00002FFD: 00 60 ROM-Images: Atari 400 800 XL XE MAC/65 : scans, dump, download, screenshots, ads, videos, catalog, instructions, roms ATR-Image: MAC-65 2.00 and 4.20 with Bug-65 2.0 and DOS XL 2.30.atr Images from the different versions: Hope, that there is someone out there in the galaxy who can help to make this the final chapter? Edited February 19, 2015 by luckybuck 3 Quote Link to comment Share on other sites More sharing options...
Alfred Posted February 19, 2015 Share Posted February 19, 2015 I don't consider the forward referencing issue of zero page locations problem in Mac/65 a bug. It's a deliberate flaw in the design. He's chosen to go for speed rather than correctness, and I'd say he was right. It's a pretty minor issue. Quote Link to comment Share on other sites More sharing options...
luckybuck Posted February 19, 2015 Author Share Posted February 19, 2015 I have never said anything else... Quote Link to comment Share on other sites More sharing options...
AtariGeezer Posted February 19, 2015 Share Posted February 19, 2015 > version, year : 1.02, 1984 (black cart?) Yep most definitely, Black Cart with Yellow Label (I'm the guy who provided the dump)... Quote Link to comment Share on other sites More sharing options...
luckybuck Posted February 19, 2015 Author Share Posted February 19, 2015 (edited) Hey cool! Because that brought me in a lot of trouble. Now, it is cleared. So, you have an original cart of the 1.02 version? If so, why then the checksums are different? Edited February 19, 2015 by luckybuck Quote Link to comment Share on other sites More sharing options...
AtariGeezer Posted February 19, 2015 Share Posted February 19, 2015 > So, you have an original cart of the 1.02 version? Yes, I have an original cart of a 1.02 version... >If so, why then the checksums are different? You got me, why would they be different? Perhaps a 1.02a and 1.02b??? Quote Link to comment Share on other sites More sharing options...
luckybuck Posted February 19, 2015 Author Share Posted February 19, 2015 Well, there is a Jedi who can solve this, but up to know, he is busy with the ACTION! source code. O. k. let's freeze here for a time, will try to compare the both 1.02 versions and return here again. Cool, we can get it now fixed. :-))) Quote Link to comment Share on other sites More sharing options...
AtariGeezer Posted February 19, 2015 Share Posted February 19, 2015 Hey cool! Because that brought me in a lot of trouble. Now, it is cleared. So, you have an original cart of the 1.02 version? If so, why then the checksums are different? Checksums of 1.01 and 1.02 ROMs or what? Quote Link to comment Share on other sites More sharing options...
+JAC! Posted February 19, 2015 Share Posted February 19, 2015 (edited) Note: the 2 "ROMs" in the linked downloads are uncomparable in their given state. On is a type 15 (new OSS) CAR (even though suffix is .rom), the other a type 3 (old OSS) ROM. MD5 over CAR is nonsense here. Comparing different dump types with MD5 also. Edited February 19, 2015 by JAC! 1 Quote Link to comment Share on other sites More sharing options...
luckybuck Posted February 19, 2015 Author Share Posted February 19, 2015 (edited) Again, JAC! is right and I am wrong again. Have made the check: AtariGeezer: 034M-typ Mine: M091-typ Therefore, the post from AtariGeezer is genuine and must be taken as a real McCoy rom without any doubt. Thank you AtariGeezer and sorry for circumstances. My fault was, that I have assumed, that all carts are of the same type, because they all were from 1984. But obviously, OSS changed the cart type in between that year. Further: the disk versions are 2.00 and 4.20 (both without DDT) from 1982(!). Therefore, OSS had changed the numbering over the years 1982 to 1984. Strange, but true. Edited February 19, 2015 by luckybuck Quote Link to comment Share on other sites More sharing options...
+JAC! Posted February 20, 2015 Share Posted February 20, 2015 Here's the analysis. V1.02 is a patched 1.01 some quite some code fragments moved around to actually insert just a few additional lines.These additional lines change the default values of $0483/$0484 and handling of $48f. Maybe somebody with MAC 65 experience knows what these locations are used for.Rest of the differences is the result of using a two chip cart. MAC 65-Comparison.pdf 3 Quote Link to comment Share on other sites More sharing options...
luckybuck Posted February 20, 2015 Author Share Posted February 20, 2015 Great JAC! Tell us, what should we do without you? One mystery after another is going by, thank you so much JAC! Quote Link to comment Share on other sites More sharing options...
Alfred Posted February 20, 2015 Share Posted February 20, 2015 $0483/4 is changing the screen colours. Not sure about the $048D/F, looks like an attempt to correct the NOTE/POINT issue. Quote Link to comment Share on other sites More sharing options...
+JAC! Posted February 20, 2015 Share Posted February 20, 2015 >the NOTE/POINT issue.Good candidates for requiring ICAX5. Do you have a description of the mentioned issue? Quote Link to comment Share on other sites More sharing options...
luckybuck Posted February 20, 2015 Author Share Posted February 20, 2015 To my knowledge, just the color is different, from Atari blue to kingblue. Mac/65 was the "King-Assembler", therefore that matches. Another change was a very rare bug in the compiler, where "normal" users do not came across with... Quote Link to comment Share on other sites More sharing options...
Alfred Posted February 21, 2015 Share Posted February 21, 2015 >the NOTE/POINT issue. Good candidates for requiring ICAX5. Do you have a description of the mentioned issue? Mac/65 won't assemble from disk using SpartaDos. Quote Link to comment Share on other sites More sharing options...
Alfred Posted February 21, 2015 Share Posted February 21, 2015 Ok, looking over the code the changes in 1.02 are in fact an attempt to fix the NOTE/POINT issue when you use SpartaDos. MAC/65 saves the starting point of the file when you assemble from disk so that it can use POINT at the start of pass 2 to rewind the file to the beginning rather than closing and opening the file. The problem is that under SpartaDos Mac/65 stores the value backwards for the POINT operation. The 1.02 fix is also wrong, storing the pointer value in reverse order. Quote Link to comment Share on other sites More sharing options...
luckybuck Posted February 23, 2015 Author Share Posted February 23, 2015 Quite easy Alfred, you have the source code of MAC/65, all the others here can take a look at this and will fix it. The remaining problem is just how to convince Stephen? Quote Link to comment Share on other sites More sharing options...
Alfred Posted February 23, 2015 Share Posted February 23, 2015 I don't think convincing him is the problem; finding him is the issue. 2 Quote Link to comment Share on other sites More sharing options...
luckybuck Posted February 23, 2015 Author Share Posted February 23, 2015 O. k., then from here on it is my job. Will return as soon as possible. Good to hear. :-) 1 Quote Link to comment Share on other sites More sharing options...
Wrathchild Posted August 31, 2015 Share Posted August 31, 2015 Has this been concluded? Was a fix made for the SpartaDos POINT issue? Quote Link to comment Share on other sites More sharing options...
luckybuck Posted August 31, 2015 Author Share Posted August 31, 2015 Not now to my knowledge. But we have a trace to Stephen. Please stand by. Quote Link to comment Share on other sites More sharing options...
+therealbountybob Posted December 5, 2015 Share Posted December 5, 2015 I use the v1.0 Cart but sometimes check things with the disk version (2.0). Is there anything particularly different about the disk versions? I use a 130XE and the MAC Cart nicely lets you access DOS 2.5 and return using B "run cartridge". Would be nice if there was a file version that worked with the RAMDisk like this too. Quote Link to comment Share on other sites More sharing options...
1050 Posted December 5, 2015 Share Posted December 5, 2015 http://www.mixinc.net/atari/mac65.htm#topofpage This page outlines the differences between disk and cart flavors of Mac/65. Cart info is in yellow. I used to do a 'M' Run at address from DOS to get back into disk based Mac/65 quite often, but it's almost as fast to load it anew from the ramdisk too. Long ago forgot the address for that early version, but one can find it by looking for the address loaded to 02E0,02E1 in the file version. IIRC my early version had a problem when a comment was on the same line as a label but fuzzy memories like this can not be trusted at all. There are higher versions of both disk and cart... 1 Quote Link to comment Share on other sites More sharing options...
Savetz Posted March 12, 2016 Share Posted March 12, 2016 Here's my interview with the man who created Mac/65: Stephen Lawrow, Mac/65 assembler http://ataripodcast.libsyn.com/antic-interview-144-stephen-lawrow-mac65-assembler Stephen Lawrow created the Mac/65 assembler, which was published by Optimized Systems Software. Stephen became an employee of OSS, where he also worked on the company’s enhanced BASIC products, BASIC XL and BASIC XE. This interview took place on November 1, 2015. In this interview we discuss Bill Wilkinson of OSS, whom I previously interviewed. Teaser quotes: “I got so frustrated, I couldn’t wait till I got Mac/65 mature enough where it could start assembling itself. So that’s why it has a lot of compatibilities syntactically with the Atari Assembler/Editor.” “A lot of us were not formally educated in software development. Because it just didn’t exist in the colleges at the time ... Algorithms, searching, and things like that — all that stuff happened after that.” 4 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.