Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.sys.apple2 > #47240 > unrolled thread
| Started by | "duhas...@gmail.com" <duhast6377@gmail.com> |
|---|---|
| First post | 2022-05-06 20:38 -0700 |
| Last post | 2022-05-13 16:39 +0000 |
| Articles | 17 — 10 participants |
Back to article view | Back to comp.sys.apple2
Screen Scrolling "duhas...@gmail.com" <duhast6377@gmail.com> - 2022-05-06 20:38 -0700
Re: Screen Scrolling barrym95838 <barrym95838@yahoo.com> - 2022-05-07 01:46 -0700
Re: Screen Scrolling qkumba <peter.ferrie@gmail.com> - 2022-05-07 12:39 -0700
Re: Screen Scrolling barrym95838 <barrym95838@yahoo.com> - 2022-05-08 01:24 -0700
Re: Screen Scrolling kegs@provalid.com (Kent Dickey) - 2022-05-09 04:03 +0000
Re: Screen Scrolling qkumba <peter.ferrie@gmail.com> - 2022-05-09 09:41 -0700
Re: Screen Scrolling Brian Patrie <bpatrie@bellsouth.spamisicky.net> - 2022-05-09 17:51 -0500
Re: Screen Scrolling Brian Patrie <bpatrie@bellsouth.spamisicky.net> - 2022-05-13 02:15 -0500
Re: Screen Scrolling qkumba <peter.ferrie@gmail.com> - 2022-05-09 09:42 -0700
Re: Screen Scrolling Brian Patrie <bpatrie@bellsouth.spamisicky.net> - 2022-05-09 17:40 -0500
Re: Screen Scrolling "duhas...@gmail.com" <duhast6377@gmail.com> - 2022-05-10 18:55 -0700
Re: Screen Scrolling Jerry Penner <jerry+a2@jpen.ca> - 2022-05-10 21:57 -0600
Re: Screen Scrolling Oliver Schmidt <ol.sc@web.de> - 2022-05-11 07:33 +0000
Re: Screen Scrolling Brian Patrie <bpatrie@bellsouth.spamisicky.net> - 2022-05-13 02:33 -0500
Re: Screen Scrolling I am Rob <gids.rs@sasktel.net> - 2022-05-07 14:22 -0700
Re: Screen Scrolling Speccie <someone@somewhere.com> - 2022-05-08 07:55 +0100
Re: Screen Scrolling mmphosis <mmphosis@macgui.com> - 2022-05-13 16:39 +0000
| From | "duhas...@gmail.com" <duhast6377@gmail.com> |
|---|---|
| Date | 2022-05-06 20:38 -0700 |
| Subject | Screen Scrolling |
| Message-ID | <b2b6a5dc-de2f-4ac0-ba41-70eb215dff98n@googlegroups.com> |
Or not scrolling I guess. I want to fill a the text screen with a character, in assembly. I'm using COUT, but the last character will cause the screen to scroll up one line and leave a line blank at the bottom. Is there a good way to prevent this beside printing everything but the last character and then directly sticking the last character into screen memory?
[toc] | [next] | [standalone]
| From | barrym95838 <barrym95838@yahoo.com> |
|---|---|
| Date | 2022-05-07 01:46 -0700 |
| Message-ID | <5e80af7d-ec2f-4627-9e96-894c057657a3n@googlegroups.com> |
| In reply to | #47240 |
On Friday, May 6, 2022 at 8:38:16 PM UTC-7, duhas...@gmail.com wrote: > Or not scrolling I guess. I want to fill a the text screen with a character, in assembly. > I'm using COUT, but the last character will cause the screen to scroll up one line and > leave a line blank at the bottom. Is there a good way to prevent this beside printing > everything but the last character and then directly sticking the last character into > screen memory? It might be a bit naughty, but have you tried poking a #$19 into ZP location $23? Proceed at your own risk ... it's way past my bed time.
[toc] | [prev] | [next] | [standalone]
| From | qkumba <peter.ferrie@gmail.com> |
|---|---|
| Date | 2022-05-07 12:39 -0700 |
| Message-ID | <f812d193-6a9e-4bfa-b896-8c6fdcef1f44n@googlegroups.com> |
| In reply to | #47241 |
HLINE and VLINE don't scroll.
[toc] | [prev] | [next] | [standalone]
| From | barrym95838 <barrym95838@yahoo.com> |
|---|---|
| Date | 2022-05-08 01:24 -0700 |
| Message-ID | <da02e601-f3da-4a0e-9b16-9a727d9eeee6n@googlegroups.com> |
| In reply to | #47242 |
On Saturday, May 7, 2022 at 12:39:03 PM UTC-7, qkumba wrote: > HLINE and VLINE don't scroll. ... and could be used to create a cool "wipe" effect @ 1 MHz. Like!
[toc] | [prev] | [next] | [standalone]
| From | kegs@provalid.com (Kent Dickey) |
|---|---|
| Date | 2022-05-09 04:03 +0000 |
| Message-ID | <t5a3r0$eq8$1@dont-email.me> |
| In reply to | #47242 |
In article <f812d193-6a9e-4bfa-b896-8c6fdcef1f44n@googlegroups.com>, qkumba <peter.ferrie@gmail.com> wrote: >HLINE and VLINE don't scroll. To give a little more detail, try the following: 10 FOR I = 0 TO 23 20 COLOR= 3 30 HLIN 0,39 AT I * 2 40 COLOR= 10 50 HLIN 0,39 AT I * 2 + 1 60 NEXT 70 FOR I = 1 TO 10000000 80 NEXT The HLIN (and VLIN and PLOT) commands work on the text screen, if you don't give GR. This writes "#" characters to the screen, and does not scroll. For the character you want in hex, (0x23 for #), write each hex digit as decimal, which is easy for this case: 2 and 3. Put the low digit in the 20 COLOR= line, and put the upper digit, plus 8 (to not be inverse or flashing) in the 40 COLOR= line. To fill the screen with "L", which is 0x5a, do 20 COLOR=10, 40 COLOR=13. The FOR loop in lines 70,80 just show that the screen isn't scrolling. Press ctrl-c to stop. This doesn't work in 80 columns. Kent
[toc] | [prev] | [next] | [standalone]
| From | qkumba <peter.ferrie@gmail.com> |
|---|---|
| Date | 2022-05-09 09:41 -0700 |
| Message-ID | <bd3e3948-4f32-4e30-9b2b-49b98d034bcfn@googlegroups.com> |
| In reply to | #47246 |
> This doesn't work in 80 columns. Though it can: 33 POKE 49237,0 35 HLIN 0,39 AT I * 2 38 POKE 49236,0
[toc] | [prev] | [next] | [standalone]
| From | Brian Patrie <bpatrie@bellsouth.spamisicky.net> |
|---|---|
| Date | 2022-05-09 17:51 -0500 |
| Message-ID | <t5c5t4$hib$1@gioia.aioe.org> |
| In reply to | #47247 |
qkumba wrote: >> This doesn't work in 80 columns. > > Though it can: > > 33 POKE 49237,0 > 35 HLIN 0,39 AT I * 2 > 38 POKE 49236,0 Sorta. This mod will work on a IIe, or IIee, but will misbehave on a IIc, IIc+, or IIgs--which support DGR in firmware. So you'd need to determine what you're running on, and act accordingly (or roll your own PLOT, HLINE, VLINE code).
[toc] | [prev] | [next] | [standalone]
| From | Brian Patrie <bpatrie@bellsouth.spamisicky.net> |
|---|---|
| Date | 2022-05-13 02:15 -0500 |
| Message-ID | <t5l0ij$10lt$1@gioia.aioe.org> |
| In reply to | #47250 |
Brian Patrie wrote: > qkumba wrote: >>> This doesn't work in 80 columns. >> >> Though it can: >> >> 33 POKE 49237,0 >> 35 HLIN 0,39 AT I * 2 >> 38 POKE 49236,0 > > Sorta. This mod will work on a IIe, or IIee, but will misbehave on a > IIc, IIc+, or IIgs--which support DGR in firmware. So you'd need to > determine what you're running on, and act accordingly (or roll your own > PLOT, HLINE, VLINE code). Erratum: This only seems to apply to AppleSoft--not the ml PLOT, VLINE, and HLINE calls. (Tested with an emulated IIgs3.)
[toc] | [prev] | [next] | [standalone]
| From | qkumba <peter.ferrie@gmail.com> |
|---|---|
| Date | 2022-05-09 09:42 -0700 |
| Message-ID | <de5df285-1c1f-4c3b-b22f-dd4164bd058dn@googlegroups.com> |
| In reply to | #47246 |
> This doesn't work in 80 columns. Though it can: 33 POKE 49237,0 35 HLIN 0,39 AT I * 2 38 POKE 49236,0
[toc] | [prev] | [next] | [standalone]
| From | Brian Patrie <bpatrie@bellsouth.spamisicky.net> |
|---|---|
| Date | 2022-05-09 17:40 -0500 |
| Message-ID | <t5c581$acm$1@gioia.aioe.org> |
| In reply to | #47246 |
Kent Dickey wrote: > In article <f812d193-6a9e-4bfa-b896-8c6fdcef1f44n@googlegroups.com>, > qkumba <peter.ferrie@gmail.com> wrote: >> HLINE and VLINE don't scroll. > > To give a little more detail, try the following: > > 10 FOR I = 0 TO 23 > 20 COLOR= 3 > 30 HLIN 0,39 AT I * 2 > 40 COLOR= 10 > 50 HLIN 0,39 AT I * 2 + 1 > 60 NEXT > 70 FOR I = 1 TO 10000000 > 80 NEXT > > The HLIN (and VLIN and PLOT) commands work on the text screen, > if you don't give GR. Better yet, write directly to the colour mask byte: 10 FOR I = 0 TO 47 20 POKE 48,163 30 HLIN 0,39 AT I 40 NEXT 90 ON PEEK(49152) < 128 GOTO 90 : POKE 49168,. (That last line just waits for a key, and clears it.) Or (on a machine with MouseText): 10 PRINT CHR$(17); : POKE 49167,. : TEXT 21 FOR X = 0 TO 38 STEP 2 22 POKE 48,86 : VLIN 0,47 AT X 23 POKE 48,87 : VLIN 0,47 AT X + 1 24 NEXT 90 ON PEEK(49152) < 128 GOTO 90 : POKE 49168,. (Line 10 ensures 40 columns, alt charset, text mode.)
[toc] | [prev] | [next] | [standalone]
| From | "duhas...@gmail.com" <duhast6377@gmail.com> |
|---|---|
| Date | 2022-05-10 18:55 -0700 |
| Message-ID | <b5c3e5fd-a49b-45b6-b1ee-d1397d5441ban@googlegroups.com> |
| In reply to | #47249 |
On Monday, May 9, 2022 at 6:40:09 PM UTC-4, Brian Patrie wrote:
> Kent Dickey wrote:
> > In article <f812d193-6a9e-4bfa...@googlegroups.com>,
> > qkumba wrote:
> >> HLINE and VLINE don't scroll.
> >
> > To give a little more detail, try the following:
> >
> > 10 FOR I = 0 TO 23
> > 20 COLOR= 3
> > 30 HLIN 0,39 AT I * 2
> > 40 COLOR= 10
> > 50 HLIN 0,39 AT I * 2 + 1
> > 60 NEXT
> > 70 FOR I = 1 TO 10000000
> > 80 NEXT
> >
> > The HLIN (and VLIN and PLOT) commands work on the text screen,
> > if you don't give GR.
> Better yet, write directly to the colour mask byte:
>
> 10 FOR I = 0 TO 47
> 20 POKE 48,163
> 30 HLIN 0,39 AT I
> 40 NEXT
> 90 ON PEEK(49152) < 128 GOTO 90 : POKE 49168,.
>
> (That last line just waits for a key, and clears it.)
>
> Or (on a machine with MouseText):
>
> 10 PRINT CHR$(17); : POKE 49167,. : TEXT
> 21 FOR X = 0 TO 38 STEP 2
> 22 POKE 48,86 : VLIN 0,47 AT X
> 23 POKE 48,87 : VLIN 0,47 AT X + 1
> 24 NEXT
> 90 ON PEEK(49152) < 128 GOTO 90 : POKE 49168,.
>
> (Line 10 ensures 40 columns, alt charset, text mode.)
Ok I tried the BASIC versions and they work like I want, but I tried to right a little assembly program to test it and I can't get it to work.
*300L
0300- A9 A3 LDA #$A3 ;Load "#"
0302- 85 30 STA $30 ;Stick in color
0304- A9 27 LDA #$27 ;Load rightmost
0306- 85 2C STA $2C ;Stick in 2C
0308- A9 09 LDA #$09 ;Load vertical coord
030A- A0 00 LDY #$00 ;load horizontal coord
030C- 20 19 F8 JSR $F819 ; call HLIN
Should have a line of # through the screen and I don;t....
0
*
[toc] | [prev] | [next] | [standalone]
| From | Jerry Penner <jerry+a2@jpen.ca> |
|---|---|
| Date | 2022-05-10 21:57 -0600 |
| Message-ID | <yublev8souo.fsf@jpen.ca> |
| In reply to | #47252 |
"duhas...@gmail.com" <duhast6377@gmail.com> writes: > On Monday, May 9, 2022 at 6:40:09 PM UTC-4, Brian Patrie wrote: >> Kent Dickey wrote: >> > In article <f812d193-6a9e-4bfa...@googlegroups.com>, >> > qkumba wrote: >> >> HLINE and VLINE don't scroll. >> > >> > To give a little more detail, try the following: >> > >> > 10 FOR I = 0 TO 23 >> > 20 COLOR= 3 >> > 30 HLIN 0,39 AT I * 2 >> > 40 COLOR= 10 >> > 50 HLIN 0,39 AT I * 2 + 1 >> > 60 NEXT >> > 70 FOR I = 1 TO 10000000 >> > 80 NEXT >> > >> > The HLIN (and VLIN and PLOT) commands work on the text screen, >> > if you don't give GR. >> Better yet, write directly to the colour mask byte: >> >> 10 FOR I = 0 TO 47 >> 20 POKE 48,163 >> 30 HLIN 0,39 AT I >> 40 NEXT >> 90 ON PEEK(49152) < 128 GOTO 90 : POKE 49168,. >> >> (That last line just waits for a key, and clears it.) >> >> Or (on a machine with MouseText): >> >> 10 PRINT CHR$(17); : POKE 49167,. : TEXT >> 21 FOR X = 0 TO 38 STEP 2 >> 22 POKE 48,86 : VLIN 0,47 AT X >> 23 POKE 48,87 : VLIN 0,47 AT X + 1 >> 24 NEXT >> 90 ON PEEK(49152) < 128 GOTO 90 : POKE 49168,. >> >> (Line 10 ensures 40 columns, alt charset, text mode.) > > Ok I tried the BASIC versions and they work like I want, but I tried to right a little > assembly program to test it and I can't get it to work. > > > *300L > 0300- A9 A3 LDA #$A3 ;Load "#" > 0302- 85 30 STA $30 ;Stick in color > 0304- A9 27 LDA #$27 ;Load rightmost > 0306- 85 2C STA $2C ;Stick in 2C > 0308- A9 09 LDA #$09 ;Load vertical coord > 030A- A0 00 LDY #$00 ;load horizontal coord > 030C- 20 19 F8 JSR $F819 ; call HLIN > > Should have a line of # through the screen and I don;t.... > > 0 > * You still have to draw two HLINs because with one you're only setting one half of the byte (the top or the bottom, depending on your Y-coordinate). -- -- Jerry jerry+a2 at jpen.ca
[toc] | [prev] | [next] | [standalone]
| From | Oliver Schmidt <ol.sc@web.de> |
|---|---|
| Date | 2022-05-11 07:33 +0000 |
| Message-ID | <t5fos0$bvpe$1@solani.org> |
| In reply to | #47253 |
Hi, Looking at the complexity of the HLIN approach, I'm wondering in which aspect it is preferable over a single POKE into screen RAM. Especially because AFAIK that POKE would work both in 40 and 80 col mode. Regards, Oliver
[toc] | [prev] | [next] | [standalone]
| From | Brian Patrie <bpatrie@bellsouth.spamisicky.net> |
|---|---|
| Date | 2022-05-13 02:33 -0500 |
| Message-ID | <t5l1l0$1elb$1@gioia.aioe.org> |
| In reply to | #47253 |
Jerry Penner wrote: > "duhas...@gmail.com" <duhast6377@gmail.com> writes: > >> On Monday, May 9, 2022 at 6:40:09 PM UTC-4, Brian Patrie wrote: >>> Kent Dickey wrote: >>>> In article <f812d193-6a9e-4bfa...@googlegroups.com>, >>>> qkumba wrote: >>>>> HLINE and VLINE don't scroll. >>>> >>>> To give a little more detail, try the following: >>>> >>>> 10 FOR I = 0 TO 23 >>>> 20 COLOR= 3 >>>> 30 HLIN 0,39 AT I * 2 >>>> 40 COLOR= 10 >>>> 50 HLIN 0,39 AT I * 2 + 1 >>>> 60 NEXT >>>> 70 FOR I = 1 TO 10000000 >>>> 80 NEXT >>>> >>>> The HLIN (and VLIN and PLOT) commands work on the text screen, >>>> if you don't give GR. >>> Better yet, write directly to the colour mask byte: >>> >>> 10 FOR I = 0 TO 47 >>> 20 POKE 48,163 >>> 30 HLIN 0,39 AT I >>> 40 NEXT >>> 90 ON PEEK(49152) < 128 GOTO 90 : POKE 49168,. >>> >>> (That last line just waits for a key, and clears it.) >>> >>> Or (on a machine with MouseText): >>> >>> 10 PRINT CHR$(17); : POKE 49167,. : TEXT >>> 21 FOR X = 0 TO 38 STEP 2 >>> 22 POKE 48,86 : VLIN 0,47 AT X >>> 23 POKE 48,87 : VLIN 0,47 AT X + 1 >>> 24 NEXT >>> 90 ON PEEK(49152) < 128 GOTO 90 : POKE 49168,. >>> >>> (Line 10 ensures 40 columns, alt charset, text mode.) >> >> Ok I tried the BASIC versions and they work like I want, but >> I tried to right a little assembly program to test it and I >> can't get it to work. >> >> >> *300L >> 0300- A9 A3 LDA #$A3 ;Load "#" >> 0302- 85 30 STA $30 ;Stick in color >> 0304- A9 27 LDA #$27 ;Load rightmost >> 0306- 85 2C STA $2C ;Stick in 2C >> 0308- A9 09 LDA #$09 ;Load vertical coord >> 030A- A0 00 LDY #$00 ;load horizontal coord >> 030C- 20 19 F8 JSR $F819 ; call HLIN >> >> Should have a line of # through the screen and I don;t.... >> >> 0 >> * > > You still have to draw two HLINs because with one you're only > setting one half of the byte (the top or the bottom, depending > on your Y-coordinate). Which is why i prefer to use VLIN. (Though, from ml, either way is fast enough not to see the dirt that your eye can catch with HLIN from BASIC at 1 MHz.) 0300- A9 A3 LDA #$A3 ;"#" 0302- 85 30 STA $30 ;to colour mask byte 0304- A9 2F LDA #$2F ;bottom of line 0306- 85 2D STA $2D 0308- A0 27 LDY #$27 ;start column 030A- A9 00 LDA #$00 ;top of line 030C- 20 28 F8 JSR $F828 ;VLINE 030F- 88 DEY ;next column 0310- 10 F8 BPL $030A 0312- 60 RTS And, since (contrary to my earlier assumption) the DGR support in AppleSoft (IIc, IIc+ ,IIgs) doesn't seem to apply to the machine language PLOT, HLINE, and VLINE calls, you can (with 80STORE enabled, of course) throw the PAGE2 switch and call this again, to fill the auxmem columns. *C055:0 n 300g n C054:0 n 300g
[toc] | [prev] | [next] | [standalone]
| From | I am Rob <gids.rs@sasktel.net> |
|---|---|
| Date | 2022-05-07 14:22 -0700 |
| Message-ID | <c2271549-865b-43c4-b6c0-d14e27f7bc13n@googlegroups.com> |
| In reply to | #47240 |
> Or not scrolling I guess. I want to fill a the text screen with a character, in assembly. I'm using COUT, but the last character will cause the screen to scroll up one line and leave a line blank at the bottom. Is there a good way to prevent this beside printing everything but the last character and then directly sticking the last character into screen memory?
The simplest way I have seen so far is to increase the vertical and horizontal window sizes.
Increase $21 by 1 and $23 by 1 of zero page, set your htab and vtab then print your character to the bottom right hand corner using COUT. And reset $21 and $23 back to normal.
Try this:
0300:A9 17 20 5B FB A9 27 85
0308:24 E6 21 E6 23 A9 C1 20
0310:ED FD C6 23 C6 21 A9 14
0318:20 5B FB 4C 8E FD 00 00
[toc] | [prev] | [next] | [standalone]
| From | Speccie <someone@somewhere.com> |
|---|---|
| Date | 2022-05-08 07:55 +0100 |
| Message-ID | <0001HW.2827A0CB0798E46D700010A142EF@eu.astraweb.com> |
| In reply to | #47240 |
On 7 May 2022, duhas...@gmail.com wrote > Or not scrolling I guess. I want to fill a the text screen with a character, in assembly. I'm using COUT, but the last character will cause the screen to scroll up one line and leave a line blank at the bottom. Is there a good way to prevent this beside printing everything but the last character and then directly sticking the last character into screen memory? As you are working in assembly, you could do as I did with Spectrum when I had a similar problem, and simply copy the screen code, and adapt it as necessary... You can find the code in a //e manual. Cheers - Speccie
[toc] | [prev] | [next] | [standalone]
| From | mmphosis <mmphosis@macgui.com> |
|---|---|
| Date | 2022-05-13 16:39 +0000 |
| Message-ID | <mmphosis-1652459995@macgui.com> |
| In reply to | #47240 |
ORG $0300
LDA #$A3
LDX #$78
loop
DEX
STA $400,X
STA $480,X
STA $500,X
STA $580,X
STA $600,X
STA $680,X
STA $700,X
STA $780,X
BNE loop
RTS
0FORI=768TO799:READB:POKE
I,B:NEXT:DATA169,163,162,120,202,157,0,4,157,128,4,157,0,5,157,128,5,157,0,6,157,128,6,157,0,7,157,128,7,208,229,96
1 C = ASC ("#")
2 POKE 769,C + 128: CALL 768
3 WAIT 49152,128: POKE 49168,0
4 POKE 37,255
[toc] | [prev] | [standalone]
Back to top | Article view | comp.sys.apple2
csiph-web