It is currently Tue Aug 22, 2017 4:13 am

All times are UTC - 7 hours





Post new topic Reply to topic  [ 58 posts ]  Go to page Previous  1, 2, 3, 4
Author Message
PostPosted: Fri Jul 28, 2017 11:41 am 
Offline

Joined: Wed Nov 30, 2016 4:45 pm
Posts: 83
Location: Southern California
psycopathicteen wrote:
Garth wrote:
Outside of the TI-58c programmable calculator, 6502 assembly was one of my first languages (concurrent with Fortran IV). Later I was able to use the 65c02 and its improvements over the NMOS '02 gave me a greater sense of freedom. Later I got into the 65816 which I actually found easier than the '02 because its wider registers and added instructions and addressing modes removed the limits. It was so nimble at things the '02 was either clumsy at or incapable of. But if it seems daunting, you can use it exactly as a 6502 to start, and then start using the extra capabilities little by little.

I think long addressing might be somewhat confusing to beginners because certain instructions/addressing mode are missing like lda $xxxxxx,y. You pretty much have to use the bank register as the bank byte for Y, and use long addressing for stuff you'd normally use absolute addressing for.

True, not every indexed and indirect addressing mode is available in 24-bit. (Actually, they're not all available in 16-bit on the '02 either, like that there's no LDA (abs),Y). Also, the two bank registers are only 8 bits each (the high 8 bits, specifying a bank), meaning you can't use them as fine-grained index registers. However, the '816 still gives you a ton of benefits even if you never go outside the first 64KB of address space and never touch the bank registers. Going beyond that, the thing is to make banking work for you rather than against you.

There's no LDA $xxxxxx,Y, but there is an LDA $xxxxxx,X and LDA $xxxxxx and LDA [dp] and LDA [dp],Y. Altogether there are 34 addressing modes (if you separate RTS, RTL, RTI, etc.), in 255 op codes. The stack-relative addressing modes (along with 16-bit registers) open up new possibilities, and a further cool addition is that you can adjust the starting point of the "direct page" (like zero page, but you can make it start anywhere in the first 64K), even making it overlap the stack area, so you can get direct-page addressing modes even in the stack.

_________________
http://WilsonMinesCo.com/ lots of 6502 resources


Top
 Profile  
 
PostPosted: Sat Jul 29, 2017 6:21 am 
Offline

Joined: Tue May 28, 2013 5:49 am
Posts: 699
Location: Sweden
Yeah and I think even if you leave it in emulation mode and treat it like a 6502, many of the new instructions still works.

What good would it be to set the stack area as direct page though? Does subroutine jumps, push and pull instructions benefit from the stack being affected by direct-page magic?


Top
 Profile  
 
PostPosted: Sat Jul 29, 2017 7:42 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 18828
Location: NE Indiana, USA (NTSC)
It's more for automatic allocation of local variables used by subroutines.


Top
 Profile  
 
PostPosted: Sat Jul 29, 2017 6:23 pm 
Offline

Joined: Sat Jul 29, 2017 6:22 pm
Posts: 1
I started with VB....simple but it made me interested in programming
TreatmentDrug Pricesubchorionichematoma


Last edited by Markk786 on Sun Aug 13, 2017 11:41 pm, edited 1 time in total.

Top
 Profile  
 
PostPosted: Sun Jul 30, 2017 3:58 pm 
Offline
User avatar

Joined: Sun Dec 13, 2009 11:37 am
Posts: 206
Location: Wisconsin
1) TI-BASIC
My first programming language was TI-BASIC on a TI-99/4A.
It was fun as a 2nd grader to take the program listings in books and type them in, and then modify the programs for different results (colors, graphics, sounds). The manual of the TI-99 stresses there's no way to break the computer, so don't worry and just power cycle. Imagine if computers were like that now?

My interest was more in digital electronics and just playing video games so I put it on hold for a while.

2) TI-BASIC (calculators)
Then I had a stint of BASIC-like programming with the TI graphing calculators, mandatory for math class. I know I said this before but one of the most popular games floating around junior high school (a moon lander) became uncool when they realized *I* wrote it. People can be so cruel.

3) QBasic
When I finally got an IBM compatible PC, it was a Packard Bell Pentium computer. Thank $deity that buried on one of the CD's there was QBasic. I eventually was doing 3D math (line art), and then later filled (but untextured) polygons. I also figured out the math behind Mode-7 on the SNES to pull from a texture map. Also whoever came up with WAIT &H3DA, 8 for waiting for Vsync to slow down the programs (instead of a large for-loop) is a genius. I actually think it was in the help file?

4) Commodore BASIC
At a garage sale, I bought a used VIC-20. That thing was awesome and BASIC programs really flew in comparison to the TI-99. Started learning about peek and poke to really make some ridiculously cool looking effects. Downside was the 3K of memory available. Upside was the schematic and datasheets for all the chips were included!

5) 68K Assembly (no really)
Again more interested in digital electronics I built a 68K computer and hand-assembled code for it as a junior and senior year high-school independent study project. I programmed the first test EPROM on a breadboard with dip switches and jumper wires. I was smart enough to wire the write command with a debounced pushbutton. It was some dumb 5x7 LED matrix scanner, but on the matrix keypad you could use the arrow keys and pick the color of the pixel (off, red, yellow, green). I really credit how open the documentation on the VIC-20 was for allowing me to understand how to create my own computer with a different CPU.

6) Z80 assembly.
More TI-calculator stuff. Would sometimes hand-write program code bored off my ass waiting for close as a cashier. Ported the SDCC C compiler to the TI-86, my first experience with open-source. Was too dumb to commit back because I had a severe inferiority complex and didn't feel anyone would care. Lost most of everything related to this due to roommates and moving around.


At this point I'll stop, as it's beyond the scope of the question. But as an aside, I still get treated like an outsider at work for being one of the only ones to understand programming and low-level computer stuff. I don't understand why coworkers or general managers get bent out of shape if I say a seemingly small but nontrivial code writing task will take 4 days, they make me feel like I'm being dishonest or something. I don't really recommend software programming as a career due to social ostracization.


Top
 Profile  
 
PostPosted: Mon Jul 31, 2017 7:58 am 
Offline

Joined: Thu Jul 23, 2015 7:54 pm
Posts: 141
Location: USA
1.) I started messing around in game maker when I was around 11-12, and using whatever built-in language it had to slowly learn how to program. It would take anouther 3 years or so to get any good at all with it.

2.) Around the time going into high school I started using C++ to make shitty text adventure games (literally using a bunch of if/elses and cin/couts, and I think even some GOTOs since I didn't understand how functions worked.) I knew that NES dev was a thing, but I wasn't smart/experienced enough to figure out how to get any assembler to work.

3.) Some time around highschool I began to mess around with Java, but OOP was still too complicated to wrap my head around. So I saved that until I eventually started taking programming classes the school had.

4.) I think sometime going into my senior year of HS (2015) I finally learned how to make something functional in 6502 and joined this site.

So I guess Java and 6502 assembly are the only two languages I've coded something serious in, haha. But of course I've tinkered around in numerous other languages like Python, C and LISP. Seeing all your guys' responses makes me wish I would have started with Basic. :cry:


Top
 Profile  
 
PostPosted: Mon Jul 31, 2017 11:38 pm 
Offline
Site Admin
User avatar

Joined: Mon Sep 20, 2004 6:04 am
Posts: 3452
Location: Indianapolis
I used QBASIC first, when I was probably 14. I didn't learn how to program though, by the end of it I maybe had a vague understanding of what a variable is. I used the built-in help file to learn how to use PRINT and INPUT, with that I made a simple text-based game.. Virtual Reality Gym Class. Based on my IRL gym class that several of of my friends were in, so it was pretty funny to us.

Then I started on 6502 for NES a couple years later. After that, 65816, SPC700, PIC16, PIC18, toyed around a little with Propeller assembly. Then finally I learned C, started using it about 10 years ago. And Verilog, if that counts. 6502 is still what I consider my first language, since my usage of QBASIC was pretty minimal (I'd look at stuff like gorillas.bas and it made zero sense to me).


Top
 Profile  
 
PostPosted: Tue Aug 01, 2017 12:03 am 
Offline
User avatar

Joined: Sun Dec 13, 2009 11:37 am
Posts: 206
Location: Wisconsin
Sogona wrote:

3.) Some time around highschool I began to mess around with Java, but OOP was still too complicated to wrap my head around. So I saved that until I eventually started taking programming classes the school had.

OOP is a definite distraction from just writing functional code (pun intended).
It gets really stupid when the OOP examples are fruit or animals. An orange isn't an object that needs to be constructed/destructed dynamically, but best treated as an item in a table or structure or array. When using animal taxonomy to show inheritance, one must meticulously think of all the possibilities as it doesn't make sense for a fish to bark, or enunciate, or walk, or whatever contrived method it's supposed to perform.

Sogona wrote:
Seeing all your guys' responses makes me wish I would have started with Basic. :cry:

The 3DS has SmileBasic, but not advertised well or a very large userbase, and dependent on servers that could be shut down at any time. It's still fun to play around in.

BASIC is kinda bad because it scales terribly with nowadays video resolutions and expectations (users expect to plot a picture file, not just draw one pixel; or play an mp3 file, not just a flat beep sound).

For anyone starting now, I guess I would recommend Python, but only with a good text editor that visualizes and corrects the indentation. I like how Python grows when you start adding more and more packages, but also its downside (because you spend so much time looking for packages from a one-line description, and 90% of it is junk).


