Megalextoria
Retro computing and gaming, sci-fi books, tv and movies and other geeky stuff.

Home » Digital Archaeology » Computer Arcana » Apple » Apple II » Flash the whole screen?
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Flash the whole screen? [message #409869] Tue, 13 July 2021 12:13 Go to next message
Brandon Taylor is currently offline  Brandon Taylor
Messages: 144
Registered: April 2012
Karma: 0
Senior Member
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__HBeLHvMpGcZ AGpPdv2iyrJII
Re: Flash the whole screen? [message #409870 is a reply to message #409869] Tue, 13 July 2021 12:39 Go to previous messageGo to next message
qkumba is currently offline  qkumba
Messages: 1584
Registered: March 2013
Karma: 0
Senior Member
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
Re: Flash the whole screen? [message #409888 is a reply to message #409869] Tue, 13 July 2021 18:42 Go to previous messageGo to next message
Anonymous
Karma:
Originally posted by: Scott Alfter

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?
Re: Flash the whole screen? [message #410539 is a reply to message #409869] Tue, 17 August 2021 22:33 Go to previous message
Michael AppleWin Debu is currently offline  Michael AppleWin Debu
Messages: 1262
Registered: March 2013
Karma: 0
Senior Member
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.
  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Deathmaze 5000 disassembly
Next Topic: a bit of nostalgia
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Thu Mar 28 10:35:57 EDT 2024

Total time taken to generate the page: 0.11542 seconds