Megalextoria
Retro computing and gaming, sci-fi books, tv and movies and other geeky stuff.

Home » Digital Archaeology » Computer Arcana » Apple » Apple II » Applevision is full HGR, not TEXT on HGR
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Applevision is full HGR, not TEXT on HGR [message #371253] Wed, 25 July 2018 17:37 Go to next message
Antoine Vignau is currently offline  Antoine Vignau
Messages: 1860
Registered: October 2012
Karma: 0
Senior Member
----

This is the INTEGER BASIC program

0 LOMEM:1800
1 HIMEM:8192: POKE 202,165: POKE 203,27: LOMEM:6144: CLR : GOTO 0
10 REM *** APPLE-VISION *** WRITTEN BY R.J. BISHOP

20 DIM A$(51)
30 A$=" BOB BISHOP PRESENTS ... APPLE-VISION! "

40 CALL -936
50 VTAB 10: TAB 10: PRINT "*** APPLE-VISION ***"
55 VTAB 20: TAB 3: PRINT "COPYRIGHT 1978 APPLE COMPUTER, INC."

60 FOR K=1 TO 2500: NEXT K WAIT

70 CALL -936
$08A9 (CLEAR SCREEN)
80 CALL 2217: POKE -16297,0: POKE -16302,0: POKE -16304,0

90 GOSUB 460: GOSUB 370 DRAW HOME

100 FOR K=1 TO 1000: NEXT K WAIT

110 FOR K=1 TO 45 SCROLL CHARS
120 VTAB 13: TAB 12
130 PRINT A$(K,K+6)
140 FOR J=1 TO 75: NEXT J
150 NEXT K

160 FOR K=1 TO 1000: NEXT K WAIT

170 CALL 2893 $0B4D (DANCER)

180 FOR K=1 TO 500: NEXT K WAIT

190 VTAB 13: TAB 13: PRINT "THE" DRAW THE END
200 TAB 15: PRINT "END"

210 FOR K=1 TO 1500: NEXT K WAIT

220 VTAB 13: TAB 13: PRINT " " CLEAR THE END
230 TAB 15: PRINT " "

240 FOR K=1 TO 4000: NEXT K WAIT

250 GOSUB 540 RANDOM ?

260 GOTO 110 LOOP
270 END

* BRESENHAM

280 DX=C-A:DY=D-B
290 DELTA= ABS (DX): IF ABS (DY) > ABS (DX) THEN DELTA= ABS (DY)
300 X=A:Y=B:INCX= SGN (DX):INCY= SGN (DY)
310 FOR L=1 TO DELTA+1
320 POKE 16,X: POKE 17,Y
330 POKE 18,0: CALL 2048 $0800 (DRAW PIXEL)
340 POKE 18,1: CALL 2048 $0800 (DRAW PIXEL)
350 X=X+INCX:Y=Y+INCY
360 NEXT L: RETURN

* PRINT CHARS

370 POKE 54,0: POKE 55,11 $0B00 (COUT)
380 VTAB 4 FONT IS AT $0900
390 TAB 25: PRINT "HOME"
400 TAB 27: PRINT "SWEET"
410 TAB 30: PRINT "HOME"
420 VTAB 11: TAB 21: PRINT "OO"
430 VTAB 15: TAB 21: PRINT "''"
430 VTAB 15: TAB 21: PRINT "''"
440 VTAB 16: TAB 21: PRINT ".."
450 RETURN

460 FOR LOC=3072 TO 3236 STEP 4 $0C00 (POINT COORDINATES)
470 A= PEEK (LOC)
480 B= PEEK (LOC+1)
490 C= PEEK (LOC+2)
500 D= PEEK (LOC+3)
510 GOSUB 280
520 NEXT LOC
530 RETURN

540 LOC=3331:ST= PEEK (LOC-3) $0D03 - $0D00
550 IF PEEK (LOC)=1 THEN RETURN
560 TRY= RND (7)
570 IF PEEK (7*ST-14+TRY+2255)=0 THEN 560 $08CF
580 ST=TRY+2: POKE LOC,ST
590 LOC=LOC+3: GOTO 550

---

Read the INT BASIC code at line 370, it sets the COUT pointer to $B00 where the text on HGR routine is.

00/0B00: 48 PHA
00/0B01: 8D50C0 STA TXTCLR
00/0B04: 8D52C0 STA MIXCLR
00/0B07: 8D57C0 STA HIRES
00/0B0A: C98D CMP #$8D
00/0B0C: F03B BEQ $0B49
00/0B0E: 293F AND #$3F
00/0B10: 0A ASL
00/0B11: 0A ASL
00/0B12: 0A ASL
00/0B13: 850E STA $0E
00/0B15: A909 LDA #$09
00/0B17: 6900 ADC #$00
00/0B19: 850F STA $0F
00/0B1B: A525 LDA $25
00/0B1D: 0A ASL
00/0B1E: 0A ASL
00/0B1F: 0A ASL
00/0B20: 8511 STA $11
00/0B22: 8A TXA
00/0B23: 48 PHA
00/0B24: 98 TYA
00/0B25: 48 PHA
00/0B26: A208 LDX #$08
00/0B28: A000 LDY #$00
00/0B2A: 204708 JSR $0847
00/0B2D: 18 CLC
00/0B2E: A514 LDA $14
00/0B30: 6524 ADC $24
00/0B32: 8514 STA $14
00/0B34: A515 LDA $15
00/0B36: 6900 ADC #$00
00/0B38: 8515 STA $15
00/0B3A: B10E LDA ($0E),Y
00/0B3C: 9114 STA ($14),Y
00/0B3E: E611 INC $11
00/0B40: E60E INC $0E
00/0B42: CA DEX
00/0B43: D0E5 BNE $0B2A
00/0B45: 68 PLA
00/0B46: A8 TAY
00/0B47: 68 PLA
00/0B48: AA TAX
00/0B49: 68 PLA
00/0B4A: 4CF0FD JMP COUT1

00/0847: A511 LDA $11
00/0849: 0A ASL
00/084A: 0A ASL
00/084B: 291C AND #$1C
00/084D: 8515 STA $15
00/084F: A511 LDA $11
00/0851: 6A ROR
00/0852: 6A ROR
00/0853: 6A ROR
00/0854: 6A ROR
00/0855: 2903 AND #$03
00/0857: 0515 ORA $15
00/0859: 0920 ORA #$20
00/085B: 8515 STA $15
00/085D: A511 LDA $11
00/085F: 6A ROR
00/0860: 29E0 AND #$E0
00/0862: 8514 STA $14
00/0864: 6A ROR
00/0865: 6A ROR
00/0866: 2918 AND #$18
00/0868: 0514 ORA $14
00/086A: 8514 STA $14
00/086C: 60 RTS

---

Sorry ;-)
Antoine
Re: Applevision is full HGR, not TEXT on HGR [message #371255 is a reply to message #371253] Wed, 25 July 2018 18:08 Go to previous messageGo to next message
Michael J. Mahon is currently offline  Michael J. Mahon
Messages: 1767
Registered: October 2012
Karma: 0
Senior Member
Antoine Vignau <antoine.vignau@laposte.net> wrote:
> ----
>
> This is the INTEGER BASIC program
>
> 0 LOMEM:1800
> 1 HIMEM:8192: POKE 202,165: POKE 203,27: LOMEM:6144: CLR : GOTO 0
> 10 REM *** APPLE-VISION *** WRITTEN BY R.J. BISHOP
>
> 20 DIM A$(51)
> 30 A$=" BOB BISHOP PRESENTS ... APPLE-VISION! "
>
> 40 CALL -936
> 50 VTAB 10: TAB 10: PRINT "*** APPLE-VISION ***"
> 55 VTAB 20: TAB 3: PRINT "COPYRIGHT 1978 APPLE COMPUTER, INC."
>
> 60 FOR K=1 TO 2500: NEXT K WAIT
>
> 70 CALL -936
> $08A9 (CLEAR SCREEN)
> 80 CALL 2217: POKE -16297,0: POKE -16302,0: POKE -16304,0
>
> 90 GOSUB 460: GOSUB 370 DRAW HOME
>
> 100 FOR K=1 TO 1000: NEXT K WAIT
>
> 110 FOR K=1 TO 45 SCROLL CHARS
> 120 VTAB 13: TAB 12
> 130 PRINT A$(K,K+6)
> 140 FOR J=1 TO 75: NEXT J
> 150 NEXT K
>
> 160 FOR K=1 TO 1000: NEXT K WAIT
>
> 170 CALL 2893 $0B4D (DANCER)
>
> 180 FOR K=1 TO 500: NEXT K WAIT
>
> 190 VTAB 13: TAB 13: PRINT "THE" DRAW THE END
> 200 TAB 15: PRINT "END"
>
> 210 FOR K=1 TO 1500: NEXT K WAIT
>
> 220 VTAB 13: TAB 13: PRINT " " CLEAR THE END
> 230 TAB 15: PRINT " "
>
> 240 FOR K=1 TO 4000: NEXT K WAIT
>
> 250 GOSUB 540 RANDOM ?
>
> 260 GOTO 110 LOOP
> 270 END
>
> * BRESENHAM
>
> 280 DX=C-A:DY=D-B
> 290 DELTA= ABS (DX): IF ABS (DY) > ABS (DX) THEN DELTA= ABS (DY)
> 300 X=A:Y=B:INCX= SGN (DX):INCY= SGN (DY)
> 310 FOR L=1 TO DELTA+1
> 320 POKE 16,X: POKE 17,Y
> 330 POKE 18,0: CALL 2048 $0800 (DRAW PIXEL)
> 340 POKE 18,1: CALL 2048 $0800 (DRAW PIXEL)
> 350 X=X+INCX:Y=Y+INCY
> 360 NEXT L: RETURN
>
> * PRINT CHARS
>
> 370 POKE 54,0: POKE 55,11 $0B00 (COUT)
> 380 VTAB 4
> FONT IS AT $0900
> 390 TAB 25: PRINT "HOME"
> 400 TAB 27: PRINT "SWEET"
> 410 TAB 30: PRINT "HOME"
> 420 VTAB 11: TAB 21: PRINT "OO"
> 430 VTAB 15: TAB 21: PRINT "''"
> 430 VTAB 15: TAB 21: PRINT "''"
> 440 VTAB 16: TAB 21: PRINT ".."
> 450 RETURN
>
> 460 FOR LOC=3072 TO 3236 STEP 4 $0C00 (POINT COORDINATES)
> 470 A= PEEK (LOC)
> 480 B= PEEK (LOC+1)
> 490 C= PEEK (LOC+2)
> 500 D= PEEK (LOC+3)
> 510 GOSUB 280
> 520 NEXT LOC
> 530 RETURN
>
> 540 LOC=3331:ST= PEEK (LOC-3) $0D03 - $0D00
> 550 IF PEEK (LOC)=1 THEN RETURN
> 560 TRY= RND (7)
> 570 IF PEEK (7*ST-14+TRY+2255)=0 THEN 560 $08CF
> 580 ST=TRY+2: POKE LOC,ST
> 590 LOC=LOC+3: GOTO 550
>
> ---
>
> Read the INT BASIC code at line 370, it sets the COUT pointer to $B00
> where the text on HGR routine is.
>
> 00/0B00: 48 PHA
> 00/0B01: 8D50C0 STA TXTCLR
> 00/0B04: 8D52C0 STA MIXCLR
> 00/0B07: 8D57C0 STA HIRES
> 00/0B0A: C98D CMP #$8D
> 00/0B0C: F03B BEQ $0B49
> 00/0B0E: 293F AND #$3F
> 00/0B10: 0A ASL
> 00/0B11: 0A ASL
> 00/0B12: 0A ASL
> 00/0B13: 850E STA $0E
> 00/0B15: A909 LDA #$09
> 00/0B17: 6900 ADC #$00
> 00/0B19: 850F STA $0F
> 00/0B1B: A525 LDA $25
> 00/0B1D: 0A ASL
> 00/0B1E: 0A ASL
> 00/0B1F: 0A ASL
> 00/0B20: 8511 STA $11
> 00/0B22: 8A TXA
> 00/0B23: 48 PHA
> 00/0B24: 98 TYA
> 00/0B25: 48 PHA
> 00/0B26: A208 LDX #$08
> 00/0B28: A000 LDY #$00
> 00/0B2A: 204708 JSR $0847
> 00/0B2D: 18 CLC
> 00/0B2E: A514 LDA $14
> 00/0B30: 6524 ADC $24
> 00/0B32: 8514 STA $14
> 00/0B34: A515 LDA $15
> 00/0B36: 6900 ADC #$00
> 00/0B38: 8515 STA $15
> 00/0B3A: B10E LDA ($0E),Y
> 00/0B3C: 9114 STA ($14),Y
> 00/0B3E: E611 INC $11
> 00/0B40: E60E INC $0E
> 00/0B42: CA DEX
> 00/0B43: D0E5 BNE $0B2A
> 00/0B45: 68 PLA
> 00/0B46: A8 TAY
> 00/0B47: 68 PLA
> 00/0B48: AA TAX
> 00/0B49: 68 PLA
> 00/0B4A: 4CF0FD JMP COUT1
>
> 00/0847: A511 LDA $11
> 00/0849: 0A ASL
> 00/084A: 0A ASL
> 00/084B: 291C AND #$1C
> 00/084D: 8515 STA $15
> 00/084F: A511 LDA $11
> 00/0851: 6A ROR
> 00/0852: 6A ROR
> 00/0853: 6A ROR
> 00/0854: 6A ROR
> 00/0855: 2903 AND #$03
> 00/0857: 0515 ORA $15
> 00/0859: 0920 ORA #$20
> 00/085B: 8515 STA $15
> 00/085D: A511 LDA $11
> 00/085F: 6A ROR
> 00/0860: 29E0 AND #$E0
> 00/0862: 8514 STA $14
> 00/0864: 6A ROR
> 00/0865: 6A ROR
> 00/0866: 2918 AND #$18
> 00/0868: 0514 ORA $14
> 00/086A: 8514 STA $14
> 00/086C: 60 RTS
>
> ---
>
> Sorry ;-)
> Antoine
>

