Programming with Assembly or Hex.
#1
I started to get into Coding some hacks for games and programming and wondered if I could answer any questions out there, or anyone who is intrested in this and whats to disscuss the topic. I'm currently working on a telewalk hack for Diablo II SINGLEPLAYER (Not to anger any of the fourm's members). I'm just making the hack for the fun of it.... Either post a to the topic or email me at Impersonated@hotmail.com
Reply
#2
If you can, or is planning to program in hexadecimals, then you are crazy.

Assembly, sure, but pure hex?

;)
Reply
#3
<crotchety>
Hexadecimal? In my day, we had to key in code through the front panel in binary, both big-endian and little-endian. And we liked it!
</crotchety>

Seriously, I enjoyed assembly programming. It really gave you a feel for how the processor and surrounding chipset worked. There was an appealing simplicity to writing I/O drivers through an 8250, and a perverse joy in implementing a copy-protection scheme using the PC Junior (remember it?) keyboard interrupt vector. It's been a looong time, though, so I'm probably forgetting the dents in my cubicle from my head.
At first I thought, "Mind control satellites? No way!" But now I can't remember how we lived without them.
------
WoW PC's of significance
Vaimadarsa Pavis Hykim Jakaleel Odayla Odayla
Reply
#4
I had my first exposure to assembly while programing a zMUD plugin: the standard string-find algorithm included in Delphi was just too slow. I've loved it ever since.

There's nothing like assembly, especially one for a CPU with an incredibly small operation set, to test your problem solving skills. It was an interesting time figuring out how to perform equalivance operations with a chip that did not have such instructions while programming assembly seriously for the first time. :lol:
Reply
#5
YZilla,Mar 12 2004, 05:02 AM Wrote:There's nothing like assembly, especially one for a CPU with an incredibly small operation set, to test your problem solving skills. It was an interesting time figuring out how to perform equalivance operations with a chip that did not have such instructions while programming assembly seriously for the first time.&nbsp; :lol:
While I didn't do a lot of assembly programming, my first exposure to it was in systems programming in college back in *mumble* *mumble*. We worked on a reduced instruction set simulator of a PDP-11 and on Terak mini-computers. I agree about small instructions sets. You get much more of a "down to the metal" programming experience that way. I am somewhat baffled though about your reference to a chip without equivalence operations. I assume you are refering to no "higher level" equivalence operators. After all, even something like a branch on true is a rudimentary equivalence and that combined with an addition instruction makes equivalence trivial. What chip were you working on? I would love to explore a little bit and see what I can find on it.

Also, for anyone working in windows that wants to program in assembly, you might want to check here.
Lochnar[ITB]
Freshman Diablo

[Image: jsoho8.png][Image: 10gmtrs.png]

"I reject your reality and substitute my own."
"You don't know how strong you can be until strong is the only option."
"Think deeply, speak gently, love much, laugh loudly, give freely, be kind."
"Talk, Laugh, Love."
Reply
#6
Oops: what I was referring to were more specifically "comparison instructions".

Basically, there were nothing to explicitly compute the equalivance of two values.

The chip in question is the Microchip PIC16F84-A. I used it as the project for my electronics12 class in highschool, eventually creating a "digital die" which could, very crudely, simulate every physically manufactureable die (4-, 6-, 8-, 10-, 12-, 20-, and 30-sided) plus 2d2 and 8-bit hexadecimal.

I say "the project" because it ended up counting towards three out of five projects for the whole semester. :P
Reply
#7
YZilla,Mar 12 2004, 06:48 AM Wrote:The chip in question is the Microchip PIC16F84-A. I used it as the project for my electronics12 class in highschool, eventually creating a "digital die" which could, very crudely, simulate every physically manufactureable die (4-, 6-, 8-, 10-, 12-, 20-, and 30-sided) plus 2d2 and 8-bit hexadecimal.
Fun stuff. I wish my high school would have had some electronics or programming classes. Those kind of things were for the vo-tech kids that took off at noon to learn a skill because they weren't going on to college. If I had had those courses, I probably would have ended up with one of those majors rather than mechanical engineering, which I ended up never using. The classes offered at my high school were so middle of the road that we had to petition for a calculus class so that we would have a math class to take senior year.
Lochnar[ITB]
Freshman Diablo

[Image: jsoho8.png][Image: 10gmtrs.png]

"I reject your reality and substitute my own."
"You don't know how strong you can be until strong is the only option."
"Think deeply, speak gently, love much, laugh loudly, give freely, be kind."
"Talk, Laugh, Love."
Reply
#8
nerdy technologicians
But whate'er I be,
Nor I, nor any man that is,
With nothing shall be pleased till he be eased
With being nothing.
William Shakespeare - Richard II
Reply
#9
I had a chance to play with assembly during my electronics12 course mostly because the teacher trusted us -- enough of us at least -- to let the class do what ever the heck we wanted as long as it did not violate some policy or law and fit roughly in the curriculum he had planned for us. Also, being the teacher's first year, he was eager to experiment.

My highschool had IT courses that taught programming, but they were in a sorry state. Although I did not take any of those courses, I did end up being a "tutor" in the class, and they were the most pathetic gathering of technology students I've ever seen. People either breezed by the class, or failed miserably to even learn the difference between a and b or 2 and 3.

"It doesn't work..."
"Okay, your function is declared to take an array, but you're passing an integers to it."
"... okay..."
"And, the declaration has three parameters; you're calling it with only two."
"... I don't get it."


Oh, the countless times I've had to supress my urge to smack them over the head...
Reply
#10
Well, my programming knowledge is pretty much limited to C and C++, as I am just starting my junior year of computer engineering. However, back in an introduction to computer science class, we did some really basic assembly programming (that is, just adding a couple numbers together and using a few go to's :P), and that was through a simulator. As part of a homework we were required to write a few basic programs that would've been a joke in C, but were a real nightmare in assembler language. I don't even want to envision how a big program would look like in assembly.
The gods made heavy metal and they saw that is was good
They said to play it louder than Hell
We promised that we would
When losers say it's over with you know that it's a lie
The gods made heavy metal and it's never gonna die

- Manowar
Reply
#11
Yup, I did some assembly throught my Uni course. Writing assembly is easy, its reading assembly that's hard. We had one project to find the five bugs in a piece of assembly code for a stopwatch, and it took us about five hours (one hour a week over five weeks).
All hats off to Jarulf!
Reply
#12
I'm starting to do some C++ also for programming... Anyone know any Qbasic though? My friends are actually into that older stuff..
Reply
#13
:rolleyes:

BASIC: One of the two times it's seemingly "acceptable" to use a GOTO command.
Trade yourself in for the perfect one. No one needs to know that you feel you've been ruined!
Reply
#14
Well, I used to do tons in QBasic before Uni, but not sure how much I remember... what do you want to know?
Reply
#15
whyBish,Mar 13 2004, 09:18 PM Wrote:Yup, I did some assembly throught my Uni course.&nbsp; Writing assembly is easy, its reading assembly that's hard.&nbsp; We had one project to find the five bugs in a piece of assembly code for a stopwatch, and it took us about five hours (one hour a week over five weeks).
All hats off to Jarulf!
I would say reading is a lot easier than writing. Or rather, writing GOOD code. One can always toss together something, but it usually end up not being so good. Reading, well, depends, there is a difference reading raw assembly, with no variables and such and reading assembler with all such things in. Then it is much more like reading other computer languages. The problem comes when you also have to figure out data structures and such.

As for assembler in it self, I think it might be of some use to understand it and being able to handle it, but working with pure assembler programming is mostly something not needed for most people today (unless you want to write compilers or something). Personally I learnt it back on the SPectrum and the Z80 processor (which is quite similar to the intel ones), I then moved to the intel processors of todays PCs when I was toying arround with my old "worm" game back in Turbo Pascal. I wanted to make the final program smaller and not bloated and took upon myself to rewrite all functions from the standard libraries in a more simpler form suuitable for waht I wanted. In addition I learend and used it for understanding things like interrups and basic BIOS functions, to program my all keyboard handler ("hijacking" the keyboard interupt) and timing functions and so on. Why? Because I wanted to and it was fun. On top of that I learnt a lot about how computers works down inside (at that time) and also improved my overall programming "skills", which I have a use for even now when I use mostly C for example.
There are three types of people in the world. Those who can count and those who can't.
Reply


Forum Jump:


Users browsing this thread: 8 Guest(s)