Programming Like It's 1979: 6502 Assembly language on the Apple ][

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

A brief overview of the built-in tools on the Apple ][, showing what it was like to program in assembly language before the advent of "real" programming tools -- Watch live at / tleavesdotcom

Пікірлер: 556

  • @GS-oj1zk
    @GS-oj1zk4 жыл бұрын

    Are all IT related people getting this recommended or is it just me?

  • @starplushtv2185

    @starplushtv2185

    4 жыл бұрын

    Nope, not just you lol

  • @crylia8666

    @crylia8666

    4 жыл бұрын

    Every one is lol

  • @simonhansen5038

    @simonhansen5038

    4 жыл бұрын

    All IT related people. Targeting individuals with recommendations would be unethical.

  • @SrIgort

    @SrIgort

    4 жыл бұрын

    Lol

  • @love.ly.

    @love.ly.

    4 жыл бұрын

    Yeah

  • @donjohnson24
    @donjohnson244 жыл бұрын

    Around 1980, I soldered together the COMPUKIT UK 101 to make my first computer and taught myself BASIC. Coincidentally, I was thinking about this recently, but at nearly 80 years old, I couldn't remember how I did machine code programming - and now I know! You mentioned the difficulties of using a line editor, and the one that made me swear was the fact that you could write sub-routines and manually calculate the jump to get there, but if you changed the earlier lines, all the jumps had to be redone. I did eventually get an assembler, but by then I had run out of ideas of things to do on the 6502. Pre-assembler, I coded the game 'rhino' ( a heart symbol being chased around a crossword-type layout) in machine code, and it took me many long nights until 4 a.m. to get it to work. How wonderfully easy it would have seemed with assembler. When my version of rhino did actually run, I then had to put in loads of loops to SLOW IT DOWN 'cos it was ridiculously speedier than the BASIC version. Thanks for this reminder of days gone by.

  • @mrsillywalk

    @mrsillywalk

    4 жыл бұрын

    I was on the Atmos and a Spectrum. They taught me more maths than i learnt at school.

  • @warrax111

    @warrax111

    4 жыл бұрын

    +Don Johnson24 Very interesting story, Don. Thank you, for sharing it. 80's were unique decade, music, movies, and growing computer industry, when only nerds understood it. I love it , I was 90's kid. It has to be very hard to programm in that time. Anyway, I've wrote few programs in BASIC, the longest had 5000 lines, so I understand little bit from it, but I've programmed under DOS with QBASIC of course, in 90's, so I've missed that era of pre-PC 286-486 computers. Anyway, I love to understand those feelings, how people had it in 80's and 70's with computers.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    Lovely story - thank you for sharing!

  • @5Gazto

    @5Gazto

    4 жыл бұрын

    Brilliant!

  • @garychap8384

    @garychap8384

    4 жыл бұрын

    Oh God, I remember hand assembling. I used to call to a jumptable of jump instructions that pointed to routines... then I learned how to hand assemble indirect addressing instructions and started to use a proper call-table. Back then I was 14 and skipping school to hang out in the University library... I managed to steal credentials on their Prime minicomputer (there were dumb terminals in the library and I made a little box to switch terminal lines to steal a session - and I used that session to create a fake login that printed credentials to the library printer). Armed with about 20 user credentials I wrote routines to watch people logging in and out around the building using a who command and a script - and I went around getting terminal ID's and mapping them to locations... just in case I was using a users account and they were sitting at the same table : / Later, I got caught and instead of getting into trouble, I was shown around the Prime, asked clever questions, and when they realised I was actually just super-curious I was given the username 'gary' on their system ... making me the only person not on the computing staff to have their name as a username. It was set never to expire ... they also gave me a library card : ) I just had to promise not to skip school and only use the services in the evenings and weekends. I spent my time helping adults with their 1st year computing homework : )))) After getting into trouble at school, the headmaster marveled at my unusual idea of truancy and permitted me a day-release to spend one schoolday per week at the university or doing my own thing... as long as I knuckled down the rest of the time. So, I'd hang out in lecture halls reading adult books on high level languages, digital electronics and telecoms - whilst classes would file in and out - listening to lectures on sociology, psychology, computing, engineering, math ... it was awesome. It was amazing not to be chased away. They didn't care who sat in on lectures... you could get a free education and nobody looked down on you for being young. Being treat as an adult made SO much difference to my education. I still occasionally code sections in ASM today, although I'm more of a C, Verilog, VHDL and HLSL/GLSL guy. I haven't hand-assembled in about 35 years... but I go sometimes get into 'Magic' and hand-draw machines in silicon for the MOSIS process, laying down N and P-doped wells, polysilicon and metal layers... simulating, doing the timing and heat closures. I guess that's a little like hand-assembly. My idea of fun has always been a little twisted : ))) 5 years ago I got an adult ASD diagnosis - it turns out I am autistic, which probably explains a lot XD Big love to anyone who ever took the time to learn to hand assemble. And thank you to Don for bringing back those memories of an awkward young me, sitting on the floor surrounded by pages and pages of quadrille paper, where I sat cracking away at bitfields and generating strings of MC to try the next day.

  • @starburstdragon
    @starburstdragon4 жыл бұрын

    In 2059 : video : Programming like it's 2019 :)

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    Everything would be Javascript and Python!

  • @superslayerguy

    @superslayerguy

    4 жыл бұрын

    "So what you're gonna wanna do is go to stack overflow..."

  • @ltxr9973

    @ltxr9973

    4 жыл бұрын

    I don't want to program like it's 2019 though :(

  • @rkan2

    @rkan2

    4 жыл бұрын

    @jonny j You'll probably just be thinking of a program and some other program will write it...

  • @MarZandvliet

    @MarZandvliet

    4 жыл бұрын

    We'll all be dead by 2059 if we keep programming like it is 2019

  • @pipe2devnull
    @pipe2devnull Жыл бұрын

    I liked drawing 6502 programs with pencil and printer paper. The arrowed lines showing loops and jumps turned them into artwork.

  • @CoderOfBugs
    @CoderOfBugs5 жыл бұрын

    I wish I would have been able to experience the early days of computing. Everything is so abstracted these days that it's hard to get a grasp on what is actually happening (which is kind of the point, I know). I just recently started to learn about 6502 assembly and I found your videos. Thank you for sharing your knowledge.

  • @therealkustomizer

    @therealkustomizer

    5 жыл бұрын

    There are a lot of emulators, books and documentation out there. Just search !!!

  • @careygreen4274

    @careygreen4274

    4 жыл бұрын

    Lol yes and no. It was tedious but so primitive that you couldn't get stuck. I've been trying to compile a Unity game for weeks lol

  • @careygreen4274

    @careygreen4274

    4 жыл бұрын

    @@peterberger3518 fun stuff Great memories

  • @przemekkobel4874

    @przemekkobel4874

    4 жыл бұрын

    6502 is a sweet tiny CPU that mimics features of mainframe machines of that era (and I was lucky enough to learn 6502 ASM as a kid, and then a thing or two about IBM360 architecture, which was a basis for the eastern-bloc computing). Later, I also found 8080's assembly was quite awesome, as well as 68000. But if you'll ever feel like trying x86, just don't. Avoid like a plague. Anyway, stuff I learnt during that time is really what enabled me to pay my bills to this day. I'm not afraid of writing from scratch, and I'm not afraid of complicated. And that's what you get if you are able to create even a few KB of useful 6502 code.

  • @xcvsdxvsx

    @xcvsdxvsx

    4 жыл бұрын

    no reason you cant get yourself an apple 2 today

  • @derstreber2
    @derstreber24 жыл бұрын

    2019: "Here I have set up a stack overflow simulator. I ask it a technical question regarding my javascript program. Entering in all the relevant data of the problem. The simulation, in the form of a simulated user, will first berate me, telling me I don't actually want to do the thing I am asking, subtly hinting that it knows far more about the problem then I do, then hours or perhaps days later another simulated user will respond with an answer. There is a 74.8% chance that this answer is incorrect and does not work at all. There is a 34.2% chance that the program runs but does not do as I require. Additional data may need to be added to the original query. (depending on several factors, this may actually make the problem worse) Now, once I find a correct piece of code that fits my problem specifications I will "copy and paste" it into my integrated development environment (IDE), optional: I will retroactively write some unit tests to in order to be "test driven", and when using git, in order to maintain a clean and tidy version control history, I will be sure to rebase all of my changes on top of the latest commit."

  • @peterpanther8627

    @peterpanther8627

    4 жыл бұрын

    I'd laugh, but this joke is behind at least seven layers of abstractions

  • @catorials444

    @catorials444

    3 жыл бұрын

    @@peterpanther8627 *claps profusely*

  • @ClearComplexity
    @ClearComplexity2 жыл бұрын

    When I turned 6 in 98, I was given two old complete computers filled with some of the best expansion/accelerator cards you could get for the period along with great displays and disk drives; an Apple IIGS Woz Edition and a Macintosh IIci. I started learning Assembly as soon as I got a book on it for the IIGS soon after and then moved to writing Assembly and C for both the IIGS and the Mac IIci. Funnily enough, I never really wrote a lot of games. Instead, I wrote programs to create high resolution/color graphics using the tricks on the IIGS I learned from books with swapping palettes and writing trackers to make music. Eventually I started making demos on both machines just to see if I could replicate what I saw Pentium machines doing. Assembly didn't really seem that difficult back then, it helped that the architectures I learned for were simple. Times have changed, now it seems like people can't be bothered to learn even Python when they gain some interest in maybe learning to program.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    2 жыл бұрын

    Great story!

  • @OpenGL4ever

    @OpenGL4ever

    Жыл бұрын

    Today's problem and blessing is the internet and games. This is distracting and takes a lot of time, on the other side it can help you. And if you have a problem that you could solve by programming a tool, you first look for an existing solution on the Internet. As a result, there is a lack of motivation to program something yourself. This used to be easier when all computers were still offline and additional programs cost extra money. All you needed were parents or acquaintances who would buy you a compiler or assembler. If these two did not come with the computer.

  • @ButchAnton
    @ButchAnton5 жыл бұрын

    To fill a range of memory with a value: 1. Assign the value to the first byte of the range of memory. In your example, this would be 800: 00 2. Move the new value into the rest of the range. If you want to fill 800-807, first note that 800 is already done in the first step. Second, note that you fill one less byte in the range. In your example, this means that we're filling 801-806: 801

  • @s.i.3702
    @s.i.37024 жыл бұрын

    Amazing! You brought me back to secondary school when we learned programming on a 6502 board supplied with HEX keyboard and pinout on 2 registers to switch on\off LEDs + other cool stuff.

  • @cafeinst
    @cafeinst2 ай бұрын

    I had an Apple II plus as a kid in 1980 but did not have good books or an instructor that could teach me what you’re doing. Because of this, I missed out on a lot of what I wanted to learn. Thanks for your videos.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    2 ай бұрын

    Thank you for watching!

  • @giordanob.8515
    @giordanob.85154 жыл бұрын

    My goodness! How great if I could have attendend such a lesson in 1980.

  • @johnsimon8457

    @johnsimon8457

    4 жыл бұрын

    Giordano B. From the video: Lack of documentation and support is an integral part of the experience. 😜 Anything like this would have helped me quite a bit as a kid with a hand-me-down Apple

  • @OpenGL4ever

    @OpenGL4ever

    Жыл бұрын

    @@johnsimon8457 The main problem back then was rather that nobody had a clue and therefore you couldn't ask anyone who would give you a start-up help. If that wasn't the case for you personally, then you were extremely lucky.

  • @johnsimon8457

    @johnsimon8457

    Жыл бұрын

    @@OpenGL4ever I'm listening to John Romero's memoir, "Doom Guy" and sure there's books like Assembly Lines and the Apple II 6502 manual - but even then someone who wants to do game dev has to be a on a ''teenager with no money and desperate to escape their life situation" level of motivation.

  • @glasstronic
    @glasstronic5 жыл бұрын

    Nice! Got my start on AIM65, then Atari130XE, then Apple II. The Apple really got me going because of Merlin. Wrote my own monitor/assembler. It is named S/O/S SyMon III. Similar feel to Apple's approach. Thanks for taking the time to produce/post this. Keep the 6502 ART alive! :-D

  • @KerranKaksi
    @KerranKaksi4 жыл бұрын

    I learned assembly language the same way on the Commodore 64. I can still remember quite many of the opcode values by heart :)

  • @jlinkels
    @jlinkels4 жыл бұрын

    Great video, great educational value. I remember this soooo well. Learned assembly on a PDP-11, and then dropped into Commodore PET 6502 assembly and 6800 assembly (MIKBUG!) for self-developed systems. This was how you really and literally shifted bits around in the processor. And there were even some undocumented opcodes in the 6502. Like Store Immediate IIRC. Those days I wrote assembly with the same easy as writing Python now. Thanks for creating and uploading!

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    Now I want to go look up this undocumented opcodes...

  • @penguin1714
    @penguin17144 жыл бұрын

    In 40 years when all the programmers are using puzzle pieces, C++ will seem too hard. =(

  • @TheBypasser

    @TheBypasser

    4 жыл бұрын

    LOL C++ seems too hard already - just take a look how people ignore INLINEs and STATICs while abusing function calls and doing crazy shit like inter-register MEMCPYs ;)

  • @recklessroges

    @recklessroges

    4 жыл бұрын

    Looking at the young and vibrant Rust community seems to refute that sentiment.

  • @bjarnestronstrup9122

    @bjarnestronstrup9122

    4 жыл бұрын

    @@recklessroges I really love Rust, its like having C and Haskell had a baby which also inherited some C++ and Python genes. I can't wait to see what people will come up with using "procedural macros" and similar features.

  • @TheBypasser

    @TheBypasser

    4 жыл бұрын

    @GloriousTapeworm Although the most compilers have auto-inlining, the 'inline' directive still forces them to do so no matter what (even if the size-aimed optimization mode is active). And even whenever it has no effect it still improves the code's readability ;) Also if you are so "smart" please prove me wrong on the other two things (statics and memcpys that is) ;)

  • @TheBypasser

    @TheBypasser

    4 жыл бұрын

    @GloriousTapeworm F wrong you are. Just to make sure I just tested it in VC2010 compiler in x64 debug build set to full optimization (/Ox, just like in the actual release builds) by taking a look at the assembly listing, and even so the functions declared lacking the 'inline' directive are accessed via the CALL command, while those marked as 'inline' (even not '__forceinline', by the way) are actually recurrent throughout the code as a set of their respective commands. So, you are a proof of my comment about the lack of knowledge (and probably even never compiled a native code) ;) And, most likely, even never looked through your ASM listings believing in the all-mighty compiler doing it all for you (spoiler: it never does). (Though, I must admit, the 'inline' directive indeed has no effect over the 'stock'-configured debug builds, /Od and /RTC1 that is - but who cares about that stuff anyway as it never makes it out yet misguides the newbie coders).

  • @bradleyp3655
    @bradleyp36554 жыл бұрын

    I remember doing assembly on a 6502. I was not an Apple II but a circuit board with a builtin keyboard, composite video, and audio cassette for external storage. It ad BASIC and a hex input prompt for assembly language. I had to write every program on paper in hex with the assembler code beside it. That was 1979 I was 15.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    Sounds like maybe a KIM-1 kit?

  • @dougware5649
    @dougware56494 жыл бұрын

    Ahh, memories of writing code in Big Mac. My first was a screen printer for the MX-80, which turned out better images than most commercial programs (it did some crude bit-wise processing and used a 3.5 dot vertical scroll to give half dot resolution via interleave - much like the screen itself). Those were the days - get home on Friday night, and program until my head hit the keyboard (or I ran out of snacks).

  • @thomasfink2385

    @thomasfink2385

    4 жыл бұрын

    Hello, yes, Big Mac was also my BIG favourite. I disassembled and modified lots of stuff to my needs, like THE INSPECTOR....

  • @VoyagesDuSpectateur
    @VoyagesDuSpectateur5 жыл бұрын

    This brought back memories. I wrote commercial software in 6502 and Z80 assembler in the 1980s. The 6502 was more challenging, due to the limited instruction set, but more satisfying: it forced you to be creative.

  • @SeanJTharpe
    @SeanJTharpe4 жыл бұрын

    Finally, a useful and amazing video gets recommended to me!

  • @MRWALLFan
    @MRWALLFan4 жыл бұрын

    We need more of this.

  • @charlesbaldo
    @charlesbaldo4 жыл бұрын

    Excellent video, you piqued lots of bits in the back of my brain. I worked 6502 on Commodore PET and Apple II both in BASIC and machine/assembler In 79, 80,81 The machine code was so pure, simple and accessible. Back then no google, so tech bookstores , magazines like byte and user groups were the answer to your problems.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    Glad you liked it! And yes, the speed with which you could find answers to questions back then was a lot slower.

  • @YanksOnTop
    @YanksOnTop2 жыл бұрын

    I took LISA Assembler back in H.S. in 82'. We learned by building the game Breakout. Fun times.. Great video. Brings back a lot of great memories..

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    2 жыл бұрын

    Glad you liked it!

  • @theears995
    @theears9955 жыл бұрын

    This is fascinating!

  • @metamango500
    @metamango5004 жыл бұрын

    Great video. Man, I could really have used this advice in about 1985. Really wanted to learn assembly etc, and I didn't motivate and I didn't learn it. THANKS

  • @peterpanther8627
    @peterpanther86274 жыл бұрын

    The PC computing revolution has so much to teach us. Thanks for the video, chai leaf.

  • @MarvelousLXVII
    @MarvelousLXVII4 жыл бұрын

    brings back a ton of memories. I never took the full jump into 6502 programming but learned a lot where I was able to "crack" a Phoenix clone on the Apple 2. It relied on the disk being in the drive so I found out what memory location was used to view the disk and I changed it to NOP which was "No Operation" and it actually worked lol.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    A lot of people got their start that way!

  • @tengkuizdihar
    @tengkuizdihar4 жыл бұрын

    There's a lot of old people in the comment section. Which is nice.

  • @chillappreciator885

    @chillappreciator885

    4 жыл бұрын

    Who did you call the old people?

  • @UshankaMaster

    @UshankaMaster

    4 жыл бұрын

    Experienced programmers.

  • @charlesbaldo

    @charlesbaldo

    4 жыл бұрын

    Happy to be here. I can still out code, out think any youngster and I have wisdom now as well.

  • 4 жыл бұрын

    @Tengku: passive ageism.

  • @trulyspinach
    @trulyspinach4 жыл бұрын

    Thanks for the great content! Pls make more like this

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    I hope to!

  • @jeffr.640
    @jeffr.6404 жыл бұрын

    it reminds me of my college days! thanks sir for the upload!

  • @maxpiantoni
    @maxpiantoni4 жыл бұрын

    Fantastic overview, thanks for making this!

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    Glad you enjoyed it!

  • @Enroxxx
    @Enroxxx3 жыл бұрын

    Thanks for bringing back so many memories! The //e was the first computer I wrote code on.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    3 жыл бұрын

    Same! Glad I could bring a smile to your face.

  • @benjaminscherrey2479
    @benjaminscherrey24792 жыл бұрын

    This hand assembled monitor is where I spent most of my time on the Apple ][. Often this was to code my own programs but even more often it was to figure out how to break the copy protection schemes of the games I wanted to play. Understand that a game might typically cost $24.95 back then. A blank single sided double density floppy disk at Radio Shack was $3.50 (and you'd use a hole punch to make a notch on the other side to make it double sided for twice the capacity). My allowance each week was $5.00! The economics was pretty clear as you might imagine. But pretty soon learning how to hack the machine was more fun than most of the games so I learned to do "real" programming in that monitor in my free time on a school machine since I definitely could not afford my own computer until I got a job in high school and eventually bought a Compaq Deskpro and entered the world of PCs in 1985. But the Apple ][ and Steve Wozniak will always have a special place in my heart.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    Жыл бұрын

    Thanks for sharing your experiences! I did the hole-punch trick too.

  • @OpenGL4ever

    @OpenGL4ever

    Жыл бұрын

    I.e. you stole the income from the game makers.

  • @mglmouser
    @mglmouser4 жыл бұрын

    It's also quite an evolution over previous systems like the Altair where you had to flip binary switches on the front panel to enter those hex bytes.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    Yes, quite.

  • @jgurtz
    @jgurtz4 жыл бұрын

    I like this real-world treatment of the subject. It is curious how we played math blaster and Oregon trail and never a word said about this more interesting material!

  • @Jumpae

    @Jumpae

    Жыл бұрын

    no

  • @michaelhoffmann2891
    @michaelhoffmann28913 жыл бұрын

    Thank you, KZread algorithm, 2 years late. :P That brought back memories. Only 2 weeks ago I stumbled over my hand-commented disassembler output of the Apple disk controller (generally at C600). Plus the machine language course a student/tutor had sent me, a wide eyed kid, hand-written, week by week in the post. My favourite assembler was Merlin (EDIT: wrote this before I watched the video all the way to the end). Sadly so much was lost when I foolishly sold every single bit of my Apple kit, including books and floppies. Few things I regret more. :( I still have various address ranges committed to memory.... $100-stack, $300-general purpose, $400-screen #1 IIRC, weren't there two, just like: $2000 hires1 and $4000 hires2, $C000-various hardware mapping, e.g. keyboard, speaker with $Cx00 used for the addon slots. But I have a horrible memory for names. :D

  • @TheXJ12

    @TheXJ12

    3 жыл бұрын

    $0800 was - I mean IS - screen #2 but it's also the default location for BASIC programs. Applewin is a very good emulator is case of nostalgia. And Merlin (as well as many others) is available as a virtual disk for it...

  • @jeanlemoignan3130
    @jeanlemoignan31304 жыл бұрын

    Aaaaah! Fond memories!!! Thank you for reminding me my youth on a Commodore PET!

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    Glad you enjoyed the video!

  • @ekv
    @ekv5 жыл бұрын

    Great video, more of this please! :)

  • @DaveRoberts308
    @DaveRoberts3084 жыл бұрын

    This brings back a lot of memories. I spent tons of time hacking 6502 assembly with Big Mac, the precursor to Merlin, back in the day. Also ORCA/M later, but it was slower and more bulky than Big Mac, though more powerful.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    I never used ORCA/M, but I know the people who did swore by it.

  • @psour33
    @psour334 жыл бұрын

    That's was the best way to learn what is a CPU and how it works. This was a sort of travel in the unknown.Thank you sir.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    Thank you for watching!

  • @leodeoliveira7480
    @leodeoliveira74805 жыл бұрын

    Wish I had seen this video back in 1981 ...

  • @TheRainHarvester

    @TheRainHarvester

    4 жыл бұрын

    I search every library in 1985 for books ...rode my bike to find them. Couldn't find anything!

  • @gazzacroy
    @gazzacroy3 жыл бұрын

    i used to love assembly on these and the commodore plus 4. nice video i miss them days in some ways lol.

  • @Danhec95
    @Danhec952 жыл бұрын

    Awesome video. I love the 6502 chip.

  • @cellularmitosis2
    @cellularmitosis24 жыл бұрын

    Thanks so much for making this video!

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    You are so welcome!

  • @elmo8696
    @elmo86964 жыл бұрын

    I saw the title, waited to hear your voice, sounded like a professional, I hit subscribe.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    Awww, thanks!

  • @elmo8696

    @elmo8696

    4 жыл бұрын

    @@illegalsmirf You can judge a book from it's cover actually. I got a hint from the title and the way he professionally started the video, the casual way with which he dealt with such old system implies that he is a veteran. That's worth a subscribe.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    @@elmo8696 No need to reply to trolls; they're just trying to waste your time. Live well instead.

  • @nackyding
    @nackyding4 жыл бұрын

    This was really cool. Thanks!

  • @vcv6560
    @vcv65602 жыл бұрын

    The Apple products were great, I was in college (BSEE, 84) when the II+ was the main offering, still a full system was about the price of a small car! Easy to forget how much impact the Commodore offerings had by opening this career to so many new people. Fun to play with all of this now in emulation.

  • @DennisDA
    @DennisDA3 жыл бұрын

    Back in the 80's I had a nice macro assembler for the 6502. I had a lot of fun with it.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    3 жыл бұрын

    Do you remember which one it was?

  • @DennisDA

    @DennisDA

    3 жыл бұрын

    @@TeaLeavesProgramming No, I'm sorry.

  • @ericcindycrowder7482
    @ericcindycrowder74824 жыл бұрын

    In the 80s I loved to program assembly language in my family’s Apple ][ Plus. I didn’t program machine from the monitor, I used the Big Mac assembler.

  • @robj7481
    @robj74814 жыл бұрын

    New Prince song... “Tonight I’m gonna program like it’s 1979” 🎸🥁

  • @Allbbrz
    @Allbbrz4 жыл бұрын

    oh dang... i worked for small company in the begining of the 80's and we had no compiler for 6502 whatsoever but we were pretty gifted with binary so wrote all our small tests and programs straight in hex into the Apples memory so we could get out stuff done... pretty damn fun time, I'll say !

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    Impressive!

  • @stargazer7644
    @stargazer76444 жыл бұрын

    Brings back fond memories, though mine is of Z80 on a TS-1000 and later a TRS-80 Model III

  • @chadsmith8476
    @chadsmith84764 жыл бұрын

    Thanks for the video. Apple ][ was my first micro at a young age and all thru high school.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    Good memories, I hope!

  • @mannhansen9337
    @mannhansen93374 жыл бұрын

    I still have a KIM-1 in working condition. Don't use it very often but I learned 6502 assembly programming on it back in 1980. Now I program Arduinos and ESP8266+ESP32.Turning 60 years next March.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    That's awesome. Go you! Would love to see a video explaining the KIM-1. It was juuuuust before my time.

  • @coldaddysupreme2956
    @coldaddysupreme29564 жыл бұрын

    He hits that enter button with passion

  • @adobo1976
    @adobo19763 жыл бұрын

    Great Refresher! I've not been in the Apple II assembler since High School.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    3 жыл бұрын

    Thanks! What did you use it for back then?

  • @adobo1976

    @adobo1976

    3 жыл бұрын

    @@TeaLeavesProgramming Mainly trying to figure out how to program music since assembly was really the only way to do that on the apple IIe. However, we ended up writing a program that would play the highest pitched frequency in an infinite loop and loaded it up on every apple II in the computer lab right before the teacher showed up. The look on his face was unforgettable.

  • @chuckmuziani6262
    @chuckmuziani62624 жыл бұрын

    Back in the day (mid-1980's) I programmed a "spectrum analyzer scanner" display on the Apple II. I constructed an 8-channel ADC interface (plugged in to an Apple II slot), which was connected to the outputs of a portable 8-channel LED-display spectrum analyzer. My code displayed vertical bars that exactly followed the LED display on the analyzer. I added peak-hold and a few other features. It was one of my first projects programming the 6502 via *opcodes*, not assembly. My other project was a talking blackjack game ("Welcome to blackjack") and it would announce each card dealt. I miss those days!

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    Fascinating! If you still have your code you should make sure it's uploaded to archive.org's Apple ][ collection.

  • @chuckmuziani6262

    @chuckmuziani6262

    4 жыл бұрын

    Thanks for the suggestion but I was lucky to have barely remembered I did those projects, much less to go find the code stored away on one or more out of a dozens of 5.25" floppies scattered in storage. ;-)

  • @tomservo75
    @tomservo754 жыл бұрын

    Ugh this brings back bad memories. I was a Computer Science major and we had to learn Assembly language. Here's the problem. It was not Apple, it was VAX/VMS Assembly... and this was in the mid-90s, so they were obviously so way behind the times.

  • @Breakfast_of_Champions
    @Breakfast_of_Champions4 жыл бұрын

    I learned 6502 assembler on the C64 when macro assemblers were already common. It used the C64 fullscreen editor and I had a monitor program on a cartridge too, so that was already a step better than this Apple ][ setup here.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    Awesome! Did you ever make anything fun?

  • @markcummings150

    @markcummings150

    4 жыл бұрын

    Breakfast of Champions he’s only demonstrating the built-in mini assembler and one other assembler. There were plenty of other assemblers including macro assemblers available.

  • @LetrixAR
    @LetrixAR4 жыл бұрын

    It started to study Assembly on my career and it's really difficult compared to other languages like C++ but I get the point why is teached and when learning with PICs, makes it really interesting.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    Thanks for the comment!

  • @orbitalgolem91
    @orbitalgolem914 жыл бұрын

    This brings back memories of working with Merlin Assembler back in the mid '80s. The assembler to use in the day. If memory serves, Glen Bredon developed it.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    The cool name definitely helps.

  • @christiancarter255
    @christiancarter2554 жыл бұрын

    I'm learning about LC-3 right now, so this is an exciting video to me.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    Is LC-3 referring to the "little computer" programming language? Is this in a class, or are you learning on your own?

  • @christiancarter255

    @christiancarter255

    4 жыл бұрын

    @@TeaLeavesProgramming It's a requirement per the the computer science field, here. Also, I would like to further learn the LC-3 architecture, after this semester, so that I could better understand how things work in C++ and in other languages, such as pointers.

  • @LukeAvedon
    @LukeAvedon5 жыл бұрын

    LOVE THIS!!!

  • @moominjuice2
    @moominjuice24 жыл бұрын

    Thanks for this vid. You took me right back to my 6502 assembly language days as a 12year old. Whenever I hear a new programmer talk about something tough to code it makes me laugh when I see today's tools and languages.

  • @bjarnestronstrup9122

    @bjarnestronstrup9122

    4 жыл бұрын

    I hate when someone brags about "how they wrote this Python script and it was so difficult", it really makes me depressed. Its cringe worthy to see a so called programmer/software dev who barely knows what a byte is.

  • @paranoiatable
    @paranoiatable4 жыл бұрын

    Great Video!

  • @2thinkcritically
    @2thinkcritically4 жыл бұрын

    I know there's a lot of love for the 6502, but to this day my favourite CPU is the 6809. Writing assembly for it is a joy, although having to convert it to machine code and then poking it into memory using BASIC as a child was a tad tiresome on my trusty Dragon 32. All those hours spent typing it all in... Nowadays I can fire up Vim, type it all in and run the code straight through a 6809 assembler in a matter of minutes. It was a simpler time back then, when microcomputers were the new frontier. So many things had yet to be learnt on those early systems when they were released and anyone from a university professor to kid in their bedroom could make the next big software hit.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    The TRS-80 Color Computer (based around the 6809) remains one of my other favorite 8-bit machines.

  • @sirbobbyuk
    @sirbobbyuk4 жыл бұрын

    when i was doing my Btec in computer studies we covered machine code and LDA was the only thing i remembered. wish i had payed more attention to class

  • @garychap8384

    @garychap8384

    4 жыл бұрын

    I remember fondly the Btec adult students at Newcastle. Many of them struggled so much as they'd arguably been born a decade or more too early. I used to truant there (Newcastle Uni, polytech and College) to use their minicomputer terminals and reference libraries... I was always helping folks with their COBOL and ASM assignments. The BTEC folks were the best ; ) I got caught using BTxxx accounts on the system so often that the admins gave me my own account 'gary' and a library card and made me promise I'd stay in school and only use the facilities in the evenings... but then the school allowed me a day-release, mainly as a bargaining chip to keep me engaged : ) I often wish I knew what happened to those BTec students I made friends with. It was an unusual time... being 14 and an undiagnosed autistic, I had no friends at school and doing unofficial study at Uni and the Polytechnic was the only time I ever really felt I belonged somewhere. Today it would probably seem a little inappropriate that all my friends were adults - but it was a magical time for me. I still sometimes wonder where they all ended up.

  • @BitwiseMobile
    @BitwiseMobile3 жыл бұрын

    Wow, what a wonderful walk down memory lane! My math teacher had an Apple ][e in the back of the class room. He would let me tinker on that for hours! Once I discovered Monitor and with my trusty dusty Computes! Guide to 6502 Assembly Programming I was in heaven.

  • @effsixteenblock50
    @effsixteenblock504 жыл бұрын

    Great video! One thing though - the stuff on the right are instructions (mnemonics) not opcodes. The opcodes are the values on the left.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    100% correct. Thanks for the correction.

  • @mrdarbab
    @mrdarbab Жыл бұрын

    I loved 6502 programming with my c64 especially animated sprites.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    Жыл бұрын

    I would love to know more about the sprite support in the C64 than I do!

  • @njsynthesis
    @njsynthesis3 жыл бұрын

    This guy mastered the remote learning vibe in 2018.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    3 жыл бұрын

    I am 100% confused about whether this is a compliment or an insult!

  • @malicant123
    @malicant1234 жыл бұрын

    I work for an old insurance company. The old old mainframe code is still in use today, and it NEVER breaks.

  • @kylegivler8372
    @kylegivler83723 жыл бұрын

    Cool video thanks for sharing

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    3 жыл бұрын

    Thanks! Appreciate the kind words.

  • @owndoc
    @owndoc4 жыл бұрын

    I soldered my own 1 MHz Acorn Atom together (6502 assembly & BASIC). 2 KB RAM, of which 512 bytes freely usable. Good times.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    Awesome!

  • @rickharriss

    @rickharriss

    4 жыл бұрын

    Yep me too. That's where I learned assembly programming.

  • @rickharriss

    @rickharriss

    4 жыл бұрын

    photos.app.goo.gl/wsKvzgBSuKnpkzHNA Link to the Atom circuit diagram in case you want to make another ( I still have mine)

  • @oscarj0231
    @oscarj02314 жыл бұрын

    This...this is machine code... beautiful

  • @dellagustin
    @dellagustin4 жыл бұрын

    Great video, I always wonder how people did assembly coding on this machines back in the day.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    Glad you liked it!

  • @7073shea
    @7073shea3 жыл бұрын

    Awesome! Thank you

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    3 жыл бұрын

    You bet!

  • @aryanadiazcakasana4414
    @aryanadiazcakasana44144 жыл бұрын

    ah the time when you dont have to face git conflict

  • @Wobblybob2004
    @Wobblybob20044 жыл бұрын

    I'll stick with my BBC micro, It had a "fully featured" multi pass in-line assembler. You could freely mix basic and assembly language.

  • @EdCourtenay

    @EdCourtenay

    4 жыл бұрын

    Yes, the BBC Micro had a built in multi-pass assembler (in BASIC), but it lacked a monitor. That said, I used the awesome Ismec Monitor 2.01 ROM back in the day when breaking copy protection routines on the games I could lay my hands on.... ahem...

  • @AllGamingStarred
    @AllGamingStarred4 жыл бұрын

    this is very, very helpful. I would love for this dude to be my teacher

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    Awww shucks, thanks.

  • @AllGamingStarred

    @AllGamingStarred

    4 жыл бұрын

    @@TeaLeavesProgramming you are very welcome

  • @bestintentions6089
    @bestintentions60894 жыл бұрын

    man way back machines were so friendly to fiddling and finding way things worked, also alot simpler.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    It's a trade-off, right? They're friendlier to tinker with, but probably harder for the end-user to use.

  • @tomsite2901uk
    @tomsite2901uk Жыл бұрын

    That was a trip down memory lane. The bad thing is i still remember some of it. Does that make me old? But i have to admit that i worked more on the 6510 Processor and the C64. I also did some Pascal but quite frankly i can't really remember any of it.Then i had a long break before i entered the time of IT again. I started on mainframes and UNIX machines, programmed in Cobol before the advent of the PC came. My first own PC was a 486 DX2 with Win3.11 and NT4, then came Linux.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    Жыл бұрын

    Thank you for sharing those memories!

  • @kaumsatria7981
    @kaumsatria79814 жыл бұрын

    awesome sir

  • @paulpkae
    @paulpkae3 жыл бұрын

    I used to remember most 8088 op codes in my head and could code direct. Have even sat at Eprom programmers typing in code in Hex direct from the keypad on the programmer unit. No way I could do that now. As soon as I got access to decent compilers and debuggers I forgot it all. Segment and offset with internal 4-bit-shifting was cumbersome in x86 world. Remember a brilliant NEC debugger called AFD I think. Many years ago now.

  • @GaryCameron780
    @GaryCameron7804 жыл бұрын

    At the * prompt type ... 800: A9 C8 20 ED FD A9 C5 20 ED FD A9 CC 20 ED FD A9 CC 20 ED FD A9 CF 20 ED FD 00 Followed by ... 800G Your 'welcome. :)

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    "HELLO" Nicely done!

  • @hamtechoutdoor
    @hamtechoutdoor2 жыл бұрын

    Wow, back in 1982 I was programming in Basic on an Apple IIe and assembly language as well (remember call -151?)

  • @mekkler
    @mekkler4 жыл бұрын

    I did 6502 on the C64, it's my second favorite programming language.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    And what's your favorite?

  • @mekkler

    @mekkler

    4 жыл бұрын

    @@TeaLeavesProgramming brainfuck

  • @TheGuyThatEveryoneIgnores
    @TheGuyThatEveryoneIgnores4 жыл бұрын

    12:46 "So to write a program of any length, of any significant length, if you're not Woz, you really need ... a real assembler ..." Gee, I must have been Woz when I was a teenager. (I started by writing my programs on paper in assembly language and then manually converting them to their hexadecimal codes as I typed them into the monitor. Eventually I became good enough that I did not need to write out everything. I still used a pencil and paper to keep track of all my variable and routine addresses. I often kept routines in their own separate space in memory so that I could modify them freely without affecting other routines. I would later move the routines to be adjacent when I was finishing up the program. Being able to insert instructions without having to retype everything afterwards and adjust conditional branch displacements would have been really nice though!) If only I could be Woz today ...

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    Hi, Woz!

  • @jeffr.640
    @jeffr.6404 жыл бұрын

    those beep codes so nostalgic...

  • @Orbixas
    @Orbixas Жыл бұрын

    My father was 3 years old when the Apple 2 was released. Wow.

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    Жыл бұрын

    As I crumble into dust…

  • @robertcuthbert8095
    @robertcuthbert80954 жыл бұрын

    The good old days. I used Merlin assembler to write machine code on the AppleII

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    I'm sure people would be interested to hear about some of your projects - do you remember them?

  • @loucummins7918
    @loucummins79184 жыл бұрын

    Very cool.

  • @llamasarus1
    @llamasarus12 жыл бұрын

    As someone who has used high level languages, assembly to me looks like what C# looks like to people who've never programmed. I'll have to give it a try!

  • @monkey_see_monkey_do
    @monkey_see_monkey_do2 жыл бұрын

    Thank you for amazing presentation! Is it a next version of Apple 1's WOZMON?

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    2 жыл бұрын

    Believe it or not, I have never used an Apple I! But reading about WOZMON it certainly sounds like an elaborate on that concept.

  • @monkey_see_monkey_do

    @monkey_see_monkey_do

    2 жыл бұрын

    @@TeaLeavesProgramming well, me neither) I just played around with WOZMON in the emulator and found it to be fascinating! Apple ][ version like the same program but with enhancements obviously. Btw thank you for showing how to use space in MINIASM instead of entering address every time - this would help me tinkering with my KIM-1 derivative that involves MINIASM as a ROM.

  • @zb3667
    @zb36674 жыл бұрын

    "Like you would look up a logarithm using a slide rule..." anyone watching this has probably never used a slide rule or seen one :)

  • @TeaLeavesProgramming

    @TeaLeavesProgramming

    4 жыл бұрын

    True! (I never used one in school either - that was before my time.)

  • @jlinkels

    @jlinkels

    4 жыл бұрын

    As with learning assembly to gain understanding in how a computer works, a slide rule was a great way to understand the order of magnitude of what you were calculating. To avoid what students do since the 1980-ies: punch in some figures on a calculator and copy the answer back to the paper in 12 decimals accuracy. No idea if the decimal point is in the right place or what accuracy means.

  • @N.A._McBee

    @N.A._McBee

    4 жыл бұрын

    Wrong, buddy! I've learnt to use them in school.

  • @baruchben-david4196

    @baruchben-david4196

    4 жыл бұрын

    I used one, though when calculators became affordable, I switched... 6502 was my first processor... Good times.

  • @pinkmolly5660

    @pinkmolly5660

    4 жыл бұрын

    hahah, I'm only 22 and I've actually used one. ;)

  • @AndrewErwin73
    @AndrewErwin735 жыл бұрын

    On the Commodore machines, you could use PEEK and POKE in the BASIC interpreter. Did the Apples have the same ability, or did you have to always do it from the monitor?

  • @peterb12

    @peterb12

    5 жыл бұрын

    Both Integer BASIC and Applesoft BASIC supported PEEK, POKE, and CALL. Those were not part of Dartmouth's original BASIC, but were in the proto-Microsoft's Altair BASIC in 1975; I'd expect most home computer BASICs to support them.

  • @e74av
    @e74av4 жыл бұрын

    Amazing

  • @Darryl_Frost
    @Darryl_Frost4 жыл бұрын

    you had a green screen and BASIC in 79? My Sygnetics 2650 (July 1978 Electronics Australia kit), used Baudot code and a 20mA current loop to a teletype, and before that the Mini-scamp had 8 toggles switches for the data bus and another 8 for the address bus the SC/MP CPU clocked along at a blinding 670Khz !! (4 clock cycles per instruction).

  • @manonthedollar
    @manonthedollar4 жыл бұрын

    4:45 I'm surprised the flashing letters and flashing cursor are not in sync. Pretty advanced for the time!

  • @chinesemusic8019

    @chinesemusic8019

    4 жыл бұрын

    The flashing letter speed is controlled by an onboard 555 timer hardware. The flashing cursor speed is just controlled by a software loop.

  • @john-lenin
    @john-lenin4 жыл бұрын

    In 1979 I was using Pascal.

  • @Guinea.Pig-Gaming
    @Guinea.Pig-Gaming5 жыл бұрын

    I just wrote a 6502 program that compares the number in the Accumulator with a number, and if it is equal, it displays an E. If it is not equal, it displays an N.

  • @Guinea.Pig-Gaming

    @Guinea.Pig-Gaming

    5 жыл бұрын

    @@peterberger3518 Yeah. Somewhat new to 6502 assembly, and the emulated screen is 16x16.

Келесі