My first ASM
-
It was a great system, but maybe I remember it much as one remembers a first love. :-O
Robust Services Core | Software Techniques for Lemmings | Articles
The fox knows many things, but the hedgehog knows one big thing.Greg Utas wrote:
It was a great system, but maybe I remember it much as one remembers a first love
Yeah, that's how we all are with our first OSes. I even remember DOS 3.3 / Windows 3.1 fondly now. :laugh: Well, maybe not. But Win95, for sure. Pre-emptive multitasking was dreamy. Format a 3.5" disk while playing minesweeper was really cool. :laugh:
-
I stumbled upon this book in my APress account today and it is so nicely written that in 10 minutes I wrote my first Assembly language program and ran it. Beginning x64 Assembly Programming: From Novice to AVX Professional: Van Hoey, Jo: 9781484250754: Amazon.com: Books[^] Over the years I've looked at Assembly and tried it out a little, but it's never been easier to try than now. I have Debian running in a VirtualBox so I quickly: 1. installed nasm (Netwide assembler). 2. Installed GCC tools 3. installed make 4. created a makefile as led by the book 5. typed in the sample program 6. let the makefile build and link the program. 7. ran it. That's very cool. This author is obviously really good because he gets right to the point and explains things clearly. I am impressed and I always like to read a good book that is so well-written.
But does it cover 6502?
"The only place where Success comes before Work is in the dictionary." Vidal Sassoon, 1928 - 2012
-
Greg Utas wrote:
It was a great system, but maybe I remember it much as one remembers a first love
Yeah, that's how we all are with our first OSes. I even remember DOS 3.3 / Windows 3.1 fondly now. :laugh: Well, maybe not. But Win95, for sure. Pre-emptive multitasking was dreamy. Format a 3.5" disk while playing minesweeper was really cool. :laugh:
Indeed. My first brush with assembler was writing little games etc in Z80 code on a self-built NASCOM1 computer. My first major contract was porting MSDOS 1.25 to an IBM PC Clone. The disk drivers etc were all written in 8086 assembler. I can still see the thousands of pages of printed listing that I had to work on! (Filled with useless comments of the sort: "-- add 23 to AX")
-
Indeed. My first brush with assembler was writing little games etc in Z80 code on a self-built NASCOM1 computer. My first major contract was porting MSDOS 1.25 to an IBM PC Clone. The disk drivers etc were all written in 8086 assembler. I can still see the thousands of pages of printed listing that I had to work on! (Filled with useless comments of the sort: "-- add 23 to AX")
Me too, also NASCOM1. No assembler, only machine language. I remember things like 3E 00 41 05 ...
-
Me too, also NASCOM1. No assembler, only machine language. I remember things like 3E 00 41 05 ...
Oh yes - you soon learned the various opcodes 8) I used to write it out as assembler on a coding sheet, write out the opcodes and then key them in! All these years later, despite the higher level languages and huge compute power, things haven't really changed as much as you might think. I just spent a whole day trawling through the code for a framework I'm using because its documentation tells you how to pass some data through to a sub-system, but absolutely nowhere, in text or examples, does it specify the format that data has to take! Doubly annoying because it isn't in the same format as you pass exactly the same data to the parent code 8)
-
But does it cover 6502?
"The only place where Success comes before Work is in the dictionary." Vidal Sassoon, 1928 - 2012
Or Z80? 8080? 8008? :)
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.
-
I stumbled upon this book in my APress account today and it is so nicely written that in 10 minutes I wrote my first Assembly language program and ran it. Beginning x64 Assembly Programming: From Novice to AVX Professional: Van Hoey, Jo: 9781484250754: Amazon.com: Books[^] Over the years I've looked at Assembly and tried it out a little, but it's never been easier to try than now. I have Debian running in a VirtualBox so I quickly: 1. installed nasm (Netwide assembler). 2. Installed GCC tools 3. installed make 4. created a makefile as led by the book 5. typed in the sample program 6. let the makefile build and link the program. 7. ran it. That's very cool. This author is obviously really good because he gets right to the point and explains things clearly. I am impressed and I always like to read a good book that is so well-written.
I started out with Z80 and 6809 machine code, there were no assemblers available to me back then. I wrote my first code like this around 40 years ago which was a ROM extension for Basic to control sound and speech hardware. Thinking back and comparing to the likes of modern assemblers or VS I have no idea how I managed it!
-
But does it cover 6502?
"The only place where Success comes before Work is in the dictionary." Vidal Sassoon, 1928 - 2012
Check out Easy 6502 by skilldrick[^] I found this a great resource. And after watching the first episode of this series: https://www.youtube.com/watch?v=qJgsuQoy9bc[^] I realised I wanted to make my own emulator. Rather than follow the video series blindly I decided to do it in JavaScript and not follow the videos. This presented some challenges as JS doesn’t have Byte/Word types so that has to be managed manually. I’ve been trying to learn ASM for Gameboy, megadrive, z80, but didn’t get very far. Reverse engineering the code allowed me to properly understand each instruction and I am learning ASM as I go. Here is my WIP project: GitHub - gcoulby/MOS6502: CPD project to learning MOS6502 assembly language, which snowballed into reverse engineering the CPU[^]
-
I stumbled upon this book in my APress account today and it is so nicely written that in 10 minutes I wrote my first Assembly language program and ran it. Beginning x64 Assembly Programming: From Novice to AVX Professional: Van Hoey, Jo: 9781484250754: Amazon.com: Books[^] Over the years I've looked at Assembly and tried it out a little, but it's never been easier to try than now. I have Debian running in a VirtualBox so I quickly: 1. installed nasm (Netwide assembler). 2. Installed GCC tools 3. installed make 4. created a makefile as led by the book 5. typed in the sample program 6. let the makefile build and link the program. 7. ran it. That's very cool. This author is obviously really good because he gets right to the point and explains things clearly. I am impressed and I always like to read a good book that is so well-written.
When I wrote my first assembler program 25+years ago, I was so proud of being able to speak the computer's "native" language ! Like you could interact directly with its perception of things without the filters of the high level languages.
-
Haven't written any in over 40 years, since writing it on a PDP-10 while at university. But it definitely has a charm to it.
Robust Services Core | Software Techniques for Lemmings | Articles
The fox knows many things, but the hedgehog knows one big thing. -
Me too, also NASCOM1. No assembler, only machine language. I remember things like 3E 00 41 05 ...
Exactly.
raddevus wrote:
it's never been easier to try than now
Not sure I agree with that. In 1979 I'd turn on my UK101 (similar to the Nascom) and it would prompt for BASIC or MONITOR. Choosing MONITOR gave you a 2-character input field where you could type in the hex value of the byte at address 00. Press ENTER and it moved to address 01. (You had to convert the 6502 assembly instructions into bytes in your head or on paper first, but there were only 56 instructions so it didn't take long to memorise at least the common ones.) :)
-
Haven't written any in over 40 years, since writing it on a PDP-10 while at university. But it definitely has a charm to it.
Robust Services Core | Software Techniques for Lemmings | Articles
The fox knows many things, but the hedgehog knows one big thing.Greg Utas wrote:
Haven't written any in over 40 years, since writing it on a PDP-10 while at university. But it definitely has a charm to it.
Back in my day, we used to carve our code with a hammer and chisle on stone punch cards.
Nothing succeeds like a budgie without teeth.
-
Greg Utas wrote:
Haven't written any in over 40 years, since writing it on a PDP-10 while at university. But it definitely has a charm to it.
Back in my day, we used to carve our code with a hammer and chisle on stone punch cards.
Nothing succeeds like a budgie without teeth.
-
Greg Utas wrote:
Haven't written any in over 40 years, since writing it on a PDP-10 while at university. But it definitely has a charm to it.
Back in my day, we used to carve our code with a hammer and chisle on stone punch cards.
Nothing succeeds like a budgie without teeth.
Yes, that led to the very first method: CRN (Convert Roman Numerals).
If you can keep your head while those about you are losing theirs, perhaps you don't understand the situation.
-
But does it cover 6502?
"The only place where Success comes before Work is in the dictionary." Vidal Sassoon, 1928 - 2012
-
Indeed. My first brush with assembler was writing little games etc in Z80 code on a self-built NASCOM1 computer. My first major contract was porting MSDOS 1.25 to an IBM PC Clone. The disk drivers etc were all written in 8086 assembler. I can still see the thousands of pages of printed listing that I had to work on! (Filled with useless comments of the sort: "-- add 23 to AX")
Mike Winiberg wrote:
My first major contract was porting MSDOS 1.25 to an IBM PC Clone
Wow! I wouldn't have even known where to start. How did you discover the details back then? Very difficult, very few books if any on stuff. Maybe the old Peter Norton book. Really interesting.:thumbsup:
-
I started out with Z80 and 6809 machine code, there were no assemblers available to me back then. I wrote my first code like this around 40 years ago which was a ROM extension for Basic to control sound and speech hardware. Thinking back and comparing to the likes of modern assemblers or VS I have no idea how I managed it!
Private Dobbs wrote:
Thinking back and comparing to the likes of modern assemblers or VS I have no idea how I managed it!
Maybe you read Dr. Dobbs Journal? :) I just couldn't help notice that you are Private Dobbs. You wouldn't happen to be a doctor in your spare time, would you? :laugh: There was so little documentation back then. It's amazing that devs were able to do the things they did. Very cool story.
-
When I wrote my first assembler program 25+years ago, I was so proud of being able to speak the computer's "native" language ! Like you could interact directly with its perception of things without the filters of the high level languages.
Rage wrote:
When I wrote my first assembler program 25+years ago, I was so proud of being able to speak the computer's "native" language
Yeah I always remember Bill Gates quote about when they were controlling a PDP-8 or PDP-11 from his school. Then they were in high school and working with a large corporation and writing code for them. He said something like, "It was amazing that we were high school students and we were able to control this machine that was worth millions $$$ that very few adults could even understand and control." It's very true.
-
Check out Easy 6502 by skilldrick[^] I found this a great resource. And after watching the first episode of this series: https://www.youtube.com/watch?v=qJgsuQoy9bc[^] I realised I wanted to make my own emulator. Rather than follow the video series blindly I decided to do it in JavaScript and not follow the videos. This presented some challenges as JS doesn’t have Byte/Word types so that has to be managed manually. I’ve been trying to learn ASM for Gameboy, megadrive, z80, but didn’t get very far. Reverse engineering the code allowed me to properly understand each instruction and I am learning ASM as I go. Here is my WIP project: GitHub - gcoulby/MOS6502: CPD project to learning MOS6502 assembly language, which snowballed into reverse engineering the CPU[^]
I grew up on 6502 - instead of cereals and milk... :-D
"The only place where Success comes before Work is in the dictionary." Vidal Sassoon, 1928 - 2012
-
Haven't written any in over 40 years, since writing it on a PDP-10 while at university. But it definitely has a charm to it.
Robust Services Core | Software Techniques for Lemmings | Articles
The fox knows many things, but the hedgehog knows one big thing.In the 1980's I was using a PDP-11/34a in High School. I LOVED MACRO-11 Assembly Language. Basically it was C without the {}, LOL... I was running RSTS/E time sharing (32K Words of memory to support almost 30 users). RK06 Drives. Paper Terminals (Decwriter 300s I Believe, and we had 3 CRTs. One with COLOR, DEC 240?) EDT for an editor (or TECO if you were on paper. Imagine EDLIN with Type-ahead! ex$$) Curious, Gates replied to me that they were running TOPS-10 for the O/S on the PDP-10. I am still amazed by everything I was able to learn/do while in High School. My 3 Favorites: 1) I learned how to read another users keyboard buffer ("You spelled that wrong!", LOL) 2) I learned how to HALT the computer, and force my non-priv user to be a super-user! Awesome! (JFPRIV? Bit)... thanks to Michael Mayfields Book on the internals of RSTS/E book I bought with my own cash! [http://www.dmv.net/dec/pdf/rsts80inta.pdf\](http://www.dmv.net/dec/pdf/rsts80inta.pdf) WOW... I remembered JFPRIV correctly after 32 YEARS! 3) I rewrote the startup routines so the 7-10 minute startup process was done in under a minute! [I cheated. 80% of the time was changing the terminals to 300 Baud, etc. I recompiled the operating system, and modified the assembly, so the terminal settings were right for 30/33 terminals, and then only fixed the remaining 3. Even that, I rewrote in ASSEMBLY vs. BASIC PLUS 2 (BP2)] 4) I figured out how to open a tape as a non-structured file and modify it. This allowed me to copy the boot instructions from a DISK (which I learned was literally a boot loader), and write it to the tape, with a device adjustment. Making the tape, in fact, bootable. [I think I did this just after I graduated, because we did NOT have a tape drive, but I landed a job programming on PDP-11/70s] Oh, those were the days...