Top
 Profile  
 
PostPosted: Tue Aug 01, 2017 1:30 am 
Offline
User avatar

Joined: Sun Dec 12, 2010 10:27 pm
Posts: 270
Location: Hong Kong
whicker wrote:
BASIC is kinda bad because it scales terribly with nowadays video resolutions and expectations (users expect to plot a picture file, not just draw one pixel; or play an mp3 file, not just a flat beep sound).

There are modern implementations of BASIC (or languages evolved from it) that provide extensive multimedia support though. Two notable examples are SiMPLE (designed by the legendary Bob Bishop of Apple ][ fame, though this doesn't seem popular and its official site is dead now) and Hot Soup Processor (very, or in the past 10 years, used to be very, popular in Japan; note that YY-CHR was originally written in HSP before moving to C++ and then C#).


Top
 Profile  
 
PostPosted: Tue Aug 01, 2017 8:05 am 
Offline

Joined: Sun Sep 19, 2004 11:12 pm
Posts: 18828
Location: NE Indiana, USA (NTSC)
whicker wrote:
BASIC is kinda bad because it scales terribly with nowadays video resolutions and expectations (users expect to plot a picture file, not just draw one pixel; or play an mp3 file, not just a flat beep sound).

The BASIC dialect in Visual Studio Express can do all these.

whicker wrote:
For anyone starting now, I guess I would recommend Python, but only with a good text editor that visualizes and corrects the indentation.

IDLE is a Tk-based code editor that does exactly this, along with completion of function names and quick access to docstrings. It comes with Python for Windows and is an apt-get away on Debian and the like.


Top
 Profile  
 
PostPosted: Wed Aug 02, 2017 9:17 pm 
Offline

Joined: Thu Jul 23, 2015 7:54 pm
Posts: 141
Location: USA
whicker wrote:
OOP is a definite distraction from just writing functional code (pun intended).
It gets really stupid when the OOP examples are fruit or animals. An orange isn't an object that needs to be constructed/destructed dynamically, but best treated as an item in a table or structure or array. When using animal taxonomy to show inheritance, one must meticulously think of all the possibilities as it doesn't make sense for a fish to bark, or enunciate, or walk, or whatever contrived method it's supposed to perform.
Yeah, but I do see how it has its place in making gigantic projects. There's just so many intricacies that make it confusing. I really haven't done much programming-wise this summer except work on my NES game, so all of Java's fun little quirks have left my immediate memory; which kinda scares me because I have my data structures class to look forward to this fall, which of course is gonna be taught in java.

whicker wrote:
The 3DS has SmileBasic, but not advertised well or a very large userbase, and dependent on servers that could be shut down at any time. It's still fun to play around in.

BASIC is kinda bad because it scales terribly with nowadays video resolutions and expectations (users expect to plot a picture file, not just draw one pixel; or play an mp3 file, not just a flat beep sound).

For anyone starting now, I guess I would recommend Python, but only with a good text editor that visualizes and corrects the indentation. I like how Python grows when you start adding more and more packages, but also its downside (because you spend so much time looking for packages from a one-line description, and 90% of it is junk).
Yeah, I know what you mean. What I mainly meant was the idea of being a kid in the 80s messing around in Basic on your school's Apple II/C64/whatever sounds like it would have been a fun time. I guess my previous post could have been phrased as "I wish I was born earlier."


Top
 Profile  
 
PostPosted: Thu Aug 03, 2017 4:08 am 
Offline

Joined: Tue May 28, 2013 5:49 am
Posts: 699
Location: Sweden
I've always been interested in Puchicon/SmileBASIC but if it requires internet server to even use it, it's not very interesting. That would mean it will become useless after the 3DS internet service are shutdown.

Oh and talking about BASIC on a forum dedicated to NES development it's impossible to ignore the Famicom/NES's native BASIC interpreter.
English Manual Family BASIC
English Manual Family BASIC V3
Family BASIC resources
The cartridge is quite limited with just NROM and no CHR-RAM (although there are VRC7 and MMC5 hacks of it with CHR-RAM), but you do have full access to the Famicom's hardware, and you can call machine language 6502 subroutines.


Top
 Profile  
 
PostPosted: Fri Aug 11, 2017 5:17 am 
Offline
User avatar

Joined: Sat Jan 03, 2015 5:58 pm
Posts: 358
Location: ...
I started off with a mixture of "DS Game Maker" and also kinda switching between C and C++. Couldn't decide which I liked more. Nowadays my policy is, for simple programs with portability, C. For anything else, C++, and if I want to have fun then I'll use nall, as it's pretty fun to use.

_________________
Buy stuff from my brother's retro gaming store!


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 58 posts ]  Go to page Previous  1, 2, 3, 4

All times are UTC - 7 hours


Who is online

Users browsing this forum: FrankenGraphics, TmEE and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group