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)   
|