Jump to content
Elkino

MAC/65 with DDT debugger, live emulator online.

Recommended Posts

Glad to show an emulated MAC/65 environment with DDT, that can be use from a web page when you want to do some assembly in your free time ;-) :

 

https://eahumada.github.io/AtariOnline/mac65/mac65-mame.html

Example:

ENTER #D:SPRITE1.LST

ASM

DDT

G 500B

(You can use the numeric keypad as joystick and some times when you have a game-pad and MAME recognize that is connected you can move the sprite)

 

Sadly, JavaScript MAME is not an accurate emulator, but I have the hope than in the future some other JavaScript/WebAssembly emulator emerge (jsAtari800 maybe? jsAltirra?) to allow to publish Atari interactive 8-bit content

 

Here is the page for the work in progress Project, please feel free to fork and use to create your own content:

 

https://eahumada.github.io/AtariOnline/

 

Credits to '@8-bit and more' for the inspiration, when I see his videos I don't have and Atari with Mac65/DDT cartridge at hand, then I get this idea and also thinking how the authors of 8-bit content can share their creations live online, for teach and learn 6502 Atari programming.

 

Edited by Elkino
Fix typo mistakes
  • Like 2

Share this post


Link to post
Share on other sites

Of course an expert can configure a modern IDE and use a cross-assembler.

 

But I think in fact that this can be usefull for beginners, many people study 6502 assembly today:

 

https://codeburst.io/an-introduction-to-6502-assembly-and-low-level-programming-7c11fa6b9cb9


That is the main reason to create a page in that you can experience from first and how is assembly some code and get direct results.

 

 Also the are old books that remember the old Atari editors, as atari roots:

 

 

You can take the AtariRoots book, and practice directly in a live machine:

 

https://eahumada.github.io/AtariOnline/assembler/assembler-mame.html

 

The main motivation is for learn and teaching (apart of historical reasons and nostalgia) and fun! I wonder if you remember that many of us enter in programming, just for the fun that it gives.

 

;-) Just I want that somebody that see a video like this in the future, have the chance to google for some Atari emulator page where to practice. The alternative is have to configure eclipse and install an assembler and emulator to get some result and can be frustrating for a noob.

 

 

Edited by Elkino

Share this post


Link to post
Share on other sites

Also, if you have a customizable and embed-able emulator, you can create tools and content like this:

 

https://8bitworkshop.com/v3.7.1/?file=joyas.bas&platform=atari8-800xl.mame

 

Additionally, I wish that in the future the javascript/webassembly emulators have internet suppport (emulating fujinet with websocker or R: o N: device), then it can make possible to play your old games (o new ones) online just simple as opening a page. Well..., you may say I'm a dreamer, but I think that I'm not the only one ;-)

 

There is a lot of browsers where is possible to take all the great Atari 8-bit apps that the hobbyists create, just for fun.

Edited by Elkino
  • Like 1

Share this post


Link to post
Share on other sites

Had a quick look, doesn't really work for me, the keyboard mapping is all wrong so can't

even load a file from disk, also cursor keys don't work.

  • Thanks 1

Share this post


Link to post
Share on other sites
6 hours ago, TGB1718 said:

Had a quick look, doesn't really work for me, the keyboard mapping is all wrong so can't

even load a file from disk, also cursor keys don't work.

Hello! thank you very much for your feedback, very appreciated! 
 

About your comment yes, your are right, as this is the first version you need to have some patience as it use the default emulator keyboard mapping, then you have to spend some time at beginning 

looking for the keys where are located in the original Atari, and put your keyboard layout on US-ENG. The break for example is located in the backspace key and you must look where the ctrl+* is located for left arrow, etc. This is the main issue but expecting to fix it.

 

What is your language of your keyboard? What keys are displayed if you press A, B, C, shift-1, shift-2, etc? That can be very useful to me to solve the problem.

 

I will solve that it in the future, if I found out how to indicate custom mappings on MAME.

Edited by Elkino

Share this post


Link to post
Share on other sites

SHIFT 1 through 0 give !"#$%'@()

 

I'm using a UK keyboard layout.

I found 3 of the cursor keys, UP/DOWN are CTRL-[ and CTRL-] and LEFT is CTRL-# not found RIGHT, would

be nice if you do what Altirra does which is use cursor keys without having to press CTRL

 

