• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Save & restore 80 column screen using Applesoft BASIC

mmphosis

Member
Over on applefritter.com I posted some code to save and restore the Apple IIe 80 column screen using Applesoft BASIC. There is a 96 byte chunk of machine code that is embedded in the Applesoft program but it makes for two very long lines. See the DATA statements in lines 1 and 2 ...

Code:
 0  IF  PEEK (863) <  > 96 THEN  READ L$,H$ : FOR I = 1 TO 96: POKE I + 767,( ASC ( MID$ (H$,I)) - 65) * 16 + ASC ( MID$ (L$,I)) - 65: NEXT : CLEAR : HIMEM:  PEEK (115) +  PEEK (116) * 256 - 2048
 1  DATA "ELALEMEOFMFCFNFDCEGNABDJEEMGDAJFMFMFOFNFNAAECCEGDABDFNCEFNIJEFPECGDJANKANAAFLKMBDBMBCIAJGNGDKACAELALEMEOFMFCFNFDCEGNABDJEEMGDAJFMFMFOFNFNAAECCEGDABDFNCEFNIJEFPECGDJANKANAAFLKMBDBMBCIAJGNGDKACA"
 2  DATA "KONBIDIDKOIEKOIEKAIDCFAKAKOKENBKOIDIDKOIDKAIEKAIECFAKDKAIDBGAIDIEIEKAIAMIAMKOEEBMLDJEMNPODOEMNPGKONBIDIDKOIEKOIEKAIDCFAKAKOKENBKOIDIDKOIDKAIEKAIECFAKDKAIDBGAIDIEIEKAIAMIAMKOEEBMLDJEMNPODOEMNPG"
 3  POKE 235,0: POKE 236, PEEK (115): POKE 237, PEEK (116): CALL 768:V =  PEEK (37) + 1
 20 L = 20:W = 40:T = 10:B = 20
 30 H$ =  CHR$ (95):H$ = H$ + H$ + H$ + H$ + H$: FOR I = 1 TO 4:H$ = H$ + H$: NEXT 
 40 V$ =  CHR$ (124) +  CHR$ (8) +  CHR$ (10):V$ = V$ + V$ + V$: FOR I = 1 TO 3:V$ = V$ + V$: NEXT : PRINT  MID$ ("",1,0 *  FRE (0));
 50 R = L + W
 60  VTAB T: POKE 36,L: PRINT  LEFT$ (H$,W)
 70  POKE 36,L - 1: PRINT  LEFT$ (V$,3 * (B - T) + 1) LEFT$ (H$,W);
 80  VTAB T + 1: POKE 36,R: PRINT  LEFT$ (V$,3 * (B - T) + 1);
 90  POKE 32,L: POKE 33,W: POKE 34,T: POKE 35,B
 100  VTAB T + 1
 110  HOME 
 120  PRINT "TYPE CONT TO CLOSE THE WINDOW!": END : TEXT : VTAB V: POKE 235,1: CALL 768
 
Top