Jump to content


  • Content Count

  • Joined

  • Last visited

Community Reputation

63 Excellent

About 16kRAM

  • Rank
    Space Invader

Recent Profile Visitors

3,255 profile views
  1. If you follow the ANTIC podcast, you may recall an interview with Bruce May regarding a strategy game he created in 1982/83 called "Magic Castle". Mr. May submitted the game to several publishers for review but none agreed to take on the title. What remains of the game is available in scans of the BASIC listing, a print-out of a memory dump, design and programming notes, and a user manual. A link to the interview is found here: Scans of the artifacts are here: https://archive.org/details/magiccastle_atari/Magic Castle Compiled Code I've re-digitized the game assets as well as performed some light reverse-engineering of the binary data. I did have to inject some of my own code to transition from binary load of AUTORUN.SYS into launching the BASIC program. What I did was a kludge but it works. https://github.com/michaelsternberg/magic-castle My goal for the project was to re-implement the game exactly as found in the BASIC listing and binary data. With this in mind, the only thing I would consider a bug would be a transcription error between the scan and the implementation. I am aware of some minor issues but I've confirmed these are what's in the original data. I suspect the code listing and binary data might be from a version prior to the one submitted to the publishers. I say this because the user manual describes 3 levels of what is called the "Void". However the game data and programming has only 1 defined. Below is an ATR image of the game disk. Requires ATARI BASIC If playing on an emulator, you may need to press the CTRL key while using the arrow keys. (On a real ATARI, CTRL is not needed). Read the user manual as this is a strategy game. The rules and victory condition are not obvious. I hope this at least quells some of the curiosity listeners of the interview might have had. For sure, Bruce May created a charming game design and performed a heroic programming effort to turn it into something real. It's a shame that Mr. May was unable to find a publisher and it's a shame we've had to wait so many decades to see it. Magic Castle (1983)(May, Bruce)(US)[BASIC].atr
  2. Forgot to include a link: http://retrotinker.blogspot.com/2017/11/building-coco-games-with-inform.html
  3. This thread demonstrates it's possible to extract Infocom's Z3 interpreter from one of Infocom's Atari disk images and append your own Z3 story. Links at the bottom of my post in that thread may help point you in the right direction. After a pretty intensive month or so of development, I was able to do it with Grue Z3. (Though I had the advantage of starting with someone else's story). https://github.com/michaelsternberg/grue_z3 https://16kram.com/2017/07/20/an-apple-ii-build-chain-for-inform/(Apple II example - but the build instructions for Inform 6.15 and "hello world" example would apply to any 8-bit platform) John Linville's series of posts in Inform and the Coco show a little more sane method of injecting a story file into a disk image. I clumsily concatenated the interpreter, story file, and padded out the remainder of with 0s. Hope it helps.
  4. I recently chanced upon two issues of Ad Astra... - The Journal of the Atari Microcomputer Net Amateur Radio Operator Users' Group (volume 2 nos. 1 & 2) at a local used video game store. Before that, I was completely unaware of this publication but now I'm intrigued by the technical level of its articles. I've scanned my 2 copies and uploaded them to archive.org. Mr. Savetz has already archived volume 1 nos. 3 & 4 in 2017. For my scans, I created two versions of each: one that is strictly monochrome and one that is gray-scaled. Other versions were generated by archive.org including some with OCR. Inspect the archive.org Files section depending on your level of interest. Here are links to the 4 issues so far: v1n3: https://archive.org/details/AdAstraV1n3/ https://archive.org/download/AdAstraV1n3/Ad%20Astra%20v1n3.pdf v1n4: https://archive.org/details/AdAstraV1n4/ https://archive.org/download/AdAstraV1n4/Ad%20Astra%20v1n4.pdf v2n1: https://archive.org/details/AdAstraV2n1/ (mono): https://archive.org/download/AdAstraV2n1/Ad%20Astra%20v2n1%20mono.pdf (gray): https://archive.org/download/AdAstraV2n1/Ad%20Astra%20v2n1.pdf v2n2: https://archive.org/details/AdAstraV2n2/ (mono): https://archive.org/download/AdAstraV2n2/Ad%20Astra%20v2n2%20mono.pdf (gray): https://archive.org/download/AdAstraV2n2/Ad%20Astra%20v2n2.pdf Does anyone else own any other copies? It'd be cool to complete the run. - Michael S.
  5. As far as eking out another scan line per character to create a more readable font, the math may not support it. The PLATO terminal's character mode is 64x32 characters. With the 192 scan lines on the Atari, that leaves exactly 6 scan lines per character row - which is where it is now. ; .##..... ; #..#.... ; ####.... ; #..#.... ; #..#.... ; ........ I'm not a graphics expert so maybe there's some overscan tricks, but it'd need 32 additional scan lines to add one to each character row.
  6. Update: My attempt to quote tschak909 didn't work correctly. Posted by tschak909 on Mon Feb 19, 2018 8:17 PM Somebody took TLP and made an xex out of it, and it has a very odd bug, where just before it finishes drawing the password prompt, the cart somehow falls out into the weeds and jumps to warm start.... Not a bug. There is some copy-protection being employed here. At B863 exist 12 curious bytes. This is a bit of obfuscated code that is decrypted and copied from ROM to RAM in the subroutine at B84B. lda #<(LB863-1) ; Address of obfuscated code (well, minus 1) ldy #>(LB863-1) ldx #$0C ; Initialize counter to 12 jmp sub_b84b sub_b84b: sta off_EC ; Create pointer to obfuscated code sty off_EC+1 ; ldy #$00 ; Point to the first byte lda #$55 ; Decryption key 01010101 sec @LOOP: iny ; Increment pointer index rol a ; Rotate the key 01010101 -> 10101010 pha eor (off_EC),y ; Decrypt the byte using exclusive OR sta L3E33-1,y ; Save the byte to RAM pla dex ; Decrement counter bne :@LOOP ; Continue looping while counter not equal to 0 jmp L3E33 ; B860 4C 33 3E LB863: .byte $65,$AA,$12,$F7,$49,$D5,$25,$A9 .byte $19,$DC,$B2,$CD Here is the decrypted code. (Note: BFFC is in the ROM's address space and contains a 0). L3E33: DEC $BFFC ; Try to alter a ROM address from 0 to -1. LDA $BFFC ; Load "altered" value into CPU. BEQ $3E3E ; Still equal to 0? Yes, you're cool. RTS JMP COLDSV ; No? Stinking Pirates! Reboot RTS ; One de-protection solution is to change the 4C (JMP) at B860 to 60 (RTS) in the ROM file and re-convert it to an XEX. - Michael
  7. Hi Thom, I'm interested. While stepping through the disassembly, I often leave my connection open for a long time. I'd feel better doing that in a sandbox. Also I like the idea of worry-free filling up the pbnotes with Atari-specific threads. - Michael S.
  8. Thanks for the help. For sure, I am still finding this part confusing.
  9. https://archive.org/search.php?query=creator%3A%22Dorsett+Educational+Systems%22 Update: Sorry. I realize now you're asking about the Fractions package specifically.
  10. Here's a link to the code found in The Learning Phone. https://github.com/michaelsternberg/tlp/blob/50aada8a8fe7c7673f9b7feeb48bbd47c2647d04/tlp.asm#L3587
  11. While working on the disassembly, I had a hunch that the Microbits code might've been borrowed from MPP. Turns out the source code found between addresses A0AC to A1CF (Pages 7-9) of the Smart Term 4.1 cartridge were nearly copy/pasted into the Learning Phone. https://archive.org/details/MPPSmartTerminalv4.1
  12. I started working with the project's initial disassembly (tlp.asm) since it was the one used in the Makefile. My thinking was: since I am initially cleaning up data elements (character bitmaps and strings) my work could be used in either version. This is likely a moot point. I think you've decided to remove the dis6502 code in your pull request. - Michael
  13. I'll be happy help regarding a disassembly. I had the same thought about increasing the baud rate. Hopefully the Atari is able maintain its rendering chores at speeds higher than 1200.
  14. Kudos, Thom! I'm so impressed how quickly you and Steve solved the issues. Here's my personal hack.
  15. Thanks. I'm sure you're right. I connected by entering adtdcyberserv.org:5004 in the cart program, but it might've somehow found my 555-5555 tcpser option that points to 8005. But in the meantime, I was so intrigued by this screenshot of Moria from the PLATO ads. I'm so happy to see it in person.
  • Create New...