RetroChallenge Winter Warm-up 2016

RUNNING

January 21, 2016

My newest computer is now ten years old. Does that make it retro yet? Anyways, I disaasmbled it, cleaned and applied heat compound between the heatsink and the CPU. It is now running much cooler than before. I also found the screen record button in QuickTime Player.


IBM 437

January 16, 2016

I was inspired by a font tutorial on github to port an image of a retro font.
(ibm 437 font)

BASIC HACK

January 12, 2016

(basic hack image)

4-BIT

January 5, 2016

A code is entered. Everything goes white, then off-white. A bit of orange sky and ground shows up. Sand. There is sand everywhere, on the ground and in the sky. It would get in your eyes, if you had eyes. The sand is blowing and going everywhere.

Something black slowly emerges beneath the blowing sand. It's fixed in the ground like a black hatch. As more sand blows a little more of the black hatch is revealed. There are tiny lines and squares not quite visible on the surface of the hatch. It's not a hatch at all. It's a solar panel buried in the sand.

Days pass, and just enough sunlight filters through, and magically somewhere below a machine has come to life. It has activated itself. It is unknown how long the machine has been buried beneath the sand.

Within a few weeks, the machine is visible. It is only partially buried. You have a choice. There are controls on the machine. It is not just a machine but appears to be a vehicle as well. Forward, left, right and reverse are the basic controls. You press forward and a gentle whirring noise starts, but the machine is stuck in the sand. You press reverse and the entire vehicle jiggles a bit but nothing more.

Maybe back and forth? You toggle between pressing forward and reverse. And, after a bit of this the machine starts to move a little more than jiggle. But, it slows. You've used a little too much power. A few more weeks pass and you can try again.

The batteries or whatever is powering this unit seem to be very low. But, you try again anyways to wiggle the machine out from being stuck in the sand. There really is no one else around. The sky, the ground, the sand, and this little vehicle with a solar panel on top of it. Today the machine seems to move a little more. And, over the weeks of recharging, more of the sand has blown away. You notice one other smaller button off to the side of the main movement controls. You press it, and an elaborate console appears.

(4-bit image)

4-bit.bas.txt

NEW
0GOSUB2​:HPLOT0,HTOR,H​:FORI=0TOJ​:X=FNR(128)+FNR(128)​:Y=FNR(W)+FNR(W)​:HPLOTX+12,Y+104TOX+13,104+Y​:IFFNR(5)>1THENNEXT
1HCOLOR=B​:X=FNR(W)​:Y=FNR(T)​:HPLOTX+120,Y+135TOX+121,Y+135​:HCOLOR=S​:NEXT
2F$=CHR$(32)+CHR$(8)​:R=RND(0)​:DEFFNR(R)=INT(RND(1)*R)+1​:TEXT​:HOME​:C$="4-BIT"​:VTAB11​:HTAB17​:PRINT">";CHR$(32);​:GOSUB4​:FORI=1TO2000​:NEXT​:FORJ=1TOLEN(C$)​:FORI=1TO500+FNR(250)​:NEXTI​:A=PEEK(-16336)​+PEEK(-16336)​:PRINTMID$(C$,J,1);​:GOSUB4
3NEXTJ​:FORI=1TO2000​:NEXTI​:HCOLOR=7​:POKE230,32​:HPLOT0,0​:CALL62454​:A=PEEK(-16297)​+PEEK(-16302)​+PEEK(-16304)​:HCOLOR=7​:R=279​:M=-1​:N=191​:H=95​:J=1E37​:B=4​:S=5​:W=40​:T=20​:HCOLOR=S​:RETURN
4FLASH​:PRINTF$;​:NORMAL​:RETURN
RUN

SCROLL

January 2, 2016

GR scroll down and scroll up.

(scroll image)

scroll.s

	ORG $0300
scrolldown
	LDX #$27
downloop
	LDY #$04
downloop4
	CLC
	ROL $400,X
	ROL $480,X
	ROL $500,X
	ROL $580,X
	ROL $600,X
	ROL $680,X
	ROL $700,X
	ROL $780,X
	ROL $428,X
	ROL $4A8,X
	ROL $528,X
	ROL $5A8,X
	ROL $628,X
	ROL $6A8,X
	ROL $728,X
	ROL $7A8,X
	ROL $450,X
	ROL $4D0,X
	ROL $550,X
	ROL $5D0,X
	ROL $650,X
	ROL $6D0,X
	ROL $750,X
	ROL $7D0,X
	DEY
	BNE downloop4
	DEX
	BPL downloop
	RTS
scrollup
	LDX #$27
uploop
	LDY #$04
