EASTER EGGS

There are a number of Easter Eggs hidden in the Tandy Color Computer ROMs.

MICROSOFT

BASIC-65

Color BASIC was built from Microsoft BASIC-69 (BASIC for the 6809), built from BASIC-68 (for 6800-series), built from BASIC-80 (for the 8080), built from BASIC-65 (for the 6502) which Bill Gates famously hid an Easter Egg in: Bill Gates' Personal Easter Eggs in 8-bit BASIC

The hidden Microsoft! bytes are still present in the Color BASIC ROMs.

Spectrum Associates' “Color BASIC Unravelled” lists the encoded Easter Egg bytes as “UNUSED GARBAGE BYTES” because the BASIC-65 code that would use them is no longer present in BASIC-69.

BFE6 A1 54 46 8F 13 LBFE6 FCB $A1,$54,$46,$8F,$13  UNUSED GARBAGE BYTES
BFEB 8F 52 43 89 CD       FCB $8F,$52,$43,$89,$CD  UNUSED GARBAGE BYTES

You can see it with the following BASIC code from Barry Nelson:

10 CLS
20 FOR A=&HBFEF TO &HBFE6 STEP -1
30 C=(PEEK(A) AND &H3F) OR &H40:IF C>=&H60 THEN C=C AND &H3F
40 PRINT CHR$(C);
50 NEXT A:PRINT

BASIC-69

Additionally, for Color BASIC has a second Microsoft Easter Egg, presumably because the authors did not know about the original Bill Gates egg still present in the data.

If you type CLS followed by any number 9-255, the screen will clear and the word MICROSOFT will appear on the top line.

The text is stored in addresses $A166 - $A170:

* COPYRIGHT MESSAGES
LA147   FCC     'COLOR BASIC '
        FCB     '1'
        FCC     '.'
        FCB     '3'
LA156   FCB     CR
LA157   FCC     '(C) 1982 TANDY'
LA165   FCB     $00
LA166   FCC     'MICROSOFT'
LA16F   FCB     CR,$00

The code that activates this egg is in the CLS statement:

* CLS
CLS     JSR     >RVEC22 HOOK INTO RAM
        BEQ     LA928   BRANCH IF NO ARGUMENT
        JSR     >LB70B  CALCULATE ARGUMENT, RETURN VALUE IN ACCB
        CMPB    #8      VALID ARGUMENT?
        BHI     LA937   IF ARGUMENT >8, GO PRINT ‘MICROSOFT’
        TSTB            SET FLAGS
        BEQ     LA925   COLOR 0
        DECB            ACCB NOW CONTAINS 0-7
        LDA     #$10    EACH GRAPHIC BLOCK SEPARATED BY $10 FROM ONE ANOTHER
        MUL     ACCB    CONTAINS ONE OF 8 OFFSETS
        ORB     #$0F    BITS 0-3 SET FOR SOLID COLOR GRAPHIC BLOCK
LA925   ORB     #$80    BIT 7 SET FOR GRAPHICS
        FCB     SKP2    SKIP TWO BYTES
* CLEAR SCREEN
LA928   LDB     #$60    BLANK
        LDX     #VIDRAM GET ADDR OF START OF SCREEN BUFFER
LA92D   STX     CURPOS  SAVE IT IN CURPOS
LA92F   STB     ,X+     FILL SCREEN WITH CONTENTS OF ACCB
        CMPX    #VIDRAM+511     END OF SCREEN?
        BLS     LA92F   NO
        RTS
LA937   BSR     LA928   CLEAR SCREEN
        LDX     #LA166-1        *
        JMP     >LB99C  * PRINT ‘MICROSOFT’

MICROWARE

SUPER EXTENDED BASIC

Super Extended BASIC is built to interoperate with Color BASIC, so the Easter Eggs above still function on the Color Computer 3.

But the Color Computer 3 added new ROM which included new additional Easter Eggs:

CLS100

When in Super Extended BASIC:

WIDTH80
CLS100 shows "T. Harris and T. Earles" 
CLS100 again shows "Microware Systems Corp."
* THESE DATA ARE THE NAMES OF THE AUTHORS IN COMPLEMENTED ASCII (T.Harris & T.Earles,CR,0)
SC30D   FCB     $AB,$D1,$B7,$9E,$8D,$8D
        FCB     $96,$8C,$DF,$D9,$DF,$AB
        FCB     $D1,$BA,$9E,$8D,$93,$9A
        FCB     $8C,$F2,$FF

This is called from the routine which copies the Super Extended BASIC ROM into RAM as a “patch”:

* DECODE AND COPY THE AUTHOR'S NAMES INTO RAM
SC1DE   LDX     #AUTHORMS       POINT X TO THE DESTINATION FOR THE AUTHORS' NAMES
        LEAY    SC30D,PC        POINT Y TO THE CODED NAMES OF THE AUTHORS
        LDB     #21     21 BYTES IN THE AUTHORS' NAMES
SC1E7   LDA     ,Y+     GET A CODED BYTE OF THE AUTHORS' NAMES
        COMA            DECODE THE BYTE
        STA     ,X+     SAVE THE UNCODED BYTE
        DECB            BUMP COUNTER DOWN ONE.
        BNE     SC1E7   LOOP UNTIL ALL BYTES DECODED
        RTS

And the patched CLS code that checks for CLS100 and does the authors names then microware commercial:

* CLS PATCH ENTERED FROM $8C4C
ALINK23 PULS    CC      RESTORE THE ZERO FLAG
        LBRN    RAMLINK RAM HOOK
        BEQ     SF6E0   CLEAR THE SCREEN CURSOR ATTRIBUTES IF NO ARGUMENT
        JSR     EVALEXPB        EVALUATE EXPRESSION, RETURN VALUE IN ACCB
        TSTB            TEST ARGUMENT
        BEQ     SF6E0   BRANCH IF CLS 0
        CMPB    #$08    CHECK FOR CLS 8
        BHI     SF6E7   BRANCH IF > CLS 8
        DECB            CHANGE 1-8 TO 0-7
        LEAY    IM.PALET,PC     POINT TO THE PALETTE REGISTER IMAGES
        LDA     B,Y     GET THE COLOR IN THE PALETTE REGISTER
        STA     V.BORDER        AND SAVE IT AS THE NEW BORDER COLOR
        LBSR    SF766   SET THE BORDER COLOR IN THE 40 & 80 COLUMN VIDEO MODE IMAGES
        STB     >H.CRSATT       SAVE THE ADJUSTED CLS ARGUMENT AS THE NEW ATTRIBUTE BYTE
        LDA     #SPACE
        LBSR    SF772   PUT THE HI-RES TEXT SCREEN INTO LOGICAL BLOCK 1
        LDX     #HRESSCRN       POINT X TO THE TOP OF THE HI-RES TEXT SCREEN
        STX     >H.CRSLOC       PUT THE CURSOR AT THE TOP OF THE SCREEN
        BSR     SF69B   CLEAR THE SCREEN
SF6DC   LBSR    SF778   REMOVE THE HI-RES TEXT SCREEN FROM THE LOGICAL ADDRESS SPACE
        RTS
SF6E0   LBSR    SF772   PUT THE HI-RES TEXT SCREEN INTO LOGICAL BLOCK 1
        BSR     SF68C   CLEAR THE HI-RES TEXT SCREEN
        BRA     SF6DC   PUT BLOCK 7.1 BACK INTO LOGICAL BLOCK 1
SF6E7   CLR     >H.CRSATT       RESET THE ATTRIBUTE BYTE TO ZERO
        LDA     IM.PALET        GET THE COLOR IN PALETTE REGISTER 0
        STA     V.BORDER        AND SAVE IT AS THE NEW BORDER COLOR
        BSR     SF766   ALSO SAVE IT IN THE 40 AND 80 COLUMN VIDEO REGISTER IMAGES
        CMPB    #100    CHECK FOR CLS 100
SF6F4   BEQ     SF730   IF CLS 100, THEN PRINT THE AUTHORS' NAMES - THIS WILL ONLY BE
*                       DONE THE FIRST TIME CLS 100 IS EXECUTED, THIS CODE WILL BE
*                       OVERWRITTEN BY NOPs WHEN THE AUTHORS' NAMES ARE DISPLAYED.
        BSR     SF772   PUT THE HI-RES TEXT SCREEN INTO LOGICAL BLOCK 1
        BSR     SF68C   CLEAR THE HI-RES TEXT SCREEN
        BSR     SF778   PUT BLOCK 7.1 BACK INTO LOGICAL BLOCK 1
        LDX     #MICROMS-1      POINT TO MICROWARE'S COMMERCIAL MESSAGE
        JMP     STRINOUT        COPY A STRING TO CONSOLE OUT ($B99C)
* MICROWARE COMMERCIAL
MICROMS FCC     'Microware Systems Corp.'
        FCB     $0D,$00
* NAMES OF THE AUTHORS
* THE INITIALIZATION CODE WILL COPY THE AUTHOR'S NAMES INTO THIS SPOT
AUTHORMS        FCB     $00,$00,$00,$00,$00,$00
        FCB     $00,$00,$00,$00,$00,$00
        FCB     $00,$00,$00,$00,$00,$00
        FCB     $00,$00,$00

THE THREE MUGATEERS

If you hold CTRL and ALT while powering on the Color Computer 3, the following bitmap is shown:

The F1 key is also checked for during the code which copies Super Extended BASIC from ROM to RAM (between SC137 and SC165) which then calls this display routine:

* THIS IS THE CODE WHICH DISPLAYS THE HIGH RESOLUTION PICTURE OF THE
* AUTHORS OF SUPER EXTENDED BASIC
SC1F0   CLRA
        STA     >INT.FLAG       SET THE INTERRUPT FLAG TO NOT VALID (NOT INITIALIZED)
        STA     RSTFLG  FORCE THE ROMS TO BE COPIED INTO RAM
        STA     SAMREG+30       ENABLE THE ROMS
        LDB     #$09
        STB     PALETREG+10
        LDB     #63     WHITE (COMPOSITE AND RGB)
        STB     PALETREG+11
        LDX     #AUTHPIC        POINT X TO THE AUTHORS' PICTURE DATA
        LDY     #$0E00  DESTINATION OF THE AUTHORS' PICTURE DATA
SC20A   LDD     ,X++
        LDU     ,X++    GET FOUR BYTES OF PICTURE DATA
        STD     ,Y++
        STU     ,Y++    PUT THE DATA ON THE HI-RES SCREEN
        CMPX    #SDC05  AT THE END OF THE PICTURE DATA?
        BCS     SC20A   NO
        LDA     #$F9    256x192 GREEN/BUFF COCO 2 HI-RES GRAPHICS MODE
        STA     PIA1+2  PROGRAM THE GRAPHICS MODE INTO THE PIA AND THE GIME CHIP
        CLRA
        LDX     #SAMREG POINT X TO THE SAM REGISTERS
        STA     ,X
        STA     $03,X
        STA     $05,X   PROGRAM THE SAM REGISTERS FOR HI-RES MODE
        STA     $07,X
        STA     $09,X
        STA     $0B,X   SET THE VIDEO DISPLAY PAGE TO $E00
WAITLOOP        BRA     WAITLOOP        ENDLESS WAIT LOOP

OS9

Under OS9, pressing CTRL-A (recall last command line entered) upon a fresh boot into the system, will provide with the string of names:
K. Kaplan, L. Crane, R. Doggett

Easter egg applies also for stock OS9 Level 1.

From Bill Nobel: … The one thing not mentioned in the Wiki, is that it originally was “by K. Kaplan, L. Crane, R. Doggett”, Curtis, Wes & I changed it to “Bill Nobel, Curtis Boyle & Wes Gale” when we created Nitros 9. Now in v3.3.0 it reads “www.nitros9.org

RTS

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies