Jump to content

Fredrik Öhrström

Members
  • Posts

    72
  • Joined

  • Last visited

Everything posted by Fredrik Öhrström

  1. Try this: Add line 1 and 2 below to your program. Run and there is an error message and you have jumped from x basic to ti basic. 1 !@P- 2 CALL COLOR However this does not work if you have the memory extension connected.
  2. Heh! I can confirm it does work! Paste the first program for standard ti994a into nivelleringslikaren editor and download basic.bin. Put it on an empty dsk: imgtool put v9t9 sandbox.dsk basic.bin ESC mame ti99_4a -window -ioport peb -ioport:peb:slot8 bwg -flop1 sandbox.dsk OLD DSK1.ESC RUN Bam! An animated Hello World runs over the screen! 😁 You can even list the program before you run it.
  3. Now come to think about it, the sandbox escape described here is just a string after open, and with the current editor we can generate any string. I used binary string values for my compressed Holidays demo some years ago. I took the first example program here and genereated three ti994a_basic compatible programs: https://forums.atariage.com/topic/162941-assembly-on-the-994a/page/11/?tab=comments#comment-2849894 And unrolled three strings: ... for standard TI994a 100 OPEN #1:"\x03\x75\x80\xA8\xA5\xAC\xAC\xAF\x8C\x80\xB7\xAF\xB2\xAC\xA4\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x82\x02\x00\x02\xF4\x02\x0B\x40\x00\x06\x00\x13\xFA\xD0\x6F\xFC\x00\x0A\x11\x17\xFC\xD7\xE0\x83\xF7\x02\x02\x83\x4C\xD7\xCB\x05\x8B\xD0\x72\x13\xF2\xDB\xC1\xFF\xFE\x10\xFB\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" ... for alt TI994a 100 OPEN #1:"\x03\x72\x80\xA8\xA5\xAC\xAC\xAF\x8C\x80\xB7\xAF\xB2\xAC\xA4\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x82\x02\x00\x02\xF4\x02\x0B\x40\x00\x06\x00\x13\xFA\xD0\x6F\xFC\x00\x0A\x11\x17\xFC\xD7\xE0\x83\xF7\x02\x02\x83\x4C\xD7\xCB\x05\x8B\xD0\x72\x13\xF2\xDB\xC1\xFF\xFE\x10\xFB\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" ... for v2.2 TI994a 100 OPEN #1:"\x03\x4e\x80\xA8\xA5\xAC\xAC\xAF\x8C\x80\xB7\xAF\xB2\xAC\xA4\x81\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4A\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x83\x82\x02\x00\x02\xF4\x02\x0B\x40\x00\x06\x00\x13\xFA\xD0\x6F\xFC\x00\x0A\x11\x17\xFC\xD7\xE0\x83\xF7\x02\x02\x83\x4C\xD7\xCB\x05\x8B\xD0\x72\x13\xF2\xDB\xC1\xFF\xFE\x10\xFB\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" Anyone care to test if the generated program escapes the sandbox?
  4. Yes @Retrospect! I noticed that it is possible to generate code that crashes in weird ways. I could add some cool hacking features, if you give me a hint of what we would like todo. 1) Is it possible to specify the loading address for the basic program in memory? Then we could create a basic program that loads into a nice image directly (unless we have a memory expansion?). 2) I can compress the program by re-using line number to content pointers, to further compress the program? Or execute parts of a previous line? 3) The line lenghts are already ignored! Woho! 4) Put some hard coded bytes somewhere in the program block, just because. So that we can write the Basic sandbox escape in this editor.
  5. Very nice! Compiles quickly and runs great!
  6. Many thanks! Is there some example assembler somewhere on how to read the tipi mouse?
  7. What are the options for connecting a mouse to a TI 99/4A ? Any method that is more common than the others? Thanks!
  8. You can also try the generated tape sounds from this page: http://nivelleringslikaren.eu/ti994a_basic
  9. I am glad you like the game! Actually the game's name is, as you say ChampioMax, but as an in-game joke, I made the game make a spelling error when it starts. It initially prints ChampioMask (mask means worm in swedish) and write "FÖRLÅT, FEL" which means (sorry, wrong) and then corrects it to ChampioMax.
  10. If you need a reference sound you can try http://nivelleringslikaren.eu/ti994a_basic/ The sound volume in your tv/monitor should be approx the same for the tape sound as the beeps when the machine is turned on.
  11. I believe the 9900 cpu is a bit stupid, it will always perform a read before a write.
  12. The linked VDP routine is just a blwp into the ROM routines. The actual code is: LI R0,xxxx LI R1,yyyy LI R2,zzzz BLWP >wwww B *R11 Then each subroutine, patches this code! ? With particular values for x,y,z and w suitable for VMBW,VMBR,PEEKV and POOKV. Then there is simple test case: Line 30: fill screen memory with a pattern. Line 40: Use VMBR to copy 768 VDP bytes into console expansion memory at 9478. Line 60: fill screen with a different pattern. Line 70: Use VMBW to copy the screen into offset 10246. Loop 80-90: Copy the two saved screens into the VDP memory using vmbw, flipping back and forth. The flip is quick, since the ROM routine is pretty quick, at least in comparison to the basic CALL VMBW, which is sloooow, and of course the LOADS to patch the code takes time as well as the actual LINK call. But I have forgotten why I do a CALL POKEV(-30971,0) maybe I set some color?
  13. In 1988 I wrote a CALL LOAD/LINK implementations of VMBW, VMBR,POKEV and PEEKV for normal Extended Basic + Memory expansion. You can read the X-basic program on page 9 in this pdf: http://nivelleringslikaren.eu/nittinian/nittinian_1988_nr3.pdf
  14. Here you can find plain and extended basic games in bin files format, suitable for uploading into the editor directly: http://nivelleringslikaren.eu/nittinian/Spel/index.html
  15. Hi Nateo! As Acadiel said, you can try my web page from a computer: http://nivelleringslikaren.eu/ti994a_basic/ Just press "Play Tape" and OLD CS1 on the TI. (Firefox or Chrome works) A Computer might be able to raise the volume higher than your phone. When the volume is enough, the beeps through the TV speaker when starting the TI should sound approx the same volume as the tape sounds through the TV speaker. You can find basic programs in TIFILES format that you upload into the webpage and then send to the TI through the audio cable. If you find a disk with basic programs you can extract the TIFILE from the disk image using for example the mame tool "imgtool".
  16. That is nice! What tech do you use to get them side by side on the same display?
  17. When I did my first programming course at university 1992, I did this in an interesting way. The assignment was to extend an Eliza program written in Scheme (lisp dialect) and I accidently pasted parts of the source code at the running prompt. To that the program responded: Maybe in our fantasy we quote each other?
  18. Ah, this is indeed very interesting!
  19. Swedish ad from 28 nov 1982. The price was 2995 SEK inc tax for the console only, I think. 6SEK~=1USD in that year so 500$
  20. I can't find them on whtech yet. Did someone upload them?
  21. I fixed the link to 1991-3 and made sure 1979-3&4 is there as well. I scanned 1983-1989, apersson850 (Atariage member), Jan Alexandersson and Claes Schibler scanned the rest. Whew, a lot of pages. Apersson850, Jan and Claes were also long time contributors/editors to this magazine. Will they be available here: ftp://ftp.whtech.com/magazines/Programbiten ? You can actually play some of the games published in the magazine, if you follow the game links from the list of contents, you get here: http://nivelleringslikaren.eu/nittinian/Spel/ I put a slightly modified js99er behind a picture of an old TV that I have. It autoloads the basic program.
×
×
  • Create New...