Side-by-side graphics/text windows

This blogpost is a partial-transcript of a discussion from Apple2Infinitum on Slack, which was spawned from an even older Facebook thread.  Since it isn't easy to view the old discussions on Slack and Facebook, I've copy-pasted the messages, pictures, and code blocks below...

 

Scott Elliott Sep 3rd 11:29:17 AM

Here are pictures of the "window toggle" program, which splits the screen into 10 vertical windows that can be independently toggled between text or graphics by pressing the keys 0-9.  I've also included a hex dump of the whole program, and the two annotated pictures from my FB comments.

[EDIT: The emulator depicted in the last screencap can't actually execute this routine.  That was just a disassembly for annotating the machine code.] 

 

Scott Elliott Sep 3rd 11:33:01 AM

Here's a text version of that machine code.  Type it into the monitor, start it with comment 300G<return>, then press number keys to individually toggle 10 side-by-side windows between text and graphcis modes.

Machine code for WindowToggle routine

0300- 20 7E 03 AD 57 C0 AD 54

0308- C0 AD 52 C0 AD 50 C0 2C

0310- 50 C0 10 FB A9 0A 38 E9

0318- 01 D0 FC EA EA CD 50 C0

0320- CD 50 C0 CD 50 C0 CD 50

0328- C0 CD 50 C0 CD 50 C0 CD

0330- 50 C0 CD 50 C0 CD 50 C0

0338- CD 50 C0 CD 50 C0 CD 50

0340- C0 CD 50 C0 CD 56 C0 EA

0348- AD 00 C0 10 D0 C9 9B D0

0350- 01 60 29 0F 24 06 2C 10

0358- C0 2C 10 C0 2C 10 C0 2C

0360- 10 C0 2C 10 C0 2C 10 C0

0368- 2C 10 C0 EA 85 3D 0A 38

0370- 65 3D AA BD 1D 03 49 01

0378- 9D 1D 03 D0 A0 60 A9 20

0380- 85 E6 85 3D A9 40 85 3F

0388- A0 00 84 3C 84 3E B1 3C

0390- 29 7F 91 3C 20 B4 FC 90

0398- F5 A9 40 85 3C 85 3D A5

03A0- 3C 20 11 F4 A0 00 B1 26

03A8- 09 80 91 26 E6 3C C6 3D

03B0- D0 ED 60

 

[EDIT: several comments skipped]

 

Scott Elliott Sep 23 9:57:43 AM

Yes, another version of the program let the user choose a different soft-switch for each region.  It wasn't much fun to play with, so I didn't save it.  But it demonstrated the timing quirks of each switch, causing some regions to appear as 5-colums or 3-columns, even though the switching always occurs on 4-cycle boundaries.

Tags: 
Content Type: