Using assembly / machine language in Atari Basic

แชร์
ฝัง

ความคิดเห็น • 46

  • @jimtarwater162
    @jimtarwater162 ปีที่แล้ว +1

    This was the computer I owned in college. I used to do all this stuff. Nice to be reminded of it. I learned a lot at that time. Now I see I forgot some things. I still have some Atari computers and recently brought them out to play on them again. Thanks.

  • @avirubinstein
    @avirubinstein 4 ปีที่แล้ว +5

    So cool , I have seen my long time childhood dream come true.
    Fast possibilities programming in basic on Atari. Very very cool :)

  • @NerdThingsAndMore
    @NerdThingsAndMore 2 ปีที่แล้ว +1

    Good info thanks

  • @sajitorio5731
    @sajitorio5731 2 หลายเดือนก่อน +1

    I remember typing these op-codes from ANALOG magazine. Fortunately they included checksums.

  • @conpeo
    @conpeo ปีที่แล้ว

    Oh boy... I wish I had these books back in the early 90s when I was a 10yrs old kid! I was able to write some simple programs in Basic, but back then I never understood what PEEK, POKE, GOSUB, DATA ect. instructions were.

  • @idhan
    @idhan 5 ปีที่แล้ว +6

    what a nostalgic moment was to see you video.. it is just great!! I used to be around 12 years old when I started to combine basic with assembly... after compiling I used to load the assemblies routines as an ascii string (I can't remember exactly how), I created some windows emulation system using assembly and some adapted mouse.. was a lot of fun at that time.. I have almost tears on my eyes.. thank you for sharing!!! you just make my week!!! :-)

    • @chantalslut
      @chantalslut 4 ปีที่แล้ว

      I'm with you :-) I think i was a little older though, can't realy remember. However, i remember how i was blown away by the speed of machinecode compared to basic at the time. Did actualy write programs which i tought didn't work, but where just to fast to be noticed.

    • @idhan
      @idhan 4 ปีที่แล้ว

      @@chantalslut so true!! I remember having a text window system base on basic, trying to emulate those big IBM computers at that time.. and you could see how the windows was displayed line by line, after learning assembly, the windows just pop up instantaneously.. just like you.. I was blown away!! :-)

  • @johantibbelin417
    @johantibbelin417 5 ปีที่แล้ว +6

    Good video. USR() puts number of arguments on the stack. It needs to be pulled before RTS . Try put a PLA instruction first in the program.
    Learned this the hard way recently.

    • @8bitandmore
      @8bitandmore  5 ปีที่แล้ว

      Johan Roos Tibbelin will do... will let you know if it helps

    • @8bitandmore
      @8bitandmore  5 ปีที่แล้ว

      Guess what? YOU WERE CORRECT! I will mention your fix in the next video. Thanks again.

    • @jasonmarch1983
      @jasonmarch1983 4 ปีที่แล้ว +1

      I think it is so you can pass variables back to basic I can't remember what it places on the stack. Nevermind I think I remember it's the other way around you pass data to the ml routine USR (ADR), data to stack. You are expected to pull the value off the stack and use it or trash/pop it with pla. Also there are two registers to easily return data (16bit int) back to basic. If you fill them before returning the value will be in your basic variable. MLValue=USR(mlroutine) MLValue would fill.

  • @drewgonzalez5568
    @drewgonzalez5568 3 ปีที่แล้ว +3

    I think you need to execute a PLA, pull accumulator command before RTS since the USR call will push a byte representing the number of arguments passed by the USR call, 0 in this case to the stack after pushing the return from subroutine address.

  • @BooktownBoy
    @BooktownBoy 5 ปีที่แล้ว +2

    Nice. Like your presentation, please keep them coming. More BASIC and ASM would be awesome.

    • @8bitandmore
      @8bitandmore  5 ปีที่แล้ว +3

      BooktownBoy thanks for watching. I will be making more of the Basic and Assembly for sure

  • @fierodoug58
    @fierodoug58 4 ปีที่แล้ว +2

    Awesome Channel, awesome to have so much Atari content available. Very easy to follow along with you, Great Work...keep it up!

    • @8bitandmore
      @8bitandmore  4 ปีที่แล้ว

      thanks! I love the platform and have a lot of fun working with it, after all isn't that what it's all about?

  • @PeterPrevos
    @PeterPrevos 4 ปีที่แล้ว +1

    Love your work. Takes me back 30 years ...

    • @andrewlewis8795
      @andrewlewis8795 3 ปีที่แล้ว +1

      don't you mean 40 years?

    • @PeterPrevos
      @PeterPrevos 3 ปีที่แล้ว

      @@andrewlewis8795 Indeed - time flies ...

  • @Turjak_art
    @Turjak_art 4 ปีที่แล้ว +1

    Awesome thank you for sharing

  • @scottwillrich2132
    @scottwillrich2132 4 ปีที่แล้ว +1

    Keep these video coming. I'm really enjoying them!!!

  • @csbruce
    @csbruce 5 ปีที่แล้ว +4

    3:20 There were a bunch of parallel-port printer interfaces for the Commodore serial bus also. The 8-bit-computer-compatible printers just didn't keep up with the PC-compatible printers.
    4:56 Lines 100 and 110 are kind of circuitous. Line 100 could just be BEQ LOOP and line 110 can be deleted.
    12:55 Of course, there are many ways to do this automatically, but you could also enter the values into BASIC in hexadecimal and have your loader program decode hexadecimal values.
    20:50 No idea why it doesn't exit as expected. I've never actually touched an Atari 8-bit computer. Does BASIC get testy about alterations to the keypress location or the screen border? Do you need to set up a proper return value for the USR() function? Is BASIC cool about calls to USR() functions in direct mode?

  • @arnetrautmann9783
    @arnetrautmann9783 3 ปีที่แล้ว +2

    Dammit, only 33 years later I finally get the USR-command.

  • @sigmiami
    @sigmiami 4 ปีที่แล้ว +1

    Had all those as a kid very good books

  • @Fractal_CZ
    @Fractal_CZ 3 ปีที่แล้ว +1

    That’s so cool!

  • @eugenetswong
    @eugenetswong 4 ปีที่แล้ว +3

    Did you ever explain if it was possible to do the border thing using only basic? I figure that we need to poke something.
    ***EDIT***
    I found it.
    th-cam.com/video/nYq4Q_dAxF4/w-d-xo.html
    * explains it at 17:49 of the linked video.
    * changes the border colour through each vertical interrupt
    * every time there is a vertical interrupt, we load the value of the scan line and store it as value in colour register
    * memory area 54283 [or D40B] is for the vertical line?
    * memory area 53274 [or D01A] is for the colour and luminance of the background

  • @muratgozu5146
    @muratgozu5146 4 หลายเดือนก่อน

    Hello, thank you very much for the great instructions about ASM language in Atari. I am really interested in. I have Atari 800xl, and typed the same code as you showed, but receiving the error messages when I assembling with asm command. The error messages:
    10 *=$2000 ***error 6
    20 LDX #$FF ***error 6
    .
    .
    What can be the issue? Is the code for Atari ST, so not compatible for 800xl? Thank you for your support, Regards

  • @gryzman
    @gryzman 11 หลายเดือนก่อน +1

    looks like you're returning that hat to the store mate :P

    • @8bitandmore
      @8bitandmore  11 หลายเดือนก่อน

      huh? lol

  • @ralphyrocket5770
    @ralphyrocket5770 4 ปีที่แล้ว +2

    Man, Kick Ass Videos!!!!

    • @8bitandmore
      @8bitandmore  4 ปีที่แล้ว +1

      Thanks for watching!

  • @JeffSmith03
    @JeffSmith03 3 ปีที่แล้ว +1

    Thanks for the tip, I will keep paper away from fire XD

  • @LosDaniellosB
    @LosDaniellosB 3 ปีที่แล้ว +1

    where did you get those books from?

    • @LosDaniellosB
      @LosDaniellosB 3 ปีที่แล้ว +1

      answering my own question after 10 seconds of "intensive" search
      The Atari Assembler - www.atarimania.com/documents/The-Atari-Assembler.pdf
      Mapping The Atari - ia902900.us.archive.org/27/items/ataribooks-mapping-the-atari/mappingtheatari.pdf

  • @eugenetswong
    @eugenetswong 4 ปีที่แล้ว

    **** VIDEO NOTES ****
    1) See next video [th-cam.com/video/OwlAcz6DYzU/w-d-xo.html] for correction to the code. There was a stack error, as mentioned in this video's comment section.
    2) Hexidecimal Machine Code To Be Used In USR: A2 FF 8E FC 02 AD 0B D4 8D 0A D4 8D 1A D0 AE FC 02 E0 FF D0 03 4C 05 20 60
    3) Decimal Version Of Code Above: DATA 162, 255, 142, 252, 2, 173, 11, 212, 141, 10, 212, 141, 26, 208, 174, 252, 2, 224, 255, 208, 3, 76, 5, 32, 96
    4) Code Size: 25 B
    5) See these memory map locations for more information: 512, 54282 [D40A], 54283 [D40B]
    6) See these memory map locations for off tangential information: 53279 [D01F], 53268 [D014]

  • @petrok1rp254
    @petrok1rp254 3 ปีที่แล้ว

    So sorry to bother again. Do you think that you could be so nice to make vid how to set Sdrive Max to be able to storaging my data/programs on the SD card on Sdrive Max please? I am sure it is possible but I am lost in mounting the drives etc. :( many thanks, Petr

    • @8bitandmore
      @8bitandmore  3 ปีที่แล้ว

      I have a video that shows how to use the SDrive Max check my list and you will see it. thanks!

  • @opentheskyy7
    @opentheskyy7 2 ปีที่แล้ว +1

    We cordially invite you to the "Atari 8-bit Programming" Discord server: discord.gg/GTapZjCsgp

  • @petrok1rp254
    @petrok1rp254 3 ปีที่แล้ว

    Unfortunately it does not works on my 800XL...

    • @8bitandmore
      @8bitandmore  3 ปีที่แล้ว

      What does not work.

    • @petrok1rp254
      @petrok1rp254 3 ปีที่แล้ว

      @@8bitandmore Well sorry to bother... I got only single purple color background when I executed the routine... After proper checking the program I found the mistake in DATA numbers... When I corrected then I am getting same results, whowhoooo… :) I am coming back to Atari world after almost 35years and I am beginner :) Many thanks for all of your educational vids mate! You are my teacher. Best regards, Petr (unfortunately I have just 800XL + Sdrive Max)

    • @8bitandmore
      @8bitandmore  3 ปีที่แล้ว

      @@petrok1rp254 welcome! Enjoy!