Apple ][+ in HTML5
porkrind.org
porkrind.org
10 X=1
20 FOR Y=1 TO X
30 PRINT " ";
40 NEXT Y
50 PRINT "HELLO"
60 IF X=34 THEN LEFT=1
70 IF X=0 THEN LEFT=0
80 IF LEFT=1 THEN X=X-1
90 IF LEFT=0 THEN X=X+1
100 GOTO 20
RUN
Notes: Use ^C to stop it. Type LIST to see the program you wrote. If you screw up a line, just type the line number and hit <return> to delete that line. 10 X=1
20 D=1
30 FOR Y=1 TO X
40 PRINT " ";
50 NEXT Y
60 PRINT "HELLO"
70 IF X=0 OR X=34 THEN D=D*-1
80 X=X+D
90 GOTO 30 5 PRINT "WHAT'S YOUR FIRST NAME?"
7 INPUT NAME$
10 X=1
20 D=1
30 FOR Y=1 TO X
40 PRINT " ";
50 NEXT Y
60 PRINT NAME$
70 IF X=0 OR X=39-LEN(NAME$) THEN D=D*-1
80 X=X+D
90 GOTO 30
RUN 70 IF X=1 THEN LEFT=0
Makes for a more symmetric pattern.As an old geezer who earned his programming wings on an Apple ][ coding 6502 machine language and later UCSD Pascal, I am absolutely delighted about this project. I had been toying with the same idea for some time but skipped it due to lack of time and the fear of Apples legal stormtroopers.
Now if only I find disk images of Bandits and Dogfight...
I hope that after Job's demise, someone at Apple is sane enough to understand abandonware. But I am not counting on that.
Edit: Thanks mparlane. I was on my way out, but you are right of course. :)
According to those who subscribe, anyway. But whether you believe or not, karma is not decided by a committee of down-voting equipped readers, each with his/her own desire for points. That's not karma, that's polling or rating.
Ironic that it's called "karma", which is a complete perversion of the original religious meaning of the concept, perverted into a means of recording a "permanent record" of how antisocial or unsubmissive you've been to community opprobrium. Purely regressive adaptation of technology, and a crime against the spirit of those who created it.
I have a feeling the first site to dramatically improve content ranking is going to explode.
Which, I guess, is kind of how Google works in the long run, and also would tend to self-select people into like-minded groups. Overall, I think that our options are somewhat limited -- we either end up in a self-selected community or in a self-selected sub-community. E.g. I was "repelled" by digg because any politically "liberal" comment I made would be downvoted to oblivion within minutes. While similar things would happen on reddit if, say, one said things critical of libertarianism, I didn't find this quite so frustrating, and simply learned to curb my views accordingly.
Here on Hackernews (which I find to be the most reasonable community since the glory days of slashdot) I have learned to accept that, say, being critical of Android or having anything nice to say about PHP is likely to lead to a lot of welts.
Something I'd like to do is write up an article on what it takes to emulate an Apple 2. Getting the disk to work was surprisingly complicated--the Apple does all the low level track formatting in software which means the emulator has to take the logical disk image and generate a bitstream that the emulated software expects so it can turn it back into logical bytes in memory. That required getting a lot of details right about the bit format, rotation speed of the disk, etc.
I did a mandelbrot and a ray tracer with it; I wrote the copy/paste tool for bellards http://bellard.org/jslinux/
http://www.landsnail.com/a2ref.htm
http://www.landsnail.com/a2ref2.htm
Good times. I think I will now make a low-res snowman.
IIRC (and as the emulation does apparently) the games started themselves at boot, so I don't think I have ever typed any command on it !
Then again, perhaps the browser technology matters more than anything else: I'm running it on latest stable chromium.
So I guess it's the browser that matters a lot here.
Interesting times we live in, indeed.
IE10/SurfaceRT: ~1.17
Note they both use the same chipset (Tegra T30). V8 definitely makes a difference, similar gap between Chrome and IE10 on my 2011 13" MBA in Parallels (.1/.4)
20 GOTO 10
RUN
7th grade memories come flooding back ...
Incredible.
One of the things on my todo list is to use websockets or something to ship the emulation log back to the server and compare against an independent (and presumably better tested) 6502 emulator. From there I can detect inconsistencies and fix the JS implementation. As I side effect I can build up a set of (hopefully) comprehensive test vectors that anyone writing a 6502 emulator can use to validate their implementation.
An explanation of how to fit it into a non-C64 emulator:
http://www.softwolves.com/arkiv/cbm-hackers/7/7114.html
Mirror of the actual file:
call 151
l
it unassembly a portion of memory.
Can this thing run Aztec or Microwave, too?
peek and poke ftw!
and then everything comes to mind :)
I remember this from a cloned Apple II computer (Pravetz).
It's interesting to think about the cultural impact of this if it really catches on, at least in the hacker/geek world. This isn't just a tech demo: It's a self-conscious reconstruction of a cultural artifact, and drags along with it other cultural references and context. Nobody these days is going to 'grow up' with an Apple ][ because of things like this, but, previously, the only way to experience that specific system was to either have been born in the narrow window of time where you had one when they were still at least vaguely mainstream, or to decide to run an emulator and likely get into emulation as a hobby. It's the difference between knowing every Beach Boys song because you grew up in 1960s California, knowing them because you deliberately chose to collect that era's music, and knowing them because, like me, your parents played them practically from your birth and so they became the first band you really liked.
This just makes the past that much more mainstream, the software equivalent of the deliberately dated aesthetic of a Quentin Tarantino film.
Stuff like this is just the tip of the iceberg.
No, I'm saying it's a new thing. This kind of continuity hasn't been anywhere near this accessible before.