SAVE full listing
ORG $6000 (actually loaded into $8800)
LEN $01F0
8800 A5 0F LDA $0F ; get party size
8802 85 D4 STA $D4 ; set current player to last
8804 20 2D 08 JSR $082D ; set $FE/$FF vector based on $D4
8807 A0 12 LDY #$12 ; set play status to DEAD
8809 A9 C4 LDA #$C4 ; .
880B 91 FE STA ($FE),Y ; .
880D A0 18 LDY #$18 ; set hit points to 000
880F A9 00 LDA #$00 ; .
8811 91 FE STA ($FE),Y ; .
8813 C8 INY ; .
8814 91 FE STA ($FE),Y ; .
8816 20 45 08 JSR $0845 ; DISPLAY STATS
8819 20 75 08 JSR $0875 ; clear screen?
881C 20 21 08 JSR $0821 ; print
881F 8D 8D C1 CC CC A0 C9 D3 A0 C4 C1 D2 CB AE AE AE 8D 00 ^M^MALL IS DARK...^M^@
8831 20 D5 89 JSR $89D5 ; wait a few seconds
8834 20 21 08 JSR $0821 ; print
8837 8D C2 F5 F4 A0 F7 E1 E9 F4 AE AE AE 8D 00 ^MBut wait...^M^@
8845 20 D5 89 JSR $89D5 ; wait a few seconds
8848 20 21 08 JSR $0821 ; print
884B D7 E8 E5 F2 E5 A0 E1 ED A0 C9 BF AE AE AE 8D 00 Where am I?..^M^@
885B 20 D5 89 JSR $89D5 ; wait a few seconds
885E 20 21 08 JSR $0821 ; print
8861 C1 ED A0 C9 A0 E4 E5 E1 E4 BF AE AE AE 8D 00 Am I dead?...^M^@
8870 20 D5 89 JSR $89D5 ; wait a few seconds
8873 20 21 08 JSR $0821 ; print
8876 C1 E6 F4 E5 F2 EC E9 E6 E5 BF AE AE AE 8D 00 Afterlife?...^M^@
8885 20 D5 89 JSR $89D5 ; wait a few seconds
8888 20 21 08 JSR $0821 ; print
888B D9 CF D5 A0 C8 C5 C1 D2 BA 8D 00 YOU HEAR:^M^@
8896 A9 01 LDA #$01 ; _D4 = 0x01
8898 85 D4 STA $D4 ; .
889A 20 6F 08 JSR $086F ; print player name?
889D A9 8D LDA #$8D ; '^M'
889F 20 24 08 JSR $0824 ; print character
88A2 20 D5 89 JSR $89D5 ; wait a few seconds
88A5 20 21 08 JSR $0821 ; print
88A8 C9 A0 E6 E5 E5 EC A0 ED EF F4 E9 EF EE AE AE AE 8D 00 I feel motion...^M^@
88BA A9 1F LDA #$1F ; _0E = 0x1F
88BC 85 0E STA $0E ;
88BE A9 13 LDA #$13 ; _00 = 0x13
88C0 85 00 STA $00 ;
88C2 A9 08 LDA #$08 ; _01 = 0x08
88C4 85 01 STA $01 ;
88C6 A9 56 LDA #$56 ; _08 = 0x56
88C8 85 08 STA $08 ;
88CA A9 6C LDA #$6C ; _09 = 0x6C
88CC 85 09 STA $09 ;
88CE A9 01 LDA #$01 ; _0A = 0x01
88D0 85 0A STA $0A ;
88D2 A9 00 LDA #$00 ; _0B = 0x00
88D4 85 0B STA $0B ;
88D6 85 14 STA $14 ; _14 = 0x00
88D8 A9 03 LDA #$03 ;
88DA 20 42 08 JSR $0842 ; request disk switch to disk 3 (TOWN?)
88DD 20 1B 08 JSR $081B ; print
88E0 84 C2 CC CF C1 C4 A0 CD C1 D0 C0 AC C1 A4 B8 C2 B0 B0 8D 00 ^DBLOAD MAP@,A$8B00^M^@
88F4 A2 00 LDX #$00 ;
;; copy
; 8BXX => E8XX
; 8CXX => E9XX
; 8DXX => EAXX
; 8EXX => EBXX
; 8FXX => EEXX
88F6 BD 00 8B LDA $8B00,X ;
88F9 9D 00 E8 STA $E800,X ;
88FC BD 00 8C LDA $8C00,X ;
88FF 9D 00 E9 STA $E900,X ;
8902 BD 00 8D LDA $8D00,X ;
8905 9D 00 EA STA $EA00,X ;
8908 BD 00 8E LDA $8E00,X ;
890B 9D 00 EB STA $EB00,X ;
890E BD 00 8F LDA $8F00,X ;
8911 9D 00 EE STA $EE00,X ;
8914 E8 INX ;
8915 D0 DF BNE $88F6 ; loop back over all values of X
;; @@@
8917 A9 02 LDA #$02 ; _0B = 0x02
8919 85 0B STA $0B ; .
891B 20 4B 08 JSR $084B ; @@@
891E 20 21 08 JSR $0821 ; print
8921 8D 8D CC CF D2 C4 A0 C2 D2 C9 D4 C9 D3 C8 8D ^M^MLORD BRITISH^M
8930 D3 C1 D9 D3 BA A0 C9 A0 C8 C1 D6 C5 8D SAYS: I HAVE^M
893D D0 D5 CC CC C5 C4 A0 D4 C8 D9 8D PULLED THY^M
8948 D3 D0 C9 D2 C9 D4 A0 C1 CE C4 A0 D3 CF CD C5 8D SPIRIT AND SOME^M
8958 D0 CF D3 D3 C5 D3 D3 C9 CF CE D3 A0 C6 D2 CF CD 8D POSSESSIONS FROM^M
8969 D4 C8 C5 A0 D6 CF C9 C4 AE A0 C2 C5 8D THE VOID. BE^M
8976 CD CF D2 C5 A0 C3 C1 D2 C5 C6 D5 CC A0 C9 CE 8D MORE CAREFUL IN^M
8986 D4 C8 C5 A0 C6 D5 D4 D5 D2 C5 A1 8D 00 THE FUTURE!^M^@
;; set all players to 'G' and max hit points
8993 A5 0F LDA $0F ; get party size
8995 85 D4 STA $D4 ; select last player
8997 20 2D 08 JSR $082D ; set $FE/$FF vector based on $D4
899A A0 12 LDY #$12 ; set player status to 'G'
899C A9 C7 LDA #$C7 ; .
899E 91 FE STA ($FE),Y ; .
89A0 A0 1A LDY #$1A ; set hit points to max
89A2 B1 FE LDA ($FE),Y ; .
89A4 A0 18 LDY #$18 ; .
89A6 91 FE STA ($FE),Y ; .
89A8 A0 1B LDY #$1B ; .
89AA B1 FE LDA ($FE),Y ; .
89AC A0 19 LDY #$19 ; .
89AE 91 FE STA ($FE),Y ; .
89B0 C6 D4 DEC $D4 ; next player
89B2 D0 E3 BNE $8997 ; loop back if not done
;; set ED11, ED14, ED18-ED1F and ED20-ED2F to 0x00
;; set ED10 and ED13 to 0x02
; set ED2X to 0x00
89B4 A9 00 LDA #$00 ; .
89B6 A2 0F LDX #$0F ; .
89B8 9D 20 ED STA $ED20,X ; .
89BB CA DEX ; .
89BC D0 FA BNE $89B8 ; .
; set ED18-ED1F to 0x00
89BE A2 07 LDX #$07 ; .
89C0 9D 18 ED STA $ED18,X ; .
89C3 CA DEX ; .
89C4 D0 FA BNE $89C0 ; .
; set ED11 and ED14 to 0x00
; set ED10 and ED13 to 0x02
89C6 8D 11 ED STA $ED11 ; .
89C9 8D 14 ED STA $ED14 ; .
89CC A9 02 LDA #$02 ; .
89CE 8D 10 ED STA $ED10 ; .
89D1 8D 13 ED STA $ED13 ; .
89D4 60 RTS ; return
;; wait a few seconds
89D5 A2 0A LDX #$0A ;
89D7 A0 FF LDY #$FF ;
89D9 A9 FF LDA #$FF ;
89DB 38 SEC ;
89DC E9 01 SBC #$01 ;
89DE D0 FB BNE $89DB ;
89E0 88 DEY ;
89E1 D0 F6 BNE $89D9 ;
89E3 CA DEX ;
89E4 D0 F1 BNE $89D7 ;
89E6 60 RTS ;