Emulating and Enhancing Real Atari 8-Bit Hardware Using Linux

Emulating and Enhancing Real Atari 8-Bit Hardware Using Linux

Atari 8-bits & Linux EmulatingEmulating andand enhancingenhancing realreal AtariAtari 8-bit8-bit hardwarehardware usingusing LinuxLinux BillBill KendrickKendrick LinuxLinux Users'Users' GroupGroup ofof DavisDavis AugustAugust 19,19, 20132013 What were they? Overview ● 1979 – 1992 ● Similarities to Atari VCS (2600) before it, and Commodore Amiga after it (Jay Miner involved in all three) ● 6502 8-bit CPU @ 1.79MHz ● 64KB RAM (expandable to 4MB), 10KB OS ROM ● Cartridge slot (lots of games!) ● Serial I/O with daisy-chain support (Later models included Parallel Bus Interface) ● Cassette, floppy disk ($) and hard drive ($$$) storage What were they? Gfx & Sfx ● 4-channel mono sound (8-channel stereo hacks exists) ● Graphics reat graphics (for those days) – Various bitmapped & text modes with user-definable character sets (fonts) ● 320x192 high resolution monochrome ● 40x24 thru 160x192 4-color bitmap modes ● 40x24 mono and multicolor character modes ● 20x24, 20x12 color, but not-multicolor char ● Coarse & fine scrolling ● Graphics chip has Direct Memory Access; can be changed on a per-scanline basis (e.g., part of the screen scrolls through a larger area, the rest stays static) ● Modes can be set on a per-scanline basis (Display List) (e.g., graphics with a text 'window' at the bottom) ● Per-scanline interrupts can be set (Display List Interrupts) (e.g., change color palette, change font, reposition sprite, change scroll values, etc.) – “Player/Missile Graphics” (aka sprites); overlay, underlay, mix ● Hardware collision detection – 128 color palette; 256 possible – What were they? Photos! What were they used for? ● Games ● Education ● Home office ● Programming ● Games Emulating on Linux ● Atari800 - http://atari800.sourceforge.net/ ● MESS - http://www.mess.org/ ● JavaScript MESS (beta) http://jsmess.textfiles.com/messbeta.html?module=a800 ● Windows-based emulators (under virtualization) might work too! – Altirra - http://www.virtualdub.org/altirra.html – Atari800Win PLus - http://atariarea.krap.pl/PLus/index_us.htm ● Many more... Getting OS ROM Before Atari Corp. reverse-merged with JTS, it gave Darek Mihocka (Emulators, Inc.) permission to include Atari OS and BASIC ROMs with his “PC XFormer” emulator for MSDOS. They can be retrieved from a demo version of PCXF that was made available. e.g.: http://sourceforge.net/projects/atari800/files/ROM/ There were other OS ROMs back in the day, and new alternatives today, as well... Getting Software ● Warning: Much software is available for download, but often not legitimately. ● However, tons of public domain (and these days, even open source) software is available, with more released every year! ● Try, for example: – http://www.atarimania.com/atari-400-800-xl-xe.html – http://atariage.com/forums/forum/12-atari-8-bit-computers/ Getting Information ● Atari Archives - http://www.atariarchives.org/ – Contents of classic books, posted with permission from copyright holders ● Classic Computer Magazine Archive - http://www.atarimagazines.com/ – Ditto, but for magazines (sister site); more than Atari, now ● AtariAge - http://atariage.com/ – News & forums (all Atari, not just 8-bit) ● Tip of the iceberg... so much more, I don't know where to begin Real Atari + Linux #1 – SIO2SD ● External device with an SD card reader, Atari SIO cable, small back-lit display, and navigation/control buttons ● The Atari sees it as a series of floppy disks (that is, the Atari doesn't need to be modified) ● Use Linux (or Win or Mac) to load up SD card with disk images (e.g., “.atr”) or executables (that you'd normall load from a DOS on the Atari; SIO2SD will provide bootstrap!) ● I bought an SIO2SD for $70 from Poland Real Atari + Linux #1 – SIO2USB ● External device with USB connection, Atari SIO cable, small back-lit display, and navigation/control buttons ● The Atari sees it as a series of floppy disks ● Also has built-in realtime clock the Atari can use ● Similar to SIO2SD, but uses any USB mass storage device Real Atari + Linux #2 – SIO2PC ● Connects Atari to PC via serial or USB ● The Atari sees PC as a series of floppy disks, and can also show up as printer, RS232 (e.g. modem) ● (SIO2SD & SIO2USB are basically stand-alone embedded solutions based on this older concept; it dates back to earl 1990s, the MSDOS days!) ● Use with: – atarisio (text mode for Linux) – AspeQt (GUI for Linux/Windows) – SIO2PC (text mode for MSDOS) – APE (GUI for Windows) (supports backing up and emulating copy-protected Atari disks, with ProSystem cable) Real Atari + Linux #3 – MaxFlash ● Cartridge with flash memory ● Load with cartridge ROM dumps, or disk images or executables; doesn't work over SIO, so some games/apps won't be compatible ● Cart plugs into USB widget, or just use the Atari to program it directly! ● Use USB widget with a Perl command-line tool (Linux), or GUI tool (Windows) http://www.atarimax.com/flashcart/documentation/ Real Atari + Internet ● Atari → SIO2PC → Linux, emulating RS232 ● Atari → real RS232 device (e.g., Atari 850, P:R:Conn. ($)) → RS232-to-ethernet (e.g., Lantronix UDS-10 ($$$)) ● There are BBSes running on Atari 8-bits that you can telnet into over the Internet! Real Atari + Internet, no middleman ● Dragon Cartridge - http://www.atari8ethernet.com/ Cross-assembly on Linux ● ATasm - http://atari.miribilist.com/atasm/ “a mostly Mac/65 compatible cross-assembler” ● xasm - http://atariarea.krap.pl/x-asm/ originally written as a Quick Assembler replacement ● MADS - http://mads.atari8.info/ multi-pass crossassembler for 6502 & 65816 processors ● ca65 - http://oliverschmidt.github.io/cc65/doc/ca65.html The “cc65” C cross compiler's own cross-assembler (can be used on its own) ● Undoubtedly a number of others! ● Also check out 6502 Source Code Repository - http://www.6502.org/source/ Cross-compiling on Linux - C ● cc65 – Complete cross development package macro assembler, C compiler, linker, librarian & other tools – Originally based on cc65 for the Atari itself – Was: http://www.cc65.org/, but no longer maintained as of March 2013! – Now: http://oliverschmidt.github.io/cc65/ Cross-compiling on Linux – C - Example /* hiworld.c */ CC65_HOME=/usr/local/lib/cc65 #include <stdio.h> all: hiworld.xex #include <unistd.h> clean: int main(void) { -rm hiworld.xex -rm hiworld.o int i; hiworld.xex: hiworld.c printf("Hello, world.\n"); cl65 -t atari hiworld.c mv hiworld hiworld.xex sleep(2); run: hiworld.xex for (i = 0; i < 1000; i++) { atari800 -nobasic -run hiworld.xex printf("."); } return(0); } Cross-compiling on Linux – Action! ● Action! was an integrated editor, compiler, and debugger on a cartridge. High-level code, but still very fast. Syntax similar to ALGOL 68. ● Projects to create Action! cross compilers: – Effectus - http://gury.atari8.info/effectus/ Uses MADS assembler – Another: http://www.noniandjim.com/Jim/atari/Action_Compiler.html Some older new games... ● Gem Drop (1998) Action puzzle, based on “Magical Drop III” arcade game. (Written by your's truly in Action!; ported to C + libSDL for Linux & other modern platforms, as “Gem Drop X”) http://www.newbreedsoftware.com/gemdrop/ ● Castle Crisis (2003) Based on “Warlords” arcade game. (Basically, multiplayer “Breakout”) http://www.atarimania.com/game-atari-400-800-xl-xe-castle-crisis_19788.html ● Beef Drop (2004) Based on “Burger Time” arcade game. http://www.atarimania.com/game-atari-400-800-xl-xe-beef-drop_12157.html Some recent new games... ● His Dark Majesty (2010) Turn-based strategy. (Cross-compiled C!) http://hdm.atari.pl/ ● Tempest Xtreem (2008) Updated version of Tempest arcade game, that plays more like Tempest 2000 Atari Jaguar game http://members.tcq.net/video61/tempest1.html ● Crownland (2007) Scrolling jump-and-run game ● Yoomp! (2007) 3D action puzzle http://yoomp.atari.pl/ Newest new games... ● Pac-Man Arcade (2012) Conversion of 1980s “Ms. Pac-Man” by Atari to a more arcade-perfect version of original “Pac-Man” than the 1980s “Pac-Man” by Atari ● Ridiculous Reality (2012) Puzzle jump-and-run game based on mobile game “Continuity” http://matosimi.websupport.sk/atari/2012/10/ridiculous-reali ty/ ● Asteroids emulator (2012) Original arcade game was 6502, so this emulates the rest of the hardware on Atari 8-bit http://web.utanet.at/nkehrer/ast800xl.html ● Line Runner (2012) Version of a popular Android/iPhone game http://gr8.atari.pl/joomla/ New Atari Hardware (not Linux-related, but interesting) ● Incognito board Turn an Atari 800 into an XL-compatible, and then some! (64KB (vs 48K) accessible RAM, 1MB installed; Parallel Bus Interface; CompactFlash storage; SpartaDosX; Real Time Clock) http://spiflash.org/index.php/block/29.html ● VBXE FPGA-based video upgrade http://spiflash.org/block/15.html ● SIDE2 Cartridge providing Compact Flash drive, SpartaDosX, Real Time Clock http://spiflash.org/block/16.html Conclusion ● Atari 8-bits have a 35 year history ● Tons of activity in the early days, then a lull, and now a resurgence – FPGAs, cheap manufacturing, fast modern PCs – Internet: forums, chat rooms, YouTube, archives ● Easy to dip your toes in (play some Pac-Man) ● Going deeper, hardware & software choices abound! – Too much for a mini-talk; most beyond my experience level, anyway .

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    24 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us