home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.sys.apple2      Discussion about Apple II micros      56,720 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 55,494 of 56,720   
   Brian Patrie to Jerry Penner   
   Re: Screen Scrolling   
   13 May 22 02:33:51   
   
   From: bpatrie@bellsouth.spamisicky.net   
      
   Jerry Penner wrote:   
    > "duhas...@gmail.com"  writes:   
    >   
    >> On Monday, May 9, 2022 at 6:40:09 PM UTC-4, Brian Patrie wrote:   
    >>> Kent Dickey wrote:   
    >>>> In article ,   
    >>>> 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   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca