Skip to content

Instantly share code, notes, and snippets.

@jblang
Last active January 18, 2023 02:46
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jblang/5b9e9ba7e6bbfdc64ad2a55759e401d5 to your computer and use it in GitHub Desktop.
Save jblang/5b9e9ba7e6bbfdc64ad2a55759e401d5 to your computer and use it in GitHub Desktop.
Apple 30th Anniversary
; Apple 30th Anniversary Tribute for Apple II by Dave Schmenk
; Original at https://www.applefritter.com/node/24600#comment-60100
; Disassembled, Commented, and ported to Apple II by J.B. Langston
; Assemble with `64tass -b -o a2apple30th.bin -L a2apple30th.lst`
KEYBD = $C000 ; keyboard register
STROBE = $C010 ; keyboard strobe register
PTR = $06 ; pointer to current image
* = $0C00
lda #$FF
pha
lda #$00
pha
FIRSTIMG:
lda #<IMAGES ; load location of first image
sta PTR
lda #>IMAGES
sta PTR+1
NEXTIMG:
jsr NEWLINE
NEXTRUN:
ldy #$00
lda (PTR),y ; load run length and character offset
beq CENTER ; $00 indicates end of current image
lsr a ; get run length from upper nybble
lsr a
lsr a
lsr a
tax
lda (PTR),y ; get offset from lower nybble
and #$0F
tay
lda CHARS,y ; load char at offset
RPTCHAR:
jsr ECHO ; output character
dex ; repeat for specified run length
bne RPTCHAR
inc PTR ; process the next run of characters
bne NEXTRUN
inc PTR+1
bne NEXTRUN
CENTER:
iny ; calculate number of spaces needed
sec ; to center the caption
lda #$28 ; screen width (40 decimal)
sbc (PTR),y ; subtract caption length
lsr a ; divide by 2
tax ; and use as counter
lda #$A0 ; output space
NEXTSP:
jsr ECHO
dex ; repeat for calculated number of times
bne NEXTSP
lda (PTR),y ; reload caption length
tax
NEXTCAP:
iny
lda (PTR),y ; output char from caption
jsr ECHO
dex ; repeat for remaining chars
bne NEXTCAP
iny
tya ; y contains length of current image
clc
adc PTR ; add it to image start pointer
sta PTR ; to find the start of the next image
lda #$00
adc PTR+1
sta PTR+1
lda #$10 ; delay for a while
jsr DELAY
jsr NEWLINE ; output a newline
ldy #$00 ; reset current image pointer
lda (PTR),y ; check for $00 end sentinel
beq FIRSTIMG ; back to first image if at the end
bne NEXTIMG ; otherwise next image
DELAY:
pha ; save registers
txa
pha
tya
pha
ldy #$FF ; loop 256 times
OUTER:
ldx #$FF ; loop 256 times
INNER:
lda KEYBD ; check for key press
bpl NOKEY ; if none, continue waiting
pla ; restore registers
tay
pla
tax
pla
sta STROBE ; clear keyboard status bit
rts ; return early
NOKEY:
dex ; no key pressed, continue waiting
bne INNER
dey
bne OUTER
pla ; restore registers
tay
pla
tax
pla
sec
sbc #$01 ; continue delay until count down to 0
bne DELAY
lda #$00
rts
NEWLINE:
pha ; output a newline
lda #$8D
jsr ECHO
pla
rts
ECHO:
ora #$80 ; disable flashing/reverse video
jmp $FDED ; monitor char out routine
CHARS:
.byte $A0, $AE, $BA, $AC ; .:,
.byte $BB, $A1, $AD, $DE ; ;!-^
.byte $AB, $BD, $BF, $A6 ; +=/&
.byte $AA, $A5, $A3, $C0 ; *%#@
;; Images are run-length encoded with one run per byte
;; Run ength in the upper nybble
;; Offset into the character table above in the lower nybble
;; End of image data is indicated by a $00 byte
;; Next byte contains length of caption
;; Remaining bytes contain caption text
;; Last image is indicated by $00 byte after caption
IMAGES:
.byte $FF, $1F, $1B, $17 ; Woz
.byte $16, $14, $13, $14
.byte $17, $1B, $1E, $FF
.byte $CF, $1E, $2C, $18
.byte $50, $21, $12, $14
.byte $17, $1C, $FF, $8F
.byte $1B, $16, $12, $21
.byte $70, $31, $10, $11
.byte $18, $FF, $5F, $1D
.byte $15, $50, $21, $70
.byte $41, $18, $1D, $FF
.byte $2F, $1E, $14, $F0
.byte $30, $11, $10, $12
.byte $17, $1E, $FF, $19
.byte $E0, $11, $12, $24
.byte $12, $40, $19, $FF
.byte $14, $50, $23, $11
.byte $20, $21, $20, $12
.byte $15, $18, $19, $16
.byte $12, $30, $12, $19
.byte $DF, $1C, $11, $40
.byte $12, $19, $1A, $17
.byte $25, $26, $34, $17
.byte $2A, $19, $17, $13
.byte $30, $11, $1B, $CF
.byte $18, $50, $13, $2A
.byte $19, $38, $19, $18
.byte $27, $28, $27, $18
.byte $17, $12, $30, $18
.byte $CF, $1A, $50, $15
.byte $19, $17, $14, $13
.byte $22, $13, $16, $17
.byte $16, $13, $21, $12
.byte $14, $17, $15, $20
.byte $13, $1D, $CF, $1C
.byte $40, $12, $28, $15
.byte $13, $11, $30, $12
.byte $28, $12, $10, $11
.byte $12, $14, $17, $18
.byte $12, $10, $1A, $DF
.byte $1D, $12, $30, $14
.byte $1A, $19, $18, $17
.byte $45, $16, $1B, $1D
.byte $18, $26, $17, $18
.byte $1A, $1B, $15, $11
.byte $1C, $EF, $18, $10
.byte $13, $12, $13, $59
.byte $18, $27, $19, $1B
.byte $2C, $1A, $27, $19
.byte $2A, $17, $12, $18
.byte $EF, $1E, $12, $23
.byte $11, $15, $16, $35
.byte $24, $35, $16, $17
.byte $16, $14, $13, $14
.byte $15, $16, $15, $11
.byte $18, $FF, $17, $30
.byte $12, $24, $13, $21
.byte $23, $11, $10, $21
.byte $22, $21, $13, $14
.byte $12, $13, $1D, $FF
.byte $1D, $16, $11, $10
.byte $21, $22, $11, $22
.byte $13, $24, $25, $14
.byte $23, $41, $1A, $FF
.byte $2F, $1D, $16, $15
.byte $20, $31, $13, $24
.byte $15, $16, $47, $13
.byte $11, $10, $12, $19
.byte $FF, $2F, $1D, $1A
.byte $1C, $19, $13, $11
.byte $20, $21, $13, $24
.byte $33, $24, $21, $13
.byte $1A, $EF, $2E, $1D
.byte $1C, $1B, $1D, $1E
.byte $1B, $16, $13, $51
.byte $12, $41, $12, $21
.byte $12, $18, $1A, $1D
.byte $AF, $1E, $1D, $3C
.byte $2D, $4E, $1A, $14
.byte $22, $11, $20, $71
.byte $13, $15, $17, $2C
.byte $1D, $1E, $7F, $4D
.byte $2E, $2D, $2E, $1D
.byte $2E, $19, $23, $32
.byte $31, $22, $13, $15
.byte $16, $14, $17, $2E
.byte $3D, $2E, $4F, $2E
.byte $7D, $2E, $1D, $2E
.byte $1A, $14, $43, $14
.byte $13, $14, $15, $16
.byte $17, $15, $14, $18
.byte $1D, $4E, $2D, $4E
.byte $9D, $4E, $1C, $1A
.byte $18, $15, $14, $43
.byte $15, $26, $15, $13
.byte $16, $1A, $3E, $8D
.byte $00, $04, $57, $4F
.byte $5A, $20
.byte $8F, $1E ; Steve Jobs
.byte $1B, $18, $15, $34
.byte $15, $17, $18, $19
.byte $1B, $1D, $1E, $FF
.byte $7F, $1E, $1A, $17
.byte $14, $11, $40, $21
.byte $30, $31, $12, $16
.byte $1C, $FF, $4F, $1C
.byte $16, $11, $50, $21
.byte $20, $11, $12, $11
.byte $50, $11, $17, $1D
.byte $FF, $1F, $1B, $14
.byte $A0, $21, $12, $11
.byte $20, $21, $30, $13
.byte $1A, $EF, $19, $11
.byte $A0, $11, $12, $15
.byte $17, $13, $20, $51
.byte $10, $11, $17, $1E
.byte $BF, $1A, $B0, $11
.byte $12, $13, $15, $18
.byte $15, $30, $61, $10
.byte $16, $1E, $AF, $18
.byte $A0, $11, $12, $14
.byte $25, $1A, $19, $13
.byte $40, $41, $20, $18
.byte $AF, $16, $90, $11
.byte $12, $14, $27, $16
.byte $18, $1A, $16, $11
.byte $90, $15, $AF, $16
.byte $70, $11, $12, $23
.byte $24, $13, $32, $23
.byte $11, $80, $13, $1E
.byte $9F, $18, $50, $31
.byte $12, $13, $14, $13
.byte $11, $40, $12, $14
.byte $15, $14, $13, $11
.byte $50, $11, $1C, $9F
.byte $1A, $40, $31, $20
.byte $12, $18, $17, $13
.byte $12, $21, $12, $16
.byte $19, $1A, $1B, $1A
.byte $18, $13, $50, $16
.byte $1E, $8F, $1C, $11
.byte $20, $11, $14, $23
.byte $22, $14, $1B, $1D
.byte $1A, $18, $27, $18
.byte $19, $4B, $1A, $18
.byte $13, $40, $11, $18
.byte $9F, $17, $20, $11
.byte $17, $19, $37, $16
.byte $1A, $2E, $1B, $28
.byte $49, $48, $17, $15
.byte $14, $11, $20, $17
.byte $9F, $1D, $15, $20
.byte $16, $48, $26, $29
.byte $18, $47, $18, $27
.byte $38, $19, $17, $13
.byte $11, $20, $1A, $AF
.byte $1E, $15, $10, $12
.byte $26, $17, $18, $17
.byte $14, $23, $14, $27
.byte $15, $14, $16, $27
.byte $48, $15, $40, $15
.byte $1E, $AF, $1E, $15
.byte $10, $14, $27, $16
.byte $15, $14, $13, $12
.byte $13, $25, $14, $13
.byte $15, $16, $37, $18
.byte $17, $15, $11, $20
.byte $12, $15, $1C, $BF
.byte $1C, $12, $11, $26
.byte $15, $23, $24, $13
.byte $14, $15, $26, $25
.byte $36, $15, $14, $17
.byte $14, $20, $12, $16
.byte $1A, $CF, $1A, $22
.byte $25, $14, $25, $14
.byte $13, $15, $16, $27
.byte $26, $15, $14, $13
.byte $12, $15, $18, $17
.byte $11, $10, $11, $14
.byte $17, $1B, $CF, $1B
.byte $16, $24, $25, $26
.byte $25, $46, $14, $13
.byte $22, $13, $16, $28
.byte $13, $10, $11, $13
.byte $15, $17, $1C, $CF
.byte $1D, $14, $22, $14
.byte $15, $24, $53, $32
.byte $13, $15, $16, $17
.byte $18, $14, $21, $13
.byte $25, $19, $CF, $1B
.byte $23, $21, $12, $93
.byte $24, $15, $16, $27
.byte $13, $11, $12, $14
.byte $15, $16, $19, $1B
.byte $1E, $AF, $19, $13
.byte $14, $13, $32, $33
.byte $14, $23, $34, $35
.byte $16, $15, $13, $12
.byte $13, $25, $17, $28
.byte $1C, $1E, $1D, $1E
.byte $4F, $2E, $1D, $19
.byte $15, $34, $33, $94
.byte $35, $14, $13, $14
.byte $16, $25, $17, $19
.byte $1D, $2E, $1D, $1E
.byte $00, $0B, $53, $54
.byte $45, $56, $45, $20
.byte $4A, $4F, $42, $53
.byte $20
.byte $FF, $AF, $27 ; Happy 30th Birthday Apple!
.byte $FF, $FF, $5F, $57
.byte $FF, $FF, $4F, $57
.byte $FF, $FF, $4F, $57
.byte $FF, $FF, $4F, $57
.byte $FF, $DF, $37, $4F
.byte $27, $4F, $47, $FF
.byte $4F, $F7, $A7, $DF
.byte $F7, $D7, $BF, $FC
.byte $CC, $CF, $FC, $CC
.byte $DF, $FC, $BC, $DF
.byte $F8, $C8, $DF, $F8
.byte $C8, $DF, $F8, $D8
.byte $DF, $F4, $D4, $CF
.byte $F4, $E4, $CF, $F4
.byte $F4, $AF, $F3, $F3
.byte $BF, $F3, $D3, $DF
.byte $F3, $B3, $FF, $1F
.byte $F4, $84, $FF, $3F
.byte $84, $4F, $84, $FF
.byte $FF, $FF, $5F, $00
.byte $1B, $48, $41, $50
.byte $50, $59, $20, $33
.byte $30, $54, $48, $20
.byte $42, $49, $52, $54
.byte $48, $44, $41, $59
.byte $20, $41, $50, $50
.byte $4C, $45, $21, $20
.byte $FF, $AF, $1E, $19 ; Woz and Jobs holding Apple I
.byte $15, $13, $14, $19
.byte $1D, $FF, $FF, $2F
.byte $1E, $18, $13, $31
.byte $13, $17, $1D, $EF
.byte $1E, $1D, $1C, $1D
.byte $DF, $1C, $16, $22
.byte $24, $13, $15, $1A
.byte $DF, $1C, $17, $12
.byte $11, $15, $1A, $CF
.byte $1D, $18, $25, $28
.byte $27, $19, $1E, $BF
.byte $1C, $16, $11, $10
.byte $11, $12, $15, $1A
.byte $CF, $1C, $19, $27
.byte $18, $27, $19, $1D
.byte $BF, $1A, $15, $14
.byte $15, $17, $26, $18
.byte $1C, $CF, $1B, $16
.byte $24, $25, $18, $1C
.byte $BF, $1B, $17, $15
.byte $16, $18, $17, $18
.byte $1A, $1E, $CF, $1C
.byte $17, $14, $13, $14
.byte $15, $18, $1B, $BF
.byte $1D, $18, $45, $17
.byte $1B, $1E, $CF, $1E
.byte $1C, $19, $27, $19
.byte $1B, $1E, $CF, $1B
.byte $15, $22, $13, $17
.byte $1C, $FF, $1F, $2D
.byte $1E, $EF, $1E, $19
.byte $13, $11, $14, $19
.byte $1E, $AF, $2E, $AF
.byte $3E, $5F, $4E, $1B
.byte $17, $14, $16, $1A
.byte $1D, $AF, $1E, $1D
.byte $1E, $8F, $1E, $3D
.byte $1E, $3F, $1E, $4D
.byte $1C, $2B, $1A, $1B
.byte $1C, $2D, $2E, $5F
.byte $1E, $2D, $1E, $7F
.byte $1E, $1D, $2C, $1D
.byte $2E, $1F, $1E, $3D
.byte $6E, $5D, $1E, $6F
.byte $1D, $1C, $1D, $1E
.byte $3F, $2E, $1F, $1E
.byte $1D, $2C, $1D, $3E
.byte $5D, $9E, $1D, $6C
.byte $1B, $1A, $39, $2A
.byte $19, $1A, $1C, $2E
.byte $1D, $2B, $1C, $1E
.byte $2F, $1E, $7D, $3E
.byte $2D, $1E, $1D, $1A
.byte $17, $25, $16, $55
.byte $14, $25, $16, $18
.byte $1B, $1E, $1F, $1D
.byte $2B, $1C, $1D, $3E
.byte $2D, $1C, $1B, $2C
.byte $1D, $1E, $1F, $1E
.byte $2D, $1C, $1B, $18
.byte $16, $15, $84, $25
.byte $16, $18, $1B, $1E
.byte $1F, $1E, $3C, $1D
.byte $1E, $1C, $3D, $3C
.byte $1D, $1E, $3F, $1E
.byte $1D, $1B, $19, $18
.byte $17, $16, $15, $24
.byte $25, $44, $23, $16
.byte $1A, $1D, $3F, $1E
.byte $2D, $1C, $1D, $2C
.byte $2D, $4E, $2F, $1D
.byte $1B, $19, $18, $27
.byte $15, $14, $13, $14
.byte $26, $14, $33, $12
.byte $13, $14, $17, $1A
.byte $1C, $1D, $3E, $4D
.byte $1B, $19, $1A, $1B
.byte $1D, $3E, $1D, $1C
.byte $19, $17, $16, $17
.byte $38, $17, $16, $17
.byte $18, $29, $17, $26
.byte $15, $16, $27, $38
.byte $19, $1A, $1D, $4F
.byte $1D, $1B, $39, $1A
.byte $49, $38, $19, $1A
.byte $1C, $1E, $1F, $2E
.byte $1F, $1E, $1D, $1B
.byte $3A, $19, $18, $27
.byte $18, $19, $1A, $1C
.byte $1E, $5F, $1D, $1A
.byte $18, $27, $18, $29
.byte $3A, $19, $18, $1A
.byte $1D, $6F, $1C, $19
.byte $18, $69, $1A, $1B
.byte $1A, $1B, $1D, $5F
.byte $1D, $19, $16, $15
.byte $56, $15, $14, $12
.byte $13, $16, $1C, $6F
.byte $1E, $19, $15, $23
.byte $44, $35, $16, $1A
.byte $1E, $4F, $1E, $18
.byte $13, $10, $21, $12
.byte $23, $12, $11, $10
.byte $11, $15, $1B, $7F
.byte $1A, $15, $42, $23
.byte $14, $15, $16, $18
.byte $1B, $1E, $2F, $00
.byte $1D, $57, $4F, $5A
.byte $20, $41, $4E, $44
.byte $20, $4A, $4F, $42
.byte $53, $20, $48, $4F
.byte $4C, $44, $49, $4E
.byte $47, $20, $41, $50
.byte $50, $4C, $45, $20
.byte $49, $20
.byte $FF, $3F ; Apple II
.byte $3E, $FF, $FF, $5F
.byte $1E, $7D, $1E, $FF
.byte $EF, $1E, $3D, $6E
.byte $4D, $1E, $FF, $8F
.byte $1E, $2D, $EE, $3D
.byte $2E, $FF, $2F, $1E
.byte $1D, $FE, $4E, $5D
.byte $1E, $CF, $1E, $1D
.byte $FE, $7E, $3D, $1B
.byte $19, $9F, $1C, $2D
.byte $6E, $1D, $1E, $3F
.byte $2E, $2F, $7E, $1D
.byte $1E, $1D, $1A, $17
.byte $15, $1E, $7F, $1E
.byte $1C, $2A, $1C, $1D
.byte $3E, $19, $16, $18
.byte $19, $1C, $1E, $4F
.byte $1E, $1F, $6E, $1C
.byte $19, $16, $14, $16
.byte $7F, $2D, $3E, $1C
.byte $3B, $1D, $1B, $1A
.byte $18, $37, $1A, $1F
.byte $4E, $1F, $4E, $1B
.byte $18, $25, $16, $17
.byte $5F, $1E, $3D, $19
.byte $14, $18, $1C, $2E
.byte $1D, $3B, $1C, $1B
.byte $2A, $1D, $8E, $1F
.byte $1B, $16, $14, $15
.byte $27, $18, $4F, $1E
.byte $1D, $1E, $1D, $15
.byte $30, $11, $14, $19
.byte $1C, $1E, $1F, $1D
.byte $1C, $2B, $1C, $8E
.byte $1F, $1E, $18, $14
.byte $16, $47, $3F, $2D
.byte $1E, $1B, $14, $10
.byte $41, $20, $11, $14
.byte $18, $1C, $1E, $1F
.byte $1E, $1C, $3B, $1D
.byte $2E, $2F, $1E, $19
.byte $26, $37, $15, $1B
.byte $1F, $1E, $3D, $1E
.byte $1A, $11, $30, $51
.byte $20, $11, $14, $18
.byte $1C, $1E, $1F, $1E
.byte $1C, $1B, $1A, $1B
.byte $1C, $1D, $1A, $16
.byte $37, $16, $15, $1C
.byte $2F, $1C, $16, $19
.byte $1D, $2E, $1D, $13
.byte $31, $10, $71, $10
.byte $11, $14, $18, $1C
.byte $1E, $1F, $1E, $1D
.byte $1C, $19, $47, $26
.byte $1D, $4F, $1D, $16
.byte $12, $17, $1B, $1E
.byte $1A, $14, $51, $10
.byte $11, $12, $61, $1B
.byte $2D, $1E, $1F, $1C
.byte $47, $15, $17, $8F
.byte $1A, $14, $12, $14
.byte $1A, $1D, $1C, $17
.byte $13, $21, $12, $11
.byte $20, $22, $21, $1C
.byte $1F, $3E, $1B, $47
.byte $15, $19, $BF, $1D
.byte $17, $23, $17, $1C
.byte $1D, $1B, $16, $12
.byte $11, $12, $11, $20
.byte $14, $1E, $1F, $2E
.byte $1F, $1B, $47, $15
.byte $1B, $FF, $1B, $15
.byte $12, $14, $19, $2D
.byte $1A, $2E, $1A, $17
.byte $1E, $1F, $2E, $1F
.byte $1C, $37, $16, $15
.byte $1C, $FF, $3F, $1E
.byte $18, $23, $16, $1B
.byte $1D, $1E, $2F, $3E
.byte $1F, $1C, $37, $26
.byte $1E, $FF, $7F, $1C
.byte $16, $12, $13, $17
.byte $1C, $1E, $1F, $1E
.byte $1F, $1D, $37, $15
.byte $17, $FF, $BF, $1E
.byte $19, $14, $12, $14
.byte $19, $2C, $18, $27
.byte $15, $19, $FF, $FF
.byte $1D, $17, $12, $11
.byte $12, $23, $14, $1B
.byte $FF, $FF, $4F, $1B
.byte $19, $28, $1C, $EF
.byte $00, $09, $41, $50
.byte $50, $4C, $45, $20
.byte $49, $49, $20
.byte $FF ; Macintosh
.byte $FF, $FF, $FF, $CF
.byte $1E, $FF, $7F, $1E
.byte $6D, $7C, $3B, $1A
.byte $1D, $FF, $6F, $1D
.byte $15, $14, $35, $A4
.byte $2A, $1D, $FF, $6F
.byte $1D, $15, $18, $39
.byte $2A, $79, $14, $1A
.byte $19, $1D, $FF, $6F
.byte $1C, $14, $18, $19
.byte $1A, $1B, $19, $1A
.byte $1B, $39, $3A, $14
.byte $29, $1D, $FF, $5F
.byte $1E, $1B, $14, $29
.byte $1A, $19, $16, $18
.byte $19, $17, $16, $17
.byte $28, $1A, $14, $28
.byte $1D, $FF, $5F, $1E
.byte $1A, $14, $28, $39
.byte $68, $19, $1A, $14
.byte $28, $1D, $FF, $5F
.byte $1E, $1A, $14, $28
.byte $39, $7A, $19, $14
.byte $18, $17, $1D, $FF
.byte $5F, $1D, $19, $13
.byte $26, $55, $46, $25
.byte $13, $18, $17, $1C
.byte $FF, $5F, $1D, $19
.byte $1A, $19, $28, $47
.byte $16, $57, $18, $1A
.byte $16, $1C, $FF, $5F
.byte $1C, $19, $3A, $79
.byte $58, $17, $16, $1C
.byte $FF, $5F, $1B, $68
.byte $57, $36, $25, $26
.byte $1C, $FF, $5F, $1B
.byte $D7, $36, $17, $16
.byte $1C, $FF, $5F, $1A
.byte $17, $16, $47, $86
.byte $17, $26, $15, $1B
.byte $FF, $5F, $19, $65
.byte $74, $55, $1A, $1D
.byte $1E, $8F, $1D, $7C
.byte $2B, $17, $44, $13
.byte $14, $53, $15, $16
.byte $13, $22, $13, $14
.byte $1D, $1F, $1E, $1D
.byte $1E, $5F, $1D, $27
.byte $36, $65, $34, $23
.byte $14, $43, $14, $1A
.byte $1C, $14, $10, $11
.byte $12, $13, $1D, $3F
.byte $1D, $1E, $4F, $1B
.byte $16, $17, $15, $17
.byte $15, $16, $17, $36
.byte $15, $54, $53, $14
.byte $1A, $1C, $16, $11
.byte $13, $14, $17, $1F
.byte $1E, $3F, $1E, $4F
.byte $1E, $1D, $1A, $19
.byte $1A, $99, $58, $27
.byte $18, $3B, $18, $17
.byte $1B, $5D, $1B, $19
.byte $1B, $1F, $1E, $19
.byte $48, $19, $88, $77
.byte $56, $25, $1A, $1D
.byte $1A, $19, $1A, $1B
.byte $1A, $17, $14, $1A
.byte $2F, $1C, $4A, $B9
.byte $B8, $19, $1C, $1D
.byte $17, $26, $15, $14
.byte $15, $17, $1D, $FF
.byte $FF, $3E, $1D, $1C
.byte $2B, $1D, $3F, $00
.byte $0A, $4D, $41, $43
.byte $49, $4E, $54, $4F
.byte $53, $48, $20
.byte $EF ; iMac
.byte $1E, $2D, $FF, $FF
.byte $4F, $1D, $19, $18
.byte $29, $17, $1C, $1E
.byte $1D, $FF, $FF, $19
.byte $15, $19, $1A, $29
.byte $17, $18, $1E, $1B
.byte $1C, $1E, $FF, $BF
.byte $1C, $26, $2B, $1A
.byte $19, $28, $16, $1E
.byte $16, $14, $19, $1C
.byte $FF, $9F, $19, $14
.byte $19, $2C, $1B, $29
.byte $18, $17, $15, $1A
.byte $1B, $10, $12, $16
.byte $1A, $FF, $6F, $1E
.byte $16, $17, $3C, $1B
.byte $1A, $19, $18, $17
.byte $16, $15, $16, $1E
.byte $14, $11, $14, $18
.byte $1B, $FF, $4F, $1C
.byte $15, $18, $2C, $3B
.byte $19, $18, $16, $35
.byte $13, $1D, $19, $10
.byte $12, $17, $1A, $1E
.byte $FF, $2F, $1B, $14
.byte $19, $1C, $2B, $2A
.byte $29, $17, $15, $34
.byte $12, $1A, $1C, $21
.byte $14, $18, $1C, $FF
.byte $1F, $1A, $14, $19
.byte $1B, $2A, $29, $38
.byte $16, $24, $13, $14
.byte $12, $15, $1E, $13
.byte $10, $12, $16, $1A
.byte $FF, $1B, $12, $17
.byte $39, $28, $37, $16
.byte $15, $63, $1E, $17
.byte $10, $11, $15, $18
.byte $1E, $EF, $13, $12
.byte $16, $47, $26, $45
.byte $13, $22, $23, $11
.byte $2A, $11, $10, $13
.byte $17, $1C, $DF, $1A
.byte $10, $11, $14, $45
.byte $64, $13, $42, $11
.byte $16, $1D, $12, $10
.byte $12, $16, $19, $DF
.byte $17, $10, $31, $12
.byte $93, $42, $11, $14
.byte $1E, $14, $10, $11
.byte $15, $17, $1E, $CF
.byte $1D, $1B, $1A, $19
.byte $17, $16, $25, $12
.byte $11, $12, $43, $12
.byte $13, $22, $11, $12
.byte $1D, $16, $20, $13
.byte $16, $1C, $CF, $2D
.byte $5E, $1D, $1C, $19
.byte $17, $16, $15, $14
.byte $13, $42, $21, $1A
.byte $1B, $13, $12, $13
.byte $15, $1A, $CF, $1E
.byte $1C, $1D, $7E, $1D
.byte $1C, $1B, $1A, $29
.byte $18, $16, $14, $12
.byte $10, $17, $1E, $1C
.byte $1B, $2A, $1C, $DF
.byte $1D, $1C, $1D, $2E
.byte $2D, $5C, $2D, $1C
.byte $1D, $1C, $2B, $18
.byte $19, $1C, $19, $1A
.byte $19, $1A, $1C, $EF
.byte $1D, $4C, $7D, $3C
.byte $2D, $1E, $2D, $19
.byte $10, $15, $18, $17
.byte $18, $1B, $EF, $1E
.byte $2D, $1B, $1C, $1D
.byte $3E, $2D, $2C, $1D
.byte $2E, $2D, $1C, $19
.byte $10, $15, $19, $18
.byte $19, $1A, $FF, $2F
.byte $1E, $1D, $2C, $1D
.byte $2E, $4D, $1E, $2D
.byte $1E, $1B, $18, $16
.byte $17, $18, $2B, $4D
.byte $2C, $1E, $AF, $3E
.byte $1D, $1C, $5B, $1A
.byte $2B, $18, $27, $29
.byte $1B, $1A, $29, $14
.byte $53, $12, $13, $16
.byte $18, $29, $1D, $3F
.byte $2E, $1D, $1C, $2B
.byte $4A, $29, $28, $17
.byte $56, $15, $18, $1C
.byte $19, $43, $22, $14
.byte $17, $28, $29, $1C
.byte $FF, $6F, $1E, $1C
.byte $2B, $1C, $2E, $1D
.byte $3C, $2B, $1D, $1E
.byte $4F, $00, $05, $49
.byte $4D, $41, $43, $20
.byte $A0, $13, $64, $D5 ; iPod
.byte $12, $F0, $30, $19
.byte $1E, $1C, $5D, $6C
.byte $5D, $1C, $1D, $1F
.byte $16, $F0, $20, $1D
.byte $1B, $19, $3C, $2D
.byte $1B, $1A, $1B, $3A
.byte $1C, $1D, $1C, $1D
.byte $1C, $1A, $18, $1F
.byte $1A, $F0, $20, $3C
.byte $3B, $3E, $BF, $1A
.byte $1F, $1A, $F0, $20
.byte $3C, $17, $14, $19
.byte $17, $14, $1A, $1E
.byte $6D, $4F, $1A, $1F
.byte $1A, $F0, $20, $1C
.byte $1B, $1C, $1B, $15
.byte $1D, $27, $1D, $1E
.byte $3C, $7F, $1A, $1F
.byte $1A, $F0, $20, $1C
.byte $1B, $1C, $18, $13
.byte $1B, $16, $14, $1B
.byte $1E, $1C, $3D, $1C
.byte $5F, $1A, $1F, $1A
.byte $F0, $20, $1C, $1B
.byte $1C, $19, $18, $29
.byte $18, $1A, $4D, $1E
.byte $6F, $1A, $1F, $1A
.byte $F0, $20, $1C, $1B
.byte $1D, $2B, $8C, $1D
.byte $3F, $1E, $1D, $1E
.byte $1A, $1F, $1A, $F0
.byte $20, $1C, $4B, $6C
.byte $6D, $1C, $1B, $1C
.byte $1A, $1F, $1A, $F0
.byte $20, $1B, $1E, $6D
.byte $CE, $2F, $1A, $F0
.byte $20, $1B, $5E, $FF
.byte $1F, $1A, $F0, $20
.byte $1B, $6E, $2D, $1C
.byte $2D, $2C, $1D, $1E
.byte $6F, $1A, $F0, $20
.byte $1B, $4E, $1D, $2C
.byte $6B, $3C, $5F, $1A
.byte $F0, $20, $1B, $3E
.byte $1D, $5B, $3D, $4B
.byte $1C, $4F, $1A, $F0
.byte $20, $1B, $1E, $2D
.byte $1C, $2B, $1A, $1B
.byte $4F, $1E, $1A, $3B
.byte $1E, $3F, $1A, $F0
.byte $20, $1A, $3D, $1B
.byte $4A, $1E, $3F, $1D
.byte $4A, $1E, $3F, $1A
.byte $F0, $20, $1A, $1D
.byte $1C, $1D, $1C, $1A
.byte $19, $1A, $19, $1A
.byte $2B, $1A, $19, $2A
.byte $19, $1B, $4F, $1A
.byte $F0, $20, $1A, $3C
.byte $1D, $1C, $1A, $89
.byte $1A, $1B, $1E, $4F
.byte $1A, $F0, $20, $19
.byte $4C, $2D, $1C, $1B
.byte $1A, $2B, $1A, $1B
.byte $1C, $1D, $3E, $3F
.byte $1A, $F0, $20, $1A
.byte $5C, $6D, $7E, $3F
.byte $19, $F0, $20, $15
.byte $3B, $5C, $8D, $4E
.byte $1D, $13, $F0, $30
.byte $11, $F2, $42, $11
.byte $90, $00, $05, $49
.byte $50, $4F, $44, $20
.byte $EF, $1D, $4C, $1B ; MacBook Pro
.byte $2C, $4B, $5A, $29
.byte $1A, $39, $28, $1B
.byte $DF, $1D, $15, $16
.byte $47, $18, $19, $1A
.byte $49, $2A, $49, $48
.byte $19, $17, $19, $DF
.byte $1C, $14, $13, $24
.byte $25, $16, $17, $18
.byte $27, $78, $67, $16
.byte $19, $DF, $1A, $13
.byte $22, $13, $14, $15
.byte $46, $17, $18, $B7
.byte $26, $1A, $DF, $19
.byte $13, $22, $13, $25
.byte $26, $B7, $46, $17
.byte $16, $1B, $DF, $17
.byte $13, $32, $14, $26
.byte $27, $C6, $37, $16
.byte $1C, $DF, $16, $42
.byte $14, $15, $17, $18
.byte $25, $26, $25, $36
.byte $15, $76, $1D, $DF
.byte $15, $42, $13, $16
.byte $19, $55, $14, $36
.byte $75, $14, $15, $1E
.byte $CF, $1E, $14, $41
.byte $13, $27, $54, $16
.byte $17, $16, $25, $14
.byte $15, $24, $33, $15
.byte $1E, $CF, $1D, $13
.byte $41, $14, $17, $14
.byte $43, $16, $17, $25
.byte $44, $23, $22, $13
.byte $15, $DF, $1C, $13
.byte $41, $14, $23, $22
.byte $13, $26, $15, $14
.byte $43, $52, $13, $16
.byte $DF, $1A, $12, $30
.byte $62, $44, $23, $22
.byte $31, $22, $11, $12
.byte $16, $DF, $18, $11
.byte $20, $61, $62, $91
.byte $12, $17, $DF, $17
.byte $11, $20, $C1, $50
.byte $41, $12, $18, $DF
.byte $16, $F0, $60, $31
.byte $12, $18, $DF, $15
.byte $30, $14, $11, $13
.byte $12, $13, $22, $51
.byte $30, $11, $50, $12
.byte $19, $BF, $1D, $19
.byte $14, $33, $26, $17
.byte $28, $19, $1A, $25
.byte $17, $16, $27, $15
.byte $13, $1A, $14, $12
.byte $30, $12, $1A, $7F
.byte $1C, $19, $16, $14
.byte $13, $15, $17, $46
.byte $17, $26, $37, $15
.byte $16, $58, $27, $16
.byte $14, $12, $21, $13
.byte $1B, $2F, $1E, $1C
.byte $1A, $28, $49, $3A
.byte $28, $17, $18, $47
.byte $16, $15, $16, $25
.byte $14, $45, $14, $13
.byte $31, $13, $16, $1D
.byte $1F, $29, $1B, $3C
.byte $3D, $5E, $1C, $1B
.byte $1A, $29, $17, $16
.byte $17, $28, $16, $25
.byte $24, $13, $14, $12
.byte $21, $13, $25, $1B
.byte $2F, $1A, $46, $17
.byte $18, $19, $3A, $1C
.byte $1B, $1A, $19, $18
.byte $1B, $1C, $1B, $4A
.byte $29, $18, $17, $16
.byte $25, $14, $13, $14
.byte $19, $16, $1B, $9F
.byte $1E, $1D, $1C, $1B
.byte $1A, $19, $18, $17
.byte $16, $15, $14, $25
.byte $14, $23, $84, $23
.byte $14, $16, $1B, $FF
.byte $9F, $1E, $1D, $1C
.byte $1B, $1A, $19, $18
.byte $17, $25, $14, $13
.byte $14, $1A, $8F, $00
.byte $0C, $4D, $41, $43
.byte $42, $4F, $4F, $4B
.byte $20, $50, $52, $4F
.byte $20
.byte $FF, $9F, $40 ; The Next Thirty...
.byte $FF, $FF, $4F, $60
.byte $FF, $FF, $2F, $70
.byte $FF, $FF, $3F, $60
.byte $FF, $FF, $3F, $50
.byte $FF, $BF, $40, $5F
.byte $20, $5F, $60, $EF
.byte $F0, $F0, $8F, $F0
.byte $F0, $30, $5F, $F0
.byte $F0, $40, $5F, $F0
.byte $F0, $30, $7F, $F0
.byte $F0, $20, $8F, $F0
.byte $F0, $20, $8F, $F0
.byte $F0, $20, $8F, $F0
.byte $F0, $20, $8F, $F0
.byte $F0, $30, $7F, $F0
.byte $F0, $50, $6F, $F0
.byte $F0, $60, $5F, $F0
.byte $F0, $50, $5F, $F0
.byte $F0, $40, $8F, $F0
.byte $F0, $10, $AF, $F0
.byte $E0, $DF, $F0, $B0
.byte $FF, $80, $7F, $80
.byte $8F, $00, $13, $54
.byte $48, $45, $20, $4E
.byte $45, $58, $54, $20
.byte $54, $48, $49, $52
.byte $54, $59, $2E, $2E
.byte $2E, $20, $00
; Apple 30th Anniversary Tribute for Apple I by Dave Schmenk
; Original at https://www.applefritter.com/node/24600#comment-60100
; Disassembled and Commented by J.B. Langston
; Assemble with `64tass -b -o apple30th.bin -L apple30th.lst`
KBD = $D010 ; keyboard register
KBDCR = $D011 ; keyboard control register
ECHO = $FFEF ; monitor char out routine
PTR = $06 ; pointer to current image
* = $E000
lda #$FF
pha
lda #$00
pha
FIRSTIMG:
lda #<IMAGES ; load location of first image
sta PTR
lda #>IMAGES
sta PTR+1
NEXTIMG:
jsr NEWLINE
NEXTRUN:
ldy #$00
lda (PTR),y ; load run length and character offset
beq CENTER ; $00 indicates end of current image
lsr a ; get run length from upper nybble
lsr a
lsr a
lsr a
tax
lda (PTR),y ; get offset from lower nybble
and #$0F
tay
lda CHARS,y ; load char at offset
RPTCHAR:
jsr ECHO ; output character
dex ; repeat for specified run length
bne RPTCHAR
inc PTR ; process the next run of characters
bne NEXTRUN
inc PTR+1
bne NEXTRUN
CENTER:
iny ; calculate number of spaces needed
sec ; to center the caption
lda #$28 ; screen width (40 decimal)
sbc (PTR),y ; subtract caption length
lsr a ; divide by 2
tax ; and use as counter
lda #$A0 ; output space
NEXTSP:
jsr ECHO
dex ; repeat for calculated number of times
bne NEXTSP
lda (PTR),y ; reload caption length
tax
NEXTCAP:
iny
lda (PTR),y ; output char from caption
jsr ECHO
dex ; repeat for remaining chars
bne NEXTCAP
iny
tya ; y contains length of current image
clc
adc PTR ; add it to image start pointer
sta PTR ; to find the start of the next image
lda #$00
adc PTR+1
sta PTR+1
lda #$10 ; delay for a while
jsr DELAY
jsr NEWLINE ; output a newline
ldy #$00 ; reset current image pointer
lda (PTR),y ; check for $00 end sentinel
beq FIRSTIMG ; back to first image if at the end
bne NEXTIMG ; otherwise next image
DELAY:
pha ; save registers
txa
pha
tya
pha
ldy #$FF ; loop 256 times
OUTER:
ldx #$FF ; loop 256 times
INNER:
lda KBDCR ; check for key press
bpl NOKEY ; if none, continue waiting
pla ; restore registers
tay
pla
tax
pla
lda KBD ; save key pressed in A
rts ; return early
NOKEY:
dex ; no key pressed, continue waiting
bne INNER
dey
bne OUTER
pla ; restore registers
tay
pla
tax
pla
sec
sbc #$01 ; continue delay until count down to 0
bne DELAY
lda #$00
rts
NEWLINE:
pha ; output a newline
lda #$8D
jsr ECHO
pla
rts
CHARS:
.byte $A0, $AE, $BA, $AC ; .:,
.byte $BB, $A1, $AD, $DE ; ;!-^
.byte $AB, $BD, $BF, $A6 ; +=/&
.byte $AA, $A5, $A3, $C0 ; *%#@
;; Images are run-length encoded with one run per byte
;; Run ength in the upper nybble
;; Offset into the character table above in the lower nybble
;; End of image data is indicated by a $00 byte
;; Next byte contains length of caption
;; Remaining bytes contain caption text
;; Last image is indicated by $00 byte after caption
IMAGES:
.byte $FF, $1F, $1B, $17 ; Woz
.byte $16, $14, $13, $14
.byte $17, $1B, $1E, $FF
.byte $CF, $1E, $2C, $18
.byte $50, $21, $12, $14
.byte $17, $1C, $FF, $8F
.byte $1B, $16, $12, $21
.byte $70, $31, $10, $11
.byte $18, $FF, $5F, $1D
.byte $15, $50, $21, $70
.byte $41, $18, $1D, $FF
.byte $2F, $1E, $14, $F0
.byte $30, $11, $10, $12
.byte $17, $1E, $FF, $19
.byte $E0, $11, $12, $24
.byte $12, $40, $19, $FF
.byte $14, $50, $23, $11
.byte $20, $21, $20, $12
.byte $15, $18, $19, $16
.byte $12, $30, $12, $19
.byte $DF, $1C, $11, $40
.byte $12, $19, $1A, $17
.byte $25, $26, $34, $17
.byte $2A, $19, $17, $13
.byte $30, $11, $1B, $CF
.byte $18, $50, $13, $2A
.byte $19, $38, $19, $18
.byte $27, $28, $27, $18
.byte $17, $12, $30, $18
.byte $CF, $1A, $50, $15
.byte $19, $17, $14, $13
.byte $22, $13, $16, $17
.byte $16, $13, $21, $12
.byte $14, $17, $15, $20
.byte $13, $1D, $CF, $1C
.byte $40, $12, $28, $15
.byte $13, $11, $30, $12
.byte $28, $12, $10, $11
.byte $12, $14, $17, $18
.byte $12, $10, $1A, $DF
.byte $1D, $12, $30, $14
.byte $1A, $19, $18, $17
.byte $45, $16, $1B, $1D
.byte $18, $26, $17, $18
.byte $1A, $1B, $15, $11
.byte $1C, $EF, $18, $10
.byte $13, $12, $13, $59
.byte $18, $27, $19, $1B
.byte $2C, $1A, $27, $19
.byte $2A, $17, $12, $18
.byte $EF, $1E, $12, $23
.byte $11, $15, $16, $35
.byte $24, $35, $16, $17
.byte $16, $14, $13, $14
.byte $15, $16, $15, $11
.byte $18, $FF, $17, $30
.byte $12, $24, $13, $21
.byte $23, $11, $10, $21
.byte $22, $21, $13, $14
.byte $12, $13, $1D, $FF
.byte $1D, $16, $11, $10
.byte $21, $22, $11, $22
.byte $13, $24, $25, $14
.byte $23, $41, $1A, $FF
.byte $2F, $1D, $16, $15
.byte $20, $31, $13, $24
.byte $15, $16, $47, $13
.byte $11, $10, $12, $19
.byte $FF, $2F, $1D, $1A
.byte $1C, $19, $13, $11
.byte $20, $21, $13, $24
.byte $33, $24, $21, $13
.byte $1A, $EF, $2E, $1D
.byte $1C, $1B, $1D, $1E
.byte $1B, $16, $13, $51
.byte $12, $41, $12, $21
.byte $12, $18, $1A, $1D
.byte $AF, $1E, $1D, $3C
.byte $2D, $4E, $1A, $14
.byte $22, $11, $20, $71
.byte $13, $15, $17, $2C
.byte $1D, $1E, $7F, $4D
.byte $2E, $2D, $2E, $1D
.byte $2E, $19, $23, $32
.byte $31, $22, $13, $15
.byte $16, $14, $17, $2E
.byte $3D, $2E, $4F, $2E
.byte $7D, $2E, $1D, $2E
.byte $1A, $14, $43, $14
.byte $13, $14, $15, $16
.byte $17, $15, $14, $18
.byte $1D, $4E, $2D, $4E
.byte $9D, $4E, $1C, $1A
.byte $18, $15, $14, $43
.byte $15, $26, $15, $13
.byte $16, $1A, $3E, $8D
.byte $00, $04, $57, $4F
.byte $5A, $20
.byte $8F, $1E ; Steve Jobs
.byte $1B, $18, $15, $34
.byte $15, $17, $18, $19
.byte $1B, $1D, $1E, $FF
.byte $7F, $1E, $1A, $17
.byte $14, $11, $40, $21
.byte $30, $31, $12, $16
.byte $1C, $FF, $4F, $1C
.byte $16, $11, $50, $21
.byte $20, $11, $12, $11
.byte $50, $11, $17, $1D
.byte $FF, $1F, $1B, $14
.byte $A0, $21, $12, $11
.byte $20, $21, $30, $13
.byte $1A, $EF, $19, $11
.byte $A0, $11, $12, $15
.byte $17, $13, $20, $51
.byte $10, $11, $17, $1E
.byte $BF, $1A, $B0, $11
.byte $12, $13, $15, $18
.byte $15, $30, $61, $10
.byte $16, $1E, $AF, $18
.byte $A0, $11, $12, $14
.byte $25, $1A, $19, $13
.byte $40, $41, $20, $18
.byte $AF, $16, $90, $11
.byte $12, $14, $27, $16
.byte $18, $1A, $16, $11
.byte $90, $15, $AF, $16
.byte $70, $11, $12, $23
.byte $24, $13, $32, $23
.byte $11, $80, $13, $1E
.byte $9F, $18, $50, $31
.byte $12, $13, $14, $13
.byte $11, $40, $12, $14
.byte $15, $14, $13, $11
.byte $50, $11, $1C, $9F
.byte $1A, $40, $31, $20
.byte $12, $18, $17, $13
.byte $12, $21, $12, $16
.byte $19, $1A, $1B, $1A
.byte $18, $13, $50, $16
.byte $1E, $8F, $1C, $11
.byte $20, $11, $14, $23
.byte $22, $14, $1B, $1D
.byte $1A, $18, $27, $18
.byte $19, $4B, $1A, $18
.byte $13, $40, $11, $18
.byte $9F, $17, $20, $11
.byte $17, $19, $37, $16
.byte $1A, $2E, $1B, $28
.byte $49, $48, $17, $15
.byte $14, $11, $20, $17
.byte $9F, $1D, $15, $20
.byte $16, $48, $26, $29
.byte $18, $47, $18, $27
.byte $38, $19, $17, $13
.byte $11, $20, $1A, $AF
.byte $1E, $15, $10, $12
.byte $26, $17, $18, $17
.byte $14, $23, $14, $27
.byte $15, $14, $16, $27
.byte $48, $15, $40, $15
.byte $1E, $AF, $1E, $15
.byte $10, $14, $27, $16
.byte $15, $14, $13, $12
.byte $13, $25, $14, $13
.byte $15, $16, $37, $18
.byte $17, $15, $11, $20
.byte $12, $15, $1C, $BF
.byte $1C, $12, $11, $26
.byte $15, $23, $24, $13
.byte $14, $15, $26, $25
.byte $36, $15, $14, $17
.byte $14, $20, $12, $16
.byte $1A, $CF, $1A, $22
.byte $25, $14, $25, $14
.byte $13, $15, $16, $27
.byte $26, $15, $14, $13
.byte $12, $15, $18, $17
.byte $11, $10, $11, $14
.byte $17, $1B, $CF, $1B
.byte $16, $24, $25, $26
.byte $25, $46, $14, $13
.byte $22, $13, $16, $28
.byte $13, $10, $11, $13
.byte $15, $17, $1C, $CF
.byte $1D, $14, $22, $14
.byte $15, $24, $53, $32
.byte $13, $15, $16, $17
.byte $18, $14, $21, $13
.byte $25, $19, $CF, $1B
.byte $23, $21, $12, $93
.byte $24, $15, $16, $27
.byte $13, $11, $12, $14
.byte $15, $16, $19, $1B
.byte $1E, $AF, $19, $13
.byte $14, $13, $32, $33
.byte $14, $23, $34, $35
.byte $16, $15, $13, $12
.byte $13, $25, $17, $28
.byte $1C, $1E, $1D, $1E
.byte $4F, $2E, $1D, $19
.byte $15, $34, $33, $94
.byte $35, $14, $13, $14
.byte $16, $25, $17, $19
.byte $1D, $2E, $1D, $1E
.byte $00, $0B, $53, $54
.byte $45, $56, $45, $20
.byte $4A, $4F, $42, $53
.byte $20
.byte $FF, $AF, $27 ; Happy 30th Birthday Apple!
.byte $FF, $FF, $5F, $57
.byte $FF, $FF, $4F, $57
.byte $FF, $FF, $4F, $57
.byte $FF, $FF, $4F, $57
.byte $FF, $DF, $37, $4F
.byte $27, $4F, $47, $FF
.byte $4F, $F7, $A7, $DF
.byte $F7, $D7, $BF, $FC
.byte $CC, $CF, $FC, $CC
.byte $DF, $FC, $BC, $DF
.byte $F8, $C8, $DF, $F8
.byte $C8, $DF, $F8, $D8
.byte $DF, $F4, $D4, $CF
.byte $F4, $E4, $CF, $F4
.byte $F4, $AF, $F3, $F3
.byte $BF, $F3, $D3, $DF
.byte $F3, $B3, $FF, $1F
.byte $F4, $84, $FF, $3F
.byte $84, $4F, $84, $FF
.byte $FF, $FF, $5F, $00
.byte $1B, $48, $41, $50
.byte $50, $59, $20, $33
.byte $30, $54, $48, $20
.byte $42, $49, $52, $54
.byte $48, $44, $41, $59
.byte $20, $41, $50, $50
.byte $4C, $45, $21, $20
.byte $FF, $AF, $1E, $19 ; Woz and Jobs holding Apple I
.byte $15, $13, $14, $19
.byte $1D, $FF, $FF, $2F
.byte $1E, $18, $13, $31
.byte $13, $17, $1D, $EF
.byte $1E, $1D, $1C, $1D
.byte $DF, $1C, $16, $22
.byte $24, $13, $15, $1A
.byte $DF, $1C, $17, $12
.byte $11, $15, $1A, $CF
.byte $1D, $18, $25, $28
.byte $27, $19, $1E, $BF
.byte $1C, $16, $11, $10
.byte $11, $12, $15, $1A
.byte $CF, $1C, $19, $27
.byte $18, $27, $19, $1D
.byte $BF, $1A, $15, $14
.byte $15, $17, $26, $18
.byte $1C, $CF, $1B, $16
.byte $24, $25, $18, $1C
.byte $BF, $1B, $17, $15
.byte $16, $18, $17, $18
.byte $1A, $1E, $CF, $1C
.byte $17, $14, $13, $14
.byte $15, $18, $1B, $BF
.byte $1D, $18, $45, $17
.byte $1B, $1E, $CF, $1E
.byte $1C, $19, $27, $19
.byte $1B, $1E, $CF, $1B
.byte $15, $22, $13, $17
.byte $1C, $FF, $1F, $2D
.byte $1E, $EF, $1E, $19
.byte $13, $11, $14, $19
.byte $1E, $AF, $2E, $AF
.byte $3E, $5F, $4E, $1B
.byte $17, $14, $16, $1A
.byte $1D, $AF, $1E, $1D
.byte $1E, $8F, $1E, $3D
.byte $1E, $3F, $1E, $4D
.byte $1C, $2B, $1A, $1B
.byte $1C, $2D, $2E, $5F
.byte $1E, $2D, $1E, $7F
.byte $1E, $1D, $2C, $1D
.byte $2E, $1F, $1E, $3D
.byte $6E, $5D, $1E, $6F
.byte $1D, $1C, $1D, $1E
.byte $3F, $2E, $1F, $1E
.byte $1D, $2C, $1D, $3E
.byte $5D, $9E, $1D, $6C
.byte $1B, $1A, $39, $2A
.byte $19, $1A, $1C, $2E
.byte $1D, $2B, $1C, $1E
.byte $2F, $1E, $7D, $3E
.byte $2D, $1E, $1D, $1A
.byte $17, $25, $16, $55
.byte $14, $25, $16, $18
.byte $1B, $1E, $1F, $1D
.byte $2B, $1C, $1D, $3E
.byte $2D, $1C, $1B, $2C
.byte $1D, $1E, $1F, $1E
.byte $2D, $1C, $1B, $18
.byte $16, $15, $84, $25
.byte $16, $18, $1B, $1E
.byte $1F, $1E, $3C, $1D
.byte $1E, $1C, $3D, $3C
.byte $1D, $1E, $3F, $1E
.byte $1D, $1B, $19, $18
.byte $17, $16, $15, $24
.byte $25, $44, $23, $16
.byte $1A, $1D, $3F, $1E
.byte $2D, $1C, $1D, $2C
.byte $2D, $4E, $2F, $1D
.byte $1B, $19, $18, $27
.byte $15, $14, $13, $14
.byte $26, $14, $33, $12
.byte $13, $14, $17, $1A
.byte $1C, $1D, $3E, $4D
.byte $1B, $19, $1A, $1B
.byte $1D, $3E, $1D, $1C
.byte $19, $17, $16, $17
.byte $38, $17, $16, $17
.byte $18, $29, $17, $26
.byte $15, $16, $27, $38
.byte $19, $1A, $1D, $4F
.byte $1D, $1B, $39, $1A
.byte $49, $38, $19, $1A
.byte $1C, $1E, $1F, $2E
.byte $1F, $1E, $1D, $1B
.byte $3A, $19, $18, $27
.byte $18, $19, $1A, $1C
.byte $1E, $5F, $1D, $1A
.byte $18, $27, $18, $29
.byte $3A, $19, $18, $1A
.byte $1D, $6F, $1C, $19
.byte $18, $69, $1A, $1B
.byte $1A, $1B, $1D, $5F
.byte $1D, $19, $16, $15
.byte $56, $15, $14, $12
.byte $13, $16, $1C, $6F
.byte $1E, $19, $15, $23
.byte $44, $35, $16, $1A
.byte $1E, $4F, $1E, $18
.byte $13, $10, $21, $12
.byte $23, $12, $11, $10
.byte $11, $15, $1B, $7F
.byte $1A, $15, $42, $23
.byte $14, $15, $16, $18
.byte $1B, $1E, $2F, $00
.byte $1D, $57, $4F, $5A
.byte $20, $41, $4E, $44
.byte $20, $4A, $4F, $42
.byte $53, $20, $48, $4F
.byte $4C, $44, $49, $4E
.byte $47, $20, $41, $50
.byte $50, $4C, $45, $20
.byte $49, $20
.byte $FF, $3F ; Apple II
.byte $3E, $FF, $FF, $5F
.byte $1E, $7D, $1E, $FF
.byte $EF, $1E, $3D, $6E
.byte $4D, $1E, $FF, $8F
.byte $1E, $2D, $EE, $3D
.byte $2E, $FF, $2F, $1E
.byte $1D, $FE, $4E, $5D
.byte $1E, $CF, $1E, $1D
.byte $FE, $7E, $3D, $1B
.byte $19, $9F, $1C, $2D
.byte $6E, $1D, $1E, $3F
.byte $2E, $2F, $7E, $1D
.byte $1E, $1D, $1A, $17
.byte $15, $1E, $7F, $1E
.byte $1C, $2A, $1C, $1D
.byte $3E, $19, $16, $18
.byte $19, $1C, $1E, $4F
.byte $1E, $1F, $6E, $1C
.byte $19, $16, $14, $16
.byte $7F, $2D, $3E, $1C
.byte $3B, $1D, $1B, $1A
.byte $18, $37, $1A, $1F
.byte $4E, $1F, $4E, $1B
.byte $18, $25, $16, $17
.byte $5F, $1E, $3D, $19
.byte $14, $18, $1C, $2E
.byte $1D, $3B, $1C, $1B
.byte $2A, $1D, $8E, $1F
.byte $1B, $16, $14, $15
.byte $27, $18, $4F, $1E
.byte $1D, $1E, $1D, $15
.byte $30, $11, $14, $19
.byte $1C, $1E, $1F, $1D
.byte $1C, $2B, $1C, $8E
.byte $1F, $1E, $18, $14
.byte $16, $47, $3F, $2D
.byte $1E, $1B, $14, $10
.byte $41, $20, $11, $14
.byte $18, $1C, $1E, $1F
.byte $1E, $1C, $3B, $1D
.byte $2E, $2F, $1E, $19
.byte $26, $37, $15, $1B
.byte $1F, $1E, $3D, $1E
.byte $1A, $11, $30, $51
.byte $20, $11, $14, $18
.byte $1C, $1E, $1F, $1E
.byte $1C, $1B, $1A, $1B
.byte $1C, $1D, $1A, $16
.byte $37, $16, $15, $1C
.byte $2F, $1C, $16, $19
.byte $1D, $2E, $1D, $13
.byte $31, $10, $71, $10
.byte $11, $14, $18, $1C
.byte $1E, $1F, $1E, $1D
.byte $1C, $19, $47, $26
.byte $1D, $4F, $1D, $16
.byte $12, $17, $1B, $1E
.byte $1A, $14, $51, $10
.byte $11, $12, $61, $1B
.byte $2D, $1E, $1F, $1C
.byte $47, $15, $17, $8F
.byte $1A, $14, $12, $14
.byte $1A, $1D, $1C, $17
.byte $13, $21, $12, $11
.byte $20, $22, $21, $1C
.byte $1F, $3E, $1B, $47
.byte $15, $19, $BF, $1D
.byte $17, $23, $17, $1C
.byte $1D, $1B, $16, $12
.byte $11, $12, $11, $20
.byte $14, $1E, $1F, $2E
.byte $1F, $1B, $47, $15
.byte $1B, $FF, $1B, $15
.byte $12, $14, $19, $2D
.byte $1A, $2E, $1A, $17
.byte $1E, $1F, $2E, $1F
.byte $1C, $37, $16, $15
.byte $1C, $FF, $3F, $1E
.byte $18, $23, $16, $1B
.byte $1D, $1E, $2F, $3E
.byte $1F, $1C, $37, $26
.byte $1E, $FF, $7F, $1C
.byte $16, $12, $13, $17
.byte $1C, $1E, $1F, $1E
.byte $1F, $1D, $37, $15
.byte $17, $FF, $BF, $1E
.byte $19, $14, $12, $14
.byte $19, $2C, $18, $27
.byte $15, $19, $FF, $FF
.byte $1D, $17, $12, $11
.byte $12, $23, $14, $1B
.byte $FF, $FF, $4F, $1B
.byte $19, $28, $1C, $EF
.byte $00, $09, $41, $50
.byte $50, $4C, $45, $20
.byte $49, $49, $20
.byte $FF ; Macintosh
.byte $FF, $FF, $FF, $CF
.byte $1E, $FF, $7F, $1E
.byte $6D, $7C, $3B, $1A
.byte $1D, $FF, $6F, $1D
.byte $15, $14, $35, $A4
.byte $2A, $1D, $FF, $6F
.byte $1D, $15, $18, $39
.byte $2A, $79, $14, $1A
.byte $19, $1D, $FF, $6F
.byte $1C, $14, $18, $19
.byte $1A, $1B, $19, $1A
.byte $1B, $39, $3A, $14
.byte $29, $1D, $FF, $5F
.byte $1E, $1B, $14, $29
.byte $1A, $19, $16, $18
.byte $19, $17, $16, $17
.byte $28, $1A, $14, $28
.byte $1D, $FF, $5F, $1E
.byte $1A, $14, $28, $39
.byte $68, $19, $1A, $14
.byte $28, $1D, $FF, $5F
.byte $1E, $1A, $14, $28
.byte $39, $7A, $19, $14
.byte $18, $17, $1D, $FF
.byte $5F, $1D, $19, $13
.byte $26, $55, $46, $25
.byte $13, $18, $17, $1C
.byte $FF, $5F, $1D, $19
.byte $1A, $19, $28, $47
.byte $16, $57, $18, $1A
.byte $16, $1C, $FF, $5F
.byte $1C, $19, $3A, $79
.byte $58, $17, $16, $1C
.byte $FF, $5F, $1B, $68
.byte $57, $36, $25, $26
.byte $1C, $FF, $5F, $1B
.byte $D7, $36, $17, $16
.byte $1C, $FF, $5F, $1A
.byte $17, $16, $47, $86
.byte $17, $26, $15, $1B
.byte $FF, $5F, $19, $65
.byte $74, $55, $1A, $1D
.byte $1E, $8F, $1D, $7C
.byte $2B, $17, $44, $13
.byte $14, $53, $15, $16
.byte $13, $22, $13, $14
.byte $1D, $1F, $1E, $1D
.byte $1E, $5F, $1D, $27
.byte $36, $65, $34, $23
.byte $14, $43, $14, $1A
.byte $1C, $14, $10, $11
.byte $12, $13, $1D, $3F
.byte $1D, $1E, $4F, $1B
.byte $16, $17, $15, $17
.byte $15, $16, $17, $36
.byte $15, $54, $53, $14
.byte $1A, $1C, $16, $11
.byte $13, $14, $17, $1F
.byte $1E, $3F, $1E, $4F
.byte $1E, $1D, $1A, $19
.byte $1A, $99, $58, $27
.byte $18, $3B, $18, $17
.byte $1B, $5D, $1B, $19
.byte $1B, $1F, $1E, $19
.byte $48, $19, $88, $77
.byte $56, $25, $1A, $1D
.byte $1A, $19, $1A, $1B
.byte $1A, $17, $14, $1A
.byte $2F, $1C, $4A, $B9
.byte $B8, $19, $1C, $1D
.byte $17, $26, $15, $14
.byte $15, $17, $1D, $FF
.byte $FF, $3E, $1D, $1C
.byte $2B, $1D, $3F, $00
.byte $0A, $4D, $41, $43
.byte $49, $4E, $54, $4F
.byte $53, $48, $20
.byte $EF ; iMac
.byte $1E, $2D, $FF, $FF
.byte $4F, $1D, $19, $18
.byte $29, $17, $1C, $1E
.byte $1D, $FF, $FF, $19
.byte $15, $19, $1A, $29
.byte $17, $18, $1E, $1B
.byte $1C, $1E, $FF, $BF
.byte $1C, $26, $2B, $1A
.byte $19, $28, $16, $1E
.byte $16, $14, $19, $1C
.byte $FF, $9F, $19, $14
.byte $19, $2C, $1B, $29
.byte $18, $17, $15, $1A
.byte $1B, $10, $12, $16
.byte $1A, $FF, $6F, $1E
.byte $16, $17, $3C, $1B
.byte $1A, $19, $18, $17
.byte $16, $15, $16, $1E
.byte $14, $11, $14, $18
.byte $1B, $FF, $4F, $1C
.byte $15, $18, $2C, $3B
.byte $19, $18, $16, $35
.byte $13, $1D, $19, $10
.byte $12, $17, $1A, $1E
.byte $FF, $2F, $1B, $14
.byte $19, $1C, $2B, $2A
.byte $29, $17, $15, $34
.byte $12, $1A, $1C, $21
.byte $14, $18, $1C, $FF
.byte $1F, $1A, $14, $19
.byte $1B, $2A, $29, $38
.byte $16, $24, $13, $14
.byte $12, $15, $1E, $13
.byte $10, $12, $16, $1A
.byte $FF, $1B, $12, $17
.byte $39, $28, $37, $16
.byte $15, $63, $1E, $17
.byte $10, $11, $15, $18
.byte $1E, $EF, $13, $12
.byte $16, $47, $26, $45
.byte $13, $22, $23, $11
.byte $2A, $11, $10, $13
.byte $17, $1C, $DF, $1A
.byte $10, $11, $14, $45
.byte $64, $13, $42, $11
.byte $16, $1D, $12, $10
.byte $12, $16, $19, $DF
.byte $17, $10, $31, $12
.byte $93, $42, $11, $14
.byte $1E, $14, $10, $11
.byte $15, $17, $1E, $CF
.byte $1D, $1B, $1A, $19
.byte $17, $16, $25, $12
.byte $11, $12, $43, $12
.byte $13, $22, $11, $12
.byte $1D, $16, $20, $13
.byte $16, $1C, $CF, $2D
.byte $5E, $1D, $1C, $19
.byte $17, $16, $15, $14
.byte $13, $42, $21, $1A
.byte $1B, $13, $12, $13
.byte $15, $1A, $CF, $1E
.byte $1C, $1D, $7E, $1D
.byte $1C, $1B, $1A, $29
.byte $18, $16, $14, $12
.byte $10, $17, $1E, $1C
.byte $1B, $2A, $1C, $DF
.byte $1D, $1C, $1D, $2E
.byte $2D, $5C, $2D, $1C
.byte $1D, $1C, $2B, $18
.byte $19, $1C, $19, $1A
.byte $19, $1A, $1C, $EF
.byte $1D, $4C, $7D, $3C
.byte $2D, $1E, $2D, $19
.byte $10, $15, $18, $17
.byte $18, $1B, $EF, $1E
.byte $2D, $1B, $1C, $1D
.byte $3E, $2D, $2C, $1D
.byte $2E, $2D, $1C, $19
.byte $10, $15, $19, $18
.byte $19, $1A, $FF, $2F
.byte $1E, $1D, $2C, $1D
.byte $2E, $4D, $1E, $2D
.byte $1E, $1B, $18, $16
.byte $17, $18, $2B, $4D
.byte $2C, $1E, $AF, $3E
.byte $1D, $1C, $5B, $1A
.byte $2B, $18, $27, $29
.byte $1B, $1A, $29, $14
.byte $53, $12, $13, $16
.byte $18, $29, $1D, $3F
.byte $2E, $1D, $1C, $2B
.byte $4A, $29, $28, $17
.byte $56, $15, $18, $1C
.byte $19, $43, $22, $14
.byte $17, $28, $29, $1C
.byte $FF, $6F, $1E, $1C
.byte $2B, $1C, $2E, $1D
.byte $3C, $2B, $1D, $1E
.byte $4F, $00, $05, $49
.byte $4D, $41, $43, $20
.byte $A0, $13, $64, $D5 ; iPod
.byte $12, $F0, $30, $19
.byte $1E, $1C, $5D, $6C
.byte $5D, $1C, $1D, $1F
.byte $16, $F0, $20, $1D
.byte $1B, $19, $3C, $2D
.byte $1B, $1A, $1B, $3A
.byte $1C, $1D, $1C, $1D
.byte $1C, $1A, $18, $1F
.byte $1A, $F0, $20, $3C
.byte $3B, $3E, $BF, $1A
.byte $1F, $1A, $F0, $20
.byte $3C, $17, $14, $19
.byte $17, $14, $1A, $1E
.byte $6D, $4F, $1A, $1F
.byte $1A, $F0, $20, $1C
.byte $1B, $1C, $1B, $15
.byte $1D, $27, $1D, $1E
.byte $3C, $7F, $1A, $1F
.byte $1A, $F0, $20, $1C
.byte $1B, $1C, $18, $13
.byte $1B, $16, $14, $1B
.byte $1E, $1C, $3D, $1C
.byte $5F, $1A, $1F, $1A
.byte $F0, $20, $1C, $1B
.byte $1C, $19, $18, $29
.byte $18, $1A, $4D, $1E
.byte $6F, $1A, $1F, $1A
.byte $F0, $20, $1C, $1B
.byte $1D, $2B, $8C, $1D
.byte $3F, $1E, $1D, $1E
.byte $1A, $1F, $1A, $F0
.byte $20, $1C, $4B, $6C
.byte $6D, $1C, $1B, $1C
.byte $1A, $1F, $1A, $F0
.byte $20, $1B, $1E, $6D
.byte $CE, $2F, $1A, $F0
.byte $20, $1B, $5E, $FF
.byte $1F, $1A, $F0, $20
.byte $1B, $6E, $2D, $1C
.byte $2D, $2C, $1D, $1E
.byte $6F, $1A, $F0, $20
.byte $1B, $4E, $1D, $2C
.byte $6B, $3C, $5F, $1A
.byte $F0, $20, $1B, $3E
.byte $1D, $5B, $3D, $4B
.byte $1C, $4F, $1A, $F0
.byte $20, $1B, $1E, $2D
.byte $1C, $2B, $1A, $1B
.byte $4F, $1E, $1A, $3B
.byte $1E, $3F, $1A, $F0
.byte $20, $1A, $3D, $1B
.byte $4A, $1E, $3F, $1D
.byte $4A, $1E, $3F, $1A
.byte $F0, $20, $1A, $1D
.byte $1C, $1D, $1C, $1A
.byte $19, $1A, $19, $1A
.byte $2B, $1A, $19, $2A
.byte $19, $1B, $4F, $1A
.byte $F0, $20, $1A, $3C
.byte $1D, $1C, $1A, $89
.byte $1A, $1B, $1E, $4F
.byte $1A, $F0, $20, $19
.byte $4C, $2D, $1C, $1B
.byte $1A, $2B, $1A, $1B
.byte $1C, $1D, $3E, $3F
.byte $1A, $F0, $20, $1A
.byte $5C, $6D, $7E, $3F
.byte $19, $F0, $20, $15
.byte $3B, $5C, $8D, $4E
.byte $1D, $13, $F0, $30
.byte $11, $F2, $42, $11
.byte $90, $00, $05, $49
.byte $50, $4F, $44, $20
.byte $EF, $1D, $4C, $1B ; MacBook Pro
.byte $2C, $4B, $5A, $29
.byte $1A, $39, $28, $1B
.byte $DF, $1D, $15, $16
.byte $47, $18, $19, $1A
.byte $49, $2A, $49, $48
.byte $19, $17, $19, $DF
.byte $1C, $14, $13, $24
.byte $25, $16, $17, $18
.byte $27, $78, $67, $16
.byte $19, $DF, $1A, $13
.byte $22, $13, $14, $15
.byte $46, $17, $18, $B7
.byte $26, $1A, $DF, $19
.byte $13, $22, $13, $25
.byte $26, $B7, $46, $17
.byte $16, $1B, $DF, $17
.byte $13, $32, $14, $26
.byte $27, $C6, $37, $16
.byte $1C, $DF, $16, $42
.byte $14, $15, $17, $18
.byte $25, $26, $25, $36
.byte $15, $76, $1D, $DF
.byte $15, $42, $13, $16
.byte $19, $55, $14, $36
.byte $75, $14, $15, $1E
.byte $CF, $1E, $14, $41
.byte $13, $27, $54, $16
.byte $17, $16, $25, $14
.byte $15, $24, $33, $15
.byte $1E, $CF, $1D, $13
.byte $41, $14, $17, $14
.byte $43, $16, $17, $25
.byte $44, $23, $22, $13
.byte $15, $DF, $1C, $13
.byte $41, $14, $23, $22
.byte $13, $26, $15, $14
.byte $43, $52, $13, $16
.byte $DF, $1A, $12, $30
.byte $62, $44, $23, $22
.byte $31, $22, $11, $12
.byte $16, $DF, $18, $11
.byte $20, $61, $62, $91
.byte $12, $17, $DF, $17
.byte $11, $20, $C1, $50
.byte $41, $12, $18, $DF
.byte $16, $F0, $60, $31
.byte $12, $18, $DF, $15
.byte $30, $14, $11, $13
.byte $12, $13, $22, $51
.byte $30, $11, $50, $12
.byte $19, $BF, $1D, $19
.byte $14, $33, $26, $17
.byte $28, $19, $1A, $25
.byte $17, $16, $27, $15
.byte $13, $1A, $14, $12
.byte $30, $12, $1A, $7F
.byte $1C, $19, $16, $14
.byte $13, $15, $17, $46
.byte $17, $26, $37, $15
.byte $16, $58, $27, $16
.byte $14, $12, $21, $13
.byte $1B, $2F, $1E, $1C
.byte $1A, $28, $49, $3A
.byte $28, $17, $18, $47
.byte $16, $15, $16, $25
.byte $14, $45, $14, $13
.byte $31, $13, $16, $1D
.byte $1F, $29, $1B, $3C
.byte $3D, $5E, $1C, $1B
.byte $1A, $29, $17, $16
.byte $17, $28, $16, $25
.byte $24, $13, $14, $12
.byte $21, $13, $25, $1B
.byte $2F, $1A, $46, $17
.byte $18, $19, $3A, $1C
.byte $1B, $1A, $19, $18
.byte $1B, $1C, $1B, $4A
.byte $29, $18, $17, $16
.byte $25, $14, $13, $14
.byte $19, $16, $1B, $9F
.byte $1E, $1D, $1C, $1B
.byte $1A, $19, $18, $17
.byte $16, $15, $14, $25
.byte $14, $23, $84, $23
.byte $14, $16, $1B, $FF
.byte $9F, $1E, $1D, $1C
.byte $1B, $1A, $19, $18
.byte $17, $25, $14, $13
.byte $14, $1A, $8F, $00
.byte $0C, $4D, $41, $43
.byte $42, $4F, $4F, $4B
.byte $20, $50, $52, $4F
.byte $20
.byte $FF, $9F, $40 ; The Next Thirty...
.byte $FF, $FF, $4F, $60
.byte $FF, $FF, $2F, $70
.byte $FF, $FF, $3F, $60
.byte $FF, $FF, $3F, $50
.byte $FF, $BF, $40, $5F
.byte $20, $5F, $60, $EF
.byte $F0, $F0, $8F, $F0
.byte $F0, $30, $5F, $F0
.byte $F0, $40, $5F, $F0
.byte $F0, $30, $7F, $F0
.byte $F0, $20, $8F, $F0
.byte $F0, $20, $8F, $F0
.byte $F0, $20, $8F, $F0
.byte $F0, $20, $8F, $F0
.byte $F0, $30, $7F, $F0
.byte $F0, $50, $6F, $F0
.byte $F0, $60, $5F, $F0
.byte $F0, $50, $5F, $F0
.byte $F0, $40, $8F, $F0
.byte $F0, $10, $AF, $F0
.byte $E0, $DF, $F0, $B0
.byte $FF, $80, $7F, $80
.byte $8F, $00, $13, $54
.byte $48, $45, $20, $4E
.byte $45, $58, $54, $20
.byte $54, $48, $49, $52
.byte $54, $59, $2E, $2E
.byte $2E, $20, $00
@bruno185
Copy link

Hi,
Very nice job !
I wandered how you produced the data used in your program.
So I wrote a windows program to do it.
You can see it here :

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment