Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.sys.apple2.programmer > #3717 > unrolled thread

Mixed mode graphics w/vapor lock

Started byAnthony Ortiz <anthonypaulo@gmail.com>
First post2017-07-20 07:12 -0700
Last post2017-07-29 19:18 -0600
Articles 9 — 6 participants

Back to article view | Back to comp.sys.apple2.programmer


Contents

  Mixed mode graphics w/vapor lock Anthony Ortiz <anthonypaulo@gmail.com> - 2017-07-20 07:12 -0700
    Mixed mode graphics w/vapor lock Michael Pohoreski <michael.pohoreski@gmail.com> - 2017-07-20 08:06 -0700
      Mixed mode graphics w/vapor lock Michael Pohoreski <michael.pohoreski@gmail.com> - 2017-07-20 08:17 -0700
      Re: Mixed mode graphics w/vapor lock Anthony Ortiz <anthonypaulo@gmail.com> - 2017-07-20 18:11 -0700
        Re: Mixed mode graphics w/vapor lock Antoine Vignau <antoine.vignau@laposte.net> - 2017-07-20 18:18 -0700
        Re: Mixed mode graphics w/vapor lock Michael Pohoreski <michael.pohoreski@gmail.com> - 2017-07-20 19:00 -0700
    Re: Mixed mode graphics w/vapor lock Marco Verpelli <mverpelli@libero.it> - 2017-07-20 08:07 -0700
    Re: Mixed mode graphics w/vapor lock mmphosis <mmphosis@macgui.com> - 2017-07-21 06:12 +0000
      Re: Mixed mode graphics w/vapor lock awanderin <awanderin@gmail.com> - 2017-07-29 19:18 -0600

#3717 — Mixed mode graphics w/vapor lock

FromAnthony Ortiz <anthonypaulo@gmail.com>
Date2017-07-20 07:12 -0700
SubjectMixed mode graphics w/vapor lock
Message-ID<36ef2b47-4555-4c79-964d-e330a0b23135@googlegroups.com>
I've been doing some light reading of "Understanding the Apple IIe" by Sathers and from what I can tell you should be able to display portions of text. For example, I should be able to switch to text mode for one row and graphics for another row, thereby creating what appears to be graphic lines going horizontally through the text. Am I correct in stating this is possible, and are there any demos/examples of text being mixed this way? I've seen demos where text is placed in the middle of some graphics but that's different, they always keep the text characters fully intact... I've never seen partial characters being displayed.

[toc] | [next] | [standalone]


#3718

FromMichael Pohoreski <michael.pohoreski@gmail.com>
Date2017-07-20 08:06 -0700
Message-ID<3f4a6553-a7ce-4c6a-8358-14f58572233c@googlegroups.com>
In reply to#3717
> I've been doing some light reading of "Understanding the Apple IIe" by Sathers and from what I can tell you should be able to display portions of text.

Yes, with accurate cycle counting / delays.


> For example, I should be able to switch to text mode for one row and graphics for another row,

You can switch video modes not only per scanline, but *mid* scanline as well !  French Touch is (semi?) famous for this.

Anyways, you'll probably want to check out the famous RAINBOW demo

10 A = 9200 :B = 13168:C=100:X=279
20 TEXT : HOME :GOTO 40
30 HPLOT 0,Y TO X,Y:RETURN
40 DATA 173,87,192,173,83,192,173,84,192,173,80,192
50 DATA 208,251,173,86,192,160,22,136,208,253,234,173,87,192,76,9,3
60 FOR I = 768 TO 796:READ N:POKE I,N:NEXT
70 HGR : POKE  - 16302,0 
80 HCOLOR= 4:HPLOT 0,0: CALL 62454 
90 HCOLOR= 2:Y=63:GOSUB 30:Y=62:GOSUB 30
100 HCOLOR= 6:Y=61:GOSUB 30:Y=60:GOSUB 30
110 HCOLOR= 1:Y=59:GOSUB 30:Y=58:GOSUB 30
120 HCOLOR= 5:Y=55:GOSUB 30:Y=54:GOSUB 30
130 HCOLOR= 0:X=C
140 Y=123:GOSUB 30:Y=122:GOSUB 30
150 Y=119:GOSUB 30:Y=118:GOSUB 30
160 COLOR= 0:FOR I = 0 TO 39:VLIN 0,39 AT I:NEXT 
170 COLOR= 13:HLIN 0,39 AT 14 
180 FOR I = 0 TO 7:POKE A + I,0:POKE B + I,0:NEXT
190 COLOR= 1:HLIN 0,39 AT 13 
200 VTAB 21:? TAB( 16)"RAINBOW"
210 ?:? "MIXED GRAPHICS (HI-RES/COLOR)" 
220 CALL 768

They are using this Assembly

        LDA SW.HIRES
        LDA SW.MIXSET
        LDA SW.LOWSCR
_309
        LDA SW.TXTCLR
        BNE _309
        LDA SW.LORES
        LDY #16
_313
        DEY
        BNE _313
        NOP
        LDA SW.HIRES
        JMP _309


We can modify $309 to show an HGR / TEXT split

300:AD 57 C0
303:AD 53 C0
306:AD 54 C0
309:AD 50 C0
30C:D0 FB
30E:AD 51 C0
311:A0 16
313:88
314:D0 FD
316:EA
317:AD 57 C0
31A:4C 09 03


Here's a quick demo I threw together that lets you play around with some of these concepts:
(Press a key to quit)

0300:20 E2 F3 A2 20 A0 00 84
0308:FE 86 FF A2 00 BD 41 03
0310:91 FE E6 FF E6 FF E6 FF
0318:E6 FF E8 E0 08 D0 EE 8D
0320:51 C0 A9 01 20 A8 FC 8D
0328:57 C0 8D 54 C0 8D 53 C0
0330:8D 50 C0 A9 01 20 A8 FC
0338:AD 00 C0 10 E2 8D 10 C0
0340:60 D5 D5 D5 D5 AA AA AA
0348:AA 

Some fun effects

323:1 N 334:08 N 300G
323:4 N 334:01 N 300G
323:4 N 334:10 N 300G

Obviously it is not as refined and more accurate cycle delay is needed to get a "stable" image -- left as an exercise for the reader -- but it shows what is possible.

Source in case you wan to assemble it yourself with Merlin32

- - - 8< videofun.s - -- 

; Apple 2 Video Fun

zDst        = $FE


KEYBOARD    = $C000
KEYSTROBE   = $C010

TXTCLR      = $C050
TXTSET      = $C051
MIXCLR      = $C052
MIXSET      = $C053
PAGE1       = $C054
PAGE2       = $C055
LORES       = $C056
HIRES       = $C057

AS_HGR      = $F3E2 ; Applesoft BASIC ][+ or newer
WAIT        = $FCA8

        ORG $300

Main
        jsr AS_HGR
    
        ldx #$20
        ldy #$00
        sty zDst+0
        stx zDst+1
        ldx #0
Copy
        lda Data,X
        sta (zDst),Y
        inc zDst+1
        inc zDst+1
        inc zDst+1
        inc zDst+1
        inx
        cpx #8
        bne Copy

Text
        sta TXTSET
        lda #04
        jsr WAIT

Graphics
        sta HIRES
        sta PAGE1
        sta MIXSET
        STA TXTCLR
        lda #01
        jsr WAIT

        lda KEYBOARD
        bpl Text
        sta KEYSTROBE
        rts

Data
        db $D5,$D5,$D5,$D5,$AA,$AA,$AA,$AA


; 323:1 N 334:08 N 300G
; 323:4 N 334:01 N 300G
; 323:4 N 334:10 N 300G

[toc] | [prev] | [next] | [standalone]


#3720

FromMichael Pohoreski <michael.pohoreski@gmail.com>
Date2017-07-20 08:17 -0700
Message-ID<e48b9938-671c-472d-bc65-468cd1d1f7f5@googlegroups.com>
In reply to#3718
Correction, we can modify $30E to show an HGR / TEXT split 

From: LDA SW.LORES
To: LDA SW.TXTSET

[toc] | [prev] | [next] | [standalone]


#3721

FromAnthony Ortiz <anthonypaulo@gmail.com>
Date2017-07-20 18:11 -0700
Message-ID<45be77a2-ab28-4000-a48b-be92121b3e85@googlegroups.com>
In reply to#3718
On Thursday, July 20, 2017 at 11:06:45 AM UTC-4, Michael Pohoreski wrote:
> > I've been doing some light reading of "Understanding the Apple IIe" by Sathers and from what I can tell you should be able to display portions of text.
> 
> Yes, with accurate cycle counting / delays.
> 
> 
> > For example, I should be able to switch to text mode for one row and graphics for another row,
> 
> You can switch video modes not only per scanline, but *mid* scanline as well !  French Touch is (semi?) famous for this.
> 
> Anyways, you'll probably want to check out the famous RAINBOW demo
> 
> 10 A = 9200 :B = 13168:C=100:X=279
> 20 TEXT : HOME :GOTO 40
> 30 HPLOT 0,Y TO X,Y:RETURN
> 40 DATA 173,87,192,173,83,192,173,84,192,173,80,192
> 50 DATA 208,251,173,86,192,160,22,136,208,253,234,173,87,192,76,9,3
> 60 FOR I = 768 TO 796:READ N:POKE I,N:NEXT
> 70 HGR : POKE  - 16302,0 
> 80 HCOLOR= 4:HPLOT 0,0: CALL 62454 
> 90 HCOLOR= 2:Y=63:GOSUB 30:Y=62:GOSUB 30
> 100 HCOLOR= 6:Y=61:GOSUB 30:Y=60:GOSUB 30
> 110 HCOLOR= 1:Y=59:GOSUB 30:Y=58:GOSUB 30
> 120 HCOLOR= 5:Y=55:GOSUB 30:Y=54:GOSUB 30
> 130 HCOLOR= 0:X=C
> 140 Y=123:GOSUB 30:Y=122:GOSUB 30
> 150 Y=119:GOSUB 30:Y=118:GOSUB 30
> 160 COLOR= 0:FOR I = 0 TO 39:VLIN 0,39 AT I:NEXT 
> 170 COLOR= 13:HLIN 0,39 AT 14 
> 180 FOR I = 0 TO 7:POKE A + I,0:POKE B + I,0:NEXT
> 190 COLOR= 1:HLIN 0,39 AT 13 
> 200 VTAB 21:? TAB( 16)"RAINBOW"
> 210 ?:? "MIXED GRAPHICS (HI-RES/COLOR)" 
> 220 CALL 768
> 
> They are using this Assembly
> 
>         LDA SW.HIRES
>         LDA SW.MIXSET
>         LDA SW.LOWSCR
> _309
>         LDA SW.TXTCLR
>         BNE _309
>         LDA SW.LORES
>         LDY #16
> _313
>         DEY
>         BNE _313
>         NOP
>         LDA SW.HIRES
>         JMP _309
> 
> 
> We can modify $309 to show an HGR / TEXT split
> 
> 300:AD 57 C0
> 303:AD 53 C0
> 306:AD 54 C0
> 309:AD 50 C0
> 30C:D0 FB
> 30E:AD 51 C0
> 311:A0 16
> 313:88
> 314:D0 FD
> 316:EA
> 317:AD 57 C0
> 31A:4C 09 03
> 
> 
> Here's a quick demo I threw together that lets you play around with some of these concepts:
> (Press a key to quit)
> 
> 0300:20 E2 F3 A2 20 A0 00 84
> 0308:FE 86 FF A2 00 BD 41 03
> 0310:91 FE E6 FF E6 FF E6 FF
> 0318:E6 FF E8 E0 08 D0 EE 8D
> 0320:51 C0 A9 01 20 A8 FC 8D
> 0328:57 C0 8D 54 C0 8D 53 C0
> 0330:8D 50 C0 A9 01 20 A8 FC
> 0338:AD 00 C0 10 E2 8D 10 C0
> 0340:60 D5 D5 D5 D5 AA AA AA
> 0348:AA 
> 
> Some fun effects
> 
> 323:1 N 334:08 N 300G
> 323:4 N 334:01 N 300G
> 323:4 N 334:10 N 300G
> 
> Obviously it is not as refined and more accurate cycle delay is needed to get a "stable" image -- left as an exercise for the reader -- but it shows what is possible.
> 
> Source in case you wan to assemble it yourself with Merlin32
> 
> - - - 8< videofun.s - -- 
> 
> ; Apple 2 Video Fun
> 
> zDst        = $FE
> 
> 
> KEYBOARD    = $C000
> KEYSTROBE   = $C010
> 
> TXTCLR      = $C050
> TXTSET      = $C051
> MIXCLR      = $C052
> MIXSET      = $C053
> PAGE1       = $C054
> PAGE2       = $C055
> LORES       = $C056
> HIRES       = $C057
> 
> AS_HGR      = $F3E2 ; Applesoft BASIC ][+ or newer
> WAIT        = $FCA8
> 
>         ORG $300
> 
> Main
>         jsr AS_HGR
>     
>         ldx #$20
>         ldy #$00
>         sty zDst+0
>         stx zDst+1
>         ldx #0
> Copy
>         lda Data,X
>         sta (zDst),Y
>         inc zDst+1
>         inc zDst+1
>         inc zDst+1
>         inc zDst+1
>         inx
>         cpx #8
>         bne Copy
> 
> Text
>         sta TXTSET
>         lda #04
>         jsr WAIT
> 
> Graphics
>         sta HIRES
>         sta PAGE1
>         sta MIXSET
>         STA TXTCLR
>         lda #01
>         jsr WAIT
> 
>         lda KEYBOARD
>         bpl Text
>         sta KEYSTROBE
>         rts
> 
> Data
>         db $D5,$D5,$D5,$D5,$AA,$AA,$AA,$AA
> 
> 
> ; 323:1 N 334:08 N 300G
> ; 323:4 N 334:01 N 300G
> ; 323:4 N 334:10 N 300G

Holy baby Jesus... Did you have this ready just in case someone asked this question? wow!

[toc] | [prev] | [next] | [standalone]


#3722

FromAntoine Vignau <antoine.vignau@laposte.net>
Date2017-07-20 18:18 -0700
Message-ID<aa2e8b37-d0fc-46fc-b237-d8827d1606f1@googlegroups.com>
In reply to#3721
French Touch's demos @ http://www.ctrl-pomme-reset.fr/

av

[toc] | [prev] | [next] | [standalone]


#3723

FromMichael Pohoreski <michael.pohoreski@gmail.com>
Date2017-07-20 19:00 -0700
Message-ID<4679d735-b688-48f1-b2aa-382142316b6a@googlegroups.com>
In reply to#3721
No, but since I originally logged AppleWin bug #254 ...
https://github.com/AppleWin/AppleWin/issues/254

... RAINBOW was one of the programs we used to test the NTSC rendering mode in AppleWin 1.26. :-)

[toc] | [prev] | [next] | [standalone]


#3719

FromMarco Verpelli <mverpelli@libero.it>
Date2017-07-20 08:07 -0700
Message-ID<146d37da-5de2-451c-9768-6c69f55f00d4@googlegroups.com>
In reply to#3717
On Thursday, July 20, 2017 at 4:12:43 PM UTC+2, Anthony Ortiz wrote:
> I've been doing some light reading of "Understanding the Apple IIe" by Sathers and from what I can tell you should be able to display portions of text. For example, I should be able to switch to text mode for one row and graphics for another row, thereby creating what appears to be graphic lines going horizontally through the text. Am I correct in stating this is possible, and are there any demos/examples of text being mixed this way? I've seen demos where text is placed in the middle of some graphics but that's different, they always keep the text characters fully intact... I've never seen partial characters being displayed.

Yes it is possible!

Bob Bishop article in Softalk

http://rich12345.tripod.com/aiivideo/softalk.html

Marco.

[toc] | [prev] | [next] | [standalone]


#3724

Frommmphosis <mmphosis@macgui.com>
Date2017-07-21 06:12 +0000
Message-ID<mmphosis-1500617805@macgui.com>
In reply to#3717
Holy baby Jesus... wow! I had this ready just in case you asked this
question...

The infamous rainbow:

http://hoop-la.ca/apple2/2011/rainbow/

Vertically:

300:AD C0 50 EA AD 51 C0 4C 0 3 N 300G

More vapor:

http://hoop-la.ca/apple2/2015/winterwarmup/#2015-01-25

[toc] | [prev] | [next] | [standalone]


#3737

Fromawanderin <awanderin@gmail.com>
Date2017-07-29 19:18 -0600
Message-ID<m3o9s2vi1e.fsf@gmail.com>
In reply to#3724
mmphosis <mmphosis@macgui.com> writes:


Also see Don Lancaster's books Enhancing Your Apple II volumes I and
II.  He describes the whole "vapor-lock" technique thoroughly.

ftp://ftp.apple.asimov.net/pub/apple_II/unsorted/Enhancing_your_Apple_II_Volume_1_Second_Edition.pdf
ftp://ftp.apple.asimov.net/pub/apple_II/documentation/hardware/machines/Enhancing Your II and IIe v2.pdf


--
Jerry    awanderin at gmail dot com

[toc] | [prev] | [standalone]


Back to top | Article view | comp.sys.apple2.programmer


csiph-web