My mistake! I always thought that Bob was using mode switching, and that
was the point of the demo! ;-)

Thanks for the correction.

--
-michael - NadaNet 3.1 and AppleCrate II: http://michaeljmahon.com
Re: Applevision is full HGR, not TEXT on HGR [message #371276 is a reply to message #371255] Thu, 26 July 2018 12:57 Go to previous messageGo to next message
David Schmenk is currently offline  David Schmenk
Messages: 374
Registered: December 2012
Karma: 0
Senior Member
On Wednesday, 25 July 2018 15:08:32 UTC-7, Michael J. Mahon wrote:
> Antoine Vignau <antoine.vignau@laposte.net> wrote:
>> ----
>>
>> This is the INTEGER BASIC program
>>
>> 0 LOMEM:1800
>> 1 HIMEM:8192: POKE 202,165: POKE 203,27: LOMEM:6144: CLR : GOTO 0
>> 10 REM *** APPLE-VISION *** WRITTEN BY R.J. BISHOP
>>
>> 20 DIM A$(51)
>> 30 A$=" BOB BISHOP PRESENTS ... APPLE-VISION! "
>>
>> 40 CALL -936
>> 50 VTAB 10: TAB 10: PRINT "*** APPLE-VISION ***"
>> 55 VTAB 20: TAB 3: PRINT "COPYRIGHT 1978 APPLE COMPUTER, INC."
>>
>> 60 FOR K=1 TO 2500: NEXT K WAIT
>>
>> 70 CALL -936
>> $08A9 (CLEAR SCREEN)
>> 80 CALL 2217: POKE -16297,0: POKE -16302,0: POKE -16304,0
>>
>> 90 GOSUB 460: GOSUB 370 DRAW HOME
>>
>> 100 FOR K=1 TO 1000: NEXT K WAIT
>>
>> 110 FOR K=1 TO 45 SCROLL CHARS
>> 120 VTAB 13: TAB 12
>> 130 PRINT A$(K,K+6)
>> 140 FOR J=1 TO 75: NEXT J
>> 150 NEXT K
>>
>> 160 FOR K=1 TO 1000: NEXT K WAIT
>>
>> 170 CALL 2893 $0B4D (DANCER)
>>
>> 180 FOR K=1 TO 500: NEXT K WAIT
>>
>> 190 VTAB 13: TAB 13: PRINT "THE" DRAW THE END
>> 200 TAB 15: PRINT "END"
>>
>> 210 FOR K=1 TO 1500: NEXT K WAIT
>>
>> 220 VTAB 13: TAB 13: PRINT " " CLEAR THE END
>> 230 TAB 15: PRINT " "
>>
>> 240 FOR K=1 TO 4000: NEXT K WAIT
>>
>> 250 GOSUB 540 RANDOM ?
>>
>> 260 GOTO 110 LOOP
>> 270 END
>>
>> * BRESENHAM
>>
>> 280 DX=C-A:DY=D-B
>> 290 DELTA= ABS (DX): IF ABS (DY) > ABS (DX) THEN DELTA= ABS (DY)
>> 300 X=A:Y=B:INCX= SGN (DX):INCY= SGN (DY)
>> 310 FOR L=1 TO DELTA+1
>> 320 POKE 16,X: POKE 17,Y
>> 330 POKE 18,0: CALL 2048 $0800 (DRAW PIXEL)
>> 340 POKE 18,1: CALL 2048 $0800 (DRAW PIXEL)
>> 350 X=X+INCX:Y=Y+INCY
>> 360 NEXT L: RETURN
>>
>> * PRINT CHARS
>>
>> 370 POKE 54,0: POKE 55,11 $0B00 (COUT)
>> 380 VTAB 4
>> FONT IS AT $0900
>> 390 TAB 25: PRINT "HOME"
>> 400 TAB 27: PRINT "SWEET"
>> 410 TAB 30: PRINT "HOME"
>> 420 VTAB 11: TAB 21: PRINT "OO"
>> 430 VTAB 15: TAB 21: PRINT "''"
>> 430 VTAB 15: TAB 21: PRINT "''"
>> 440 VTAB 16: TAB 21: PRINT ".."
>> 450 RETURN
>>
>> 460 FOR LOC=3072 TO 3236 STEP 4 $0C00 (POINT COORDINATES)
>> 470 A= PEEK (LOC)
>> 480 B= PEEK (LOC+1)
>> 490 C= PEEK (LOC+2)
>> 500 D= PEEK (LOC+3)
>> 510 GOSUB 280
>> 520 NEXT LOC
>> 530 RETURN
>>
>> 540 LOC=3331:ST= PEEK (LOC-3) $0D03 - $0D00
>> 550 IF PEEK (LOC)=1 THEN RETURN
>> 560 TRY= RND (7)
>> 570 IF PEEK (7*ST-14+TRY+2255)=0 THEN 560 $08CF
>> 580 ST=TRY+2: POKE LOC,ST
>> 590 LOC=LOC+3: GOTO 550
>>
>> ---
>>
>> Read the INT BASIC code at line 370, it sets the COUT pointer to $B00
>> where the text on HGR routine is.
>>
>> 00/0B00: 48 PHA
>> 00/0B01: 8D50C0 STA TXTCLR
>> 00/0B04: 8D52C0 STA MIXCLR
>> 00/0B07: 8D57C0 STA HIRES
>> 00/0B0A: C98D CMP #$8D
>> 00/0B0C: F03B BEQ $0B49
>> 00/0B0E: 293F AND #$3F
>> 00/0B10: 0A ASL
>> 00/0B11: 0A ASL
>> 00/0B12: 0A ASL
>> 00/0B13: 850E STA $0E
>> 00/0B15: A909 LDA #$09
>> 00/0B17: 6900 ADC #$00
>> 00/0B19: 850F STA $0F
>> 00/0B1B: A525 LDA $25
>> 00/0B1D: 0A ASL
>> 00/0B1E: 0A ASL
>> 00/0B1F: 0A ASL
>> 00/0B20: 8511 STA $11
>> 00/0B22: 8A TXA
>> 00/0B23: 48 PHA
>> 00/0B24: 98 TYA
>> 00/0B25: 48 PHA
>> 00/0B26: A208 LDX #$08
>> 00/0B28: A000 LDY #$00
>> 00/0B2A: 204708 JSR $0847
>> 00/0B2D: 18 CLC
>> 00/0B2E: A514 LDA $14
>> 00/0B30: 6524 ADC $24
>> 00/0B32: 8514 STA $14
>> 00/0B34: A515 LDA $15
>> 00/0B36: 6900 ADC #$00
>> 00/0B38: 8515 STA $15
>> 00/0B3A: B10E LDA ($0E),Y
>> 00/0B3C: 9114 STA ($14),Y
>> 00/0B3E: E611 INC $11
>> 00/0B40: E60E INC $0E
>> 00/0B42: CA DEX
>> 00/0B43: D0E5 BNE $0B2A
>> 00/0B45: 68 PLA
>> 00/0B46: A8 TAY
>> 00/0B47: 68 PLA
>> 00/0B48: AA TAX
>> 00/0B49: 68 PLA
>> 00/0B4A: 4CF0FD JMP COUT1
>>
>> 00/0847: A511 LDA $11
>> 00/0849: 0A ASL
>> 00/084A: 0A ASL
>> 00/084B: 291C AND #$1C
>> 00/084D: 8515 STA $15
>> 00/084F: A511 LDA $11
>> 00/0851: 6A ROR
>> 00/0852: 6A ROR
>> 00/0853: 6A ROR
>> 00/0854: 6A ROR
>> 00/0855: 2903 AND #$03
>> 00/0857: 0515 ORA $15
>> 00/0859: 0920 ORA #$20
>> 00/085B: 8515 STA $15
>> 00/085D: A511 LDA $11
>> 00/085F: 6A ROR
>> 00/0860: 29E0 AND #$E0
>> 00/0862: 8514 STA $14
>> 00/0864: 6A ROR
>> 00/0865: 6A ROR
>> 00/0866: 2918 AND #$18
>> 00/0868: 0514 ORA $14
>> 00/086A: 8514 STA $14
>> 00/086C: 60 RTS
>>
>> ---
>>
>> Sorry ;-)
>> Antoine
>>
>
> My mistake! I always thought that Bob was using mode switching, and that
> was the point of the demo! ;-)
>
> Thanks for the correction.
>
> --
> -michael - NadaNet 3.1 and AppleCrate II: http://michaeljmahon.com

Not that Bob Bishop wasn't awesome, but to pull off HiRes animation, sound *and* vapor lock was just too much to imagine!
Re: Applevision is full HGR, not TEXT on HGR [message #371309 is a reply to message #371276] Thu, 26 July 2018 22:38 Go to previous messageGo to next message
Michael J. Mahon is currently offline  Michael J. Mahon
Messages: 1767
Registered: October 2012
Karma: 0
Senior Member
David Schmenk <dschmenk@gmail.com> wrote:
> On Wednesday, 25 July 2018 15:08:32 UTC-7, Michael J. Mahon wrote:
>> Antoine Vignau <antoine.vignau@laposte.net> wrote:
>>> ----
>>>
>>> This is the INTEGER BASIC program
>>>
>>> 0 LOMEM:1800
>>> 1 HIMEM:8192: POKE 202,165: POKE 203,27: LOMEM:6144: CLR : GOTO 0
>>> 10 REM *** APPLE-VISION *** WRITTEN BY R.J. BISHOP
>>>
>>> 20 DIM A$(51)
>>> 30 A$=" BOB BISHOP PRESENTS ... APPLE-VISION! "
>>>
>>> 40 CALL -936
>>> 50 VTAB 10: TAB 10: PRINT "*** APPLE-VISION ***"
>>> 55 VTAB 20: TAB 3: PRINT "COPYRIGHT 1978 APPLE COMPUTER, INC."
>>>
>>> 60 FOR K=1 TO 2500: NEXT K WAIT
>>>
>>> 70 CALL -936
>>> $08A9 (CLEAR SCREEN)
>>> 80 CALL 2217: POKE -16297,0: POKE -16302,0: POKE -16304,0
>>>
>>> 90 GOSUB 460: GOSUB 370 DRAW HOME
>>>
>>> 100 FOR K=1 TO 1000: NEXT K WAIT
>>>
>>> 110 FOR K=1 TO 45 SCROLL CHARS
>>> 120 VTAB 13: TAB 12
>>> 130 PRINT A$(K,K+6)
>>> 140 FOR J=1 TO 75: NEXT J
>>> 150 NEXT K
>>>
>>> 160 FOR K=1 TO 1000: NEXT K WAIT
>>>
>>> 170 CALL 2893 $0B4D (DANCER)
>>>
>>> 180 FOR K=1 TO 500: NEXT K WAIT
>>>
>>> 190 VTAB 13: TAB 13: PRINT "THE" DRAW THE END
>>> 200 TAB 15: PRINT "END"
>>>
>>> 210 FOR K=1 TO 1500: NEXT K WAIT
>>>
>>> 220 VTAB 13: TAB 13: PRINT " " CLEAR THE END
>>> 230 TAB 15: PRINT " "
>>>
>>> 240 FOR K=1 TO 4000: NEXT K WAIT
>>>
>>> 250 GOSUB 540 RANDOM ?
>>>
>>> 260 GOTO 110 LOOP
>>> 270 END
>>>
>>> * BRESENHAM
>>>
>>> 280 DX=C-A:DY=D-B
>>> 290 DELTA= ABS (DX): IF ABS (DY) > ABS (DX) THEN DELTA= ABS (DY)
>>> 300 X=A:Y=B:INCX= SGN (DX):INCY= SGN (DY)
>>> 310 FOR L=1 TO DELTA+1
>>> 320 POKE 16,X: POKE 17,Y
>>> 330 POKE 18,0: CALL 2048 $0800 (DRAW PIXEL)
>>> 340 POKE 18,1: CALL 2048 $0800 (DRAW PIXEL)
>>> 350 X=X+INCX:Y=Y+INCY
>>> 360 NEXT L: RETURN
>>>
>>> * PRINT CHARS
>>>
>>> 370 POKE 54,0: POKE 55,11 $0B00 (COUT)
>>> 380 VTAB 4
>>> FONT IS AT $0900
>>> 390 TAB 25: PRINT "HOME"
>>> 400 TAB 27: PRINT "SWEET"
>>> 410 TAB 30: PRINT "HOME"
>>> 420 VTAB 11: TAB 21: PRINT "OO"
>>> 430 VTAB 15: TAB 21: PRINT "''"
>>> 430 VTAB 15: TAB 21: PRINT "''"
>>> 440 VTAB 16: TAB 21: PRINT ".."
>>> 450 RETURN
>>>
>>> 460 FOR LOC=3072 TO 3236 STEP 4 $0C00 (POINT COORDINATES)
>>> 470 A= PEEK (LOC)
>>> 480 B= PEEK (LOC+1)
>>> 490 C= PEEK (LOC+2)
>>> 500 D= PEEK (LOC+3)
>>> 510 GOSUB 280
>>> 520 NEXT LOC
>>> 530 RETURN
>>>
>>> 540 LOC=3331:ST= PEEK (LOC-3) $0D03 - $0D00
>>> 550 IF PEEK (LOC)=1 THEN RETURN
>>> 560 TRY= RND (7)
>>> 570 IF PEEK (7*ST-14+TRY+2255)=0 THEN 560 $08CF
>>> 580 ST=TRY+2: POKE LOC,ST
>>> 590 LOC=LOC+3: GOTO 550
>>>
>>> ---
>>>
>>> Read the INT BASIC code at line 370, it sets the COUT pointer to $B00
>>> where the text on HGR routine is.
>>>
>>> 00/0B00: 48 PHA
>>> 00/0B01: 8D50C0 STA TXTCLR
>>> 00/0B04: 8D52C0 STA MIXCLR
>>> 00/0B07: 8D57C0 STA HIRES
>>> 00/0B0A: C98D CMP #$8D
>>> 00/0B0C: F03B BEQ $0B49
>>> 00/0B0E: 293F AND #$3F
>>> 00/0B10: 0A ASL
>>> 00/0B11: 0A ASL
>>> 00/0B12: 0A ASL
>>> 00/0B13: 850E STA $0E
>>> 00/0B15: A909 LDA #$09
>>> 00/0B17: 6900 ADC #$00
>>> 00/0B19: 850F STA $0F
>>> 00/0B1B: A525 LDA $25
>>> 00/0B1D: 0A ASL
>>> 00/0B1E: 0A ASL
>>> 00/0B1F: 0A ASL
>>> 00/0B20: 8511 STA $11
>>> 00/0B22: 8A TXA
>>> 00/0B23: 48 PHA
>>> 00/0B24: 98 TYA
>>> 00/0B25: 48 PHA
>>> 00/0B26: A208 LDX #$08
>>> 00/0B28: A000 LDY #$00
>>> 00/0B2A: 204708 JSR $0847
>>> 00/0B2D: 18 CLC
>>> 00/0B2E: A514 LDA $14
>>> 00/0B30: 6524 ADC $24
>>> 00/0B32: 8514 STA $14
>>> 00/0B34: A515 LDA $15
>>> 00/0B36: 6900 ADC #$00
>>> 00/0B38: 8515 STA $15
>>> 00/0B3A: B10E LDA ($0E),Y
>>> 00/0B3C: 9114 STA ($14),Y
>>> 00/0B3E: E611 INC $11
>>> 00/0B40: E60E INC $0E
>>> 00/0B42: CA DEX
>>> 00/0B43: D0E5 BNE $0B2A
>>> 00/0B45: 68 PLA
>>> 00/0B46: A8 TAY
>>> 00/0B47: 68 PLA
>>> 00/0B48: AA TAX
>>> 00/0B49: 68 PLA
>>> 00/0B4A: 4CF0FD JMP COUT1
>>>
>>> 00/0847: A511 LDA $11
>>> 00/0849: 0A ASL
>>> 00/084A: 0A ASL
>>> 00/084B: 291C AND #$1C
>>> 00/084D: 8515 STA $15
>>> 00/084F: A511 LDA $11
>>> 00/0851: 6A ROR
>>> 00/0852: 6A ROR
>>> 00/0853: 6A ROR
>>> 00/0854: 6A ROR
>>> 00/0855: 2903 AND #$03
>>> 00/0857: 0515 ORA $15
>>> 00/0859: 0920 ORA #$20
>>> 00/085B: 8515 STA $15
>>> 00/085D: A511 LDA $11
>>> 00/085F: 6A ROR
>>> 00/0860: 29E0 AND #$E0
>>> 00/0862: 8514 STA $14
>>> 00/0864: 6A ROR
>>> 00/0865: 6A ROR
>>> 00/0866: 2918 AND #$18
>>> 00/0868: 0514 ORA $14
>>> 00/086A: 8514 STA $14
>>> 00/086C: 60 RTS
>>>
>>> ---
>>>
>>> Sorry ;-)
>>> Antoine
>>>
>>
>> My mistake! I always thought that Bob was using mode switching, and that
>> was the point of the demo! ;-)
>>
>> Thanks for the correction.
>>
>> --
>> -michael - NadaNet 3.1 and AppleCrate II: http://michaeljmahon.com
>
> Not that Bob Bishop wasn't awesome, but to pull off HiRes animation,
> sound *and* vapor lock was just too much to imagine!
>