uploop4
	CLC
	ROR $7D0,X
	ROR $750,X
	ROR $6D0,X
	ROR $650,X
	ROR $5D0,X
	ROR $550,X
	ROR $4D0,X
	ROR $450,X
	ROR $7A8,X
	ROR $728,X
	ROR $6A8,X
	ROR $628,X
	ROR $5A8,X
	ROR $528,X
	ROR $4A8,X
	ROR $428,X
	ROR $780,X
	ROR $700,X
	ROR $680,X
	ROR $600,X
	ROR $580,X
	ROR $500,X
	ROR $480,X
	ROR $400,X
	DEY
	BNE uploop4
	DEX
	BPL uploop
	RTS

to assemble...

$ make
asm6 scroll.s
pass 1..
scroll.bin written (168 bytes).
cat scroll.bin | hexdump -v -e '":" 16/1 "%X " "\n"' > scroll.hex.txt
cat scroll.hex.txt | pbcopy
:A2 27 A0 4 18 3E 0 4 3E 80 4 3E 0 5 3E 80
:5 3E 0 6 3E 80 6 3E 0 7 3E 80 7 3E 28 4
:3E A8 4 3E 28 5 3E A8 5 3E 28 6 3E A8 6 3E
:28 7 3E A8 7 3E 50 4 3E D0 4 3E 50 5 3E D0
:5 3E 50 6 3E D0 6 3E 50 7 3E D0 7 88 D0 B4
:CA 10 AF 60 A2 27 A0 4 18 7E D0 7 7E 50 7 7E
:D0 6 7E 50 6 7E D0 5 7E 50 5 7E D0 4 7E 50
:4 7E A8 7 7E 28 7 7E A8 6 7E 28 6 7E A8 5
:7E 28 5 7E A8 4 7E 28 4 7E 80 7 7E 0 7 7E
:80 6 7E 0 6 7E 80 5 7E 0 5 7E 80 4 7E 0
:4 88 D0 B4 CA 10 AF 60

GOSUB X

January 1, 2016

Happy new year. This is my first official posting for the 2016 Winter Warmup.

I am thinking about the direction of where TO GO for this challenge. I am going to code in the small along the way and see where I might end up.

gosub-x.s

; gosub x
; & expr

txtptr	EQU $B8
curlin	EQU $75

frmevl	EQU $DD7B
getadr	EQU $E752
goto1	EQU $D941
newstt	EQU $D7D2

	ORG $300
	LDA txtptr+1 ; SETUP GOSUB RETURN DATA
	PHA
	LDA txtptr
	PHA
	LDA curlin+1
	PHA
	LDA curlin
	PHA
	LDA #$B0 ; GOSUB TOKEN
	PHA
	JSR frmevl ; EVALUATE EXPRESSION
	JSR getadr ; CONVERT TO INTEGER
	JSR goto1
	JMP newstt

to assemble...

$ alias mondump
alias mondump='hexdump -v -e '\''":" 16/1 "%X " "\n"'\'''
$ asm6 gosub-x.s
pass 1..
gosub-x.bin written (27 bytes).
$ cat gosub-x.bin | mondump
:A5 B9 48 A5 B8 48 A5 76 48 A5 75 48 A9 B0 48 20
:7B DD 20 52 E7 20 41 D9 4C D2 D7

repeat.bas.txt

 100  FOR I = 768 TO 794
 110      READ B: POKE I,B: NEXT 
 120  DATA165,185,72,165,184,72
 130  DATA165,118,72,165,117,72
 140  DATA169,176,72,32,123,221
 150  DATA32,82,231,32,65,217
 160  DATA76,210,215
 170  POKE 1014,0: POKE 1015,3

 200  LET P = 400:N = 4
 210  GOSUB 300"REPEAT P N
 220  END 

 300      IF N <  = 0 THEN  RETURN 
 310      LET N = N - 1
 320      & P
 330  GOTO 300

 400  PRINT "EXAMPLE"
 410  RETURN 

test..

]RUN
EXAMPLE
EXAMPLE
EXAMPLE
EXAMPLE

brief synopsis of project

 

This is my announcement of intention to enter RC2016/01.

My retro software challenge is to be obstuse figure it out as I go.

Tools

(retrochallenge image)

mmphosis

http://hoop-la.ca/apple2/2016/winterwarmup/
myspace.com has become the preferred
communication media for updates
twitter may be updated as well
http://retrochallenge.org/
retrochallenge (twitter.com)
The RC2016/01 Entrants List

previous RetroChallenges

Apple II VBL routines winter 2015
Palm IIIxe hacking winter 2012
Apple-1/Apple II BASIC winter 2011
1960 lisp in Applesoft BASIC summer 2010
Apple-1 hello world winter 2008
Apple II hacker emblem winter 2007

"Seeing a web counter on a modern web page is one example of retrocomputing on the Internet." 1531 visitors