Search the Community
Showing results for tags 'Assembler'.
-
Hello yet again. New, opened and in binder. Includes Programmers card. Looking for $40 + shipping from Los Angeles. Thanks for looking. KB
-
Hello, I always wanted to learn assembly for graphics but sadly have had no time and have been laid off. Looking for $100 + shipping from Los Angeles. Would also consider AtariAge voice enhanced Berzerk cart + some cash.
-
dsrlnk Toward a Better (and Better-Documented) DSRLNK
Lee Stewart posted a topic in TI-99/4A Development
I have decided to take this DSRLNK discussion out of my fbForth thread so that I can get more non-Forth eyes on it. One of the changes I am seriously considering for fbForth 3.0 is revamping the file management system—especially, how DSRLNK works. I will likely replace the MG DSRLNK currently in place. I am looking into an implementation of Paolo Bagnaresi’s version as modified by Bill R. Sullivan (@Bill R Sullivan & @FDOS). I do not want to include Bill’s optional use of CPU RAM PABs and buffers, but I definitely want to use the 5 saved parameters after the first call to DSRLNK so CRU and device/program searches can be minimized with subsequent DSRLNK calls. Whereas Bill suggests a stack for multiple open files, I am thinking of adding those parameters to the head of each PAB. Though others have addressed some or all of my issues, trying to follow the logic of the various DSRLNKs, especially with some (several?) misleading comments, has been unsettling, to say the least. I am also considering using a linked list of PABs, much as TI Basic does—we’ll see. My Current Version of the Bagnaresi-Sullivan-Stewart DSRLNK: DSRLNK_LES02.a99 My Current Version of the Miller-Warren-Stewart DSRLNK: DSRLNK_fbForth03.a99 [Note: I should mention that the Warren referenced above is our own @FALCOR4 (Doug C. Warren)] ...lee -
The following tutorial walks through the steps of building a simple program in assembler to be deployed to a cartridge for Atari 8 bit computer using the CA65 assembler. Source The newest and all historic version of the source code can be downloaded from SourceForge. Main source Complete source code: HelloWorld.s. Header The header of an contains the includes as well as the exports and imports. The main source for cartridges needs to export the cartstart and cartinit procedures. cartinit is called before the OS is initialised and should return with an RTS. cartstart is jumped to after the OS is initialised and either should not return or exit with jmp (DOSVEC). .FILEOPT compiler, "ca65 V2.19 - N/A" .FILEOPT author, "Martin Krischik «krischik@users.sourceforge.net»" .FILEOPT comment, "this Atari assembly CAR program will print the “hello world” message to the screen" .INCLUDE "atari.inc.s" .INCLUDE "OS.inc.s" .MACPACK atari .SETCPU "6502" .DEBUGINFO off .EXPORT cartstart, cartinit Read only data When using the CA65 you don't need to set absolute addresses for your data. You just specify which data your want to store and how long the data is. RODATA will be stored in the ROM itself. ;; ; Our message ; .SEGMENT "RODATA" Message: .BYTE "Hello World!",EOL .BYTE "(using a cartridge in assember)",EOL Message_Len = * - Message Read/Write data If you want to write to the data you use the DATA segment which will be place in ram staring at address $2000. ;; ; Text returned from keyboard ; .SEGMENT "DATA" Input: .RES 1 Input_Len = * - Input If you want to store data in the zero page you can use the ZEROPAGE segment. Program The actual program consist of a put string which write the text „Hello World!“ and a get string to wait for a key press. It ends with a jump to DOSVEC. Put_String and Get_String are macros explained later. ;; ; main procedure ; .SEGMENT "CODE" .ORG OS::LC_8K ;; ; the main method of a cartridges does not return. ; .proc cartstart: near Put_String Message,Message_Len Get_String Input,Input_Len jmp (DOSVEC) .endproc ;; ; cartridges have an init function which is called ; before the operating system is initialized. ; .proc cartinit: near RTS ; Continue with initialisation .endproc OS macro include Complete source code: OS.inc.s Put_String This is setting all the parameters for an PUTCHR operation using I/O block 0 which by default uses the "E:" editor device. .macro Put_String Text,Len LDX #CIO::Console ;Use IOCB 0 / Console LDA #PUTCHR ; Command Put Text Record STA ICCOM,X LDA #<(Text) ; Set low byte of message STA ICBAL,X LDA #>(Text) ; Set high byte of message STA ICBAH,X LDA #<(Len) ; Set low byte of message length STA ICBLL,X LDA #>(Len) ; Set high byte of message length STA ICBLH,X JSR CIOV ;Call cio .endmacro Get_String This is setting all the parameters for an `GETCHR` operation using I/O block 0. .macro Get_String Buffer,Len LDX #CIO::Console ;Use IOCB 0 / Console LDA #GETCHR ; Command Get Text Record STA ICCOM,X LDA #<(Buffer) ; Set low byte of buffer STA ICBAL,X LDA #>(Buffer) ; Set high byte of buffer STA ICBAH,X LDA #<(Len) ; Set low byte of buffer length STA ICBLL,X LDA #>(Len) ; Set high byte of buffer length STA ICBLH,X JSR CIOV ;Call cio .endmacro Cartridge Header Complete source code: CAR_Header.s: The cartridge header are a few bytes at the end of the cartridge. This file tells the linker what to put into the header. The header is exported as __CART_HEADER__ so the linker know that this is indeed the cartridge header. .EXPORT __CART_HEADER__: absolute = 1 .IMPORT __CARTSIZE__, __CARTFLAGS__, cartinit, cartstart ;; ; set init and main run addresses ; .SEGMENT "CARTHDR" .ORG CARTCS ; cartridge start address .WORD cartstart .ORG CART ; cartridge present indicator .BYTE $00 .ORG CARTFG .BYTE <(__CARTFLAGS__) ; Init and start cartridge, no disk, no diagnostic. .ORG CARTAD ; cartridge initialise vector .WORD cartinit .assert (__CARTSIZE__ = $2000 || __CARTSIZE__ = $4000), error, "Cartridge size must either be $2000 or $4000" Makefile Complete source code: Makefile Variables A few variables describing the current project. Package_Name := Hello_World App_Name := HELLO_A Exe_File := target/$(App_Name).CAR Object_Files := target/obj/HelloWorld.o target/obj/CAR_Header.o Map_File := target/$(App_Name).MAP Include_Dir := ../../Library Assemble The assemble command needs are passed the following options: The platform you assemble for: --target atari Where include files are located: --include-dir $(Include_Dir) Creating a listing of actual code is always helpful: --listing $(basename $(@)).lst The current output file -o $(@) And the first input file $(<) target/obj/%.o: src/main/asm/%.s ca65 \ --target atari \ --include-dir $(Include_Dir) \ --listing $(basename $(@)).lst \ -o $(@) \ $(<) Link The link command needs are passed the following options: The size of the cartridge, 8k in our case: -D__CARTSIZE__=0x2000 The cartridge flags: -D__CARTFLAGS__=0x4 The platform you assemble with indication that we want a cartridge: -C atari-cart.cfg Creating a memory mapp file of linked code is always helpful: --mapfile ${Map_File} The current output file -o $(@) All the input file $(+) $(Exe_File): ${Object_Files} ld65 \ -D__CARTSIZE__=0x2000 \ -D__CARTFLAGS__=0x4 \ -C atari-cart.cfg \ --mapfile ${Map_File} \ -o $(@) \ $(+) Run on Emulator For testing and debugging the use of an emulator like the Atari800 is recommended. Deploying is much faster and can be automated inside the makefile so a simple `make run` will start the application. Note that you need to adjust the directory and file names to your system. Atari800_System := /opt/local/share/atari800 Atari800_User := "$(HOME)/Library/Application Support/Atari800" Atari800_Exe := "/usr/local/bin/atari800" Atari800_Window := -video-accel -pal -win-height 1120 -win-width 1680 Atari800_Cart = -cart-type 1 -cart "$(Exe_File)" Atari800_Option = -autosave-config -320xe -nobasic -config "$(CURDIR)/target/$(App_Name).cfg" -xlxe_rom "$(Atari800_System)/ATARIXL.ROM" run: $(Exe_File) $(Atari800_Exe) \ $(Atari800_Cart) \ $(Atari800_Option) \ $(Atari800_Window) The Atari800 emulator also has a system monitor with single step debugger and disassembler included which makes debugging that much easier. Run on device To run the application on a real Atari a hardware cartridge is needed. The best option is a modern cartridge like Side3 which uses SD cards and flash memory as ROM storage. A Side3 cost a little more then $€£100. A classic cartridge using EEPROMs will also work but is more work to setup and only slightly cheaper. For the Side3 all you need to do is to copy the CAR file onto the SD card. This operation which can be automated using make. Side3_Deploy := /Volumes/SIDE3 side3: $(Exe_File) mkdir -p "${Side3_Deploy}/${Package_Name}" cp "$(<)" "${Side3_Deploy}/${Package_Name}"
- 2 replies
-
- 5
-
- development
- assembler
-
(and 5 more)
Tagged with:
-
I'm trying to get back to writing for Atari 8 bit. However, using the emulator on my laptop seems to be a bit silly. In this day and age I should be able to just write code on my laptop and run it on simulator. It's possible to run Atari800MacX from CLI, to fire up a piece of code - or even run its generic - non macOS specific version (yay true opensource) atari800. But I don't know what workflow folks use for making software under such conditions. What compiler would you use? Are there scripts out there already? Please share. Windows users seem to be using VSCode and Altirra , but the latter is very much a monolithic piece of software that cannot be easily made cross platform. Not to mention it's not developed in the open, even tho its source code is available. So it's clearly not the right avenue to pursue. And no, I am not going back to using windows, thanksverymuch
- 14 replies
-
- 1
-
- macos
- development
-
(and 6 more)
Tagged with:
-
I'm looking for the TI Assembler commented source code. Not the E/A cart code. I'm guessing that it was probably sourced from some 990 package originally? Any ideas? Thanks.
-
Dear All! This is our "Atari 8-bit Programming" Discord server. It is a twin Discord server to the Fujinet Discord. Here is an invitation: https://discord.gg/GTapZjCsgp Best, Peter Kaczorowski
-
Hi all, I've just released Breakout, a simple but smooth implementation of the classic game. Following in the footsteps of @Vorticon, @senior_falcon and others, I've developed it in assembly for an unexpanded console, by breaking out of the TI BASIC sandbox. It's a complete game this time. It's meant to satisfy and spark nostalgic thoughts about the great things that could have been if we had known these techniques in the 80s. You can find the source code and binary images on the Breakout project page on Github. The source code is documented and reusable. The jailbreak code assembles to a BASIC program file with the actual assembly code embedded. The assembly code consists of snippets of up to 196 bytes that get swapped into scratchpad RAM from VDP RAM. The code takes over complete control of the computer and doesn't use any built-in subroutines. There are source files with generally useful definitions and macros for accessing VDP, GROM, CRU, sound, etc. Enjoy! Thoughts and questions are welcomed! Update: Added a direct link to the binary images, which now include the TI BASIC program file alongside the Mame disk image file.
-
Hello! During the preservation phase, I stumbled upon this beautiful version of the famous arcade game, Nibbler. It has been published on an Italian Magazine in 1985 and it is written purely for the Mini Memory cartridge and consists of two parts, the first loaded using option 2 EasyBug and the second loaded by TI-BASIC but through the instruction CALL LINK ("LOAD"). It would be really nice to save everything in a digital format more usable than the .WAVs files. I tried to load them with the MAME/MESS emulator and they work fine. In my opinion it's a beautiful version and deserves to be played by everyone in an easy way. I never thought that with the Mini Memory cartridge you could get such a complete game loaded from a cassette tape. I am really surprised. is there in the community someone that would have the ability to convert it to a better format, maybe .BIN or at least, a disk format? Could be nice! There are the link to the game page and the .ZIP file containing the material that I was be able to put together. Page: https://www.ti99iuc.it/web/index.php?pageid=database_cerca&archivioid=883 Download: (Ita)-(Game)-(Snake Snake)-(1985)-(MM)-(by M.M.G. Software)-(from TI99NewSoft).zip
- 66 replies
-
- 13
-
Hi together! First of all, we will give Charles W. Marslett a Zotta (10^24) thank you for all his work he has done and another one for giving us the source code of his work into PD. Charles, from all 5 continents from all Atari users: Thank you so much!!! After a long search and loop verfication with Charles, we now can offer you: FAST FLOATING POINT source code for the ATARI, Revision F The first publication was made in 1981, improved and adapted to more and more Atari computers over the years. With Charles's work it was possible for the first time officially to make reliable calculations! All this up to 3.5 times faster than the original Atari rom for the floating point routines from $D800 to $DFFF. Another great advantage: all addresses for the floating point routines are the same as in the original Atari one! With the now final version F, sorry to say, all Atari OSs need to be vaccinated... Luckily, this can be done in just one shot by replacing the specific OS rom. Please take into account, Charles did this in 1981, while: https://en.wikipedia.org/wiki/IEEE_754 is from 1985 on... This shows how far ahead of time Charles was and still is! For the gamers this could be a nice increase in calculation speed, like: https://en.wikipedia.org/wiki/Fast_inverse_square_root in the game Doom later. For serious calculations, this is a no miss under all circumstances. We further would like to thank Robert "Bob" Puff for translating the original AMAC source code from Charles to the MAC/65 and drac030 for finding the very last byte to be changed. A big thank you goes to the University of Michigan for hosting the file: faschips.arc Have fun and warm up the EPROM bruners... All the best.
- 18 replies
-
- 17
-
- assembler
- source code
-
(and 3 more)
Tagged with:
-
JagStudio is an advanced development suite for the Atari Jaguar that allows you to code using Assembler, BASIC or C and is based around Reboot's powerful RAPTOR API. Regardless of your programming capabilities, Beginners to Advanced coders can utilize this flexible package that will fully suit the needs of anyone looking to program exciting new games for the Jaguar. The benefits of using JagStudio are the Hardware Abstraction Layers (HALs) and the combination of external modules available to use. This allows you, the developer, to get on with writing your games while taking advantage of the Jaguar's powerful chipset without worrying about tedious, underlying mundane routines. The same results that once took days or weeks to achieve can now be done in a matter of minutes, thanks to the power of JagStudio! You are one click away from 64-bit creativity! The current release of JagStudio along with any previous versions can be obtained at its homepage: https://jagstudio.reboot-games.com Some of the features of JagStudio are: Code in your language preference of Assembly, BASIC or C. (Assembly and C are currently in Beta... help us make them better!) Commands have been renamed (from rB+) to reflect the individual modules they control and prefixed as such: rapPrint, u235PlaySample, etc. RAPTOR API Debug Function brings useful program variable visibility to the forefront, aiding ease of game development. GameDrive support along with MRQ file creation. ROM builder now adds FAST GPU depack by default for quicker startup times. Ability to build and split ROMs up to 6MB into HI/LO for EPROM burning. Updated both RAPTOR and U235 Sound Engine APIs to current versions, bringing additional benefits of both in a single updated package. Added universal JagPad Input - A single call that works with either U235 or ZeroSquare sound engine so projects can be easily converted between the two should your needs change. Many enhancements and bug fixes to the original rB+ code (eg, you can now include files >4mb, all files unpacked using GPU by default) All documentation and examples have been updated with a simple rB+ to JagStudio conversion guide to bring your old projects over to the fully updated JagStudio. Includes project examples for all supported languages (Assembly, BASIC and C) for anyone looking to get started quickly. We plan on keeping this alive and active, with ongoing improvements and new features and look forward to seeing what you all make with it. If you have any questions, please feel free to ask in this newly created sub-forum. Happy coding, everyone! The JagStudio Team. @CyranoJ @Sporadic @Clint Thompson A huge "Thank-You" to ggn for creating rB+ upon which all this is based. Please do not pester him with support requests for JagStudio. JagStudio 1.1 has been released! We are now feature complete with Raptor 2.0.20. If you already have JagStudio installed, then to upgrade; - Backup your existing JagStudio folder. - Extract the new zip. - Copy the new JagStudio folder over the top of your existing one. (Obviously this will undo any changes you might have made to the example projects, but you can always copy those from your bakup). Head on over to https://jagstudio.reboot-games.com for the download, online docs and details. 1.1 Change log; * Added Angle calculation and direction vector. See example BASIC project 'calcangle' * Added Collision List. See example BASIC project "collisionlist". * Added Z-Sorting for Sprites based on a sprite property. See example BASIC project "zsort". * Added New "fader" BASIC project. Example on how to do CLUT fades. * Added Clock functions. See new clocktest project (BASIC). * Added Raptor Sprite Shift. Eg. rapSpriteShift(xshift, yshift, sprBug1, 3) - See project "spriteshift" (BASIC). * Added Dynamic object scale - See project "shootbang" (BASIC). * Added Simplified version of zeroPlaySample. Now you just pass the start and end addresses - the length and rounding are worked out for you. Eg. zeroPlay(channel,start_address, end_address, frequency, params). * Added Simple way to stop sound on a channel when using Zero player. Rather than the old way of calling zeroPlaySample with 0's. Eg. zeroClearChannel(channel) * Updated All documentation with some further clarity and the new functions. * Fixed BCX Print generating a \n * Fixed Fix build.bat so it creates a <projectname>.s in the build folder for C projects. * Fixed Fix build.bat so it can send ABS files to the JagGD. * Fixed Fix comment in object template for scale max to 228. * Fixed xdivs, xdivu, xmuls, xmulu where sometimes they would use an address register and fail compilation. Have fun and happy coding!
- 80 replies
-
- 49
-
- jaguar
- development
- (and 4 more)
-
Greetings folks, Just an FYI for anyone looking for reprinted out of print programming books to try Lulu.com I have used Lulu before but this time I found a book I have been desperately looking for years. I have been wanting the Compute! published books Programming the 64 and Programming the Vic by West and was able to find the 64 on Ebay, but the Vic one appears to some rare air to find. I love West's two books for the C64 and Vic and have been wanting them for many years. I even went as far to email libraries in Texas once I found out they had the Vic book to offer them to buy it, however all of them could not sell the book to me.. I visited lulu and it looks like someone just recently uploaded the PDF and Lulu has made Programming the Vic for reproduction. I am just passing this on to anyone who may be looking for this awesome Vic 20 book! The printing is done well and it is the same size of the 64 original one and the binding is excellent. I also bought another copy (I have the original) of the Butterfields Machine Language for the C64, 128 expanded editions. The Butterflied book is printed much smaller but still looks good, I was surprised they went with the small size when it should be the same size of the West book. In any case I am not connected to Lulu and do not make any money or get anything from them.. I just wanted to pass on a place for anyone who was looking for these tough to find books and do not mind a reprint. The books were very reasonable priced. I put a few screenshots here for anyone who might be interested. I hope anyone who is interested in Assembly Commodore programming can find this knowledge useful for them. If anyone here is looking for these
- 7 replies
-
- vic; vic20;assembler;assembly;programming
- vic20
- (and 5 more)
-
I recently got a beige non-QI TI-99/4a system with a speech synth and several cartridges, including Extended BASIC and Editor Assembler. The joysticks I have are worn out and don't work. I was able to revive the Mitsumi mylar keyboard. I don't have a PEB or memory expansion or disk drive. I'd like to do some BASIC and assembler coding on the system, as well as play some games. What should I be looking for? Stuff I'm considering to do or purchase... - Cassette cable and recorder - Atari joystick adapter interface - Is there a preferred model? Most that I see don't have any kind of case on them. - Memory expansion - What is the go to for adding more memory to this system? - Disk drive, or disk drive emulator - I have a Gotek drive in my Amiga. My Coco has an SDC cartridge. My Atari connects to my Windows PC to retrieve files. How can I emulate a disk drive on the TI-99/4a? - I'm currently connected to a TV using a component video cable. Are there any video upgrades for the TI-99/4a to use VGA, component or HDMI? - I have an MX-80 parallel printer. Can I connect this to the TI-99/4a? Is it worth the hassle? - Is there an assembler/editor that works on a TI system without a disk drive? How about without the 32K expansion? I've done some searching online, and checked out some of the online vendors and eBay. Most of the info I find is outdated and I'm not sure which of the upgrades are good for a system today. Any and all info is appreciated!
-
#Atari8bit #FujiNet In MAC/65 making assembler version of netcat ... really don't get why people liked MAC/65 so much, I much preferred AMAC, but.. *shrug*
-
I was able to download diskassembler, but have no idea how to use it. Does anyone know where I can get the manual?
-
I posted a scan of a photocopy of the SDS Programmers Guide in the Development Resources sticky, but it was suggested I start a new thread, so here it is. I have some other stuff, SDSMAC source listings, additional documentation, etc. to put here, too. Coming soon. Anyone else have anything relevant, please post away. The SDS consists of a GPL assembler, linker, simulator, and debugger running under DX10 on a TI 990 mini, typically a /10. TI BASIC programs can be converted to GROM format to run on the simulator. [edit] Anyone has a copy of the SDS software or even a running system, or knows where such might be, please post here, message me, or email jbdigriz@dragonsweb.org. Thanks! jbdigriz HCM_SDS.pdf
-
A project I have been working on for the last two years is nearing completion i.e. my next book called 'Programming Games for the Colecovision and Adam in Assembler'. It includes a tutorial section working through the steps of creating a game, with a Z80 assembler primer and information on how to set up a cross development environment (similar but extended from my Let's Make a Retro Game series). It also includes a complete Colecovision BIOS reference guide, covering ALL of the jump table BIOS calls with explanations and examples for using each call. There are extensive memory and port maps, also with explanations etc. It will have a dedicated web site section where you can download the code (for lazy typers :)). The early pre-order link for the Kindle edition is available here. Cover is still a draft. Shortly after I have released the Kindle Edition, there will also be a physical print edition available on Amazon's print to order service, which I used for my last book and has been received well. It does have some colour screen shots and pictures in it, let me know how many people would be interested in a full colour edition, rather than a colour cover with black and white interior. The book is currently 90% complete, with the majority of the content completed, but I have about ten quality read through passes to do and need to tidy-up/check all the source code etc. I am aiming for a 1st August 2020 release date at this stage.
- 70 replies
-
- 12
-
- book
- programming
-
(and 3 more)
Tagged with:
-
IDE for developing in TI99 Assembler on the PC (Windows) (using NotePad++ Editor, xdt99 Cross-Assembler and MAME Emulator) https://github.com/miriki/TI-xdt99-IDE/ Hi, all! A few may have noticed: In an xdt99 thread I have published a Batch for DOS that shortens a lot of typing work when developing software. After years of abstinence from the TI99 I actually remembered the "good old days" developing tools and libraries again and tried to recall what I was doing those days. Well, 35 or so years... Firing up the MAME emulator, using TI99_4ev as machine, a cartridge with Editor/Assembler inserted and the needed disk in DSK1 mounted I started typing a few lines while reading through a bunch of books and forum articles. Hmmm... A PC keyboard and the function keys of the TI99, two worlds collide. Yes, the editor _was_ a very good one, at least that days. But nowadays I really, really prefer the comfort of NotePad++ or at least any other GUI based editor. Then I've read about the one or another Cross-Assembler to develop in Windows and using the output to mount within MAME. Almost right from the beginning I got stuck with xdt99, a collection of not only a cross-assembler, but other tools like a "disk creation", too. An integration into "IntelliJ IDEA" sounded good, but.... Hmmm... Maybe I have not digged deep enough, but there is only the editor used for syntax highlighting, isn't it? Putting things together: A batch for DOS (Windows, Microsoft, sorry...) was created that enabled the workflow from editing the Assembler source code assembling the source code into object code creating a disk which contains the object file starting an Emulator with this disk mounted plus a few more tasks... To be honest: I don't like DOS batches with more than, let's say, 25 or so lines. The syntax is ugly and the CLI commands are far from comfortable - not comparable with a high level language. Changing default values is a pain, (re)storing user settings a tremendous effort and doing all with user parameters results in a jungle of % characters shattered across the lines. So I used that batch only as a sketch for a "real" project: An IDE for those tools written in a high level language. I decided on C# (VB.Net would have been the alternative), because it is the preferred language right now in our company. Training... If anybody would like to have a look at it: I just published that project on GitHub. That was kind of training, too. We use Azure DevOps in our company and I have to get familiar with those cloud based team thingy. So hopefully I published correctly - it is my first published project over there. https://github.com/miriki/TI-xdt99-IDE/ This is the main page of the project. There is a README, but empty as of now. You will find a subfolder "TI xdt99 IDE" though... There is a subfolder "snap" which contains a few screenshots of the published project: Settings_Xdt.png shows the settings to include the tools from the xdt99 package. Settings_Mame.png shows parameters for the emulator, including configuration of the peripherals etc. Settings_Ide.png shows the standard working area with buttons to start actions and checkboxes to set options. Output_CommandStack.png shows the list of calls to external tools like the editor, assembler etc. Output_Standard.png shows the standard output of the last command, for example the directory of the disk. Output_Errors.png shows the error output of the last command, if there is any. Emulator_AutoStart.png shows the XB output from DSK1.LOAD if "catalog" and "autostart" is checked. Output_Result.png shows the loaded and started demo program I was just working on. Another subfolder "publish" contains a "setup.exe" that should install the IDE. I'd like to get feedback, if that thing runs without any problems. But what has to be done? Well... Perhaps it is best to show my setup: E:\TI99 mame64.exe >roms ti99_*.zip >hash ti99_cart.xml (thanks again, mizapf!) >cart editass.zip minimem.zip exbasic.zip >disk *.dsk >hard *.chd This should be enough to start MAME using e.g. ti99_4ev as machine. Try it... mame64 ti99_4a If successful, try inserting a cartride: mame64 ti99_4a -gromport single -cart exbasic If successful, try connecting a peb with a hfdc in slot 8, a disk drive connected and a disk inserted: mame64 ti99_4a -gromport single -cart exbasic -ioport peb -ioport:peb:slot8 hfdc -ioport:peb:slot8:hfdc:f1 525dd -flop1 disk/flopdsk1.dsk whew... After the first start of MAME there will be a few more subdirs like cfg, nvram etc. You might like to start MAME with -createconfig and edit the output mame.ini to suit your needs. I added cart and cart2 subdirs to the roms path, disabled the info screen at startup and the like... Then I added a subdir >xdt99 xas99.py xdm99.py xbas99.py >lib vdptools.a99 >projects >gmode gmode1.a99 etc. The "lib" folder contains a "vdptools.a99" file right now. There are only a few routines to avoid "BLWP VSBW" etc. in it. The "projects" folder contains the, as you already might have guessed, projects I am working on - for example a "gmode" subfolder. And in the "gmode" folder there are gmode1.a99, tmode.a99, mulcol.a99 and bitmap.a99. With this setup the settings on the XDT and MAME tabs should be self explanatory, kind of... The right hand side shows extensions for the filenames. For example the source "gmode1" gets expanded to "gmode1.a99" for the editor, is compiled into "gmode1.obj" and will become "GMODE1O" when copied to the TI disk. You may change the settings on the MAME tab and can use the IDE purely as a frontend, if you like. The "run" button will start the emulator without fiddling around with an assembler or anything else. BTW: Settings are loaded at startup of the IDE and saved when the IDE is closed or any external program is called. The IDE tab is the "all singing, all dancing" desktop for your development. The left box lists all subdirs aka projects, the right box lists the source files in that (selected) project. The selection is shown additionally in the two textboxes in the upper right (for later extensions). The "edit" button starts the editor, the "assemble" buttons starts the xdt99 cross assembler. It creates the object, image and rpk files, if checked. If "all" is checked, not only the actual selected source but all within the project will be assembled. The "disk" button creates the disk to be mounted for the emulator. It copies the source, list, object and image files, if checked. Again: For "all", if checked. Additionally it can create a DSK1.LOAD to show the contents of the disk and / or load and run the object file of the selected source. The "emulator" button starts the MAME emulator with the configured devices. If set up properly you might select "TI Extended Basic" from the master selection, get the disk contents displayed and after "please wait..." the compiled program should start. The "ADE" button is a shortcut: (A)ssembler, (D)iskManager and (E)mulator - all in one shot. So after editing / saving the source the test only needs 1) click on "ADE" button, 2) any key at the master title screen 3) "2" for XB, then wait... and enjoy! The menu at the top has no function as of now. The status bar at the bottoms shows info about running external tools to the left, "idle" to the right otherwise. Have fun! Michael
-
I am writing some assembler code with the Editor / Assembler. When I assemble the code and use PIO as the list file name I get a DSR ERROR : 0302. If I leave the list file name blank or list to disk I have no issues and the code assembles with no errors. I am able to print a disk catalogue to PIO from the Disk Manager 2 module but I have not tried printing any other way than from disk manager and E/A. I have had this same issue with a Lexmark printer and an Epson printer. My assembler options are RLS. Any ideas what the issue might be?
-
I'm working on several different TI-99/4A related projects at any time (there's a Top 10 out of 146). Surely giving it more thought than actual coding. Most certainly less than an hour of coding per week. Much is design and decisions anyway. Committing is perhaps crucial but then again. Real life is a bitch. Lately I've got this headache. Right now the plan is; get away from the computer, get away from screens - tv and gaming, get some exercise, go for a walk and get some fresh air, be positive and enjoy, be serious, commit and take responsibility, take action and stick to it, navigate and listen, and be there for the family. Your input is appreciated.
-
merryc.bin merry.rpk - - - - - Things to do: * Christmas music * Christmas tree * Something else ...
-
Since the game is still WIP, I decided that it is better to continue here. Below you find the latest versions: Robot_City_20191110.zip Robot_City_20191118_RC1.zip Robot_City_20191124_RC2.zip Robot_City_20191125_RC3.zip Robot_City_20191126_RC4.zip Robot_City_20191201_RC5.zip Robot_City_20200425_RC6.zip Robot_City_20200426_RC7.zip Robot_City_20200427_RC8.zip
- 139 replies
-
- 23
-
- atari 2600
- assembler
-
(and 1 more)
Tagged with:
-
I would like to serve this topic as a discussion on the BASIC Ten-Liners Contest, especially the two areas: 1. Removal of the FREI category this year, which I believe is unreasonable and doesn't help the contest in any way. - Because the FREI category was established the previous year, this year I have been experimenting a lot with what kind of functionality I can fit into 10 lines of hexa code (about 2.2 KB of assembler code) - I just checked my source code, and I wrote over 5,000 lines (yes, five thousand) of assembler code, figuring out the best compromise between performance&size of the code for each component of the game - It was very exciting finding out what kind of functionality (some quite surprising and unexpected) can be fit within that limit - Hence, it was quite frustrating to see the category removed - For as long as there have been magazines with BASIC listings, inlined ASM code was always integral part of the charm of BASIC - since it doesn't in any way affect the other categories, I really see no reason why it should be removed - the only thing the removal achieved was two less entries for 2019 from me (and who knows how many other people were in same situation) TLDR: It can open up a new uncharted territory of games possible in 10 lines. 2. Inclusion of Compilers (as a separate category) - if my understanding of rules is correct, the only BASICs allowed are the ones that have an editor on the target platform (e.g. you must be able to type the program on an actual Atari (or other computer)) - this would rule out the compilers that exist on PC only - because of my recent work on Lynx, 2 weeks ago I have created a PC-based 6502 compiler (by modifying my Jaguar's 68000 & GPU RISC compiler) of a high-level language that resembles C, and feeds into the cc65 linker toolchain - it would be relatively easy to change the syntax of the language to be BASIC-like - there would be no Atari-based editor or compiler, as I really see no point in creating yet-another editor. - this can however bring the increased productivity of PC-based workflow (Notepad++, Photoshop, etc.) and increase the quality of the target application that is otherwise utterly impossible to achieve by purely typing program on a physical HW TLDR: It can further push the boundary of 10-liners due to much higher execution speeds of compiled code and increased work productivity on PC. It's important we know about this by the end of November, ideally. Posting a contest announcement thread on January 31 will be definitely too late for me (as I will be busy with Jaguar in Q1, especially around March) and I'm sure others would love to know too, as for us there are only 2 options: - resume/start the ASM coding for the 10-Liners Contest - ignore the Contest altogether
-
Hi, I have written a short assembler routine that allows BASIC programs to use SIO. The SIO Device Control Block at $300 needs to be set up correctly in BASIC, then the assembler routine called with a USR statement. I've made a GitHub repo for it at https://github.com/e474/USRSIO - this also includes an ATR with the assembled code, and a short BASIC program showing how to load and use the assembler. This is the first git repo I have worked with/published, so I am not 100% sure I have done so correctly, though I haven't found any bugs with it yet. Please let me know if you have any feedback. The code was written with the help of WUDSN and ATASM on Linux. Hope this helps anyone interested in this subject.