ATARI FAST data read using Assembly language in BASIC

Ғылым және технология

Learn how to read data from disk fast using small assembly routines in Atari BASIC
Display Lists
• Display List Programmi...

Пікірлер: 46

  • @Bawn47
    @Bawn4710 ай бұрын

    Great vid, brings back memories of Atari Basic programming, I still remember using that USR call with the 7-char string to read files from disk. There's a trick in Atari Basic to initialise a string array quickly. Instead of FOR X=1 TO 8194:A$(X)=" ":NEXT X try A$=" ":A$(8194)=" ":A$(2)=A$ It's pretty much instantaneous!

  • @8bitandmore

    @8bitandmore

    10 ай бұрын

    Yep your correct! I just tried it. Thanks for that tip amazing.

  • @Steppke79

    @Steppke79

    10 ай бұрын

    AFAIK you can just do an A$(8194)=" " BASIC just remembers the length (the last used byte) of each string, so this assignment just sets the length of A$ to 8194 without writing or checking whats in it. So if you just need 8K of memory to write into it, do DIM A$(8192): A$(8192)=" " And yes, 8K is 8192, not 8194 ;-)

  • @8bitandmore

    @8bitandmore

    10 ай бұрын

    Thanks for clarifying. I was wondering when someone was going to catch the 8194 error LOL

  • @Steppke79

    @Steppke79

    10 ай бұрын

    @@8bitandmore You could also DIM your A$ 7 Bytes bigger and put your machine routine onto the end. This way you save one string assignment: DIM A$(8201): A$(8195)="hhh*LVd" This way the string is reserved (but not written to) and your routine is ready to be called via Z=USR(8195,16) BASIC is fun! ;-)

  • @Bawn47

    @Bawn47

    10 ай бұрын

    Yes, that will work to initialise a string of that size, but I think it will just contain whatever was in memory at the time. To fill it with a specific byte value in every position, it needs the three assignments. I just rolled with the 8194 🙂

  • @argonwheatbelly637
    @argonwheatbelly63710 ай бұрын

    Wow! This is something I haven't seen in decades. Made me whip out my Atari 800 emulator. Awesome video!

  • @8bitandmore

    @8bitandmore

    10 ай бұрын

    Glad you enjoyed it!

  • @takingbytes1265
    @takingbytes126510 ай бұрын

    Yeah, I remember that Halloween demo taking forever to load when I ran it years ago! I'm excited to see you back! I am going to try and fix my 800xl this weekend now!

  • @carl160269
    @carl16026910 ай бұрын

    Brings back memories of a tape copier I wrote, so I could back up /cough/ my games cassettes. Unfortunately I didn't have an assembler back then, and had to have basic loaded, so could only back up smaller 16k games rather then the 48k ones.

  • @michaelstoliker971
    @michaelstoliker97110 ай бұрын

    I used pretty much the same code to put together a picture loader to load images from a ram disk on the ICD MIO, which I was demonstrating at the Atari Exposition in Allentown, PA. I was annoyed by a picture slide show running on an ST computer on a nearby table. The guy at that table said something like "don't you wish your 8-bit could be this fast?" So I moved a bunch of bitmaps from the library I had put on the hard disk we were demonstrating, and cobbled together a BASIC program to load files from the ramdisk. Maybe the files were smaller than the ones on the ST, but they loaded faster then the images on the ST, so WIN!

  • @8bitandmore

    @8bitandmore

    10 ай бұрын

    Wow what a great story. I tell you these little machines are gems. They can do amazing things with the right technique. I am currently reverse engineering the Swan Demo written for Xanth Systems by Michael Park. I understand how he did the demo so now I want to create 2023 version.

  • @Soundtrackspecialist

    @Soundtrackspecialist

    10 ай бұрын

    This would be amazing if you have time to do this. Winter CES 1985 brought to 2023. These demos are legendary. ❤

  • @CallousCoder
    @CallousCoder10 ай бұрын

    You on fire with your atari vids. NOT COMPLAINING! :D

  • @8bitandmore

    @8bitandmore

    10 ай бұрын

    Glad you like them!

  • @CallousCoder

    @CallousCoder

    10 ай бұрын

    @@8bitandmore As an old commodore guy (and ST later), who now owns two Atari 8 bit machines, I learn some new stuff from your vids. And between you and me,I am actually very impressed with the XL/XE; if you repeat that to anyone, then I am forced to.... well you know what ;) They unfortunately did extremely poorly here in Europe, otherwise it could've probably been the C64 killer, despite being so much older.

  • @Fractal_CZ
    @Fractal_CZ10 ай бұрын

    Absolutely fantastic. Even after all those years, I find the atari memory map structure full of rabbit holes and interesting parts :). I'm glad you find the time to do this!

  • @8bitandmore

    @8bitandmore

    10 ай бұрын

    Glad you enjoyed it!

  • @stephenelliott7071
    @stephenelliott707110 ай бұрын

    Clearly of all the computer systems the 8-bit systems really benefitted the most from some assembly language. Amazing demonstration of mixing in some asm, great video!

  • @timmyt1232
    @timmyt123210 ай бұрын

    I remember I made a seek and find basic program. You would enter all the letters and then it would search for the words in it. Later, someone made one in the Antic magazine. He used machine language to search for the words which made it a lot faster than mine. Other than that, mine was better. :)

  • @8bitandmore

    @8bitandmore

    10 ай бұрын

    That's a great story! Thanks for watching and your support!

  • @bitoxic
    @bitoxic10 ай бұрын

    That was interesting to see the code. Neat demo for Halloween ! 🎃

  • @8bitandmore

    @8bitandmore

    10 ай бұрын

    Thanks for watching!

  • @John-uc6gb
    @John-uc6gb4 күн бұрын

    -Good video, really liked it. Have to go back to the game programs I wrote on the ARARI 800 XL and the 800 XE to see how I wrote the load. I wrote a full-length Ultima type game in the middle 80"s Made me curious. Thank you.

  • @edbrown1166
    @edbrown116610 ай бұрын

    More great content! Could you let us know where we can get our own Bruce Lee coffee mug? Just wondering how fast your original basic program would run under TurboBasic XL? I used to code in TB waaaay back and was very happy with how much faster programs would run. That's also before compiling the program to make it run even faster again. A tip I can offer is to place all your loops as close to the top of your program as possible. The reason is that Atari Basic scans through each line of code (from top to bottom) when you use GOTO. Atari Basic has no idea where each line starts which is why it needs to scan through the code to find the line it needs to GOTO. Loops would benefit a lot when placed at the top of your program. Keep it coming! I absolutely love it!

  • @8bitandmore

    @8bitandmore

    10 ай бұрын

    If I can enough viewers here to commit to purchasing a mug I will do an order. If anyone else would like one let me know via comments and I will have a batch created. As for the speed under Turbo Basic it would PROBABLY run faster but in reality the demo was made as a teaching tool and not really for optimized code. For SURE it can be optimized way more than it is. thanks for watching!

  • @christopherdavis5544
    @christopherdavis554410 ай бұрын

    Always interesting videos, thank you. You kept referring to A$ as an array, whereas it's just a string. There are no string arrays in Atari Basic, just numerical ones. Why do you use list and enter to save and load your programs? These are very slow compared to the Save and Load commands. As Bawn47 said, using your method to initialise a string is painfully slow - use his tip. 8K is 8192, not 8194! Why don't you use Turbo Basic XL - it's structured and much faster, and you can say goodbye to GOTO's and spaghetti code. Great demo though. Looking forward to your next video. Regards, Chris

  • @8bitandmore

    @8bitandmore

    10 ай бұрын

    BASIC B will add 16 bytes at the end of each SAVE, eventually trashing the program. A LIST "D:PROG.LST", ENTER "D:PROG.LST, followed by a SAVE "D:PROG.BAS cleaned up the end garbage. It's true it saves some space but after learning of this bug when I was a teenager I stuck to "listing" the program to disk. Besides you can use any text editor to edit a listed basic program. Another feature of using list it to merge or append one program listing to another since using "enter" to load a listing does not erase what is already in memory

  • @cbmeeks
    @cbmeeks9 ай бұрын

    I have several Atari's. Including a Sophia DVI card in my 800 XL. However, I don't have any software! I'd like to remedy that. I do have one Atari disk drive. But I'd like to get some type of cart or something. Do you have any recommendations?

  • @8bitandmore

    @8bitandmore

    9 ай бұрын

    Check out my video regarding the Ultimate Cart. It allows you to load tons of rom files on the card and run them.

  • @Jkauppa
    @Jkauppa10 ай бұрын

    isnt there better basic commands for streaming files?

  • @Jkauppa

    @Jkauppa

    10 ай бұрын

    not to needing to resort to assembler tho

  • @Jkauppa

    @Jkauppa

    10 ай бұрын

    one way could be to store the image in the code, as static variables

  • @Jkauppa

    @Jkauppa

    10 ай бұрын

    then its read when the code is loaded, fast

  • @Jkauppa

    @Jkauppa

    10 ай бұрын

    automatic data file stream loading

  • @Jkauppa

    @Jkauppa

    10 ай бұрын

    yep data storage in code

Келесі