Jump to content


New Members
  • Content Count

  • Joined

  • Last visited

Community Reputation

31 Excellent

About Elkino

  • Rank
    Space Invader

Recent Profile Visitors

277 profile views
  1. Yes, as mentioned, is a work in progress, at least you can run the samples, use TYPE command to list the sources. Hope that in the future with a better JavaScript emulator you can do a lot more online, this is just the beginning. https://eahumada.github.io/AtariOnline/
  2. Its a little bit tricky to do in MAME, what I can I do is map the arrows to *,-,=,+ and move the cursor with CTRL+Arrows, but on Mac CTRL+Arrows change the current desktop. (All can be easier if atari800 emulator have an JavaScript/WebAssembly target using emscripten). https://github.com/eahumada/mame/blob/master/src/mame/drivers/atari400.cpp Also, I exploring to continue working with jsA8E, but also need some work in the future. https://eahumada.github.io/AtariOnline/fastbasic.html?disk_filename=fastbasic.atr I wonder: On the FB IDE, how is possible to exit from the Save file prompt when press CTRL+Q if one not wish to save the sources? I get stuck in that point when I use the IDE in the emulator, as the "virtual" disk is write protected.
  3. Great, I'm working on it. I just looking for it in the source code of the emulation, but seems that MAME don't have a warm reset, currently you need to refresh your browser is you want a fresh start. I wonder why the editor ask to save when you press CTRL+Q, and you can not press ESC to cancel and just exit. I fixed some mappings, F7=Is the break key and cursor movement maps to CTRL+NUMPAD 8,4,6,2 y will add the detail of the mappings at the botton of the page. LEFT ALT is FIRE and arrows are joystick directions. All keys are located near to the original Atari position. Can be great is in the future exists some like Altirra.js or Atari800.js to publish small Atari XL/XE 8-bit apps on the web, as atari800 on MAME.js seems to be not have active development.
  4. You can try FastBasic online here: https://eahumada.github.io/AtariOnline/fastbasic/fastbasic-mame.html type: JOYAS [ENTER]
  5. You can see it running online also: https://eahumada.github.io/AtariOnline/demos/demos-mame.html?disk=b2fj.atr Other apps: https://eahumada.github.io/AtariOnline/
  6. 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))
  7. 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.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. Atari assembler online, compiling basic sprite example: https://eahumada.github.io/AtariOnline/assembler.html?disk_filename=atariassembler.atr ENTER #D:SPRITE1.LST ASM BUG G500B (use the arrows as joystick)
  13. I think that this fall in the category: "We did it because we can." 🙂 But, I get you, may be is not very useful as after compiled and linked, the final xex images with an average program give us only 3K left for data, even if use Proguard to optimize the class library bytecode, but at least can be useful to write some short examples in Java as you can see in the code. I know that not brilliant spend 32-bytes in a integer, but Atari Basic use 40-bit. After you prototype your code in Java it could be ported later to C. The runtime interpreter and the embedded bytecode is compiled with CC65, may be if we use a compiler that produce code optimized for 6502 we can get better results. Also, it is possible to rewrite the interpreter in assembly, but then it will lose portability. Currently the same interpreter can be run on linux, windows, macos, c64, a800, etc.
  • Create New...