If you press <CAP LOCK> no keys work until you press a second time, so no lower case available

 

[ is -

] is =

@ does nothing

# is +

Shift [ is _

shift ] is |

shift , is [

shift . is ]

BACKSPACE moves cursor down 2 lines

- is <

+ is >

shift - clears screen

shift + Inserts a line

 

Can't find the inverse character key

  • Thanks 1

Share this post


Link to post
Share on other sites

 I think that Altirra have 3-modes and the mode that MAME use is more similar to the raw native mode. Could be useful a photo from your keyboard.

 

You detailed list is very helpful, appreciated and a photo of your keyboard can help me to create a set of mappings.That confirm that the keys are mapped based on the location of the US keyboard, as BACKSPACE is located where the Break key used to be. That is exasperating, I taken a look in to the MAME atari400.cpp original source code and found that [del] key should be used for delete, but it not work on my Mac.

 

By the way, I have the intention to fix it. Attached is a picture of the original Atari layout, at the moment the keys are located near to the original location.

16F31BB3-1616-4313-8F1F-C017C5C3C82E.jpeg

Edited by Elkino

Share this post


Link to post
Share on other sites

 

Creating a fork, I have done some fixes on MAME key mappings, compiled the code with emscripten and generated the js files and copied it into to the page.

 

This means that all the mappings can be modified in the future (may be). I also see that using a CFG file it is possible to modify the mappings, muy seems that the JavaScript MAME not parse the file.

 

The mappings now are as follows:

 

BACKSPACE: Delete the previous character.

F7: is break.

F2,F3,F4 maps to Start, Select, Option.

Left ALT is Atari / Inverse mode key.

CTRL+Insert: Inserts an space

CTRL+Backspace: Delete the next character.

 

The last two mappings happens due that the Shift and Ctrl keys are in fact inverted from the original layout to make easier use CTRL and SHIFT with the other keys.

 

You need to press several time CAPS LOCK to change beetwen upper case to lower case, seems that is a bug in MAME atari400 code.

 

All the other mappings remains the same.

 

At this point, I also added the keyboard image under the emulator to make easier to locate the original key positions.

 

I need to take some time to figure how the mappings are implemented under the hood in order to be able to implement additional features.

 

Also, it is possible also review other mappings in the code.

 

Thanks for your help.

 

https://github.com/eahumada/mame/blob/master/src/mame/drivers/atari400.cpp

 

// Mapped to F2, F3, F4 as in Altirra
static INPUT_PORTS_START( atari_console )
	PORT_START("console")
	PORT_BIT(0x04, 0x04, IPT_KEYBOARD) PORT_NAME("CONS.2: Option") PORT_CODE(KEYCODE_F4)
	PORT_BIT(0x02, 0x02, IPT_KEYBOARD) PORT_NAME("CONS.1: Select") PORT_CODE(KEYCODE_F3)
	PORT_BIT(0x01, 0x01, IPT_KEYBOARD) PORT_NAME("CONS.0: Start") PORT_CODE(KEYCODE_F2)
INPUT_PORTS_END
// ...
2021-04 EA:
- "BackS Delete" from BACKSPACE is mapped to 'DEL'
- "Break" from F7 is mapped to MAMEKEY 'F1' (As pause in not present in MacOSX)
*/
static INPUT_PORTS_START( atari_keyboard )
PORT_START("keyboard.0")
// ...
PORT_BIT(0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Break") PORT_CODE(KEYCODE_F7) PORT_CHAR(UCHAR_MAMEKEY(F1))
//...
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Atari") PORT_CODE(KEYCODE_RALT) PORT_CHAR(UCHAR_MAMEKEY(F3))
//...
PORT_BIT(0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("BackS  Delete") PORT_CODE(KEYCODE_BACKSPACE) PORT_CHAR(8) PORT_CHAR(UCHAR_MAMEKEY(DEL))

 

Edited by Elkino

Share this post


Link to post
Share on other sites

Hi. With the MAC/65 web emulator, the key mappings are not for the standard US keyboard. So unfortunately it is going to be impossible for me to use. I finally discovered that the * (asterisk) is typed using \

 

Maybe a selection for keyboard type is needed, if you wish this to be used by people from around the world.

 

It's a really great and convenient idea! I was so excited to see it, except for the pretty mission critical key mapping problem haha

 

Share this post


Link to post
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...