[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
ROM 03 Easter Egg Hunt
- Subject: ROM 03 Easter Egg Hunt
- From: retrogear <larrygr510@gmail.com>
- Date: Wed, 5 Jun 2013 04:14:41 -0700 (PDT)
- Complaints-to: groups-abuse@google.com
- Injection-date: Wed, 05 Jun 2013 11:14:41 +0000
- Injection-info: glegroupsg2000goo.googlegroups.com; posting-host=70.35.104.46; posting-account=jKERDgoAAAC7gLN5mRA-DQeBq0YlQi-t
- Newsgroups: comp.sys.apple2
- User-agent: G2/1.0
I found the easter egg code which shouts "Apple II !!!" when ctl-oa-ca-n pressed. The subroutine @33 is called in the 'check startup device' loop and if the magic combo is pressed a jsl to FE0018 is taken which branches to $FE07C6. The wav tables are blocks at $FF1000 and FF1D00. I'm filling in the gaps on the $FF firmware bank. No more mystery !!! Larry
FA5DA A5DA 00FFA5DA @33 EQU *
FA5DA A5DA AD C000 4 LDA KBD ;If ctrl pressed do test
FA5DD A5DD 8D C010 4 STA KBDSTRB ;
FA5E0 A5E0 C9 8E 2 CMP #$8E ;Control-'N'
FA5E2 A5E2 D0 0D FA5F1 2 BNE @34 ;
FA5E4 A5E4 AD C062 4 LDA BUTN1 ;If closed apple down test open apple
FA5E7 A5E7 10 08 FA5F1 2 BPL @34 ;
FA5E9 A5E9 AD C061 4 LDA BUTN0 ;If open apple down too
FA5EC A5EC 10 03 FA5F1 2 BPL @34 ;
FA5EE A5EE 20 FFFF FA5FC 6 JSR @40 ;Do tests
FA5F1 A5F1 00FFA5F1 @34 EQU *
FA5F1 A5F1 AD C019 4 LDA RDVBLBAR ;Wait if in VBL
FA5F4 A5F4 10 FB FA5F1 2 BPL @34 ;
FA5F6 A5F6 00FFA5F6 @32 EQU *
FA5F6 A5F6 AD C019 4 LDA RDVBLBAR ;Wait if not in VBL
FA5F9 A5F9 30 FB FA5F6 2 BMI @32 ;
FA5FB A5FB 60 6 RTS ;
FA5FC A5FC
FA5FC A5FC
FA5FC A5FC 00FFA5FC @40 EQU * ;Do tests
FA5FC A5FC 5A 3 PHY ;MUST preserve pointer around call
FA5FD A5FD 20 FFFF FA9EE 6 JSR HOMEFF ;Clear the specific screen first
FA600 A600 A9 06 2 LDA #6 ;Position for messages
FA602 A602 85 25 3 STA CV ;
FA604 A604 64 24 3 STZ CH ;
FA606 A606 20 FFFF FA9E4 6 JSR VTABFF ;
FA609 A609 22 FE0018 8 JSL >$FE0018 ;{MSA 4/20/89} A touch of audio makes it
FA60D A60D A9 F3 2 LDA #N1 ;Pointer number
FA60F A60F 20 FFFF FA624 6 JSR @60 ;Make a delay
FA612 A612 A9 0F 2 LDA #15 ;Position the message
FA614 A614 85 25 3 STA CV ;
FA616 A616 A9 02 2 LDA #2
FA618 A618 85 24 3 STA CH ;
FA61A A61A 20 FFFF FA9E4 6 JSR VTABFF ;
FA61D A61D A9 F4 2 LDA #N2 ;Pointer number
FA61F A61F 20 FFFF FA624 6 JSR @60 ;Print / delay /clear
FA622 A622 7A 4 PLY ;Restore y
FA623 A623 60 6 RTS ;
$FE0018 jumps here:
007C6 0000 00FF1000 Sound1 equ $FF1000
007C6 0000 00FF1D00 Sound2 equ $FF1D00
007C6 0000
007C6 0000 08 3 php
007C7 0001 C2 30 3 rep #$30
007C9 0003
007C9 0003
007C9 0003 F4 0000 5 pea 0
007CC 0006 _SoundToolStatus
007CC 0006 A2 0608 3 1 ldx #$0608
007CF 0009 22 E10000 8 1 jsl $E10000
007D3 000D 68 5 pla
007D4 000E D0 0C 007E2 2 bne @StartedAlready
007D6 0010
007D6 0010 F4 2000 5 pea $2000
007D9 0013 _SoundStartup
007D9 0013 A2 0208 3 1 ldx #$0208
007DC 0016 22 E10000 8 1 jsl $E10000
007E0 001A B0 28 0080A 2 bcs @Error
007E2 001C @StartedAlready
007E2 001C ; Now play the sound!
007E2 001C @Again
007E2 001C F4 7FFF 5 pea #$7FFF
007E5 001F _FFStopSound
007E5 001F A2 0F08 3 1 ldx #$0F08
007E8 0022 22 E10000 8 1 jsl $E10000
007EC 0026
007EC 0026 E2 20 3 sep #$20 ; crank the volume a little!
007EE 0028 Longa Off
007EE 0028 AF E100CA 5 lda >$E100CA
007F2 002C 09 08 2 ora #$08
007F4 002E 8F E100CA 5 sta >$E100CA
007F8 0032 C2 20 3 rep #$20
007FA 0034 Longa On
007FA 0034
007FA 0034 F4 0001 5 pea 1
007FD 0037 PushLong #MyPBlock
007FD 0037 1 IF &addr[1:1]='#' THEN
007FD 0037 F4 FFFF 5 1 pea MyPBlock>>16
00800 003A F4 FFFF 0080C 5 1 pea |MyPBlock
00803 003D 1 ELSEIF &addr[1:1]='[' THEN
00803 003D 1 ENDIF
00803 003D _FFStartSound
00803 003D A2 0E08 3 1 ldx #$0E08
00806 0040 22 E10000 8 1 jsl $E10000
0080A 0044 @Error
0080A 0044 28 4 plp
0080B 0045 6B 6 rtl
0080C 0046 MyPBlock
0080C 0046 00FF1000 dc.L Sound1
00810 004A 000C dc.W $000C
00812 004C 00F6 dc.W $00F6 ; 5kHz 97
00814 004E 0000 dc.W $0000
00816 0050 000F dc.W $000F
00818 0052 00000058 dc.L MyOTHERPBlock
0081C 0056 00FF dc.W $00FF
0081E 0058 MyOTHERPBlock
0081E 0058 00FF1D00 dc.L Sound2
MPW IIGS Assembler - Ver 1.2 TLMemRoutines 01-Jun-13 Page 50
Loc SLoc Object Code Addr T M Source Statement
00822 005C 001F dc.W $001F
00824 005E 00F6 dc.W $00F6 ; 5kHz 97
00826 0060 0000 dc.W $0000
00828 0062 000F dc.W $000F
0082A 0064 00000000 dc.L 0
0082E 0068 00FF dc.W $00FF
00830 006A EndP