ct6502 / apple2ts

Apple II Emulator in TypeScript
Creative Commons Attribution Share Alike 4.0 International
62 stars 10 forks source link

Add drag-n-drop for BASIC or assembly code files #45

Closed ct6502 closed 1 month ago

ct6502 commented 9 months ago

Would be nice to be able to drop .bas or .s files onto the emulator window. If the suffix was different maybe it could just detect the language. For BASIC code, can just throw it into Applesoft like a "paste". For assembly, need to use the built-in assembler. Is that assembler good enough (or standard enough?).

kktos commented 9 months ago

ok, so you wish to have a quick way to fill up some memory, right ? What about, for a .bin file, upon upload, ask the address to copy the data to ? For a .bas file, no need, we know ;) You'll need to do some cleanup too, as ProDOS does when loading an applesoft file. For the asm source code, for a quick one, ok. but we know we are always start with a tiny thing which becomes rapidly a huge thing..... I'd rather do a build locally then I'll drag and drop the bin files..... but then..... that starts to look very much like a disk.... with makefile, don't you think ? Something like

where apple2ts.cmd could be a text file with internal commands like

memory main
move binfile1.bin, $2000
memory aux
move binfile2.bin, $2000
lcbank $01
move binfile3.bin, $D000
kktos commented 9 months ago

Tokenizer for AppleSoft BASIC in python https://github.com/KrisKennaway/bastoken Could be a nice start ;)

kktos commented 9 months ago

about the assembler, I wrote one...hum..a long time ago in C (95 or 96) and I thought it would be nice to have one in ts. I'm using it on my projects and I thought the best way to debug it was to drop it into the wild :oD. if you're in the mood, the package is jsasm6502. Caution, it's just dry. My first npm package ever. ooch. Feel free to flame/blame as much as you wish.

ct6502 commented 9 months ago

about the assembler, I wrote one...hum..a long time ago in C (95 or 96) and I thought it would be nice to have one in ts. I'm using it on my projects and I thought the best way to debug it was to drop it into the wild :oD. if you're in the mood, the package is jsasm6502. Caution, it's just dry. My first npm package ever. ooch. Feel free to flame/blame as much as you wish.

Cool, thanks! I've already got a rudimentary assembler in the code. I use it to load up sample assembly code at startup, and also used it for some of the floppy disk controller work. But it's pretty bare bones, so maybe I'll take a look at yours.

ct6502 commented 9 months ago

Tokenizer for AppleSoft BASIC in python https://github.com/KrisKennaway/bastoken Could be a nice start ;)

Thanks! Kris Kennaway is awesome. His hi-res graphics and audio presentations were a big help on my emulator. However, for BASIC, I'm thinking that I can just dump the text straight into Applesoft and let it take care of the details. Unless we want to get really fancy and handle structured BASIC without line numbers or something.

ct6502 commented 9 months ago

ok, so you wish to have a quick way to fill up some memory, right ? What about, for a .bin file, upon upload, ask the address to copy the data to ?

The emulator already handles .bin files, and gives you a dialog asking for the address. There's also a checkbox in case you want to immediately run the code.

ct6502 commented 1 month ago

I've already added support for drag-n-drop of basic and assembly binaries - that's probably good enough for now. I can add a new feature request for dropping actual assembly code files if that seems important.