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 again, 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 2600 enhanced Berzerk cart + some cash. Note: I am also looking for an Atari2600+ so I would do a trade for one in new condition.
-
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 2600 enhanced Berzerk cart + some cash. Note: I am also looking for an Atari2600+ so I would do a trade for one in new condition.
-
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_fbForth02.a99 ...lee -
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:
-
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 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
-
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.
-
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
-
2019.12.29 I've found a bug, that only shows up in the disk version here at my end. I forgot to clear a memory location used for scoring. Files updated. blockc.bin block.dsk Filename: BLOCK blockbuster.instructions.pdf - - - - - The idea will be to insert pairs of colored blocks into two piles, one on either side of the screen. Create a group of three or more adjacent blocks of the same color and they'll disappear, gaining you points. Pile up too many and you lose the game.
-
snakec.bin - - - - - Origin https://en.wikipedia.org/wiki/Snake_(video_game) Back in 2005 I did a routine for scrolling a line of text. Added a few bits to make a demo. It scrolls the text and reacts when you press fire, but otherwise stalls / stalled (wasn't brought any further).
-
... that the TI Assembler had a bit shift. Never read that in the ED/AS manual. As we all know, the assembler can resolve simple arithmetic at assembly time to calculate addressed, but I didn't know it could do bit shifts. The symbol // is used for a bit shift, and it does a right shift, shifting in zeros on the left: MSB EQU >8000 ; switch on MSB BIT14 EQU MSB//1 ; ooh! nice! BIT13 EQU MSB//2 ; splendid!
-
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)
-
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.
-
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
-
Original release: restc.bin Instructions: restless.ii.instructions.onepage.pdf Request. Aliens have colors: rest.color.c.bin Request. Stars in the background take a break. rest.ciro.c.bin - - - - - Below is an early XB game, also now known as "Restless I". Thread goes ahead and develops "Restless II", a game written in Assembly and released as a binary for cartridge. Move your ship left and right using the joystick. Shoot by pushing joystick up. 100 CALL CLEAR::CALL SCREEN(2)::CALL MAGNIFY(3) 110 CALL CHAR(64,"01010103070F001B376FDF00D47F1F03808080C0A0D000B8B4DADD0055FEF8C") 120 CALL CHAR(68,"0043AF19193F3F78073B72637339100001C2F42828F4F43AE0DCCEC6CE9C08") 130 CALL CHAR(72,"0103030301010101010100010100000180C0C0C08080800080808080008") 140 CALL CHAR(76,"000000107C3828000703117D39280000000020F8701040E0FCF8F0B01") 150 CALL COLOR(6,5,1)::FOR X=1 TO 20::CALL HCHAR(X,RND*32,76)::NEXT X 160 CALL SPRITE(#1,64,16,170,96,#2,68,16,10,96,2,0,#3,72,10,200,256) 170 CALL JOYST(1,X,Y)::IF X THEN CALL MOTION(#1,0,X*4) 180 IF Y=0 THEN IF RND>.8 THEN CALL MOTION(#2,1,RND*32-16) 190 IF Y THEN CALL POSITION(#1,Y,X)::CALL SPRITE(#3,72,10,154,X,-16,0) 200 CALL POSITION(#3,Y,X)::IF Y>154 THEN CALL DELSPRITE(#3) 210 CALL POSITION(#2,Y,X)::IF Y>154 THEN CALL DELSPRITE(#3)::Y=1::GOTO 230 220 CALL COINC(ALL,X)::IF X=0 THEN 170 ELSE Y=2 230 CALL MOTION(#1,0,0,#2,0,0,#3,0,0)::FOR X=3 TO 16::CALL COLOR(#Y,X)::CALL SOUND(-300,-6,(X*2)-6)::NEXT X 240 CALL PATTERN(#Y,76)::FOR X=3 TO 16 STEP .2::CALL COLOR(#Y,X)::NEXT X::GOTO 160
- 136 replies
-
- 11
-
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:
-
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:
-
Hi, I found no easy to use code for loading and storing on a SaveKey or AtariVox. Therefore I am presenting my code here. All it takes are: add the attached include file to your code's directory define the three variables/constants at the beginning of the code call WriteSaveKey for storing your score etc. call ReadSaveKey for reading what you have stored Notes: if you have multiple scores to store (e.g. different game modes), you have to modify the address used in SetupSaveKey. the X register is not used in any i2c subroutine. after calling WriteSaveKey you must wait at least 5ms (~80 scan lines) before accessing the SaveKey again. update i2c v2.3 attached, fixes unwanted noise issues when using an AtariVox skBuffer = <score RAM> ; define the RAM address you want to store SK_BYTES = <n> ; define how many bytes your want to store SAVEKEY_ADR = $xxxx ; ask Albert for a free slot! include "i2c_v2.3.inc" ; a highly optimized (for space) version i2c_subs ; this makes the i2c macros of the include file known to the code ;------------------------------------------------------------------------------- WriteSaveKey SUBROUTINE ; total cycles = 1923 (for 3 bytes) ;------------------------------------------------------------------------------- ; setup SaveKey: jsr SetupSaveKey ; 6+927 bcc .noSKfound ; 2/3 ; write high score: ldx #SK_BYTES-1 ; 2 = 937 .loopWriteSK lda skBuffer,x ; 4 jsr i2c_txbyte ;6+296 transmit to EEPROM dex ; 2 bpl .loopWriteSK ; 2/3=932 ; stop write: jsr i2c_stopwrite ; 6+42=48 terminate write and commit to memory .noSKfound rts ; 6 ;------------------------------------------------------------------------------- ReadSaveKey SUBROUTINE ; total cycles = 2440 (for 3 bytes) ;------------------------------------------------------------------------------- ; setup SaveKey: jsr SetupSaveKey ;6+927 bcc .noSKfound ; 2/3 ; start read: jsr i2c_stopwrite ;6+42 end of "fake" write jsr i2c_startread ;6+284 Start signal and $a1 command byte ; read high score: ldx #SK_BYTES-1 ; 2 = 1275 .loopReadSK jsr i2c_rxbyte ;6+333 read byte from EEPROM cmp #$ff ; 2 EEPROM slot empty? (we are assuming $ff for uninitialized space) bne .skipEmptySK ; 2/3 no, skip clear lda #0 ; 2 clear EEPROM slot .skipEmptySK sta skBuffer,x ; 4 dex ; 2 bpl .loopReadSK ; 2/3=1061 ; stop read: jsr i2c_stopread ;6+92=98 terminate read .noSKfound rts ; 6 ;------------------------------------------------------------------------------ SetupSaveKey SUBROUTINE ; = 927 ;------------------------------------------------------------------------------ ; detect SaveKey: jsr i2c_startwrite ;6+312 bne .exitSK ; 2/3 ; setup address: clv ; 2 lda #>SAVEKEY_ADR ; 2 upper byte of address jsr i2c_txbyte ;6+296 lda #<SAVEKEY_ADR ; 2 lower byte offset jmp i2c_txbyte ;3+296 returns C==1 .exitSK clc rts ; 176 bytes in total (less if you inline the subroutines) I hope this answers all questions. Else let me know. SaveKey & AtariVox memory allocation list i2c_v2.2.inc i2c_v2.3.inc
-
I was able to download diskassembler, but have no idea how to use it. Does anyone know where I can get the manual?
-
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:
-
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!
-
minec.bin minesweeper.instructions.onepage.pdf - - - - - I got sidetracked (again) and spent a few hours on making perhaps yet another version of Minesweeper for the TI. The link above tells you a little something about the game, rules etc. As of now you can't play it, but please do test and report. Version 0.1 is attached here: You can move the cursor around. And you can press 1, 2 or 3 to start / generate a new game. So obviously there's a few things to add. What I like is how relatively fast a new game is generated. The premise is, and pretty much has been with many of my efforts, stock TI, no memory expansion, and game on cartridge in a Atarisoft style of 8K or 16K ROM only. We're at 35% of 8K capacity, and plenty of room for saving bytes later if necessary.
-
#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*