home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Loadstar 159
/
159.d81
/
logic.s
< prev
next >
Wrap
Text File
|
2022-08-26
|
10KB
|
816 lines
.org 16384
.mem
;.obj "logic 04"
zp = 97
zpc = 99
zpe = 101
zp1 = 247
chrout = $ffd2
getin = $ffe4
plot = $fff0
curpos = 211
lda #0
sta 53281
sta 53280
lda #1
sta mflag
jsr startm
start =*
jsr titlescreen
- jsr getin
sta temp
jsr checkm
lda temp
beq -
cmp #49
bne +
jmp begin
+ cmp #50
bne +
jmp instructions
+ cmp #51
bne +
jsr toggle
jmp -
+ cmp #52
bne -
lda #23
sta 53272
jsr stopm
rts ; rem loadstar
begin =*
lda <1632
sta zpc
lda >1632
sta zpc+1
jsr screen
lda #0
sta colm
sta row
sta clue
input =*
ldy #0
lda (zpc),y
eor #128
sta (zpc),y
jsr delay
lda (zpc),y
eor #128
sta (zpc),y
jsr delay
jsr checkm
jsr getin
beq input
cmp #137
bne +
jmp soln
+ cmp #135
bne +
jmp toggleclues
+ cmp #133
bne +
jmp start
+ cmp #136
bne +
jmp hint
+ cmp #29
bne +
jsr right
jmp input
+ cmp #157
bne +
jsr left
jmp input
+ cmp #140
bne +
jsr hardcopy
jmp input
+ cmp #17
bne +
jsr down
jmp input
+ cmp #145
bne +
jsr up
jmp input
+ cmp #13
bne +
- jsr left
lda colm
bne -
jsr down
jmp input
+ cmp #32
bne +
ldy #0
lda #32
- sta (zpc),y
iny
cpy #5
bne -
jmp input
+ ldx #0
- cmp keys,x
beq s1
inx
cpx nkeys
bne -
jmp input
s1 ldy #0
txa
asl
asl
asl
tax
- lda codes,x
sta (zpc),y
inx
iny
cpy #5
bne -
jsr right
jmp check
jmp input
add80 =*
clc
lda zpc
adc #80
sta zpc
lda zpc+1
adc #0
sta zpc+1
inc row
rts
sub80 =*
sec
lda zpc
sbc #80
sta zpc
lda zpc+1
sbc #0
sta zpc+1
dec row
rts
add6 =*
clc
lda zpc
adc #6
sta zpc
lda zpc+1
adc #0
sta zpc+1
inc colm
rts
sub6 =*
sec
lda zpc
sbc #6
sta zpc
lda zpc+1
sbc #0
sta zpc+1
dec colm
rts
right =*
jsr add6
lda colm
cmp #5
bne +
jsr sub6
+ rts
left =*
jsr sub6
lda colm
cmp #255
bne +
jsr add6
+ rts
down =*
jsr add80
lda row
cmp #2
bne +
jsr sub80
+ rts
up =*
jsr sub80
lda row
cmp #255
bne +
jsr add80
+ rts
write =*
ldy #0
pla
sta zp
pla
sta zp+1
- inc zp
bne +
inc zp+1
+ lda (zp),y
beq +
jsr chrout
bne -
+ lda zp+1
pha
lda zp
pha
rts
delay =*
ldx #20
- ldy #0
- dey
bne -
dex
bne --
rts
header =*
jsr write
.byte 147,18,156
.asc " programmers "
.byte 0
rts
footer =*
ldx #24
ldy #0
clc
jsr plot
jsr write
.byte 18,154
.asc "f1=menu f5=clues f7=hint f2=sol f8=prnt"
.byte 0
lda #160
sta 2023
lda #14
sta 56295
rts
solve =*
lda #1
sta counter
- sta 646
ldx #24
ldy #0
clc
jsr plot
jsr write
.byte 18
.asc " solved!!! "
.byte 0
lda counter
sta 56295
jsr ringbell
jsr delay
jsr delay
jsr delay
jsr delay
jsr delay
inc counter
lda counter
cmp #15
bne -
rts
ringbell =*
lda mflag
beq +
rts
+ lda #21
sta 54296
lda #9
sta 54277
lda #0
sta 54278
lda #48
sta 54273
lda #32
sta 54276
lda #33
sta 54276
rts
drawbox =*
ldx #13
ldy #0
clc
jsr plot
jsr write
.byte 5
.asc " frank barb ed mary peg"
.byte 13
.byte 29,29,29,29,29,29,29
.byte 150,176,96,96,96,96,96,178,96,96,96,96,96,178,96,96,96,96,96,178,96,96,96,96,96,178,96,96,96,96,96,174,13
.byte 5
.asc "name: "
.byte 150,125,32,32,32,32,32,125,32,32,32,32,32,125,32,32,32,32,32,125,32,32,32,32,32,125,32,32,32,32,32,125,13
.byte 29,29,29,29,29,29,29
.byte 171,96,96,96,96,96,123,96,96,96,96,96,123,96,96,96,96,96,123,96,96,96,96,96,123,96,96,96,96,96,179,13
.byte 5
.asc "lang: "
.byte 150,125,32,32,32,32,32,125,32,32,32,32,32,125,32,32,32,32,32,125,32,32,32,32,32,125,32,32,32,32,32,125,13
.byte 29,29,29,29,29,29,29
.byte 173,96,96,96,96,96,177,96,96,96,96,96,177,96,96,96,96,96,177,96,96,96,96,96,177,96,96,96,96,96,189,13
.byte 153,13
.asc " keys: a d j r s/b c f p m"
.byte 0
rts
screen =*
jsr header
jsr clues
jsr drawbox
jsr footer
rts
getf1 =*
ldx #24
ldy #0
clc
jsr plot
jsr write
.byte 18,154
.asc " press f1 "
.byte 0
- jsr getin
sta temp
jsr checkm
lda temp
cmp #133
bne -
rts
toggleclues =*
lda clue
eor #1
sta clue
bne +
jsr clues
jmp input
+ jsr clue2
jmp input
counter .byte 0
puzzle .byte 0
temp .byte 0
temp2 .byte 0
temp3 .byte 0
row .byte 0
keys .asc "jsrdafbpcm
nkeys .byte 10
key .byte 0
colm .byte 0
clue .byte 0
answer .scr "jsrdafbpcm"
codes .scr "jones "
.scr "smith "
.scr "robin "
.scr "davis "
.scr "allen "
.scr "frtrn "
.scr "basic "
.scr "pascl "
.scr "c "
.scr "ml "
titlescreen =*
jsr write
.byte 147,31,146,5,176
.asc "{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}"
.byte 174
.byte 125,18,156
.asc " logic problem "
.byte 146,5,125
.byte 171
.asc "{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}"
.byte 179
.byte 125,155,18
.asc " "
.byte 5,146,125
.byte 125,155,18
.asc " "
.byte 5,146,125
.byte 125,155,18
.asc " "
.byte 5,146,125
.byte 125,155,18
.asc " "
.byte 5,146,125
.byte 125,155,18
.asc " "
.byte 5,146,125
.byte 125,155,18
.asc " 1] programmers "
.byte 5,146,125
.byte 125,155,18
.asc " 2] instructions "
.byte 5,146,125
.byte 125,155,18
.asc " 3] toggle music "
.byte 5,146,125
.byte 125,155,18
.asc " 4] exit "
.byte 5,146,125
.byte 125,155,18
.asc " "
.byte 5,146,125
.byte 125,155,18
.asc " "
.byte 5,146,125
.byte 125,155,18
.asc " "
.byte 5,146,125
.byte 125,155,18
.asc " "
.byte 5,146,125
.byte 125,155,18
.asc " "
.byte 5,146,125
.byte 125,155,18
.asc " "
.byte 5,146,125
.byte 125,155,18
.asc " "
.byte 5,146,125
.byte 5,171
.asc "{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}"
.byte 179
.byte 125,154,18
.asc " "
.byte 5,146,125
.byte 5,125,18,154
.asc " program by barbara h. schulak "
.byte 5,146,125
.byte 5,125,18,154
.asc " puzzle by barbara h. schulak "
.byte 5,146,125
.byte 125,154,18
.asc " "
.byte 5,146,125
.byte 5,146,173
.asc "{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}{SHIFT-*}"
.byte 0
lda #125
sta 2023
lda #1
sta 2023+54272
rts
clues =*
jsr write
.byte 159,19,17,17,146
.asc "1] the fortran programmer is not mary, "
.byte 13
.asc " barb, ed or ms. allen. "
.byte 13
.asc "2] peg does not program in pascal or c."
.byte 13
.asc "3] the basic programmer is not mary, "
.byte 13
.asc " mr. robin or mr. jones. "
.byte 13
.asc "4] pascal is not the choice of either "
.byte 13
.asc " mary or ms. smith. "
.byte 13
.asc " "
.byte 13
.asc " "
.byte 13
.asc " "
.byte 13
.asc " "
.byte 13,0
rts
clue2 =*
jsr write
.byte 159,19,17,17,146
.asc "5] neither barb nor ed program in ml. "
.byte 13
.asc "6] the c programmer is not frank, barb "
.byte 13
.asc " or mr. robin. "
.byte 13
.asc "7] davis does not program in ml. "
.byte 13
.asc " "
.byte 13
.asc " "
.byte 13
.asc " "
.byte 13
.asc " "
.byte 13
.asc " "
.byte 13
.asc " "
.byte 13
.asc " "
.byte 13,0
rts
mflag .byte 0
startm =*
jsr 49435
ldx #96
ldy #109
jsr 49458
lda #7
sta 49152
rts
stopm =*
lda #0
sta 49152
sta 54276
sta 54283
sta 54290
jsr 49629
rts
toggle =*
lda mflag
beq +
lda #0
sta mflag
jsr stopm
rts
+ lda #1
sta mflag
jsr startm
rts
checkm =*
lda 49152
beq +
rts
+ lda mflag
bne +
rts
+ jsr stopm
jsr startm
rts
check =*
lda <1632
sta zp
lda >1632
sta zp+1
lda #0
sta counter
ldx #0
- ldy #0
lda #0
sta temp
- lda (zp),y
cmp answer,x
bne +
iny:iny
iny:iny
iny:iny
inx
inc temp
lda temp
cmp #5
bne -
jsr add80a
inc counter
lda counter
cmp