My first ASM
-
I got to use MASM with x86 assembly in undergrad. Wasn't a great experience. I've used it once since then, to cheat in a game that had anti-cheat protection. :-O
-
Greg Utas wrote:
Haven't written any in over 40 years, since writing it on a PDP-10
Wow, that is cool. I believe that might be the hardware that Gates and Allen began with. :thumbsup:
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. -
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.VAX 11 assembly language in the late-80s for me.
-
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.