Good point. I should have realized that vaporlock while playing “Turkey in
the Straw” was pretty improbable!

Though, using PWM audio with a pulse rate of 15.75kHz, it might be
possible... ;-)

--
-michael - NadaNet 3.1 and AppleCrate II: http://michaeljmahon.com
Re: Applevision is full HGR, not TEXT on HGR [message #371319 is a reply to message #371309] Fri, 27 July 2018 09:32 Go to previous message
David Schmenk is currently offline  David Schmenk
Messages: 374
Registered: December 2012
Karma: 0
Senior Member
On Thursday, 26 July 2018 19:38:52 UTC-7, Michael J. Mahon wrote:
> David Schmenk <dschmenk@gmail.com> wrote:
>> On Wednesday, 25 July 2018 15:08:32 UTC-7, Michael J. Mahon wrote:
>>> Antoine Vignau <antoine.vignau@laposte.net> wrote:
>>>> ----
>>>>
>>>> This is the INTEGER BASIC program
>>>>
>>>> 0 LOMEM:1800
>>>> 1 HIMEM:8192: POKE 202,165: POKE 203,27: LOMEM:6144: CLR : GOTO 0
>>>> 10 REM *** APPLE-VISION *** WRITTEN BY R.J. BISHOP
>>>>
>>>> 20 DIM A$(51)
>>>> 30 A$=" BOB BISHOP PRESENTS ... APPLE-VISION! "
>>>>
>>>> 40 CALL -936
>>>> 50 VTAB 10: TAB 10: PRINT "*** APPLE-VISION ***"
>>>> 55 VTAB 20: TAB 3: PRINT "COPYRIGHT 1978 APPLE COMPUTER, INC."
>>>>
>>>> 60 FOR K=1 TO 2500: NEXT K WAIT
>>>>
>>>> 70 CALL -936
>>>> $08A9 (CLEAR SCREEN)
>>>> 80 CALL 2217: POKE -16297,0: POKE -16302,0: POKE -16304,0
>>>>
>>>> 90 GOSUB 460: GOSUB 370 DRAW HOME
>>>>
>>>> 100 FOR K=1 TO 1000: NEXT K WAIT
>>>>
>>>> 110 FOR K=1 TO 45 SCROLL CHARS
>>>> 120 VTAB 13: TAB 12
>>>> 130 PRINT A$(K,K+6)
>>>> 140 FOR J=1 TO 75: NEXT J
>>>> 150 NEXT K
>>>>
>>>> 160 FOR K=1 TO 1000: NEXT K WAIT
>>>>
>>>> 170 CALL 2893 $0B4D (DANCER)
>>>>
>>>> 180 FOR K=1 TO 500: NEXT K WAIT
>>>>
>>>> 190 VTAB 13: TAB 13: PRINT "THE" DRAW THE END
>>>> 200 TAB 15: PRINT "END"
>>>>
>>>> 210 FOR K=1 TO 1500: NEXT K WAIT
>>>>
>>>> 220 VTAB 13: TAB 13: PRINT " " CLEAR THE END
>>>> 230 TAB 15: PRINT " "
>>>>
>>>> 240 FOR K=1 TO 4000: NEXT K WAIT
>>>>
>>>> 250 GOSUB 540 RANDOM ?
>>>>
>>>> 260 GOTO 110 LOOP
>>>> 270 END
>>>>
>>>> * BRESENHAM
>>>>
>>>> 280 DX=C-A:DY=D-B
>>>> 290 DELTA= ABS (DX): IF ABS (DY) > ABS (DX) THEN DELTA= ABS (DY)
>>>> 300 X=A:Y=B:INCX= SGN (DX):INCY= SGN (DY)
>>>> 310 FOR L=1 TO DELTA+1
>>>> 320 POKE 16,X: POKE 17,Y
>>>> 330 POKE 18,0: CALL 2048 $0800 (DRAW PIXEL)
>>>> 340 POKE 18,1: CALL 2048 $0800 (DRAW PIXEL)
>>>> 350 X=X+INCX:Y=Y+INCY
>>>> 360 NEXT L: RETURN
>>>>
>>>> * PRINT CHARS
>>>>
>>>> 370 POKE 54,0: POKE 55,11 $0B00 (COUT)
>>>> 380 VTAB 4
>>>> FONT IS AT $0900
>>>> 390 TAB 25: PRINT "HOME"
>>>> 400 TAB 27: PRINT "SWEET"
>>>> 410 TAB 30: PRINT "HOME"
>>>> 420 VTAB 11: TAB 21: PRINT "OO"
>>>> 430 VTAB 15: TAB 21: PRINT "''"
>>>> 430 VTAB 15: TAB 21: PRINT "''"
>>>> 440 VTAB 16: TAB 21: PRINT ".."
>>>> 450 RETURN
>>>>
>>>> 460 FOR LOC=3072 TO 3236 STEP 4 $0C00 (POINT COORDINATES)
>>>> 470 A= PEEK (LOC)
>>>> 480 B= PEEK (LOC+1)
>>>> 490 C= PEEK (LOC+2)
>>>> 500 D= PEEK (LOC+3)
>>>> 510 GOSUB 280
>>>> 520 NEXT LOC
>>>> 530 RETURN
>>>>
>>>> 540 LOC=3331:ST= PEEK (LOC-3) $0D03 - $0D00
>>>> 550 IF PEEK (LOC)=1 THEN RETURN
>>>> 560 TRY= RND (7)
>>>> 570 IF PEEK (7*ST-14+TRY+2255)=0 THEN 560 $08CF
>>>> 580 ST=TRY+2: POKE LOC,ST
>>>> 590 LOC=LOC+3: GOTO 550
>>>>
>>>> ---
>>>>
>>>> Read the INT BASIC code at line 370, it sets the COUT pointer to $B00
>>>> where the text on HGR routine is.
>>>>
>>>> 00/0B00: 48 PHA
>>>> 00/0B01: 8D50C0 STA TXTCLR
>>>> 00/0B04: 8D52C0 STA MIXCLR
>>>> 00/0B07: 8D57C0 STA HIRES
>>>> 00/0B0A: C98D CMP #$8D
>>>> 00/0B0C: F03B BEQ $0B49
>>>> 00/0B0E: 293F AND #$3F
>>>> 00/0B10: 0A ASL
>>>> 00/0B11: 0A ASL
>>>> 00/0B12: 0A ASL
>>>> 00/0B13: 850E STA $0E
>>>> 00/0B15: A909 LDA #$09
>>>> 00/0B17: 6900 ADC #$00
>>>> 00/0B19: 850F STA $0F
>>>> 00/0B1B: A525 LDA $25
>>>> 00/0B1D: 0A ASL
>>>> 00/0B1E: 0A ASL
>>>> 00/0B1F: 0A ASL
>>>> 00/0B20: 8511 STA $11
>>>> 00/0B22: 8A TXA
>>>> 00/0B23: 48 PHA
>>>> 00/0B24: 98 TYA
>>>> 00/0B25: 48 PHA
>>>> 00/0B26: A208 LDX #$08
>>>> 00/0B28: A000 LDY #$00
>>>> 00/0B2A: 204708 JSR $0847
>>>> 00/0B2D: 18 CLC
>>>> 00/0B2E: A514 LDA $14
>>>> 00/0B30: 6524 ADC $24
>>>> 00/0B32: 8514 STA $14
>>>> 00/0B34: A515 LDA $15
>>>> 00/0B36: 6900 ADC #$00
>>>> 00/0B38: 8515 STA $15
>>>> 00/0B3A: B10E LDA ($0E),Y
>>>> 00/0B3C: 9114 STA ($14),Y
>>>> 00/0B3E: E611 INC $11
>>>> 00/0B40: E60E INC $0E
>>>> 00/0B42: CA DEX
>>>> 00/0B43: D0E5 BNE $0B2A
>>>> 00/0B45: 68 PLA
>>>> 00/0B46: A8 TAY
>>>> 00/0B47: 68 PLA
>>>> 00/0B48: AA TAX
>>>> 00/0B49: 68 PLA
>>>> 00/0B4A: 4CF0FD JMP COUT1
>>>>
>>>> 00/0847: A511 LDA $11
>>>> 00/0849: 0A ASL
>>>> 00/084A: 0A ASL
>>>> 00/084B: 291C AND #$1C
>>>> 00/084D: 8515 STA $15
>>>> 00/084F: A511 LDA $11
>>>> 00/0851: 6A ROR
>>>> 00/0852: 6A ROR
>>>> 00/0853: 6A ROR
>>>> 00/0854: 6A ROR
>>>> 00/0855: 2903 AND #$03
>>>> 00/0857: 0515 ORA $15
>>>> 00/0859: 0920 ORA #$20
>>>> 00/085B: 8515 STA $15
>>>> 00/085D: A511 LDA $11
>>>> 00/085F: 6A ROR
>>>> 00/0860: 29E0 AND #$E0
>>>> 00/0862: 8514 STA $14
>>>> 00/0864: 6A ROR
>>>> 00/0865: 6A ROR
>>>> 00/0866: 2918 AND #$18
>>>> 00/0868: 0514 ORA $14
>>>> 00/086A: 8514 STA $14
>>>> 00/086C: 60 RTS
>>>>
>>>> ---
>>>>
>>>> Sorry ;-)
>>>> Antoine
>>>>
>>>
>>> My mistake! I always thought that Bob was using mode switching, and that
>>> was the point of the demo! ;-)
>>>
>>> Thanks for the correction.
>>>
>>> --
>>> -michael - NadaNet 3.1 and AppleCrate II: http://michaeljmahon.com
>>
>> Not that Bob Bishop wasn't awesome, but to pull off HiRes animation,
>> sound *and* vapor lock was just too much to imagine!
>>
>
> Good point. I should have realized that vaporlock while playing “Turkey in
> the Straw” was pretty improbable!
>
> Though, using PWM audio with a pulse rate of 15.75kHz, it might be
> possible... ;-)
>
> --
> -michael - NadaNet 3.1 and AppleCrate II: http://michaeljmahon.com

Your next challenge!
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Wrapping binaries in INTBASIC?
Next Topic: Apple /// and font loading, a start to figuring it out
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Thu Apr 25 16:56:33 EDT 2024

Total time taken to generate the page: 0.00892 seconds