Jump to content
IGNORED

MAC/65 - the final chapter


Recommended Posts

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):
post-32599-0-23759800-1424307965_thumb.jpg
post-32599-0-56867600-1424307970_thumb.jpg
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:

 

ATR-Image:
Images from the different versions:
post-32599-0-64707300-1424307913_thumb.jpg
post-32599-0-78794000-1424307918_thumb.jpg
post-32599-0-77009400-1424307923_thumb.jpg
post-32599-0-10971000-1424307929_thumb.jpg
post-32599-0-61638100-1424307953_thumb.jpg
post-32599-0-42545000-1424307958_thumb.jpg
Hope, that there is someone out there in the galaxy who can help to make this the final chapter? ;-)
Edited by luckybuck
  • Like 3
Link to comment
Share on other sites

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 by JAC!
  • Like 1
Link to comment
Share on other sites

Again, JAC! is right and I am wrong again.

 

Have made the check:

 

AtariGeezer: 034M-typ

Mine: M091-typ

 

post-32599-0-09748800-1424365143_thumb.jpg

 

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. :-o

 

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 by luckybuck
Link to comment
Share on other sites

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

  • Like 3
Link to comment
Share on other sites

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.

Link to comment
Share on other sites

  • 6 months later...
  • 3 months later...

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.

Link to comment
Share on other sites

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...

  • Like 1
Link to comment
Share on other sites

  • 3 months later...

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.”
  • Like 4
Link to comment
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.
Note: Your post will require moderator approval before it will be visible.

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...