{"id":3088,"date":"2018-03-14T22:56:20","date_gmt":"2018-03-14T22:56:20","guid":{"rendered":"http:\/\/avitech.com.au\/?page_id=3088"},"modified":"2018-03-17T21:01:37","modified_gmt":"2018-03-17T21:01:37","slug":"super-80-emulator","status":"publish","type":"page","link":"https:\/\/avitech.com.au\/?page_id=3088","title":{"rendered":"Super 80 &#8211; Emulator"},"content":{"rendered":"<p>Back in about 2006, a Super 80 emulator was added to MESS.<\/p>\n<p>Until now (March 2017), I&#8217;ve never used MESS.  So I have a small learning curve in front of me.<\/p>\n<p>It appears that in 2015, MESS and MAME were merged.  The current version of MAME is 0.195 and the 64-bit Windows version can be downloaded from here -> <a href=\"https:\/\/github.com\/mamedev\/mame\/releases\/download\/mame0195\/mame0195b_64bit.exe\" rel=\"noopener\" target=\"_blank\">https:\/\/github.com\/mamedev\/mame\/releases\/download\/mame0195\/mame0195b_64bit.exe<\/a>.<\/p>\n<p>It seems that since MESS and MAME have merged, the MESS website (www.mess.org) no longer has anything to do with MESS.<\/p>\n<p>I have also found this webpage which has some information about the computers that are emulated in MESS -> <a href=\"http:\/\/www.emulator-zone.com\/doc.php\/misc\/mess.html\" rel=\"noopener\" target=\"_blank\">http:\/\/www.emulator-zone.com\/doc.php\/misc\/mess.html<\/a>.<\/p>\n<p>At the bottom of that webpage there is a <a href=\"http:\/\/www.emulator-zone.com\/download.php\/emulators\/misc\/mess\/mess0161b_64bit.exe\" rel=\"noopener\" target=\"_blank\">link<\/a> to the 64-bit Windows version 0.161 of MESS. This is the version of MESS that I am currently experimenting with.<\/p>\n<p>I found the following page with information about the Super 80 Emulator -> <a href=\"http:\/\/www.progettoemma.net\/mess\/system.php?machine=super80\" rel=\"noopener\" target=\"_blank\">http:\/\/www.progettoemma.net\/mess\/system.php?machine=super80<\/a>. Note there are about 5 emulators. This link is for the Monitor V1.2 version.<\/p>\n<p>When I run MESS from the command line (using the command &#8220;mess64 super 80&#8221;), I get the following output at the console:<\/p>\n<pre>C:\\Users\\Malcolm\\Downloads\\mess0161>mess64 super80\r\nsuper80.u26 NOT FOUND (tried in super80 super80)\r\nsuper80.u33 NOT FOUND (tried in super80 super80)\r\nsuper80.u42 NOT FOUND (tried in super80 super80)\r\nsuper80.u27 NOT FOUND (tried in super80 super80)\r\nFATALERROR: Required files are missing, the system cannot be run.\r\n\r\nC:\\Users\\Malcolm\\Downloads\\mess0161><\/pre>\n<p>The above output is helpful &#8211; it tells us which ROM files the emulator is looking for. They need to be in a ZIP file called &#8220;super80.zip&#8221;, in the &#8220;roms&#8221; subdirectory.  Three of these ROMs are 2532 EPROMs (U26, U33 &#038; U42).  U27 is the 2513 Character Generator ROM.<\/p>\n<p>The ROMs are available from the Planetemu website.  Search for &#8220;Super-80&#8221; on this page -> <a href=\"http:\/\/www.planetemu.net\/roms\/mame-roms?page=S\" rel=\"noopener\" target=\"_blank\">http:\/\/www.planetemu.net\/roms\/mame-roms?page=S<\/a>.<\/p>\n<p>Once I copied the ZIP file across, I was able to run the Super 80 emulator.<\/p>\n<p>The current source-code file for the emulator is here -> <a href=\"https:\/\/github.com\/mamedev\/mame\/blob\/master\/src\/mame\/drivers\/super80.cpp\" rel=\"noopener\" target=\"_blank\">https:\/\/github.com\/mamedev\/mame\/blob\/master\/src\/mame\/drivers\/super80.cpp<\/a>.<\/p>\n<h4>CASSOUT notes<\/h4>\n<p>L1 and L2 BIN files seem to load OK into &#8220;super80m&#8221;, but not into &#8220;super80&#8221;.  I suspect this is because either of ROM differences (ie the memory load address for BASIC programs in the two ROM variants is probably different &#8211; and perhaps the format in which BASIC programs is tokenised is also different).<\/p>\n<p>So I started to look at what was happening in MESS 0.161 using the -debug option.<\/p>\n<p>If I start &#8220;super80&#8221; (Monitor V1.2 and Basic V1.2B), set a breakpoint at C215 (CASSOUT), RUN, and enter BASIC with the command GD000, I get the following:<\/p>\n<p>With no program in memory, and with BASIC running (at the asterisk prompt), I see the following in low memory:<\/p>\n<pre>\r\n04C0  00 00 C0 53 53 53 53 53 53 53 00 00 00 00 00 00  ...sssssss......\r\n04D0  00 00 08 02 06 00 00 00 00 00 48 00 00 00 00 00  ..........H.....\r\n04E0  00 00 12 05 13 05 00 01 70 04 14 05 00 00 FE BA  ........p.......\r\n04F0  3E 46 20 2A 00 08 01 00 00 00 00 00 00 00 FE B9  >F *............\r\n0500  00 00 00 00 00 00 00 70 04 FE BB 00 00 00 00 00  .......p........\r\n0510  00 C9 FF FF 00 00 00 00 00 00 00 00 00 00 00 00  ................\r\n0520  [All zeroes]<\/pre>\n<p>Still with no program in memory, if I execute the SAVE command, I see the following: PC=C215, HL=04D2, DE=0044, IX=BDFF, SP=BBF8. In low memory, I see the following:<\/p>\n<pre>\r\n04C0  00 00 C0 53 53 53 53 53 53 53 00 00 00 00 00 00  ...sssssss......\r\n04D0  00 00 08 02 06 00 00 2D 04 00 48 00 00 00 00 00  .......-..H.....\r\n04E0  00 00 12 05 13 05 00 01 70 04 14 05 00 00 FE BA  ........p.......\r\n04F0  3E 46 20 2A 00 08 01 00 00 00 00 00 00 00 FE B9  >F *............\r\n0500  00 00 00 00 00 00 00 70 04 FE BB 00 00 00 00 00  .......p........\r\n0510  00 C9 FF FF 00 00 00 00 00 00 00 00 00 00 00 00  ................\r\n0520  [All zeroes]<\/pre>\n<p>Note that only two bytes in the 04D0 line changed.<\/p>\n<p>If I do a &#8220;Hard Reset&#8221;, enter BASIC, and type the line 10 PRINT &#8220;HELLO&#8221; (and don&#8217;t execute the SAVE command), I see the following:<\/p>\n<pre>\r\n04C0  00 00 C0 42 42 42 42 42 42 42 00 00 00 00 00 00  ...BBBBBBB......\r\n04D0  00 00 08 02 06 2A 04 39 04 0B 48 00 00 00 00 00  .....*.9..H.....\r\n04E0  00 00 12 05 21 05 00 01 70 04 22 05 00 00 FE BA  ....!...p.\".....\r\n04F0  3E 46 20 2A 00 08 01 00 00 00 00 00 00 00 FE B9  >F *............\r\n0500  00 00 00 00 00 00 00 70 04 FE BB 00 00 00 00 00  .......p........\r\n0510  00 C9 00 0A 0C 20 83 20 22 48 45 4C 4C 4F 22 0D  ..... . \"HELLO\".\r\n0520  FF FF [Then all zeroes]<\/pre>\n<p>if I now execute the SAVE command, I see the following: PC=C215, HL=04D2, DE=0052, IX=BDFF, SP=BBF8. In low memory, I see the following:<\/p>\n<pre>\r\n04C0  00 00 C0 42 42 42 42 42 42 42 00 00 00 00 00 00  ...BBBBBBB......\r\n04D0  00 00 08 02 06 2A 04 2D 04 0B 48 00 00 00 00 00  .....*.-..H.....\r\n04E0  00 00 12 05 21 05 00 01 70 04 22 05 00 00 FE BA  ....!...p.\".....\r\n04F0  3E 46 20 2A 00 08 01 00 00 00 00 00 00 00 FE B9  >F *............\r\n0500  00 00 00 00 00 00 00 70 04 FE BB 00 00 00 00 00  .......p........\r\n0510  00 C9 00 0A 0C 20 83 20 22 48 45 4C 4C 4F 22 0D  ..... . \"HELLO\".\r\n0520  FF FF [Then all zeroes]<\/pre>\n<p>Note the only change that occurred was that byte 04D7 changed from 39 to 2D.<\/p>\n<p>If I now run the &#8220;super80m&#8221; emulator with the -debug option, I get the following sign-on message:<\/p>\n<p>    Super-80  8R0<br \/>\n    ><\/p>\n<p>And when I start BASIC with GD000:<\/p>\n<p>    SUPERSOFT BASIC V3.8<br \/>\n    Created on 1-9-1987<br \/>\n    READY<br \/>\n    *<\/p>\n<p>Low memory looks similar at this point (to what the &#8220;super80&#8221; emulator has, but there are some differences.<\/p>\n<p>Looking at the start of the &#8220;super80m&#8221; ROM at C016 (the jump table entry for CASSOUT), we can see that the new vector is C1E5. When the same 1-line program is entered, and a breakpoint is set at that address, we get the following register values: PC=C1E5, HL=04D2, DE=004F, IX=04FB, SP=BD8A. Clearly register usage for IX and SP is very different. Note that 3 less bytes were saved (compared to when using the &#8220;super80&#8221; emulator).<\/p>\n<h4>BIN Image results<\/h4>\n<p>012L1.BIN (Horse Racing): Loads and runs OK under super80m.<br \/>\n028L1.BIN (Dungeon Dilemna): Gives a SN error in line 1200 when run<br \/>\n404R2J.BIN (Invaders): Works, but too fast. There are multiple vrsions for other CG&#8217;s<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Back in about 2006, a Super 80 emulator was added to MESS. Until now (March 2017), I&#8217;ve never used MESS. So I have a small learning curve in front of me. It appears that in 2015, MESS and MAME were merged. The current version of MAME is 0.195 and the 64-bit Windows version can be ..<\/p>\n<div class=\"clear-fix\"><\/div>\n<p><a href=\"https:\/\/avitech.com.au\/?page_id=3088\" title=\"read more...\">Read more<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-3088","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/P7xTsk-NO","jetpack-related-posts":[{"id":3106,"url":"https:\/\/avitech.com.au\/?page_id=3106","url_meta":{"origin":3088,"position":0},"title":"Super 80 &#8211; Cassette Software","author":"malcolm","date":"19-March-2018","format":false,"excerpt":"On this page you will find some cassette-based software for the Super 80. Most of these programs came from super80_software.zip on Justin Kirk's website. That ZIP file only has software in MESS's \"quickload\" .BIN format. Some manipulation was required in the MESS Super 80 emulators to produce these WAV files.\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2018\/03\/0001.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":12665,"url":"https:\/\/avitech.com.au\/?page_id=12665","url_meta":{"origin":3088,"position":1},"title":"George Wiley&#8217;s RK05 Emulator","author":"malcolm","date":"25-June-2025","format":false,"excerpt":"This page is a collection of notes made while I was getting familiar with this emulator at the RK8E workshop session in late June 2025 in the U.S. and subsequently at home in July\/August 2025 in Melbourne. Getting the images for the MicroSD card The V1 emulator uses \".rk05\" files.\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3713,"url":"https:\/\/avitech.com.au\/?page_id=3713","url_meta":{"origin":3088,"position":2},"title":"DEC PDP-11\/23 in BA11-N Chassis","author":"malcolm","date":"29-November-2019","format":false,"excerpt":"Backplane Configuration The table below shows how the H9273-A backplane is currently populated. A B C D M8186 (11\/23 Processor) Empty M8047 (MXV11-A) Empty M8044 (64KB RAM) Empty M8013 (RLV11) M8014 (RLV11) Empty Empty Empty Current configuration This is a basic 11\/23 capable of booting RT-11 V5.3 from a TU58\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2019\/11\/IMG_20191129_220312.jpg?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2019\/11\/IMG_20191129_220312.jpg?resize=350%2C200 1x, https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2019\/11\/IMG_20191129_220312.jpg?resize=525%2C300 1.5x, https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2019\/11\/IMG_20191129_220312.jpg?resize=700%2C400 2x, https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2019\/11\/IMG_20191129_220312.jpg?resize=1050%2C600 3x, https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2019\/11\/IMG_20191129_220312.jpg?resize=1400%2C800 4x"},"classes":[]},{"id":2036,"url":"https:\/\/avitech.com.au\/?page_id=2036","url_meta":{"origin":3088,"position":3},"title":"Links &#8211; DEC related","author":"malcolm","date":"24-May-2017","format":false,"excerpt":"This page is just a collection of links relevant to DEC computers and equipment. Identifying DEC Boards www.pdp-8.org's \"list of 8\/10\/11 M-series cards\" www.pdp-8.org's \"Index to mostly OMNIBUS cards\" DEC Option List and Module List (on the Internet Archive: 232 Pages) Bitsaver's directory containing Options List and Modules Lists Doug\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":13618,"url":"https:\/\/avitech.com.au\/?page_id=13618","url_meta":{"origin":3088,"position":4},"title":"TRS-80 Model 4 with FreHD and Gotek drives","author":"malcolm","date":"12-January-2026","format":false,"excerpt":"This page describes the configuration of my TRS-80 Model 4 (Gate Array version) and its conversion to operate with: One real single-side floppy drive (rather than 2 drives) One Gotek floppy-drive emulator running FlashFloppy firmware One FreHD hard-drive emulator I will be building out various sections of this page from\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":5917,"url":"https:\/\/avitech.com.au\/?page_id=5917","url_meta":{"origin":3088,"position":5},"title":"DEC MINC-11 at System Source","author":"malcolm","date":"5-June-2022","format":false,"excerpt":"This page is about the MINC-11 in the System Source collection in Hunt Valley, Maryland. Current Status I visited System Soure in June 2022 and spent some time working on this MINC-11, attempting to get it running. It comes up with a PDP-11\/03 ODT prompt, if the Normal\/Halt switch on\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2022\/06\/PXL_20220607_201500140.jpg?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2022\/06\/PXL_20220607_201500140.jpg?resize=350%2C200 1x, https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2022\/06\/PXL_20220607_201500140.jpg?resize=525%2C300 1.5x, https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2022\/06\/PXL_20220607_201500140.jpg?resize=700%2C400 2x, https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2022\/06\/PXL_20220607_201500140.jpg?resize=1050%2C600 3x, https:\/\/i0.wp.com\/avitech.com.au\/wp-content\/uploads\/2022\/06\/PXL_20220607_201500140.jpg?resize=1400%2C800 4x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/avitech.com.au\/index.php?rest_route=\/wp\/v2\/pages\/3088","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/avitech.com.au\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/avitech.com.au\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/avitech.com.au\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/avitech.com.au\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3088"}],"version-history":[{"count":16,"href":"https:\/\/avitech.com.au\/index.php?rest_route=\/wp\/v2\/pages\/3088\/revisions"}],"predecessor-version":[{"id":3104,"href":"https:\/\/avitech.com.au\/index.php?rest_route=\/wp\/v2\/pages\/3088\/revisions\/3104"}],"wp:attachment":[{"href":"https:\/\/avitech.com.au\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3088"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}