|
Volume Number: | 1 | |
Issue Number: | 5 | |
Column Tag: | BASIC |
Professor Mac’s Screen Pokes
By Dave Kelly
Mike Steiner and Michael M. Boy contributed to this article and we acknowledge their valuable con- tributions.
Professor Mac’s Screen Pokes
One day, Professor Mac was poking around in his Mac’s memory when suddenly he fell in and got stuck. Then along came Mike Steiner with screen memory locations. Professor Mac was then able to write his own program to poke his head out of the Mac screen.
The upper left corner of the screen starts at 108288. The locations progress consecutively starting from the upper left corner of the screen to the bottom right corner moving left to right and down the screen. The bottom right corner of the screen is 130175. These locations are for a 128K Mac. Add (512-128)*1024 for a 512K Mac. Be careful to not poke locations before or after the start and end addresses... unpredictable things will happen.
There are 21888 locations mapping the Macintosh screen. Each line (342 lines) of the screen is represented by 64 memory locations. Thus the first line of the screen goes from 108288 to 108351, the second line starts at 108352 and so on.... (remember to add for 512K Mac)
Each memory location contains 1 sixteen bit word which is bit mapped on the Mac screen. From left to right on the screen, the sixteen bits are mapped from hi order bit to low. A typical memory location is shown in figure 1.
The program pokes zeros into the first 18 lines of the screen, hiding the BASIC menu bars. The menus are still active and can be used to trace or stop the program. The image of Professor Mac is read from data statements and poked into the screen memory locations. Most of the time, you probably won’t want to poke the screen directly, there are easier ways to print on the screen. But this method could be used to check status of a particular location of the screen. The FRE(0) command is used to check which Mac (128K or 512K) is being used because the start and ending screen locations are different and have to be adjusted for the 512K Mac.
Thanks and appreciation go to Mike Steiner of Sierra Vista, Az. and Michael M. Boy of Elgin, Az. for submitting the screen locations.
‘Professor Mac’s Screen Poke ‘By Dave Kelly WINDOW CLOSE 1 start=108288! ‘Starting address for 128K MAC ending=130175! ‘Ending address for 128K mac512=(512-128)*1024 ‘address offset for 512K MAC IF FRE(0)>100000! THEN start=start+mac512: ending=ending+mac512 erase.top.of.screen: FOR i= start TO start +64*18 POKE i,0 NEXT i WINDOW 1 TEXTFONT(2):TEXTSIZE(18) LOCATE 8,10:PRINT “Prof. Mac says: Read MacTutor!” TEXTSIZE(12):PRINT PRINT TAB(22);”Hit mouse button to quit” print.professor.mac: a=start+64*100 ‘Start at line 100 b=67 ‘print 67 lines FOR j=a TO a+b*64 STEP 64 FOR k= j+30 TO j+36 READ value POKE k,value NEXT k NEXT j ON MOUSE GOSUB quit MOUSE ON:RESTORE GOTO print.professor.mac quit: MENU RESET:END prof.mac.plot.data: 1 DATA &H00,&H00,&H00,&HE0,&H00, &H00,&H00 2 DATA &H00,&H00,&H01,&HF8,&H00, &H00,&H00 3 DATA &H00,&H00,&H07,&HFC,&H00, &H00,&H00 4 DATA &H00,&H00,&H0F,&HFF,&H00, &H00,&H00 5 DATA &H00,&H00,&H3F,&HFF,&HC0, &H00,&H00 6 DATA &H00,&H00,&H7F,&HFF,&HE0, &H00,&H00 7 DATA &H00,&H01,&HFF,&HFF,&HF8, &H00,&H00 8 DATA &H00,&H03,&HFF,&HFF,&HFE, &H00,&H00 9 DATA &H00,&H07,&HFF,&HFF,&HFF, &H80,&H00 10 DATA &H00,&H1F,&HFF,&HFF,&HFF, &HC0,&H00 11 DATA &H00,&H3F,&HFF,&HFF,&HFF, &HF0,&H00 12 DATA &H00,&HFF,&HFF,&HFF,&HFF, &HFC,&H00 13 DATA &H01,&HFF,&HFF,&HF3,&HFF, &HFE,&H00 14 DATA &H03,&HFF,&HFF,&HE1,&HFF, &HFF,&H80 15 DATA &H07,&HFF,&HFF,&HE1,&HFF, &HFF,&HC0 16 DATA &H0F,&HFF,&HFF,&HF2,&H7F, &HFF,&HC0 17 DATA &H1F,&HFF,&HFF,&HFF,&H9F, &HFF,&H80 18 DATA &H0F,&HFF,&HFF,&HFF,&HE7, &HFF,&H00 19 DATA &H07,&HFF,&HFF,&HFF,&HF9, &HFE,&H00 20 DATA &H01,&HFF,&HFF,&HFF,&HFE, &H7C,&H00 21 DATA &H03,&HFF,&HFF,&HFF,&HFF, &H98,&H00 22 DATA &H03,&H3F,&HFF,&HFF,&HFF, &HE8,&H00 23 DATA &H06,&H0F,&HFF,&HFF,&HFF, &HFC,&H00 24 DATA &H06,&H07,&HFF,&HFF,&HFF, &HFF,&HCC 25 DATA &H06,&H01,&HFF,&HFF,&HFF, &H87,&H00 26 DATA &H06,&H00,&H7F,&HFF,&HFF, &H0F,&H80 27 DATA &H06,&H00,&H1F,&HFF,&HFF, &H0F,&H80 28 DATA &H06,&H00,&H0F,&HFF,&HFF, &H0F,&H80 29 DATA &H06,&H03,&H83,&HFF,&HFB, &H05,&H00 30 DATA &H06,&H07,&HC0,&HFF,&HF3, &H00,&H00 31 DATA &H06,&H0F,&H60,&H3F,&HE3, &H0A,&H80 32 DATA &H06,&H0E,&H30,&H1F,&HC3, &H05,&H00 33 DATA &H06,&H0C,&H00,&H07,&H83, &H02,&H00 34 DATA &H06,&H00,&H00,&H01,&H03, &H08,&H80 35 DATA &H06,&H00,&H00,&H00,&H03, &H05,&H00 36 DATA &H06,&H00,&H00,&H00,&H03, &H00,&H00 37 DATA &H06,&H00,&H00,&H00,&H03, &H0A,&H80 38 DATA &H06,&H80,&H70,&H70,&H0B, &H05,&H00 39 DATA &H06,&H81,&HF8,&HFC,&H0B, &H00,&H00 40 DATA &H06,&HC7,&HFD,&HFF,&H1B, &H0A,&H80 41 DATA &H06,&H7F,&HFF,&HFF,&HF3, &H00,&H00 42 DATA &H06,&H3F,&HFF,&HFF,&HE3, &H1F,&H41 43 DATA &H03,&H07,&HFD,&HFF,&H06, &H04,&H63 44 DATA &H03,&H81,&HF8,&HFB,&H0E, &H04,&H55 45 DATA &H01,&HC0,&H00,&H00,&H1C, &H04,&H49 46 DATA &H00,&HE0,&H00,&H00,&H38, &H04,&H41 47 DATA &H00,&H7F,&HFF,&HFF,&HF0, &H00,&H00 48 DATA &H00,&H1F,&HFF,&HFF,&HC0, &H00,&H00 49 DATA &H00,&H08,&H00,&H00,&H40, &H00,&H00 50 DATA &H00,&H08,&H00,&H00,&H40, &H00,&H00 51 DATA &H00,&H0F,&HFF,&HFF,&HC0, &H00,&H00 52 DATA &H00,&H1A,&HAA,&HAA,&HA0, &H00,&H00 53 DATA &H00,&H35,&H55,&H55,&H50, &H00,&H00 54 DATA &H00,&H6F,&HEA,&HFE,&HA8, &H00,&H00 55 DATA &H00,&HD8,&H35,&H83,&H54, &H00,&H00 56 DATA &H01,&HB0,&H1B,&H01,&HAA, &H00,&H00 57 DATA &H03,&H50,&H15,&H01,&H55, &H00,&H00 58 DATA &H06,&HA8,&H2A,&H82,&HAA, &H80,&H00 59 DATA &H0D,&H57,&HD5,&H7D,&H7F, &H40,&H00 60 DATA &H1A,&HFA,&HAF,&HAA,&HC1, &HA0,&H00 61 DATA &H35,&H05,&H50,&H55,&H80, &HD0,&H00 62 DATA &H6A,&H02,&HA0,&H2A,&H80, &HA8,&H00 63 DATA &HD6,&H03,&H60,&H35,&H41, &H54,&H00 64 DATA &HAB,&H06,&HB0,&H6A,&HBE, &HAC,&H00 65 DATA &HD5,&HFD,&H5F,&HD5,&H55, &H54,&H00 66 DATA &HAA,&HAA,&HAA,&HAA,&HAA, &HAC,&H00 67 DATA &HD5,&H55,&H55,&H55,&H55, &H54,&H00 68 DATA &HFF,&HFF,&HFF,&HFF,&HFF, &HFC,&H00
- SPREAD THE WORD:
- Slashdot
- Digg
- Del.icio.us
- Newsvine