• Flash the whole screen?

    From Brandon Taylor@21:1/5 to All on Tue Jul 13 09:13:09 2021
    I'm familiar with three commands in Applesoft BASIC which let you manipulate the way text gets displayed on the screen. There's INVERSE, which prints black text on a white background; FLASH, which basically just does what it says on the tin; and finally
    NORMAL, which cancels both of the above commands. But my question is, how do you set the entire SCREEN to INVERSE, FLASH or NORMAL? I know it will go to INVERSE at the end of a game of "The Match Machine" which can be found on "The Shell Games" disk; but
    I don't know is how that little effect was accomplished. The reason I'm asking is I'm in the process of writing a game in Applesoft BASIC which, ideally, will set the entire screen to FLASH, or at least INVERSE if FLASH is not possible.

    In case you need a refresher, I have the entire program listing of "The Match Machine" game here. https://mega.nz/file/woMUwJDT#LhO4jjSpjJ3Ei5z-0__HBeLHvMpGcZAGpPdv2iyrJII

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From qkumba@21:1/5 to All on Tue Jul 13 09:39:24 2021
    If the alternative character set is active, then full-screen INVERSE can be achieved by POKE 50,0 and then HOME.
    Otherwise, you're left to printing the characters yourself, for both FLASH and INVERSE.
    Here's one way:
    HOME
    POKE 48,mode (where mode=96 for FLASH, 32 for INVERSE)
    FOR Y = 1 TO 47 STEP 2: HLIN 0,39 AT Y: NEXT

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Scott Alfter@21:1/5 to br.ta.2818@gmail.com on Tue Jul 13 22:42:33 2021
    In article <6cf25169-929e-4363-81f8-f9f72f69499en@googlegroups.com>,
    Brandon Taylor <br.ta.2818@gmail.com> wrote:
    I'm familiar with three commands in Applesoft BASIC which let you
    manipulate the way text gets displayed on the screen. There's INVERSE,
    which prints black text on a white background; FLASH, which basically
    just does what it says on the tin; and finally NORMAL, which cancels
    both of the above commands. But my question is, how do you set the
    entire SCREEN to INVERSE, FLASH or NORMAL? I know it will go to INVERSE
    at the end of a game of "The Match Machine" which can be found on "The
    Shell Games" disk; but I don't know is how that little effect was >accomplished. The reason I'm asking is I'm in the process of writing a
    game in Applesoft BASIC which, ideally, will set the entire screen to
    FLASH, or at least INVERSE if FLASH is not possible.

    A possibly naive approach to setting the whole screen flashing:

    10 FLASH: HOME: FOR I=1 TO 23: PRINT " ";: NEXT I: PRINT " ";: POKE 2039,96
    20 VTAB 1: HTAB 1: PRINT "THIS IS A TEST"

    The first block of spaces has 40; the second has 39. Printing the very last space would scroll a normal line into view, so it's POKEd to the framebuffer instead. Speedwise, it's not half bad.

    _/_
    / v \ Scott Alfter (remove the obvious to send mail)
    (IIGS( https://alfter.us/ Top-posting!
    \_^_/ >What's the most annoying thing on Usenet?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Michael 'AppleWin Debugger Dev'@21:1/5 to All on Tue Aug 17 19:33:09 2021
    On Tuesday, July 13, 2021 at 9:13:11 AM UTC-7,
    But my question is, how do you set the entire SCREEN to INVERSE, FLASH or NORMAL?

    Here is a small machine language program that will **non-destructively** change set a 40-column screen to normal, inverse, or flash depending on the current mode. Included is a small demo to demonstrate usage.

    CALL-151
    300:A5 32 29 C0 4A 4A 4A A8 A2 00 BD 00 04 20 57 03
    310:9D 00 04 BD 80 04 20 57 03 9D 80 04 BD 00 05 20
    320:57 03 9D 00 05 BD 80 05 20 57 03 9D 80 05 BD 00
    330:06 20 57 03 9D 00 06 BD 80 06 20 57 03 9D 80 06
    340:BD 00 07 20 57 03 9D 00 07 BD 80 07 20 57 03 9D
    350:80 07 E8 E0 78 D0 B3 84 FF 48 4A 4A 4A 4A 4A 18
    360:65 FF A8 68 59 6A 03 A4 FF 60 00 00 40 40 80 80
    370:C0 00 40 40 00 00 C0 C0 80 00 00 00 00 00 00 00
    380:00 00 C0 80 80 C0 00 00 00 00
    E000G
    1 TEXT:HOME:VTAB 10:GOTO 10
    2 FOR Y=0 TO 7:FOR C=0 TO 31:POKE 1024 + 128*Y+C,C + 32*Y:NEXT:NEXT:RETURN:REM ASCII TABLE
    3 GET A$:CALL 768:? "PRESS RETURN TO CONT":GET A$:NORMAL:CALL 768:RETURN
    10 GOSUB 2:INVERSE:? "PRESS RETURN FOR INVERSE":GOSUB 3
    20 GOSUB 2:FLASH:? "PRESS RETURN FOR FLASH":GOSUB 3
    30 GOSUB 2:NORMAL:? "PRESS RETURN FOR NORMAL":GOSUB 3
    RUN

    I can post the source if anyone is interested.

    m.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)