82-original.s
.setcpu "6502"
player_xpos := $0010
player_ypos := $0011
tile_xpos := $0012
tile_ypos := $0013
map_x := $0014
map_y := $0015
current_location:= $001A
game_mode := $001B
dungeon_level := $001C
player_transport:= $001E
party_size := $001F
dng_direction := $0020
light_duration := $0021
moon_phase_trammel:= $0022
moon_phase_felucca:= $0023
horse_mode := $0024
last_meditation := $0029
ship_hull := $002B
move_counter := $002C
key_buf := $0030
key_buf_len := $0038
charptr := $003D
magic_aura := $0046
aura_duration := $0047
tile_under_player:= $0048
tile_north := $0049
tile_south := $004A
tile_east := $004B
tile_west := $004C
music_volume := $004D
console_xpos := $004E
console_ypos := $004F
diskid := $0050
numdrives := $0051
currdisk_drive1 := $0052
currdisk_drive2 := $0053
currplayer := $0054
hexnum := $0056
bcdnum := $0057
zptmp1 := $005A
reqdisk := $005E
currdrive := $005F
lt_y := $0060
lt_x := $0061
lt_rwflag := $0062
lt_addr_hi := $0063
monster_type := $0066
game_mode_temp := $0068
moongate_tile := $006D
moongate_xpos := $006E
moongate_ypos := $006F
movement_mode := $0074
direction := $0075
ptr2 := $007C
ptr1 := $007E
j_waitkey := $0800
j_player_teleport:= $0803
j_move_east := $0806
j_move_west := $0809
j_move_south := $080C
j_move_north := $080F
j_drawinterface := $0812
j_drawview := $0815
j_update_britannia:= $0818
j_primm_xy := $081E
j_primm := $0821
j_console_out := $0824
j_clearbitmap := $0827
j_mulax := $082A
j_get_stats_ptr := $082D
j_printname := $0830
j_printbcd := $0833
j_drawcursor := $0836
j_drawcursor_xy := $0839
j_drawvert := $083C
j_drawhoriz := $083F
j_request_disk := $0842
j_update_status := $0845
j_blocked_tile := $0848
j_idle := $084B
j_rand := $084E
j_loadsector := $0851
j_playsfx := $0854
j_idle_combat := $0857
j_getnumber := $085A
j_getplayernum := $085D
j_update_wind := $0860
j_animate_view := $0863
j_printdigit := $0866
j_clearstatwindow:= $0869
j_animate_creatures:= $086C
j_centername := $086F
j_print_direction:= $0872
j_clearview := $0875
j_invertview := $0878
j_centerstring := $087B
j_printstring := $087E
j_gettile_bounds:= $0881
j_gettile := $0884
j_gettile_combat:= $088D
j_gettile_town := $0893
j_gettile_dungeon:= $0896
gettile_bounds := $9F00
gettile := $9F26
mul11 := $9F49
gettile_combat := $9F85
gettile_town := $9FAF
gettile_dungeon := $9FCE
j_fileio := $A100
j_readblock := $A103
j_loadtitle := $A106
j_togglesnd := $A109
j_kernalin := $A10C
j_setirqv := $A10F
j_clearkbd := $A112
j_irqhandler := $A115
party_stats := $AA00
game_stats := $AB00
food_hi := $AB10
food_lo := $AB11
food_frac := $AB12
gold := $AB13
mixtures := $AB40
map_status := $AC00
object_xpos := $AC20
object_ypos := $AC40
object_tile := $AC60
monster_xpos := $AD00
monster_ypos := $AD10
monster_hp := $AD40
cbt_monster_type:= $AD50
monster_tile := $AD60
cbt_player_xpos := $AD80
cbt_player_ypos := $AD90
player_tile := $ADA0
missile := $ADFD
missile_xpos := $ADFE
missile_ypos := $ADFF
currmap := $AE00
tempmap := $AE80
music_ctl := $AF20
music_nop := $AF23
bmplineaddr_lo := $E000
bmplineaddr_hi := $E0C0
chrlineaddr_lo := $E180
chrlineaddr_hi := $E198
tile_color := $E1B0
music_init := $EC00
.word $8800
shrine:
lda current_location
sec
sbc #$19
sta shrine_num
tay
lda $AB0D
and rune_mask,y
bne @haverune
jsr j_primm
.byte $8D,$D4,$C8,$CF,$D5,$A0,$C4,$CF
.byte $D3,$D4,$A0,$CE,$CF,$D4,$8D,$C2
.byte $C5,$C1,$D2,$A0,$D4,$C8,$C5,$A0
.byte $D2,$D5,$CE,$C5,$8D,$CF,$C6,$A0
.byte $C5,$CE,$D4,$D2,$D9,$A1,$A0,$C1
.byte $8D,$D3,$D4,$D2,$C1,$CE,$C7,$C5
.byte $A0,$C6,$CF,$D2,$C3,$C5,$8D,$CB
.byte $C5,$C5,$D0,$D3,$A0,$D9,$CF,$D5
.byte $A0,$CF,$D5,$D4,$A1,$8D,$00
jmp exit_shrine
@haverune:
lda #$CC
ldx #$1C
jsr j_fileio
ldx #$7F
@copymap:
lda tempmap,x
sta currmap,x
dex
bpl @copymap
lda #$FF
sta game_mode
jsr j_idle
lda #$03
jsr music_ctl
jsr j_primm
.byte $8D,$D9,$CF,$D5,$A0,$C5,$CE,$D4
.byte $C5,$D2,$A0,$D4,$C8,$C5,$8D,$C1
.byte $CE,$C3,$C9,$C5,$CE,$D4,$A0,$D3
.byte $C8,$D2,$C9,$CE,$C5,$8D,$C1,$CE
.byte $C4,$A0,$D3,$C9,$D4,$A0,$C2,$C5
.byte $C6,$CF,$D2,$C5,$8D,$D4,$C8,$C5
.byte $A0,$C1,$CC,$D4,$C1,$D2,$AE,$AE
.byte $AE,$8D,$8D,$D5,$D0,$CF,$CE,$A0
.byte $D7,$C8,$C1,$D4,$A0,$D6,$C9,$D2
.byte $D4,$D5,$C5,$8D,$C4,$CF,$D3,$D4
.byte $A0,$D4,$C8,$CF,$D5,$8D,$CD,$C5
.byte $C4,$C9,$D4,$C1,$D4,$C5,$BF,$8D
.byte $00
lda #$00
sta num_cycles
jsr get_string
@askcycles:
jsr j_primm
.byte $8D,$C6,$CF,$D2,$A0,$C8,$CF,$D7
.byte $A0,$CD,$C1,$CE,$D9,$8D,$C3,$D9
.byte $C3,$CC,$C5,$D3,$A0,$A8,$B0,$AD
.byte $B3,$A9,$BA,$00
jsr get_number
cmp #$04
bcs @askcycles
sta num_cycles
sta cycle_ctr
bne @meditate
jmp no_focus
@meditate:
lda #$00
sta unused
jsr compare_string
cmp shrine_num
beq @virtue_shrine_match
jmp no_focus
@virtue_shrine_match:
lda move_counter+2
cmp last_meditation
bne @begin
jmp still_weary
@begin:
sta last_meditation
jsr j_primm
.byte $8D,$C2,$C5,$C7,$C9,$CE,$A0,$CD
.byte $C5,$C4,$C9,$D4,$C1,$D4,$C9,$CF
.byte $CE,$8D,$00
@slowdots:
lda #$10
sta $70
@print:
jsr delay
lda #$AE
jsr j_console_out
dec $70
bne @print
bit $C010
lda #$00
sta key_buf_len
jsr j_primm
.byte $8D,$CD,$C1,$CE,$D4,$D2,$C1,$00
jsr get_string
jsr compare_string
sec
sbc #$08
cmp shrine_num
beq @correctmantra
jmp @wrongmantra
@correctmantra:
dec cycle_ctr
bne @slowdots
jmp @checkresult
@wrongmantra:
jsr j_primm
.byte $8D,$D4,$C8,$CF,$D5,$A0,$C1,$D2
.byte $D4,$A0,$CE,$CF,$D4,$8D,$C1,$C2
.byte $CC,$C5,$A0,$D4,$CF,$A0,$C6,$CF
.byte $C3,$D5,$D3,$8D,$D4,$C8,$D9,$A0
.byte $D4,$C8,$CF,$D5,$C7,$C8,$D4,$D3
.byte $8D,$D7,$C9,$D4,$C8,$A0,$D4,$C8
.byte $C1,$D4,$8D,$CD,$C1,$CE,$D4,$D2
.byte $C1,$A1,$8D,$00
ldy #$06
lda #$03
jsr punish_player
jmp exit_shrine
@checkresult:
lda num_cycles
cmp #$03
bne @vision
ldy shrine_num
lda game_stats,y
cmp #$99
bne @vision
jmp partial_avatar
@vision:
jsr j_primm
.byte $8D,$D4,$C8,$D9,$A0,$D4,$C8,$CF
.byte $D5,$C7,$C8,$D4,$D3,$8D,$C1,$D2
.byte $C5,$A0,$D0,$D5,$D2,$C5,$AC,$8D
.byte $D4,$C8,$CF,$D5,$A0,$C1,$D2,$D4
.byte $A0,$C7,$D2,$C1,$CE,$D4,$C5,$C4
.byte $8D,$C1,$A0,$D6,$C9,$D3,$C9,$CF
.byte $CE,$A1,$8D,$00
ldy #$06
lda num_cycles
asl a
adc num_cycles
jsr increase_virtue
jsr j_waitkey
lda #$8D
jsr j_console_out
ldy shrine_num
lda shrine_msg_idx,y
clc
ldy num_cycles
adc shrine_msg_per_cycle,y
clc
adc #$01
jsr print_hint
jsr j_waitkey
exit_shrine:
lda #$8D
jsr j_console_out
lda #$00
sta current_location
lda #$01
sta game_mode
jsr j_idle
rts
ldx #$0A
: jsr @delay
dex
bne :-
rts
delay:
ldx #$05
: jsr @delay
dex
bne :-
rts
@delay:
ldy #$FF
: lda #$FF
: sec
sbc #$01
bne :-
dey
bne :--
jsr j_clearkbd
rts
no_focus:
jsr j_primm
.byte $8D,$D4,$C8,$CF,$D5,$A0,$C1,$D2
.byte $D4,$A0,$D5,$CE,$C1,$C2,$CC,$C5
.byte $8D,$D4,$CF,$A0,$C6,$CF,$C3,$D5
.byte $D3,$A0,$D4,$C8,$D9,$8D,$D4,$C8
.byte $CF,$D5,$C7,$C8,$D4,$D3,$A0,$CF
.byte $CE,$8D,$D4,$C8,$C9,$D3,$A0,$D3
.byte $D5,$C2,$CA,$C5,$C3,$D4,$A1,$8D
.byte $00
jsr j_waitkey
jmp exit_shrine
still_weary:
jsr j_primm
.byte $8D,$D4,$C8,$D9,$A0,$CD,$C9,$CE
.byte $C4,$A0,$C9,$D3,$8D,$D3,$D4,$C9
.byte $CC,$CC,$A0,$D7,$C5,$C1,$D2,$D9
.byte $8D,$C6,$D2,$CF,$CD,$A0,$D4,$C8
.byte $D9,$A0,$CC,$C1,$D3,$D4,$8D,$CD
.byte $C5,$C4,$C9,$D4,$C1,$D4,$C9,$CF
.byte $CE,$A1,$8D,$00
jsr j_waitkey
jmp exit_shrine
increase_virtue:
sta $59
sed
clc
lda game_stats,y
beq @nooverflow
adc $59
bcc @nooverflow
lda #$99
@nooverflow:
sta game_stats,y
cld
rts
punish_player:
sta zptmp1
sty $59
lda game_stats,y
beq @partial_avatar
@subtract:
sed
sec
sbc zptmp1
beq :+
bcs @positive
: lda #$01
@positive:
sta game_stats,y
cld
rts
@partial_avatar:
jsr j_primm
.byte $8D,$D4,$C8,$CF,$D5,$A0,$C8,$C1
.byte $D3,$D4,$A0,$CC,$CF,$D3,$D4,$8D
.byte $C1,$CE,$A0,$C5,$C9,$C7,$C8,$D4
.byte $C8,$A1,$8D,$00
ldy $59
lda #$99
jmp @subtract
partial_avatar:
jsr j_primm
.byte $8D,$D4,$C8,$CF,$D5,$A0,$C8,$C1
.byte $D3,$D4,$8D,$C1,$C3,$C8,$C9,$C5
.byte $D6,$C5,$C4,$A0,$D0,$C1,$D2,$D4
.byte $C9,$C1,$CC,$8D,$C1,$D6,$C1,$D4
.byte $C1,$D2,$C8,$CF,$CF,$C4,$A0,$C9
.byte $CE,$8D,$D4,$C8,$C5,$A0,$D6,$C9
.byte $D2,$D4,$D5,$C5,$A0,$CF,$C6,$8D
.byte $00
lda #$97
clc
adc shrine_num
jsr j_printstring
jsr j_invertview
ldx #$FF
lda #$09
jsr j_playsfx
jsr j_invertview
lda #$8D
jsr j_console_out
ldy shrine_num
lda #$00
sta game_stats,y
jsr j_waitkey
jsr j_primm
.byte $8D,$D4,$C8,$CF,$D5,$A0,$C1,$D2
.byte $D4,$A0,$C7,$D2,$C1,$CE,$D4,$C5
.byte $C4,$8D,$C1,$A0,$D6,$C9,$D3,$C9
.byte $CF,$CE,$A1,$8D,$00
lda #$00
sta game_mode
lda shrine_num
jsr draw_rune
jsr j_waitkey
jmp exit_shrine
get_number:
jsr j_waitkey
beq get_number
sec
sbc #$B0
cmp #$0A
bcc @ok
lda #$00
@ok:
pha
jsr j_printdigit
lda #$8D
jsr j_console_out
pla
rts
shrine_num:
.byte $00
num_cycles:
.byte $00
cycle_ctr:
.byte $00
unused:
.byte $00
shrine_msg_idx:
.byte $00,$03,$06,$09,$0C,$0F,$12,$15
shrine_msg_per_cycle:
.byte $18,$00,$00,$00,$01,$01,$01,$02
.byte $02,$02
rune_mask:
.byte $80,$40,$20,$10,$08,$04,$02,$01
get_string:
lda #$BF
jsr j_console_out
lda #$00
sta $6A
@waitkey:
jsr j_waitkey
beq @timeout
@checkkey:
cmp #$8D
beq @done
cmp #$94
beq @del
cmp #$A0
bcc @waitkey
ldx $6A
sta $AF00,x
jsr j_console_out
inc $6A
lda $6A
cmp #$0F
bcc @waitkey
bcs @done
@del:
lda $6A
beq @waitkey
dec $6A
dec console_xpos
lda #$A0
jsr j_console_out
dec console_xpos
jmp @waitkey
@timeout:
lda num_cycles
beq @checkkey
@done:
ldx $6A
lda #$A0
@clearend:
sta $AF00,x
inx
cpx #$06
bcc @clearend
lda #$8D
jsr j_console_out
rts
compare_string:
lda #$0F
sta $6A
@nextstring:
lda $6A
asl a
asl a
tay
ldx #$00
@compare:
lda virtues_and_mantras,y
cmp $AF00,x
bne @differ
iny
inx
cpx #$04
bcc @compare
lda $6A
rts
@differ:
dec $6A
bpl @nextstring
lda $6A
rts
virtues_and_mantras:
.byte $C8,$CF,$CE,$C5,$C3,$CF,$CD,$D0
.byte $D6,$C1,$CC,$CF,$CA,$D5,$D3,$D4
.byte $D3,$C1,$C3,$D2,$C8,$CF,$CE,$CF
.byte $D3,$D0,$C9,$D2,$C8,$D5,$CD,$C9
.byte $C1,$C8,$CD,$A0,$CD,$D5,$A0,$A0
.byte $D2,$C1,$A0,$A0,$C2,$C5,$C8,$A0
.byte $C3,$C1,$C8,$A0,$D3,$D5,$CD,$CD
.byte $CF,$CD,$A0,$A0,$CC,$D5,$CD,$A0
print_hint:
tay
lda #$FA
sta ptr1
lda #$8C
sta ptr1+1
ldx #$00
@checknext:
lda (ptr1,x)
beq @possiblestring
@wrongstring:
jsr @incptr
jmp @checknext
@possiblestring:
dey
beq @gotstring
jmp @wrongstring
@gotstring:
jsr @incptr
ldx #$00
lda (ptr1,x)
beq @done
jsr j_console_out
jmp @gotstring
@done:
rts
@incptr:
inc ptr1
bne :+
inc ptr1+1
: rts
hint_honesty_0:
.byte $00,$D4,$C1,$CB,$C5,$A0,$CE,$CF
.byte $D4,$A0,$D4,$C8,$C5,$8D,$C7,$CF
.byte $CC,$C4,$A0,$CF,$C6,$A0,$CF,$D4
.byte $C8,$C5,$D2,$D3,$8D,$C6,$CF,$D5
.byte $CE,$C4,$A0,$C9,$CE,$A0,$D4,$CF
.byte $D7,$CE,$D3,$8D,$C1,$CE,$C4,$A0
.byte $C3,$C1,$D3,$D4,$CC,$C5,$D3,$A0
.byte $C6,$CF,$D2,$8D,$D9,$CF,$D5,$D2
.byte $D3,$A0,$C9,$D4,$A0,$C9,$D3,$A0
.byte $CE,$CF,$D4,$A1,$8D
hint_honesty_1:
.byte $00,$C3,$C8,$C5,$C1,$D4,$A0,$CE
.byte $CF,$D4,$A0,$D4,$C8,$C5,$8D,$CD
.byte $C5,$D2,$C3,$C8,$C1,$CE,$D4,$D3
.byte $A0,$C1,$CE,$C4,$8D,$D0,$C5,$C4
.byte $C4,$CC,$C5,$D2,$D3,$A0,$C6,$CF
.byte $D2,$A0,$D4,$C9,$D3,$8D,$C1,$CE
.byte $A0,$C5,$D6,$C9,$CC,$A0,$D4,$C8
.byte $C9,$CE,$C7,$8D,$D4,$CF,$A0,$C4
.byte $CF,$A1,$8D
hint_honesty_2:
.byte $00,$D3,$C5,$C3,$CF,$CE,$C4,$AC
.byte $A0,$D2,$C5,$C1,$C4,$A0,$D4,$C8
.byte $C5,$8D,$C2,$CF,$CF,$CB,$A0,$CF
.byte $C6,$A0,$D4,$D2,$D5,$D4,$C8,$A0
.byte $C1,$D4,$8D,$D4,$C8,$C5,$A0,$C5
.byte $CE,$D4,$D2,$C1,$CE,$C3,$C5,$A0
.byte $D4,$CF,$8D,$D4,$C8,$C5,$A0,$C7
.byte $D2,$C5,$C1,$D4,$8D,$D3,$D4,$D9
.byte $C7,$C9,$C1,$CE,$A0,$C1,$C2,$D9
.byte $D3,$D3,$A1,$8D
hint_compassion_0:
.byte $00,$CB,$C9,$CC,$CC,$A0,$CE,$CF
.byte $D4,$A0,$D4,$C8,$C5,$8D,$CE,$CF
.byte $CE,$AD,$C5,$D6,$C9,$CC,$A0,$C2
.byte $C5,$C1,$D3,$D4,$D3,$8D,$CF,$C6
.byte $A0,$D4,$C8,$C5,$A0,$CC,$C1,$CE
.byte $C4,$AC,$A0,$C1,$CE,$C4,$8D,$C4
.byte $CF,$A0,$CE,$CF,$D4,$A0,$C1,$D4
.byte $D4,$C1,$C3,$CB,$8D,$D4,$C8,$C5
.byte $A0,$C6,$C1,$C9,$D2,$A0,$D0,$C5
.byte $CF,$D0,$CC,$C5,$A1,$8D
hint_compassion_1:
.byte $00,$C7,$C9,$D6,$C5,$A0,$CF,$C6
.byte $A0,$D4,$C8,$D9,$8D,$D0,$D5,$D2
.byte $D3,$C5,$A0,$D4,$CF,$A0,$D4,$C8
.byte $CF,$D3,$C5,$8D,$D7,$C8,$CF,$A0
.byte $C2,$C5,$C7,$A0,$C1,$CE,$C4,$A0
.byte $D4,$C8,$D9,$8D,$C4,$C5,$C5,$C4
.byte $A0,$D3,$C8,$C1,$CC,$CC,$A0,$CE
.byte $CF,$D4,$8D,$C2,$C5,$A0,$C6,$CF
.byte $D2,$C7,$CF,$D4,$D4,$C5,$CE,$A1
.byte $8D
hint_compassion_2:
.byte $00,$D4,$C8,$C9,$D2,$C4,$AC,$A0
.byte $CC,$C9,$C7,$C8,$D4,$A0,$D4,$C8
.byte $C5,$8D,$C3,$C1,$CE,$C4,$CC,$C5
.byte $A0,$CF,$C6,$A0,$CC,$CF,$D6,$C5
.byte $8D,$C1,$D4,$A0,$D4,$C8,$C5,$A0
.byte $C5,$CE,$D4,$D2,$C1,$CE,$C3,$C5
.byte $8D,$D4,$CF,$A0,$D4,$C8,$C5,$A0
.byte $C7,$D2,$C5,$C1,$D4,$8D,$D3,$D4
.byte $D9,$C7,$C9,$C1,$CE,$A0,$C1,$C2
.byte $D9,$D3,$D3,$A1,$8D
hint_valor_0:
.byte $00,$D6,$C9,$C3,$D4,$CF,$D2,$C9
.byte $C5,$D3,$A0,$D3,$C3,$CF,$D2,$C5
.byte $C4,$8D,$CF,$D6,$C5,$D2,$A0,$C5
.byte $D6,$C9,$CC,$8D,$C3,$D2,$C5,$C1
.byte $D4,$D5,$D2,$C5,$D3,$A0,$C8,$C5
.byte $CC,$D0,$8D,$D4,$CF,$A0,$C2,$D5
.byte $C9,$CC,$C4,$A0,$C1,$8D,$D6,$C1
.byte $CC,$CF,$D2,$CF,$D5,$D3,$A0,$D3
.byte $CF,$D5,$CC,$A1,$8D
hint_valor_1:
.byte $00,$D4,$CF,$A0,$C6,$CC,$C5,$C5
.byte $A0,$C6,$D2,$CF,$CD,$8D,$C2,$C1
.byte $D4,$D4,$CC,$C5,$A0,$D7,$C9,$D4
.byte $C8,$A0,$CC,$C5,$D3,$D3,$8D,$D4
.byte $C8,$C1,$CE,$A0,$C7,$D2,$C9,$C5
.byte $D6,$CF,$D5,$D3,$8D,$D7,$CF,$D5
.byte $CE,$C4,$D3,$A0,$CF,$C6,$D4,$C5
.byte $CE,$8D,$D3,$C8,$CF,$D7,$D3,$A0
.byte $C1,$A0,$C3,$CF,$D7,$C1,$D2,$C4
.byte $A1,$8D
hint_valor_2:
.byte $00,$C6,$C9,$D2,$D3,$D4,$AC,$A0
.byte $D2,$C9,$CE,$C7,$A0,$D4,$C8,$C5
.byte $8D,$C2,$C5,$CC,$CC,$A0,$CF,$C6
.byte $A0,$C3,$CF,$D5,$D2,$C1,$C7,$C5
.byte $8D,$C1,$D4,$A0,$D4,$C8,$C5,$A0
.byte $C5,$CE,$D4,$D2,$C1,$CE,$C3,$C5
.byte $8D,$D4,$CF,$A0,$D4,$C8,$C5,$A0
.byte $C7,$D2,$C5,$C1,$D4,$8D,$D3,$D4
.byte $D9,$C7,$C9,$C1,$CE,$A0,$C1,$C2
.byte $D9,$D3,$D3,$A1,$8D
hint_justice_0:
.byte $00,$D4,$CF,$A0,$D4,$C1,$CB,$C5
.byte $A0,$D4,$C8,$C5,$A0,$C7,$CF,$CC
.byte $C4,$8D,$CF,$C6,$A0,$CF,$D4,$C8
.byte $C5,$D2,$D3,$A0,$C9,$D3,$8D,$C9
.byte $CE,$CA,$D5,$D3,$D4,$C9,$C3,$C5
.byte $A0,$CE,$CF,$D4,$8D,$D3,$CF,$CF
.byte $CE,$A0,$C6,$CF,$D2,$C7,$CF,$D4
.byte $D4,$C5,$CE,$AC,$8D,$D4,$C1,$CB
.byte $C5,$A0,$CF,$CE,$CC,$D9,$A0,$D4
.byte $C8,$D9,$8D,$C4,$D5,$C5,$A1,$8D
hint_justice_1:
.byte $00,$C1,$D4,$D4,$C1,$C3,$CB,$A0
.byte $CE,$CF,$D4,$A0,$C1,$8D,$D0,$C5
.byte $C1,$C3,$C5,$C6,$D5,$CC,$A0,$C3
.byte $C9,$D4,$C9,$DA,$C5,$CE,$8D,$C6
.byte $CF,$D2,$A0,$D4,$C8,$C1,$D4,$A0
.byte $C1,$C3,$D4,$C9,$CF,$CE,$8D,$C4
.byte $C5,$D3,$C5,$D2,$D6,$C5,$D3,$A0
.byte $D3,$D4,$D2,$C9,$C3,$D4,$8D,$D0
.byte $D5,$CE,$C9,$D3,$C8,$CD,$C5,$CE
.byte $D4,$A1,$8D
hint_justice_2:
.byte $00,$CB,$C9,$CC,$CC,$A0,$CE,$CF
.byte $D4,$A0,$C1,$8D,$CE,$CF,$CE,$AD
.byte $C5,$D6,$C9,$CC,$A0,$C2,$C5,$C1
.byte $D3,$D4,$8D,$C6,$CF,$D2,$A0,$D4
.byte $C8,$C5,$D9,$A0,$C4,$C5,$D3,$C5
.byte $D2,$D6,$C5,$8D,$CE,$CF,$D4,$A0
.byte $C4,$C5,$C1,$D4,$C8,$A0,$C5,$D6
.byte $C5,$CE,$8D,$C9,$C6,$A0,$C9,$CE
.byte $A0,$C8,$D5,$CE,$C7,$C5,$D2,$8D
.byte $D4,$C8,$C5,$D9,$A0,$C1,$D4,$D4
.byte $C1,$C3,$CB,$8D,$D4,$C8,$C5,$C5
.byte $A1,$8D
hint_sacrifice_0:
.byte $00,$D4,$CF,$A0,$C7,$C9,$D6,$C5
.byte $A0,$D4,$C8,$D9,$A0,$CC,$C1,$D3
.byte $D4,$8D,$C7,$CF,$CC,$C4,$A0,$D0
.byte $C9,$C5,$C3,$C5,$A0,$D5,$CE,$D4
.byte $CF,$8D,$D4,$C8,$C5,$A0,$CE,$C5
.byte $C5,$C4,$D9,$AC,$A0,$D3,$C8,$CF
.byte $D7,$D3,$8D,$C7,$CF,$CF,$C4,$A0
.byte $CD,$C5,$C1,$D3,$D5,$D2,$C5,$A0
.byte $CF,$C6,$8D,$D3,$C5,$CC,$C6,$AD
.byte $D3,$C1,$C3,$D2,$C9,$C6,$C9,$C3
.byte $C5,$A1,$8D
hint_sacrifice_1:
.byte $00,$C6,$CF,$D2,$A0,$D4,$C8,$C5
.byte $C5,$A0,$D4,$CF,$A0,$C6,$CC,$C5
.byte $C5,$8D,$C1,$CE,$C4,$A0,$CC,$C5
.byte $C1,$D6,$C5,$A0,$D4,$C8,$D9,$8D
.byte $C3,$CF,$CD,$D0,$C1,$CE,$C9,$CF
.byte $CE,$D3,$A0,$C9,$D3,$A0,$C1,$8D
.byte $D3,$C5,$CC,$C6,$D3,$C5,$C5,$CB
.byte $C9,$CE,$C7,$A0,$C1,$C3,$D4,$C9
.byte $CF,$CE,$8D,$D4,$CF,$A0,$C2,$C5
.byte $A0,$C1,$D6,$C9,$CF,$C4,$C5,$C4
.byte $A1,$8D
hint_sacrifice_2:
.byte $00,$D4,$CF,$A0,$C7,$C9,$D6,$C5
.byte $A0,$CF,$C6,$A0,$D4,$C8,$D9,$8D
.byte $CC,$C9,$C6,$C5,$D3,$A0,$C2,$CC
.byte $CF,$CF,$C4,$A0,$D3,$CF,$8D,$D4
.byte $C8,$C1,$D4,$A0,$CF,$D4,$C8,$C5
.byte $D2,$D3,$A0,$CD,$C1,$D9,$8D,$CC
.byte $C9,$D6,$C5,$A0,$C9,$D3,$A0,$C1
.byte $A0,$D6,$C9,$D2,$D4,$D5,$C5,$8D
.byte $CF,$C6,$A0,$C7,$D2,$C5,$C1,$D4
.byte $A0,$D0,$D2,$C1,$C9,$D3,$C5,$A1
.byte $8D
hint_honor_0:
.byte $00,$D4,$C1,$CB,$C5,$A0,$CE,$CF
.byte $D4,$A0,$D4,$C8,$C5,$8D,$C7,$CF
.byte $CC,$C4,$A0,$CF,$C6,$A0,$CF,$D4
.byte $C8,$C5,$D2,$D3,$8D,$C6,$CF,$D2
.byte $A0,$D4,$C8,$C9,$D3,$A0,$D3,$C8
.byte $C1,$CC,$CC,$8D,$C2,$D2,$C9,$CE
.byte $C7,$A0,$C4,$C9,$D3,$C8,$CF,$CE
.byte $CF,$D2,$8D,$D5,$D0,$CF,$CE,$A0
.byte $D4,$C8,$C5,$C5,$A1,$8D
hint_honor_1:
.byte $00,$D4,$CF,$A0,$D3,$D4,$D2,$C9
.byte $CB,$C5,$A0,$C6,$C9,$D2,$D3,$D4
.byte $8D,$C1,$A0,$CE,$CF,$CE,$AD,$C5
.byte $D6,$C9,$CC,$A0,$C2,$C5,$C9,$CE
.byte $C7,$8D,$C9,$D3,$A0,$C2,$D9,$A0
.byte $CE,$CF,$A0,$CD,$C5,$C1,$CE,$D3
.byte $8D,$C1,$CE,$A0,$C8,$CF,$CE,$CF
.byte $D2,$C1,$C2,$CC,$C5,$8D,$C4,$C5
.byte $C5,$C4,$A1,$8D
hint_honor_2:
.byte $00,$D3,$C5,$C5,$CB,$A0,$D9,$C5
.byte $A0,$D4,$CF,$A0,$D3,$CF,$CC,$D6
.byte $C5,$8D,$D4,$C8,$C5,$A0,$CD,$C1
.byte $CE,$D9,$A0,$D1,$D5,$C5,$D3,$D4
.byte $D3,$8D,$C2,$C5,$C6,$CF,$D2,$C5
.byte $A0,$D4,$C8,$C5,$C5,$AC,$A0,$C1
.byte $CE,$C4,$8D,$C8,$CF,$CE,$CF,$D2
.byte $A0,$D3,$C8,$C1,$CC,$CC,$A0,$C2
.byte $C5,$8D,$C1,$A0,$D2,$C5,$D7,$C1
.byte $D2,$C4,$A1,$8D
hint_spirituality_0:
.byte $00,$D3,$C5,$C5,$CB,$A0,$D9,$C5
.byte $A0,$D4,$CF,$A0,$CB,$CE,$CF,$D7
.byte $8D,$D4,$C8,$D9,$D3,$C5,$CC,$C6
.byte $AC,$A0,$D6,$C9,$D3,$C9,$D4,$8D
.byte $D4,$C8,$C5,$A0,$D3,$C5,$C5,$D2
.byte $A0,$CF,$C6,$D4,$C5,$CE,$8D,$C6
.byte $CF,$D2,$A0,$C8,$C5,$A0,$C3,$C1
.byte $CE,$8D,$D3,$C5,$C5,$A0,$C9,$CE
.byte $D4,$CF,$A0,$D4,$C8,$D9,$8D,$C9
.byte $CE,$CE,$C5,$D2,$A0,$C2,$C5,$C9
.byte $CE,$C7,$A1,$8D
hint_spirituality_1:
.byte $00,$CD,$C5,$C4,$C9,$D4,$C1,$D4
.byte $C9,$CF,$CE,$A0,$CC,$C5,$C1,$C4
.byte $D3,$8D,$D4,$CF,$A0,$C5,$CE,$CC
.byte $C9,$C7,$C8,$D4,$C5,$CE,$CD,$C5
.byte $CE,$D4,$8D,$D3,$C5,$C5,$CB,$A0
.byte $D9,$C5,$A0,$C1,$CC,$CC,$8D,$D7
.byte $C9,$D3,$C4,$CF,$CD,$A0,$C1,$CE
.byte $C4,$8D,$CB,$CE,$CF,$D7,$CC,$C5
.byte $C4,$C7,$C5,$A1,$8D
hint_spirituality_2:
.byte $00,$C9,$C6,$A0,$D4,$C8,$CF,$D5
.byte $A0,$C4,$CF,$D3,$D4,$8D,$D3,$C5
.byte $C5,$CB,$A0,$D4,$C8,$C5,$A0,$D7
.byte $C8,$C9,$D4,$C5,$8D,$D3,$D4,$CF
.byte $CE,$C5,$AC,$A0,$D3,$C5,$C1,$D2
.byte $C3,$C8,$A0,$D9,$C5,$8D,$CE,$CF
.byte $D4,$A0,$D5,$CE,$C4,$C5,$D2,$A0
.byte $D4,$C8,$C5,$8D,$C7,$D2,$CF,$D5
.byte $CE,$C4,$AC,$A0,$C2,$D5,$D4,$A0
.byte $C9,$CE,$8D,$D4,$C8,$C5,$A0,$D3
.byte $CB,$D9,$A0,$CE,$C5,$C1,$D2,$8D
.byte $D3,$C5,$D2,$D0,$C5,$CE,$D4,$D3
.byte $A0,$D3,$D0,$C9,$CE,$C5,$A1,$8D
hint_humility_0:
.byte $00,$C3,$CC,$C1,$C9,$CD,$A0,$CE
.byte $CF,$D4,$A0,$D4,$CF,$A0,$C2,$C5
.byte $8D,$D4,$C8,$C1,$D4,$A0,$D7,$C8
.byte $C9,$C3,$C8,$A0,$D4,$C8,$CF,$D5
.byte $8D,$C1,$D2,$D4,$A0,$CE,$CF,$D4
.byte $AC,$A0,$C8,$D5,$CD,$C2,$CC,$C5
.byte $8D,$C1,$C3,$D4,$C9,$CF,$CE,$D3
.byte $A0,$D3,$D0,$C5,$C1,$CB,$8D,$D7
.byte $C5,$CC,$CC,$A0,$D4,$C8,$C5,$C5
.byte $A1,$8D
hint_humility_1:
.byte $00,$D3,$D4,$D2,$C9,$D6,$C5,$A0
.byte $CE,$CF,$D4,$A0,$D4,$CF,$8D,$D7
.byte $C9,$C5,$CC,$C4,$A0,$D4,$C8,$C5
.byte $A0,$C7,$D2,$C5,$C1,$D4,$8D,$C6
.byte $CF,$D2,$C3,$C5,$A0,$CF,$C6,$A0
.byte $C5,$D6,$C9,$CC,$8D,$C6,$CF,$D2
.byte $A0,$C9,$D4,$D3,$A0,$D0,$CF,$D7
.byte $C5,$D2,$8D,$D7,$C9,$CC,$CC,$A0
.byte $CF,$D6,$C5,$D2,$C3,$CF,$CD,$C5
.byte $8D,$D4,$C8,$C5,$C5,$A1,$8D
hint_humility_2:
.byte $00,$C9,$C6,$A0,$D4,$C8,$CF,$D5
.byte $A0,$C4,$CF,$D3,$D4,$8D,$D3,$C5
.byte $C5,$CB,$A0,$D4,$C8,$C5,$A0,$C2
.byte $CC,$C1,$C3,$CB,$8D,$D3,$D4,$CF
.byte $CE,$C5,$AC,$A0,$D3,$C5,$C1,$D2
.byte $C3,$C8,$A0,$D9,$C5,$8D,$C1,$D4
.byte $A0,$D4,$C8,$C5,$A0,$D4,$C9,$CD
.byte $C5,$A0,$C1,$CE,$C4,$8D,$D0,$CC
.byte $C1,$C3,$C5,$A0,$CF,$C6,$A0,$D4
.byte $C8,$C5,$8D,$C7,$C1,$D4,$C5,$A0
.byte $CF,$CE,$A0,$D4,$C8,$C5,$8D,$C4
.byte $C1,$D2,$CB,$C5,$D3,$D4,$A0,$CF
.byte $C6,$A0,$C1,$CC,$CC,$8D,$CE,$C9
.byte $C7,$C8,$D4,$D3,$A1,$8D
hint_end:
.byte $00
draw_rune:
pha
jsr swap_buf
jsr j_clearview
jsr clear_view_colors
pla
tax
lda infinity,x
asl a
tax
lda rune_addr,x
sta key_buf
lda rune_addr+1,x
sta key_buf+1
ldx #$50
lda bmplineaddr_lo,x
clc
adc #$48
sta key_buf+2
lda bmplineaddr_hi,x
adc #$00
sta key_buf+3
lda #$04
sta row_ctr
@nextline:
ldy #$00
: lda (key_buf),y
sta (key_buf+2),y
iny
cpy #$18
bne :-
lda key_buf
clc
adc #$18
sta key_buf
lda key_buf+1
adc #$00
sta key_buf+1
lda key_buf+2
clc
adc #$40
sta key_buf+2
lda key_buf+3
adc #$01
sta key_buf+3
dec row_ctr
bne @nextline
jsr swap_buf
rts
clear_view_colors:
lda #$29
sta key_buf
lda #$04
sta key_buf+1
ldx #$16
@nextline:
ldy #$00
@nextchar:
lda #$10
sta (key_buf),y
iny
cpy #$16
bne @nextchar
lda key_buf
clc
adc #$28
sta key_buf
bcc :+
inc key_buf+1
: dex
bne @nextline
rts
swap_buf:
ldx #$07
: lda key_buf,x
tay
lda key_buf_tmp,x
sta key_buf,x
tya
sta key_buf_tmp,x
dex
bpl :-
rts
key_buf_tmp:
.byte $00,$00,$00,$00,$00,$00,$00,$00
row_ctr:
.byte $00
infinity:
.byte $00,$01,$02,$00,$01,$00,$03,$04
rune_addr:
.addr rune_i
.addr rune_n
.addr rune_f
.addr rune_t
.addr rune_y
rune_i:
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $0E,$3E,$3C,$1C,$1C,$1C,$1C,$1C
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $1C,$1C,$1C,$1C,$1C,$1C,$1C,$1C
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $1C,$1C,$1C,$1C,$1C,$1C,$1C,$1C
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $1C,$1E,$3E,$38,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
rune_n:
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $0E,$3E,$3C,$1C,$1C,$1C,$1C,$1C
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$03,$07,$0E,$0C,$0C
.byte $1C,$1C,$1C,$DC,$FC,$7C,$3C,$1E
.byte $00,$00,$00,$00,$70,$38,$18,$18
.byte $0E,$07,$00,$00,$00,$00,$00,$00
.byte $1F,$1F,$1D,$1C,$1C,$1C,$1C,$1C
.byte $38,$F0,$E0,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $1C,$1E,$3E,$38,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
rune_f:
.byte $03,$0F,$0F,$07,$07,$07,$07,$07
.byte $9E,$9E,$0C,$0C,$0C,$1C,$F8,$F0
.byte $78,$78,$30,$30,$30,$30,$30,$60
.byte $07,$07,$07,$07,$07,$07,$07,$07
.byte $00,$00,$03,$FF,$FC,$00,$00,$00
.byte $60,$E0,$C0,$80,$00,$00,$00,$00
.byte $07,$07,$07,$07,$07,$07,$07,$07
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $07,$07,$0F,$0E,$00,$00,$00,$00
.byte $00,$80,$80,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
rune_t:
.byte $00,$00,$01,$07,$1F,$1C,$00,$00
.byte $1C,$7F,$FF,$DD,$1C,$1C,$1C,$1C
.byte $00,$00,$C0,$F0,$7C,$1C,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $1C,$1C,$1C,$1C,$1C,$1C,$1C,$1C
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $1C,$1C,$1C,$1C,$1C,$1C,$1C,$1C
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
.byte $1C,$1E,$3E,$38,$00,$00,$00,$00
.byte $00,$00,$00,$00,$00,$00,$00,$00
rune_y:
.byte $E0,$FC,$7F,$77,$70,$70,$70,$70
.byte $00,$00,$80,$F0,$FE,$1F,$03,$00
.byte $00,$00,$00,$00,$00,$C0,$F8,$7F
.byte $70,$70,$70,$70,$70,$70,$7F,$7F
.byte $00,$00,$00,$00,$00,$00,$FF,$FF
.byte $0F,$0E,$0E,$0E,$0E,$0E,$FE,$FE
.byte $70,$70,$70,$70,$70,$70,$70,$70
.byte $30,$30,$30,$30,$30,$30,$30,$30
.byte $0E,$0E,$0E,$0E,$0E,$0E,$0E,$0E
.byte $70,$78,$F8,$E0,$00,$00,$00,$00
.byte $30,$38,$78,$70,$00,$00,$00,$00
.byte $0E,$0F,$1F,$1C,$00,$00,$00,$00
lda #$00
rts
jsr j_primm
.byte $C4,$C9,$D2,$C5,$C3,$D4,$C9,$CF
.byte $CE,$AD
82-original.html; generated on Thu Oct 5 16:16:55 2006 by ca65html
uz@cc65.org