Initial commit (a clone of the jsmachines project as of v1.15.3)
This commit is contained in:
commit
a5e3e6a59d
714 changed files with 130602 additions and 0 deletions
BIN
apps/c1p/6502/JP/ASSEMBLER-1.TXT
Normal file
BIN
apps/c1p/6502/JP/ASSEMBLER-1.TXT
Normal file
Binary file not shown.
BIN
apps/c1p/6502/JP/ASSEMBLER-2.TXT
Normal file
BIN
apps/c1p/6502/JP/ASSEMBLER-2.TXT
Normal file
Binary file not shown.
1247
apps/c1p/6502/JP/BASICEXT.65V
Normal file
1247
apps/c1p/6502/JP/BASICEXT.65V
Normal file
File diff suppressed because it is too large
Load diff
1
apps/c1p/6502/JP/LIFE.65V
Normal file
1
apps/c1p/6502/JP/LIFE.65V
Normal file
|
|
@ -0,0 +1 @@
|
|||
.0000/A9
07
85
FF
A9
00
85
FE
A8
A2
19
91
FE
C8
D0
FB
E6
FF
CA
D0
F6
A9
20
A2
00
9D
00
D0
9D
00
D1
9D
00
D2
9D
00
D3
E8
D0
F1
A9
85
85
FE
A9
D0
85
FF
A9
25
85
FC
A9
D3
85
FD
A0
14
A9
80
91
FE
A9
87
91
FC
88
D0
F5
A2
14
A0
00
A5
FE
18
69
20
85
FE
90
02
E6
FF
A9
8F
91
FE
A0
15
A9
88
91
FE
CA
D0
E6
A9
07
85
FF
4C
71
05
EA
85
FD
85
FC
85
F9
85
F8
85
F7
85
F6
85
F0
A9
A6
85
A5
A9
D0
85
A6
A5
FF
85
9A
A5
FE
85
99
A5
FD
10
03
18
69
50
85
FB
A9
14
85
FA
A2
00
A4
FB
B9
40
0D
4A
90
04
A9
F0
B0
02
A9
2E
9D
26
D3
C8
C0
50
D0
02
A0
00
E8
A5
F0
4A
90
11
E0
14
F0
11
84
F5
8A
A8
A9
AB
91
A5
A4
F5
20
69
03
E0
14
D0
CF
A5
99
18
69
50
85
99
90
02
E6
9A
A9
20
C5
9A
D0
04
A9
07
85
9A
A5
A5
18
69
20
85
A5
90
02
E6
A6
C6
FA
D0
A7
4C
5F
02
82
.0222/00
01
00
0A
00
64
03
E8
27
10
00
00
00
00
A4
FA
91
F1
E6
FA
60
A0
00
38
A5
F3
FD
21
02
85
F5
CA
A5
F4
FD
21
02
90
0A
E8
C8
85
F4
A5
F5
85
F3
B0
E7
E8
98
09
30
20
30
02
CA
CA
D0
D9
60
A9
46
85
F1
A9
D3
85
F2
A2
08
A5
F8
85
F3
A5
F9
85
F4
A9
00
85
FA
20
37
02
A9
20
20
30
02
A9
28
20
30
02
4C
A1
02
48
30
04
A9
2B
10
02
A9
2D
20
30
02
68
10
05
18
49
FF
69
01
85
F3
A2
04
20
37
02
60
A9
00
85
F4
A5
FD
20
85
02
A9
2C
20
30
02
A5
FC
20
85
02
EA
A9
29
20
30
02
A9
20
20
30
02
A5
F6
85
F3
A5
F7
85
F4
A2
0A
20
37
02
4C
EC
02
C9
50
D0
05
EA
A9
00
F0
04
C9
B0
F0
F8
A0
10
CA
D0
FD
88
D0
FA
60
8D
00
DF
AD
00
DF
60
A9
7F
4C
57
05
C9
7F
D0
0C
E6
FD
A5
FD
20
CF
02
85
FD
4C
60
03
A9
7F
20
E5
02
C9
BF
D0
05
C6
FD
4C
F7
02
A9
7F
20
E5
02
C9
DF
D0
21
E6
FC
A5
FC
20
CF
02
85
FC
38
A5
FE
E9
50
85
FE
B0
02
C6
FF
A9
06
C5
FF
D0
04
A9
1F
85
FF
4C
60
03
A9
7F
20
E5
02
C9
EF
D0
33
C6
FC
A5
FC
20
CF
02
85
FC
18
A5
FE
69
50
85
FE
90
02
E6
FF
A9
20
C5
FF
D0
04
A9
07
85
FF
A9
7E
25
F0
85
F0
4C
77
00
A9
15
C6
F1
D0
FC
18
69
FF
D0
F7
60
A5
F0
0A
90
03
4C
8F
03
E0
C0
F0
04
A2
C0
86
F2
20
69
03
E6
F2
F0
EE
4C
EC
02
A5
F0
4A
4A
B0
09
A5
F0
09
02
85
F0
4C
AF
03
A9
FE
20
E5
02
C9
DE
F0
08
4C
9B
04
A5
FB
91
F1
60
A9
00
85
FA
A9
A6
85
F1
A9
D0
85
F2
A0
00
B1
F1
85
FB
A9
AB
91
F1
20
00
FD
C9
0A
D0
0C
A5
F0
49
01
85
F0
20
AA
03
4C
A7
03
C9
32
D0
0A
C0
13
F0
E5
20
AA
03
C8
D0
D7
C9
31
D0
0A
C0
00
F0
F0
20
AA
03
88
10
C9
C9
33
D0
18
A9
13
C5
FA
F0
EE
E6
FA
20
AA
03
18
A9
20
65
F1
85
F1
90
02
E6
F2
D0
D4
C9
34
D0
19
A9
00
C5
FA
F0
E2
C6
FA
20
AA
03
38
A5
F1
E9
20
85
F1
B0
02
C6
F2
4C
BD
03
C9
0D
D0
03
4C
D2
03
C9
50
D0
5C
A5
FE
85
F3
A5
FF
85
F4
A5
FA
85
F5
A9
00
C5
F5
F0
19
18
A5
F3
69
50
85
F3
90
02
E6
F4
A9
20
C5
F4
D0
04
A9
07
85
F4
C6
F5
D0
E7
A5
FD
10
03
18
69
50
84
FB
18
65
FB
C9
50
90
02
E9
50
8C
11
02
A8
AD
13
02
C9
50
D0
06
A9
03
A2
F0
D0
04
A9
00
A2
2E
91
F3
86
FB
AC
11
02
4C
C5
03
C9
4F
F0
A0
4C
C5
03
A9
07
85
F2
A9
00
85
F1
85
FA
A9
4E
85
F3
A9
4E
85
F4
A9
00
85
F5
A2
08
BC
68
05
B1
F1
4A
90
02
E6
F5
CA
D0
F3
A9
03
A0
51
D1
F1
D0
2C
A2
02
E4
F5
F0
0B
E8
E4
F5
F0
06
A9
01
91
F1
85
FA
E6
F1
D0
02
E6
F2
C6
F4
D0
CA
18
A5
F1
69
02
85
F1
90
02
E6
F2
C6
F3
D0
B7
F0
0A
A2
03
E4
F5
D0
DF
A9
02
D0
D7
A9
00
85
F9
85
F8
A9
06
85
F2
A9
FF
85
F1
A2
50
A0
50
B1
F1
C9
02
D0
06
A9
03
91
F1
D0
08
C9
01
D0
04
A9
00
91
F1
C9
03
D0
06
E6
F8
D0
02
E6
F9
88
D0
DF
18
A5
F1
69
50
85
F1
90
02
E6
F2
CA
D0
CF
A5
FA
C9
00
D0
03
4C
AF
03
E6
F6
D0
02
E6
F7
A5
F0
09
80
85
F0
4C
77
00
A0
FD
8C
00
DF
AC
00
DF
C0
EF
F0
F4
20
E5
02
4C
F1
02
00
01
02
50
52
A0
A1
A2
A9
4C
85
FE
A9
00
4C
69
00
EA
00
00
00
00
00
00
00
.0000G
|
||||
18
apps/c1p/6502/sim.inc
Normal file
18
apps/c1p/6502/sim.inc
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
.code
|
||||
.org $200
|
||||
;
|
||||
; These must be kept in sync with the "opSim operation codes" in c1p.js
|
||||
;
|
||||
.define OP_SIM $02
|
||||
.define SIMOP_HLT $00
|
||||
.define SIMOP_MSG $01
|
||||
|
||||
.macro SIM_MSG msg
|
||||
.local addr
|
||||
.byte OP_SIM,SIMOP_MSG
|
||||
addr: .ASCIIZ msg
|
||||
.endmacro
|
||||
|
||||
.macro SIM_HLT
|
||||
.byte OP_SIM,SIMOP_HLT
|
||||
.endmacro
|
||||
476
apps/c1p/6502/tests/bcd/bcd.65v
Normal file
476
apps/c1p/6502/tests/bcd/bcd.65v
Normal file
|
|
@ -0,0 +1,476 @@
|
|||
.0200/A0
|
||||
01
|
||||
8C
|
||||
CE
|
||||
03
|
||||
A9
|
||||
00
|
||||
8D
|
||||
D1
|
||||
03
|
||||
8D
|
||||
D4
|
||||
03
|
||||
AD
|
||||
D4
|
||||
03
|
||||
02
|
||||
01
|
||||
54
|
||||
65
|
||||
73
|
||||
74
|
||||
69
|
||||
6E
|
||||
67
|
||||
20
|
||||
25
|
||||
41
|
||||
00
|
||||
29
|
||||
0F
|
||||
8D
|
||||
D5
|
||||
03
|
||||
AD
|
||||
D4
|
||||
03
|
||||
29
|
||||
F0
|
||||
8D
|
||||
D9
|
||||
03
|
||||
09
|
||||
0F
|
||||
8D
|
||||
DA
|
||||
03
|
||||
AD
|
||||
D1
|
||||
03
|
||||
29
|
||||
0F
|
||||
8D
|
||||
D3
|
||||
03
|
||||
AD
|
||||
D1
|
||||
03
|
||||
29
|
||||
F0
|
||||
8D
|
||||
D2
|
||||
03
|
||||
20
|
||||
79
|
||||
02
|
||||
20
|
||||
62
|
||||
03
|
||||
20
|
||||
33
|
||||
03
|
||||
D0
|
||||
26
|
||||
20
|
||||
CC
|
||||
02
|
||||
20
|
||||
6F
|
||||
03
|
||||
20
|
||||
33
|
||||
03
|
||||
D0
|
||||
1B
|
||||
EE
|
||||
D1
|
||||
03
|
||||
D0
|
||||
D5
|
||||
EE
|
||||
D4
|
||||
03
|
||||
D0
|
||||
AE
|
||||
88
|
||||
10
|
||||
AB
|
||||
A9
|
||||
00
|
||||
8D
|
||||
CE
|
||||
03
|
||||
02
|
||||
01
|
||||
50
|
||||
41
|
||||
53
|
||||
53
|
||||
00
|
||||
F0
|
||||
07
|
||||
02
|
||||
01
|
||||
46
|
||||
41
|
||||
49
|
||||
4C
|
||||
00
|
||||
02
|
||||
00
|
||||
F8
|
||||
C0
|
||||
01
|
||||
AD
|
||||
D1
|
||||
03
|
||||
6D
|
||||
D4
|
||||
03
|
||||
8D
|
||||
CC
|
||||
03
|
||||
08
|
||||
68
|
||||
8D
|
||||
CD
|
||||
03
|
||||
D8
|
||||
C0
|
||||
01
|
||||
AD
|
||||
D1
|
||||
03
|
||||
6D
|
||||
D4
|
||||
03
|
||||
8D
|
||||
CF
|
||||
03
|
||||
08
|
||||
68
|
||||
8D
|
||||
D0
|
||||
03
|
||||
C0
|
||||
01
|
||||
AD
|
||||
D3
|
||||
03
|
||||
6D
|
||||
D5
|
||||
03
|
||||
C9
|
||||
0A
|
||||
A2
|
||||
00
|
||||
90
|
||||
06
|
||||
E8
|
||||
69
|
||||
05
|
||||
29
|
||||
0F
|
||||
38
|
||||
0D
|
||||
D2
|
||||
03
|
||||
7D
|
||||
D9
|
||||
03
|
||||
08
|
||||
B0
|
||||
04
|
||||
C9
|
||||
A0
|
||||
90
|
||||
03
|
||||
69
|
||||
5F
|
||||
38
|
||||
8D
|
||||
CA
|
||||
03
|
||||
08
|
||||
68
|
||||
8D
|
||||
CB
|
||||
03
|
||||
68
|
||||
8D
|
||||
D7
|
||||
03
|
||||
60
|
||||
F8
|
||||
C0
|
||||
01
|
||||
AD
|
||||
D1
|
||||
03
|
||||
ED
|
||||
D4
|
||||
03
|
||||
8D
|
||||
CC
|
||||
03
|
||||
08
|
||||
68
|
||||
8D
|
||||
CD
|
||||
03
|
||||
D8
|
||||
C0
|
||||
01
|
||||
AD
|
||||
D1
|
||||
03
|
||||
ED
|
||||
D4
|
||||
03
|
||||
8D
|
||||
CF
|
||||
03
|
||||
08
|
||||
68
|
||||
8D
|
||||
D0
|
||||
03
|
||||
60
|
||||
C0
|
||||
01
|
||||
AD
|
||||
D3
|
||||
03
|
||||
ED
|
||||
D5
|
||||
03
|
||||
A2
|
||||
00
|
||||
B0
|
||||
06
|
||||
E8
|
||||
E9
|
||||
05
|
||||
29
|
||||
0F
|
||||
18
|
||||
0D
|
||||
D2
|
||||
03
|
||||
FD
|
||||
D9
|
||||
03
|
||||
B0
|
||||
02
|
||||
E9
|
||||
5F
|
||||
8D
|
||||
CA
|
||||
03
|
||||
60
|
||||
C0
|
||||
01
|
||||
AD
|
||||
D3
|
||||
03
|
||||
ED
|
||||
D5
|
||||
03
|
||||
A2
|
||||
00
|
||||
B0
|
||||
04
|
||||
E8
|
||||
29
|
||||
0F
|
||||
18
|
||||
0D
|
||||
D2
|
||||
03
|
||||
FD
|
||||
D9
|
||||
03
|
||||
B0
|
||||
02
|
||||
E9
|
||||
5F
|
||||
E0
|
||||
00
|
||||
F0
|
||||
02
|
||||
E9
|
||||
06
|
||||
8D
|
||||
CA
|
||||
03
|
||||
60
|
||||
AD
|
||||
CC
|
||||
03
|
||||
CD
|
||||
CA
|
||||
03
|
||||
D0
|
||||
26
|
||||
AD
|
||||
CD
|
||||
03
|
||||
4D
|
||||
D6
|
||||
03
|
||||
29
|
||||
80
|
||||
D0
|
||||
1C
|
||||
AD
|
||||
CD
|
||||
03
|
||||
4D
|
||||
D7
|
||||
03
|
||||
29
|
||||
40
|
||||
D0
|
||||
12
|
||||
AD
|
||||
CD
|
||||
03
|
||||
4D
|
||||
D8
|
||||
03
|
||||
29
|
||||
02
|
||||
D0
|
||||
08
|
||||
AD
|
||||
CD
|
||||
03
|
||||
4D
|
||||
CB
|
||||
03
|
||||
29
|
||||
01
|
||||
60
|
||||
AD
|
||||
D7
|
||||
03
|
||||
8D
|
||||
D6
|
||||
03
|
||||
AD
|
||||
D0
|
||||
03
|
||||
8D
|
||||
D8
|
||||
03
|
||||
60
|
||||
20
|
||||
EF
|
||||
02
|
||||
AD
|
||||
D0
|
||||
03
|
||||
8D
|
||||
D6
|
||||
03
|
||||
8D
|
||||
D7
|
||||
03
|
||||
8D
|
||||
D8
|
||||
03
|
||||
8D
|
||||
CB
|
||||
03
|
||||
60
|
||||
AD
|
||||
CA
|
||||
03
|
||||
08
|
||||
68
|
||||
8D
|
||||
D6
|
||||
03
|
||||
8D
|
||||
D8
|
||||
03
|
||||
60
|
||||
20
|
||||
0F
|
||||
03
|
||||
AD
|
||||
CA
|
||||
03
|
||||
08
|
||||
68
|
||||
8D
|
||||
D6
|
||||
03
|
||||
8D
|
||||
D8
|
||||
03
|
||||
AD
|
||||
D0
|
||||
03
|
||||
8D
|
||||
D7
|
||||
03
|
||||
8D
|
||||
CB
|
||||
03
|
||||
60
|
||||
AD
|
||||
CA
|
||||
03
|
||||
08
|
||||
68
|
||||
8D
|
||||
D6
|
||||
03
|
||||
8D
|
||||
D8
|
||||
03
|
||||
60
|
||||
20
|
||||
EF
|
||||
02
|
||||
AD
|
||||
CA
|
||||
03
|
||||
08
|
||||
68
|
||||
8D
|
||||
D6
|
||||
03
|
||||
8D
|
||||
D8
|
||||
03
|
||||
AD
|
||||
D0
|
||||
03
|
||||
8D
|
||||
D7
|
||||
03
|
||||
8D
|
||||
CB
|
||||
03
|
||||
60
|
||||
00
|
||||
00
|
||||
00
|
||||
00
|
||||
00
|
||||
00
|
||||
00
|
||||
00
|
||||
00
|
||||
00
|
||||
00
|
||||
00
|
||||
00
|
||||
00
|
||||
00
|
||||
00
|
||||
00
|
||||
.0200G
|
||||
332
apps/c1p/6502/tests/bcd/bcd.asm
Normal file
332
apps/c1p/6502/tests/bcd/bcd.asm
Normal file
|
|
@ -0,0 +1,332 @@
|
|||
;
|
||||
; The following code comes from:
|
||||
;
|
||||
; http://www.6502.org/tutorials/decimal_mode.html
|
||||
;
|
||||
; and is built with:
|
||||
;
|
||||
; ca65 bcd.asm -I ../.. -l -o bcd.obj
|
||||
; ld65 bcd.obj -o bcd.bin --target none
|
||||
;
|
||||
; An ASCII hex file which the OSI machine-language monitor can load
|
||||
; is produced with the following commands:
|
||||
;
|
||||
; echo -n ".0200/" > bcd.txt
|
||||
; hexdump -e '1/1 "%02X\n"' -v bcd.bin >> bcd.txt
|
||||
; echo -n ".0200" >> bcd.txt
|
||||
;
|
||||
.include "sim.inc"
|
||||
|
||||
VALID_BCD_ONLY = 0
|
||||
VALID_FLAGS_ONLY = 0
|
||||
|
||||
;
|
||||
; Verify decimal mode behavior
|
||||
;
|
||||
; Returns:
|
||||
; ERROR = 0 if the test passed
|
||||
; ERROR = 1 if the test failed
|
||||
;
|
||||
; This routine requires 17 bytes of RAM -- 1 byte each for:
|
||||
; AR, CF, DA, DNVZC, ERROR, HA, HNVZC, N1, N1H, N1L, N2, N2L, NF, VF, and ZF
|
||||
; and 2 bytes for N2H
|
||||
;
|
||||
; Variables:
|
||||
; N1 and N2 are the two numbers to be added or subtracted
|
||||
; N1H, N1L, N2H, and N2L are the upper 4 bits and lower 4 bits of N1 and N2
|
||||
; DA and DNVZC are the actual accumulator and flag results in decimal mode
|
||||
; HA and HNVZC are the accumulator and flag results when N1 and N2 are
|
||||
; added or subtracted using binary arithmetic
|
||||
; AR, NF, VF, ZF, and CF are the predicted decimal mode accumulator and
|
||||
; flag results, calculated using binary arithmetic
|
||||
;
|
||||
; This program takes approximately 1 minute at 1 MHz (a few seconds more on
|
||||
; a 65C02 than a 6502 or 65816)
|
||||
;
|
||||
|
||||
TEST: LDY #1 ; initialize Y (used to loop through carry flag values)
|
||||
STY ERROR ; store 1 in ERROR until the test passes
|
||||
LDA #0 ; initialize N1 and N2
|
||||
STA N1
|
||||
STA N2
|
||||
LOOP1: LDA N2 ; N2L = N2 & $0F
|
||||
SIM_MSG "Testing %A"
|
||||
AND #$0F ; [1] see text
|
||||
.if VALID_BCD_ONLY <> 0
|
||||
CMP #$0A
|
||||
BCS NEXT2
|
||||
.endif
|
||||
STA N2L
|
||||
LDA N2 ; N2H = N2 & $F0
|
||||
AND #$F0 ; [2] see text
|
||||
.if VALID_BCD_ONLY <> 0
|
||||
CMP #$A0
|
||||
BCS NEXT2
|
||||
.endif
|
||||
STA N2H
|
||||
ORA #$0F ; N2H+1 = (N2 & $F0) + $0F
|
||||
STA N2H+1
|
||||
LOOP2: LDA N1 ; N1L = N1 & $0F
|
||||
;; SIM_MSG " with %A"
|
||||
AND #$0F ; [3] see text
|
||||
.if VALID_BCD_ONLY <> 0
|
||||
CMP #$0A
|
||||
BCS NEXT1
|
||||
.endif
|
||||
STA N1L
|
||||
LDA N1 ; N1H = N1 & $F0
|
||||
AND #$F0 ; [4] see text
|
||||
.if VALID_BCD_ONLY <> 0
|
||||
CMP #$A0
|
||||
BCS NEXT1
|
||||
.endif
|
||||
STA N1H
|
||||
JSR ADD
|
||||
JSR A6502
|
||||
JSR COMPARE
|
||||
BNE ERR
|
||||
JSR SUB
|
||||
JSR S6502
|
||||
JSR COMPARE
|
||||
BNE ERR
|
||||
NEXT1: INC N1 ; [5] see text
|
||||
BNE LOOP2 ; loop through all 256 values of N1
|
||||
NEXT2: INC N2 ; [6] see text
|
||||
BNE LOOP1 ; loop through all 256 values of N2
|
||||
DEY
|
||||
BPL LOOP1 ; loop through both values of the carry flag
|
||||
LDA #0 ; test passed, so store 0 in ERROR
|
||||
STA ERROR
|
||||
SIM_MSG "PASS"
|
||||
BEQ DONE
|
||||
ERR: SIM_MSG "FAIL"
|
||||
DONE: SIM_HLT
|
||||
|
||||
; Calculate the actual decimal mode accumulator and flags, the accumulator
|
||||
; and flag results when N1 is added to N2 using binary arithmetic, the
|
||||
; predicted accumulator result, the predicted carry flag, and the predicted
|
||||
; V flag
|
||||
;
|
||||
ADD: SED ; decimal mode
|
||||
CPY #1 ; set carry if Y = 1, clear carry if Y = 0
|
||||
LDA N1
|
||||
ADC N2
|
||||
STA DA ; actual accumulator result in decimal mode
|
||||
PHP
|
||||
PLA
|
||||
STA DNVZC ; actual flags result in decimal mode
|
||||
CLD ; binary mode
|
||||
CPY #1 ; set carry if Y = 1, clear carry if Y = 0
|
||||
LDA N1
|
||||
ADC N2
|
||||
STA HA ; accumulator result of N1+N2 using binary arithmetic
|
||||
|
||||
PHP
|
||||
PLA
|
||||
STA HNVZC ; flags result of N1+N2 using binary arithmetic
|
||||
CPY #1
|
||||
LDA N1L
|
||||
ADC N2L
|
||||
CMP #$0A
|
||||
LDX #0
|
||||
BCC A1
|
||||
INX
|
||||
ADC #5 ; add 6 (carry is set)
|
||||
AND #$0F
|
||||
SEC
|
||||
A1: ORA N1H
|
||||
;
|
||||
; if N1L + N2L < $0A, then add N2 & $F0
|
||||
; if N1L + N2L >= $0A, then add (N2 & $F0) + $0F + 1 (carry is set)
|
||||
;
|
||||
ADC N2H,X
|
||||
PHP
|
||||
BCS A2
|
||||
CMP #$A0
|
||||
BCC A3
|
||||
A2: ADC #$5F ; add $60 (carry is set)
|
||||
SEC
|
||||
A3: STA AR ; predicted accumulator result
|
||||
PHP
|
||||
PLA
|
||||
STA CF ; predicted carry result
|
||||
PLA
|
||||
;
|
||||
; note that all 8 bits of the P register are stored in VF
|
||||
;
|
||||
STA VF ; predicted V flags
|
||||
RTS
|
||||
|
||||
; Calculate the actual decimal mode accumulator and flags, and the
|
||||
; accumulator and flag results when N2 is subtracted from N1 using binary
|
||||
; arithmetic
|
||||
;
|
||||
SUB: SED ; decimal mode
|
||||
CPY #1 ; set carry if Y = 1, clear carry if Y = 0
|
||||
LDA N1
|
||||
SBC N2
|
||||
STA DA ; actual accumulator result in decimal mode
|
||||
PHP
|
||||
PLA
|
||||
STA DNVZC ; actual flags result in decimal mode
|
||||
CLD ; binary mode
|
||||
CPY #1 ; set carry if Y = 1, clear carry if Y = 0
|
||||
LDA N1
|
||||
SBC N2
|
||||
STA HA ; accumulator result of N1-N2 using binary arithmetic
|
||||
|
||||
PHP
|
||||
PLA
|
||||
STA HNVZC ; flags result of N1-N2 using binary arithmetic
|
||||
RTS
|
||||
|
||||
; Calculate the predicted SBC accumulator result for the 6502 and 65816
|
||||
|
||||
;
|
||||
SUB1: CPY #1 ; set carry if Y = 1, clear carry if Y = 0
|
||||
LDA N1L
|
||||
SBC N2L
|
||||
LDX #0
|
||||
BCS S11
|
||||
INX
|
||||
SBC #5 ; subtract 6 (carry is clear)
|
||||
AND #$0F
|
||||
CLC
|
||||
S11: ORA N1H
|
||||
;
|
||||
; if N1L - N2L >= 0, then subtract N2 & $F0
|
||||
; if N1L - N2L < 0, then subtract (N2 & $F0) + $0F + 1 (carry is clear)
|
||||
;
|
||||
SBC N2H,X
|
||||
BCS S12
|
||||
SBC #$5F ; subtract $60 (carry is clear)
|
||||
S12: STA AR
|
||||
RTS
|
||||
|
||||
; Calculate the predicted SBC accumulator result for the 6502 and 65C02
|
||||
|
||||
;
|
||||
SUB2: CPY #1 ; set carry if Y = 1, clear carry if Y = 0
|
||||
LDA N1L
|
||||
SBC N2L
|
||||
LDX #0
|
||||
BCS S21
|
||||
INX
|
||||
AND #$0F
|
||||
CLC
|
||||
S21: ORA N1H
|
||||
;
|
||||
; if N1L - N2L >= 0, then subtract N2 & $F0
|
||||
; if N1L - N2L < 0, then subtract (N2 & $F0) + $0F + 1 (carry is clear)
|
||||
;
|
||||
SBC N2H,X
|
||||
BCS S22
|
||||
SBC #$5F ; subtract $60 (carry is clear)
|
||||
S22: CPX #0
|
||||
BEQ S23
|
||||
SBC #6
|
||||
S23: STA AR ; predicted accumulator result
|
||||
RTS
|
||||
|
||||
; Compare accumulator actual results to predicted results
|
||||
;
|
||||
; Return:
|
||||
; Z flag = 1 (BEQ branch) if same
|
||||
; Z flag = 0 (BNE branch) if different
|
||||
;
|
||||
COMPARE:LDA DA
|
||||
CMP AR
|
||||
BNE C1
|
||||
.if VALID_FLAGS_ONLY = 0
|
||||
LDA DNVZC ; [7] see text
|
||||
EOR NF
|
||||
AND #$80 ; mask off N flag
|
||||
BNE C1
|
||||
LDA DNVZC ; [8] see text
|
||||
EOR VF
|
||||
AND #$40 ; mask off V flag
|
||||
BNE C1 ; [9] see text
|
||||
LDA DNVZC
|
||||
EOR ZF ; mask off Z flag
|
||||
AND #2
|
||||
BNE C1 ; [10] see text
|
||||
.endif
|
||||
LDA DNVZC
|
||||
EOR CF
|
||||
AND #1 ; mask off C flag
|
||||
C1: RTS
|
||||
|
||||
; These routines store the predicted values for ADC and SBC for the 6502,
|
||||
; 65C02, and 65816 in AR, CF, NF, VF, and ZF
|
||||
|
||||
A6502: LDA VF
|
||||
;
|
||||
; since all 8 bits of the P register were stored in VF, bit 7 of VF contains
|
||||
; the N flag for NF
|
||||
;
|
||||
STA NF
|
||||
LDA HNVZC
|
||||
STA ZF
|
||||
RTS
|
||||
|
||||
S6502: JSR SUB1
|
||||
LDA HNVZC
|
||||
STA NF
|
||||
STA VF
|
||||
STA ZF
|
||||
STA CF
|
||||
RTS
|
||||
|
||||
A65C02: LDA AR
|
||||
PHP
|
||||
PLA
|
||||
STA NF
|
||||
STA ZF
|
||||
RTS
|
||||
|
||||
S65C02: JSR SUB2
|
||||
LDA AR
|
||||
PHP
|
||||
PLA
|
||||
STA NF
|
||||
STA ZF
|
||||
LDA HNVZC
|
||||
STA VF
|
||||
STA CF
|
||||
RTS
|
||||
|
||||
A65816: LDA AR
|
||||
PHP
|
||||
PLA
|
||||
STA NF
|
||||
STA ZF
|
||||
RTS
|
||||
|
||||
S65816: JSR SUB1
|
||||
LDA AR
|
||||
PHP
|
||||
PLA
|
||||
STA NF
|
||||
STA ZF
|
||||
LDA HNVZC
|
||||
STA VF
|
||||
STA CF
|
||||
RTS
|
||||
|
||||
.data
|
||||
AR: .byte 0
|
||||
CF: .byte 0 ; predicted carry result
|
||||
DA: .byte 0
|
||||
DNVZC: .byte 0
|
||||
ERROR: .byte 0
|
||||
HA: .byte 0
|
||||
HNVZC: .byte 0
|
||||
N1: .byte 0
|
||||
N1H: .byte 0
|
||||
N1L: .byte 0
|
||||
N2: .byte 0
|
||||
N2L: .byte 0
|
||||
NF: .byte 0
|
||||
VF: .byte 0
|
||||
ZF: .byte 0
|
||||
N2H: .word 0
|
||||
19
apps/c1p/6502/tests/bcd/makefile
Normal file
19
apps/c1p/6502/tests/bcd/makefile
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
CA65 = ca65
|
||||
LD65 = ld65
|
||||
ECHO = @/bin/echo
|
||||
|
||||
CA65_OPTS =
|
||||
LD65_OPTS = --target none
|
||||
|
||||
all: bcd.65v
|
||||
|
||||
bcd.obj: bcd.asm
|
||||
$(CA65) bcd.asm -I ../.. -l -o bcd.obj
|
||||
|
||||
bcd.bin: bcd.obj
|
||||
$(LD65) $(LD65_OPTS) $+ -o $@
|
||||
|
||||
bcd.65v: bcd.bin
|
||||
$(ECHO) -n ".0200/" > bcd.65v
|
||||
hexdump -e '1/1 "%02X\n"' -v bcd.bin >> bcd.65v
|
||||
$(ECHO) -n ".0200G" >> bcd.65v
|
||||
19
apps/c1p/6502/tests/vflag/makefile
Normal file
19
apps/c1p/6502/tests/vflag/makefile
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
CA65 = ca65
|
||||
LD65 = ld65
|
||||
ECHO = @/bin/echo
|
||||
|
||||
CA65_OPTS =
|
||||
LD65_OPTS = --target none
|
||||
|
||||
all: vflag.65v
|
||||
|
||||
vflag.obj: vflag.asm
|
||||
$(CA65) vflag.asm -I ../.. -l -o vflag.obj
|
||||
|
||||
vflag.bin: vflag.obj
|
||||
$(LD65) $(LD65_OPTS) $+ -o $@
|
||||
|
||||
vflag.65v: vflag.bin
|
||||
$(ECHO) -n ".0200/" > vflag.65v
|
||||
hexdump -e '1/1 "%02X\n"' -v vflag.bin >> vflag.65v
|
||||
$(ECHO) -n ".0200G" >> vflag.65v
|
||||
159
apps/c1p/6502/tests/vflag/vflag.65v
Normal file
159
apps/c1p/6502/tests/vflag/vflag.65v
Normal file
|
|
@ -0,0 +1,159 @@
|
|||
.0200/D8
|
||||
A9
|
||||
01
|
||||
8D
|
||||
99
|
||||
02
|
||||
A9
|
||||
80
|
||||
8D
|
||||
9A
|
||||
02
|
||||
8D
|
||||
9B
|
||||
02
|
||||
A9
|
||||
00
|
||||
8D
|
||||
9C
|
||||
02
|
||||
8D
|
||||
9D
|
||||
02
|
||||
A0
|
||||
01
|
||||
20
|
||||
50
|
||||
02
|
||||
E0
|
||||
01
|
||||
F0
|
||||
28
|
||||
20
|
||||
6F
|
||||
02
|
||||
E0
|
||||
01
|
||||
F0
|
||||
21
|
||||
EE
|
||||
9A
|
||||
02
|
||||
EE
|
||||
9C
|
||||
02
|
||||
D0
|
||||
EA
|
||||
EE
|
||||
9B
|
||||
02
|
||||
EE
|
||||
9D
|
||||
02
|
||||
D0
|
||||
E2
|
||||
88
|
||||
10
|
||||
DF
|
||||
A9
|
||||
00
|
||||
8D
|
||||
99
|
||||
02
|
||||
02
|
||||
01
|
||||
50
|
||||
41
|
||||
53
|
||||
53
|
||||
00
|
||||
F0
|
||||
07
|
||||
02
|
||||
01
|
||||
46
|
||||
41
|
||||
49
|
||||
4C
|
||||
00
|
||||
02
|
||||
00
|
||||
C0
|
||||
01
|
||||
AD
|
||||
9A
|
||||
02
|
||||
6D
|
||||
9B
|
||||
02
|
||||
A2
|
||||
00
|
||||
50
|
||||
01
|
||||
E8
|
||||
C0
|
||||
01
|
||||
AD
|
||||
9C
|
||||
02
|
||||
6D
|
||||
9D
|
||||
02
|
||||
B0
|
||||
04
|
||||
30
|
||||
01
|
||||
E8
|
||||
60
|
||||
10
|
||||
01
|
||||
E8
|
||||
60
|
||||
C0
|
||||
01
|
||||
AD
|
||||
9A
|
||||
02
|
||||
ED
|
||||
9B
|
||||
02
|
||||
A2
|
||||
00
|
||||
50
|
||||
01
|
||||
E8
|
||||
C0
|
||||
01
|
||||
AD
|
||||
9C
|
||||
02
|
||||
ED
|
||||
9D
|
||||
02
|
||||
48
|
||||
A9
|
||||
FF
|
||||
E9
|
||||
00
|
||||
C9
|
||||
FE
|
||||
D0
|
||||
05
|
||||
68
|
||||
30
|
||||
01
|
||||
E8
|
||||
60
|
||||
68
|
||||
90
|
||||
FB
|
||||
10
|
||||
01
|
||||
E8
|
||||
60
|
||||
00
|
||||
00
|
||||
00
|
||||
00
|
||||
00
|
||||
.0200G
|
||||
124
apps/c1p/6502/tests/vflag/vflag.asm
Normal file
124
apps/c1p/6502/tests/vflag/vflag.asm
Normal file
|
|
@ -0,0 +1,124 @@
|
|||
;
|
||||
; The following code comes from:
|
||||
;
|
||||
; http://www.6502.org/tutorials/vflag.html
|
||||
;
|
||||
; and is built with:
|
||||
;
|
||||
; ca65 vflag.asm -I ../.. -l -o vflag.obj
|
||||
; ld65 vflag.obj -o vflag.bin --target none
|
||||
;
|
||||
; An ASCII hex file which the OSI machine-language monitor can load
|
||||
; is produced with the following commands:
|
||||
;
|
||||
; echo -n ".0200/" > vflag.txt
|
||||
; hexdump -e '1/1 "%02X\n"' -v vflag.bin >> vflag.txt
|
||||
; echo -n ".0200" >> vflag.txt
|
||||
;
|
||||
.include "sim.inc"
|
||||
|
||||
; Demonstrate that the V flag works as described
|
||||
;
|
||||
; Returns with ERROR = 0 if the test passes, ERROR = 1 if the test fails
|
||||
;
|
||||
; Five (additional) memory locations are used: ERROR, S1, S2, U1, and U2
|
||||
; which can be located anywhere convenient in RAM
|
||||
;
|
||||
; The program below takes about 16 seconds to complete at 1 MHz.
|
||||
;
|
||||
TEST: CLD ; Clear decimal mode (just in case) for test
|
||||
LDA #1
|
||||
STA ERROR ; Store 1 in ERROR until test passes
|
||||
LDA #$80
|
||||
STA S1 ; Initalize S1 and S2 to -128 ($80)
|
||||
STA S2
|
||||
LDA #0
|
||||
STA U1 ; Initialize U1 and U2 to 0
|
||||
STA U2
|
||||
LDY #1 ; Initialize Y (used to set and clear the carry flag) to 1
|
||||
LOOP: JSR ADD ; Test ADC
|
||||
CPX #1
|
||||
BEQ ERR ; End if V and unsigned result do not agree (X = 1)
|
||||
JSR SUB ; Test SBC
|
||||
CPX #1
|
||||
BEQ ERR ; End if V and unsigned result do not agree (X = 1)
|
||||
INC S1
|
||||
INC U1
|
||||
BNE LOOP ; Loop until all 256 possibilities of S1 and U1 are tested
|
||||
INC S2
|
||||
INC U2
|
||||
BNE LOOP ; Loop until all 256 possibilities of S2 and U2 are tested
|
||||
DEY
|
||||
BPL LOOP ; Loop until both possiblities of the carry flag are tested
|
||||
LDA #0
|
||||
STA ERROR ; All tests pass, so store 0 in ERROR
|
||||
SIM_MSG "PASS"
|
||||
BEQ DONE
|
||||
ERR: SIM_MSG "FAIL"
|
||||
DONE: SIM_HLT
|
||||
;
|
||||
; Test ADC
|
||||
;
|
||||
; X is initialized to 0
|
||||
; X is incremented when V = 1
|
||||
; X is incremented when the unsigned result predicts an overflow
|
||||
; Therefore, if the V flag and the unsigned result agree, X will be
|
||||
; incremented zero or two times (returning X = 0 or X = 2), and if they do
|
||||
; not agree X will be incremented once (returning X = 1)
|
||||
;
|
||||
ADD: CPY #1 ; Set carry when Y = 1, clear carry when Y = 0
|
||||
LDA S1 ; Test twos complement addition
|
||||
ADC S2
|
||||
LDX #0 ; Initialize X to 0
|
||||
BVC ADD1
|
||||
INX ; Increment X if V = 1
|
||||
ADD1: CPY #1 ; Set carry when Y = 1, clear carry when Y = 0
|
||||
LDA U1 ; Test unsigned addition
|
||||
ADC U2
|
||||
BCS ADD3 ; Carry is set if U1 + U2 >= 256
|
||||
BMI ADD2 ; U1 + U2 < 256, A >= 128 if U1 + U2 >= 128
|
||||
INX ; Increment X if U1 + U2 < 128
|
||||
ADD2: RTS
|
||||
ADD3: BPL ADD4 ; U1 + U2 >= 256, A <= 127 if U1 + U2 <= 383 ($17F)
|
||||
INX ; Increment X if U1 + U2 > 383
|
||||
ADD4: RTS
|
||||
;
|
||||
; Test SBC
|
||||
;
|
||||
; X is initialized to 0
|
||||
; X is incremented when V = 1
|
||||
; X is incremented when the unsigned result predicts an overflow
|
||||
; Therefore, if the V flag and the unsigned result agree, X will be
|
||||
; incremented zero or two times (returning X = 0 or X = 2), and if they do
|
||||
; not agree X will be incremented once (returning X = 1)
|
||||
;
|
||||
SUB: CPY #1 ; Set carry when Y = 1, clear carry when Y = 0
|
||||
LDA S1 ; Test twos complement subtraction
|
||||
SBC S2
|
||||
LDX #0 ; Initialize X to 0
|
||||
BVC SUB1
|
||||
INX ; Increment X if V = 1
|
||||
SUB1: CPY #1 ; Set carry when Y = 1, clear carry when Y = 0
|
||||
LDA U1 ; Test unsigned subtraction
|
||||
SBC U2
|
||||
PHA ; Save the low byte of result on the stack
|
||||
LDA #$FF
|
||||
SBC #$00 ; result = (65280 + U1) - U2, 65280 = $FF00
|
||||
CMP #$FE
|
||||
BNE SUB4 ; Branch if result >= 65280 ($FF00) or result < 65024 ($FE00)
|
||||
PLA ; Get the low byte of result
|
||||
BMI SUB3 ; result < 65280 ($FF00), A >= 128 if result >= 65152 ($FE80)
|
||||
SUB2: INX ; Increment X if result < 65152 ($FE80)
|
||||
SUB3: RTS
|
||||
SUB4: PLA ; Get the low byte of result (does not affect the carry flag)
|
||||
BCC SUB2 ; The carry flag is clear if result < 65024 ($FE00)
|
||||
BPL SUB5 ; result >= 65280 ($FF00), A <= 127 if result <= 65407 ($FF7F)
|
||||
INX ; Increment X if result > 65407 ($FF7F)
|
||||
SUB5: RTS
|
||||
|
||||
.data
|
||||
ERROR: .byte 0
|
||||
S1: .byte 0
|
||||
S2: .byte 0
|
||||
U1: .byte 0
|
||||
U2: .byte 0
|
||||
132
apps/c1p/BASIC/JP/CHECKERS.BAS
Normal file
132
apps/c1p/BASIC/JP/CHECKERS.BAS
Normal file
|
|
@ -0,0 +1,132 @@
|
|||
1 REM--CHECKERS?--
|
||||
2 REM-MEM.SIZE:8183-
|
||||
3 T1=300:A=53448
|
||||
5 FORC=1TO24:PRINT:NEXT:GOSUB10000:GOSUB20000
|
||||
7 FORC=8184TO8191:READD:POKEC,D:NEXT:POKE11,248:POKE12,31
|
||||
8 DATA32,0,253,141,255,31,96,0
|
||||
10 FORC=A+640TOA+665:POKEC,32:NEXT:POKEA+640,63
|
||||
11 M=USR(M):M=PEEK(8191)-48:IFM=9ANDG8=0THENG8=1:GOTO34
|
||||
12 G8=1:IFM<1ORM>8THEN10
|
||||
13 IFM=9ANDG9=1THENG9=0:GOTO34
|
||||
14 IFM=9OR(M<>X1ANDG9=1)THEN10
|
||||
15 POKEA+642,M+48:POKEA+643,44:X=M:M=USR(M):M=PEEK(8191)-48
|
||||
16 IF(M<>Y1ANDG9=1)ORM<1ORM>8THEN10
|
||||
17 POKEA+644,M+48
|
||||
18 Y=M:M=USR(M):M=PEEK(8191)-48
|
||||
19 IF(G9=1ANDABS(X-M)<>2)ORM<1ORM>8THEN10
|
||||
20 POKEA+646,M+48:POKEA+647,44:X1=M:M=USR(M):M=PEEK(8191)-48
|
||||
23 IFM<1ORM>8THEN10
|
||||
25 POKEA+648,M+48:Y1=M:IFABS(X-X1)<>ABS(Y-Y1)THEN10
|
||||
26 IFABS(X-X1)>2ORX>8ORY>8ORX1>8ORY1>8THEN10
|
||||
27 IFP(X,Y)<1ORP(X1,Y1)<>0THEN10
|
||||
28 IFP(X,Y)=1ANDY1<YTHEN10
|
||||
29 IFABS(X-X1)=2ANDP((X+X1)/2,(Y+Y1)/2)>-1THEN10
|
||||
30 P(X1,Y1)=P(X,Y):P(X,Y)=0:IFABS(X-X1)=2THENP((X+X1)/2,(Y+Y1)/2)=0
|
||||
31 IFY1=8THENP(X1,Y1)=2
|
||||
32 IFABS(X-X1)=2THENGOSUB20000:G9=1:GOTO10
|
||||
33 GOSUB20000
|
||||
34 FORC=A+640TOA+665:POKEC,32:NEXT
|
||||
35 REM-MAIN PROGRAM-
|
||||
230 G=-1:R=-99:FORY=1TO8:FORX=1TO8
|
||||
231 IFP(X,Y)>-1THEN350
|
||||
300 W=8:M=P(X,Y)
|
||||
310 IFM=-1THENFORA1=-1TO1STEP2:B1=G:GOSUB650:NEXTA1
|
||||
330 IFM=-2THENFORA1=-1TO1STEP2:FORB1=1TO-1STEP-2:GOSUB650:NEXTB1,A1
|
||||
350 L6=0:L7=0:L8=0:L9=0:NEXTX,Y:GOTO1140
|
||||
650 U=X+A1:V=Y+B1:IFU<1ORU>8ORV<1ORV>8THEN870
|
||||
660 FORC1=-1TO1STEP2:FORD1=-1TO1STEP2
|
||||
670 IFX+C1<1ORX+C1>8ORY+D1<1ORY+D1>8THEN700
|
||||
673 IFX+C1*2<1ORX+C1*2>8ORY+D1*2<1ORY+D1*2>8THEN700
|
||||
675 IFP(X+C1,Y+D1)>-1THEN700
|
||||
680 IFP(X+C1*2,Y+D1*2)<>2ANDY+D1>YTHEN700
|
||||
682 IFX-C1<1ORX-C1>8ORY-D1<1ORY-D1>8THEN685
|
||||
683 IFP(X+C1,Y+D1)>0ANDP(X-C1,Y-D1)=0THENL9=1
|
||||
685 IFP(X+C1*2,Y+D1*2)<1THEN700
|
||||
690 Q=Q-4:GOTO740
|
||||
700 NEXTD1,C1
|
||||
740 IFP(U,V)=0THENGOSUB910:GOTO870
|
||||
770 IFP(U,V)<0THEN870
|
||||
790 U=U+A1:V=V+B1:IFU<1ORV<1ORU>8ORV>8THEN870
|
||||
850 IFP(U,V)=0THENGOSUB910
|
||||
870 RETURN
|
||||
910 REM
|
||||
920 IFABS(Y-V)=2THENQ=Q+4
|
||||
930 IFL8=0ANDP(X,Y)=-1THENQ=Q+(2-Y/2)
|
||||
1000 IFP(X,Y)=-2THENQ=Q-1
|
||||
1030 IFP(X,Y)=-1THENFORC1=-1TO1STEP2:FORD1=-1TO-1:GOTO1033
|
||||
1031 IFP(X,Y)=-2THENFORC1=-1TO1STEP2:FORD1=-1TO1STEP2:GOTO1033
|
||||
1032 GOTO1081
|
||||
1033 IFU+C1<1ORU+C1>8ORV+D1<1ORV+D1>8THEN1080
|
||||
1034 IFU+C1*2<1ORU+C1*2>8ORV+D1*2<1ORV+D1*2>8THEN1040
|
||||
1035 IFP(U+C1,V+D1)<0ANDP(U+C1*2,V+D1*2)>0THENQ=Q+4
|
||||
1036 IFU-C1<1ORU-C1>8ORV-D1<1ORV-D1>8THEN1080
|
||||
1037 IFP(U+C1,V+D1)>0ANDP(U-C1,V-D1)<>0ANDP(U+C1*2,V+D1*2)=0THENQ=Q+2
|
||||
1040 IFU-C1<1ORU-C1>8ORV-D1<1ORV-D1>8THEN1080
|
||||
1042 IFV+D1>VANDP(U+C1,V+D1)<2THEN1050
|
||||
1045 IFP(U+C1,V+D1)>0AND(P(U-C1,V-D1)=0OR(X=U-C1ANDY=V-D1))THEN5000
|
||||
1047 IFL9=1THENQ=Q+1:L7=1
|
||||
1050 IFP(U+C1,V+D1)<>0ANDP(U-C1,V-D1)<>0ANDY<>8ANDP(X,Y)=-1THENQ=Q+1
|
||||
1080 NEXTD1,C1
|
||||
1081 IFL6=0THENQ=Q+4
|
||||
1082 IFQ>RTHENR=Q:R1=X:R2=Y:R3=U:R4=V
|
||||
1090 IFQ=RANDINT(RND(X)*10)+1<4THENR1=X:R2=Y:R3=U:R4=V
|
||||
1100 Q=0:RETURN
|
||||
1140 IFR=-99THEN1880
|
||||
1230 R=-99:GOSUB2000
|
||||
1240 IFR4=1THENP(R3,R4)=-2:GOTO1310
|
||||
1250 P(R3,R4)=P(R1,R2)
|
||||
1310 P(R1,R2)=0:IFABS(R1-R3)<>2THEN1420
|
||||
1330 P((R1+R3)/2,(R2+R4)/2)=0
|
||||
1340 X=R3:Y=R4:IFP(X,Y)=-1THENB1=-2:FORA1=-2TO2STEP4:GOSUB1370
|
||||
1350 IFP(X,Y)=-2THENFORA1=-2TO2STEP4:FORB1=-2TO2STEP4:GOSUB1370:NEXTB1
|
||||
1360 NEXTA1:IFR<>-99THENR=-99:GOTO1240
|
||||
1365 GOTO1420
|
||||
1370 U=X+A1:V=Y+B1:IFU<1ORU>8ORV<1ORV>8THEN1400
|
||||
1380 IFP(U,V)=0ANDP(X+A1/2,Y+B1/2)>0THENGOSUB910
|
||||
1400 RETURN
|
||||
1420 FORT=1TO1400:NEXT:GOSUB20000:GOTO10
|
||||
1880 PRINT:PRINT" I CONCEDE...":END
|
||||
2000 REM-COMMENTS-
|
||||
2010 POKEA+640,73:POKEA+642,65:POKEA+643,77
|
||||
2015 IFABS(R1-R3)=2THEN2050
|
||||
2017 POKEA+645,77:POKEA+646,79
|
||||
2020 POKEA+647,86:POKEA+648,73:POKEA+649,78:POKEA+650,71:POKEA+651,46
|
||||
2030 POKEA+652,46:POKEA+653,46:RETURN
|
||||
2050 POKEA+645,74:POKEA+646,85:POKEA+647,77:POKEA+648,80:POKEA+649,73
|
||||
2060 POKEA+650,78:POKEA+651,71:POKEA+652,46:POKEA+653,46:POKEA+654,46
|
||||
2070 RETURN
|
||||
4000 POKEB1,187:POKEB1+1,187:POKEB1+32,187:POKEB1+33,187:RETURN
|
||||
5000 Q=Q-4:IFP(X,Y)=-2THENQ=Q-2
|
||||
5002 L6=1
|
||||
5003 IF(ABS(Y-V)=2ORABS(X-U)=2)ANDRND(X)*100<40THENQ=Q-1
|
||||
5004 IFL9=1ANDL7=1THENQ=Q-1:L7=0
|
||||
5005 GOTO1080
|
||||
9999 END
|
||||
10000 REM-CHESSBOARD-
|
||||
10005 FORB=ATOA+15:POKEB,154:POKEB+544,155:NEXT
|
||||
10010 FORB=B+32TOA+544STEP32:POKEB,156:POKEB-17,157:NEXT
|
||||
10015 POKEA-1,165:POKEA+16,167:POKEA+560,168:POKEA+543,166
|
||||
10017 GOTO10047:REM-THIS FOR ALTERNATE BOARD-
|
||||
10020 FORB=A+33TOA+45STEP2:POKEB,143:POKEB+481,136:NEXT
|
||||
10025 FORB=B+64TOA+512STEP64:POKEB,135:POKEB-47,128:NEXT
|
||||
10040 FORB=A+66TOA+452STEP64:FORB1=BTOB+12STEP2:POKEB1,209:NEXTB1,B
|
||||
10045 FORB=A+97TOA+481STEP64:FORB1=BTOB+12STEP2:POKEB1,207:NEXTB1,B
|
||||
10047 REM-CHEC. INIT.--
|
||||
10050 DIMP(8,8):FORX=1TO8:FORY=1TO3:IF(X+Y)/2=INT((X+Y)/2)THENP(X,Y)=1
|
||||
10055 IF(X+Y+5)/2=INT((X+Y+5)/2)THENP(X,Y+5)=-1
|
||||
10060 NEXTY,X:P(1,7)=-1
|
||||
10065 X=57:FORB=A+62TOA+510STEP64:X=X-1:POKEB,X:NEXT
|
||||
10070 FORB=A+576TOA+590STEP2:POKEB,X:X=X+1:NEXT
|
||||
10075 RETURN
|
||||
20000 REM--PIECES--
|
||||
20005 Y=9:FORB=A+32TOA+480STEP64:X=0:Y=Y-1:FORB1=BTOB+14STEP2:X=X+1
|
||||
20010 E3=168:M=P(X,Y):T=(X+Y)/2:IFM<0THENPOKEB1,88
|
||||
20011 REM INSTRUCTIONS INVOLVING "T" ACCOUNT FOR FILLED BLOCKS
|
||||
20012 IFT<>INT(T)THENGOSUB4000
|
||||
20015 IFM>0THENPOKEB1,79
|
||||
20017 IFT=INT(T)THENPOKEB1+1,32:POKEB1+32,32
|
||||
20020 IFABS(M)=2THENE3=107
|
||||
20040 IFM=0ANDT=INT(T)THENPOKEB1,32:POKEB1+33,32:GOTO20100
|
||||
20050 IFT<>INT(T)THEN20100
|
||||
20099 POKEB1+33,E3
|
||||
20100 NEXTB1,B:RETURN
|
||||
177
apps/c1p/BASIC/JP/HANGWOMAN.BAS
Normal file
177
apps/c1p/BASIC/JP/HANGWOMAN.BAS
Normal file
|
|
@ -0,0 +1,177 @@
|
|||
1 DEFFNQ(X)=INT(RND(RS)*X)+1
|
||||
2 REM
|
||||
3 REM * HANGWOMAN *
|
||||
4 REM
|
||||
10 DEFFNQ(X)=INT(RND(RS)*X)+1
|
||||
11 C=53446:Y=0:RS=PEEK(8191)
|
||||
12 POKE11,0:POKE12,253
|
||||
18 PRINT:PRINTTAB(6);"HANGWOMAN":FORM=1TO22:PRINT:NEXT
|
||||
20 GOSUB800:C=C-32
|
||||
25 A$="USED LETTERS:":P=C+103:GOSUB850
|
||||
28 A$="AND THE WORD:":P=C+551:GOSUB850
|
||||
30 GOSUB900:A$="":FORM=1TOLEN(B$):A$=A$+CHR$(95):NEXTM:L=1:R=C+167
|
||||
31 K=1:S=1
|
||||
35 REM*BEGIN QUEST*
|
||||
39 P=C+616:GOSUB850
|
||||
40 IFY=0THENX=4:GOTO42
|
||||
41 X=FNQ(10):IFX<4THENC$="GIVE ME A LETTER: "
|
||||
42 IFX=4ORX=5ORX=6THENC$="WHAT DO YOU THINK? "
|
||||
43 IFX>6ANDY=1THENC$="TRY ANOTHER LETTER: "
|
||||
45 GOSUB890:Y=1
|
||||
46 X=USR(X):A=PEEK(531):IFA<65ORA>90THEN46
|
||||
50 PRINTCHR$(A);
|
||||
51 RS=RS+A/K
|
||||
52 FORT=1TO1500:NEXTT
|
||||
55 FORN=1TOLEN(B$):IFCHR$(A)=MID$(B$,N,1)THEN75
|
||||
58 NEXTN
|
||||
61 X=FNQ(10):IFX<4THENC$="I DON'T THINK SO..."
|
||||
62 IFX=4ORX=5ORX=6THENC$="WELL, ALMOST..."
|
||||
63 IFX>6THENC$="NOBODY'S PERFECT..."
|
||||
64 GOSUB875
|
||||
65 ONKGOSUB200,280,210,220,230,260,240,250,320,340
|
||||
70 K=K+1:GOTO85
|
||||
75 REM*MATCH*
|
||||
76 FORM=1TOLEN(A$):IFCHR$(A)<>MID$(A$,M,1)THEN78
|
||||
77 C$="YOU DID THAT, DUMMY!":GOTO64
|
||||
78 NEXTM
|
||||
79 GOSUB190
|
||||
80 FORM=NTOLEN(B$)
|
||||
81 IFMID$(B$,M,1)=CHR$(A)THENA$=MID$(A$,1,M-1)+CHR$(A)+MID$(A$,M+1)
|
||||
82 NEXTM
|
||||
85 REM*SHOW LETTER*
|
||||
90 POKER+1,A:R=R+2:S=S+1:IFS>5THENS=1:R=R+54
|
||||
92 L=L+1:IFL>26ORK>10THEN150
|
||||
94 FORM=1TOLEN(A$):IFMID$(A$,M,1)=CHR$(95)THEN35
|
||||
96 NEXTM
|
||||
100 REM*WON GAME*
|
||||
105 P=C+616:GOSUB850
|
||||
108 IFW=0THENC$="YOU ACTUALLY WON!"
|
||||
110 IFW=1THENC$="YOU'RE IMPROVING..."
|
||||
112 IFW=2THENC$="WHAT CAN I SAY?"
|
||||
114 IFW=3THENC$="IT WAS EASY ANYWAY..."
|
||||
116 IFW>3THENC$="YOU'RE TOO GOOD"
|
||||
118 W=W+1:GOSUB875
|
||||
119 GOSUB600
|
||||
120 IFFNQ(10)>5THENC$="WANT TO TRY AGAIN? ":GOTO125
|
||||
122 C$="HOW ABOUT ANOTHER? "
|
||||
125 GOSUB875:X=USR(X):A=PEEK(531):IFCHR$(A)="Y"THENPRINT:GOTO10
|
||||
130 GOTO189
|
||||
150 REM*LOST GAME*
|
||||
155 P=C+616:A$=B$:GOSUB850
|
||||
160 IFV=0THENC$="I KNEW YOU'D SLIP!"
|
||||
162 IFV=1THENC$="THAT WAS PRETTY SAD"
|
||||
163 IFV=2THENC$="BOY, YOU NEED HELP..."
|
||||
165 IFV>2THENC$="GO SIT ON A BOOGERPOT"
|
||||
170 V=V+1:GOSUB875:GOSUB625:GOTO120
|
||||
189 END
|
||||
190 IFFNQ(10)<7THEN196
|
||||
191 IFFNQ(10)>5 THEN194
|
||||
192 C$="WELL, ALMOST...":GOSUB875:C$=" IS GOOD ENOUGH!!":GOSUB875
|
||||
193 GOTO199
|
||||
194 C$="I DON'T THINK SO...":GOSUB875:C$="I CHANGED MY MIND!!!"
|
||||
195 GOSUB875:GOTO199
|
||||
196 C$="WOW! YOU FOUND ONE!":GOSUB875
|
||||
199 RETURN
|
||||
200 REM*HEAD*
|
||||
202 POKEC+67,150:POKEC+68,150:POKEC+98,201:POKEC+101,200
|
||||
204 POKEC+130,140:POKEC+133,139:POKEC+162,199:POKEC+165,202
|
||||
206 POKEC+195,135:POKEC+196,135
|
||||
207 IFFNQ(10)>5THENC$="THERE'S THE HEAD.":GOSUB875:GOTO209
|
||||
208 C$="OOPS, SHE'S GOT HEAD!":GOSUB875
|
||||
209 RETURN
|
||||
210 REM*NECK*
|
||||
212 POKEC+195,210:POKEC+196,207:POKEC+227,190:POKEC+228,189
|
||||
215 C$="OH MY...A NECK.":GOSUB875
|
||||
219 RETURN
|
||||
220 REM*R.ARM*
|
||||
222 POKEC+226,189:FORM=C+257TOC+353STEP32:POKEM,143:NEXTM
|
||||
224 POKEC+354,208:POKEC+322,143:POKEC+290,143
|
||||
225 C$="LOOKS LIKE A BONY ARM":GOSUB875
|
||||
229 RETURN
|
||||
230 REM*L.ARM*
|
||||
232 POKEC+229,190:FORM=C+262TOC+358STEP32:POKEM,136:NEXTM
|
||||
234 POKEC+357,209:POKEC+325,136:POKEC+293,136
|
||||
235 C$="ANOTHER BONY ARM!":GOSUB875
|
||||
239 RETURN
|
||||
240 REM*R.LEG*
|
||||
242 POKEC+387,136:FORM=C+418TOC+514STEP32:POKEM,143:NEXTM
|
||||
244 POKEC+515,208:POKEC+483,143:POKEC+451,143:POKEC+419,143
|
||||
245 C$="OH, A LOVELY LEG!":GOSUB875
|
||||
249 RETURN
|
||||
250 REM*L.LEG*
|
||||
252 POKEC+388,143:FORM=C+421TOC+517STEP32:POKEM,136:NEXTM
|
||||
254 POKEC+516,128
|
||||
255 C$="ANOTHER PEACHY LEG...":GOSUB875
|
||||
259 RETURN
|
||||
260 REM*R.HAND*
|
||||
265 POKEC+386,89
|
||||
270 REM*L.HAND*
|
||||
275 POKEC+389,89
|
||||
276 C$="DISHPAN HANDS....":GOSUB875
|
||||
279 RETURN
|
||||
280 REM*FACE*
|
||||
285 POKEC+99,111:POKEC+100,111
|
||||
305 POKEC+131,220:POKEC+132,223:POKEC+163,135:POKEC+164,135
|
||||
308 C$="A LEWD EXPRESSION.":GOSUB875
|
||||
309 RETURN
|
||||
320 REM*R.FOOT*
|
||||
325 POKEC+547,140:POKEC+579,172
|
||||
330 REM*L.FOOT*
|
||||
335 POKEC+548,139:POKEC+580,172
|
||||
336 C$="WHAT GOES TIPTOE?":GOSUB875
|
||||
339 RETURN
|
||||
340 REM*CLOTHES*
|
||||
342 FORM=C+260TOC+356STEP32:POKEM,136:NEXTM
|
||||
344 POKEC+387,210:POKEC+388,207:POKEC+259,95
|
||||
346 C$="NOW SHE'S DRESSED!":GOSUB875
|
||||
349 RETURN
|
||||
600 REM*LAUGH*
|
||||
601 IFK>11THEN625
|
||||
605 FORM=1TO50
|
||||
606 POKEC+163,197:POKEC+164,195
|
||||
607 FORT=1TO50:NEXTT
|
||||
609 POKEC+163,135:POKEC+164,135
|
||||
611 FORT=1TO50:NEXTT
|
||||
615 NEXTM
|
||||
620 RETURN
|
||||
625 REM*KICK*
|
||||
627 FORM=1TO50
|
||||
630 POKEC+547,202:POKEC+548,199:POKEC+578,166:POKEC+581,168
|
||||
633 POKEC+579,32:POKEC+580,32
|
||||
635 FORT=1TO75:NEXTT
|
||||
638 POKEC+547,140:POKEC+548,139:POKEC+578,32:POKEC+581,32
|
||||
640 POKEC+579,172:POKEC+580,172
|
||||
645 FORT=1TO75:NEXTT
|
||||
650 NEXTM:RETURN
|
||||
800 REM*MAKE GALLOW*
|
||||
803 FORM=C+1TOC+4:POKEM,135:NEXTM:POKEC,210:POKEC+5,136:POKEC+37,136
|
||||
806 FORM=C+32TOC+17*32STEP32:POKEM,136:NEXTM:POKEM,209:POKEM-1,128
|
||||
809 FORN=M+1TOM+5:POKEN,128:NEXTN
|
||||
820 RETURN
|
||||
850 REM*POKE WORD*
|
||||
855 FORM=1TOLEN(A$):POKEP,ASC(MID$(A$,M,1)):P=P+1:NEXTM
|
||||
859 RETURN
|
||||
875 REM*DISP.MESG*
|
||||
885 PRINTCHR$(13);" ";CHR$(13);C$;
|
||||
886 FORT=1TO1500:NEXTT
|
||||
889 RETURN
|
||||
890 PRINTCHR$(13);" ";CHR$(13);C$;
|
||||
899 RETURN
|
||||
900 REM*GET WORD*
|
||||
905 T=FNQ(100)
|
||||
910 FORT1=1TOT:READB$:IFB$="*"THENRESTORE:READB$
|
||||
915 NEXTT1
|
||||
930 A$="":FORT=1TOLEN(B$):T1=ASC(MID$(B$,T,1))
|
||||
935 IFT1=65THENT1=91
|
||||
940 A$=A$+CHR$(T1-1):NEXTT
|
||||
950 B$=A$:RETURN
|
||||
960 REM*TEST*
|
||||
965 T=1:GOSUB910:PRINTB$:GOTO965
|
||||
1000 DATAIFMMP,RVJFU,EPPSLOPC,IVSSZ,BDJE,VOEFSXFBS,LJUDIFO,XBZ
|
||||
1010 DATAMJTUFO,SBDJOH,ZPVST,HPBU,CPPHFS,GJSTU,PQFSBUJPO,VUFOTJM
|
||||
1020 DATAIBQQZ,TLJQQFS,TXJUDI,VQQFS,BSNPS,KPZ,AJQQFS,XFSF,HFUUJOH
|
||||
1030 DATAQBOEB,BGSBJE,UPVDIZ,SJTL,DFOUT,QMFBTF,CVZ
|
||||
1040 DATAFOWFMPQF,SIZUIN,MJQTUJDL,PWFS,PCTBDMF,CVMC,CVSOFE,UIJT
|
||||
1045 DATAGSPN,OJCCMF,TUJOH,SPMMFS,RVJDLTBOE,TIFQIFSE,GSPNKFGG
|
||||
1050 DATADBOEMF,TQJEFS,DFSFBM,HPJOH,XIJTLFS,QPUUZ,XIFUIFS,VODMF,IPQF
|
||||
1060 DATA*
|
||||
143
apps/c1p/BASIC/JP/LIFE.BAS
Normal file
143
apps/c1p/BASIC/JP/LIFE.BAS
Normal file
|
|
@ -0,0 +1,143 @@
|
|||
1 REM-GRAPHICS WITH-
|
||||
2 REM-GEOMETRY/LIFE-
|
||||
3 REM--USER ROUTINE-
|
||||
4 REM--MEM.SIZE:8167
|
||||
5 RESTORE:B=8192:POKE11,232:POKE12,31:FORC=1TO24:PRINT:NEXT
|
||||
6 FORA=B-24TOB-1:READD:POKEA,D:NEXT
|
||||
7 DATA169,32,160,8,162,0,157,0,208,232,208
|
||||
8 DATA250,238,240,31,136,208,244,169,208,141,240,31,96
|
||||
10 REM-MAIN PROGRAM-
|
||||
12 DIMY(21,21),U(20)
|
||||
13 GOSUB800
|
||||
15 POKE8169,32:X=USR(X):AA=54023:G=1:Z=-1
|
||||
20 FORA=0TO18:POKEAA+A,128:POKEAA+19-A*32,136
|
||||
25 POKEAA-590-A,128:POKEAA-576+A*32,136
|
||||
30 NEXTA:POKEAA,209
|
||||
35 FORB=0TO9:FORA=0TO18:POKEAA-558-A+B*32,209
|
||||
40 IFB<9ANDA>0THENPOKEAA+A-(B+1)*32,128
|
||||
43 IFA=0THENPOKEAA-(B+1)*32,209
|
||||
45 IFA<18THENPOKEAA+A+1-B*32,209
|
||||
50 NEXTA,B
|
||||
55 B=64:A=AA+31:FORC=1TO19:POKEA+C,B+C:POKEA-C*32,B+C:NEXT
|
||||
60 MA=1:NA=1:MI=21:NI=21:REM--GRAPHING--
|
||||
65 POKEAA+102,123:POKEAA+104,44:POKEAA+106,124
|
||||
70 POKEAA+103,95:POKEAA+105,95:GOSUB1000:A=C:IFC<0THEN85
|
||||
73 POKEAA+103,96+C
|
||||
75 GOSUB1000:B=C:IFC<0THEN85
|
||||
77 POKEAA+105,96+C:FORT=1TO75:NEXT:POKEAA+A-1-(B-1)*32,161
|
||||
80 A=A+1:B=B+1:Y(A,B)=1:FORT=1TO250:NEXT:GOSUB400:GOTO70
|
||||
85 FORC=1TO24:PRINT:NEXT:FORT=1TO1000:NEXT:POKE8169,46:X=USR(X)
|
||||
87 AA=AA+31:GOSUB300:GOSUB200
|
||||
90 FORB=1TO21:FORA=1TO21:IFY(A,B)=0THEN100
|
||||
95 POKEAA+A-1-(B-1)*32,240:P=P+1
|
||||
100 NEXTA,B:IFP=0THEN15
|
||||
110 POKEAA+65,91:POKEAA+66,71:POKEAA+67,69:POKEAA+68,78:POKEAA+69,61
|
||||
112 POKEAA+73,32:POKEAA+74,32
|
||||
115 POKEAA+75,80:POKEAA+76,79:POKEAA+77,80:POKEAA+78,61:POKEAA+82,93
|
||||
117 C=3:G$=STR$(G)
|
||||
120 POKEAA+69+C,ASC(RIGHT$(G$,4-C)):C=C-1:IFC>0THEN120
|
||||
125 GOSUB605
|
||||
135 REM-LIFE/DEATH-
|
||||
140 K=0:FORB=MITOMA:FORA=NITONA
|
||||
143 R=PEEK(AA+A-1-(B-1)*32):P1=P:POKEAA+A-1-(B-1)*32,171
|
||||
145 IFY(A,B)<>0THEN155
|
||||
150 GOSUB500:IFX=B1THENY(A,B)=-1:POKEAA+A-1-(B-1)*32,240:P=P+1:K=1
|
||||
153 GOTO160
|
||||
155 GOSUB500:IFX<L1ORX>L2THENY(A,B)=2:POKEAA+A-1-(B-1)*32,46:P=P-1:K=1
|
||||
157 IFX1>0THENPOKEAA+82,43:POKEAA+83,93
|
||||
160 IFP<>P1THEN180
|
||||
170 POKEAA+A-1-(B-1)*32,R
|
||||
180 GOSUB605:NEXTA,B
|
||||
181 IFK=0THENGOSUB1000:GOTO15
|
||||
182 MA=1:NA=1:MI=21:NI=21
|
||||
183 FORA=1TO21:FORB=1TO21:IFY(A,B)=2THENY(A,B)=0
|
||||
185 IFY(A,B)=0THEN192
|
||||
187 IFY(A,B)=-1THENY(A,B)=1
|
||||
190 GOSUB400
|
||||
192 NEXTB,A
|
||||
193 IFP=0THENGOSUB1000:GOTO15
|
||||
194 K=0:GOSUB300:IFK=0THEN199
|
||||
195 GOSUB200:FORD=21TO1STEP-1:FORC=1TO21
|
||||
196 IFY(C,D)=0THENPOKEAA+C-1-(D-1)*32,46:GOTO198
|
||||
197 POKEAA+C-1-(D-1)*32,240
|
||||
198 NEXTC,D:GOSUB250
|
||||
199 G=G+1:GOTO117
|
||||
200 FORC=1TO19:U(C)=PEEK(AA+64+C):NEXT
|
||||
205 RESTORE:FORC=1TO100:READD:IFD>=0THENNEXT
|
||||
210 FORC=1TO19:READD:POKEAA+64+C,D:NEXT
|
||||
220 RETURN
|
||||
230 DATA-1,32,32,32,82,69,45,67,69,78,84,69,82,73,78,71,32,32,32,32
|
||||
250 FORC=1TO19:POKEAA+64+C,U(C):NEXT:RETURN
|
||||
300 L=INT(((21-MA)-(MI-1))/2+.5)
|
||||
301 IFL=0THEN350
|
||||
305 K=1:IFL>0THEN330
|
||||
310 FORD=1-LTO21:FORC=1TO21:Y(C,D+L)=Y(C,D)
|
||||
315 Y(C,D)=0
|
||||
320 NEXTC,D:MA=MA+L:MI=MI+L:GOTO350
|
||||
330 FORD=21-LTO1STEP-1:FORC=1TO21
|
||||
340 Y(C,D+L)=Y(C,D):Y(C,D)=0:NEXTC,D
|
||||
345 MA=MA+L:MI=MI+L
|
||||
350 L=INT(((21-NA)-(NI-1))/2)
|
||||
351 IFL=0THENRETURN
|
||||
355 K=1:IFL>0THEN375
|
||||
360 FORC=1-LTO21:FORD=1TO21
|
||||
365 Y(C+L,D)=Y(C,D):Y(C,D)=0:NEXTD,C
|
||||
370 NA=NA+L:NI=NI+L:RETURN
|
||||
375 FORC=21-LTO1STEP-1:FORD=1TO21
|
||||
380 Y(C+L,D)=Y(C,D):Y(C,D)=0:NEXTD,C
|
||||
385 NA=NA+L:NI=NI+L:RETURN
|
||||
400 IFB<=MITHENMI=B-1
|
||||
410 IFB>=MATHENMA=B+1
|
||||
420 IFA<=NITHENNI=A-1
|
||||
430 IFA>=NATHENNA=A+1
|
||||
445 IFMA>21THENMA=21
|
||||
450 IFMI<1THENMI=1
|
||||
465 IFNA>21THENNA=21
|
||||
470 IFNI<1THENNI=1
|
||||
480 RETURN
|
||||
500 X=0:X1=0
|
||||
505 FORC=C1*-1TOC1STEPC1:FORD=C1*-1TOC1STEPC1
|
||||
507 IFA+C<1ORA+C>21ORB+D<1ORB+D>21THENX1=1:GOTO525
|
||||
510 IFY(A+C,B+D)<1OR(C=0ANDD=0)THEN525
|
||||
515 X=X+1
|
||||
525 NEXTD,C
|
||||
530 RETURN
|
||||
600 Z=Z*-1
|
||||
605 G$=STR$(P):C=3
|
||||
606 IFZ>0THEN615
|
||||
610 POKEAA+78+C,ASC(RIGHT$(G$,4-C)):C=C-1:IFC>0THEN610
|
||||
612 GOTO620
|
||||
615 POKEAA+79,32:POKEAA+80,32:POKEAA+81,32
|
||||
620 RETURN
|
||||
800 PRINT" WHAT ARE THE LOWER/":PRINT:PRINT" UPPER SURVIVAL LIMITS.."
|
||||
805 INPUTL1,L2:PRINT
|
||||
810 PRINT" INPUT BIRTH FACTOR";:INPUTB1
|
||||
820 PRINT:PRINT" INPUT CELL DISTANCE";:INPUTC1
|
||||
825 FORC=1TO24:PRINT:NEXT:RETURN
|
||||
1000 REM--SCAN--
|
||||
1005 C=0:K=57088:POKE530,1
|
||||
1007 FORT=1TO150:NEXT
|
||||
1010 POKEK,223:IFPEEK(K)=191THENC=12
|
||||
1015 IFPEEK(K)=223THENC=15
|
||||
1017 IFPEEK(K)=247THENC=-1
|
||||
1020 POKEK,239:IFPEEK(K)=191THENC=5
|
||||
1025 IFPEEK(K)=223THENC=18
|
||||
1030 IFPEEK(K)=253THENC=9
|
||||
1035 POKEK,247:IFPEEK(K)=191THENC=4
|
||||
1037 IFPEEK(K)=127THENC=19
|
||||
1040 IFPEEK(K)=223THENC=6
|
||||
1045 IFPEEK(K)=239THENC=7
|
||||
1050 IFPEEK(K)=247THENC=8
|
||||
1055 IFPEEK(K)=251THENC=10
|
||||
1060 IFPEEK(K)=253THENC=11
|
||||
1065 POKEK,251:IFPEEK(K)=191THENC=3
|
||||
1070 IFPEEK(K)=239THENC=2
|
||||
1075 IFPEEK(K)=247THENC=14
|
||||
1080 IFPEEK(K)=251THENC=13
|
||||
1085 POKEK,253:IFPEEK(K)=127THENC=17
|
||||
1090 IFPEEK(K)=191THENC=1
|
||||
1093 IFPEEK(K)=223THENC=20
|
||||
1095 IFPEEK(K)=253THENC=16
|
||||
1100 IFC=0THEN1010
|
||||
1105 IFC=20THENY(A,B)=0:POKEAA+A-2-(B-2)*32,209:C=0:GOTO1010
|
||||
1110 POKE530,0:RETURN
|
||||
212
apps/c1p/BASIC/JP/OTHELLO.BAS
Normal file
212
apps/c1p/BASIC/JP/OTHELLO.BAS
Normal file
|
|
@ -0,0 +1,212 @@
|
|||
10 REM - OTHELLO -
|
||||
15 REM
|
||||
20 A=53184:CO=79:CX=88
|
||||
21 POKE11,0:POKE12,253
|
||||
25 PL=1
|
||||
30 GOSUB9000
|
||||
40 DIMB(8,8)
|
||||
50 B(4,5)=1:B(5,5)=2:B(4,4)=2:B(5,4)=1
|
||||
60 GOSUB8000
|
||||
70 GOSUB7000
|
||||
80 GOSUB6000
|
||||
90 GOSUB5000
|
||||
100 GOSUB4000
|
||||
110 GOTO60
|
||||
999 END
|
||||
4000 REM - MAKE MOVE IN TABLE -
|
||||
4010 IFUP=0ANDDN=0ANDLF=0ANDRT=0ANDUL=0ANDUR=0ANDLL=0ANDLR=0THEN4990
|
||||
4020 B(C,R)=PL
|
||||
4030 IFUP=0THEN4100
|
||||
4040 FORZ=1TOUP
|
||||
4050 B(C,R+Z)=PL
|
||||
4060 NEXT
|
||||
4100 IFDN=0THEN4200
|
||||
4110 FORZ=1TODN
|
||||
4120 B(C,R-Z)=PL
|
||||
4130 NEXT
|
||||
4200 IFLF=0THEN4300
|
||||
4210 FORZ=1TOLF
|
||||
4220 B(C-Z,R)=PL
|
||||
4230 NEXT
|
||||
4300 IFRT=0THEN4400
|
||||
4310 FORZ=1TORT
|
||||
4320 B(C+Z,R)=PL
|
||||
4330 NEXT
|
||||
4400 IFUL=0THEN4500
|
||||
4410 FORZ=1TOUL
|
||||
4420 B(C-Z,R+Z)=PL
|
||||
4430 NEXT
|
||||
4500 IFUR=0THEN4600
|
||||
4510 FORZ=1TOUR
|
||||
4520 B(C+Z,R+Z)=PL
|
||||
4530 NEXT
|
||||
4600 IFLL=0THEN4700
|
||||
4610 FORZ=1TOLL
|
||||
4620 B(C-Z,R-Z)=PL
|
||||
4630 NEXT
|
||||
4700 IFLR=0THEN4900
|
||||
4710 FORZ=1TOLR
|
||||
4720 B(C+Z,R-Z)=PL
|
||||
4730 NEXT
|
||||
4900 PL=3-PL
|
||||
4990 RETURN
|
||||
5000 REM - LEGAL MOVE? -
|
||||
5010 UP=0:DN=0:LF=0:RT=0:UL=0:UR=0:LL=0:LR=0
|
||||
5020 IFB(C,R)<>0THENGOTO5990
|
||||
5030 FORTR=R-1TO1STEP-1
|
||||
5040 IFTR<1THENDN=0:GOTO5100
|
||||
5045 IFB(C,TR)=0THENDN=0:GOTO5100
|
||||
5050 IFB(C,TR)=3-PLANDTR>1THENDN=DN+1
|
||||
5060 IFB(C,TR)=PLTHENGOTO5100
|
||||
5070 NEXT
|
||||
5080 DN=0
|
||||
5100 FORTR=R+1TO8
|
||||
5110 IFTR>8THENUP=0:GOTO5200
|
||||
5115 IFB(C,TR)=0THENUP=0:GOTO5200
|
||||
5120 IFB(C,TR)=(3-PL)ANDTR<8THENUP=UP+1
|
||||
5130 IFB(C,TR)=PLTHENGOTO5200
|
||||
5140 NEXT
|
||||
5150 UP=0
|
||||
5200 FORTC=C-1TO1STEP-1
|
||||
5210 IFTC<1THENLF=0:GOTO5300
|
||||
5215 IFB(TC,R)=0THENLF=0:GOTO5300
|
||||
5220 IFB(TC,R)=(3-PL)ANDTC>1THENLF=LF+1
|
||||
5230 IFB(TC,R)=PLTHENGOTO5300
|
||||
5240 NEXT
|
||||
5250 LF=0
|
||||
5300 FORTC=C+1TO8
|
||||
5310 IFTC>8THENRT=0:GOTO5400
|
||||
5315 IFB(TC,R)=0THENRT=0:GOTO5400
|
||||
5320 IFB(TC,R)=(3-PL)ANDTC<8THENRT=RT+1
|
||||
5330 IFB(TC,R)=PLTHENGOTO5400
|
||||
5340 NEXT
|
||||
5350 RT=0
|
||||
5400 TC=C-1
|
||||
5410 FORTR=R+1TO8
|
||||
5420 IFTR>8ORTC<1THENUL=0:GOTO5500
|
||||
5425 IFB(TC,TR)=0THENUL=0:GOTO5500
|
||||
5430 IFB(TC,TR)=(3-PL)ANDTR<8ANDTC>1THENUL=UL+1
|
||||
5440 IFB(TC,TR)=PLTHENGOTO5500
|
||||
5450 TC=TC-1
|
||||
5460 NEXT
|
||||
5470 UL=0
|
||||
5500 TC=C+1
|
||||
5510 FORTR=R+1TO8
|
||||
5520 IFTR>8ORTC>8THENUR=0:GOTO5600
|
||||
5525 IFB(TC,TR)=0THENUR=0:GOTO5600
|
||||
5530 IFB(TC,TR)=(3-PL)ANDTR<8ANDTC<8THENUR=UR+1
|
||||
5540 IFB(TC,TR)=PLTHENGOTO5600
|
||||
5550 TC=TC+1
|
||||
5560 NEXT
|
||||
5570 UR=0
|
||||
5600 TC=C-1
|
||||
5610 FORTR=R-1TO1STEP-1
|
||||
5620 IFTR<1ORTC<1THENLL=0:GOTO5700
|
||||
5625 IFB(TC,TR)=0THENLL=0:GOTO5700
|
||||
5630 IFB(TC,TR)=(3-PL)ANDTR>1ANDTC>1THENLL=LL+1
|
||||
5640 IFB(TC,TR)=PLTHENGOTO5700
|
||||
5650 TC=TC-1
|
||||
5660 NEXT
|
||||
5670 LL=0
|
||||
5700 TC=C+1
|
||||
5710 FORTR=R-1TO1STEP-1
|
||||
5720 IFTR<1ORTC>8THENLR=0:GOTO5990
|
||||
5725 IFB(TC,TR)=0THENLR=0:GOTO5990
|
||||
5730 IFB(TC,TR)=(3-PL)ANDTR>1ANDTC<8THENLR=LR+1
|
||||
5740 IFB(TC,TR)=PLTHENGOTO5990
|
||||
5750 TC=TC+1
|
||||
5760 NEXT
|
||||
5770 LR=0
|
||||
5990 RETURN
|
||||
6000 REM - CHECK INPUT -
|
||||
6010 REM - AND SET UP -
|
||||
6020 REM - R (ROW) AND -
|
||||
6030 REM - C (COLUMN) -
|
||||
6040 IFLEN(I$)<>2THENGOSUB7000:GOTO6040
|
||||
6050 C1=ASC(LEFT$(I$,1)):C2=ASC(RIGHT$(I$,1))
|
||||
6060 IF(C1>=65)AND(C1<=72)THENR=C1:GOTO6080
|
||||
6070 IF(C2>=65)AND(C2<=72)THENR=C2:GOTO6090
|
||||
6075 GOSUB7000:GOTO6040
|
||||
6080 IF(C2<49)OR(C2>56)THENGOSUB7000:GOTO6040
|
||||
6085 C=C2:GOTO6100
|
||||
6090 IF(C1<49)OR(C1>56)THENGOSUB7000:GOTO6040
|
||||
6095 C=C1
|
||||
6100 C=C-48:R=R-64
|
||||
6990 RETURN
|
||||
7000 REM - INPUT MOVE -
|
||||
7001 POKE(A+256+20*32+18),(PL+48)
|
||||
7005 I$="":T2=A+256+21*32+7
|
||||
7006 FORX=1TO20:POKE(T2+X),32:NEXT
|
||||
7009 POKET2,63:T2=T2+1:POKET2,161
|
||||
7010 T1=USR(T1):T1=PEEK(531)
|
||||
7011 IFT1=13THEN7030
|
||||
7012 IFT1<>127THEN7019
|
||||
7013 IFI$=""THEN7010
|
||||
7015 POKET2,32:T2=T2-1:POKET2,161
|
||||
7017 IFLEN(I$)=1THENI$="":GOTO7010
|
||||
7018 I$=LEFT$(I$,LEN(I$)-1):GOTO7010
|
||||
7019 I$=I$+CHR$(T1)
|
||||
7020 POKET2,T1:T2=T2+1:POKET2,161
|
||||
7023 IFLEN(I$)>10THENGOTO7000
|
||||
7025 GOTO7010
|
||||
7030 FORY=1TO8
|
||||
7990 RETURN
|
||||
8000 REM - MAKE MOVE -
|
||||
8010 S=A+8*32+7
|
||||
8020 FORX=1TO8
|
||||
8030 FORY=1TO8
|
||||
8040 P=S+2*X+2*32*(8-Y)
|
||||
8050 IFB(X,Y)=1THENPOKEP,CX
|
||||
8060 IFB(X,Y)=2THENPOKEP,CO
|
||||
8080 NEXTY,X
|
||||
8990 RETURN
|
||||
9000 REM - FRAME -
|
||||
9010 T1=A+256
|
||||
9020 FORY=1TO24
|
||||
9030 PRINT
|
||||
9040 NEXT
|
||||
9050 FORX=1TO16
|
||||
9060 POKE(A+224+X+7),128
|
||||
9070 NEXT
|
||||
9080 FORY=1TO16STEP2
|
||||
9090 FORX=1TO8
|
||||
9100 T2=2*(X-1)
|
||||
9110 POKE(T1+(Y-1)*32+8+T2),136
|
||||
9120 POKE(T1+Y*32+8+T2),209
|
||||
9130 POKE(T1+Y*32+9+T2),128
|
||||
9140 NEXTX
|
||||
9150 POKE(T1+(Y-1)*32+8+2*(X-1)),136
|
||||
9160 POKE(T1+Y*32+8+2*(X-1)),136
|
||||
9170 NEXTY
|
||||
9180 T3=T1+6
|
||||
9190 T4=T3+577
|
||||
9200 FORZ=1TO8
|
||||
9210 POKE(T3+2*(8-Z)*32),((Z-1)+65)
|
||||
9220 POKE(T4+2*Z),((Z-1)+49)
|
||||
9230 NEXT
|
||||
9240 T2=A+903
|
||||
9250 POKET2,ASC("P"):T2=T2+1
|
||||
9260 POKET2,ASC("L"):T2=T2+1
|
||||
9270 POKET2,ASC("A"):T2=T2+1
|
||||
9280 POKET2,ASC("Y"):T2=T2+1
|
||||
9290 POKET2,ASC("E"):T2=T2+1
|
||||
9300 POKET2,ASC("R"):T2=T2+1
|
||||
9310 T2=T2+1
|
||||
9320 POKET2,ASC("N"):T2=T2+1
|
||||
9330 POKET2,ASC("O"):T2=T2+1
|
||||
9340 POKET2,ASC("."):T2=T2+3
|
||||
9350 POKET2,ASC(":"):T2=T2+1
|
||||
9990 RETURN
|
||||
10000 REM - FUN -
|
||||
10005 A=53248
|
||||
10010 FORX=1TO24:PRINT:NEXT:T1=A+263
|
||||
10020 FORX=1TO16
|
||||
10025 FORY=1TO8
|
||||
10026 POKET1+(X-2)*32,32
|
||||
10035 NEXTY,X
|
||||
10040 FORX=16TO1STEP-1
|
||||
10045 FORY=8TO1STEP-1
|
||||
10046 POKET1+X*32,32
|
||||
10050 POKET1+(X-1)*32,(9-Y)+127
|
||||
10055 NEXTY,X
|
||||
10060 GOTO10020
|
||||
60
apps/c1p/BASIC/JP/SOFORECAST.BAS
Normal file
60
apps/c1p/BASIC/JP/SOFORECAST.BAS
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
5 FORC=1TO24:PRINT:NEXT
|
||||
10 PRINT" ENTER NO. OF TYPES":PRINT:PRINT" OF DATA PER YEAR";:INPUTN
|
||||
20 PRINT:PRINT" INPUT NAME FOR:":PRINT
|
||||
25 FORC=1TON:PRINT" TYPE";C;:INPUTB$(C):NEXTC
|
||||
30 PRINT
|
||||
99 X=1:DIMA(4,4,12),P(4,12),S(4)
|
||||
100 PRINT" WHAT IS THE YEAR OF":PRINT:PRINT" DATA-BASE";X;
|
||||
105 INPUTY(X):IFY(X)=0THEN150
|
||||
110 FORT=1TON:PRINT
|
||||
111 PRINT" ";B$(T);"'S";:INPUTA$:FORM=1TO11:FORC=1TO255
|
||||
120 IFC=LEN(A$)THENPRINT:PRINT" DATA ERROR":PRINT:GOTO111
|
||||
125 IFMID$(A$,C,1)=";"ORMID$(A$,C,1)="/"THEN131
|
||||
130 NEXTC
|
||||
131 REM-SIFTING DATA-
|
||||
135 A(X,T,M)=VAL(A$):A$=MID$(A$,C+1):NEXTM
|
||||
140 A(X,T,M)=VAL(A$)
|
||||
145 NEXTT:X=X+1:PRINT:GOTO100
|
||||
150 FORT=1TON:S(T)=0:FORM=1TO12:P(T,M)=0:FORX1=1TOX-1
|
||||
155 P(T,M)=P(T,M)+A(X1,T,M):NEXTX1:P(T,M)=P(T,M)/(X-1)
|
||||
156 S(T)=S(T)+P(T,M)
|
||||
160 NEXTM,T:FORT=1TON:FORM=1TO12:P(T,M)=P(T,M)/S(T):NEXTM,T
|
||||
170 FORC=1TO24:PRINT:NEXTC
|
||||
180 INPUT" ENTER BASE YEAR";B
|
||||
182 PRINT:PRINT" ENTER GROWTH RATE FOR:"
|
||||
183 PRINT
|
||||
184 FORY=1TON:PRINT" ";B$(Y);"'S";:INPUTG(Y):NEXTY
|
||||
190 FORT=1TON
|
||||
215 Z=0:GOSUB500:IFZ=1THENT1=S:GOTO227
|
||||
220 PRINT" WHAT WAS THE TOTAL":PRINT:PRINT" FOR BASE YEAR";B
|
||||
225 PRINT:PRINT" (";B$(T);"'S)";:INPUTT1
|
||||
227 T(T)=T1:IFT>1THENFORV=1TO3000:NEXTV:GOTO230
|
||||
228 INPUT" FORECAST YEAR";F
|
||||
230 GOSUB235:NEXTT:GOTO264
|
||||
235 TT=T1*(1+G(T)/100)^(F-B)
|
||||
239 PRINT:PRINT:RESTORE
|
||||
240 PRINT" FORECAST YEAR";F:PRINT
|
||||
241 PRINT" (";B$(T);"'S)":PRINT
|
||||
243 FORM=1TO12STEP3:FORC=1TO3
|
||||
245 READB$,E(C):PRINTTAB(E(C));B$;:NEXTC:PRINT
|
||||
250 FORC=1TO3:PRINTTAB(E(C));INT(TT*P(T,M+C-1));
|
||||
260 NEXTC:PRINT:PRINT:NEXTM:RETURN
|
||||
264 PRINT
|
||||
267 PRINT" ENTER OTHER YEARS FOR":PRINT:PRINT" FORECASTING, BASED ON"
|
||||
270 PRINT:PRINTB;"FIGURES...."
|
||||
273 X1=1:PRINT
|
||||
275 INPUT" ";F(X1):IFF(X1)=0THEN280
|
||||
277 X1=X1+1:GOTO275
|
||||
280 IFX1=1THENPRINT:PRINT" TO BEGIN AGAIN,":PRINT:GOTO180
|
||||
282 FORX2=1TOX1-1:F=F(X2)
|
||||
283 FORT=1TON:T1=T(T):GOSUB235
|
||||
285 FORV=1TO4000:NEXTV,T
|
||||
286 NEXTX2
|
||||
288 PRINT:GOTO267
|
||||
300 END
|
||||
400 DATAJAN,1,FEB,9,MAR,17,APR,1,MAY,9,JUN,17,JUL,1,AUG,9,SEP,17,OCT,1
|
||||
410 DATANOV,9,DEC,17
|
||||
500 FORX1=1TOX-1:IFY(X1)<>BTHENNEXTX1
|
||||
505 IFY(X1)<>BTHENRETURN
|
||||
510 S=0:FORM1=1TO12:S=S+A(X1,T,M1):NEXTM1
|
||||
530 Z=1:PRINT:RETURN
|
||||
70
apps/c1p/BASIC/JP/TUBELIST.BAS
Normal file
70
apps/c1p/BASIC/JP/TUBELIST.BAS
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
10 FORC=1TO24:PRINT:IFC=17THENGOSUB110
|
||||
20 NEXTC
|
||||
30 GOSUB100:RESTORE:PRINT" What tube are you":PRINT
|
||||
40 INPUT" looking for";A$
|
||||
50 READB$,C$
|
||||
60 IFC$="0"THENGOSUB100:PRINT"SORRY, OUT OF STOCK.":GOTO30
|
||||
65 IFB$=A$THEN73
|
||||
70 IFVAL(C$)=0THENREADE$:GOTO50
|
||||
72 GOTO50
|
||||
73 IFVAL(C$)=0THENREADE$:D$=C$:C$=E$:GOTO80
|
||||
76 D$=""
|
||||
80 GOSUB100:PRINT" GOOD NEWS. WE HAVE":PRINT:PRINT" ";C$;" ";B$;D$;
|
||||
85 IFVAL(C$)>1THENPRINT"'S";
|
||||
90 PRINT" IN STOCK"
|
||||
91 FORT=1TO3000:NEXTT
|
||||
92 READB$,C$
|
||||
94 IFB$=A$THEN73
|
||||
95 IFB$="A"THEN30
|
||||
96 IFVAL(C$)=0THENREADE$
|
||||
98 GOTO92
|
||||
100 PRINT:PRINTTAB(6);"******":PRINT:RETURN
|
||||
110 PRINT" ROBERT G. PARSONS'":PRINT:PRINT" COMPUTER TUBE LIST":RETURN
|
||||
210 DATA0A3,2,0A4,1,0B2,2,0C3,1,0D3,1,1A7,GT,1,1AX2,4,1C6,1,1G3,GT,5
|
||||
220 DATA1H5,2,1J3,1,1N5,GT,2,1P5,GT,1,1R5,4,1S5,4,1U4,6,1U5,2,1X2,B,4
|
||||
230 DATA2A5,1,2A7,2,2BN4,A,3,2CY5,2,2GK5,1,2HK5,1,2X2,2,3A3,B,1,3AL5,1
|
||||
240 DATA3BC5,2,3BN6,6,3BU8,1,3BY6,1,3BZ6,4,3CB6,6,3CS6,1,3CY5,4,3DG4,1
|
||||
250 DATA3DK6,4,3ER5,1,3FS5,1,3GK5,1,3HA5,1,3S4,1,3V4,2,4BN6,1,4BQ7,A,5
|
||||
260 DATA4BU8,1,4BZ6,7,4CB6,4,4DT6,1,4GK5,1,5AM8,1,5AN8,1,5AQ5,2,5AR4,1
|
||||
270 DATA5AT8,3,5AU4,2,5AX8,3,5CG8,3,5CL8,A,2,5CZ5,1,5GH8,A,1,5GS7,2
|
||||
280 DATA5J6,3,5T8,1,5U4,GB,5,5U8,5,5V4,G,3,5V6,GT,1,5W4,1,5Y3,G,1
|
||||
290 DATA5Y3,GT,3,5Y3,GT/G,1,5Y4,G,2,6A7,2,6AC7,6,6AF4,2,6AG5,7,6AG7,3
|
||||
300 DATA6AH4,5,6AH4,GT,1,6AH6,4,6AH8,1,6AJ6,1,6AK5,2,6AK6,2,6AK8,1
|
||||
310 DATA6AL3,1,6AL5,4,6AM8,A,3,6AN8,A,3,6AQ5,19,6AQ6,4,6AQ7,GT,1,6AS5,
|
||||
320 DATA3,6AS8,2,6AT8,A,2,6AU4,GT,2,6AU5,GT,1,6AU6,10,6AU8,3,6AV5,GA,2
|
||||
330 DATA6AV6,5,6AW8,2,6AW8,A,1,6AX4,10,6AX4,GTB,3,6B8,2,6BA6,3,6BA8,A
|
||||
340 DATA1,6BC5,7,6BC8,1,6BE6,1,6BG6,G,1,6BH8,3,6BJ6,3,6BK5,2,6BK7,1
|
||||
350 DATA6BL7,G,1,6BL8,14,6BN4,A,3,6BN6,1,6BN8,3,6BQ5,7,6BQ6,GA,3
|
||||
360 DATA6BQ6,GTA,1,6BQ6,GTB,4,6BQ7,9,6BR8,A,1,6BS8,4,6BU8,3,6BX7,G,1
|
||||
370 DATA6BY5,GT,1,6BY8,2,6BZ6,3,6BZ7,2,6BZ8,2,6C4,9,6C5,1,6CB6,15
|
||||
380 DATA6CD6,2,6CD6,GA,1,6CF6,6,6CF7,1,6CG7,17,6CG8,A,3,6CJ3,1,6CL6,1
|
||||
390 DATA6CM6,3,6CM7,6,6CN7,2,6CQ8,6,6CR6,1,6CS6,1,6CU8,1,6CX8,4,6CY5,5
|
||||
400 DATA6D6,5,6DA5,1,6DE4,1,6DE6,3,6DK6,2,6DN7,1,6DQ6,1,6DQ6,B,3,6DS4,
|
||||
410 DATA1,6DT6,A,2,6DW4,B,1,6DX8,1,6DY4,1,6E5,1,6EA7,1,6EA8,6,6EB8,1
|
||||
420 DATA6EJ7,1,6ER5,1,6ES5,2,6EW6,1,6F5,1,6F7,1,6F8,G,3,6FD7,1,6FG7,3
|
||||
430 DATA6FQ7,8,6GE5,1,6GF7,A,2,6GH8,A,5,6GK5,3,6GK6,2,6GN8,2,6GU7,2
|
||||
440 DATA6GY6,2,6H6,2,6HA5,2,6HF8,1,6HG8,1,6HJ8,1,6HS8,9,6J4,2,6J5,1
|
||||
450 DATA6J5,GT,1,6J6,A,4,6J7,2,6JC5,1,6JC6,A,2,6JH6,1,6JM6,1,6JN6,1
|
||||
460 DATA6JN8,1,6JU8,A,1,6K6,GT,4,6K7,15,6K7,GT,1,6K8,1,6KA8,1,6KE8,4
|
||||
470 DATA6KT8,1,6LJ8,1,6LT8,2,6N7,3,6P5,3,6P5,GT,1,6S4,A,6,6SA7,6,6SC7
|
||||
480 DATA2,6SF5,2,6SG7,2,6SJ7,4,6SK7,2,6SL7,2,6SN7,3,6SN7,GT,8,6SQ7,10
|
||||
490 DATA6T4,1,6T8,3,6T8,A,4,6U5,1,6U7,1,6U8,1,6U8,A,2,6V3,A,2,6V6,2
|
||||
500 DATA6V6,GT,6,6W6,GT,2,6X4,5,6X5,5,6X8,10,6Z10,1,7A4,1,7A5,1,7A6,1
|
||||
510 DATA7A7,2,7A8,1,7B7,1,7C5,1,7C7,1,7F8,2,7N7,4,7N7,GT,1,7V7,1
|
||||
520 DATA7AU7,1,7AF7,1,7HG8,1,8AU8,1,8B10,1,8BA11,1,8CG7,3,8CM7,2,8CN7,
|
||||
530 DATA2,8LT8,2,9A8,1,9AU7,1,10DE7,2,10GK6,1,10GN8,2,11AR11,11,117L7,
|
||||
540 DATA117Z6,1,12A6,10,12A8,1,12AB5,2,12AT7,A,1,12AU6,1,12AU7,A,8
|
||||
550 DATA12AV6,8,12AX4,GTB,4,12AX7,A,4,12AZ7,1,12B4,3,12B4,A,2,12BA6,6
|
||||
560 DATA12BA7,4,12BE6,7,12BH7,A,6,12BR7,1,12BY7,2,12BZ7,1,12CA5,1
|
||||
570 DATA12DT8,3,12DQ6,2,12DQ6,B,2,12FX5,1,12GN7,A,4,12K8,1,12L6,1
|
||||
580 DATA12Q7,1,12SA7,3,12SF7,1,12SG7,1,12SH7,2,12SJ7,1,12SK7,7
|
||||
590 DATA12SN7,GT,1,12SQ7,11,13DR7,1,13EN7,1,14A7,1,14B6,2,15BD11,1
|
||||
600 DATA15CW5,1,17AX4,1,17BE3,1,17BF11,1,17CT3,1,17D4,1,17DQ6,2
|
||||
610 DATA17DQ6,B,2,17EW8,1,17J28,1,19CL8,A,1,19T8,5,2050,3,25AX4,GT,2
|
||||
620 DATA25BQ6,5,25BQ6,GA,1,25BQ6,GT,1,25C5,3,25L6,1,25L6,GT,4,25W4,2
|
||||
630 DATA25Z5,2,25Z6,GT,1,26,4,27,2,33G47,A,1,33CYL,A,1,35A5,2,35C5,4
|
||||
640 DATA35L6,GT,2,35W4,5,35Y4,2,35Z3,1,35Z5,1,35Z5,GT,5,41,4,45,6
|
||||
650 DATA50A5,1,50B5,1,50C5,7,50EH5,1,50L6,GT,6,53,1,55,2,56,2,57,3,58
|
||||
660 DATA2,59,2,6010,1,6146,A,1,71,A,3,75,2,76,3,78,1,CRC78,1,80,4,82,1
|
||||
670 DATA884,6,VR90,1,9001,1,9002,1,9003,1
|
||||
10000 DATAA,0
|
||||
1
apps/c1p/BASIC/OSI/POKER-CR.BAS
Normal file
1
apps/c1p/BASIC/OSI/POKER-CR.BAS
Normal file
File diff suppressed because one or more lines are too long
241
apps/c1p/BASIC/OSI/POKER.BAS
Normal file
241
apps/c1p/BASIC/OSI/POKER.BAS
Normal file
|
|
@ -0,0 +1,241 @@
|
|||
1 REM*** PAUL A. JOVIAK ***
|
||||
2 REM***** POKER ********
|
||||
3 REM * 8K IP PROGRAM *
|
||||
4 TT=200
|
||||
5 POKE530,1
|
||||
10 A1=2:A2=0:A3=0
|
||||
12 PRINT:PRINT
|
||||
13 PRINT"INSTRUCTIONS:":GOSUB9000
|
||||
20 POKE54068,A1+48:POKE54069,A2+48:POKE54070,A3+48
|
||||
22 G=54053:L$="YOU NOW HAVE $":GOSUB8000
|
||||
23 PRINT"READY ?":F=0:F1=0
|
||||
24 POKE57088,239:F=PEEK(57088):POKE57088,251
|
||||
25 F1=PEEK(57088):IFF=0ANDF1=0THEN24
|
||||
26 IFF1=247ANDTT=200ANDA1=2ANDA2=0ANDA3=0THEN12
|
||||
27 IFF1=247THEN950
|
||||
28 IFF=247THEN30
|
||||
29 GOTO24
|
||||
30 CLEAR
|
||||
35 A1=PEEK(54036)-48:A2=PEEK(54037)-48:A3=PEEK(54038)-48
|
||||
36 TT=A1*100+A2*10+A3
|
||||
37 RS=RND(RND(TT))
|
||||
38 FORI=1TO32:PRINT:NEXT
|
||||
40 P$=" "
|
||||
42 SP=1:SD=1
|
||||
45 DIMM(13)
|
||||
50 DIMC(4,13):DIMS(4):DIMN(13)
|
||||
55 DIMV(2,5):DIMP(2,5):DIMD(2,5)
|
||||
60 FORI=1TO4:FORJ=1TO13:C(I,J)=0:NEXTJ,I
|
||||
70 FORI=2TO9:N(I)=48+I:NEXT:N(10)=84:N(1)=65:N(11)=74:N(12)=81
|
||||
75 N(13)=75
|
||||
80 FORI=1TO4:S(I)=228+I:NEXT
|
||||
90 FORI=1TO5:V(1,I)=64:V(2,I)=32:NEXTI
|
||||
140 FORK=1TO2:FORX=1TO5
|
||||
150 GOSUB1000
|
||||
160 IFK=2THEN180
|
||||
170 P(1,X)=N(N):P(2,X)=S(S):R(X)=N:GOTO190
|
||||
180 D(1,X)=N(N):D(2,X)=S(S)
|
||||
185 W(X)=N:B(X)=N
|
||||
190 NEXTX,K
|
||||
200 FORI=0TO20STEP5:FORJ=0TO2
|
||||
210 POKE53573+I+J,144:POKE53765+I+J,145
|
||||
220 POKE54021+I+J,145:POKE53829+I+J,144
|
||||
230 NEXTJ,I
|
||||
240 FORI=0TO256STEP256:FORJ=0TO128STEP32
|
||||
250 FORX=4TO24STEP5:POKE53604+I+J+X,146:NEXTX
|
||||
260 FORX=0TO20STEP5:POKE53604+I+J+X,147:NEXT
|
||||
270 NEXTJ,I
|
||||
280 GOSUB2000
|
||||
290 L$="HOW MANY CARDS DO":G=53477:GOSUB8000
|
||||
292 L$="YOU WISH ?":G=53541:GOSUB8000:G=53477
|
||||
300 POKE57088,127:F=PEEK(57088):R=0
|
||||
310 IFF=127THENR=1
|
||||
320 IFF=191THENR=2
|
||||
330 IFF=223THENR=3
|
||||
340 IFF=255THEN300
|
||||
350 IFR=0THEN410
|
||||
355 L$=P$:GOSUB8000
|
||||
357 G=53541:GOSUB8000:G=53477
|
||||
360 FORH=1TOR:L$="CARD":POKE53483,H+48
|
||||
363 QC=127
|
||||
365 GOSUB8000:Q=128:FORJ=1TO5:F=0
|
||||
370 POKE57088,127:F=PEEK(57088):IFF=255THEN370
|
||||
390 IFF=QCTHENGOSUB1000:P(1,J)=N(N):P(2,J)=S(S):R(J)=N
|
||||
400 Q=Q-Q/2:QC=QC+Q:NEXTJ:L$=P$:GOSUB8000:NEXTH
|
||||
410 L$=P$:GOSUB8000:G=53541:GOSUB8000:G=53477
|
||||
413 GOSUB2000:GOSUB5000
|
||||
415 GOSUB6900:GOSUB5000
|
||||
420 HD=HC:DW=W:DY=Y:DR=PR:DT=TR:DF=FR:T1=E1:T2=E2
|
||||
425 L$=P$:GOSUB8000
|
||||
430 GOSUB3000
|
||||
440 L$=P$:G=53541:GOSUB8000:G=53477
|
||||
450 GOSUB8000
|
||||
600 FORI=1TO5:W(I)=R(I):FORJ=1TO2:D(J,I)=P(J,I):NEXTJ,I
|
||||
610 GOSUB5010
|
||||
620 L$=P$:GOSUB8000
|
||||
890 GOSUB4000
|
||||
895 IFL$="I FOLD"THEN920
|
||||
900 GOSUB2000
|
||||
920 IFL$="I WIN"ORL$=P$THENTW=SP:Z$="YOU LOST $"
|
||||
930 IFL$="YOU WIN"ORL$="I FOLD"THENTW=SD:Z$="YOU WON $"
|
||||
940 PRINTZ$;TW
|
||||
941 IFL$="I WIN"ORL$=P$THENTW=-TW
|
||||
943 TT=TT+TW
|
||||
945 A1=INT(TT/100):A2=INT((TT-A1*100)/10):A3=INT(TT-A1*100-A2*10)
|
||||
948 IFTT>=500ORTT=<0THEN950
|
||||
949 GOTO20
|
||||
950 PRINT:IFTT>200THENPW=TT-200:PRINT"CONGRATULATIONS ,YOU WON $";PW
|
||||
953 PRINT:IFTT<200THENPW=200-TT:PRINT"SORRY ,YOU LOST $";PW
|
||||
955 PRINT:IFTT=200THENPRINT"YOU BROKE EVEN"
|
||||
957 PRINT"THE CASHIER IS UP FRONT":PRINT:TT=200
|
||||
959 INPUT"PLAY AGAIN";A$
|
||||
960 IFLEFT$(A$,1)="Y"THEN5
|
||||
995 GOTO49999
|
||||
1000 S=INT(4*RND(RS)+1):N=INT(13*RND(RS)+1)
|
||||
1010 IFC(S,N)=1THEN1000
|
||||
1020 IFC(S,N)=0THENC(S,N)=1
|
||||
1030 RETURN
|
||||
2000 K=0:FORX=0TO20STEP5:K=K+1
|
||||
2010 POKE53670+X,P(1,K):POKE53605+X,P(2,K):POKE53735+X,P(2,K)
|
||||
2020 POKE53926+X,V(1,K):POKE53861+X,V(2,K):POKE53991+X,V(2,K)
|
||||
2030 NEXTX:RETURN
|
||||
3000 L$="WHAT IS YOUR BET":GOSUB8000
|
||||
3020 L$="IN DOLLARS ($7 MAX.)?":G=53541:GOSUB8000
|
||||
3030 G=53477
|
||||
3031 GOTO3035
|
||||
3033 L$="RAISE ME BY HOW MUCH ? ":GOSUB8000
|
||||
3034 SP=SD
|
||||
3035 F=0:F1=0
|
||||
3040 POKE57088,127:F=PEEK(57088):POKE57088,191:F1=PEEK(57088)
|
||||
3045 IFF=255ANDF1=255THEN3040
|
||||
3046 IFF1<>255THEN3990
|
||||
3050 Q=127:QC=128:FORI=1TO7:IFF=QTHENQ1=I
|
||||
3055 QC=QC-QC/2:Q=Q+QC
|
||||
3060 NEXT:L$=P$:GOSUB8000:SP=SP+Q1
|
||||
3062 G=53541:GOSUB8000:G=53477
|
||||
3065 IFW=0THEN3990
|
||||
3070 L$="I CALL YOUR $":GOSUB8000:G=53492:L$=CHR$(Q1+48):GOSUB8000
|
||||
3072 G=53477
|
||||
3075 FORI=1TO2000:NEXT:L$=P$:GOSUB8000
|
||||
3080 G=53477:U=INT(7*RND(F))
|
||||
3082 IFSD>10ANDW<3THENU=0
|
||||
3083 IFSD>20ANDW<6THENU=0
|
||||
3084 SD=SD+Q1+U
|
||||
3085 IFU=0THEN3990
|
||||
3090 L$="I RAISE YOU $":GOSUB8000:G=53492:L$=CHR$(U+48):GOSUB8000
|
||||
3095 FORI=1TO1500:NEXT
|
||||
3097 L$=P$:G=53477:GOSUB8000
|
||||
3100 G=53477:L$="CALL ,FOLD":GOSUB8000
|
||||
3103 L$="OR INCREASE BET":G=53541:GOSUB8000:G=53477
|
||||
3105 F=0:F1=0:F2=0
|
||||
3110 POKE57088,251:F1=PEEK(57088):POKE57088,247:F=PEEK(57088)
|
||||
3115 POKE57088,239:F2=PEEK(57088)
|
||||
3120 IFF=255ANDF1=255ANDF2=255THEN3110
|
||||
3125 L$=P$:GOSUB8000
|
||||
3126 G=53541:GOSUB8000:G=53477
|
||||
3130 IFF=223THENL$="I WIN":GOSUB8000:GOTO920
|
||||
3140 IFF2=253THEN3033
|
||||
3150 SP=SD
|
||||
3990 RETURN
|
||||
4000 IFW=1THENKO=1
|
||||
4010 IFW=2THENKO=2
|
||||
4020 IFW=3THENKO=3
|
||||
4030 IFW=4THENKO=6.5
|
||||
4040 IFY=5THENKO=5
|
||||
4050 IFW=7THENKO=6
|
||||
4060 IFW=6THENKO=7
|
||||
4070 IFY=5ANDW=7THENKO=8
|
||||
4080 IFDW=1THENKD=1
|
||||
4090 IFDW=2THENKD=2
|
||||
4100 IFDW=3THENKD=3
|
||||
4110 IFDW=4THENKD=6.5
|
||||
4120 IFDY=5THENKD=5
|
||||
4130 IFDW=7THENKD=6
|
||||
4240 IFDW=6THENKD=7
|
||||
4250 IFDY=5ANDDW=7THENKD=8
|
||||
4300 IFKO>KDTHENL$="YOU WIN"
|
||||
4310 IFKD>KOTHENL$="I WIN"
|
||||
4320 IFKD=0THENL$="I FOLD"
|
||||
4330 IFKD=0THEN4890
|
||||
4400 IFKD<>KOTHEN4890
|
||||
4410 IFKO=2ORKD=2THEN4460
|
||||
4420 IFE1>T1ORDT<TRORFR>DFTHENZ=1
|
||||
4425 IFT1>E1ORDT>TRORDF>FRTHENZ=0
|
||||
4430 IFE1=1ORTR=1ORFR=1ANDT1<>1ANDDT<>1ANDDF<>1THENZ=1
|
||||
4435 IFT1=1ORDT=1ORDF=1ANDE1<>1ANDTR<>1ANDFR<>1THENZ=0
|
||||
4440 IFT1<>E1ORDT<>TRORDF<>FRTHEN4460
|
||||
4450 IFHC>HDTHENZ=1
|
||||
4455 IFHD>HCTHENZ=0
|
||||
4456 IFHC=1THENZ=1
|
||||
4457 IFHD=1THENZ=0
|
||||
4460 IFE2=0THEN4530
|
||||
4465 IFE2>T1ANDE2>T2THENZ=1
|
||||
4470 IFE1>T1ANDE1>T2THENZ=1
|
||||
4475 IFE1=T1ANDE2>T2THENZ=1
|
||||
4480 IFE2=T1ANDE1>T2THENZ=1
|
||||
4485 IFE1=T2ANDE2>T1THENZ=1
|
||||
4490 IFE2=T2ANDE1>T1THENZ=1
|
||||
4500 IFE1=1ORE2=1ANDT1<>1ANDT2<>1THENZ=1
|
||||
4510 IFT1=1ORT2=1ANDE1<>1ANDE2<>1THENZ=0
|
||||
4515 IFT2<>E1ANDT1<>E1THEN4530
|
||||
4516 IFT2<>E2ANDT1<>E2THEN4530
|
||||
4520 IFHC>HDTHENZ=1
|
||||
4525 IFHD>HCTHENZ=0
|
||||
4530 IFKO<>5ORKO<>6ORKO<>7ORKO<>8THEN4880
|
||||
4540 IFHC>HDTHENZ=1
|
||||
4550 IFHD>HCTHENZ=0
|
||||
4880 IFZ=1THENL$="YOU WIN"
|
||||
4885 IFZ=0THENL$="I WIN"
|
||||
4890 GOSUB8000
|
||||
4900 RETURN
|
||||
5000 FORI=1TO2:FORJ=1TO5:V(I,J)=D(I,J):NEXTJ,I
|
||||
5005 L$="THE ANTE IS $1.00":GOSUB8000
|
||||
5010 W=0:FORI=1TO4:FORJ=I+1TO5
|
||||
5020 IFD(1,I)=D(1,J)THENW=W+1
|
||||
5030 NEXTJ,I
|
||||
5040 A=0:FORI=1TO4
|
||||
5050 IFD(2,I)=D(2,I+1)THENA=A+1
|
||||
5060 NEXTI:IFA=4THENW=7
|
||||
5080 FORK=1TO5:FORI=1TO4:FORJ=I+1TO5:IFW(I)<W(I+1)THEN5110
|
||||
5100 W(6)=W(I):W(I)=W(I+1):W(I+1)=W(6)
|
||||
5110 NEXTJ,I,K:Y=0
|
||||
5120 A=0:FORI=1TO4:IFW(I)+1=W(I+1)THENA=A+1
|
||||
5130 NEXTI:IFA=4THENY=5
|
||||
5140 IFW(1)=1ANDW(2)=10ANDW(3)=11ANDW(4)=12ANDW(5)=13THENY=5
|
||||
5150 HC=W(5):IFW(1)=1THENHC=1
|
||||
5155 FORI=1TO13:M(I)=0:NEXT:PR=0:TR=0:FR=0
|
||||
5156 E1=0:E2=0
|
||||
5160 FORI=1TO5:FORJ=1TO13:IFW(I)=JTHENM(J)=M(J)+1
|
||||
5170 NEXTJ,I:FORI=1TO13:IFM(I)=2THENPR=PR+1
|
||||
5175 IFM(I)=2ANDPR=1THENE1=I
|
||||
5176 IFM(I)=2ANDPR=2THENE2=I
|
||||
5180 IFM(I)=3THENTR=I
|
||||
5190 IFM(I)=4THENFR=I
|
||||
5200 NEXTI
|
||||
5500 IFW=1ANDW(5)=E1THENHC=W(4)
|
||||
5510 IFW=1ANDW(4)=E1THENHC=W(3)
|
||||
6000 RETURN
|
||||
6900 IFY=5ORW=7THENRETURN
|
||||
6950 G1=5:IFW=0THENG1=3
|
||||
7000 FORI=1TOG1
|
||||
7010 IFE1=B(I)ORE2=B(I)ORTR=B(I)ORFR=B(I)THEN7100
|
||||
7020 GOSUB1000:D(1,I)=N(N):D(2,I)=S(S):B(I)=N
|
||||
7100 NEXTI
|
||||
7120 FORI=1TO5:W(I)=B(I):NEXT
|
||||
7200 RETURN
|
||||
8000 FORI=1TOLEN(L$):POKEG+I,ASC(MID$(L$,I,1)):NEXT:RETURN
|
||||
9000 PRINT"WHEN THE CARDS APPEAR":PRINT"ON THE SCREEN,YOU"
|
||||
9005 PRINT"WILL BE ASKED 'HOW":PRINT"MANY CARDS DO YOU"
|
||||
9010 PRINT"WISH ?'. THE GAME IS":PRINT"3 CARD DRAW POKER AND"
|
||||
9020 PRINT"IF '4' IS PRESSED NO":PRINT"CARDS ARE DRAWN. IF"
|
||||
9025 PRINT"YOU DRAW 'CARD 1' WILL":PRINT"APPEAR. YOU WILL THEN"
|
||||
9030 PRINT"ANSWER A NUMBER BETWEEN":PRINT"1 AND 5 INDICATING"
|
||||
9035 PRINT"THE CARD YOU WISH TO":PRINT"REPLACE. ANTE IS"
|
||||
9040 PRINT"ALWAYS $1.00. BETS AND":PRINT"RAISES CAN BE NO MORE"
|
||||
9050 PRINT"THAN $7.00 AT A TIME."
|
||||
9060 PRINT"YOU ARE PLAYING TO":PRINT"$500 OR NOTHING."
|
||||
9070 PRINT"GOOD LUCK !!"
|
||||
9080 PRINT
|
||||
9090 PRINT
|
||||
9900 RETURN
|
||||
49999 END
|
||||
119
apps/c1p/BASIC/OSI/SAMPLE1.BAS
Normal file
119
apps/c1p/BASIC/OSI/SAMPLE1.BAS
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
1 REM ***ROBERT L.
|
||||
2 REM ***COPPEDGE
|
||||
5 FOR SC=1TO32:PRINT:NEXT
|
||||
10 PRINT"MATH TUTOR":PRINT:PRINT
|
||||
15 PRINT"THIS TUTOR IS DESIGNED"
|
||||
18 PRINT"TO BE AN AID IN BASIC"
|
||||
20 PRINT"MATHEMATICS."
|
||||
21 PRINT
|
||||
25 PRINT"YOU HAVE THE FOLLOWINT":PRINT"SUBJECTS TO CHOOSE FROM"
|
||||
28 PRINT
|
||||
30 PRINT"1) AFDITION":PRINT:PRINT"2) SUBTRACTION":PRINT
|
||||
35 PRINT"3)MULTIPLICATION":PRINT:PRINT"4) DIVISION"
|
||||
38 PRINT
|
||||
40 INPUT "WHICH WOULD YOU LIKE TO DO";X
|
||||
44 PRINT
|
||||
45 IF X>4 OR X<1 THEN 40
|
||||
50 INPUT "ENTER RANDOM SEED(ANY NUMBER)";Z1
|
||||
55 FOR SC=1TO32:PRINT:NEXT
|
||||
60 ON X GOTO 100,200,300,400
|
||||
100 PRINT"THIS IS ADDITION":FOR Z=1 TO 100
|
||||
105 W=INT(1000*RND(Z1)+1):V=INT(1000*RND(Z1)+1)
|
||||
110 Y=W+V
|
||||
111 S=0
|
||||
115 PRINT:PRINT"WHAT IS:"
|
||||
120 PRINTW;"+";V:INPUT U
|
||||
125 IF U=Y THEN 140
|
||||
126 S=1
|
||||
130 PRINT:PRINT"NO, I'M SORRY"
|
||||
135 INPUT "AGAIN";A$:IF A$="YES" OR A$="Y" THEN 115
|
||||
137 PRINT:PRINT"THE ANSWER IS";Y
|
||||
138 GOTO 160
|
||||
140 PRINT:PRINT"VERY GOOD!! PERFECT!!"
|
||||
145 IF S=0 THEN R(X)=R(X)+1
|
||||
160 PRINT:INPUT"DO YOU WANT ANOTHER ONE";A$
|
||||
165 IF A$="YES" OR A$="Y" THEN 180
|
||||
170 PRINT"YOU GOT ";R(X);" OUT OF ";Z
|
||||
175 GOTO 500
|
||||
180 PRINT:PRINT:PRINT:NEXT Z
|
||||
185 GOTO 170
|
||||
200 PRINT"THIS IS SUBTRACTION":FOR Z=1 TO 100
|
||||
205 W=INT(1000*RND(Z1)+1):V=INT(1000*RND(Z1)+1)
|
||||
210 Y=W-V
|
||||
211 S=0
|
||||
215 PRINT:PRINT"WHAT IS:":PRINT
|
||||
220 PRINTW;"-";V:INPUT U
|
||||
225 IF U=Y THEN 240
|
||||
226 S=1
|
||||
230 PRINT:PRINT"NO, I'M AFRAID THAT'S":PRINT"NOT IT.":PRINT
|
||||
233 PRINT"DO YOU WANT TO"
|
||||
235 INPUT"TRY AGAIN";A$:IFA$="Y" OR A$="YES" THEN 215
|
||||
236 PRINT
|
||||
237 PRINT"THE ANSWER IS ";Y
|
||||
238 PRINT:GOTO260
|
||||
240 PRINT:PRINT"BRAVO!! GOOD JOB!!"
|
||||
245 IF S=0 THEN R(X)=R(X)+1
|
||||
250 PRINT
|
||||
260 INPUT "DO YOU WANT ANOTHER ONE";A$
|
||||
265 IF A$="YES" OR A$="Y" THEN 280
|
||||
270 PRINT"YOU GOT ";R(X);" OUT OF ";Z
|
||||
275 GOTO 500
|
||||
280 PRINT:PRINT:PRINT:NEXT Z
|
||||
285 GOTO 270
|
||||
300 PRINT"THIS IS MULTIPLICATION":FOR Z=1 TO 100
|
||||
305 W=INT(20*RND(Z1)+1):V=INT(20*RND(Z1)+1)
|
||||
310 Y=W*V
|
||||
311 S=0
|
||||
315 PRINT"WHAT IS:"
|
||||
318 PRINT
|
||||
320 PRINTW;"*";V:INPUT U
|
||||
325 IF Y=U THEN 340
|
||||
326 S=1
|
||||
328 PRINT
|
||||
330 PRINT:PRINT"SORRY, BUT THAT'S NOT":PRINT"CORRECT. ":PRINT
|
||||
333 PRINT"DO YOU WANT TO TRY"
|
||||
335 INPUT "AGAIN";A$:IF A$="Y" OR A$="YES" THEN 315
|
||||
337 PRINT:PRINT"THE ANSWER IS";Y
|
||||
338 GOTO 360
|
||||
340 PRINT:PRINT"YOU GOT IT!!"
|
||||
344 PRINT
|
||||
345 IF S=0 THEN R(X)=R(X)+1
|
||||
360 PRINT:INPUT"DO YOU WANT ANOTHER ONE";A$
|
||||
365 IF A$="Y" OR A$="YES" THEN 380
|
||||
366 PRINT
|
||||
370 PRINT"YOU GOT ";R(X);" OUT OF ";Z
|
||||
375 GOTO 500
|
||||
380 PRINT:PRINT:PRINT:NEXT Z
|
||||
385 GOTO 370
|
||||
400 PRINT"THIS IS DIVISION":FOR Z=1 TO 100
|
||||
405 W=INT(150*RND(Z1)+1):V=INT(75*RND(Z1)+1)
|
||||
410 Y=W/V:IF Y=INT(Y) THEN 414
|
||||
411 GOTO 405
|
||||
414 S=0
|
||||
415 PRINT:PRINT"WHAT IS:"
|
||||
420 PRINTW;"/";V:INPUT U
|
||||
425 IF Y=U THEN 440
|
||||
426 S=1
|
||||
428 PRINT
|
||||
430 PRINT"NOT QUITE RIGHT. DO YOU":PRINT"WANT ANOTHER CRACK "
|
||||
435 INPUT "AT IT";A$:IF A$="Y" OR A$="YES" THEN 415
|
||||
436 PRINT
|
||||
437 PRINT"THE ANSWER IS: ";Y
|
||||
438 PRINT:GOTO460
|
||||
439 PRINT
|
||||
440 PRINT:PRINT"PERFECT!!"
|
||||
444 PRINT
|
||||
445 IF S=0 THEN R(X)=R(X)+1
|
||||
450 PRINT
|
||||
460 INPUT "DO YOU WANT ANOTHER ONE";A$
|
||||
462 PRINT
|
||||
465 IF A$="Y" OR A$="YES" THEN 480
|
||||
470 PRINT"YOU GOT ";R(X);" OUT OF ";Z
|
||||
475 GOTO 500
|
||||
480 PRINT:PRINT:PRINT:NEXT Z
|
||||
482 PRINT
|
||||
485 GOTO 470
|
||||
500 PRINT:PRINT"WOULD YOU LIKE ANOTHER"
|
||||
505 INPUT"CATEGORY";A$
|
||||
510 IF A$="Y" OR A$="YES" THEN 30
|
||||
600 END
|
||||
124
apps/c1p/BASIC/OSI/SAMPLE2.BAS
Normal file
124
apps/c1p/BASIC/OSI/SAMPLE2.BAS
Normal file
|
|
@ -0,0 +1,124 @@
|
|||
1 REM ***ROBERT L.
|
||||
2 REM ***COPPEDGE
|
||||
3 FOR SC=1TO32:PRINT:NEXT
|
||||
4 DIM A$(20),Y(20),Q(20)
|
||||
5 PRINT"THIS PROGRAM FIGURES"
|
||||
6 PRINT"OUT YOUR CHECKING"
|
||||
7 PRINT"ACCOUNT. TO DO"
|
||||
8 PRINT"THIS, A NUMBER OF"
|
||||
9 PRINT"THINGS ARE NEEDED, SUCH"
|
||||
10 PRINT"AS THE NUMBER OF CHECKS"
|
||||
11 PRINT"TO BE USED, THE TOTAL"
|
||||
12 PRINT"AMOUNT TO START WITH,"
|
||||
13 PRINT"AND THE NAME OF THE "
|
||||
14 PRINT"RECIPIENT OF THE CHECK,":PRINT"AS WELL AS THE AMOUNT."
|
||||
15 PRINT:INPUT"TYPE 'C' TO CONTINUE";A$
|
||||
16 FOR SC=1TO32:PRINT:NEXT
|
||||
34 PRINT"IF YOU HAVE MADE A"
|
||||
35 PRINT"MISTAKE, AND YOU WOULD"
|
||||
36 PRINT"LIKE TO CORRECT IT,"
|
||||
37 PRINT"MERELY TYPE IN THE WORD"
|
||||
38 PRINT"'HELP' WHEN I ASK"
|
||||
39 PRIP"YOU FOR A CHECK'S NAME."
|
||||
45 HELP=-6
|
||||
46 PRINT
|
||||
50 PRINT:PRINT"PLEASE ENTER YOUR":PRINT"INITIAL BALANCE"
|
||||
54 INPUT T
|
||||
60 IF T=-6 THEN 160
|
||||
62 PRINT
|
||||
65 PRINT"HOW MANY CHECKS DO YOU"
|
||||
66 PRINT"WANT TO BE TOTALLED";:INPUT X
|
||||
67 IF X=0 THEN 160
|
||||
70 IF X=-6 THEN GOTO 160
|
||||
71 FOR SC=1TO32:PRINT:NEXT
|
||||
75 PRINT"ENTER THE NAME OF THE ":PRINT"PERSON OR PERSONS TO"
|
||||
76 PRINT"WHOM THE CHECKS WERE ":PRINT"WRITTEN."
|
||||
77 PRINT
|
||||
78 PRINT"IT'S A GOOD IDEA TO ":PRINT"LIST THEM IN ORDER."
|
||||
80 PRINT
|
||||
90 PRINT"IF IT IS A DEPOSIT, ":PRINT"TYPE 'XDEPOSIT' AND"
|
||||
91 PRINT"THEN THE AMOUNT.":PRINT
|
||||
94 IF X=0 THEN 160
|
||||
95 FOR Z=1 TO X
|
||||
100 PRINT:PRINT"CHECK NUMBER";Z:PRINT
|
||||
101 PRINT"MADE OUT TO:"
|
||||
105 INPUT A$(Z)
|
||||
110 IF A$(Z)="HELP" THEN 160
|
||||
114 PRINT
|
||||
115 PRINT"AMOUNT";:INPUT Y(Z)
|
||||
120 IF Y(Z)=-6 THEN 160
|
||||
124 IF A$(Z)="XDEPOSIT" THEN Y(Z)=-Y(Z)
|
||||
125 NEXT Z
|
||||
128 L=T:PRINT:PRINT:PRINT
|
||||
129 PRINT"ORIGINAL AMOUNT: ";:PRINTT
|
||||
130 PRINT:PRINT"#--MADE TO"
|
||||
131 PRINTTAB(9)"AMOUNT--BALANCE"
|
||||
133 PRINT:PRINT
|
||||
135 FOR Z=1 TO X
|
||||
140 PRINTZ;:PRINTA$(Z)
|
||||
146 LET Q(Z)=ABS(Y(Z))
|
||||
150 L=L-Y(Z)
|
||||
153 PRINTTAB(10)Q(Z);:PRINTTAB(20)L:PRINT
|
||||
155 NEXT Z
|
||||
156 FOR Z=1 TO 5000
|
||||
157 NEXT Z
|
||||
158 PRINT:PRINT:PRINT
|
||||
160 FOR SC=1TO32:PRINT:NEXT
|
||||
161 PRINT"IF THERE ARE MISTAKES":PRINT"THAT YOU WOULD LIKE"
|
||||
162 PRINT"TO CORRECT THEN TYPE IN"
|
||||
166 PRINT"ONE OF THE FOLLOWING":PRINT"NUMBERS:"
|
||||
170 PRINT:PRINT"1) IF THE TOTAL IS WRONG"
|
||||
175 PRINT:PRINT"2) IF A CHECK OR DEP-":PRINT" OSIT IS INCORRECT."
|
||||
180 PRINT:PRINT"3) IF EVERYTHING'S OK.":PRINT
|
||||
190 PRINT:PRINT
|
||||
195 INPUT"(1,2 OR 3)";R
|
||||
196 IF R<1 THEN 165
|
||||
197 IF R>3 THEN 165
|
||||
199 PRINT:PRINT:PRINT
|
||||
200 ON R GOTO 220,230,205,215
|
||||
205 PRINT"OK.":GOTO 400
|
||||
215 PRINT"TRY AGAIN":GOTO 175
|
||||
220 PRINT"ENTER IN NEW TOTAL";:INPUT T:GOTO 128
|
||||
230 PRINT"DO YOU HAVE MORE CHECKS"
|
||||
231 PRINT"OR DEPOSITS TO ADD"
|
||||
232 PRINT"(YES OR NO)";:INPUT N$
|
||||
234 PRINT:PRINT:PRINT
|
||||
235 IF N$="NO" THEN 250
|
||||
240 PRINT"HOW MANY MORE";:INPUT W
|
||||
245 X=X+W :GOTO 310
|
||||
250 PRINT"DO YOU WANT TO EITHER"
|
||||
251 PRINT"CHANGE OR ERASE ONE OF"
|
||||
252 PRINT"THE CHECKS OR DEPOSITS";
|
||||
255 INPUT N$:IF N$="YES" THEN 270
|
||||
256 PRINT:PRINT:PRINT
|
||||
260 GOTO 160
|
||||
270 PRINT:PRINT:PRINT"WHICH CHECK # DO YOU WANT"
|
||||
271 PRINT"TO CHANGE";:INPUT M
|
||||
274 PRINT:PRINT:PRINT
|
||||
275 PRINT"DO YOU WANT TO CHANGE OR"
|
||||
276 PRINT"ERASE IT (1=CHANGE, "
|
||||
277 PRINT"2=ERASE)";:INPUT K
|
||||
278 PRINT:PRINT:PRINT
|
||||
280 ON K GOTO 300,290,275
|
||||
290 A$(M)="DELETED"
|
||||
291 Y(M)=0
|
||||
295 GOTO 128
|
||||
300 PRINT"NEW CHECK NAME"
|
||||
301 INPUT A$(M)
|
||||
302 PRINT"NEW AMOUNT";:INPUT Y(M)
|
||||
303 PRINT:PRINT:PRINT
|
||||
305 PRINT"ANY MORE CHECKS TO BE"
|
||||
306 PRINT"REDONE(YES OR NO)";:INPUT B$
|
||||
307 IF B$="NO" THEN 130
|
||||
308 IF B$="YES" THEN 273
|
||||
309 GOTO 130
|
||||
310 FOR Z=X-(W-1) TO X
|
||||
315 PRINT"CHECK #":PRINTZ
|
||||
320 PRINT"MADE OUT TO:"
|
||||
325 INPUT A$(Z)
|
||||
326 IF A$(Z)="HELP" THEN 160
|
||||
330 PRINT"AMOUNT";:INPUT Y(Z)
|
||||
335 IF Y(Z)=-6 THEN 160
|
||||
340 NEXT Z
|
||||
345 GOTO 128
|
||||
400 END
|
||||
100
apps/c1p/BASIC/OSI/SAMPLE3.BAS
Normal file
100
apps/c1p/BASIC/OSI/SAMPLE3.BAS
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
10 FORH=1TO35:PRINT:NEXT
|
||||
20 PRINT"TRIGNOMETRY DEALS":PRINT"PRIMARILY WITH SIX"
|
||||
22 PRINT"RATIOS CALLED":PRINT"TRIGNOMETRIC FUNCTIONS.":PRINT
|
||||
25 PRINT"THE FIRST OF THESE":PRINT"FUNCTIONS IS THE SINE.":PRINT
|
||||
30 PRINT"SINE IS USUALLY WRITTEN":PRINT"AS 'SIN' IN TRIGNOMETRY."
|
||||
32 FORH=1TO7:PRINT:NEXT:FORH=1TO13000:NEXT
|
||||
35 PRINT"THE SINE OF ANGLE 'A'":PRINT"IS THE OPPOSITE"
|
||||
36 PRINT"SIDE DIVIDED BY"
|
||||
37 PRINT"THE HYPOTENUSE."
|
||||
40 PRINT:PRINT"THE HYPOTENUSE IS THE"
|
||||
42 PRINT"THE LONGEST SIDE OF A":PRINT"RIGHT ANGLED TRIANGLE."
|
||||
44 PRINT:PRINT:PRINT"HIT 'SPACE BAR' TO":PRINT"CONTINUE PROGRAM."
|
||||
46 FORH=1TO10:PRINT:NEXT:GOSUB4000:GOSUB5000
|
||||
50 PRINT"THUS: SIN(A)=":PRINT"LENGHT OF SIDE 'y'"
|
||||
52 PRINT"DIVIDED BY 'r'.":PRINT:PRINT"OR SIN(A)=y/r.":PRINT
|
||||
54 PRINT"IF x=4, y=3, AND r=5":PRINT"THEN WHAT IS THE"
|
||||
56 PRINT"VALUE OF SIN(A)?":PRINT:PRINT"SINCE SIN(A)=y/r OR"
|
||||
58 PRINT"SIN(A)=3/5=.6":PRINT:PRINT"HIT 'SPACE BAR' TO"
|
||||
60 PRINT"CONTINUE PROGRAM.":FORH=1TO9:PRINT:NEXT
|
||||
62 GOSUB4000:GOSUB5000:PRINT"THE NEXT TRIG. FUNCTION"
|
||||
90 PRINT"IS THE 'COS' OR COSINE.":PRINT
|
||||
92 PRINT"THE COS(A) EQUALS THE":PRINT"LENGTH OF THE ADJACENT"
|
||||
95 PRINT"SIDE DIVIDED BY THE":PRINT"LENGHT OF":PRINT"THE HYPOTENUSE."
|
||||
97 PRINT:PRINT"HIT 'SPACE BAR' TO":PRINT"CONTINUE PROGRAM"
|
||||
99 FORH=1TO12:PRINT:NEXT:GOSUB4000:GOSUB5000
|
||||
102 PRINT"THUS THE 'COS' OF ANGLE":PRINT"A EQUALS x/r"
|
||||
105 PRINT"OR COS(A)=x/r.":PRINT:PRINT"IF x=4, y=3, AND r=5"
|
||||
108 PRINT"THEN WHAT IS THE COS(A)?":PRINT
|
||||
111 PRINT"SINCE COS(A)=x/r OR":PRINT"COS(A)=4/5=.8"
|
||||
114 PRINT:PRINT"HIT 'SPACE BAR' TO":PRINT"CONTINUE PROGRAM."
|
||||
117 FORH=1TO11:PRINT:NEXT:GOSUB4000:GOSUB5000
|
||||
212 PRINT"THUS 'TAN' OF ANGLE A":PRINT"EQUALS THE LENGTH OF y"
|
||||
218 PRINT"DIVIDED BY THE LENGTH":PRINT"OF x. OR: TAN(A)=y/x."
|
||||
220 PRINT:PRINT"HIT 'SPACE BAR' TO":PRINT"CONTINUE PROGRAM."
|
||||
222 FORH=1TO14:PRINT:NEXT:GOSUB4000:GOSUB5000
|
||||
240 PRINT"IF x=4, y=3, AND r=5":PRINT"THEN WHAT IS THE TAN(A)?"
|
||||
245 PRINT:PRINT"SINCE TAN(A)=y/x THUS":PRINT"TAN(A)=3/4=.75"
|
||||
248 PRINT:PRINT"HIT 'SPACE BAR' TO":PRINT"CONTINUE PROGRAM."
|
||||
250 FORH=1TO11:PRINT:NEXT:GOSUB4000:GOSUB5000
|
||||
270 PRINT"NOW LET'S HAVE A SHORT":PRINT"QUIZ TO TEST YOUR"
|
||||
275 PRINT"KNOWLEDGE OF THE SIN,":PRINT"COS, AND TAN."
|
||||
280 PRINT:PRINT"PLEASE GIVE":PRINT"DECIMAL ANSWERS!":PRINT:PRINT
|
||||
285 PRINT"HIT 'SPACE BAR' TO":PRINT"CONTINUE PROGRAM."
|
||||
290 FORH=1TO6:PRINT:NEXT:GOSUB5000
|
||||
295 PRINT"IF x=4, y=3, AND r=5":PRINT"THEN WHAT IS THE COS(A)?"
|
||||
300 FORH=1TO15:PRINT:NEXT:GOSUB4000:INPUTA1
|
||||
305 IFA1<>.8THENPRINT"WRONG":PRINT"x/r=4/5=.8"
|
||||
308 IFA1=.8THENPRINT"RIGHT!"
|
||||
310 GOSUB6000
|
||||
315 PRINT"IF x=4, y=3, AND r=5":PRINT"THEN WHAT IS THE SIN(A)?"
|
||||
320 FORH=1TO15:PRINT:NEXT:GOSUB4000:INPUTA1
|
||||
325 IFA1<>.6THENPRINT"WRONG":PRINT"y/r=3/5=.6"
|
||||
330 IFA1=.6THENPRINT"RIGHT!"
|
||||
334 GOSUB6000
|
||||
350 PRINT"IF x=4, y=3, AND r=5":PRINT"THEN WHAT IS THE TAN(A)?"
|
||||
355 FORH=1TO15:PRINT:NEXT:GOSUB4000:INPUTA1
|
||||
360 IFA1<>.75THENPRINT"WRONG":PRINT"y/x=3/4=.75"
|
||||
365 IFA1=.75THENPRINT"RIGHT!"
|
||||
370 GOSUB6000
|
||||
400 PRINT"THIS NEXT SECTION IS":PRINT"A LITTLE TOUGHER.":PRINT
|
||||
410 PRINT"THE QUESTIONS WILL":PRINT"ASK YOU ABOUT THE"
|
||||
415 PRINT"SIN, COS, AND TAN OF":PRINT"ANGLE B: NOT ANGLE A!"
|
||||
420 PRINT:PRINT"HIT 'SPACE BAR' TO":PRINT"CONTINUE PROGRAM."
|
||||
425 FORH=1TO7:PRINT:NEXT:GOSUB5000
|
||||
430 FORH=1TO27:PRINT:NEXT:PRINT"REMEMBER:"
|
||||
435 PRINT"COS EQUALS ADJACENT SIDE":PRINT"DIVIDED BY HYPOTENUSE"
|
||||
440 PRINT:PRINT"IF x=4, y=3, AND r=5":PRINT"THEN WHAT IS THE COS(B)?"
|
||||
445 FORH=1TO15:PRINT:NEXT:GOSUB4000:INPUTA1
|
||||
450 IFA1<>.6THENPRINT"WRONG":PRINT"y/r=3/5=.6"
|
||||
455 IFA1=.6THENPRINT"RIGHT!"
|
||||
460 GOSUB6000
|
||||
490 PRINT"SIN EQUALS OPPOSITE SIDE":PRINT"DIVIDED BY HYPOTENUSE."
|
||||
500 PRINT:PRINT"IF x=4, y=3, AND r=5":PRINT"THEN WHAT IS THE SIN(B)?"
|
||||
510 FORH=1TO15:PRINT:NEXT:GOSUB4000:INPUTA1
|
||||
520 IFA1<>.8THENPRINT"WRONG":PRINT"x/r=4/5=.8"
|
||||
530 IFA1=.8THENPRINT"RIGHT!"
|
||||
535 GOSUB6000
|
||||
550 PRINT"TAN EQUALS OPPOSITE SIDE":PRINT"DIVIDED BY THE"
|
||||
555 PRINT"ADJACENT SIDE.":PRINT
|
||||
560 PRINT"IF x=4, y=3, AND r=5":PRINT"THEN WHAT IS THE TAN(B)?"
|
||||
570 FORH=1TO15:PRINT:NEXT:GOSUB4000:INPUTA1$
|
||||
575 IFLEFT$(A1$,3)="1.3"THENPRINT"RIGHT!"
|
||||
580 IFLEFT$(A1$,3)<>"1.3"THENPRINT"WRONG":PRINT"x/y=4/3=1.33"
|
||||
600 GOSUB6000:PRINT"THIS IS THE END":PRINT"OF THE PROGRAM."
|
||||
610 PRINT:PRINT"DO YOU WANT TO":INPUT"RUN IT AGAIN";A1$
|
||||
620 IF LEFT$(A1$,1)="Y"THEN10
|
||||
630 END
|
||||
4000 FORH=0TO16:POKE54060+H,135:NEXT
|
||||
4010 FORH=0TO7:POKE54127-32*H,143:NEXT
|
||||
4020 FORH=0TO9:POKE54032-H*31,189:NEXT
|
||||
4030 FORH=0TO9:POKE54042-H*32,136:NEXT
|
||||
4040 POKE54063,207:POKE54128,45:POKE54129,89
|
||||
4050 POKE54094,65:POKE54011,43:POKE54012,88
|
||||
4060 POKE54036,120:POKE53876,114:POKE53881,121
|
||||
4070 POKE53936,43:POKE53937,89:POKE54028,45:POKE54029,88
|
||||
4080 POKE53755,66:POKE54041,210:RETURN
|
||||
5000 POKE530,1:POKE57088,1
|
||||
5100 IFPEEK(57088)=239THENFORH=1TO28:PRINT:NEXT:RETURN
|
||||
5200 GOTO5000
|
||||
6000 FORH=1TO6000:NEXT:FORH=1TO26:PRINT:NEXT:RETURN
|
||||
116
apps/c1p/BASIC/OSI/SAMPLE4.BAS
Normal file
116
apps/c1p/BASIC/OSI/SAMPLE4.BAS
Normal file
|
|
@ -0,0 +1,116 @@
|
|||
1 REM***ROBERT L.
|
||||
2 REM***COPPED
|
||||
3 GOSUB20000:FORX=1TO8:READJ(X):NEXTX
|
||||
4 H=54000:T=32:U=32
|
||||
5 FORX=1TO8:READH(X):NEXT:DIMF(16)
|
||||
6 FORX=1TO6:READG(X):NEXT
|
||||
7 POKE530,1:KEY=57088:V=32:W=32
|
||||
8 DEFFND(X)=X-53349-32*INT((X-53349)/32)
|
||||
9 FORX=1TO8:READF(X):NEXT
|
||||
10 INPUT"ENTER RANDOM #";Z1
|
||||
11 FORX=1TO35:PRINT:NEXT:FORX=1TO100
|
||||
12 Y=INT(53349+RND(Z1)*1024)
|
||||
13 POKEY,46:NEXT:POKE54117,32
|
||||
14 EP=INT(53349+RND(Z1)*919)
|
||||
15 IFFND(EP)=<1ORFND(EP)>=24THEN14
|
||||
16 R=PEEK(EP)
|
||||
17 IFEP>54268OREP<53449THEN14
|
||||
50 M=INT(16*RND(Z1)+1)
|
||||
52 IFM>15.8THEN2000
|
||||
53 IFM>8THEN70
|
||||
55 IFFND(EP+F(M))=1ORFND(EP+F(M))=>24THEN50
|
||||
57 IFEP+F(M)<53449OREP+F(M)>54268THEN50
|
||||
58 EP=EP+F(M)
|
||||
60 S=PEEK(EP):POKEEP,4:POKEEP-F(M),R
|
||||
62 R=S
|
||||
63 IFR=40ORR=41THENR=32
|
||||
70 POKEKEY,64:P=PEEK(KEY):FORX=1TO6
|
||||
71 IFP=246THENX=5:GOTO1000
|
||||
72 IFP=G(X)THENGOTO1000
|
||||
73 IFX=ETHENGOTO1000
|
||||
74 NEXT
|
||||
80 GOTO50
|
||||
1000 IFX=<4THEN1010
|
||||
1005 ONX-4GOTO1050,1100
|
||||
1010 IFFND(H+F(X)-1)=0ORFND(H+F(X)+1)=>24THEN1400
|
||||
1015 IFH+F(X)>54268ORH+F(X)<53349THEN1400
|
||||
1020 H=H+F(X):I=H+1:J=H-1
|
||||
1030 T=PEEK(I):U=PEEK(J)
|
||||
1035 IFT=4THENT=32
|
||||
1036 IFU=4THENU=32
|
||||
1040 POKEI-F(X),V:POKEJ-F(X),W
|
||||
1045 POKEJ,40:POKEI,41
|
||||
1046 V=T:W=U
|
||||
1047 E=X:GOTO1400
|
||||
1050 E=0:X=6:GOTO74
|
||||
1100 FORX1=1TO150:POKEH,X1:NEXTX1:POKEH,32
|
||||
1101 IFH=EPTHEN1200
|
||||
1110 GOTO74
|
||||
1200 KI=KI+1:IFKI>7THEN3000
|
||||
1201 FORC1=1TO22:POKE54117+C1,ASC(MID$(A$,C1,1))
|
||||
1202 NEXTC1:FORC2=1TO300:NEXTC2
|
||||
1203 FORC1=1TO22:POKE54117+C1,32
|
||||
1204 NEXTC1
|
||||
1205 GOTO14
|
||||
1400 GOTO74
|
||||
2000 REM***ALIEN FIRE
|
||||
2001 REM***PHASE
|
||||
2010 D=INT(1+8*RND(Z1))
|
||||
2011 K=FND(EP)
|
||||
2015 FORB=1TO24:POKEEP+B*F(D),H(D)
|
||||
2017 IFK+B*J(D)=1ORK+B*J(D)>=23THEN2050
|
||||
2018 IFEP+B*F(D)<53349OREP+B*F(D)>54268THEN2050
|
||||
2020 NEXTB
|
||||
2050 FORC=1TOB:POKEEP+C*F(D),32:NEXT
|
||||
2060 IFD=2THEN2500
|
||||
2070 GOTO70
|
||||
2500 FORC1=1TO150
|
||||
2501 B6=INT(53349+RND(Z1)*919)
|
||||
2502 POKEB6,42:NEXTC1
|
||||
2503 PRINT"ENEMY HAS SHATTERED"
|
||||
2504 PRINT"TURRET SYSTEM."
|
||||
2505 PRINT"TURRET KNOCKED OUT"
|
||||
2506 PRINTKI;" RAIDERS BEFORE"
|
||||
2507 PRINT"IT WAS DISABLED"
|
||||
2508 PRINT"WOULD YOU LIKE TO"
|
||||
2509 PRINT"SWITCH TO ANOTHER"
|
||||
2510 INPUT"TURRET";B$
|
||||
2550 IFLEFT$(B$,1)="Y"THEN2560
|
||||
2555 GOTO4000
|
||||
2560 FORX4=54117TO54300:POKEX4,32:NEXTX4
|
||||
2561 KI=0
|
||||
2565 GOTO10
|
||||
2600 END
|
||||
3000 PRINT"THE TURRET DEFENSE HAS"
|
||||
3001 PRINT"SHATTERED THE"
|
||||
3002 PRINT"RAIDERS NOW-ABORTED"
|
||||
3003 PRINT"ATTEMPT AT STELLAR"
|
||||
3004 PRINT"CONQUEST. WOULD YOU"
|
||||
3005 PRINT"LIKE THEM TO TRY IT"
|
||||
3006 INPUT"AGAIN";B$
|
||||
3007 IFLEFT$(B$,1)="Y"THEN2560
|
||||
4000 PRINT"OK, THEN THEY'LL GO"
|
||||
4001 PRINT"HOME FOR NOW."
|
||||
4500 END
|
||||
9999 DATA0,0,-1,1,1,-1,1,-1
|
||||
10000 DATA140,140,131,131,189,190,190,189
|
||||
10005 DATA126,190,222,238,246,250
|
||||
10009 DATA-32,32,-1,1,-31,-33,33,31
|
||||
20000 A$="NEW TARGET APPROACHING"
|
||||
20002 PRINT:PRINT:PRINT:PRINT:PRINT:PRINT
|
||||
20010 INPUT"INSTRUCTIONS NEEDED";R$
|
||||
20020 IFLEFT$(R$,1)="N"THENRETURN
|
||||
20025 PRINT"Destroy the enemy"
|
||||
20030 PRINT"by getting it within"
|
||||
20035 PRINT"the crosshairs. To"
|
||||
20040 PRINT"move the crosshairs,"
|
||||
20045 PRINT"type in a:"
|
||||
20050 PRINT:PRINT"1> moves up"
|
||||
20055 PRINT"2> moves down"
|
||||
20060 PRINT"3> moves left"
|
||||
20065 PRINT"4> moves right"
|
||||
20070 PRINT"5> stops"
|
||||
20075 PRINT"6> fires"
|
||||
20080 PRINT:PRINT:PRINT"Watch it, though,"
|
||||
20085 PRINT"the sucker fires back!!"
|
||||
20090 RETURN
|
||||
167
apps/c1p/BASIC/OSI/SAMPLE5.BAS
Normal file
167
apps/c1p/BASIC/OSI/SAMPLE5.BAS
Normal file
|
|
@ -0,0 +1,167 @@
|
|||
1 REM--ROGER VAN SCOY
|
||||
2 REM--COUNTER
|
||||
19 D1=53392
|
||||
20 W=0:KEY=57088
|
||||
21 DEF FNZ(F)=55-INT(LOG(F)/LOG(2)-.5)
|
||||
22 POKE530,1
|
||||
25 DIMC(25):FORX=1TO25:READC(X):NEXT
|
||||
27 DIMA(23):FORX=1TO23:READA(X):NEXT
|
||||
29 DIMB(19):FORX=1TO19:READB(X):NEXT
|
||||
30 DIMD(24):FORX=1TO24:READD(X):NEXT
|
||||
33 FORX=1TO34:PRINT:NEXT
|
||||
35 PRINT"HI, WHAT'S YOU'RE NAME":INPUTN$
|
||||
40 FORX=1TO34:PRINT:NEXT
|
||||
50 A=53991:P=53487:C=54032:B=P+7*64:D=54181:CN=0
|
||||
70 R=ASC(N$)
|
||||
75 PRINT"TODAY, ";N$
|
||||
80 PRINT"WE'LL PRACTICE"
|
||||
85 PRINT"COUNTING TO TEN!!!"
|
||||
90 FORX=1TO14:PRINT:NEXT
|
||||
91 POKE54117,32
|
||||
94 FORX=1TO4000:NEXT
|
||||
95 FORX=53530TO53700:POKEX,32:NEXT
|
||||
97 GOSUB6000:GOTO1150
|
||||
100 REM---ONE
|
||||
110 Z=P+1:FORX=ZTOZ+6*64STEP64:POKEX,49:NEXT
|
||||
120 POKEZ+63,49:POKEZ+6*64-1,49:POKEZ+6*64+1,49
|
||||
130 POKEB,79:POKEB+1,78:POKEB+2,69
|
||||
135 POKEC,9:POKEC+1,10
|
||||
140 RETURN
|
||||
200 REM---TWO
|
||||
210 POKEP+63,50:FORX=PTOP+2:POKEX,50:NEXT
|
||||
220 Z=P+3:POKEZ+64,50:POKEZ+128,50
|
||||
230 Z=Z+192:POKEZ-1,50:POKEZ-2,50:Z=Z+61:POKEZ,50
|
||||
240 Z=Z+63:POKEZ,50:Z=Z+64:FORX=ZTOZ+4:POKEX,50:NEXT
|
||||
250 POKEB,84:POKEB+1,87:POKEB+2,79
|
||||
260 POKEC-2,181:POKEC-1,182:POKEC,32:POKEC+1,181:POKEC+2,182
|
||||
270 RETURN
|
||||
300 FORX=1TO300
|
||||
320 FORX=P+1TOP+5:POKEX,51:NEXT
|
||||
330 Z=P+69:POKEZ,51:POKEZ+63,51:POKEZ+127,51:POKEZ+126,51:Z=Z+192
|
||||
340 POKEZ,51:POKEZ+64,51
|
||||
350 Z=Z+128:FORX=Z-1TOZ-3STEP-1:POKEX,51:NEXT:POKEZ-68,51
|
||||
360 POKEB+1,84:POKEB+2,72:POKEB+3,82:POKEB+4,69:POKEB+5,69
|
||||
370 POKEC-2,214:POKEC-1,211:POKEC,32:POKEC+1,214:POKEC+2,211
|
||||
380 POKEC+4,214:POKEC+5,211
|
||||
390 RETURN
|
||||
400 REM---FOUR
|
||||
410 Z=P+2:FORX=ZTOZ+6*64STEP64:POKEX,52:NEXT
|
||||
420 Z=Z+62:POKEZ+1,52:POKEZ+64,52:Z=Z+127:POKEZ,52:Z=Z+64
|
||||
430 FORX=ZTOZ+4:POKEX,52:NEXT
|
||||
440 POKEB,70:POKEB+1,79:POKEB+2,85:POKEB+3,82
|
||||
450 POKEC-4,7:POKEC-3,8:POKEC-2,32:POKEC-1,7:POKEC,8:POKEC+1,32
|
||||
460 POKEC+2,7:POKEC+3,8:POKEC+4,32:POKEC+5,7:POKEC+6,8
|
||||
470 RETURN
|
||||
500 REM---FIVE
|
||||
510 FORX=PTOP+4:POKEX,53:NEXT:Z=P+128:POKEZ-64,53
|
||||
520 FORX=ZTOZ+3:POKEX,53:NEXT:Z=Z+68:FORX=ZTOZ+128STEP64:POKEX,53:NEXT
|
||||
530 Z=Z+191:FORX=ZTOZ-2STEP-1:POKEX,53:NEXT:POKEZ-67,53
|
||||
540 POKEB,70:POKEB+1,73:POKEB+2,86:POKEB+3,69
|
||||
550 FORX=C-4TOC+8:POKEX,32:NEXT:POKEC-4,0:POKEC-2,0:POKEC,0:POKEC+2,0
|
||||
560 POKEC+4,0:RETURN
|
||||
600 REM---SIX
|
||||
610 Z=P+2:FORX=ZTOZ+2:POKEX,54:NEXT:POKEZ+63,54:Z=Z+126
|
||||
620 FORX=ZTOZ+192STEP64:POKEX,54:NEXT:Z=Z+64
|
||||
630 FORX=ZTOZ+3:POKEX,54:NEXT
|
||||
640 Z=Z+68:POKEZ,54:POKEZ+64,54:Z=Z+127
|
||||
650 FORX=ZTOZ-2STEP-1:POKEX,54:NEXT
|
||||
660 POKEB+1,83:POKEB+2,73:POKEB+3,88
|
||||
670 FORX=C-4TOC+4:POKEX,32:NEXT
|
||||
680 POKEC-4,15:POKEC-2,15:POKEC,15:POKEC+2,15:POKEC+4,15
|
||||
690 POKEC+60,15:RETURN
|
||||
700 REM---SEVEN
|
||||
710 FORX=PTOP+4:POKEX,55:NEXT:POKEP+68,55:POKEP+131,55:POKEP+194,55
|
||||
720 FORX=P+1+4*64TOP+1+6*64STEP64:POKEX,55:NEXT
|
||||
730 POKEB,83:POKEB+1,69:POKEB+2,86:POKEB+3,69:POKEB+4,78
|
||||
740 POKEC-4,236:POKEC-2,236:POKEC,236:POKEC+2,236:POKEC+4,236
|
||||
750 POKEC+60,236:POKEC+62,236:RETURN
|
||||
800 REM---EIGHT
|
||||
810 Z=P+1:FORX=ZTOZ+2:FORX1=Z+192TOZ+194:FORX2=Z+384TOZ+386
|
||||
820 POKEX,56:POKEX1,56:POKEX2,56:NEXTX2:NEXTX1:NEXTX
|
||||
830 Z=P+64:POKEZ,56:POKEZ+4,56:POKEZ+64,56:POKEZ+68,56
|
||||
840 Z=P+256:POKEZ,56:POKEZ+4,56:POKEZ+64,56:POKEZ+68,56
|
||||
850 POKEB,69:POKEB+1,73:POKEB+2,71:POKEB+3,72:POKEB+4,84
|
||||
860 POKEC-4,248:POKEC-2,248:POKEC,248:POKEC+2,248:POKEC+4,248
|
||||
870 POKEC+60,248:POKEC+62,248:POKEC+64,248:RETURN
|
||||
900 REM---NINE
|
||||
910 Z=P+1:FORX=ZTOZ+2:POKEX,57:NEXT
|
||||
920 Z=Z+67:FORX=ZTOZ+196STEP64:POKEX,57:NEXT
|
||||
930 POKEP+64,57:POKEP+128,57:Z=P+193:FORX=ZTOZ+2:POKEX,57:NEXT
|
||||
940 Z=P+6*64:FORX=ZTOZ+2:POKEX,57:NEXT:POKEZ-61,57
|
||||
950 POKEB,78:POKEB+1,73:POKEB+2,78:POKEB+3,69
|
||||
960 POKEC-4,16:POKEC-2,17:POKEC,18:POKEC+2,19:POKEC+4,20
|
||||
970 POKEC+60,20:POKEC+62,19:POKEC+64,18:POKEC+66,17:RETURN
|
||||
1000 REM---TEN
|
||||
1005 Z=P-3:FORX=ZTOZ+6*65STEP64:POKEX,49:NEXT
|
||||
1010 POKEZ+63,49:POKEZ+6*64-1,49:POKEZ+6*64+1,49
|
||||
1020 Z=P+1:Z1=Z+6*64:FORX=ZTOZ+2:FORX1=Z1TOZ1+2:POKEX,48:POKEX1,48
|
||||
1030 NEXTX1:NEXTX
|
||||
1040 Z=P+64:Z1=P+68:FORX=ZTOZ+256STEP64:FORX1=Z1TOZ1+256STEP64
|
||||
1050 POKEX,48:POKEX1,48:NEXTX1:NEXTX
|
||||
1060 POKEB-1,84:POKEB,69:POKEB+1,78:V=240
|
||||
1080 POKEC-4,V:POKEC-2,V:POKEC,V:POKEC+2,V:POKEC+4,V
|
||||
1090 FORX=60TO68STEP2:POKEX+C,V:NEXT:RETURN
|
||||
1095 RETURN
|
||||
1150 FORX=C-4TOC+8:POKEX,32:NEXT:FORX=C+60TOC+68:POKEX,32:NEXT
|
||||
1170 FORX=1TO23:POKED+X,A(X):NEXT
|
||||
1180 FORX=1TO5000:NEXT:FORX=1TO28:POKED+X,32:NEXT:FORE=1TO25
|
||||
1190 FORX=1TO19:POKED+X,B(X):NEXTX:FORX=20TO24:POKED+X,32:NEXTX
|
||||
1200 R1=INT(25*RND(R))+1:R2=INT(9*RND(R))+1
|
||||
1300 FORX=ATOA+2*R2STEP2:POKEX,C(R1):NEXT
|
||||
1325 GOSUB2000:R3=R2+1
|
||||
1330 IFW=0THEN1325
|
||||
1375 IFW=R3THENCN=CN+1:GOSUB7000
|
||||
1400 IFW<>R3THENFORX=1TO1000:GOSUB7500
|
||||
1500 IFR3=1THENGOSUB100:GOSUB5000:GOSUB8000
|
||||
1510 IFR3=2THENGOSUB200:GOSUB5000:GOSUB8000
|
||||
1520 IFR3=3THENGOSUB300:GOSUB5000:GOSUB8000
|
||||
1530 IFR3=4THENGOSUB400:GOSUB5000:GOSUB8000
|
||||
1540 IFR3=5THENGOSUB500:GOSUB5000:GOSUB8000
|
||||
1550 IFR3=6THENGOSUB600:GOSUB5000:GOSUB8000
|
||||
1560 IFR3=7THENGOSUB700:GOSUB5000:GOSUB8000
|
||||
1570 IFR3=8THENGOSUB800:GOSUB5000:GOSUB8000
|
||||
1580 IFR3=9THENGOSUB900:GOSUB5000:GOSUB8000
|
||||
1590 IFR3=10THENGOSUB1000:GOSUB5000:GOSUB8000
|
||||
1595 FORX=D1TOD1+7:POKEX,32:NEXT
|
||||
1600 POKED+21,32:POKED+22,32:W=0:NEXTE
|
||||
1800 FORX=0TO24:POKEX+D,32:NEXT
|
||||
1850 PRINTN$;"YOU GOT"
|
||||
1900 PRINTCN;"RIGHT OUT OF 25"
|
||||
1950 PRINT"QUESTIONS!!":END
|
||||
2000 POKEKE,127:F=255-PEEK(KE)
|
||||
2117 IFF=0THEN2500
|
||||
2150 IFF=128THENPOKED+21,49:W=1:GOSUB3000:RETURN
|
||||
2200 POKED+21,FNZ(F):W=FNZ(F)-48:RETURN
|
||||
2500 POKEKE,191:F=255-PEEK(KE)
|
||||
2800 IFF=0THEN2000
|
||||
2850 IFF<64THEN2000
|
||||
2900 POKED+21,FNZ(F)+7:W=FNZ(F)-41:RETURN
|
||||
3000 FORX=1TO100
|
||||
3100 POKEKE,128:F=254-PEEK(KE)
|
||||
3200 IFF=32THENPOKED+22,48:W=10:RETURN
|
||||
3300 NEXT:RETURN
|
||||
4900 DATA0,1,14,15,16,17,18,19,20,21,22,23,169,170,176,177,229
|
||||
4950 DATA232,236,240,248,246,238,239,237
|
||||
4960 DATA73,84,39,83,32,89,79,85,82,32,84,85,82,78,32,84,79,32
|
||||
4970 DATA67,79,85,78,84
|
||||
4980 DATA72,79,87,32,77,65,78,89,32,65,82,69,32,84,72,69,82,69,63
|
||||
4990 DATA87,82,79,78,71,44,32,84,72,69,32,65,78,83,87,69,82,32
|
||||
4991 DATA73,83,32,32,32,46
|
||||
5000 FORX=1TO4000:NEXT:FORX=P-10TOP+480:POKEX,32:NEXT:RETURN
|
||||
6000 GOSUB100:GOSUB5000:GOSUB200:GOSUB5000:GOSUB300:GOSUB5000
|
||||
6100 GOSUB400:GOSUB5000:GOSUB500:GOSUB5000:GOSUB600:GOSUB5000
|
||||
6200 GOSUB700:GOSUB5000:GOSUB800:GOSUB5000:GOSUB900:GOSUB5000
|
||||
6300 GOSUB1000:GOSUB5000:RETURN
|
||||
7000 FORX=-2TO24:POKEA+X,32:NEXT
|
||||
7005 POKED1,82:POKED1+1,105:POKED1+2,103:POKED1+3,104:POKED1+4,116
|
||||
7010 FORX=5TO7:POKED1+X,33:NEXT
|
||||
7100 FORX=P-4+6*64TOP+7*64:POKEX,32:NEXT
|
||||
7200 RETURN
|
||||
7500 FORX=-2TO24:POKEA+X,32:NEXT
|
||||
7505 FORX=1TO24:POKED+X,D(X):NEXT
|
||||
7510 IFR3=10THENPOKED+22,49:POKED+23,48:GOTO7550
|
||||
7520 POKED+22,R3+48
|
||||
7550 FORX=P-4+6*64TOP+7*64:POKEX,32:NEXT
|
||||
7700 RETURN
|
||||
8000 FORX=-4TO8:POKEC+X,32:NEXT:FORX=60TO68:POKEC+X,32:NEXT
|
||||
8100 RETURN
|
||||
266
apps/c1p/BASIC/OSI/SAMPLE6.BAS
Normal file
266
apps/c1p/BASIC/OSI/SAMPLE6.BAS
Normal file
|
|
@ -0,0 +1,266 @@
|
|||
1 FORSC=1TO30:PRINT:NEXT:REM--SUSAN SULLIVAN**PRES TUTOR
|
||||
2 PRINT"WANT INSTRUCTIONS?":INPUTD$:IF D$="Y"ORD$="YES"THEN50000
|
||||
3 PRINT"INPUT RANDOM SEED":INPUTX:Z=0:DIMQ(100):Q(1)=0
|
||||
4 R=INT(38*RND(X)+1):Z=Z+1:FOR SC=1TO30:PRINT:NEXT
|
||||
5 IFZ=1THEN60050
|
||||
6 GOTO60000
|
||||
10 PRINT"WHICH PRESIDENT STARTED"
|
||||
11 PRINT"THE TWO TERM TRADITION?"
|
||||
12 PRINT"HE WAS ELECTED UN-"
|
||||
13 PRINT"ANIMOUSLY."
|
||||
14 GOTO450
|
||||
20 PRINT"THIS MAN WAS THE FIRST"
|
||||
21 PRINT"VICE PRESIDENT AND THE"
|
||||
22 PRINT"SECOND PRESIDENT. HE"
|
||||
23 PRINT"AVOIDED WAR WITH"
|
||||
24 PRINT"EUROPE. WHO WAS HE?"
|
||||
25 GOTO450
|
||||
30 PRINT"WHO WAS THE PRESIDENT"
|
||||
31 PRINT"DURING THE LOUISIANA"
|
||||
32 PRINT"PURCHASE AND THE LEWIS"
|
||||
33 PRINT"AND CLARK EXPEDITION?"
|
||||
35 GOTO450
|
||||
40 PRINT"THIS PRESIDENT WAS"
|
||||
41 PRINT"CALLED 'THE FATHER OF"
|
||||
42 PRINT"THE CONSTITUTION'. HE"
|
||||
43 PRINT"WAS IN OFFICE DURING"
|
||||
44 PRINT"THE WAR OF 1812."
|
||||
45 GOTO450
|
||||
50 PRINT"WHO WAS THE PRESIDENT"
|
||||
51 PRINT"WHEN FLORIDA WAS"
|
||||
52 PRINT"ACQUIRED? HE ALSO WROTE"
|
||||
53 PRINT"AN IMPORTANT DOCTRINE."
|
||||
55 GOTO450
|
||||
60 PRINT"ELECTED BY THE HOUSE,"
|
||||
61 PRINT"HE WAS THE SON OF A"
|
||||
62 PRINT"FORMER PRESIDENT. WHO"
|
||||
63 PRINT"WAS HE?"
|
||||
65 GOTO450
|
||||
70 PRINT"THIS PRESIDENT IS GIVEN"
|
||||
71 PRINT"CREDIT FOR STARTING THE"
|
||||
72 PRINT"SPOILS SYSTEM."
|
||||
75 GOTO450
|
||||
80 PRINT"WHICH PRESIDENT STARTED"
|
||||
81 PRINT"AN INDEPENDENT TREASURY"
|
||||
82 PRINT"SYSTEM AND OPPOSED THE"
|
||||
83 PRINT"ANNEXING OF TEXAS?"
|
||||
85 GOTO450
|
||||
90 PRINT"WHICH PRESIDENT DIED"
|
||||
91 PRINT"AFTER ONLY 31 DAYS IN"
|
||||
92 PRINT"OFFICE? HE WAS A HERO"
|
||||
93 PRINT"OF THE BATTLE OF"
|
||||
94 PRINT"TIPPECANOE?"
|
||||
95 GOTO450
|
||||
100 PRINT"WHO WAS THE FIRST VICE"
|
||||
101 PRINT"PRESIDENT TO BECOME PR-"
|
||||
102 PRINT"ESIDENT BECAUSE OF THE"
|
||||
103 PRINT"DEATH OF THE PRESIDENT?"
|
||||
105 GOTO450
|
||||
110 PRINT"WHO WAS IN OFFICE WHEN "
|
||||
111 PRINT"THE STATES OF CAL.,UTAH"
|
||||
112 PRINT"AND NEW MEXICO WERE"
|
||||
113 PRINT"AQUIRED IN THE MEXICAN"
|
||||
114 PRINT"WAR?"
|
||||
115 GOTO450
|
||||
120 PRINT"THIS PRESIDENT DIED IN"
|
||||
121 PRINT"OFFICE AND WAS A HERO"
|
||||
122 PRINT"OF THE MEXICAN WAR?"
|
||||
125 GOTO450
|
||||
130 PRINT"WHO WAS PRESIDENT WHEN"
|
||||
131 PRINT"THE 1850 SLAVERY"
|
||||
132 PRINT"COMPROMISE AND THE"
|
||||
133 PRINT"FUGITIVE SLAVE ACT WERE"
|
||||
134 PRINT"PASSED?"
|
||||
135 GOTO450
|
||||
140 PRINT"WHICH PRESIDENT REPEALED"
|
||||
141 PRINT"THE MISSOURI COMPROMISE?"
|
||||
145 GOTO450
|
||||
150 PRINT"THIS PRESIDENT FAVORED"
|
||||
151 PRINT"THE LECOMPTON CONST-"
|
||||
152 PRINT"ITUTION FOR KANSAS?"
|
||||
155 GOTO450
|
||||
160 PRINT"WHO WAS THE FIRST PRE-"
|
||||
161 PRINT"SIDENT TO BE ASSASSI-"
|
||||
162 PRINT"NATED? HE WAS IN OFFICE"
|
||||
163 PRINT"DURING THE CIVIL WAR?"
|
||||
165 GOTO450
|
||||
170 PRINT"WHO WAS THE FIRST PRE-"
|
||||
171 PRINT"SIDENT TO BE IMPEACHED?"
|
||||
172 PRINT"THE SENATE FAILED TO"
|
||||
173 PRINT"CONVICT HIM BY ONE VOTE."
|
||||
175 GOTO450
|
||||
180 PRINT"THIS PRESIDENT WAS"
|
||||
181 PRINT"PLAGUED BY A CORRUPT"
|
||||
182 PRINT"ADMINISTRATION EVEN"
|
||||
183 PRINT"THOUGH HE PERSONALLY"
|
||||
184 PRINT"WAS HONEST?"
|
||||
185 GOTO450
|
||||
190 PRINT"WHICH PRESIDENT WAS"
|
||||
191 PRINT"ELECTED BY A COMMITTEE"
|
||||
192 PRINT"OF CONGRESS WHEN THE"
|
||||
193 PRINT"RETURNS WERE DISPUTED?"
|
||||
195 GOTO450
|
||||
200 PRINT"WHICH PRESIDENT WAS"
|
||||
201 PRINT"ASSASSINATED BECAUSE OF"
|
||||
202 PRINT"HIS DISLIKE OF THE"
|
||||
203 PRINT"POLITICAL SPOILS SYSTEM?"
|
||||
205 GOTO450
|
||||
210 PRINT"THIS PRESIDENT AQUIRED"
|
||||
211 PRINT"PEARL HARBOR BASE AND"
|
||||
212 PRINT"WAS A FORMER GOVERNOR "
|
||||
213 PRINT"OF THE ALASKA TERRITORY."
|
||||
215 GOTO450
|
||||
220 PRINT"WHICH PRESIDENT MARRIED"
|
||||
221 PRINT"WHILE IN THE WHITE"
|
||||
222 PRINT"HOUSE?"
|
||||
225 GOTO450
|
||||
230 PRINT"WHO WAS THE TWENTY-
|
||||
231 PRINT"THIRD PRESIDENT? HE HAD"
|
||||
232 PRINT"FEWER POPULAR VOTES "
|
||||
233 PRINT"THAN HIS OPPONENT."
|
||||
235 GOTO450
|
||||
240 PRINT"WHO WAS THE ONLY PRE-"
|
||||
241 PRINT"SIDENT TO BE ELECTED TO"
|
||||
242 PRINT"TWO NONCONSECUTIVE "
|
||||
244 PRINT"TERMS?"
|
||||
245 GOTO450
|
||||
250 PRINT"WHO WAS PRESIDENT"
|
||||
251 PRINT"DURING THE SPANISH-"
|
||||
252 PRINT"AMERICAN WAR?"
|
||||
255 GOTO450
|
||||
260 PRINT"WHICH PRESIDENT WON A"
|
||||
261 PRINT"NOBEL PEACE PRIZE FOR"
|
||||
262 PRINT"MEDIATING THE PEACE"
|
||||
263 PRINT"TREATY IN THE RUSSO-"
|
||||
264 PRINT"JAPANESE WAR?"
|
||||
265 GOTO450
|
||||
270 PRINT"WHO WAS PRESIDENT WHEN"
|
||||
271 PRINT"INCOME TAX WAS STARTED?"
|
||||
275 GOTO450
|
||||
280 PRINT"WHO WAS PRESIDENT DUR-"
|
||||
281 PRINT"ING THE FIRST WORLD "
|
||||
282 PRINT"WAR?"
|
||||
285 GOTO450
|
||||
290 PRINT"WHICH PRESIDENT WAS"
|
||||
291 PRINT"INVOLVED IN THE TEAPOT"
|
||||
292 PRINT"DOME SCANDAL?"
|
||||
295 GOTO450
|
||||
300 PRINT"WHICH PRESIDENT HAD THE MOTO 'KEEP COOL'?"
|
||||
305 GOTO450
|
||||
310 PRINT"WHO WAS PRESIDENT WHEN"
|
||||
311 PRINT"THE STOCK MARKET"
|
||||
312 PRINT"CRASHED IN THE 30'S?"
|
||||
315 GOTO450
|
||||
320 PRINT"WHO WAS THE ONLY PRE-"
|
||||
321 PRINT"SIDENT TO BE ELECTED"
|
||||
322 PRINT"MORE THAN TWICE?"
|
||||
325 GOTO450
|
||||
330 PRINT"WHO WAS THE PRESIDENT"
|
||||
331 PRINT"DURING THE KOREAN WAR?"
|
||||
335 GOTO450
|
||||
340 PRINT"WHICH PRESIDENT WAS A"
|
||||
341 PRINT"GENERAL IN WW II?"
|
||||
345 GOTO450
|
||||
350 PRINT"WHO WAS THE FIRST"
|
||||
351 PRINT"CATHOLIC PRESIDENT?"
|
||||
355 GOTO450
|
||||
360 PRINT"WHICH PRESIDENT HAD A"
|
||||
361 PRINT"'WAR ON POVERTY'?"
|
||||
365 GOTO450
|
||||
370 PRINT"WHO WAS PESIDENT WHEN"
|
||||
371 PRINT"MAN LANDED ON THE MOON?"
|
||||
375 GOTO450
|
||||
380 PRINT"WHICH PRESIDENT WAS"
|
||||
381 PRINT"ELECTED BY CONGRESS"
|
||||
382 PRINT"UNDER THE 25TH AMENDMENT?"
|
||||
385 GOTO450
|
||||
390 PRINT"WHICH PRESIDENT IS KNOWN FOR HIS SMILE?"
|
||||
395 GOTO450
|
||||
450 FORI=1TOR:READB$:NEXTI
|
||||
452 PRINT:PRINT:INPUT"ANS.";A$
|
||||
455 PRINT:PRINT:PRINTB$" IS"
|
||||
457 PRINT"THE CORRECT ANSWER."
|
||||
458 FORV=1TO3000:NEXT
|
||||
459 FORV=1TO20:PRINT:NEXT
|
||||
460 RESTORE:GOTO4
|
||||
1000 DATA"GEORGE WASHINGTON"
|
||||
2000 DATA"JOHN ADAMS"
|
||||
3000 DATA"THOMAS JEFFERSON"
|
||||
4000 DATA"JAMES MADISON"
|
||||
5000 DATA"JAMES MONROE"
|
||||
6000 DATA"JOHN QUINCY ADAMS"
|
||||
7000 DATA"ANDREW JACKSON"
|
||||
8000 DATA"MARTIN VAN BUREN"
|
||||
9000 DATA"WILLIAM H. HARRISON"
|
||||
10000 DATA"JOHN TYLER"
|
||||
11000 DATA"JAMES K. POLK"
|
||||
12000 DATA"ZACHARY TAYLOR"
|
||||
13000 DATA"MILLARD FILLMORE"
|
||||
14000 DATA"FRANKLIN PIERCE"
|
||||
15000 DATA"JAMES BUCHANAN"
|
||||
16000 DATA"ABRAHAM LINCOLN"
|
||||
17000 DATA"ANDREW JOHNSON"
|
||||
18000 DATA"ULYSSES S. GRANT"
|
||||
19000 DATA"RUTHERFORD B. HAYES"
|
||||
20000 DATA"JAMES A. GARFIELD"
|
||||
21000 DATA"CHESTER A. ARTHUR"
|
||||
22000 DATA"GROVER CLEVELAND"
|
||||
23000 DATA"BENJAMIN HARRISON"
|
||||
24000 DATA"GROVER CLEVELAND"
|
||||
25000 DATA"WILLIAM MC KINLEY"
|
||||
26000 DATA"THEODRORE ROOSEVELT"
|
||||
27000 DATA"WILLIAM TAFT"
|
||||
28000 DATA"WOODROW WILSON"
|
||||
29000 DATA"WARREN G. HARDING"
|
||||
30000 DATA"CALVIN COOLIDGE"
|
||||
31000 DATA"HERBERT C. HOOVER"
|
||||
32000 DATA"FRANKLIN D. ROOSEVELT"
|
||||
33000 DATA"HARRY S. TRUMAN"
|
||||
34000 DATA"DWIGHT D. EISENHOWER"
|
||||
35000 DATA"JOHN F. KENNEDY"
|
||||
36000 DATA"LYNDON B. JOHNSON"
|
||||
37000 DATA"RICHARD M. NIXON"
|
||||
38000 DATA"GERALD R. FORD"
|
||||
39000 DATA"JIMMY CARTER"
|
||||
40000 B=INT(R/10)+1
|
||||
40001 PRINT:PRINT:PRINT:PRINT
|
||||
40010 ON B GOTO40300,40390,40500,40600
|
||||
40300 ONRGOTO10,20,30,40,50,60,70,80,90,100
|
||||
40390 S=R-9
|
||||
40400 ONSGOTO100,110,120,130,140,150,160,170,180,190
|
||||
40500 S=R-19
|
||||
40550 ONSGOTO200,210,220,230,240,250,260,270,280,290
|
||||
40600 S=R-29
|
||||
40650 ONSGOTO300,310,320,330,340,350,360,370,380,390
|
||||
50000 PRINT:PRINT"DIRECTIONS":PRINT:PRINT
|
||||
50010 PRINT"TO START THE GAME TYPE"
|
||||
50011 PRINT"IN A RANDOM NUMBER AND"
|
||||
50012 PRINT"PUSH IN THE RETURN KEY."
|
||||
50014 PRINT"A QUESTION WILL THEN BE"
|
||||
50016 PRINT"TYPED BY THE COMPUTER."
|
||||
50018 PRINT"YOU SHOULD TYPE IN THE"
|
||||
50019 PRINT"ANSWER AND THEN PUSH"
|
||||
50020 PRINT"THE RETURN KEY."
|
||||
50040 PRINT:PRINT"IF YOU DO NOT KNOW THE"
|
||||
50050 PRINT"ANSWER TYPE IN A ? AND"
|
||||
50055 PRINT"THEN PUSH THE RETURN"
|
||||
50058 PRINT"KEY.":PRINT:PRINT
|
||||
50060 PRINT"WHEN YOU WANT TO STOP"
|
||||
50065 PRINT"JUST PUSH THE RETURN"
|
||||
50068 PRINT"KEY WITHOUT TYPING"
|
||||
50070 PRINT"ANYTHING.":PRINT:GOTO3
|
||||
60000 FOR I=1TOZ
|
||||
60005 IFZ=21 THEN60999
|
||||
60010 IF Q(I)=R THEN60100
|
||||
60020 NEXTI
|
||||
60050 Q(Z)=R
|
||||
60060 GOTO40000
|
||||
60100 Z=Z-1
|
||||
60110 GOTO4
|
||||
60999 PRINT:PRINT:PRINT
|
||||
61000 PRINT"YOU HAVE ANSWERED 20"
|
||||
61001 PRINT"QUESTIONS,IF YOU"
|
||||
61002 PRINT"WISH TO CONTINUE JUST"
|
||||
61003 PRINT"TYPE IN 'RUN' AFTER"
|
||||
61004 PRINT"THE OK THAT THE COM-"
|
||||
61005 PRINT"PUTER TYPES."
|
||||
78
apps/c1p/BASIC/Samples/SEAWOLFE.BAS
Normal file
78
apps/c1p/BASIC/Samples/SEAWOLFE.BAS
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
10 PRINT"SEAWOLFE
|
||||
20 PRINT"COPYRYGHT 1978 BY RODGER OLSEN
|
||||
30 INPUT"DO YOU WANT INSTRUCTIONS";A$:IFA$="YES"THEN700
|
||||
40 IFA$<>"NO"THEN30
|
||||
50 GP=53247:GI=3:LC=64:W=32:K1=5:K2=3:K3=65:K4=33:P=1
|
||||
60 VB=600:IFPEEK(57088)<129THENVB=540:GOTO90
|
||||
70 IFVB<>600THEN60
|
||||
80 P=254:LC=32
|
||||
90 G1=INT(GP+26*LC+.5*W):T=G1+1:T2=T:MP=GP+21*LC
|
||||
100 FORX=1TO5:READG(X),ID(X):D(X)=ID(X):NEXT
|
||||
110 S1=GP+15*LC:S3=GP+11*LC+W:S(1)=S1:S(2)=S1+1:S(3)=S3:S(4)=S3-1
|
||||
120 INPUT"REGULAR(1) OR MASTER'S (2) GAME";G:POKE530,1:POKE57088,P
|
||||
130 MN=MP:POKE56900,0:SD=GP+6*LC+8:S5=GP+7*LC+W+6:S(5)=S5:FM=-2
|
||||
140 FORX=1TO32:PRINT:NEXT:FORX=1TO32:POKEGP+3*LX+X,233
|
||||
150 POKEGP+29*LC+X,233
|
||||
160 IFVB=540THENPOKEGP+X*LC,233:POKEGP+32+X*LC,233
|
||||
170 POKEGP+X+13*LC,191:POKEGP+X+32*LC,233:NEXT
|
||||
180 POKEGP+14*LC+20,193:POKEGP+14*LC+21,193:POKEGP+13*LC+21,13
|
||||
190 P=PEEK(57088):IFVB=600THENP=255-P
|
||||
200 IFP=K1ANDGI<5THENGI=GI+1
|
||||
210 TURN=TURN+1:IFTURNS>300THEN660
|
||||
220 IFP=K2ANDGI>1THENGI=GI-1
|
||||
230 S$=STR$(300-TU)
|
||||
240 FORX=2TOLEN(S$):POKESD+10+X,ASC(MID$(S$,X,1))
|
||||
250 NEXT
|
||||
260 POKESD+10+X,32
|
||||
270 POKEG1,G(GI):POKEG1+2,G(GI)
|
||||
280 IFP=K3ANDT=G1+1THENPOKET,32:MF=2*LC-3+GI:T=T-MF:POKET,16:GOTO300
|
||||
290 IFP=K3ANDT2=G1+1THENPOKET2,32:M2=2*LC-3+GI:T2=T2-M2:POKET2,16
|
||||
300 IFP=K4THENPOKE530,0:POKE56900,1:GOTO120
|
||||
310 IFG=1THENFORX=1TO75:NEXT
|
||||
320 POKES(1),32:POKES(3),32:POKES(5),32:S(1)=S(1)+1:S(5)=S(5)+FM
|
||||
330 IFS(1)=S1+WTHENS(1)=S1:D(1)=ID(1):D(2)=ID(2)
|
||||
340 S(2)=S(1)+1:S(3)=S(3)-1
|
||||
350 IFS(3)=S3-WTHENS(3)=S3:D(3)=ID(3):D(4)=ID(4)
|
||||
360 MC=MC+1:IFMC=5THENMC=1:GOSUB510
|
||||
370 IFS(5)=S5ORS(5)=(S5-W-6)THENFM=-FM:D(5)=ID(5)
|
||||
380 S(4)=S(3)-1:FORX=1TO5:POKES(X),D(X):NEXT
|
||||
390 IFT=G1+1THENFORX=1TO50:NEXT:GOTO450
|
||||
400 P=PEEK(T-LC):IFP<10THENGOSUB550 :GOTO450
|
||||
410 IFG=1THENP=PEEK(T-LC-1):IFP<10THENGOSUB550
|
||||
420 IFP=127THENGOSUB550 :GOTO450
|
||||
430 IFT<GP+3*LCTHENPOKET,32:T=G1+1:POKET,16:GOTO450
|
||||
440 POKET,32:T=T-MF:POKET,29
|
||||
450 IFT2=G1+1THENFORX=1TO50:NEXT:GOTO190
|
||||
460 P=PEEK(T2-LC):IFP<10THENGOSUB560 :GOTO190
|
||||
470 IFG=1THENP=PEEK(T2-LC-1):IFP<10THENGOSUB560 :GOTO450
|
||||
480 IFP=127THENGOSUB560 :GOTO190
|
||||
490 IFT2<GP+3*LCTHENPOKET2,32:T2=G1+1:POKET2,16:GOTO190
|
||||
500 POKET2,32:T2=T2-M2:POKET2,29:GOTO190
|
||||
510 POKEMN,32:POKEMN+8,32:POKEMN+16,32:MN=MN+1
|
||||
520 IFMN=MP+W+8THENMN=MP
|
||||
530 POKEMN,127:IFSC>10THENPOKEMN+8,127:IFSC>30THENPOKEMN+16,127:RETURN
|
||||
540 RETURN
|
||||
550 POKET,32:Q=T-LC-3:T=G1+1:POKET,16:GOTO570
|
||||
560 POKET2,32:Q=T2-LC-3:T2=G1+1:POKET2,16
|
||||
570 D=42
|
||||
580 FORX=1TO5:POKEQ+X,D:NEXT:IFD=42THEND=32:GOTO580
|
||||
590 IFP=7ORP=8THEND(1)=32:D(2)=32
|
||||
600 IFP=5ORP=6THEND(3)=32:D(4)=32
|
||||
610 IFP=4THEND(5)=32:SC=SC+5
|
||||
620 IFP=127THENRETURN
|
||||
630 SC=SC+1:POKEG1+1,16:PS=SC:OS=0
|
||||
640 IFSC>9THENOS=INT(SC/10):PS=(SC-10*OS)
|
||||
650 POKESD,OS+48:POKESD+1,PS+48:POKESD+2,48:POKESD+3,48:RETURN
|
||||
660 PRINT"FINAL SCORE "SC*100:A$="DROWNER'":IFSC>9THENA$="AMATEURS"
|
||||
670 IFSC>15THENA$="MASTERS":IFSC>20THENA$="CAPTAIN'S"
|
||||
680 IFSC>25THENA$="COMMODORE'S":IFSC>30THENA$="ADMIRALS"
|
||||
690 PRINT"YOU EARNED YOUR "A$ "STRIPES":SC=0:TU=0:GOTO120
|
||||
700 PRINT:PRINT:PRINT:PRINT"THE LEFT SHIFT AIMS THE TUBE TO THE LEFT
|
||||
710 PRINT"THE RIGHT SHIFT AIMS THE TUBE RIGHT
|
||||
720 PRINT"THE CTRL KEY FIRES A TORPEDOE-YOU CAN FIRE
|
||||
730 PRINT"UP TOO 2 TORPEDOES AT A TIME
|
||||
740 PRINT"THE SMALL SHIP IS 500 POINTS":PRINT"ALL OTHER SHIPS ARE 100
|
||||
750 PRINT"HIT ESC TO END THE GAME EARLY
|
||||
760 INPUT"READY TO START";A$
|
||||
765 PRINT:PRINT:PRINT:GOTO50
|
||||
770 DATA189,7,201,8,140,6,200,5,190,4
|
||||
85
apps/c1p/BASIC/Samples/TANKFORTWO.BAS
Normal file
85
apps/c1p/BASIC/Samples/TANKFORTWO.BAS
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
10 PRINT:PRINT:PRINT"TANK FOR TWO":PRINT
|
||||
20 PRINT"COPYRIGHT R. OLSEN 1978
|
||||
30 T1=3:T2=7:POKE530,1::S(1)=54429:S(2)=54403
|
||||
40 FORX=1TO8:READTA(X):NEXT:P1=53916:P2=54019
|
||||
50 FORX=0TO9:READMF(X):NEXT
|
||||
60 FORX=0TO9:READBD(X):NEXT:L=64
|
||||
70 C1=53279:C2=55265:P0=128:PT=4:FORX=1TO5:READUP(X):NEXT
|
||||
80 FORX=1TO7:READAC(X):NEXT
|
||||
90 VB=600:IFPEEK(57088)<128THENVB=540:GOTO150
|
||||
100 FORX=0TO9:READMF(X):NEXT:L=32
|
||||
110 P0=127:PT=251:S(1)=53765:S(2)=53785:FORX=1TO5
|
||||
120 READUP(X):NEXT
|
||||
130 FORX=1TO7:READAC(X):NEXT:P1=53766:P2=53592
|
||||
140 C1=53284:C2=54204
|
||||
150 INPUT"DO YOU WANT DIRECTION";A$:IFA$="YES"THEN610
|
||||
160 FORX=C1TOC2:POKEX,32:IFRND(1)>.96THENPOKEX,161
|
||||
170 NEXT
|
||||
180 POKE56900,0:POKE530,1:B=161:KB=57088
|
||||
190 FORX=1TO5:FORY=1TO5:POKEUP(Y)+X,B:NEXTY:NEXTX
|
||||
200 FORX=1TO5:FORY=1TO7:POKEAC(Y)+L*X,B:NEXTY,X
|
||||
210 FORX=1TOL:POKEC1+X,B:POKEC2-X,B:NEXT
|
||||
220 FORX=1TO32:POKEC1+X*L,B:POKEC2-X*L,B:NEXT
|
||||
230 POKEKB,P0:PK=PEEK(KB):IFVB=600THENPK=255-PK
|
||||
240 IFPK=128THENT2=T2-1:IFT2=0THENT2=8
|
||||
250 M1=MF(T1):M3=MF(T2)
|
||||
260 IFPK=32THENT2=T2+1:IFT2=9THENT2=1
|
||||
270 IFPK=64ANDF2=0THENB2=P2:F2=1:M4=MF(T2)
|
||||
280 IFPK=160ANDPEEK(P2+MF(T2))=32THENPOKEP2,32:P2=P2+MF(T2)
|
||||
290 IFPK=192ANDF2=0THENB2=P2-MF(T2-1):F2=1
|
||||
300 IFPK=96ANDF2=0THENB2=P2-MF(T2+1):F2=1
|
||||
310 POKEP2,TA(T2)
|
||||
320 POKEKB,PT:PK=PEEK(KB):IFVB=600THENPK=255-PK
|
||||
330 IFPK=8THENT1=T1-1:IFT1=0THENT1=8
|
||||
340 IFPK=10ANDPEEK(P1+MF(T1))=32THENPOKEP1,32:P1=P1+MF(T1)
|
||||
350 IFPK=2THENT1=T1+1:IFT1=9THENT1=1
|
||||
360 IFPK=4ANDF1=0THENF1=1:B1=P1:SM=MF(T2)
|
||||
370 IFPK=6ANDF1=0THENB1=P1-MF(T1+1):F1=1
|
||||
380 IFPK=12ANDF1=0THENB1=P1-MF(T1-1):F1=1
|
||||
390 POKEP1,TA(T1)
|
||||
400 FORX=1TO3:IFF1=0THEN460
|
||||
410 IFB1<>P1THENPOKEB1,32
|
||||
420 P=PEEK(B1+M1):IFP=161THENF1=0:GOTO460
|
||||
430 B1=B1+M1:POKEB1,BD(T1)
|
||||
440 IFP=TA(T2)THENF1=0:B1=P1:S1=S1+1:GOTO460
|
||||
450 IFB1<C1ORB1>C2THENF1=0
|
||||
460 IFF2=0THEN520
|
||||
470 IFB2<>P2THENPOKEPB2,32
|
||||
480 P=PEEK(B2+M3):IFP=161THENF2=0:GOTO520
|
||||
490 B2=B2+M3:POKEB2,BD(T2)
|
||||
500 IFP=TA(T1)THENF2=0:B2=P2:S2=S2+1
|
||||
510 IFB2<C1ORB2>C2THENF2=0
|
||||
520 IFB2<>P2THENPOKEB2,32
|
||||
530 IFB1<>P1THENPOKEB1,32
|
||||
540 NEXTX
|
||||
550 DS=S2:IFS2>10THENDS=S2-10:POKES(2)-1,49
|
||||
560 POKES(2),DS+48:IFDS=10THENPOKES(2),48
|
||||
570 DS=S1:IFS1>10THENDS=S1-10:POKES(1)-1,49
|
||||
580 POKES(1),DS+48:IFDS=10THENPOKES(1),48
|
||||
590 IFS1>19ORS2>19THEN810
|
||||
600 GOTO230
|
||||
610 PRINT:PRINT:PRINT:PRINT"PLAYER 1 USES KEYS 1,2, AND 3
|
||||
620 PRINT"PLAYER 2 USES KEYS N,M, AND<
|
||||
630 PRINT"1,2,N, AND< ARE DIRECTION KEYS
|
||||
640 PRINT"PRESSING BOTH DIRECTION KEYS MOVES YOU FORWARD
|
||||
650 PRINT:PRINT"KEYS 2 AND M ARE FIRE CONTROL KEYS
|
||||
660 PRINT"PRESSING THEM ALONE FIRES STRAIGHT AHEAD
|
||||
670 PRINT"PRESSING THEM WITH A DIRECTION KEY SHOOTS
|
||||
680 PRINT"TO THE SIDE
|
||||
690 PRINT"THE MISSLE IS STEERABLE AFTER IT IS SHOT
|
||||
700 INPUT"INPUT A NUMBER TO START";X:GOTO160
|
||||
710 DATA248,249,250,251,252,253,254,255
|
||||
720 DATA -65,-64,-63,1,65,64,63,-1,-65,-64,-63
|
||||
730 DATA139,189,132,190,139,189,132,190,139
|
||||
740 DATA53633,53526,54618,54411,54793
|
||||
750 DATA53216,53233,53848,53702,54411,54939,54406
|
||||
760 DATA-33,-32,-31,1,33,32,31,-1,-33,-32
|
||||
770 DATA53845,53965,53956,53609,53845,53968,54006
|
||||
780 DATA53641,53359,53415,53782,54005
|
||||
790 FORX=0TO9:READBD(X):NEXT:L=64
|
||||
800 RETURN
|
||||
810 IFS1>19THENFORX=1TO32:PRINT"TANK 1 WINS!":NEXTX
|
||||
820 IFS2>19THENFORX=1TO32:PRINTTAB(15)"TANK 2 WINS!":NEXTX
|
||||
830 S1=0:S2=0
|
||||
840 RESTORE:GOTO30
|
||||
|
||||
Loading…
Reference in a new issue