├── BUGS.txt
├── CHANGES
├── ee2
├── ee2.config.seq
├── ee2.data.seq
├── ee2.goal.seq
├── ee2.msg.seq
├── ee2.news.seq
├── ee2.Intro.seq
├── ee2.power.seq
├── ee2.helpmenu.seq
├── ee2.message.seq
├── ee2.strategic.seq
├── ee2.updates.seq
├── ee2.production.seq
├── ee2.designations.seq
├── prg.ee2.bas
├── ee2.sectors1.dat.seq
├── prg.ee2.init.bas
└── prg.ee2.create.bas
├── extras
├── emp.config.seq
├── emp.req.seq
├── emp.msg.seq
├── bnk.menu.seq
├── cas.help 1.seq
├── cas.help 2.seq
├── cas.help 3.seq
├── cas.help 4.seq
├── cas.help 5.seq
├── cas.help 6.seq
├── cas.opener.seq
├── cas.player.seq
├── dat.intro.seq
├── dat.menu.seq
├── dat.verify.seq
├── emp.emps.seq
├── emp.manif.seq
├── emp.menu1.seq
├── emp.menu2.seq
├── emp.menu3.seq
├── emp.news.seq
├── emp.reqs.seq
├── emp.title.seq
├── gal.rules.seq
├── mdr.help 1.seq
├── mdr.help 2.seq
├── mdr.help 3.seq
├── mdr.help 4.seq
├── mdr.help 5.seq
├── mdr.map 1.seq
├── mdr.map 2.seq
├── mdr.map 3.seq
├── mdr.map 4.seq
├── mdr.menu.seq
├── mdr.title.seq
├── wall.menu.seq
├── wall.title.seq
├── bnk.apphelp.seq
├── bnk.loanapp.seq
├── bnk.welcome.seq
├── gam.128dldic.bin
├── mdr.boot.bas
├── gam.128dleboot.bas
├── emp.boot.bas
├── prg.dating boot.bas
├── dat.create.bas
├── bnk.create.bas
├── gal.boot.bas
├── gal.setup.bas
├── run.me.bas
├── wall.create.bas
├── gam.hangman.bas
├── gal.maint.bas
├── gam.tic tac toe.bas
├── wall.maint.bas
├── gam.bagels.bas
├── bnk.maint.bas
├── emp.create.bas
├── gam.128dle.bas
├── mdr.maker.bas
├── gam.128dlml.asm
├── gam.wheel.bas
├── prg.bbs list.bas
├── gam.startrek.bas
├── prg.star trek.bas
└── gam.zcasino.bas
├── TODO
├── sys.text.seq
├── zelch ad.seq
├── conf.elite.seq
├── conf.simple.seq
├── conf.zelch.seq
├── wm
├── wm.data.seq
├── wm.end 1.seq
├── wm.end 2.seq
├── wm.help.seq
├── wm.intro.seq
├── wm.kills.seq
├── wm.maze.1.seq
├── wm.ml 1.seq
├── wm.ml 10.seq
├── wm.ml 2.seq
├── wm.ml 3.seq
├── wm.ml 4.seq
├── wm.ml 5.seq
├── wm.ml 6.seq
├── wm.ml 7.seq
├── wm.ml 8.seq
├── wm.ml 9.seq
├── wm.information.seq
├── prg.wm.boot.bas
└── wm.players.r00
├── sys.variables.seq
├── NOTICE
├── crsr 0e00.asm
├── raminstall.bas
├── ansi 3a00.asm
├── ansi maker.bas
├── ascii 3b00.asm
├── README
├── l-xfer 1300.asm
├── cursor-0e00.spt
├── bbs.setup.bas
├── docs
└── bbs contents.txt
├── bbs.copy.bas
├── prg.new user.bas
├── bbs.ascii edit.bas
├── prg.monster.bas
├── prg.voting booth.bas
└── v3.0 3d00.asm
/BUGS.txt:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/CHANGES:
--------------------------------------------------------------------------------
1 | #
2 |
--------------------------------------------------------------------------------
/ee2/ee2.config.seq:
--------------------------------------------------------------------------------
1 | 8
0
--------------------------------------------------------------------------------
/extras/emp.config.seq:
--------------------------------------------------------------------------------
1 | 4
20
9
--------------------------------------------------------------------------------
/ee2/ee2.data.seq:
--------------------------------------------------------------------------------
1 | 62
--------------------------------------------------------------------------------
/TODO:
--------------------------------------------------------------------------------
1 | 1. Support ** in download op-code for limited open-directory support
2 |
--------------------------------------------------------------------------------
/extras/emp.req.seq:
--------------------------------------------------------------------------------
1 | 100000
3000
100
500
500
500
10
100
100
20
--------------------------------------------------------------------------------
/sys.text.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/sys.text.seq
--------------------------------------------------------------------------------
/zelch ad.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/zelch ad.seq
--------------------------------------------------------------------------------
/conf.elite.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/conf.elite.seq
--------------------------------------------------------------------------------
/conf.simple.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/conf.simple.seq
--------------------------------------------------------------------------------
/conf.zelch.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/conf.zelch.seq
--------------------------------------------------------------------------------
/ee2/ee2.goal.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/ee2/ee2.goal.seq
--------------------------------------------------------------------------------
/ee2/ee2.msg.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/ee2/ee2.msg.seq
--------------------------------------------------------------------------------
/ee2/ee2.news.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/ee2/ee2.news.seq
--------------------------------------------------------------------------------
/wm/wm.data.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/wm/wm.data.seq
--------------------------------------------------------------------------------
/wm/wm.end 1.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/wm/wm.end 1.seq
--------------------------------------------------------------------------------
/wm/wm.end 2.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/wm/wm.end 2.seq
--------------------------------------------------------------------------------
/wm/wm.help.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/wm/wm.help.seq
--------------------------------------------------------------------------------
/wm/wm.intro.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/wm/wm.intro.seq
--------------------------------------------------------------------------------
/wm/wm.kills.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/wm/wm.kills.seq
--------------------------------------------------------------------------------
/wm/wm.maze.1.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/wm/wm.maze.1.seq
--------------------------------------------------------------------------------
/wm/wm.ml 1.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/wm/wm.ml 1.seq
--------------------------------------------------------------------------------
/wm/wm.ml 10.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/wm/wm.ml 10.seq
--------------------------------------------------------------------------------
/wm/wm.ml 2.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/wm/wm.ml 2.seq
--------------------------------------------------------------------------------
/wm/wm.ml 3.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/wm/wm.ml 3.seq
--------------------------------------------------------------------------------
/wm/wm.ml 4.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/wm/wm.ml 4.seq
--------------------------------------------------------------------------------
/wm/wm.ml 5.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/wm/wm.ml 5.seq
--------------------------------------------------------------------------------
/wm/wm.ml 6.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/wm/wm.ml 6.seq
--------------------------------------------------------------------------------
/wm/wm.ml 7.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/wm/wm.ml 7.seq
--------------------------------------------------------------------------------
/wm/wm.ml 8.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/wm/wm.ml 8.seq
--------------------------------------------------------------------------------
/wm/wm.ml 9.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/wm/wm.ml 9.seq
--------------------------------------------------------------------------------
/ee2/ee2.Intro.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/ee2/ee2.Intro.seq
--------------------------------------------------------------------------------
/ee2/ee2.power.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/ee2/ee2.power.seq
--------------------------------------------------------------------------------
/extras/emp.msg.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/emp.msg.seq
--------------------------------------------------------------------------------
/sys.variables.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/sys.variables.seq
--------------------------------------------------------------------------------
/ee2/ee2.helpmenu.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/ee2/ee2.helpmenu.seq
--------------------------------------------------------------------------------
/ee2/ee2.message.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/ee2/ee2.message.seq
--------------------------------------------------------------------------------
/ee2/ee2.strategic.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/ee2/ee2.strategic.seq
--------------------------------------------------------------------------------
/ee2/ee2.updates.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/ee2/ee2.updates.seq
--------------------------------------------------------------------------------
/extras/bnk.menu.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/bnk.menu.seq
--------------------------------------------------------------------------------
/extras/cas.help 1.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/cas.help 1.seq
--------------------------------------------------------------------------------
/extras/cas.help 2.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/cas.help 2.seq
--------------------------------------------------------------------------------
/extras/cas.help 3.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/cas.help 3.seq
--------------------------------------------------------------------------------
/extras/cas.help 4.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/cas.help 4.seq
--------------------------------------------------------------------------------
/extras/cas.help 5.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/cas.help 5.seq
--------------------------------------------------------------------------------
/extras/cas.help 6.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/cas.help 6.seq
--------------------------------------------------------------------------------
/extras/cas.opener.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/cas.opener.seq
--------------------------------------------------------------------------------
/extras/cas.player.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/cas.player.seq
--------------------------------------------------------------------------------
/extras/dat.intro.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/dat.intro.seq
--------------------------------------------------------------------------------
/extras/dat.menu.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/dat.menu.seq
--------------------------------------------------------------------------------
/extras/dat.verify.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/dat.verify.seq
--------------------------------------------------------------------------------
/extras/emp.emps.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/emp.emps.seq
--------------------------------------------------------------------------------
/extras/emp.manif.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/emp.manif.seq
--------------------------------------------------------------------------------
/extras/emp.menu1.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/emp.menu1.seq
--------------------------------------------------------------------------------
/extras/emp.menu2.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/emp.menu2.seq
--------------------------------------------------------------------------------
/extras/emp.menu3.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/emp.menu3.seq
--------------------------------------------------------------------------------
/extras/emp.news.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/emp.news.seq
--------------------------------------------------------------------------------
/extras/emp.reqs.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/emp.reqs.seq
--------------------------------------------------------------------------------
/extras/emp.title.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/emp.title.seq
--------------------------------------------------------------------------------
/extras/gal.rules.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/gal.rules.seq
--------------------------------------------------------------------------------
/extras/mdr.help 1.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/mdr.help 1.seq
--------------------------------------------------------------------------------
/extras/mdr.help 2.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/mdr.help 2.seq
--------------------------------------------------------------------------------
/extras/mdr.help 3.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/mdr.help 3.seq
--------------------------------------------------------------------------------
/extras/mdr.help 4.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/mdr.help 4.seq
--------------------------------------------------------------------------------
/extras/mdr.help 5.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/mdr.help 5.seq
--------------------------------------------------------------------------------
/extras/mdr.map 1.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/mdr.map 1.seq
--------------------------------------------------------------------------------
/extras/mdr.map 2.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/mdr.map 2.seq
--------------------------------------------------------------------------------
/extras/mdr.map 3.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/mdr.map 3.seq
--------------------------------------------------------------------------------
/extras/mdr.map 4.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/mdr.map 4.seq
--------------------------------------------------------------------------------
/extras/mdr.menu.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/mdr.menu.seq
--------------------------------------------------------------------------------
/extras/mdr.title.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/mdr.title.seq
--------------------------------------------------------------------------------
/extras/wall.menu.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/wall.menu.seq
--------------------------------------------------------------------------------
/extras/wall.title.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/wall.title.seq
--------------------------------------------------------------------------------
/wm/wm.information.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/wm/wm.information.seq
--------------------------------------------------------------------------------
/ee2/ee2.production.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/ee2/ee2.production.seq
--------------------------------------------------------------------------------
/extras/bnk.apphelp.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/bnk.apphelp.seq
--------------------------------------------------------------------------------
/extras/bnk.loanapp.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/bnk.loanapp.seq
--------------------------------------------------------------------------------
/extras/bnk.welcome.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/bnk.welcome.seq
--------------------------------------------------------------------------------
/extras/gam.128dldic.bin:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/extras/gam.128dldic.bin
--------------------------------------------------------------------------------
/ee2/ee2.designations.seq:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bozimmerman/Zelch128/HEAD/ee2/ee2.designations.seq
--------------------------------------------------------------------------------
/NOTICE:
--------------------------------------------------------------------------------
1 | Zelch 128
2 | Copyright 1991-2021 William Fink, Bo Zimmerman
3 |
4 | This product includes software developed by
5 | William Fink and Bo Zimmerman
6 | http://www.zimmers.net
7 |
8 | Warriors & Monsters (C)1991 Matthew Beall
9 | Empire Edition II (C)1991 Jay MacNish
10 |
--------------------------------------------------------------------------------
/crsr 0e00.asm:
--------------------------------------------------------------------------------
1 | * =$0E00
2 | BYTE $00,$00,$AA,$00,$00,$55,$00,$00,$AA,$00,$00,$55,$00,$00
3 | BYTE $AA,$00,$00,$55,$00,$00,$AA,$00,$00,$55,$00,$00,$00,$00,$00,$00
4 | BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
5 | BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
6 | BYTE $00,$FF,$00
--------------------------------------------------------------------------------
/extras/mdr.boot.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Wednesday, August 18, 2021 12:27:00 AM
3 | !- Import of :
4 | !- c:\tmp\newproject\mdr.boot.prg
5 | !- Commodore 128 BASIC 7/7.1
6 | !--------------------------------------------------
7 | 30000 SYS15625
8 | 30010 OPEN2,8,2,MID$(STR$(D),2)+":mdr.losers":RECORD#2,31:PRINT#2,STR$(ID)+R$+U$(1)+R$+STR$(VAL(LEFT$(O$(2),6))):CLOSE2
9 | 30020 F$="mdr.motel":GOTO8940
10 |
--------------------------------------------------------------------------------
/extras/gam.128dleboot.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Wednesday, Feb 18, 2023 12:27:59 AM
3 | !- c:\tmp\newproject\128dleboot.prg
4 | !- Commodore 128 BASIC 7/7.1
5 | !--------------------------------------------------
6 | 30000 SYS15625
7 | 30020 GOSUB400:OPEN2,8,2,"scoredle,l,"+chr$(50)
8 | 30030 RECORD#2,502:PRINT#2,"0":RECORD#2,502
9 | 30040 RECORD#2,501:PRINT#2,ID;CHR$(13);LEFT$(O$(3),8):RECORD#2,501
10 | 30050 CLOSE2
11 | 30060 F$="gam.128dle":POKE2930,0:POKE2931,0:GOTO8940
12 |
--------------------------------------------------------------------------------
/extras/emp.boot.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Saturday, May 20, 2017 1:33:53 AM
3 | !- Import of :
4 | !- c:\src\zelch128\extras\emp.boot.prg
5 | !- Commodore 128 BASIC 7/7.1
6 | !--------------------------------------------------
7 | 30000 SYS15625
8 | 30010 OPEN1,U,15,"s0:sys.temp":CLOSE1
9 | 30020 GOSUB400:OPEN2,U,2,MID$(STR$(D),2)+":sys.temp,s,w":PRINT#2,LEFT$(O$(3),8):PRINT#2,ID:PRINT#2,U$(1):PRINT#2,U$(5):CLOSE2
10 | 30030 F$="emp.title":GOSUB25
11 | 30040 F$="emp.main":POKE2930,0:POKE2931,0:GOTO8940
12 | 55555 SCRATCH"emp.boot",U(PEEK(186)):DSAVE"emp.boot",U(PEEK(186))
13 |
--------------------------------------------------------------------------------
/extras/prg.dating boot.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Saturday, May 20, 2017 1:38:13 AM
3 | !- Import of :
4 | !- c:\src\zelch128\extras\prg.dating boot.prg
5 | !- Unknown Machine
6 | !--------------------------------------------------
7 | 30000 SYS15625:REM ========== DATING MODULE LOADER ================= 06/09/91 =
8 | 30010 OPEN1,U,15,"s0:sys.temp":CLOSE1:A$="0":IFU$(5)="Z"THENA$="1"
9 | 30020 OPEN2,U,2,MID$(STR$(D),2)+":sys.datingmeta,s,w":PRINT#2,U$(1)+R$+STR$(ID)+R$+A$+R$+STR$(D(4,0))+R$+STR$(D(4,1))+R$+STR$(M(14)):CLOSE2
10 | 30030 F$="prg.dating":POKE2930,0:POKE2931,0:GOTO8940
11 |
--------------------------------------------------------------------------------
/ee2/prg.ee2.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Thursday, September 16, 2021 2:57:33 PM
3 | !- Import of :
4 | !- z:\_cbmsoft\_bo_unz\d-zelch\zee2wm\prg.ee2.prg
5 | !- Unknown Machine
6 | !--------------------------------------------------
7 | 30000 SYS15625:REM ========== WARR MON MODULE LOADER ============= 06/09/91 =
8 | 30010 U=8:D=0:OPEN1,U,15,"s0:ee2.data":CLOSE1
9 | 30011 F$="ee2.splash":GOSUB26
10 | 30015 A$=STR$(PEEK(2863)):B$=STR$(PEEK(2879)):C$=STR$(PEEK(2880)):A$=RIGHT$(A$,2):B$=RIGHT$(B$,2):C$=RIGHT$(C$,2):O$=A$+B$+C$
11 | 30016 FORX=1TO6:IFMID$(O$,X,1)=" "THENMID$(O$,X,1)="0"
12 | 30017 NEXT
13 | 30020 OPEN2,U,2,MID$(STR$(D),2)+":ee2.data,s,w":PRINT#2,STR$(ID)+CHR$(13)+O$+CHR$(13):CLOSE2
14 | 30030 U=8:D=0:F$="prg.ee2.init":POKE2930,0:POKE2931,0:GOTO8940
15 |
--------------------------------------------------------------------------------
/ee2/ee2.sectors1.dat.seq:
--------------------------------------------------------------------------------
1 | 0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000130000000000000000066600000000
0000000000000000000000000000361636000000
0000000000000000000000000000266636000000
0000000000130000000000000000000000000000
0000000000000000000000004535253500000000
0000000000000000000000002525253500000000
0000000000000000000000006545656500000000
0000000000000000000000004565900000000000
0000000013000000000000003525000000000000
0000000000000000000000000000006262426200
0000000000000000000000000000005290905200
0000000000000000620000000000002262225200
0000000000000062132200000000002222429000
0031313141510000620000000000000000000000
0051516161210000000000000000000000000000
0031415121510000000000000000000000000000
0061612151610000000000000000001400000000
0041611131210000000000000000000000000000
--------------------------------------------------------------------------------
/wm/prg.wm.boot.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Thursday, September 16, 2021 3:00:15 PM
3 | !- Import of :
4 | !- c:\dev\zelch128\ee2\ggg.warr&mons.prg
5 | !- Unknown Machine
6 | !--------------------------------------------------
7 | 30000 SYS15625:REM ========== WARR MON MODULE LOADER ============= 06/09/91 =
8 | 30010 U=8:D=0:OPEN1,U,15,"s0:wm.data":CLOSE1
9 | 30011 F$="wm.intro":GOSUB26
10 | 30015 A$=STR$(PEEK(2863)):B$=STR$(PEEK(2879)):C$=STR$(PEEK(2880)):A$=RIGHT$(A$,2):B$=RIGHT$(B$,2):C$=RIGHT$(C$,2):O$=A$+B$+C$
11 | 30016 FORX=1TO6:IFMID$(O$,X,1)=" "THENMID$(O$,X,1)="0"
12 | 30017 NEXT
13 | 30020 OPEN2,U,2,MID$(STR$(D),2)+":wm.data,s,w":PRINT#2,STR$(ID)+CHR$(13)+U$(1)+CHR$(13)+O$+CHR$(13)+STR$(PEEK(2829)):CLOSE2
14 | 30030 U=8:D=0:F$="prg.wm.p1":POKE2930,0:POKE2931,0:GOTO8940
15 |
--------------------------------------------------------------------------------
/extras/dat.create.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Saturday, May 20, 2017 1:33:44 AM
3 | !- Import of :
4 | !- c:\src\zelch128\extras\dat.create.prg
5 | !- Unknown Machine
6 | !--------------------------------------------------
7 | 5 :::::::::::::::::::::::::::::::::::::INPUT"unit,drive:";U,D
8 | 10 OPEN2,U,2,MID$(STR$(D),2)+":dat.users,l,"+CHR$(127)
9 | 20 INPUT"create how many files (max=500)";A:IFA>500 OR A<0THEN20
10 | 30 INPUT"resume' option available (1=yes, 0=no)";B
11 | 35 INPUT"drive, lu for resume's (enter as 8,0)";D,LU
12 | 40 RECORD#2,A+1:PRINT#2,"0"
13 | 50 RECORD#2,1:PRINT#2,STR$(A)+CHR$(13)+STR$(B)+CHR$(13)+STR$(D)+CHR$(13)+STR$(LU)
14 | 55 REM ID, HANDLE, INFO/RESUME, NAME, PHONE, ANSWERS
15 | 60 A$="0"+CHR$(13)+"^"+CHR$(13)+"00"+CHR$(13)+"^"+CHR$(13)+"^"+CHR$(13)
16 | 70 A$=A$+"0000000000000000000"+CHR$(13)
17 | 80 FORI=2TOA:RECORD#2,I:PRINT#2,A$;:NEXTI:CLOSE2:END
18 |
19 |
--------------------------------------------------------------------------------
/extras/bnk.create.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Tuesday, August 17, 2021 11:55:30 PM
3 | !- Import of :
4 | !- c:\tmp\z128\bnk.create.prg
5 | !- Commodore 128 BASIC 7/7.1
6 | !--------------------------------------------------
7 | 10 PRINT"{clear}{down*3}{ct n}Zelch Bank v1.0 Create"
8 | 20 INPUT"{down*4}Device, Drive to create files on{space*3}8,0{left*5}";U,D
9 | 30 INPUT"# users configured for on system{space*3}500{left*5}";UU
10 | 40 PRINT"{down*5}Hit RETURN{sh space}to begin, Q to quit>";
11 | 50 GETKEYA$:IFA$="q"ORA$="Q"THENPRINTA$;:END:ELSEIFA$<>CHR$(13)THEN50
12 | 60 PRINTA$;:PRINT"{down*2}Working..."
13 | 70 OPEN2,U,2,MID$(STR$(D),2)+":bnk.accounts,l,"+CHR$(127):RECORD#2,UU+1:PRINT#2,"Burp!":R$=CHR$(13):A$="0"+R$
14 | 80 FORI=1TOUU:RECORD#2,I:PRINT#2,A$+A$+A$+A$+A$+A$+A$+A$+A$+A$+A$+A$+A$+A$+A$:NEXTI:CLOSE2
15 | 90 OPEN2,U,2,MID$(STR$(D),2)+":bnk.records,l,"+CHR$(127):RECORD#2,INT(UU/4):PRINT#2,"Burp!":
16 | 100 FORI=1TOINT(UU/4):RECORD#2,I:PRINT#2,"{pound}"+R$+A$+A$+A$+A$+A$+A$+A$+A$+A$+A$+A$+A$+A$+A$+A$:NEXTI:CLOSE2
17 | 110 PRINT"{down*2}done.":END
18 |
--------------------------------------------------------------------------------
/raminstall.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Saturday, August 13, 2016 1:49:25 PM
3 | !- Import of :
4 | !- c:\tmp\newproject\raminstall.prg
5 | !- Commodore 128 BASIC 7/7.1
6 | !--------------------------------------------------
7 | 10 GRAPHICCLR:A=RGR(0):GRAPHIC1,1:GRAPHIC(A)
8 | 20 PRINT"{clear}{ct n}RamInstall for Zelch 128 v2.0a":U=PEEK(186):D=0
9 | 30 OPEN1,U,15:OPEN2,U,2,"0:ramdos128.bin*,p,r"
10 | 40 INPUT#1,A:CLOSE2:CLOSE1
11 | 50 IFATHENPRINT"{down}RamDos is not on drive "MID$(STR$(U),2)","MID$(STR$(D),2):ELSEGOTO90
12 | 60 PRINT"{down}Insert the disk containing 'ramdos128'."
13 | 70 OPEN1,0:PRINT"Which drive is it on? "MID$(STR$(U),2)",0{left*4}";:INPUT#1,U,D:PRINT:CLOSE1
14 | 80 GOTO30
15 | 90 BLOAD"ramdos128.bin*",U(U),D(D)
16 | 100 PRINT"{down}Insert your boot disk."
17 | 110 OPEN1,0:PRINT"Which drive is it on? "MID$(STR$(U),2)",0{left*4}";:INPUT#1,U,D:PRINT:CLOSE1
18 | 120 OPEN1,0:PRINT"{down}Device number for RamDrive (8-30)? 9{left}";:INPUT#1,I:PRINT:CLOSE1
19 | 130 POKE16128,I:BSAVE"ramdos128",U(U),D(D),P(8960) TO P(16129)
20 | 140 PRINT"{clear}RamDos installation complete."
21 |
--------------------------------------------------------------------------------
/extras/gal.boot.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Wednesday, August 18, 2021 12:27:59 AM
3 | !- Import of :
4 | !- c:\tmp\newproject\gal.boot.prg
5 | !- Commodore 128 BASIC 7/7.1
6 | !--------------------------------------------------
7 | 30000 SYS15625
8 | 30020 GOSUB400:OPEN2,8,2,"gal.galaxy":RECORD#2,36:PRINT#2,STR$(ID)+CHR$(13)+LEFT$(O$(3),8):CLOSE2
9 | 30030 GOSUB30050
10 | 30040 F$="gal.empire":POKE2930,0:POKE2931,0:GOTO8940
11 | 30050 O$="{clear}{down*2}{white}":GOSUB4
12 | 30060 O$="{space*2}.{space*7}.{space*5}.{space*7}.":GOSUB4
13 | 30070 O$="{space*3}..{space*2}.{space*3}.{space*6}.{space*2}.{space*3}":GOSUB4
14 | 30080 O$=" .{space*4}. {light blue}galactic {white}{space*4}. ":GOSUB4
15 | 30090 O$="{space*3}.{space*2}. {light blue} EMPIRE{white}{space*2}.{space*2}.{space*2}":GOSUB4
16 | 30100 O$=" .{space*3}.{space*3}.{space*5}.{space*4}.{space*3}.":GOSUB4
17 | 30110 O$="{space*2}{light green}v2.0 by Bo Zimmerman{white}.{space*2}":GOSUB4
18 | 30120 O$="{white} . {green}(c)1991 Elite Software{white} .":GOSUB4
19 | 30121 O$="{white}{space*3}..{space*2}.{space*3}.{space*6}.{space*4}.{space*3}":GOSUB4
20 | 30122 O$="{space*2}.{space*7}.{space*5}.{space*7}.":GOSUB4
21 | 30130 RETURN
22 | 55555 SCRATCH"gal.boot",U(PEEK(186)):DSAVE"gal.boot",U(PEEK(186))
23 |
--------------------------------------------------------------------------------
/ansi 3a00.asm:
--------------------------------------------------------------------------------
1 | *= $3A00
2 | BYTE $91,$91,$31,$41,$00,$11,$11,$31,$42,$00,$1D,$1D,$31,$43
3 | BYTE $00,$9D,$9D,$31,$44,$00,$93,$93,$32,$4A,$00,$1C,$1C,$30,$3B,$33
4 | BYTE $31,$6D,$00,$96,$96,$31,$3B,$33,$31,$6D,$00,$1E,$1E,$30,$3B,$33
5 | BYTE $32,$6D,$00,$99,$99,$31,$3B,$33,$32,$6D,$00,$95,$95,$30,$3B,$33
6 | BYTE $33,$6D,$00,$9E,$9E,$31,$3B,$33,$33,$6D,$00,$1F,$1F,$30,$3B,$33
7 | BYTE $34,$6D,$00,$9A,$9A,$31,$3B,$33,$34,$6D,$00,$81,$9C,$30,$3B,$33
8 | BYTE $35,$6D,$00,$9C,$9C,$31,$3B,$33,$35,$6D,$00,$97,$97,$30,$3B,$33
9 | BYTE $36,$6D,$00,$98,$97,$30,$3B,$33,$36,$6D,$00,$9F,$9F,$31,$3B,$33
10 | BYTE $36,$6D,$00,$9B,$9B,$30,$3B,$33,$37,$6D,$00,$05,$05,$31,$3B,$33
11 | BYTE $37,$6D,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
12 | BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
13 | BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
14 | BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
15 | BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
16 | BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
17 | BYTE $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00
18 | BYTE $00
--------------------------------------------------------------------------------
/ansi maker.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Saturday, August 13, 2016 1:35:47 PM
3 | !- Import of :
4 | !- c:\tmp\newproject\ansi maker.prg
5 | !- Commodore 128 BASIC 7/7.1
6 | !--------------------------------------------------
7 | 10 FAST
8 | 20 PRINT"{clear}ansi maker"
9 | 25 INPUT"{down}load ascii tables (y/n) y{left*3}";L$
10 | 26 IFL$="y"ORL$="Y"THENINPUT" drive 8,0{left*5}";U,D
11 | 27 IFL$="y"ORL$="Y"THENBLOAD"ascii 3b00",U(U),D(D)
12 | 28 PRINT"{down*2}working..."
13 | 29 FORI=DEC("3a00")TODEC("3aff"):POKEI,0:NEXTI:HI=DEC("3a00")
14 | 30 READA$,A$:IFA$="*"THEN40
15 | 31 FORX=1TOLEN(A$):IFX<3THEN33
16 | 32 POKEHI+X-1,PEEK(DEC("3c00")+ASC(MID$(A$,X,1))):GOTO35
17 | 33 POKEHI+X-1,ASC(MID$(A$,X,1))
18 | 35 NEXTX:HI=HI+X:POKEHI,0:GOTO30
19 | 37 POKEHI+1,0
20 | 40 INPUT"{down*2}save (y/n) y{left*3}";A$:IFA$="n"ORA$="N"THENEND
21 | 50 INPUT" drive 8,0{left*5}";U,D
22 | 60 SCRATCH"ansi 3a00",U(U),D(D):BSAVE"ansi 3a00",U(U),D(D),P(14838)TOP(15103)
23 | 90 STOP
24 | 100 DATA CRSRUP ,"{up*2}1A"
25 | 110 DATA CRSRDOWN ,"{down*2}1B"
26 | 120 DATA CRSRRIGHT,"{right*2}1C"
27 | 130 DATA CRSRLEFT ,"{left*2}1D"
28 | 140 DATA CLEARSCN ,"{clear*2}2J"
29 | 150 DATA RED ,"{red*2}8;31m"
30 | 160 DATA LTRED ,"{pink*2}1;31m"
31 | 170 DATA GREEN ,"{green*2}8;32m"
32 | 180 DATA LTGREEN ,"{light green*2}1;32m"
33 | 190 DATA BROWN ,"{brown*2}8;33m"
34 | 200 DATA YELLOW ,"{yellow*2}1;33m"
35 | 210 DATA BLUE ,"{blue*2}8;34m"
36 | 220 DATA LTBLUE ,"{light blue*2}1;34m"
37 | 230 DATA VIOLET ,"{orange}{purple}8;35m"
38 | 240 DATA PURPLE ,"{purple*2}1;35m"
39 | 250 DATA DKCYAN ,"{dark gray*2}8;36m"
40 | 260 DATA GREY ,"{gray}{dark gray}8;36m"
41 | 270 DATA CYAN ,"{cyan*2}1;36m"
42 | 280 DATA DKGREY ,"{light gray*2}8;37m"
43 | 290 DATA WHITE ,"{white*2}1;37m"
44 | 999 DATA DONE,"*"
45 |
--------------------------------------------------------------------------------
/extras/gal.setup.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Saturday, May 20, 2017 1:34:36 AM
3 | !- Import of :
4 | !- c:\src\zelch128\extras\gal.setup.prg
5 | !- Commodore 128 BASIC 7/7.1
6 | !--------------------------------------------------
7 | 1 U=PEEK(186):R$=CHR$(13):I=RND(-TI):GOTO100
8 | 2 PRINT#1,"p"CHR$(98)CHR$(I)CHR$(0)CHR$(0):RETURN
9 | 55 U=PEEK(186):OPEN1,U,15,"s0:gal.setup":CLOSE1:SAVE"gal.setup",U:STOP
10 | 100 OPEN1,U,15,"s0:gal.galaxy":OPEN2,U,2,"gal.galaxy,l,"+CHR$(50)
11 | 110 I=36:GOSUB2:PRINT#2,"shit"
12 | 120 FORI=1TO10:GOSUB2
13 | 130 PRINT#2," 0"+R$+"0000000000"+R$+"^"+R$+" 0"
14 | 140 NEXTI
15 | 150 DIMP(25,4)
16 | 160 FORI=1TO25:P(I,0)=-1:PRINTI,
17 | 170 P(I,1)=INT(RND(TI)*35)+1
18 | 180 P(I,2)=INT(RND(TI)*20)+1
19 | 190 IFI=1THEN230
20 | 200 A=0:FORX=1TOI-1
21 | 210 IFABS(P(I,1)-P(X,1))<2ANDABS(P(I,2)-P(X,2))<2THENA=1
22 | 220 NEXTX:IFATHEN170
23 | 230 P(I,3)=INT(RND(TI)*30)+10
24 | 240 P(I,4)=(INT(RND(TI)*20)+1)*P(I,3)
25 | 250 NEXTI:PRINT:PRINT
26 | 260 FORI=11TO35:A$="":GOSUB2:PRINTI,
27 | 270 FORX=0TO4:A$=A$+STR$(P(I-10,X))+R$:NEXTX
28 | 280 READB$:PRINT#2,B$+R$+LEFT$(A$,LEN(A$)-1)
29 | 290 NEXTI:PRINT:PRINT
30 | 300 I=36:GOSUB2:PRINT#2," 1"+R$+"03/01/91":CLOSE2:CLOSE1:DIMG(35,20)
31 | 310 FORI=1TO25:G(P(I,1),P(I,2))=1:NEXTI
32 | 320 FORY=1TO20:PRINT:FORX=1TO35
33 | 330 PRINT".";:IFG(X,Y)THENPRINT"{left}o";
34 | 340 NEXTX:NEXTY
35 | 350 OPEN1,U,15,"s0:gal.missions":OPEN2,U,2,"gal.missions,l,"+CHR$(30)
36 | 360 A$="":FORI=1TO6:A$=A$+"0"+CHR$(13):NEXTI
37 | 370 I=101:GOSUB2:PRINT#2,"burp":FORI=1TO100:GOSUB2:PRINT#2,A$:NEXTI
38 | 380 CLOSE2:CLOSE1:END
39 | 1000 DATA "Zelch","Delta IV","Tyraki","Ermini II","Terra","Alphatron"
40 | 1010 DATA "Aurorus","Solora","Pheta IX","Nemesis","Phaze","Proton","GammaWorld"
41 | 1020 DATA "Freestar","Cyrus","Blade","Bluering","Tertious","Vulga","Betazon"
42 | 1030 DATA "Wavern","Plutoia","Quation","Havnon","Karga-Tuk"
43 |
--------------------------------------------------------------------------------
/ee2/prg.ee2.init.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Thursday, September 16, 2021 2:57:09 PM
3 | !- Import of :
4 | !- z:\_cbmsoft\_bo_unz\d-zelch\zee2wm\prg.ee2.init.prg
5 | !- Commodore 128 BASIC 7/7.1
6 | !--------------------------------------------------
7 | 10 REM ****** EMPIRE INITIALIZATION MODULE *******************************
8 | 20 CLR:FAST:DIM M$(25),P$(11,10),P(11,26)
9 | 30 DIM AR%(21,21,11),PR$(401),A$(31),MT$(13)
10 | 40 DIM XC(401),YC(401),S(401)
11 | 50 FORX=1TO12:READMT$(X):NEXTX
12 | 60 U=8:DV=0:REM ---===> DEFAULT DRIVE AND UNIT INFO! CHANGE AS REQUIRED!!!
13 | 70 PRINTCHR$(14):PRINT"{white}{clear}";:POKE53281,0:POKE53280,0
14 | 80 XM$(1)="0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 2"
15 | 90 XM$(2)="0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0"
16 | 100 C$(1)=" ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz,./<>?!#$%&'()0+-{pound}1234567890:;[]"+CHR$(34)
17 | 110 Q$=CHR$(34)
18 | 120 C$(2)=" ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
19 | 130 C$(3)="1234567890"
20 | 140 C$(4)=C$(2)+C$(3)
21 | 150 C$(5)=C$(3)+","
22 | 160 SP$="{space*46}"
23 | 170 MK$(0)="None":MK$(1)="Missles":MK$(2)="Convent.":MK$(3)="Nuclear":MK$(4)="Chemical":MK$(5)="Guns":MK$(6)="Food":MK$(7)="Ore":MK$(8)="Energy"
24 | 180 MK$(9)="Airplanes"
25 | 190 DOPEN#1,"ee2.data",D(DV),U(U),R:IF DS<>0 THEN DCLOSE#1:PRINT "ERROR: Date/User data missing!":END
26 | 200 INPUT#1,PA$(1),PA$(2),PA$(3):IF DS<>0 THEN DCLOSE#1:PRINT "ERROR: Date/User data corrupt!":END:ELSE DCLOSE#1
27 | 210 DT$=PA$(3)
28 | 220 A=VAL(LEFT$(DT$,2)):B=VAL(MID$(DT$,3,2)):C=VAL(RIGHT$(DT$,2)):LD$=MT$(B)+STR$(A)+", 19"+MID$(STR$(C),2)
29 | 230 PRINT "{cyan}Empire Edition II -- Initialization Module{white}:"
30 | 240 EP$="prg.ee2.main":SR$="prg.ee2.str":MN$="prg.ee2.maint"
31 | 250 PRINT "{blue}-->{light blue}Please wait, now loading Empire Edition II."
32 | 260 DLOAD(EP$),D(DV),U(U)
33 | 270 DATA "January","Febuary","March","April","May","June","July","August","September","October","November","December"
34 |
--------------------------------------------------------------------------------
/extras/run.me.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Saturday, May 20, 2017 1:33:19 AM
3 | !- Import of :
4 | !- c:\src\zelch128\extras\run.me.prg
5 | !- Unknown Machine
6 | !--------------------------------------------------
7 | 10 REM TYPE "run" AND PRESS RETURN
8 | 20 PRINT"{clear}{cyan} The configurations on your disk include the"
9 | 30 PRINT"sequential files necessary to set up certain systems."
10 | 40 PRINT"Keep in mind the following points:"
11 | 50 PRINT
12 | 60 PRINT" {white}o{cyan} After unpacking your choice configuration, you should
13 | 70 PRINT"make sure you have configured the necessary relative files."
14 | 80 PRINT
15 | 90 PRINT" {white}o{cyan} Remember that you must set up the message base and"
16 | 100 PRINT"u/d base records used by the configurations for everything"
17 | 110 PRINT"to work correctly."
18 | 120 PRINT
19 | 130 PRINT" {white}o{cyan} On the main menu of all three configurations is an"
20 | 140 PRINT"'information' type command. READ THIS FILE FIRST"
21 | 150 PRINT"after logging onto the configuration."
22 | 160 PRINT
23 | 170 PRINT" {white}o{cyan} The 'simplicity' configuration was included to serve as"
24 | 180 PRINT"a good working setup for small-medium systems. It features"
25 | 190 PRINT"a one menu setup and an open transfer system."
26 | 200 PRINT"{down*3}Hit return:";:DO:GETA$:LOOPUNTILA$=CHR$(13)
27 | 210 PRINT"{clear}{down*3} {white}o{cyan} The 'prg' files included with the configurations are"
28 | 220 PRINT"necessary for certain functions on that setup to work. Most"
29 | 230 PRINT"'prg' files will go on the definable drive, with the exception"
30 | 240 PRINT"of 'prg.dating boot', 'prg.dating', and 'prg.bbs list' from the"
31 | 250 PRINT"Elite configuration. These three files will be looked for on"
32 | 260 PRINT"the system program files drive."
33 | 270 PRINT
34 | 280 PRINT" {white}o{cyan} Also, most of the 'prg' files included can be used"
35 | 290 PRINT"on other configurations with a little menu work."
36 | 300 PRINT
37 | 310 PRINT" Welp, have fun, and remember- if you have any questions or"
38 | 320 PRINT"problems, give us a call!"
39 | 330 PRINT
40 | 340 PRINT" - Elite Software
41 |
--------------------------------------------------------------------------------
/ascii 3b00.asm:
--------------------------------------------------------------------------------
1 | * =$3B00
2 | BYTE $00,$00,$00,$00,$00,$00,$00,$07,$14,$00,$00,$00,$00,$0D
3 | BYTE $00,$00,$14,$00,$00,$13,$00,$00,$00,$00,$18,$00,$00,$1B,$00,$00
4 | BYTE $00,$00,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2A,$2B,$2C,$2D
5 | BYTE $2E,$2F,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3A,$3B,$3C,$3D
6 | BYTE $3E,$3F,$40,$C1,$C2,$C3,$C4,$C5,$C6,$C7,$C8,$C9,$CA,$CB,$CC,$CD
7 | BYTE $CE,$CF,$D0,$D1,$D2,$D3,$D4,$D5,$D6,$D7,$D8,$D9,$DA,$5B,$5C,$5D
8 | BYTE $5E,$A4,$27,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D
9 | BYTE $4E,$4F,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$5B,$3A,$5D
10 | BYTE $7E,$00,$00,$20,$20,$20,$20,$20,$20,$20,$14,$20,$20,$20,$20,$0D
11 | BYTE $20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20,$20
12 | BYTE $20,$20,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2A,$2B,$2C,$2D
13 | BYTE $2E,$2F,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3A,$3B,$3C,$3D
14 | BYTE $3E,$3F,$40,$C1,$C2,$C3,$C4,$C5,$C6,$C7,$C8,$C9,$CA,$CB,$CC,$CD
15 | BYTE $CE,$CF,$D0,$D1,$D2,$D3,$D4,$D5,$D6,$D7,$D8,$D9,$DA,$DB,$DC,$DD
16 | BYTE $DE,$DF,$60,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D
17 | BYTE $4E,$4F,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$7B,$7C,$7D
18 | BYTE $7E,$7F,$00,$00,$00,$00,$00,$00,$00,$07,$00,$00,$0A,$00,$00,$0D
19 | BYTE $00,$00,$00,$0D,$00,$00,$08,$00,$00,$00,$18,$00,$00,$1B,$00,$20
20 | BYTE $00,$00,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$2A,$2B,$2C,$2D
21 | BYTE $2E,$2F,$30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$3A,$3B,$3C,$3D
22 | BYTE $3E,$3F,$40,$61,$62,$63,$64,$65,$66,$67,$68,$69,$6A,$6B,$6C,$6D
23 | BYTE $6E,$6F,$70,$71,$72,$73,$74,$75,$76,$77,$78,$79,$7A,$5B,$5C,$5D
24 | BYTE $5E,$3C,$2D,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D
25 | BYTE $4E,$4F,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$23,$21,$21
26 | BYTE $21,$21,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$0D
27 | BYTE $00,$00,$00,$0D,$00,$00,$14,$00,$00,$00,$00,$00,$00,$00,$00,$08
28 | BYTE $00,$00,$20,$21,$2D,$2D,$2D,$21,$23,$21,$6D,$23,$21,$21,$2E,$2B
29 | BYTE $2B,$2D,$2B,$2B,$2B,$21,$21,$21,$21,$2D,$2D,$2D,$3E,$2E,$2E,$2B
30 | BYTE $2E,$2F,$2D,$41,$42,$43,$44,$45,$46,$47,$48,$49,$4A,$4B,$4C,$4D
31 | BYTE $4E,$4F,$50,$51,$52,$53,$54,$55,$56,$57,$58,$59,$5A,$23,$21,$21
32 | BYTE $21,$21,$20,$21,$2D,$2D,$2D,$21,$23,$21,$2D,$2F,$21,$21,$2E,$2E
33 | BYTE $2E,$2D,$2E,$2D,$2D,$21,$21,$21,$21,$2D,$2D,$2D,$3E,$2E,$2E,$2E
34 | BYTE $2E,$00,$4C
--------------------------------------------------------------------------------
/extras/wall.create.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Wednesday, August 18, 2021 12:26:14 AM
3 | !- Import of :
4 | !- c:\tmp\newproject\wall.create.prg
5 | !- Unknown Machine
6 | !--------------------------------------------------
7 | 10 PRINT"{clear}{down*2}{ct n}Wall Street z128 vII":DIMOT(26)
8 | 20 PRINT"{down}By{space*2}Bo Zimmerman"
9 | 30 PRINT"For Elite Software"
10 | 40 PRINT"{down}System data creation program{down*2}":R$=CHR$(13):A$="":FORI=1TO(28*2):A$=A$+" 0"+R$:NEXTI
11 | 100 INPUT"Create files on what drive{space*2}8,0{left*5}";U,D
12 | 105 INPUT"Convert 1.0 to version II{space*3}n{left*3}";CY$::IFCY$="y"THEN130
13 | 110 INPUT"Reset Wall Street prices{space*4}y{left*3}";CP$
14 | 120 INPUT"Clear out occupied seats{space*4}y{left*3}";CS$
15 | 130 INPUT"Create how many seats{space*7}50{left*4}";HS
16 | 140 INPUT"Price per seat{space*14}200{left*5}";PS
17 | 150 INPUT"Stock price multiplier{space*6}1{left*3}";SM
18 | 160 INPUT"Stock issue/sig: MAX MSGS X 100{left*5}";SI
19 | 170 INPUT"Use trade restrictions{space*6}y{left*3}";TR$
20 | 999 INPUT"{down*2}Begin file access (y/n){space*2}y{left*3}";YN$:IFYN$<>"y"THEN10
21 | 1000 IFCY$="y"THEN10000:ELSEPRINT"{down}Writing seats file..."
22 | 1010 OPEN2,U,2,MID$(STR$(D),2)+":wall.seats,l,"+CHR$(253)
23 | 1020 IFCS$="y"THENRECORD#2,HS+2:PRINT#2,"burp!"
24 | 1030 RECORD#2,1:PRINT#2,STR$(HS)+R$+STR$(PS)+R$+STR$(SM)+R$+STR$(SI)+R$+TR$+R$+"System access-- no WS report"+R$+" 0"
25 | 1040 IFCS$="y"THENFORI=2TOHS+1:RECORD#2,I:PRINT#2,A$:NEXTI:ELSEPRINT"{down}Leaving seat records untouched."
26 | 1050 CLOSE2
27 | 2000 IFCP$<>"y"THEN3000:ELSEPRINT"{down}Creating price file..."
28 | 2010 OPEN2,U,2,MID$(STR$(D),2)+":wall.records,l,"+CHR$(253)
29 | 2020 RECORD#2,30:PRINT#2,"burp!"
30 | 2030 FORI=1TO30:RECORD#2,I:PRINT#2,A$:NEXTI
31 | 2040 CLOSE2
32 | 3000 END
33 | 10000 PRINT"{down*6}Working..."
34 | 10010 OPEN2,U,2,MID$(STR$(D),2)+":wall.seats"
35 | 10020 RECORD#2,1:PRINT#2,STR$(HS)+R$+STR$(PS)+R$+STR$(SM)+R$+STR$(SI)+R$+TR$+R$+"System access-- no WS report"+R$+" 0"
36 | 10030 FORX=2TOHS+1:RECORD#2,X:A$="":INPUT#2,A$
37 | 10040 A$=A$+R$:FORY=1TO26:INPUT#2,I$:OT(Y)=OT(Y)+VAL(I$):A$=A$+I$+R$:NEXTY
38 | 10050 FORY=1TO26:A$=A$+"0"+R$:NEXTY:RECORD#2,X:RECORD#2,X:PRINT#2,A$
39 | 10060 NEXTX:CLOSE2
40 | 11000 OPEN2,U,2,MID$(STR$(D),2)+":wall.records"
41 | 11010 RECORD#2,30:A$="":FORI=1TO10:A$=A$+"0"+R$:NEXTI
42 | 11020 RECORD#2,30:PRINT#2,A$
43 | 11030 FORX=1TO26:RECORD#2,X:A$="":FORI=1TO3:INPUT#2,I$:A$=A$+I$+R$:NEXTI
44 | 11040 A$=A$+STR$(OT(X))+R$:RECORD#2,X:RECORD#2,X:PRINT#2,A$
45 | 11050 NEXTX:CLOSE2:END
46 | 11060 OPEN2,9,2,"4:wall.seats":RECORD#2,1:FORI=1TO5:INPUT#2,A:PRINTA:NEXTI:CLOSE2
47 |
--------------------------------------------------------------------------------
/extras/gam.hangman.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Saturday, May 20, 2017 1:35:23 AM
3 | !- Import of :
4 | !- c:\src\zelch128\extras\gam.hangman.prg
5 | !- Commodore 128 BASIC 7/7.1
6 | !--------------------------------------------------
7 | 10 PRINT:PRINT"{reverse on}{pink}H{yellow}a{white}n{cyan}g{light blue}m{blue}a{purple}n{reverse off} {red}v1.0"
8 | 20 B$(1)="O":B$(2)="#":B$(3)="[":B$(4)="]":B$(5)="<":B$(6)=">"
9 | 30 PRINT:PRINT"Finding a puzzle...";:SLEEP1:PRINT:M=0
10 | 40 READX:V=INT(RND(0)*X)+1:FORX=1TOV:READP$:NEXT
11 | 50 D$="":G$="":FORX=1TOLEN(P$):D$=D$+"?":NEXT
12 | 60 C=0:PRINT:PRINT"{yellow}";D$:PRINT"{cyan}Letters used: {white}";G$
13 | 70 PRINT:PRINT"{pink}Next guess: ";:GETKEYA$:PRINTA$
14 | 80 FORX=1TO26:IFA$=MID$("abcdefghijklmnopqrstuvwxyz",X,1)THEN120
15 | 90 NEXTX:FORX=1TO26:IFA$=MID$("ABCDEFGHIJKLMNOPQRSTUVWXYZ",X,1)THEN130
16 | 100 NEXTX:IFA$="*"THENPRINT:PRINT"{yellow}Thanks for playing hangman!":END
17 | 110 PRINT:PRINT"{light green}Invalid letter, press * to quit.":GOTO60
18 | 120 A$=MID$("ABCDEFGHIJKLMNOPQRSTUVWXYZ",X,1)
19 | 130 FORX=1TOLEN(G$):IFMID$(G$,X,1)=A$THENPRINT:PRINT"{white}You've already picked ";A$;"!":GOTO170
20 | 140 NEXTX:G$=G$+A$:FORX=1TOLEN(P$):IFMID$(P$,X,1)=A$THENMID$(D$,X,1)=A$:IFC<1THENPRINT:PRINT"{light gray}There is a(n) ";A$;"!":C=1
21 | 150 NEXTX:FORX=1TOLEN(D$):IFMID$(D$,X,1)="?"THEN170
22 | 160 NEXTX:PRINT:PRINT"{yellow}You guessed it!":PRINT:PRINT"The puzzle was ";P$;"!":END
23 | 170 IFC=1THEN60:ELSEM=M+1:PRINT:PRINT"{down}{purple} ,----+"
24 | 173 IFM>0THENPRINT" {yellow}"B$(1);
25 | 174 GOSUB190:IFM>4THENPRINT"{yellow}"B$(5);:ELSEPRINT" ";
26 | 175 IFM>1THENPRINT"{yellow}"B$(2);:ELSEPRINT" ";
27 | 176 IFM>5THENPRINT"{yellow}"B$(6);:ELSEPRINT" ";
28 | 177 GOSUB190:IFM>2THENPRINT"{yellow}"B$(3)" ";:ELSEPRINT" ";
29 | 178 IFM>3THENPRINT"{yellow}"B$(4);:ELSEPRINT" ";
30 | 179 GOSUB190:GOSUB190:PRINT"{purple} -----+--{down}":PRINT:IFM<6THEN60
31 | 180 PRINT:PRINT"{yellow}You're hung! Better luck next time.":END
32 | 190 PRINTTAB(6);"{purple}!":RETURN
33 | 500 DATA 51 : REM NUMBER OF PUZZLES
34 | 510 DATA "COMPUTER","LIGHTNING","BARNYARD","BICYCLE","DICTIONARY","CIRCUS"
35 | 520 DATA "HAMBURGER","MACHINE","AIRPLANE","SCIENTIST","AMATEUR"
36 | 630 DATA "CONGRESS","RIFLE","ARTIST","BEDROOM","HOTEL","REFRIGERATOR"
37 | 640 DATA "UNIVERSITY","IMAGINATION","FRUSTRATION","MIRROR"
38 | 650 DATA "ELEVATOR","JAVELINA","VANILLA","CHALLENGER","CENTIPEDE"
39 | 660 DATA "ELECTRICITY","COUGH","ALBUM","CASSETTE","INTELLIGENCE"
40 | 670 DATA "LANTERN","PUMPKIN","STRAWBERRY","BOUQUET","FLORAL","BALANCE"
41 | 680 DATA "WATERMELON","COUNTDOWN","BEGINNING","JOYSTICK","SHELVES"
42 | 690 DATA "OCCUPATION","CALENDAR","ASTRONAUT","ATMOSPHERE","MONSTER"
43 | 700 DATA "GRAVEYARD","EMPEROR","PAJAMAS","EVERGREEN": REM 51 PUZZ
44 |
--------------------------------------------------------------------------------
/extras/gal.maint.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Wednesday, August 18, 2021 12:28:41 AM
3 | !- Import of :
4 | !- c:\tmp\newproject\gal.maint.prg
5 | !- Commodore 128 BASIC 7/7.1
6 | !--------------------------------------------------
7 | 10 U1=8:ND=15:R$=CHR$(13):GOTO170
8 | 20 PRINT#1,"p"CHR$(98)CHR$(I)CHR$(0)CHR$(0):RETURN
9 | 30 OPEN1,U1,15:OPEN2,U1,2,"0:gal.galaxy":A$=""
10 | 40 EM$(RD,1)=DT$:FORI=1TO10:A$="":GOSUB20:FORX=0TO4:A$=A$+EM$(I,X)+R$:NEXTX
11 | 50 PRINT#2,A$;:NEXTI:FORI=11TO35:A$=PL$(I-10)+R$:GOSUB20:FORX=0TO4
12 | 60 A$=A$+STR$(PL(I-10,X))+R$
13 | 70 NEXTX:PRINT#2,A$;:NEXTI:CLOSE2:OPEN2,U1,2,"0:gal.missions":I=1:X=1
14 | 80 IFMS(X,0)=0THEN100
15 | 90 GOSUB20:A$="":FORY=0TO5:A$=A$+STR$(MS(X,Y))+R$:NEXTY:PRINT#2,A$;:I=I+1
16 | 100 X=X+1:IFX<101THEN80
17 | 110 GOSUB20:PRINT#2,"0"
18 | 120 CLOSE2:CLOSE1:PRINTR$:END
19 | 130 FORB=0TO5:MS(A,B)=0:NEXTB:RETURN
20 | 140 REM********************************
21 | 150 REM**********READ IN DATA FOR MAINT
22 | 160 REM********************************
23 | 170 DIMGX(35,20),PL$(25),PL(25,4),EM$(10,4),RD,TL(20,4),G2(35,20),MS(201,5)
24 | 180 TT=1
25 | 190 OPEN1,U1,15:OPEN2,U1,2,"0:gal.galaxy"
26 | 200 FORI=1TO10:GOSUB20:FORX=0TO4:INPUT#2,EM$(I,X):NEXTX:NEXTI
27 | 210 FORI=11TO35:GOSUB20:X=I-10
28 | 220 INPUT#2,PL$(X):FORY=0TO4:INPUT#2,PL(X,Y):NEXTY
29 | 230 NEXTI:I=36:GOSUB20:INPUT#2,ID,DT$:V1=0
30 | 240 CLOSE2:CLOSE1:OPEN1,U1,15:OPEN2,U1,2,"0:gal.missions":I=1
31 | 250 GOSUB20:INPUT#2,A:IFA=0ORI>199THENCLOSE2:CLOSE1:GOTO270
32 | 260 MS(I,0)=A:FORY=1TO5:INPUT#2,MS(I,Y):NEXTY:I=I+1:GOTO250
33 | 270 FORI=1TO25:GX(PL(I,1),PL(I,2))=PL(I,0):G2(PL(I,1),PL(I,2))=I
34 | 280 NEXTI:RD=0:FORI=1TO10:IFID=VAL(EM$(I,0))THENRD=I
35 | 290 NEXTI:GOTO330
36 | 300 REM******************************
37 | 310 REM********PERFORM MAINTENANCE
38 | 320 REM******************************
39 | 330 PRINT"{light green}Galactic weed..."
40 | 340 W2=VAL(MID$(DT$,4,2)):W3=VAL(MID$(DT$,1,2)):W4=VAL(MID$(DT$,7,2))
41 | 350 FORI=1TOND
42 | 360 W2=W2-1:IFW2<1THENW3=W3-1:W2=30:IFW3<1THENW3=12:W2=31:W4=W4-1
43 | 370 IFW4<0THENW4=99
44 | 380 NEXTI:W1$=RIGHT$(STR$(W4),2)+RIGHT$(STR$(W3),2)+RIGHT$(STR$(W2),2)
45 | 390 FORI=1TOLEN(W1$)
46 | 400 IFMID$(W1$,I,1)=" "THENW1$=LEFT$(W1$,I-1)+"0"+MID$(W1$,I+1,LEN(W1$))
47 | 410 NEXTI
48 | 420 E=0:FORI=1TO10:W0$=EM$(I,1):W2$=MID$(W0$,7,2)+MID$(W0$,1,2)+MID$(W0$,4,2)
49 | 430 IFVAL(EM$(I,0))=0THEN460
50 | 440 IFW2$>W1$THEN500
51 | 450 E=E+1:EM$(I,0)=" 0":EM$(I,1)="91/01/01":EM$(I,2)="^":EM$(I,3)=" -26"
52 | 460 EM$(I,4)="0":FORX=1TO25:IFPL(X,0)=ITHENPL(X,0)=-1:GX(PL(X,1),PL(X,2))=-1
53 | 470 NEXTX:OPEN1,U1,15,"s0:gal.spy."+STR$(I):CLOSE1
54 | 480 FORA=1TO200:IFMS(A,0)THENIFMS(A,4)=IORMS(A,5)=ITHENGOSUB130
55 | 490 NEXTA
56 | 500 NEXTI:RD=0:IFETHEN30
57 | 510 END
58 | 55555 U=PEEK(186):OPEN1,U,15,"s0:gal.maint":CLOSE1:SAVE"gal.maint",U
59 |
--------------------------------------------------------------------------------
/ee2/prg.ee2.create.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Thursday, September 16, 2021 2:56:50 PM
3 | !- Import of :
4 | !- z:\_cbmsoft\_bo_unz\d-zelch\zee2wm\prg.ee2.create.prg
5 | !- Unknown Machine
6 | !--------------------------------------------------
7 | 1 REM *** MAP MAKER / SECTOR MAKER ***
8 | 2 SCRATCH "ee2.config",U8:SCRATCH"ee2.data",U8
9 | 8 INPUT "Unit (Uxx) to create files on:";U:INPUT "Device (Dxx) to create files on:";DV
10 | 9 PRINT "{light gray} Empire Edition II -- File Generator"
11 | 10 DIM A$(32):DIM AR%(21,21,2):DIMPR$(41)
12 | 11 PRINT "{cyan}-->{white}Creating Empire Sector file 1:"
13 | 20 FORX=1 TO 20:READ A$(X):NEXTX
14 | 40 FOR X=1 TO 20:FORY=1TO20
15 | 45 IF MID$(A$(X),Y,1)="s" THEN AR%(X,Y,0)=1
16 | 50 NEXTY:NEXTX
17 | 60 GOSUB 6050
18 | 65 PRINT "Done with map.{space*2}Now making sectors"
19 | 67 PRINT "{cyan}-->{blue}Creating Empire Sector file 2:":SCRATCH"sectors2.dat",D(DV),U(U)
20 | 70 GOSUB 6100
21 | 80 PRINT "Done with making sectors."
22 | 89 PRINT "{cyan}-->{light blue}Creating Empire Player file:":SCRATCH"empires.dat",D(DV),U(U)
23 | 90 DCLEAR:DOPEN#1,"ee2.empires.dat",L150,D(DV),U(U):RECORD#1,11:PRINT#1,CHR$(255):RECORD#1,11:DCLOSE#1:DCLEAR:PRINT"Done making player file."
24 | 95 PRINT "{green}--{light green}>Now creating empire news files(1-9), and empire world news files..."
25 | 97 FOR X=1 TO 9:X$=STR$(X):Y$=RIGHT$(X$,(LEN(X$)-1)):FI$="ee2."+Y$+".news"
26 | 98 DOPEN#1,("@"+FI$),D(DV),U(U),W:PRINT#1,CHR$(34):DCLOSE#1:NEXTX:DOPEN#1,"@ee2.news",D(DV),U(U),W:PRINT#1,CHR$(34):DCLOSE#1
27 | 99 PRINT "{red}-->{white}Now creating e.config file."
28 | 100 DOPEN#1,"@ee2.config",D(DV),U(U),W:PRINT#1,STR$(U):PRINT#1,STR$(DV):DCLOSE#1
29 | 899 PRINT:PRINT"DONE WITH FILE CREATION.":END
30 | 901 DATA"...................."
31 | 902 DATA"...................."
32 | 903 DATA".....s.............."
33 | 904 DATA"...............s...."
34 | 905 DATA"...................."
35 | 906 DATA".....s.............."
36 | 907 DATA"...................."
37 | 908 DATA"...................."
38 | 909 DATA"...................."
39 | 910 DATA"..............s....."
40 | 911 DATA"....s..............."
41 | 912 DATA"...................."
42 | 913 DATA"................s..."
43 | 914 DATA"...................."
44 | 915 DATA"........s..........."
45 | 916 DATA"...................."
46 | 917 DATA"...................."
47 | 918 DATA"...................."
48 | 919 DATA"...............s...."
49 | 920 DATA"...s................"
50 | 921 DATA"...................."
51 | 6050 DOPEN#1,"@ee2.sectors1.dat",D(DV),U(U),W
52 | 6051 FORX=1TO20:PR$(X)="":FORY=1TO20
53 | 6053 A$=STR$(AR%(X,Y,0)):B$=STR$(AR%(X,Y,1))
54 | 6054 A$=RIGHT$(A$,1):B$=RIGHT$(B$,1)
55 | 6055 PR$(X)=PR$(X)+A$+B$:NEXTY:NEXTX
56 | 6057 PRINT"Writing map...":FORX=1TO20:PRINT#1,PR$(X):NEXTX:DCLOSE#1
57 | 6060 RETURN
58 | 6099 REM **CREATE SECTOR FILE**
59 | 6100 DOPEN#1,"ee2.sectors2.dat",L26,D(DV),U(U):PRINT"Creating sector data file..."
60 | 6105 RECORD#1,401:PRINT#1,CHR$(255);:RECORD#1,401
61 | 6110 DCLOSE#1:R=0:RETURN
62 | 7000 DATA".............................."
63 | 9010 DOPEN#1,"ee2.sectors1.dat",D(DV),U(U),R:Z=1
64 | 9015 INPUT#1,A$:PRINTA$:PRINTZ:Z=Z+1:GOTO9015
65 |
--------------------------------------------------------------------------------
/extras/gam.tic tac toe.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Saturday, May 20, 2017 1:36:12 AM
3 | !- Import of :
4 | !- c:\src\zelch128\extras\gam.tic tac toe.prg
5 | !- Commodore 128 BASIC 7/7.1
6 | !--------------------------------------------------
7 | 1 PRINT:GOTO61000
8 | 2200 GETKEYAN$:IFINSTR("abcdefghijklmnopqrstuvwxyz",AN$)THENAN$=CHR$(ASC(AN$)OR128)
9 | 2210 PRINT"{white}"AN$:RETURN
10 | 61000 AN$="":CL$="{red}{pink}{yellow}{blue}{light blue}{cyan}{green}{light green}{white}":SY$="":PRINT:PRINT"{down*3}{light blue}TIC-TAC-TOE {white}V{light blue}2{white}.{light blue}0":FORX=0TO10:SO(X)=0:NEXT
11 | 61001 PRINT"{down}{white}{down}"
12 | 61002 GOSUB61024
13 | 61010 PRINT"{down*2}{light blue}Where do you move? {white}";:GOSUB2200
14 | 61012 I%=VAL(AN$):IFI%>9THENGOTO61010
15 | 61014 IFI%<1THENGOTO61010
16 | 61016 IFSO(I%)=0THENGOTO61020
17 | 61018 PRINT"{down}{yellow}That square is taken...":GOTO61010
18 | 61020 L%=1:SO(I%)=1
19 | 61022 GOSUB61024:GOTO61072
20 | 61024 PRINT:FORX=1TO9:PRINT" ";:IFSO(X)<>-1THEN61028
21 | 61026 PRINT"{white}O ";:GOTO61034
22 | 61028 IFSO(X)THEN61032
23 | 61030 PRINTMID$(CL$,X,1);" ";MID$(STR$(X),2);:GOTO61034
24 | 61032 PRINT"{blue}X ";
25 | 61034 IFX<>3ANDX<>6THEN61038
26 | 61036 PRINT:PRINT"{green}{sh asterisk*3}{light green}{sh +}{green}{sh asterisk*3}{light green}{sh +}{green}{sh asterisk*3}":GOTO61042
27 | 61038 IFX=9THEN61042
28 | 61040 PRINT"{light green}{sh -}";
29 | 61042 NEXTX:PRINT:IFAN$=""THENRETURN:PRINT"{down*2}":ELSEFORT=1TO7STEP3
30 | 61044 IFSO(T)<>SO(T+1)THEN61052
31 | 61046 IFSO(T)<>SO(T+2)THEN61052
32 | 61048 IFSO(T)=-1THEN61118
33 | 61050 IFSO(T)=1THEN61116
34 | 61052 NEXTT:FORT=1TO3:IFSO(T)<>SO(T+3)THEN61060
35 | 61054 IFSO(T)<>SO(T+6)THEN61060
36 | 61056 IFSO(T)=-1THEN61118
37 | 61058 IFSO(T)=1THEN61116
38 | 61060 NEXTT:FORT=1TO9:IFSO(T)=0THEN61064
39 | 61062 NEXTT:GOTO61120
40 | 61064 IFSO(5)<>L%THEN61070
41 | 61066 IFSO(1)=L%ANDSO(9)=L%THEN61114
42 | 61068 IFSO(3)=L%ANDSO(7)=L%THEN61114
43 | 61070 RETURN
44 | 61072 I%=0:L%=-1:N%=-1:IFSO(5)=0THENI%=5:SO(I%)=-1:GOTO61108
45 | 61074 I%=I%+1
46 | 61076 IFSO(I%)=N%ANDSO(I%+3)=N%ANDSO(I%+6)=0THENSO(I%+6)=-1:GOTO61110
47 | 61078 IFSO(I%)=N%ANDSO(I%+6)=N%ANDSO(I%+3)=0THENSO(I%+3)=-1:GOTO61110
48 | 61080 IFSO(I%+3)=N%ANDSO(I%+6)=N%ANDSO(I%)=0THENSO(I%)=-1:GOTO61110
49 | 61082 IFI%<3THENGOTO61074
50 | 61084 I%=1
51 | 61086 IFSO(I%)=N%ANDSO(I%+1)=N%ANDSO(I%+2)=0THENSO(I%+2)=-1:GOTO61110
52 | 61088 IFSO(I%)=0ANDSO(I%+1)=N%ANDSO(I%+2)=N%THENSO(I%)=-1:GOTO61110
53 | 61090 IFSO(I%)=N%ANDSO(I%+2)=N%ANDSO(I%+1)=0THENSO(I%+1)=-1:GOTO61110
54 | 61092 IFI%<7THENI%=I%+3:GOTO61086
55 | 61094 I%=1
56 | 61096 IFSO(I%)=N%ANDSO(I%+4)=N%ANDSO(I%+8)=0THENSO(I%+8)=-1:GOTO61110
57 | 61098 IFSO(I%+8)=N%ANDSO(I%+4)=N%ANDSO(I%)=0THENSO(I%)=-1:GOTO61110
58 | 61100 IFSO(I%+6)=N%ANDSO(I%+4)=N%ANDSO(I%+2)=0THENSO(I%+2)=-1:GOTO61110
59 | 61102 IFSO(I%+2)=N%ANDSO(I%+4)=N%ANDSO(I%+6)=0THENSO(I%+6)=-1:GOTO61110
60 | 61104 N%=N%+2:IFN%=1THENI%=0:GOTO61074
61 | 61106 I%=INT(RND(1)*9)+1:IFSO(I%)<>0THENGOTO61104
62 | 61108 SO(I%)=-1
63 | 61110 PRINT"{down*2}The computer moves to...":GOSUB61024
64 | 61112 GOTO61010
65 | 61114 IFL%=-1THEN61118
66 | 61116 PRINT"{down*2}YOU WIN!!!{ct g*3} LUCKY!!":GOTO61122
67 | 61118 PRINT"{down*2}I WIN!!!{ct g*3} HAHAHAHAHAHAHA!!!{ct g*3}":GOTO61122
68 | 61120 PRINT"{down*2}C{ct g}A{ct g}T{ct g} - TIE GAME..."
69 | 61122 PRINT"{down*2}PLAY AGAIN (Y/N)?";
70 | 61124 GOSUB2200:IFAN$="Y"THENL%=0:FORX=1TO9:SO(X)=0:NEXTX:I%=0:N%=0:GOTO61000
71 | 61126 PRINT"{down*2}Thanks For Playing!
72 | 61128 end
73 |
--------------------------------------------------------------------------------
/extras/wall.maint.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Wednesday, August 18, 2021 12:26:27 AM
3 | !- Import of :
4 | !- c:\tmp\newproject\wall.maint.prg
5 | !- Unknown Machine
6 | !--------------------------------------------------
7 | 30000 SYS15625:U1=U:D1=D:FORI=1TO26:VT$(I)="":NEXTI
8 | 30010 O$="Wall Street z128 vII maint...":GOSUB250:GOSUB400
9 | 30020 GOTO31000
10 | 30030 REM ****************************************************************
11 | 30040 REM ***** MAKE SURE YOU RUN THIS EVERY DAY BEFORE MESSAGE WEED *****
12 | 30050 REM ****************************************************************
13 | 30060 OPEN2,D(1,0),2,MID$(STR$(D(1,1)),2)+":sys.mbases":RETURN
14 | 30070 OPEN2,D(1,0),2,MID$(STR$(D(1,1)),2)+":sys.mdata":RETURN
15 | 30080 OPEN2,U1,2,MID$(STR$(D1),2)+":wall.records":RETURN
16 | 30090 OPEN2,U1,2,MID$(STR$(D1),2)+":wall.seats":RETURN
17 | 31000 GOSUB30080
18 | 31010 RECORD#2,27:INPUT#2,A$:IFLEFT$(A$,6)=LEFT$(O$(2),6)THEN50000
19 | 31020 RECORD#2,27:PRINT#2,O$(2):CLOSE2
20 | 32000 GOSUB30060:W9=0
21 | 32010 FORX=1TO26:W5=0:W6=0:RECORD#2,X
22 | 32020 FORY=1TO7:SYS8222:TT$(150+Y)=I$:NEXTY
23 | 32030 IFVAL(TT$(150+7))=0THEN39999:ELSEVT$(X)="p"
24 | 32040 W9=W9+VAL(TT$(150+3)):CLOSE2
25 | 33000 GOSUB30070
26 | 33010 RECORD#2,X*51:INPUT#2,W4:W5=W4:W6=W4
27 | 33020 FORY=1TOW4:RECORD#2,((X-1)*51)+Y:SYS8222:IFVAL(I$)=0THEN33050
28 | 33030 INPUT#2,A
29 | 33040 W5=W5+A:IFA>=VAL(TT$(150+4))THENW6=W6+VAL(TT$(150+5)):ELSEW6=W6+A
30 | 33050 NEXTY:CLOSE2
31 | 34000 GOSUB30080
32 | 34010 RECORD#2,X:INPUT#2,W2,W3,I,I:W7=W5-W2:IFW7<0THENW7=0
33 | 34020 W4=(W3*.8)+(W7*.2):W4=INT(W4*100)/100
34 | 34030 RECORD#2,X:PRINT#2,STR$(W6)+R$+STR$(W4)+R$+STR$(W3)+R$+STR$(I)
35 | 34040 CLOSE2:GOSUB30060
36 | 39999 NEXTX
37 | 40000 CLOSE2:GOSUB30090
38 | 40010 RECORD#2,1:RECORD#2,1:SYS8222:SYS8222:SYS8222:W1=VAL(I$)
39 | 40020 SYS8222:W9=W9*VAL(I$)
40 | 40030 SYS8222:SYS8222:SYS8222:W2=VAL(I$)
41 | 40040 RECORD#2,1:A$="":FORI=1TO5:SYS8222:A$=A$+I$+R$:NEXTI:CLOSE2
42 | 40050 GOSUB30080
43 | 40055 W0=0:FORI=1TO26:IFVT$(I)<>""THENRECORD#2,I:RECORD#2,I:SYS8222:SYS8222:W0=(W0+(VAL(I$)*W1))
44 | 40060 NEXTI:RECORD#2,29:FORI=0TO4:SYS8222:VT(I)=VAL(I$):NEXTI:RECORD#2,30:FORI=5TO9:SYS8222:VT(I)=VAL(I$):NEXTI:W3=VAL(I$):VT(10)=W0
45 | 40070 C$="":FORI=1TO5:C$=C$+STR$(VT(I))+R$:NEXTI:RECORD#2,29:RECORD#2,29:PRINT#2,C$
46 | 40075 C$="":FORI=6TO10:C$=C$+STR$(VT(I))+R$:NEXTI:RECORD#2,30:RECORD#2,30:PRINT#2,C$:CLOSE2
47 | 40080 GOSUB30090
48 | 40090 RECORD#2,1:W4=W3-W0:WS$="Zelch stocks ":IFW4<=0THENWS$=WS$+"gained":ELSEWS$=WS$+"lost"
49 | 40100 W4=INT(W4*100)/100:WS$=WS$+STR$(ABS(W4))+" points{f7}yesterday in "
50 | 40110 W5=W2/W9:IFW5<=.02THENWS$=WS$+"light":ELSEIFW5<=.25THENWS$=WS$+"moderate":ELSEIFW5<=.5THENWS$=WS$+"heavy":ELSEWS$=WS$+"an incredible amount of"
51 | 40120 WS$=WS$+" trading.":RECORD#2,1:PRINT#2,A$+WS$+R$+"0"+R$:CLOSE2
52 | 41000 GOSUB30090
53 | 41010 RECORD#2,1:SYS8222:W1=VAL(I$):FORI=1TO26:VT(I)=0:NEXTI
54 | 41020 FORX=2TOW1+1:RECORD#2,X:SYS8222:IFVAL(I$)=0THEN41070
55 | 41030 I=VAL(I$):IFUI$(I)<>""ANDUI$(I)<>"^"THEN41040:ELSEFORY=1TO26:SYS8222:VT(Y)=VT(Y)+VAL(I$):NEXTY
56 | 41035 A$="":FORY=1TO27*2:A$=A$+"0"+R$:NEXTY:GOTO41060
57 | 41040 A$=I$+R$:FORY=1TO26:SYS8222:A$=A$+I$+R$:NEXTY:FORY=1TO26
58 | 41050 SYS8222:I=VAL(I$):IFI=0THENA$=A$+I$+R$:ELSEA$=A$+STR$(SGN(I)*(ABS(I)-1))+R$
59 | 41055 NEXTY
60 | 41060 RECORD#2,X:RECORD#2,X:PRINT#2,A$
61 | 41070 NEXTX:CLOSE2
62 | 41100 GOSUB30080:FORX=1TO26:IFVT(X)=0THEN41190:ELSERECORD#2,X
63 | 41110 A$="":FORI=1TO3:SYS8222:A$=A$+I$+R$:NEXTI:SYS8222:A$=A$+STR$(VAL(I$)-VT(X))+R$:RECORD#2,X:RECORD#2,X:PRINT#2,A$
64 | 41190 NEXTX:CLOSE2
65 | 50000 I=FRE(1):CLOSE1:CLOSE2:CLOSE3:CLOSE4:I$="prg.monster":U=D(0,0):D=D(0,1):GOTO23
66 | 55555 U=PEEK(186):OPEN1,U,15,"s0:wall.maint":CLOSE1:DSAVE"wall.maint",U(U):END
67 |
--------------------------------------------------------------------------------
/README:
--------------------------------------------------------------------------------
1 | Zelch 128 (C)1991-2021 William Fink, Bo Zimmerman
2 | Please read the LICENSE file for license information for Zelch 128
3 | Please read the NOTICE file for credits information
4 |
5 | Warriors & Monsters (C)1991 Matthew Beall
6 | Empire Edition II (C)1991 Jay MacNish
7 |
8 | The Zelch 128 Package is in CBM Prg Studio format. If you'd like to
9 | download older binaries, just visit: http://bbs.zimmers.net and scroll to the bottom.
10 |
11 | HOW TO ASSEMBLE:
12 |
13 | The Zelch 128 distribution package consists of two disks.
14 |
15 | The first 1571 (.D71) disk is the BOOT disk, and consists of the following files:
16 |
17 | zelch,p
18 | bbs.main,p
19 | bbs.editor,p
20 | bbs.setup,p
21 | bbs.ascii edit,p
22 | bbs.copy,p
23 | bbs.create,p
24 | v3.0 2000,p
25 | v3.0 3d00,p
26 | crsr 0e00,p
27 | ascii 3b00,p
28 | ansi 3a00,p
29 | sys.variables,s
30 | sys.text,s
31 | ----------------,u
32 | p-xfer 1300,p
33 | x-xfer 1300,p
34 | l-xfer 1300,p
35 | k-xfer 1300,p
36 | prg.logon,p
37 | prg.zapterm,p
38 | prg.new user,p
39 | prg.msg bases,p
40 | prg.voting booth,p
41 | prg.sysop,p
42 | prg.misc,p
43 | prg.monster,p
44 | prg.news,p
45 | prg.online utils,p
46 | prg.u/d bases,p
47 | prg.network,p
48 |
49 | The second 1571 (.D71) disk is the CONFIGURATIONS disk and consists of the following files:
50 | run.me,p
51 | -----zelch-----,u
52 | conf.zelch,s
53 | gam.bagels,p
54 | gam.wheel,p
55 | -----elite-----,u
56 | conf.elite
57 | prg.dating boot,p
58 | prg.dating,p
59 | prg.star trek,p
60 | prg.bbs list,p
61 | ---simplicity---,u
62 | conf.simple,s
63 |
64 | To build the files for these disks, you'll need three programs. One, obviously, is CBM prg studio. The other is DirMaster, or some other program that lets you copy files into a blank .D71 image. The last is either an emulator to run the disks on, or a program to copy the images to real floppies.
65 |
66 | The first step is to load CBM prg studio. Then click on the menu options Build->Project->To File to Generate .prg files. If any Assembly files give you an extra window "Assembly Dump", you can just hit the X to close this and ignore it.
67 |
68 | The next step is to copy the files for the boot disk into a .D71 image, in the order shown above. Please note that some of the files will need to be renamed after they are copied into the image. These are: "prg.u - d bases," which should be renamed to "prg.u/d bases". Also, the SEQ (,s) files mentioned above can be found in the project Misc Files section, such as sys.text and sys.variables, and copied in as-is.
69 |
70 | Next is to build the files for the configuration disk into a different .D71 image. Most of the "prg.*" files can be built from the other CBM Prg Studio in the "extras" directory. Load the "Zelch 128 Extras" project from that directory and built the specific programs shown in the configurations disk above. For the SEQ files, once again, you can copy the from the main projects "data" directory.
71 |
72 | The last step is to either load up your emulator, or copy the images to real floppies, and get to work. Instructions from here on are covered by the documentation in the projects docs directory.
73 |
74 | ----------------------
75 |
76 | The main program disk and the configurations disk are really all you need to get started, but there are numerous optional programs in the "extras" directory off the main project. These are built from the Zelch 128 Extras CBM Prg Studio project. Several of these extra programs also have data files of their own, which are located in the misc files section of the project.
77 |
78 | Most of the programs in the extras can be used as-is, either as Online-BASIC programs, or as Zelch-Specific modules. Which are which is listed here, along with some specific details on using some of the special ones. Also included are the online door games Warriors & Monsters, and Empire Edition II, in their own directories with their own projects.
79 |
80 |
81 |
82 |
--------------------------------------------------------------------------------
/extras/gam.bagels.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Saturday, May 20, 2017 1:34:51 AM
3 | !- Import of :
4 | !- c:\src\zelch128\extras\gam.bagels.prg
5 | !- Unknown Machine
6 | !--------------------------------------------------
7 | 10 REM GAME: BAGELS :4-V1.0
8 | 20 REM BY VINCE MILLS
9 | 30 REM COPYRIGHT OCT 1979 - PERMISSION
10 | 40 REM GRANTED FOR FREE DISTRIBUTION.
11 | 50 REMPOKE 59468,16
12 | 51 GOTO 1000
13 | 66 REM -- CHAR INPUT SUBROUTINE ------
14 | 70 REM
15 | 71 GETA$:GOTO89
16 | 75 PRINT;:RETURN
17 | 76 REM - GET NON-EMPTY STRING -
18 | 77 B$="":IFLE=0THENLE=-1
19 | 78 GOSUB66:IFA$=CHR$(13)ANDB$=""THEN78
20 | 79 IFASC(A$)=13THENRETURN
21 | 80 IFASC(A$)=20ANDLEN(B$)=1THENPRINTCHR$(20);:GOTO 77
22 | 81 IFASC(A$)=20ANDLEN(B$)>1THENB$=LEFT$(B$,LEN(B$)-1):PRINTCHR$(20);:GOTO 78
23 | 82 IFASC(A$)<32ORASC(A$)>96THEN78
24 | 83 PRINT A$;:B$=B$+A$
25 | 84 IFLEN(B$)=LEORB$=ST$THENRETURN
26 | 85 GOTO78
27 | 89 IFA$=""THEN71
28 | 90 IFFLG=0ORASC(A$)=13ORASC(A$)=20THEN75
29 | 91 IFASC(A$)>57ORASC(A$)<48THEN71
30 | 92 GOTO75
31 | 1000 REM -- INSTRUCTION BLOCK --------
32 | 1010 PRINT"{clear}{right*14}{pink}{cm @*13}"
33 | 1020 PRINT"{right*14}{reverse on}{yellow} B a g e l s{sh space}"
34 | 1030 PRINT"{right*14}{pink}{cm t*13}"
35 | 1035 PRINT
36 | 1040 PRINT"{light green} In this game, I will think of a three-"
37 | 1050 PRINT"digit number from 012 to 987 ( zero is"
38 | 1060 PRINT"a valid digit ). Every time you try to"
39 | 1070 PRINT"guess this hidden number, I{sh space}will tell"
40 | 1080 PRINT"you:"
41 | 1090 PRINT"{right*7}{white}Pico {light green}- a{sh space}digit is correct but in"
42 | 1100 PRINT"{right*7}{yellow}{cm t*4}{light green}{right*3}the wrong place.{down}"
43 | 1110 PRINT"{right*7}{cyan}Fermi{light green}- a digit is correct and in"
44 | 1120 PRINT"{right*7}{yellow}{cm t*5}{right*2}{light green}the right place.{down}"
45 | 1130 PRINT"{right*7}{light blue}Bagels{light green}-all digits in your guess"
46 | 1140 PRINT"{right*7}{yellow}{cm t*6}{right}{light green}are incorrect.{down}"
47 | 1150 PRINT"{right*9}{yellow}{cm @*30}"
48 | 1160 PRINT"{right*9}{reverse on}{pink} Press any key to continue. "
49 | 1170 PRINT"{right*9}{yellow}{cm t*30}"
50 | 1180 GOSUB 66
51 | 2000 REM -- GENERATE NUMBER ----------
52 | 2001 PRINT"{clear}{yellow}Ok, I have a number in mind.{down*2}"
53 | 2002 PRINT"{down}{white}Enter 000 to quit!{down*2}"
54 | 2010 FOR I=2 TO 3:A(I)=-1:NEXT
55 | 2020 A(1)=INT(RND(1)*10)
56 | 2030 A(2)=INT(RND(1)*10)
57 | 2040 IF A(2)=A(1) THEN 2030
58 | 2050 A(3)=INT(RND(1)*10)
59 | 2060 IF A(3)=A(1) THEN 2050
60 | 2070 IF A(3)=A(2) THEN 2050
61 | 3000 REM -- PLAY GAME ----------------
62 | 3001 REM
63 | 3010 FOR Q=1 TO 200
64 | 3020 PRINT "{pink}Guess #";Q;"{yellow}";
65 | 3030 PRINT TAB(12);
66 | 3040 FLG=1:LE=3 :GOSUB 77
67 | 3045 IFB$="000"THEN3305
68 | 3050 IF LEN(B$)<>3 THEN 3100
69 | 3060 FOR I=1 TO 3
70 | 3070 D$=MID$(B$,I,1)
71 | 3090 B(I)=VAL(D$)
72 | 3095 NEXT I
73 | 3096 GOTO 3110
74 | 3100 PRINT:PRINT"{white}Please{sh space}use 3 numbers only.":GOTO 3020
75 | 3110 IF B(1)<>B(2) AND B(2)<>B(3) AND B(3)<>B(1) THEN 3125
76 | 3120 PRINT"{left*15}{reverse on}{white}Please guess three different numbers.{reverse off}";
77 | 3121 FOR LL=1 TO 1000:NEXT LL
78 | 3122 PRINT"{left*37}";
79 | 3123 PRINT" {up}":GOTO 3020
80 | 3125 F=0:P=0
81 | 3140 FOR I=1 TO 3
82 | 3150 IF B(I)=A(I) THEN F=F+1
83 | 3160 IF B(I)=A(1) THEN P=P+1
84 | 3170 IF B(I)=A(2) THEN P=P+1
85 | 3175 IF B(I)=A(3) THEN P=P+1
86 | 3176 NEXT I
87 | 3180 P=P-F
88 | 3190 PRINT TAB(18);
89 | 3195 IF F=3 THEN 3300
90 | 3200 IF P=0 THEN 3220
91 | 3210 FOR P1=1 TO P:PRINT "{white}Pico ";:NEXT
92 | 3220 IF F=0 THEN 3240
93 | 3230 FOR F1=1 TO F:PRINT"{cyan}Fermi ";:NEXT
94 | 3240 IF F=0 AND P=0 THEN PRINT"{light blue}Bagels";
95 | 3245 PRINT
96 | 3250 NEXT Q
97 | 3300 PRINT"{pink}Y{yellow}o{white}u {cyan}g{light blue}o{blue}t {purple}i{red}t{pink}!{yellow}!{white}!"
98 | 3305 PRINT:END
99 | 3310 LE=1:FLG=0
100 | 3320 GOSUB 77
101 | 3330 IF B$<>"y" THEN 32767
102 | 3335 FOR I=1 TO 500:NEXT
103 | 3340 GOTO 2001
104 | 32767 END
105 |
--------------------------------------------------------------------------------
/l-xfer 1300.asm:
--------------------------------------------------------------------------------
1 | * = $1300
2 | ;.D L-XFER 1300
3 | JMP BITLIST
4 | JMP BITEDIT
5 | LDAFAR2
6 | TXA
7 | LDX #$01
8 | JSR $FF74
9 | RTS
10 | BITLIST
11 | JSR $FFCC
12 | LDY #$09
13 | LDX #$2F
14 | JSR LDAFAR2
15 | CMP $FB
16 | BCS BITBURP
17 | STA $FB
18 | BITBURP
19 | INY
20 | LDX #$2F
21 | JSR LDAFAR2
22 | STA $FC
23 | INY
24 | LDX #$2F
25 | JSR LDAFAR2
26 | STA $FD
27 | LDY #$00
28 | BITLOOP
29 | LDX #$FC
30 | JSR LDAFAR2
31 | LDX #$01
32 | STX $F5
33 | STA $1F00,Y
34 | JSR $FFD2
35 | LDA #$00
36 | STA $F5
37 | STA $F4
38 | INY
39 | CPY $FB
40 | BNE BITLOOP
41 | RTS
42 | BITEDIT
43 | JSR $FFCC
44 | JSR $2039
45 | LDY #$09
46 | LDX #$2F
47 | JSR LDAFAR2
48 | STA $FB
49 | JSR BITLIST
50 | LDA $FA
51 | BNE BITSHIT
52 | LDA #$F0
53 | BITSHIT
54 | STA $FA
55 | LDY $FB
56 | DELOP
57 | LDA #$9D
58 | JSR $FFD2
59 | DEY
60 | BNE DELOP
61 | LDA #$00
62 | STA $FE
63 | GETKEY
64 | JSR $FFE4
65 | STA $FC
66 | JSR $3D0C
67 | LDA $FC
68 | BEQ GETKEY
69 | CMP #$22
70 | BNE NOKOTE
71 | LDA #$87
72 | STA $FC
73 | NOKOTE
74 | CMP #$0D
75 | BNE NOGO
76 | GOGO
77 | JMP OUTGOGO
78 | NOGO
79 | LDA $0B4D
80 | BNE GOGO
81 | LDA $D4
82 | CMP #$53
83 | BCC NOT212
84 | CMP #$57
85 | BCS NOT212
86 | JMP NOTFIV
87 | NOT212
88 | LDA $FC
89 | CMP #$9D
90 | BEQ THIS1
91 | CMP #$11
92 | BNE NOTBK
93 | THIS1
94 | LDA $FE
95 | BEQ GETKEY
96 | DEC $FE
97 | LDA #$9D
98 | JSR $FFD2
99 | JMP GETKEY
100 | NOTBK
101 | LDA $FC
102 | CMP #$1D
103 | BEQ THIS2
104 | CMP #$91
105 | BNE NOTUP
106 | THIS2
107 | LDA $FE
108 | CMP $FB
109 | BCC DOIT
110 | JMP GETKEY
111 | DOIT
112 | INC $FE
113 | LDA #$1D
114 | JSR $FFD2
115 | JMP GETKEY
116 | NOTUP
117 | LDA $FC
118 | CMP #$14
119 | BEQ DELETE
120 | CMP #$94
121 | BNE NOINST
122 | JMP INSERT
123 | NOINST
124 | LDA $D3
125 | CMP #$05
126 | BNE NOTFIV
127 | LDA $FC
128 | ORA #$80
129 | STA $FC
130 | NOTFIV
131 | LDX $FE
132 | INX
133 | CPX $FB
134 | BCC NOSHIT
135 | BEQ NOSHIT
136 | CPX $FA
137 | BCS JPGT
138 | LDY $FB
139 | LDA $FC
140 | STA $1F00,Y
141 | INY
142 | STY $FB
143 | PRINT
144 | LDA #$01
145 | STA $F4
146 | LDA $FC
147 | JSR $FFD2
148 | LDA #$00
149 | STA $F4
150 | STA $F5
151 | INC $FE
152 | JMP GETKEY
153 | NOSHIT
154 | LDX $FE
155 | CPX $FA
156 | BCS JPGT
157 | LDY $FE
158 | LDA $FC
159 | STA $1F00,Y
160 | JMP PRINT
161 | OUTGOGO
162 | LDA #$0D
163 | JSR $FFD2
164 | LDA #$0D
165 | JSR $FFD2
166 | LDA #$1F
167 | STA $FC
168 | JMP $203C
169 | JPGT
170 | JMP GETKEY
171 | DELETE
172 | LDA $FB
173 | BEQ JPGT
174 | LDA $FE
175 | BEQ JPGT
176 | LDA $FC
177 | JSR $FFD2
178 | DEC $FE
179 | DEC $FB
180 | LDY $FE
181 | LOOP2
182 | INY
183 | LDA $1F00,Y
184 | DEY
185 | STA $1F00,Y
186 | INY
187 | CPY $FB
188 | BCC LOOP2
189 | JMP GETKEY
190 | INSERT
191 | LDA $FB
192 | CMP $FA
193 | BCS JPGT
194 | LDA $FC
195 | JSR $FFD2
196 | LDA #$00
197 | STA $F4
198 | STA $F5
199 | INC $FB
200 | LDY $FB
201 | LOOP3
202 | DEY
203 | LDA $1F00,Y
204 | INY
205 | STA $1F00,Y
206 | DEY
207 | CPY $FE
208 | BNE LOOP3
209 | LDA #$20
210 | STA $1F00,Y
211 | JMP GETKEY
212 | PRINT2
213 | NOP
214 | ;OPEN1,8,15,"S0:ML1300L,L-XFER 1300":CLOSE1:SAVE"ML1300L",8
215 |
216 |
217 |
--------------------------------------------------------------------------------
/extras/bnk.maint.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Tuesday, August 17, 2021 11:57:07 PM
3 | !- Import of :
4 | !- c:\tmp\newproject\bnk.maint.prg
5 | !- Unknown Machine
6 | !--------------------------------------------------
7 | 30000 SYS15625:REM*************** BANKING MAINT 1.0 ************************
8 | 30010 REM ******************************************************************
9 | 30020 REM ****** MAKE SURE THIS MODULE RUNS ONCE PER DAY DURING YOUR *******
10 | 30030 REM ********************** SYSTEMS MONSTER MODE **********************
11 | 30040 REM ******************************************************************
12 | 30050 U=8:O$="Bank Maint...":GOSUB250:U1=U:D1=D:FORI=1TO50:VT(I)=0:VT$(I)="":NEXT:W9$="":FORI=0TO14:W9$=W9$+" 0"+R$:NEXTI
13 | 30060 OPEN2,U1,2,MID$(STR$(D1),2)+":bnk.records"
14 | 30070 RECORD#2,1:FORI=1TO7:SYS8222:VT(40+I)=VAL(I$):NEXTI:CLOSE2:W1=1:GOTO30999
15 | 30500 A$="":FORI=1TO6:SYS8222:A$=A$+I$+R$:NEXT
16 | 30510 FORI=1TO4:GET#2,I$:A$=A$+CHR$(ASC(I$+CHR$(0))):NEXT
17 | 30520 FORI=8TO9:SYS8222:A$=A$+I$+R$:NEXT
18 | 30530 FORI=1TO4:GET#2,I$:A$=A$+CHR$(ASC(I$+CHR$(0))):NEXT
19 | 30540 SYS8222:A$=A$+I$+R$
20 | 30550 SYS8222:I=VAL(I$):A$=A$+STR$(I+Y)+R$:Y=I
21 | 30560 FORI=3TO6:SYS8222:A$=A$+I$+R$:NEXT:RETURN
22 | 30999 OPEN2,U1,2,MID$(STR$(D1),2)+":bnk.accounts"
23 | 31000 IFUI$(W1)=""THENCLOSE2:I$="prg.monster":U=D(0,0):D=D(0,1):GOTO23
24 | 31010 IFUI$(W1)="^"THENRECORD#2,W1:RECORD#2,W1:PRINT#2,W9$:W1=W1+1:GOTO31000
25 | 31020 RECORD#2,W1:FORI=0TO14:SYS8222:VT$(I)=I$:VT(I)=VAL(I$):NEXTI:W0=0
26 | 31030 IFVT(1)>0THENVT(1)=(VT(1)*(VT(41)/3000))+VT(1):VT$(1)=STR$(VT(1)):W0=W0OR1
27 | 31040 IFVT(2)>0THENVT(2)=(VT(2)*(VT(42)/3000))+VT(2):VT$(2)=STR$(VT(2)):W0=W0OR1
28 | 31050 IFVT(3)THENVT$(3)="0":VT(3)=0:W0=W0OR1
29 | 32000 IFVT(4)=0ORVT(6)=0THEN33000:REM******APPROPRIATIONS
30 | 32010 W9=VAL(MID$(VT$(5),3)):W9=W9-1:IFW9<1THENW9=VT(7)
31 | 32020 VT$(5)=LEFT$(VT$(5),1)+";"+STR$(W9):IFW9<>VT(7)THEN33000
32 | 32030 C$=VT$(4)
33 | 32040 W2=VAL(C$):IFW2=0THEN32100:ELSEY=INSTR(C$,";"):IFY=0THENC$="":ELSEC$=MID$(C$,Y+1)
34 | 32050 CLOSE2:OPEN2,D(4,0),2,MID$(STR$(D(4,1)),2)+":sys.userfiles":W0=W0OR2
35 | 32060 IFVT(5)=0THENRECORD#2,W1:Y=-VT(6):GOSUB30500:IFY>=VT(6)THENRECORD#2,W1:RECORD#2,W1:PRINT#2,A$:ELSEIFVT(5)=0THENVT$(4)="0":VT(4)=0:GOTO32200
36 | 32070 IFVT(5)=1ANDVT(1)>=VT(6)THENVT(1)=VT(1)-VT(6):VT$(1)=STR$(VT(1)):ELSEIFVT(5)=1THENVT$(4)="0":VT(4)=0:GOTO32200
37 | 32080 IFVT(5)=2ANDVT(2)>=VT(6)THENVT(2)=VT(2)-VT(6):VT$(2)=STR$(VT(2)):ELSEIFVT(5)=2THENVT$(4)="0":VT(4)=0:GOTO32200
38 | 32090 RECORD#2,W2:Y=VT(6):GOSUB30500:RECORD#2,W2:PRINT#2,A$
39 | 32100 IFVAL(C$)THEN32040
40 | 32200 CLOSE2
41 | 33000 IFVT(8)=0THEN34000:ELSE33020:REM*****LOANS
42 | 33010 VT$(9)="0":X=VAL(MID$(VT$(10),3)):X=X+VT(9):VT$(10)=LEFT$(VT$(10),1)+";"+STR$(X):VT(9)=0:RETURN
43 | 33020 W0=W0OR1:GOSUB400:W2=VAL(MID$(O$(2),5,2))
44 | 33030 IFVT(10)=1THENIFW2=1THENVT(9)=VT(9)+(VT(8)*(.17+(VT(47)/580)))
45 | 33040 IFVT(10)=2THENIFW2=1ORW2=15THENVT(9)=VT(9)+(VT(8)*(.09+(VT(47)/1100)))
46 | 33050 IFVT(10)=3THENIFW2=1ORW2=8ORW2=17ORW2=24THENVT(9)=VT(9)+(VT(8)*(.05+(VT(47)/2000)))
47 | 33060 IFVT(10)=4THENVT(9)=VT(9)+(VT(8)*(.01+(VT(47)/10000)))
48 | 33070 VT$(9)=STR$(VT(9))
49 | 33080 IFVT(9)>0ANDVT(1)>=VT(9)THENVT(1)=VT(1)-VT(9):VT$(1)=STR$(VT(1)):GOSUB33010
50 | 33090 IFVT(9)>0ANDVT(10)=4ANDVT(2)>=VT(9)THENVT(2)=VT(2)-VT(9):VT$(2)=STR$(VT(2)):GOSUB33010
51 | 33100 IFVT(9)=0THEN33130:ELSEW0=W0OR2:CLOSE2:OPEN2,D(4,0),2,MID$(STR$(D(4,1)),2)+":sys.userfiles":RECORD#2,W1:Y=-INT(VT(9)):GOSUB30500
52 | 33110 IFY>=INT(VT(9))THENRECORD#2,W1:PRINT#2,A$:GOSUB33010
53 | 33120 CLOSE2
54 | 33130 IFVT(9)>0ANDVT(2)>=VT(9)THENVT(2)=VT(2)-VT(9):VT$(2)=STR$(VT(2)):GOSUB33010
55 | 33140 IFVT(9)>0THENVT(11)=VT(11)+1:VT$(11)=STR$(VT(11)):IFVT(11)<=14THEN33200:ELSEIFVT(9)=0THEN33200
56 | 33150 W0=W0OR2:CLOSE2:OPEN2,U1,2,MID$(STR$(D1),2)+":bnk.records":Y=1:DO:Y=Y+1:RECORD#2,Y:SYS8222:LOOPUNTILI$="^"ORI$="{pound}":RECORD#2,Y
57 | 33160 PRINT#2,STR$(W1)+R$+STR$(-INT(VT(8)-VAL(MID$(STR$(VT(10)),3)))):CLOSE2:VT$(8)="0":VT(8)=0:OPEN2,D(4,0),2,MID$(STR$(D(4,1)),2)+":sys.userfiles"
58 | 33170 RECORD#2,W1:SYS8222:SYS8222:SYS8222:CLOSE2:OPEN1,U1,15:OPEN2,U1,2,MID$(STR$(D1),2)+":bnk.blacklist,s,w":INPUT#1,E
59 | 33180 IFE>0THENCLOSE2:OPEN2,U1,2,MID$(STR$(D1),2)+":bnk.blacklist,s,a"
60 | 33190 PRINT#2,I$:CLOSE2:CLOSE1
61 | 33200 IFVAL(MID$(VT$(10),3))>=VT(8)THENVT$(8)="0":VT$(9)="0":VT$(10)="0":VT$(11)="0":VT(0)=VT(0)+VT(8):VT$(0)=STR$(VT(0))
62 | 34000 IFVT(12)=0THEN35000:REM*****BONDS
63 | 34010 IFVT(13)=0THEN35000
64 | 34020 W0=W0OR1:VT(13)=VT(13)-1:VT$(13)=STR$(VT(13))
65 | 34030 VT(14)=VT(14)+(VT(43)*(VT(44)/VT(45)/100))
66 | 34040 VT$(14)=STR$(VT(14))
67 | 35000 IFW0=0THEN35030
68 | 35010 IFW0AND2=2THENCLOSE2:OPEN2,U1,2,MID$(STR$(D1),2)+":bnk.accounts"
69 | 35020 RECORD#2,W1:A$="":FORI=0TO14:A$=A$+VT$(I)+R$:NEXTI:PRINT#2,A$
70 | 35030 W1=W1+1:GOTO31000
71 | 55555 U=PEEK(186):OPEN1,U,15,"s0:bnk.maint":CLOSE1:DSAVE"bnk.maint",U(U):STOP
72 |
--------------------------------------------------------------------------------
/extras/emp.create.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Monday, September 13, 2021 11:01:23 PM
3 | !- Import of :
4 | !- c:\tmp\maps\emp.create.prg
5 | !- Unknown Machine
6 | !--------------------------------------------------
7 | 100 TRAP 280
8 | 105 COLOR 0,1:COLOR 4,1
9 | 110 PRINT "{home*2}{clear}{ct n}{white}Empire File Disk Creator/V5.0
10 | 120 PRINT
11 | 130 PRINT "Insert empire disk in the":PRINT"appropriate drive and press return"
12 | 140 DO:GETKEYA$:LOOPUNTILA$=CHR$(13)
13 | 150 PRINT:PRINT:INPUT"Input what is the max plays per day";PL
14 | 160 INPUT "What is the max number of players";MAX:INPUT "What drive is empire on";DRIV:PRINT:PRINT "Max plays:";PL:PRINT"Max Players:";MAX:PRINT"Base Drive:";DRIV
15 | 170 PRINT:PRINT:INPUT "Save this file (y/n)";SAV$
16 | 180 IFSAV$<>"y"AND SAV$<>"n"THEN170
17 | 190 IFSAV$="n" THEN END
18 | 200 PRINT
19 | 210 PRINT "Creating account file..."
20 | 220 CLOSE2:DOPEN#2,"emp.players",L150,U(DR):RECORD#2,MAX+1:PRINT#2,"empty":CLOSE2
21 | 230 CLOSE2:DOPEN#2,"emp.players",L150,U(DR):RECORD#2,MAX+1:PRINT#2,"empty"
22 | 240 FOR XX = 1 TO MAX:RECORD#2,XX,1:PRINT#2,"empty":NEXT XX:CLOSE2
23 | 245 CLOSE15:OPEN15,DR,15,"s0:emp.config,emp.reqs,emp.req":CLOSE15
24 | 246 PRINT DS$
25 | 250 PRINT "Creating Config...":CLOSE2:DOPEN#2,"emp.config",W,U(DR)
26 | 260 PRINT#2,PL:PRINT#2,MAX:PRINT#2,DRIV:CLOSE2
27 | 270 GOTO 300
28 | 280 PRINT:PRINT "{ct g}?";ERR$(ER);"error in";EL
29 | 290 CLOSE2::END
30 | 300 PRINT:PRINT "Entering 'EMPEROR' Requirements:
31 | 310 PRINT
32 | 320 INPUT "Acres";AC:INPUT"Serfs";VA:INPUT"Warlords";WA:INPUT"Markets";MA
33 | 330 INPUT "Mills";MI:INPUT"Foundries";FO:INPUT"Shipyards";SH:INPUT"Brothels";BR:PRINT "Palace? 100% (automatic!)":11111111111
34 | 335 INPUT "Colonies";CJ
35 | 340 INPUT "{down}Save (y/n)";S$
36 | 350 IFS$<>"y"ANDS$<>"n"THEN340
37 | 360 IFS$="n"THEN300
38 | 370 PRINT:PRINT "Saving..."
39 | 380 CLOSE2:DOPEN#2,"emp.req",W,U(DR):PRINT#2,AC:PRINT#2,VA:PRINT#2,WA:PRINT#2,MA:PRINT#2,MI:PRINT#2,FO:PRINT#2,SH:PRINT#2,BR:PRINT#2,100:PRINT#2,CJ:CLOSE2
40 | 390 CLOSE2:DOPEN#2,"emp.reqs",W,U(DR)
41 | 400 PRINT#2," "
42 | 410 PRINT#2," "
43 | 420 PRINT#2,"{light blue}To Become an EMPEROR you
44 | 430 PRINT#2,"{light blue}must attain:
45 | 440 PRINT#2," "
46 | 450 PRINT#2,"{yellow}Acres{space*7}:{red}"+STR$(AC)
47 | 460 PRINT#2,"{yellow}Serfs{space*7}:{red}"+STR$(VA)
48 | 470 PRINT#2,"{yellow}Warlords{space*4}:{red}"+STR$(WA)
49 | 480 PRINT#2,"{yellow}Markets{space*5}:{red}"+STR$(MA)
50 | 490 PRINT#2,"{yellow}Mills{space*7}:{red}"+STR$(MI)
51 | 500 PRINT#2,"{yellow}Foundries{space*3}:{red}"+STR$(FO)
52 | 510 PRINT#2,"{yellow}Shipyards{space*3}:{red}"+STR$(SH)
53 | 520 PRINT#2,"{yellow}Brothels{space*4}:{red}"+STR$(BR)
54 | 530 PRINT#2,"{yellow}Palace{space*6}: {red}100%"
55 | 535 PRINT#2,"{yellow}Colonies{space*4}:{red}"+STR$(CJ)
56 | 540 PRINT#2," "
57 | 550 PRINT#2,"{light green}>>> {green}Good Luck!! <<<"
58 | 560 PRINT#2," "
59 | 570 CLOSE2
60 | 580 PRINT:INPUT "Recreate the EMPEROR list (y/n)";Y$
61 | 590 IFY$<>"y"ANDY$<>"n"THEN580
62 | 600 IFY$="n"THEN700
63 | 610 CLOSE15:OPEN15,DR,15,"s0:emp.emps":CLOSE15:CLOSE2:DOPEN#2,"emp.emps",U(DR),W
64 | 620 PRINT#2," "
65 | 630 PRINT#2,"{light blue}Current Emperors..."
66 | 640 PRINT#2," "
67 | 650 CLOSE2
68 | 700 PRINT:PRINT "{white}Empire file disk is now ready":PRINT "Copy empire to appropriate drive and":PRINT "go for it..."
69 | 710 PRINT
70 | 720 PRINT "{reverse on}{clear}Explanation of files on the disk now:
71 | 730 PRINT
72 | 740 PRINT "emp.players - holds the data for
73 | 750 PRINT "{space*18}all of the players
74 | 760 PRINT
75 | 770 PRINT "emp.config{space*2}- holds the start-up
76 | 795 PRINT
77 | 800 PRINT "emp.emps{space*4}- holds the list of all
78 | 805 PRINT "{space*18}those who have filled
79 | 806 PRINT "{space*18}emperor requirements.
80 | 810 PRINT
81 | 820 PRINT "emp.reqs{space*4}- holds the list of all
82 | 830 PRINT "{space*18}requirements needed to
83 | 840 PRINT "{space*18}become an emporer.
84 | 850 PRINT
85 | 860 PRINT "emp.req{space*9}- this is the data file
86 | 870 PRINT "{space*18}of the above...
87 | 880 PRINT
88 | 890 PRINT "{reverse on}Press Any Key":GETKEYA$
89 | 920 PRINT "{reverse on}{clear}Explanation of files you need to make:
90 | 922 PRINT "{reverse on}(or modify those already existing)"
91 | 930 PRINT
92 | 940 PRINT "emp.menu1{space*3}- main menu
93 | 950 PRINT
94 | 960 PRINT "emp.menu2{space*3}- combat/battle menu
95 | 970 PRINT "{space*18}(add 4=hand to hand)
96 | 975 PRINT "{space*18}(add 5=quit)
97 | 980 PRINT
98 | 990 PRINT "emp.menu3{space*3}- investment menu
99 | 995 PRINT
100 | 1000 PRINT"emp.hand{space*4}- hand to hand combat
101 | 1010 PRINT"{space*18}description file."
102 | 1015 PRINT"
103 | 1020 PRINT"emp.title{space*3}- title screen
104 | 1030 PRINT"
105 | 1032 PRINT"emp.manif{space*3}- load your ship menu"
106 | 1033 PRINT"{space*19}1=grain,2=serfs
107 | 1034 PRINT"{space*19}3=warlord,4=navigators"
108 |
--------------------------------------------------------------------------------
/cursor-0e00.spt:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Import 1
5 |
6 | True
7 | False
8 | 1
9 | 0
10 | 6
11 | 7
12 | False
13 | False
14 |
15 | 170
16 | 85
17 | 170
18 | 85
19 | 170
20 | 85
21 | 170
22 | 85
23 | 0
24 | 0
25 | 0
26 | 0
27 | 0
28 | 0
29 | 0
30 | 0
31 | 0
32 | 0
33 | 0
34 | 0
35 | 0
36 |
37 |
38 |
39 |
40 | 0
41 | | A |
42 | A |
43 | A |
44 | A |
45 | A |
46 | A |
47 | A |
48 | A |
49 | A |
50 | A |
51 | A |
52 | A |
53 | A |
54 | A |
55 | A |
56 | A |
57 | A |
58 | A |
59 | A |
60 | A |
61 | A |
62 | A |
63 | A |
64 | A |
65 | A |
66 | A |
67 | A |
68 | A |
69 | A |
70 | A |
71 | A |
72 | A |
73 | A |
74 | A |
75 | A |
76 | A |
77 | A |
78 | A |
79 | A |
80 | A |
81 | A |
82 | A |
83 | A |
84 | A |
85 | A |
86 | A |
87 | A |
88 | A |
89 | A |
90 | A |
91 | A |
92 | A |
93 | A |
94 | A |
95 | A |
96 | A |
97 | A |
98 | A |
99 | A |
100 | A |
101 | A |
102 | A |
103 | A |
104 | A |
105 | A |
106 | A |
107 | A |
108 | A |
109 | A |
110 | A |
111 | A |
112 | A |
113 | A |
114 | A |
115 | A |
116 | A |
117 | A |
118 | A |
119 | A |
120 | A |
121 | A |
122 | A |
123 | A |
124 | A |
125 | A |
126 | A |
127 | A |
128 | A |
129 | A |
130 | A |
131 | A |
132 | A |
133 | A |
134 | A |
135 | A |
136 | A |
137 | A |
138 | A |
139 | A |
140 | A |
141 | A |
142 | A |
143 | A |
144 | A |
145 | A |
146 | A |
147 | A |
148 | A |
149 | A |
150 | A |
151 | A |
152 | A |
153 | A |
154 | A |
155 | A |
156 | A |
157 | A |
158 | A |
159 | A |
160 | A |
161 | A |
162 | A |
163 | A |
164 | A |
165 | A |
166 | A |
167 | A |
168 | A |
169 | A |
170 | A |
171 | A |
172 | A |
173 | A |
174 | A |
175 | A |
176 | A |
177 | A |
178 | A |
179 | A |
180 | A |
181 | A |
182 | A |
183 | A |
184 | A |
185 |
186 |
187 |
--------------------------------------------------------------------------------
/extras/gam.128dle.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Tuesday, February 21, 2023 2:23:36 PM
3 | !- Import of :
4 | !- c:\dev\c=ordle\128dle\128dle.prg
5 | !- Commodore 128 BASIC 7/7.1
6 | !--------------------------------------------------
7 | 10 rem 128dle - for c128
8 | 20 rem ======
9 | 30 rem by bo zimmerman and steve gray
10 | 40 rem v1.0, 2023-02-22
11 | 50 rem-------------------------------
12 | 60 :
13 | 70 color0,1:color4,1:color6,1:printchr$(142);
14 | 80 :
15 | 90 mw=12943:gosub3000
16 | 100 w$=""
17 | 110 t$="{space*12}"
18 | 120 z$="{reverse on}{space*3}{reverse off}{white}="
19 | 130 b1$="{reverse on}O{cm y}P{down}{left*3}{cm g}"
20 | 140 b2$="{cm n}{down}{left*3}L{cm p}{sh @}{up*2}"
21 | 150 p$="{home}{down*21}"
22 | 160 l$="{black}CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC"
23 | 180 bank15:ifl=0thengosub2000
24 | 190 ifl=0thenl=1:bload"gam.128dldic.bin",u8,b1
25 | 200 ifl=1thenl=2:bload"gam.128dlml.bin",u8,b1
26 | 210 :
27 | 220 rem---- generate the word
28 | 230 :
29 | 240 wx=int(rnd(.)*mw):bank1
30 | 250 poke35847,int(wx/256)
31 | 260 poke35846,wx-(256*peek(35847))
32 | 270 sys35840
33 | 275 ifpeek(35846)=0then240
34 | 280 w$=""
35 | 290 fori=0to4
36 | 300 w$=w$+chr$(peek(35846+i))
37 | 310 next:bank 15
38 | 315 sc(7)=sc(7)+1
39 | 320 :
40 | 330 rem---- draw screen
41 | 340 :
42 | 350 print"{clear}{white}{space*3}128dle - guess the 5 letter word!"
43 | 360 print l$
44 | 370 s$="{space*5}"
45 | 380 n=3:gosub1270
46 | 390 forj=1to6
47 | 400 print t$;
48 | 410 gosub940
49 | 420 next j
50 | 430 print"{down*3}";l$
51 | 440 print"{space*4}";
52 | 450 n=0:gosub1270:print z$;"correct ";
53 | 460 n=2:gosub1270:print z$;"place ";
54 | 470 n=1:gosub1270:print z$;"wrong";
55 | 480 print"{home}{down}
56 | 490 :
57 | 500 REM---- ENTER A GUESS
58 | 510 :
59 | 520 GU=1
60 | 530 PRINT T$;
61 | 540 C=0:G$=""
62 | 550 E=0:GOSUB1070:EN=0
63 | 560 :
64 | 570 REM---- CHECK IT
65 | 580 :
66 | 590 FORI=1TO5
67 | 600 A$=MID$(G$,I,1)
68 | 610 BANK 1:POKE35845+I,ASC(A$):BANK 15
69 | 620 IFMID$(W$,I,1)=A$ THEN FE=0:GOTO670
70 | 630 FE=1
71 | 640 FOR II=1 TO 5
72 | 650 IF MID$(W$,II,1)=A$ THEN IFMID$(G$,II,1) <> A$ THEN FE=2
73 | 660 NEXT II
74 | 670 AN(I)=FE
75 | 680 NEXT I
76 | 690 IF E=1 GOTO 550
77 | 700 BANK1:SYS35843
78 | 710 IF PEEK(35846)=0 THEN PRINT"{red}{down}not a word!{left*11}{up}";:EN=1:BANK15:GOTO550
79 | 720 :
80 | 730 REM---- DISPLAY RESULTS
81 | 740 :
82 | 750 BANK15:PRINT"{up}"
83 | 760 PRINT T$;
84 | 770 FOR I=1 TO 5
85 | 780 N=AN(I):GOSUB 1270:C$=MID$(G$,I,1)
86 | 790 GOSUB1020
87 | 800 NEXT I
88 | 810 PRINT"{down*2}
89 | 820 :
90 | 830 rem---- check for win
91 | 840 :
92 | 850 gu=gu+1
93 | 860 if w$=g$ then print p$;"{green}you win!":sc(gu-1)=sc(gu-1)+1:goto 890
94 | 870 if gu>6 then print p$;"{red}you failed. the word was: {white}";w$:goto 890
95 | 880 goto530
96 | 890 print"{white}play again (y/n)?";
97 | 900 get a$:if a$="y" goto 220
98 | 910 if a$<>"n"goto900
99 | 920 print"{clear}{white}";chr$(14);:gosub3300:end
100 | 930 :
101 | 940 rem---- print string inside boxes
102 | 950 :
103 | 960 fora=1to len(s$)
104 | 970 c$=mid$(s$,a,1):gosub 1020
105 | 980 next
106 | 990 print"{down*2}
107 | 1000 RETURN
108 | 1010 :
109 | 1020 REM---- DRAW BOX WITH LETTER INSIDE
110 | 1030 :
111 | 1040 PRINT B1$;C$;B2$;
112 | 1050 RETURN
113 | 1060 :
114 | 1070 REM---- ENTER GUESS
115 | 1080 :
116 | 1090 PRINT"{white}";
117 | 1100 GET C$:IF C$="" GOTO 1100
118 | 1110 IF C=5 AND C$=CHR$(13) THEN RETURN
119 | 1120 IFEN=1THENEN=0:PRINT"{down}{white}{reverse off}{space*11}{left*11}{up}";
120 | 1130 IF C>0 AND C$=CHR$(20) THEN GOSUB1200
121 | 1140 IF C=5 GOTO 1100
122 | 1150 IF C$<"a" OR C$>"z" GOTO 1100
123 | 1160 GOSUB 1020
124 | 1170 G$=G$+C$:C=C+1
125 | 1180 GOTO 1100
126 | 1190 :
127 | 1200 REM---- REMOVE CHARACTER
128 | 1210 :
129 | 1220 G$=LEFT$(G$,LEN(G$)-1):C=C-1
130 | 1230 N=3:GOSUB 1270
131 | 1240 PRINT"{left*3}";B1$;" ";B2$;"{left*3}{white}";
132 | 1250 RETURN
133 | 1260 :
134 | 1270 REM---- SET COLOR
135 | 1280 :
136 | 1290 IF N=0 THEN PRINT"{green}";:REM GREEN
137 | 1300 IF N=1 THEN PRINT"{gray}";:REM GREY
138 | 1310 IF N=2 THEN PRINT"{yellow}";:REM YELLOW
139 | 1320 IF N=3 THEN PRINT"{light gray}";:REM LT GRY
140 | 1330 RETURN
141 | 2000 REM
142 | 2010 :
143 | 2015 X$="{space*2}"
144 | 2020 PRINT"{clear}{down*3}
145 | 2025 n=0:gosub 1290:printx$;
146 | 2030 s$="{space*3}128dle{space*3}":gosub 960
147 | 2035 n=1:gosub 1290:printx$;
148 | 2040 s$="{space*5}by{space*5}":gosub 960
149 | 2045 n=2:gosub 1290:printx$;
150 | 2050 s$="bo zimmerman":gosub 960
151 | 2055 n=1:gosub 1290:printx$;
152 | 2060 s$="{space*5}and{space*4}":gosub 960
153 | 2065 n=2:gosub 1290:printx$;
154 | 2070 s$=" steve gray ":gosub 960
155 | 2080 print"{white}{down*2}{space*14}loading... "
156 | 2100 return
157 | 2110 return
158 | 3000 dimsc(7):open8,8,2,"scoredle,l,"+chr$(50)
159 | 3010 record#8,501:input#8,id,n1$:record#8,501
160 | 3020 record#8,id
161 | 3030 input#8,n2$,sc(1),sc(2),sc(3),sc(4),sc(5),sc(6),sc(7)
162 | 3040 close8
163 | 3050 ifn1$=n2$thenreturn
164 | 3060 fori=1to7:sc(i)=0:next:return
165 | 3300 open8,8,2,"scoredle,l,"+chr$(50):ifid<=0orlen(n1$)=0then3330
166 | 3310 a$=n1$+chr$(13):fori=1to7:a$=a$+str$(sc(i))+chr$(13):next
167 | 3320 record#8,id:print#8,a$:record#8,id
168 | 3330 close8
169 | 3400 PRINT"totals out of";SC(7);"games."
170 | 3410 FORI=1TO6:PRINT"guess";I;":";SC(I):NEXTI:RETURN
171 |
--------------------------------------------------------------------------------
/wm/wm.players.r00:
--------------------------------------------------------------------------------
1 | C64File WM.PLAYERS }NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
NONE
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
--------------------------------------------------------------------------------
/bbs.setup.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Wednesday, May 17, 2017 12:20:22 AM
3 | !- Import of :
4 | !- c:\src\zelch128next\bbs.setup.prg
5 | !- Commodore 128 BASIC 7/7.1
6 | !--------------------------------------------------
7 | 30000 SYS15625:REM =============== SETUP MODULE V3.0 =============== 08/21/92 =
8 | 30010 OPEN5,2,5,CHR$(8)+CHR$(0)
9 | 30020 DIMP0$(101),U$(10),U(8),D(17,1),M(30),TT$(501),UI$(500),M$(50,6),CD(26,3),MR(50),MN$(50),MX(50),O(30),O$(30),T$(200),PL(26),PL$(26),PH$(27,4),DR$(12)
10 | 30030 DIMVT(50),VT$(50),UB$(20),UB(20),MB$(20),MB(20),SY$(20),SY(20),GB$(50),PR$(6,2),D$(17)
11 | 30100 PRINT"{home*2}";:POKE2847,160:A=SGN(PEEK(215))*5:IFATHENFAST
12 | 30200 GRAPHIC5:PRINT"{home*2}{clear}{ct n}{light gray}{reverse on} C{cm m} HNDL: ID: CRD: CALL: {142}Q{ct n} EXT {142}Q{ct n} MOR {cm g}G "
13 | 30300 PRINT"{reverse on} H{cm m} NAME: AC: U/D: BDAY: {142}Q{ct n} DEL {142}Q{ct n} LIN {cm g}R "
14 | 30400 PRINT"{reverse on} A{cm m} PH #: CO: MSG: TYPE: {142}Q{ct n} SYS {142}Q{ct n} CRM {cm g}F "
15 | 30500 PRINT"{reverse on} T{cm m} LAST: BD: EML: ABCDEFGHIJKLMNOPQRSTUVWXYZ {cm g}X "
16 | 30550 PRINT"{down*20}{reverse on}Sub:";:FORI=1TO62:PRINT" ";:NEXT:PRINT"{cm g}setup {home}";
17 | 30560 RESTORE:FORX=0TO6:FORY=0TO2:READPR$(X,Y):NEXT:NEXT
18 | 30570 DATA "Local","l-xfer 1300","prg.msg bases","Punter","p-xfer 1300","prg.u/d bases","Xmodem","x-xfer 1300","prg.voting booth","Xmodem CRC","x-xfer 1300"
19 | 30580 DATA "prg.sysop","Xmodem 1k","k-xfer 1300","prg.news","Mul-Punter","p-xfer 1300","prg.misc",,,"prg.network"
20 | 30600 POKE53280,0:POKE53281,0:GRAPHIC0:PRINT"{home*2}{clear}{ct n}{light gray}{reverse on}C{cm g}Hndl: (# ) {cm m}G"
21 | 30700 PRINT"{reverse on}H{cm g}Name: Call {cm m}R"
22 | 30800 PRINT"{reverse on}A{cm g}Ph #: On @ {cm m}F"
23 | 30900 PRINT"{reverse on}T{cm g}ACS : ABCDEFGHIJKLMNOPQRSTUVWXYZ{cm m}X"
24 | 31000 PRINT"{down*20}{reverse on}Sub:";:FORI=1TO22:PRINT" ";:NEXT:PRINT"{cm g}setup {home}";:GRAPHICA:PRINT"{home}{down*5}":WINDOW0,4,PEEK(238),23
25 | 31100 PRINT"{clear}{down}{cyan}Reading system variables...":OPEN2,U,2,"0:sys.variables,s,r"
26 | 31150 FORI=0TO17:INPUT#2,D(I,0),D(I,1):SYS8222:D$(I)=I$:NEXTI:SYS8222:O(25)=INSTR("UF",I$)-1:FORI=0TO18:INPUT#2,M(I):NEXT
27 | 31200 SYS8222:POKE2926,ASC(I$+CHR$(0)):SYS8222:O$(14)=I$:FORI=18TO22:SYS8222:O$(I)=I$:NEXTI:O$(23)="Local":FORI=24TO25:SYS8222:O$(I)=I$:NEXTI
28 | 31300 FORI=1TO26:INPUT#2,CD(I,0),CD(I,1),CD(I,2),CD(I,3):NEXT:SYS8222:N$=I$:FORI=0TO7:POKE2836+I,0:NEXTI:FORI=0TOM(15)-1:GET#2,A$:POKE2836+I,ASC(A$):NEXTI
29 | 31400 CLOSE2:POKE2852,M(4):M(19)=PEEK(56577)ANDM(4):POKE2853,M(19)
30 | 31410 OPEN2,U,2,"0:sys.text,s,r":FORI=1TO123
31 | 31420 SYS8222:IFLEFT$(I$,1)=";"THEN31420:ELSET$(I)=I$:NEXTI:CLOSE2
32 | 31500 POKE2835,1:PRINT"{clear}{down}Insert system data disks, press RETURN.":TI$="000000":DO:GETA$:LOOPUNTILA$=CHR$(13)ORVAL(TI$)>240:I=0
33 | 31600 A=0:PRINT"{clear}{down}Reading user names...":OPEN2,D(4,0),2,MID$(STR$(D(4,1)),2)+":sys.userfiles":PRINT"{down}{right*3}0 users loaded."
34 | 31700 I=I+1:RECORD#2,I:SYS8222:UI$(I)=I$:IFUI$(I)="^"THEN31700:ELSEIFUI$(I)="{pound}"THEN31800:ELSEPRINTUSING"{home}{down*3}####";I:A=A+1:GOTO31700
35 | 31800 UI$(I)="":PRINT:PRINTUSING"#### active users.";A:CLOSE2:PRINT"{down*2}Loading miscellaneous data..."
36 | 31810 OPEN2,D(4,0),2,MID$(STR$(D(4,1)),2)+":sys.misc data":RECORD#2,1:FORI=2TO6:INPUT#2,O(I):NEXTI:SYS8222:O$(12)=I$
37 | 31820 SYS8222:O$(26)=I$:RECORD#2,2:A$="":FORI=1TO10:SYS8222:A$=A$+I$:POKE4095+I,LEN(I$):NEXTI:FORI=1TOLEN(A$):A=ASC(MID$(A$,I,1)):IFA=11THENA=13
38 | 31825 POKE4105+I,A:NEXTI:CLOSE2
39 | 31850 CLOSE1:CLOSE2:OPEN1,D(1,0),15:OPEN2,D(1,0),2,MID$(STR$(D(1,1)),2)+":sys.one liners,s,r":INPUT#1,I:IFI>20THENCLOSE2:CLOSE1:GOTO31900:ELSEDIMOL$(100):I=1
40 | 31860 SYS8222:OL$(I)=I$:IFPEEK(253)=0ANDI<100THENI=I+1:GOTO31860:ELSECLOSE2:CLOSE1:OL$(0)=STR$(I)
41 | 31900 POKE2982,0:POKE2847,50:POKE2823,1:POKE2825,50:POKE2824,1:POKE2827,0:POKE2829,1:POKE2850,0:SP$="":FORI=1TO100:SP$=SP$+" ":NEXTI
42 | 31950 A=0:I$="1":DO:IF(D(A,0)<>PEEK(2985))AND(A<7ORA>8)THENOPEN2,D(A,0),15:SYS8264:IFST=0THENPRINT#2,"t-ra":SYS8222
43 | 31975 A=A+1:CLOSE2:LOOPUNTILVAL(I$)=0ORA=12:CLOSE2:W9$="":IFVAL(I$)=0THENW9$=I$:O$=MID$(W9$,15,5):I$=MID$(W9$,24,1):GOTO32150
44 | 32000 PRINT"{clear}{down}{cyan}Enter time {white}HH:MM{cyan} format: {yellow}";:POKE2847,5:POKE2895,1:POKE2831,1:GOSUB6:O$=I$:IFLEN(I$)<>5THEN32000:ELSEIFPEEK(238)=79THENPRINT"{up}"TAB(36);
45 | 32100 PRINT"{cyan}AM or PM ({white}a{cyan}/{white}p{cyan})? {yellow}";:DOUNTILI$="a"ORI$="p":GETI$:LOOP:PRINTI$
46 | 32150 I=VAL(LEFT$(O$,2)):IFI=12ANDI$="a"THENI$="p":ELSEIFI=12ANDI$="p"THENI$="a"
47 | 32200 IFI$="p"THENI=I+80
48 | 32300 POKE56587,DEC(STR$(I)):POKE56586,DEC(RIGHT$(O$,2)):POKE56585,1:POKE56584,1:I=PEEK(56584)
49 | 32310 A=M(2):I$="a":IFA>12THENA=A-12:I$="p"
50 | 32320 IFA=12ANDI$="a"THENI$="p":ELSEIFA=12ANDI$="p"THENI$="a"
51 | 32330 IFI$="p"THENA=A+80
52 | 32340 POKE2960,DEC(STR$(A))
53 | 32400 IFW9$>""THENI$=MID$(W9$,6,8):ELSEPRINT"{down}{cyan}Enter date {white}MM/DD/YY{cyan} format: {yellow}";:X=8:GOSUB5:IFLEN(I$)<>8THEN32400
54 | 32500 POKE2879,VAL(LEFT$(I$,2)):POKE2880,VAL(MID$(I$,4,2)):POKE2863,VAL(RIGHT$(I$,2))
55 | 32600 POKE2881,31:POKE2882,28:POKE2883,31:POKE2884,30:IFPEEK(2863)/4=INT(PEEK(2863)/4)THENPOKE2882,29
56 | 32700 POKE2885,31:POKE2886,30:POKE2887,31:POKE2888,31:POKE2889,30:POKE2890,31:POKE2891,30:POKE2892,31:IFPEEK(2880)>PEEK(2880+PEEK(2879))THEN32400
57 | 32800 IFW9$>""THEN32900:ELSEGOSUB400:PRINTCHR$(27)"s"CHR$(13)+"{cyan}Is {white}"+O$(3)+" {cyan}correct ({white}y{cyan}/{white}n{cyan})? {yellow}";
58 | 32850 TI$="000000":DO:GETI$:LOOPUNTILINSTR("yn",I$)ORVAL(TI$)>60:PRINTI$:IFI$="n"THENW9$="":GOTO32000
59 | 32900 R$=CHR$(13):SYS8216:O$(1)=I$:GOSUB400:O$(4)=O$(3):SY$(7)=O$(3):SY$(6)=UI$(1)
60 | 32910 FORI=0TO3:POKE2963+I,PEEK(804+I):POKE2967+I,PEEK(810+I):NEXTI
61 | 33000 O(21)=0:O(26)=0
62 | 33040 CLOSE2:CLOSE1
63 | 34000 I$="prg.logon":U=D(0,0):D=D(0,1):GOTO23
64 | 55555 U=PEEK(186):OPEN1,U,15,"s0:bbs.setup":CLOSE1:DSAVE"bbs.setup",U(U)
65 |
--------------------------------------------------------------------------------
/docs/bbs contents.txt:
--------------------------------------------------------------------------------
1 | Zelch 128 v2.0a
2 | Copyright (C)1991 Elite Software
3 |
4 | Table of Contents
5 |
6 |
7 | 1.0 Introduction to Zelch 128..........................1
8 | 1.1a Disclaimer.........................................1
9 | b Copyright information..............................1
10 | c Usage agreement (do's and don'ts)..................1
11 | 1.2 Ordering updates...................................2
12 | 1.3a Hardware compatibility.............................2
13 | b Notes on drives/logical units......................3
14 | c Ram expansion units................................3
15 | d Trouble shooting...................................3
16 | 1.4a Getting started....................................4
17 | b Drive selection....................................4
18 | c Creating the necessary files.......................5
19 | d Sample configurations..............................5
20 | e Which files do I need? Where?......................6
21 | f Definable text strings.............................7
22 | g Installing RamDos on your boot disk................7
23 |
24 | 2.0 Introduction to the editor.........................7
25 | 2.1a Sequential file editor.............................7
26 | b Command summary....................................8
27 | c Editing commands...................................9
28 | d Line formatting commands...........................9
29 | 2.2a Intro to the menu editor..........................10
30 | b Command summary...................................11
31 | c Editing commands..................................13
32 | 2.3a Offline utilities.................................13
33 | b Function key editor...............................14
34 | c Hardcopy users....................................14
35 | 2.4a Systems variables editor..........................14
36 | b Color cycle.......................................14
37 | c Drive configurations..............................15
38 | d System variables..................................15
39 | e Modem settings....................................17
40 | f Time/call limits..................................18
41 |
42 | 3.0 Miscellaneous utilities...........................19
43 | 3.1 ASCII table editor................................19
44 | 3.2 Copy program......................................20_
45 | 3.3a "prg.misc" utilities..............................20
46 | b Online menu editor................................20
47 | c Message base fixer................................22
48 | d User searcher/changer.............................23
49 |
50 | 4.0a Booting the BBS...................................23
51 | b Automatic ramloading..............................24
52 | c All that loading..................................24
53 | d Entering the time and date........................25
54 | 4.1 Windows, windows and more windows.................25
55 | 4.2a Waiting for call..................................26
56 | b Screen blanking...................................26
57 | c Screen mode switching.............................26
58 | d That groovy calculator............................26
59 | e Pull down menu....................................26
60 | 4.3a Introduction to "the LOGS"........................27
61 | b Extended call log.................................27
62 | c The errorlog......................................28
63 | 4.4a Monster Mode! (auto-maintenance)..................28
64 | b Writing a script..................................28
65 | c Commands your monster can understand..............29
66 | d The monster mode report...........................30
67 | 4.5a Logging on to the system..........................31
68 | b Communication modes...............................32
69 | c New user logon....................................32
70 | d Calls, time, and idle time limits.................33
71 |
72 | 5.0 Online sysop utilities............................34
73 | 5.1a Chat mode.........................................34
74 | b Forced logoff.....................................34
75 | 5.2a Pull down menu utilities (user dissection)........34
76 | b Profile...........................................35
77 | c Access and flags..................................35
78 | d Time/credits......................................36
79 | e Dos commands......................................36
80 | f Other/unlisted user attributes....................36
81 |
82 | 6.0 Zapterm...........................................38
83 | 6.1 Initialization....................................38
84 | 6.2a Zapterm menu......................................38
85 | b Autodialer and phone book.........................38
86 | c File commands.....................................39
87 | d Terminal commands.................................39
88 | e Other commands....................................39
89 |
90 | 7.0a Op-codes and op-code routines.....................41
91 | b Main BBS op-codes.................................43
92 | 7.1a Intro to Zelch message bases......................49
93 | b Op-code module: "prg.msg bases"...................50
94 | 7.2a Intro to Zelch U/D bases..........................52
95 | b Op-code module: "prg.u/d bases"...................52
96 | 7.3a Intro to the voting booth.........................54
97 | b Op-code module: "prg.voting booth"................54
98 | 7.4a The SysOp-oriented op-codes.......................55
99 | b Op-code module: "prg.sysop".......................55
100 | 7.5a Possibilities with newsfiles......................59
101 | b Op-code module: "prg.news"........................60
102 | 7.6 Op-code module: "prg.misc"........................60
103 | 7.7a Zelch networking system...........................60
104 | b Concepts behind networking........................61
105 | c Op-code module: "prg.network".....................62
106 |
107 | Appendices
108 |
109 | A. Message Maker/online sequential editor............63
110 | B. Definable strings ("sys.text" file)...............66
111 | C. Required system sequential files..................69
112 | D. Writing Zelch specific modules....................72
113 | E. Memory usage and organization.....................75
114 | F. Machine language routines.........................79
115 |
116 | Glossary..........................................84
117 |
118 |
--------------------------------------------------------------------------------
/bbs.copy.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Tuesday, May 16, 2017 10:27:03 PM
3 | !- Import of :
4 | !- c:\src\zelch128next\bbs.copy.prg
5 | !- Commodore 128 BASIC 7/7.1
6 | !--------------------------------------------------
7 | 10 IFPEEK(215)THENFAST
8 | 20 CLR:A$="":O$="":I$="":C$="":U=PEEK(186):D=0:U1=U+1:D1=0:DIMTT$(400):DL$="":FORI=1TO80:DL$=DL$+CHR$(20):NEXTI
9 | 30 M$(0)="Query":M$(1)="Auto-Replace":M$(2)="Complete Auto":M$(3)="Ramload"
10 | 40 IFPEEK(2960)=42THENPRINT"{clear}{down}{ct n}{cyan}Zelch Auto Ramloader v1.0":U1=PEEK(2985):CM=3:I$="*":GOTO610
11 | 70 PRINT"{clear}{down}{ct n}{yellow}Zelch 128 File Copier":PRINTCHR$(27)+"e";
12 | 80 PRINT"{pink}{cm t*21}":PRINT"{cyan}Source drive:{white}"STR$(U)","MID$(STR$(D),2):PRINT"{cyan}Destination :{white}"STR$(U1)","MID$(STR$(D1),2)
13 | 90 PRINT"{down}{cyan}Copy mode : {white}"M$(CM):PRINT"{down}{yellow}[{white}M{yellow}] {cyan}Copy mode":PRINT"{yellow}[{white}S{yellow}] {cyan}Change source drive"
14 | 100 PRINT"{yellow}[{white}D{yellow}] {cyan}Change destination drive":PRINT"{yellow}[{white}${yellow}] {cyan}Directory (source drive)":PRINT"{yellow}[{white}C{yellow}] {cyan}Copy files":PRINT"{yellow}[{white}@{yellow}] {cyan}DOS command"
15 | 108 PRINT"{yellow}[{white}Q{yellow}] {cyan}Quit"
16 | 110 PRINT"{down}{yellow}[{white}M{yellow},{white}S{yellow},{white}D{yellow},{white}${yellow},{white}C{yellow},{white}@{yellow},{white}Q{yellow}] Command: {white}";
17 | 120 GETKEYA$:A$=CHR$(ASC(A$)OR128):IFA$=CHR$(164)THENA$="$":ELSEIFA$=CHR$(192)THENA$="@"
18 | 130 I=INSTR("MSD$CQ@",A$):IFITHENPRINTA$:ONIGOTO200,300,400,500,600,150,160
19 | 140 GOTO120
20 | 150 END
21 | 160 PRINT"{down}{cyan}Work on {white}Source{cyan} or"+CHR$(13)+"{white}Destination{cyan} drive: {white}S{left}";:X=U
22 | 170 GETKEYA$:IFA$<>CHR$(13)ANDA$<>"d"ANDA$<>"D"THEN170:ELSEIFA$<>CHR$(13)THENPRINTCHR$(ASC(A$)OR128):X=U1:ELSEPRINT
23 | 180 PRINT:PRINT"{cyan}>";:GOSUB420:IFI$<>""THENOPEN1,X,15,I$:ELSE70
24 | 185 INPUT#1,E,E$,E1,E2:PRINT"{down}{white}";E;"{cyan},{white}";E$;"{cyan},{white}";E1;"{cyan},{white}";E2;:CLOSE1:GETKEYA$:PRINT:GOTO70
25 | 199 END
26 | 200 PRINT"{down}{yellow}[{white}0{yellow}] {cyan}Prompt filenames and replaces":PRINT"{yellow}[{white}1{yellow}] {cyan}Prompt for names, but auto-replace"
27 | 210 PRINT"{yellow}[{white}2{yellow}] {cyan}Complete auto, no prompts":PRINT"{yellow}[{white}3{yellow}] {cyan}Ramload marked files"
28 | 220 PRINT"{down}{yellow}[{white}0{yellow},{white}1{yellow},{white}2{yellow},{white}3{yellow}] Copy mode: {white}";
29 | 230 GETKEYA$:A$=CHR$(ASC(A$)AND127):I=INSTR("0123",A$):IFITHENPRINTA$:CM=I-1:GOTO70:ELSE230
30 | 300 PRINT"{down}{cyan}Source device: {white}";:GOSUB450:IFI<8ORI>30THEN70:ELSEU=I
31 | 310 PRINT"{cyan} drive/lu: {white}";:GOSUB450:IFI<0ORI>255THEN70:ELSED=I:IFU<>U1ORD<>D1THEN70:ELSEPRINT"{down}No single drive copies!"
32 | 400 PRINT"{down}{cyan}Destination device: {white}";:GOSUB450:IFI<8ORI>30THEN70:ELSEU1=I
33 | 410 PRINT"{cyan} drive/lu: {white}";:GOSUB450:IFI<0ORI>255THEN70:ELSED1=I:IFU1=UANDD1=DTHENPRINT"{down}No single drive copies!":GOTO300:ELSE70
34 | 420 I$=""
35 | 425 GETKEYA$:IFA$=CHR$(13)THENPRINT:RETURN:ELSEIFA$<>CHR$(20)THEN435
36 | 430 IFLEN(I$)=0THEN425:ELSEI$=LEFT$(I$,LEN(I$)-1):PRINTA$;:GOTO425
37 | 435 IFLEN(I$)<(37+(PEEK(215)*40))THENI$=I$+A$:PRINTA$;:GOTO425:ELSEPRINT"{ct g}";:GOTO425
38 | 450 I$=""
39 | 455 GETKEYA$:IFINSTR("0123456789"+CHR$(20)+CHR$(13),A$)=0THEN455
40 | 460 IFA$=CHR$(13)THENPRINT:I=VAL(I$):RETURN
41 | 465 IFA$<>CHR$(20)THEN475
42 | 470 IFLEN(I$)=0THEN455:ELSEI$=LEFT$(I$,LEN(I$)-1):PRINTA$;:GOTO455
43 | 475 IFLEN(I$)<2THENI$=I$+A$:PRINTA$;:GOTO455:ELSEPRINT"{ct g}";:GOTO455
44 | 500 I$="":POKE255,0:INPUT"{down}{cyan}Filemask (*)";I$:IFI$=""THENI$="*"
45 | 510 POKE2829,1:PRINT"{down}Directory"STR$(U)","MID$(STR$(D),2)"{down}"
46 | 520 POKE253,0:OPEN2,U,0,"$"+MID$(STR$(D),2)+":"+I$:SYS8219:CLOSE2
47 | 530 PRINT"{down}{cyan}Press any key to continue:";:GETKEYA$:PRINT:GOTO70
48 | 600 I$="":POKE255,0:INPUT"{down}{cyan}Filemask (*)";I$:IFI$=""THENI$="*"
49 | 605 GOSUB610:GOTO70
50 | 610 X=0:Y=0:OPEN2,U,0,"$"+MID$(STR$(D),2)+":"+I$:GET#2,A$:GET#2,A$:SYS8258
51 | 620 IFCM>1THENPRINT"{down}Scanning directory...";:ELSEPRINT"{down}{yellow}Copy: [{white}Yes{yellow},{white}No{yellow},{white}Done{yellow},{white}Abort{yellow}]{down}"
52 | 630 POKE255,0:POKE253,0:SYS8258:IFPEEK(254)THEN800
53 | 640 IFCM>1THEN700
54 | 650 PRINT"{yellow}"I$"{pink} ("MID$(STR$(PEEK(2975)+256*PEEK(2976)),2)") {white}:";
55 | 660 GETKEYA$:A$=CHR$(ASC(A$)OR128):I=INSTR("YNDA",A$):IFI=0THEN660
56 | 670 IFI=1THENPRINT"Yes":X=X+1:TT$(X)=I$:GOTO630
57 | 680 IFI=2THENPRINT"No.":GOTO630
58 | 690 IFI=3THENPRINT"Done":GOTO800
59 | 695 PRINT"Abort!":CLOSE2:RETURN
60 | 700 IFCM=3ANDLEFT$(I$,3)="---"THENY=ABS(Y-1):GOTO630
61 | 710 IFCM=3ANDY=0THEN630
62 | 720 X=X+1:TT$(X)=I$:GOTO630
63 | 800 CLOSE2:CLOSE3:IFX=0OR(U=U1ANDD=D1)THENRETURN
64 | 810 OPEN1,U,15:OPEN15,U1,15:PRINTCHR$(13)"{down}{cyan}Copying files...":PRINT
65 | 820 FORY=1TOX:IFRIGHT$(TT$(Y),2)=",r"THEN900
66 | 830 GOSUB999
67 | 840 OPEN2,U,2,MID$(STR$(D),2)+":"+TT$(Y)+",r":INPUT#1,E:IFE>0THENCLOSE2:PRINT"Source Error!":GOTO990
68 | 850 OPEN3,U1,3,MID$(STR$(D1),2)+":"+TT$(Y)+",w"
69 | 860 INPUT#15,E,E$:IFE=0THEN865:ELSECLOSE3:CLOSE2:IFE=63THEN870:ELSEPRINT" Destination Error: {white}"+E$:GOTO990
70 | 865 SYS8255:CLOSE2:CLOSE3:PRINT:PRINT"{up}Finished":GOTO990
71 | 870 IFCM>0THEN890:ELSEPRINT" Replace file (y/n)? {white}";
72 | 880 GETKEYA$:A$=CHR$(ASC(A$)OR128):I=INSTR("YNQ",A$):IFI=0THEN880:ELSEPRINTLEFT$(DL$,20);:IFI=2THENPRINT:PRINT"{up}{yellow}Skipped":GOTO990
73 | 890 PRINTCHR$(13)"{up}{yellow}Scratch "CHR$(13)"{up}";:PRINT#15,"s"+MID$(STR$(D1),2)+":"+TT$(Y):PRINT#15,"i":GOTO830
74 | 900 PRINT"{yellow}Scanning: {white}"TT$(Y)"{yellow}";:OPEN2,U,2,"$"+MID$(STR$(D),2):O$=LEFT$(TT$(Y),LEN(TT$(Y))-2):SYS8261:RL=PEEK(2977):CLOSE2:IFRL=0THENE=0:GOTO860
75 | 910 OPEN2,U,2,MID$(STR$(D),2)+":"+O$:H=65535:L=1:R=INT(H/2):FORI=0TO30
76 | 920 GOSUB1040:IFETHENH=R:R=R-((H-L)/2):GOTO930:ELSEL=R:R=R+((H-L)/2)
77 | 930 NEXTI:PRINTCHR$(13)"{up}{yellow}Creating"CHR$(13)"{up}";:OPEN3,U1,3,MID$(STR$(D1),2)+":"+O$+",l,"+CHR$(RL):RECORD#3,R:RECORD#3,R:PRINT#3,"burp";:TT$(Y)=O$:GOSUB999
78 | 940 RECORD#2,1:RECORD#3,1:FORI=1TOR:SYS8255:NEXTI:CLOSE2:CLOSE3:PRINTCHR$(13)"{up}Finished"
79 | 990 NEXTY:CLOSE1:CLOSE2:CLOSE3:CLOSE15:IFPEEK(2960)=42THEN2000
80 | 995 PRINT"{down}{cyan}Press any key to continue:";:GETKEYA$:PRINT:RETURN
81 | 999 PRINT"{yellow}Writing : {white}"TT$(Y)CHR$(27)"q{yellow}";:RETURN
82 | 1040 R=INT(R):RECORD#2,R:INPUT#1,E:RETURN
83 | 2000 PRINT"{clear}{down*2}{black}new":PRINT"{down*2}run"CHR$(34)"zelch"CHR$(34)",u("U"){home}";
84 | 2010 POKE842,13:POKE843,13:POKE208,2:END
85 | 55555 A=PEEK(186):OPEN1,A,15,"s0:bbs.copy":CLOSE1:DSAVE"bbs.copy",U(A):STOP
86 |
--------------------------------------------------------------------------------
/extras/mdr.maker.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Wednesday, August 18, 2021 12:27:14 AM
3 | !- Import of :
4 | !- c:\tmp\newproject\mdr.maker.prg
5 | !- Commodore 128 BASIC 7/7.1
6 | !--------------------------------------------------
7 | 5 I=RND(-TI)
8 | 10 GOTO100
9 | 20 A$="{down*2}Create "+CHR$(34)+F$+CHR$(34)+" (y/n)? ":PRINTCHR$(27)"s";
10 | 25 PRINTA$;:GETKEYYN$:PRINTYN$:YN=INSTR("yn",YN$):IFYN=0THEN20:ELSERETURN
11 | 54 GOTO100
12 | 55 U=PEEK(186):D=0:F$="mdr.maker":GOSUB56:SAVE"mdr.maker",U:STOP
13 | 56 OPEN1,U,15,"s"+MID$(STR$(D),2)+":"+F$:CLOSE1:RETURN
14 | 57 OPEN2,U,2,MID$(STR$(D),2)+":"+F$+",l,"+CHR$(X):RECORD#2,Y+1:PRINT#2,"Burp!":RETURN
15 | 100 RESTORE
16 | 110 PRINT"{clear}{down*2}{yellow}Murder Motel file creation program."
17 | 120 PRINT"Written by Bo Zimmerman for Elite Software"
18 | 130 PRINT"{down*2}--Hotel structure and data by Sean D. Wagle"
19 | 140 INPUT"{down*4}Save files on what drive{space*3}8,0{left*5}";U,D
20 | 200 F$="mdr.rooms":GOSUB20:ONYNGOTO210,300
21 | 210 GOSUB56:X=50:Y=99:GOSUB57
22 | 220 FORI=1TO99:A$="":FORX=0TO6:READB$:A$=A$+B$+CHR$(13):NEXTX:RECORD#2,I:PRINT#2,A$:NEXTI:CLOSE2
23 | 300 F$="mdr.stuff":GOSUB20:ONYNGOTO310,400
24 | 310 GOSUB56:X=5:Y=200:GOSUB57
25 | 320 FORI=1TO200:RECORD#2,I:PRINT#2,INT(RND(TI)*99)+1:NEXTI:CLOSE2
26 | 400 F$="mdr.losers":GOSUB20:ONYNGOTO410,500
27 | 410 GOSUB56:X=100:Y=31:GOSUB57
28 | 420 FORI=1TO31:RECORD#2,I:R$=CHR$(13):PRINT#2,"0"+R$+"empty"+R$+"0"+R$+"0"+R$+"0"+R$+"910800"+R$+"0"+R$+"0":NEXTI:CLOSE2
29 | 500 F$="mdr.squeals":GOSUB20:ONYNGOTO510,600
30 | 510 GOSUB56:X=100:Y=11:GOSUB57
31 | 520 FORI=1TO10:RECORD#2,I:PRINT#2,"empty":NEXTI:CLOSE2
32 | 600 PRINT"{down*2}Yer all done!":END
33 | 61102 DATA "falling! Yiiiii!!!!",0,0,0,0,0,41
34 | 61105 DATA IN THE UP ONLY ELEVATOR,15,0,0,23,3,0
35 | 61108 DATA IN UP ONLY ELEVATOR (F2),0,0,0,52,4,0
36 | 61111 DATA IN UP ONLY ELEVATOR (F3),0,0,0,81,0,0
37 | 61114 DATA IN THE NORMAL ELEVATOR (F1),0,0,10,0,6,0
38 | 61117 DATA IN THE NORMAL ELEVATOR (F2),0,60,0,0,7,5
39 | 61120 DATA IN THE NORMAL ELEVATOR (F3),0,78,0,0,0,6
40 | 61123 DATA SLIDING DOWN THE PIPE,0,0,0,0,0,50
41 | 61126 DATA "on the roof of Murder Motel",0,0,0,0,0,83
42 | 61129 DATA IN THE MAIN LOBBY,5,11,29,33,0,0
43 | 61132 DATA IN THE SOUTH MAIN HALL,49,12,27,10,0,0
44 | 61135 DATA IN THE CENTRAL MAIN HALL,51,13,26,11,0,0
45 | 61138 DATA IN THE NORTH MAIN HALL,20,14,24,12,0,0
46 | 61141 DATA IN THE NORTH WING,21,15,23,13,0,0
47 | 61144 DATA AT THE NORTH WING'S END,0,0,2,14,0,0
48 | 61147 DATA WITHIN THE KITCHEN,17,20,0,51,0,0
49 | 61150 DATA INSIDE THE MEAT FREEZER,0,19,16,18,0,0
50 | 61153 DATA "at the Bootleg Bar",0,17,51,0,0,0
51 | 61156 DATA IN THE PANTRY,0,0,20,17,0,0
52 | 61159 DATA IN THE EAST WING,19,0,13,16,0,0
53 | 61162 DATA IN THE JANITOR'S CLOSET,0,0,14,0,0,0
54 | 61165 DATA IN THE OFFICE SUPPLY ROOM,0,29,0,0,0,0
55 | 61168 DATA STANDING IN THE LIBRARY,14,2,0,24,0,0
56 | 61171 DATA IN THE WEST HALLWAY,13,23,0,25,0,0
57 | 61174 DATA IN THE WOMEN'S RESTROOM,0,24,0,0,0,0
58 | 61177 DATA IN THE MEN'S RESTROOM,12,0,0,27,0,0
59 | 61180 DATA "in the TV room (cartoons on)",11,26,0,0,0,0
60 | 61183 DATA SNOOPING IN THE FILE ROOM,0,0,0,30,0,0
61 | 61186 DATA IN THE SECRETARIES' OFFICE,10,0,30,22,0,0
62 | 61189 DATA IN THE MANAGER'S OFFICE,29,28,0,31,0,0
63 | 61192 DATA OUTSIDE IN THE COURTYARD,32,30,0,0,0,0
64 | 61195 DATA UNDER THE FRONT PORCH,0,0,31,0,0,0
65 | 61198 DATA ON THE FRONT PORCH,34,10,0,39,0,0
66 | 61201 DATA IN THE PARKING LOT,37,35,33,0,0,0
67 | 61204 DATA "by the NO VACANCY sign",0,0,36,34,0,0
68 | 61207 DATA IN A PHONE BOOTH,35,0,0,0,0,0
69 | 61210 DATA "facing Interstate 80",0,0,34,0,0,38
70 | 61213 DATA "sitting in a HUGE pothole",0,0,0,0,37,0
71 | 61216 DATA WALKING THROUGH THE GARDEN,0,33,0,40,0,0
72 | 61219 DATA IN A SHRUBBERY MAZE,41,39,47,46,0,0
73 | 61222 DATA "under a huge Larch",0,0,40,45,42,0
74 | 61225 DATA "climbing the Larch's trunk",0,0,0,0,43,0
75 | 61228 DATA "in the Larch's foliage",0,0,0,0,44,0
76 | 61231 DATA "at the top of the Larch",0,0,0,0,0,1
77 | 61234 DATA IN THE GARDNER'S SHED,0,41,46,0,0,0
78 | 61237 DATA BY A RIVERBANK,45,40,0,0,0,0
79 | 61240 DATA AT A KENNELING AREA,40,0,48,0,0,0
80 | 61243 DATA INSIDE A DOG CAGE,47,0,0,0,0,0
81 | 61246 DATA HIDING IN A STORAGE CLOSET,0,0,11,0,0,0
82 | 61249 DATA IN A TRASH COMPACTOR,0,51,0,0,0,0
83 | 61252 DATA SEATED IN THE CAFETERIA,18,16,12,50,0,0
84 | 61255 DATA "on 2nd floor/blue hall",53,3,68,54,0,0
85 | 61258 DATA IN THE OVAL OFFICE,0,0,52,0,0,0
86 | 61261 DATA ON 2ND FLOOR/SMALL HALL,55,52,66,61,0,0
87 | 61264 DATA "in Col. Khadafy's playroom",56,0,54,0,0,0
88 | 61267 DATA "in Tammy Faye's powder room",0,0,55,57,0,0
89 | 61270 DATA "in the Kudzu room",0,56,0,58,0,0
90 | 61273 DATA IN A TACKY TOURIST TRAP,0,57,0,59,0,0
91 | 61276 DATA "sweating in the boiler room",0,58,60,0,0,0
92 | 61279 DATA "on 2nd floor/yellow hall",59,61,62,6,0,0
93 | 61282 DATA "on 2nd floor/Fawn Hall",0,54,0,60,0,0
94 | 61285 DATA "in John Hinkley's bedroom",60,0,64,99,0,0
95 | 61288 DATA IN THE CANNIBAL'S CORNER,99,64,0,0,0,0
96 | 61291 DATA "in GearJammer's room",62,65,0,63,0,0
97 | 61294 DATA IN THE LOONY LAUNDRY,0,66,0,64,0,0
98 | 61297 DATA "on 2nd floor/brown hall",54,68,67,65,0,0
99 | 61300 DATA IN THE PIGEON COOP,66,0,0,0,0,0
100 | 61303 DATA ON 2ND FLOOR/POOL HALL,52,69,0,66,0,0
101 | 61306 DATA IN A SHOOTING GALLERY,0,0,0,68,0,0
102 | 61309 DATA IN THE AVOCADO ROOM,71,81,0,75,0,0
103 | 61312 DATA "in the banana room",72,82,70,0,0,0
104 | 61315 DATA IN CABBAGE CORNER,0,0,71,73,0,0
105 | 61318 DATA IN THE RADISH ROOM,0,72,74,78,0,0
106 | 61321 DATA IN THE SQUASH SUITE,73,0,0,0,0,0
107 | 61324 DATA IN THE BOOGER DINER,0,70,0,76,0,0
108 | 61327 DATA ON A SPIRAL STAIRCASE,0,75,0,77,83,0
109 | 61330 DATA IN TORTURE CHAMBER #1,79,76,0,0,0,0
110 | 61333 DATA "at the altar of Little John",0,73,79,7,0,0
111 | 61336 DATA LOSING ALL SENSE OF SANITY,78,80,77,0,0,0
112 | 61339 DATA IN THE CRUD CAFE,0,0,0,79,0,0
113 | 61342 DATA IN THE VINEGAR BEAN ROOM,82,4,0,70,0,0
114 | 61345 DATA IN THE HILL OF BEANS ROOM,0,0,81,71,0,0
115 | 61348 DATA IN THE NUDE ART GALLERY,84,96,0,0,9,76
116 | 61351 DATA "in a little rubber room",85,0,83,98,0,0
117 | 61354 DATA "in a roomfull of MAGIC FOAM",0,86,84,0,0,0
118 | 61357 DATA "in the smushed Smurf room",87,0,89,85,0,0
119 | 61360 DATA ON THE 4TH FLOOR BALCONY,0,88,86,0,0,0
120 | 61363 DATA ON A SLIPPERY DRAINAGE PIPE,0,0,0,87,0,8
121 | 61366 DATA IN A CHEMICAL DUMP,86,90,91,0,0,0
122 | 61369 DATA "in a SPAM cannery",0,0,94,89,0,0
123 | 61372 DATA "in the spider's den",89,0,0,92,0,0
124 | 61375 DATA "deeper in the spider's den",93,91,0,0,0,0
125 | 61378 DATA "in the sanctuary",0,0,92,0,0,0
126 | 61381 DATA IN A ROOM WITH A FIREPLACE,90,0,97,95,0,0
127 | 61384 DATA IN THE HEXAGON'S CIRCLE,0,94,0,96,0,0
128 | 61387 DATA IN THE ANGULAR PRISM,0,95,0,83,0,0
129 | 61390 DATA "in the fireplace",94,0,0,0,0,0
130 | 61393 DATA HANGING OUT THE WINDOW,0,84,0,0,0,99
131 | 61396 DATA ON THE ROOF OF THE PORCH,0,62,63,0,0,0
132 |
--------------------------------------------------------------------------------
/extras/gam.128dlml.asm:
--------------------------------------------------------------------------------
1 | ; Machine language for 128dle
2 |
3 | * = $8C00
4 | ;.D GAM.128DLML.BIN
5 | BLOCKS = $9348
6 | INDEX = $8E00
7 | PTR = $FE
8 | EOALL = $F86E
9 | JMP GETWORD
10 | JMP CHKWORD
11 | ; THE INPUT BUFFER
12 | INPT
13 | byte 0,0,0,0,0
14 | BLKST
15 | byte 0,0
16 | BLKEN
17 | byte 0,0
18 | INREF
19 | byte 0,0,0,0,0
20 | FLCTR
21 | byte 0,0
22 | ; *** INCREASE PTR BY 2
23 | INCPTR2
24 | INC PTR
25 | BNE INCP2
26 | INC PTR+1
27 | INCP2
28 | INC PTR
29 | BNE INCP3
30 | INC PTR+1
31 | INCP3
32 | RTS
33 | ; *** INCREASE THE FIRST LETTER TRACKER
34 | INCFL
35 | INC FLCTR+1; CLC = ALL GOOD, SEC = ALL DONE
36 | LDA FLCTR+1
37 | CMP #$5B
38 | BCC INCFL2
39 | LDA #$41
40 | STA FLCTR+1
41 | INC FLCTR
42 | CLC
43 | INCFL2
44 | RTS
45 | ; *** GET A WORD FROM THE LIST, GIVEN AN INDEX IN INPT
46 | GETWORD
47 | ASL INPT
48 | ROL INPT+1
49 | LDA INPT
50 | CLC
51 | ADC #BLOCKS
55 | STA INREF+1
56 | ; OK, NOW FIND THE HEADER LETTERS
57 | LDA #INDEX
60 | STA PTR+1
61 | LDA #$41; STORE 'A' EVERYWHERE
62 | STA FLCTR
63 | STA FLCTR+1
64 | SEI
65 | ;STA ONRAM
66 | ; START THE SCAN
67 | GW1
68 | LDY #1
69 | LDA (PTR),Y
70 | BEQ GW2
71 | LDA FLCTR
72 | STA INPT
73 | LDA FLCTR+1
74 | STA INPT+1
75 | GW2
76 | JSR INCFL
77 | BCS GW3; IF CS, THEN JUST FAIL
78 | JSR INCPTR2
79 | ; OK, NOW COMPARE TABLE PTR TO INREF
80 | LDY #1
81 | LDA (PTR),Y
82 | BEQ GW1
83 | CMP INREF+1
84 | BCC GW1; LESS THAN, SO TRY AGAIN.
85 | BNE GW3; GREATER THAN, SO MOVE ONTO WIN!
86 | DEY
87 | LDA (PTR),Y
88 | CMP INREF
89 | BCC GW1; LESS THAN, SO TRY AGAIN
90 | BNE GW3; GREATER THAN, SO MOVE ONTO WIN!
91 | ; EQUAL, SO DECLARE THIS THE WINNER
92 | LDA FLCTR
93 | STA INPT
94 | LDA FLCTR+1
95 | STA INPT+1
96 | ; WE NOW KNOW THE FIRST TWO LETTERS
97 | ; WE NOW HAVE TO FIND THE LAST 3 LETTERS
98 | GW3
99 | LDA INREF
100 | STA PTR
101 | LDA INREF+1
102 | STA PTR+1
103 | LDY #0; IS COMMONPRINT
104 | LDA (PTR),Y
105 | AND #$80; YES! CONT...
106 | BNE GW35
107 | STA INPT; NO, FAIL
108 | ;STA ONROM
109 | CLI
110 | RTS
111 | GW35
112 | LDY #1
113 | LDA (PTR),Y
114 | AND #$1F
115 | CLC
116 | ADC #$41
117 | STA INPT+4; WE HAVE THE LAST LETTER
118 | LDA (PTR),Y
119 | STA INPT+3
120 | DEY; GRAB FIRST TWO BITS
121 | LDA (PTR),Y
122 | LSR
123 | ROR INPT+3
124 | LSR
125 | ROR INPT+3
126 | LSR INPT+3; NOW SHIFT AWAY THE OLD NUMBER
127 | LSR INPT+3
128 | LSR INPT+3; WE NOW HAVE THE 4TH LETTER
129 | LDA INPT+3
130 | CLC
131 | ADC #$41
132 | STA INPT+3
133 | LDA (PTR),Y
134 | AND #$7F; CLEAR COMMON BIT
135 | LSR
136 | LSR
137 | CLC
138 | ADC #$41
139 | STA INPT+2; WE NOW HAVE THE 3RD LETTER
140 | ;STA ONROM
141 | CLI
142 | RTS
143 | ; CHECK THE WORD IN INPT AGAINST THE LIST
144 | CHKWORD
145 | LDA INPT+2
146 | ; FIRST CONVERT LAST 3 LETTERS TO 2-BYTE CODE
147 | SEC
148 | SBC #$41
149 | STA INREF
150 | LDA INPT+3
151 | SEC
152 | SBC #$41
153 | STA INREF+1
154 | LDA INPT+4
155 | SEC
156 | SBC #$41
157 | STA INREF+2
158 | ; OK, ALL 3 BYTES IN INREF->INREF2 AS OFFSETS 0-25
159 | LDA INREF+1
160 | ASL
161 | ASL
162 | ASL
163 | ASL
164 | ASL
165 | CLC
166 | ADC INREF+2
167 | STA INREF+2
168 | ; OK INREF 2 HAS FIRST FULL CODED BYTES
169 | LDA INREF
170 | ASL
171 | ASL
172 | STA INREF; FIRST LETTER NOW POSITIONED
173 | LDA INREF+1
174 | LSR
175 | LSR
176 | LSR
177 | CLC
178 | ADC INREF
179 | STA INREF+1
180 | ; OK, NOW INREF+1 AND INREF+2 HAVE THE BYTES!
181 | SEI
182 | ;STA ONRAM
183 | LDA #INDEX
186 | STA PTR+1
187 | LDA #$41
188 | STA FLCTR
189 | STA FLCTR+1
190 | CLC
191 | BCC CHK1
192 | ; START THE SEARCH!
193 | CHK0
194 | JSR INCPTR2; INCREASE THE HEADER POINTER
195 | JSR INCFL
196 | BCC CHK1
197 | LDA #0; RECORD A FAIL
198 | STA INPT
199 | ;STA ONROM
200 | CLI
201 | RTS
202 | CHK1
203 | LDA FLCTR
204 | CMP INPT
205 | BNE CHK0
206 | LDA FLCTR+1
207 | CMP INPT+1
208 | BNE CHK0
209 | ; WE NOW HAVE PTR TO THE RIGHT 3 LETTER TABLE, FIRST 2 LETTERS MATCHED
210 | LDY #1
211 | LDA (PTR),Y
212 | STA BLKST+1
213 | BNE CHK2
214 | STA INPT; FOUND LETTERS, BUT NO WORDS, SO FAIL
215 | ;STA ONROM
216 | CLI
217 | RTS
218 | CHK2
219 | DEY; SET UP THE TABLE PERUSAL
220 | LDA (PTR),Y
221 | STA BLKST
222 | ; WE NEED BLKEND TO BE RIGHT, BUT ITS TRICKY
223 | CHK2A
224 | JSR INCPTR2
225 | JSR INCFL
226 | BCC CHK2B
227 | LDA #EOALL
230 | STA BLKEN+1
231 | SEC
232 | BCS CHK2C
233 | CHK2B
234 | LDY #1
235 | LDA (PTR),Y; IF ITS BLANK, ITS NO GOOD
236 | BEQ CHK2A
237 | STA BLKEN+1
238 | DEY
239 | LDA (PTR),Y
240 | STA BLKEN
241 | CHK2C
242 | LDA BLKST; ALMOST READY TO START
243 | STA PTR
244 | LDA BLKST+1
245 | STA PTR+1
246 | SEC
247 | BCS CHK5
248 | ; BEGIN WORD BLOCK PERUSAL
249 | CHK3
250 | JSR INCPTR2
251 | LDA PTR+1
252 | CMP BLKEN+1
253 | BCC CHK5
254 | LDA PTR
255 | CMP BLKEN
256 | BCC CHK5
257 | CHK4
258 | LDA #0; REACHED END, AND NOT FOUND, SO...
259 | STA INPT
260 | ;STA ONROM
261 | CLI
262 | RTS
263 | CHK5
264 | LDY #0; COMPARE THE BY
265 | LDA (PTR),Y
266 | AND #$7F; CLEAR COMMON BIT
267 | CMP INREF+1
268 | BNE CHK3; FIRST BYTE COMPARE
269 | INY
270 | LDA (PTR),Y
271 | CMP INREF+2
272 | BNE CHK3; 2ND BYTE COMPARE
273 | LDA #$FF
274 | STA INPT; WINNER FOUND!
275 | ;STA ONROM
276 | CLI
277 | RTS
278 |
--------------------------------------------------------------------------------
/prg.new user.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Wednesday, May 17, 2017 12:21:18 AM
3 | !- Import of :
4 | !- c:\src\zelch128next\prg.new user.prg
5 | !- Unknown Machine
6 | !--------------------------------------------------
7 | 30000 SYS15625:REM ============= NEW USER MODULE V2.5 ============= 07/18/92 =
8 | 30010 IFO(1)=1THENO(1)=0:GOTO32750:ELSEO$="New User Login":GOSUB250:F$="sys.new msg":U=D(1,0):D=D(1,1):GOSUB25:GOSUB400:O$(17)=O$(2):POKE2825,10:POKE2824,1
9 | 30100 U$(8)=RIGHT$(STR$(M(1)),1)+"0"+RIGHT$(STR$(M(12)),1)+"001008O":U(4)=0:U(5)=0:U(6)=1:U(7)=25
10 | 30200 X=M(14)+1:DO:X=X-1:LOOPUNTILUI$(X)=""ORUI$(X)="^"ORX=1:IFX=1THENO$=T$(43):GOSUB4:GOTO600
11 | 30300 GOSUB30400:GOSUB30700:GOSUB30900:GOSUB31100:GOSUB31300:GOSUB34400:GOSUB34200:GOSUB34300
12 | 30305 IFINSTR("CD",MID$(U$(8),10,1))THENO$(23)=PR$(1,0):O(19)=1:ELSEO$(23)=PR$(2,0):O(19)=2
13 | 30310 BLOAD(PR$(O(19),1)),U(D(0,0)),D(D(0,1))
14 | 30399 GOTO31500
15 | 30400 O$=T$(44):GOSUB4:X=16:GOSUB5:IFLEN(I$)<2ORI$="NEW"ORI$="New"ORVAL(I$)>0THEN30400:ELSEU$(1)=I$
16 | 30450 IFRIGHT$(U$(1),1)=" "THENU$(1)=LEFT$(U$(1),LEN(U$(1))-1):GOTO30450
17 | 30500 O$=T$(45):GOSUB4:I=1:DOUNTILI$=UI$(I)ORUI$(I)="":I=I+1:LOOP:IFUI$(I)=I$THENO$=T$(46):GOSUB4:GOTO30400
18 | 30600 O$=R$:GOSUB9:RETURN
19 | 30700 O$=T$(47):GOSUB4:X=16:GOSUB5:IFI$=""THEN30700:ELSEU$(3)=I$
20 | 30800 RETURN
21 | 30900 O$=T$(48):GOSUB4:W7$="(XXX)/XXX-XXXX":GOSUB40000:U$(4)=I$:RETURN
22 | 31100 O$=T$(49):GOSUB4:X=10:GOSUB5:IFI$=""THEN31100
23 | 31200 U$(2)=I$:RETURN
24 | 31300 O$=T$(50):GOSUB4:C$="YN":GOSUB28:IFI=2THENI=0
25 | 31400 MID$(U$(8),2,1)=RIGHT$(STR$(I),1):POKE2915,I:RETURN
26 | 31500 U$(5)="A":U$(6)="199001010530":U$(9)="00000000000000000000000000":U(1)=M(10):U(2)=M(11):U(3)=BA:U$(10)="11111111111111111111111111"
27 | 31600 O$="{clear}{ct k}{black}A) Handle : {white}"+U$(1)+"{ct k}{black}B) Real name : {white}"+U$(3)+"{ct k}{black}C) Phone number:{white} "+U$(4):GOSUB4
28 | 31700 O$="{black}D) Password : {white}"+U$(2)+"{ct k}{black}E) Columns :{white}"+STR$(40+(40*VAL(MID$(U$(8),2,1)))):GOSUB4
29 | 31720 I=VAL(MID$(U$(8),5,1)):O$="{black}F) Auto-Pause : {white}o"+MID$("ffn ",I*2+1,2):GOSUB4
30 | 31730 X=INSTR("ACDEIMTPO",MID$(U$(8),10,1))-1:IFX<0THENX=8
31 | 31740 O$="{black}G) Computer : {white}"+MID$("Amiga C=64 C=128 Apple IBM/Clone Macintosh Atari CP/M Other ",(X*10)+1,10):GOSUB4
32 | 31750 O$="{black}H) Birthdate : {white}"+U$(7)+"{ct k}{black}I){right}Lines/Screen:{white}"+STR$(U(7)):GOSUB4
33 | 31790 O$=T$(95):GOSUB4:POKE2959,I
34 | 31800 C$="ABCDEFGHI"+R$:GOSUB28:IFI=10THEN31900:ELSEONIGOSUB30400,30700,30900,31100,31300,33900,34200,34300,34400:GOTO31600
35 | 31900 O$=T$(51):GOSUB4:I=0:DO:I=I+1:LOOPUNTILUI$(I)="^"ORUI$(I)="":W0=I:FORI=0TO50:TT$(I)="":NEXTI
36 | 32000 ID=W0:O$=T$(52):GOSUB4:C$=R$:GOSUB28:ID=0
37 | 32100 W2=0:W1=W2:OPEN1,D(1,0),15:OPEN2,D(1,0),2,MID$(STR$(D(1,1)),2)+":sys.new app,s,r":INPUT#1,I:IFI>19THENCLOSE2:CLOSE1:GOTO32600
38 | 32200 W2=W2+1:SYS8222:W1=PEEK(253):O$=I$+" {ct c}":GOSUB4:X=40:GOSUB5:IFI$=""THENI$="(no answer)"
39 | 32300 A=INSTR(O$,"{ct c}"):IFATHENMID$(O$,A,1)="{reverse off}":GOTO32300
40 | 32400 TT$(W2)=O$+I$:IFW1=0THEN32200
41 | 32500 CLOSE2:CLOSE1:O$=T$(53):GOSUB4:C$="YN":GOSUB28:IFI=2THEN32100:ELSEO$=T$(54):GOSUB4:OPEN1,D(1,0),15
42 | 32600 OPEN2,D(1,0),2,MID$(STR$(D(1,1)),2)+":sys.new user,s,w":INPUT#1,I:IFI>19THENCLOSE2:OPEN2,D(1,0),2,MID$(STR$(D(1,1)),2)+":sys.new user,s,a":PRINT#2,"{ct a}"
43 | 32700 ID=W0:UI$(ID)=U$(1):GOSUB400:PRINT#2,STR$(ID)+R$+O$(3)+R$+U$(3)+R$+U$(4)+R$+U$(2)+R$+U$(7):IFW2THENFORI=1TOW2:PRINT#2,TT$(I):NEXTI:ELSEPRINT#2,R$R$
44 | 32710 CLOSE2:CLOSE1:O(6)=O(6)+1:GOTO2000
45 | 32750 GOSUB990:I=INSTR("ABCDEFGHI",CHR$(ASC(SY$)OR128)):IFITHEN32760:ELSEI=VAL(SY$):IFI=0THEN32800
46 | 32760 ONIGOSUB30400,31100,31300,33100,33900,34000,34200,34100,34400:UI$(ID)=U$(1):GOSUB100:GOTO940
47 | 32800 O$="{ct k}{black}A) Handle : {white}"+U$(1)+"{ct k}{black}B) Password : {white}"+U$(2)+"{ct k}{black}C) Columns :{white}"+STR$(40+(40*VAL(MID$(U$(8),2,1))))+"{ct k}{black}D) Last call : {white}"+O$(4):GOSUB4
48 | 32820 O$="{black}E) Auto-Pause : {white}o"+MID$("ffn ",VAL(MID$(U$(8),5,1))*2+1,2)+"{ct k}{black}F) Line #s : {white}o"+MID$("ffn ",VAL(MID$(U$(8),7,1))*2+1,2):GOSUB4
49 | 32830 X=INSTR("ACDEIMTPO",MID$(U$(8),10,1))-1:IFX<0THENX=8
50 | 32840 O$="{black}G) Computer : {white}"+MID$("Amiga C=64 C=128 Apple IBM/Clone Macintosh Atari CP/M Other ",(X*10)+1,10):GOSUB4
51 | 32845 O$=" N/A":IFBA=2400THENO$=STR$(PEEK(2582)-160)
52 | 32850 O$="{black}H) 2400Timing :{white}"+O$:GOSUB4
53 | 32860 O$="{black}I) Lines/Screen:{white}"+STR$(U(7)):GOSUB4
54 | 32900 O$=T$(95):GOSUB4:C$="ABCDEFGHI"+R$:GOSUB28
55 | 32910 ONIGOSUB30400,31100,31300,33100,33900,34000,34200,34100,34400:UI$(ID)=U$(1)
56 | 33000 IFI=10THENGOSUB100:GOTO940:ELSE32800
57 | 33100 O$=T$(55):GOSUB4:GOSUB10:A=SGN(I):IFI=0THENRETURN
58 | 33200 W1=VAL(MID$(U$(6),3,2)):W2=VAL(MID$(U$(6),5,2)):W3=VAL(MID$(U$(6),7,2)):FORX=1TOABS(I):W3=W3+(A):IFW3>PEEK(2880+W2)THENW2=W2+1:W3=1
59 | 33300 IFW3<1THENW2=W2-1:W3=PEEK(2880+W2)
60 | 33400 IFW2>12THENW2=1:W1=W1+1:W3=1:ELSEIFW2<1THENW2=12:W1=W1-1:W3=31
61 | 33500 IFW1>99THENW1=0:ELSEIFW1<0THENW1=99
62 | 33600 NEXTX:U$(6)=RIGHT$(STR$(W1),2)+RIGHT$(STR$(W2),2)+RIGHT$(STR$(W3),2)+RIGHT$(U$(6),4)
63 | 33610 IFLEFT$(U$(6),1)>"8"THENU$(6)="19"+U$(6):ELSEU$(6)="20"+U$(6)
64 | 33700 X=INSTR(U$(6)," "):IFX>0THENMID$(U$(6),X,1)="0":GOTO33700
65 | 33800 GOSUB400:RETURN
66 | 33900 MID$(U$(8),5,1)=MID$(STR$(ABS(VAL(MID$(U$(8),5,1))-1)),2):I=VAL(MID$(U$(8),5,1)):POKE2959,I:O$="ff":IFITHENO$="n"
67 | 33910 O$="{black}{ct k}Auto-pause function is now o"+O$+".{ct k}":GOSUB4:RETURN
68 | 34000 MID$(U$(8),7,1)=MID$(STR$(ABS(VAL(MID$(U$(8),7,1))-1)),2,1):I=VAL(MID$(U$(8),7,1)):O$="ff":IFITHENO$="n"
69 | 34010 O$="{black}{ct k}Message Maker line numbers are o"+O$+".{ct k}":GOSUB4:RETURN
70 | 34100 IFBA<>2400THENO$="{ct k}{black}2400 baud only!":GOTO4
71 | 34105 O$="{ct k}{black}2400bps timing value is:{ct k*2}{black} [0123456789]{ct k} ["+RIGHT$(LEFT$(".........^.........",179-PEEK(2582)),10)+"]":GOSUB4
72 | 34110 O$="{ct k}{black}Enter new setting (0-9): {ct c}":GOSUB4:GOSUB10:IFI<0ORI>9ORI$=""THENRETURN:ELSEPOKE2582,160+I:MID$(U$(8),9,1)=MID$(STR$(I),2):RETURN
73 | 34200 O$="{ct k}{black}Computer type:{ct k*2}{black}A) Commodore Amiga{ct k}{black}C) Commodore 64{ct k}{black}D) Commodore 128{ct k}{black}E) Apple 8-bit{ct k}{black}I) IBM or Clone":GOSUB4
74 | 34210 O$="{black}M) Apple Macintosh{ct k}{black}T) Atari{ct k}{black}P) CP/M based machine{ct k}{black}O) Other/Unlisted{ct k*2}{black}What computer are you using? {ct c}":GOSUB4
75 | 34220 C$="ACDEIMTPO":GOSUB28:MID$(U$(8),10,1)=A$:RETURN
76 | 34300 O$="{ct k}{black}Enter your birthdate in MM/DD/YY format{ct k}: {ct c}":GOSUB4:W7$="XX/XX/XX":GOSUB40000:U$(7)=I$:RETURN
77 | 34400 O$="{ct k}{black}How many lines per screen can your{f7}terminal display? {ct c}":GOSUB4:GOSUB10:IFI<10ORI>100THENRETURN:ELSEU(7)=I:POKE2984,I-2:RETURN
78 | 40000 W7=1:I$=W7$:DO:A$=MID$(W7$,W7,1):IFA$<>""ANDA$<>"X"THENO$=A$:GOSUB9:W7=W7+1:I=0:GOTO40040
79 | 40010 C$="0123456789"+R$+CHR$(20):GOSUB32:IFI<11ANDW7<=LEN(W7$)THENO$=A$:GOSUB9:MID$(I$,W7,1)=A$:W7=W7+1:GOTO40040
80 | 40020 IFI=12ANDW7>1THENDO:W7=W7-1:O$=A$:GOSUB9:LOOPUNTILMID$(W7$,W7,1)="X"ORW7=1
81 | 40040 LOOPUNTILI=11ANDW7=LEN(W7$)+1:O$=R$:GOTO9
82 | 55555 A=PEEK(186):OPEN1,A,15,"s0:prg.new user":CLOSE1:DSAVE"prg.new user",U(A)
83 |
--------------------------------------------------------------------------------
/bbs.ascii edit.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Tuesday, May 16, 2017 10:26:53 PM
3 | !- Import of :
4 | !- c:\src\zelch128next\bbs.ascii edit.prg
5 | !- Commodore 128 BASIC 7/7.1
6 | !--------------------------------------------------
7 | 10 U=PEEK(186):D=0:PRINT"{ct n}{cyan}{clear}{down}{light blue}Would you like to load":PRINT"new ascii tables (y/n)? ";:GOSUB980:R$=CHR$(13)
8 | 20 GETKEYA$:IFINSTR("yn"+R$,A$)=0THEN20:ELSEPRINTA$:IFA$="y"THENGOSUB3000
9 | 30 PRINT"{down}{cyan}Loading data...";:DIMC$(255),A$(255):T=255:FORI=.TOT:READC$(I):NEXT:T=T-128:FORI=.TOT:READA$(I):NEXT:T$="Input":T=0:PRINT
10 | 100 PRINT:PRINT"{yellow}Current Table: {white}";T$
11 | 110 PRINT"{yellow}{down}S)ave, L)oad, H)unt,"
12 | 120 PRINT"E)dit, C)hange table, Q)uit: {white}";:GOSUB980
13 | 125 GETKEYCO$:CO$=CHR$(ASC(CO$)OR128):I=INSTR("CSLHQE",CO$):IFITHENPRINTCO$:ELSE125
14 | 130 ONIGOSUB1000,2000,3000,4000,999,5000:GOTO100
15 | 980 IFPEEK(2929)=0THENPRINTCHR$(27)"s";:RETURN:ELSERETURN
16 | 990 PRINT:PRINT"{purple}Ascii tables device,drive "U"{left},"MID$(STR$(D),2):PRINT"{up}"TAB(25);:INPUTU,D:IFU<7ORU>30ORD<0THEN990:ELSERETURN
17 | 998 GOSUB980:GETKEYA$:PRINTCHR$(ASC(A$)OR128):RETURN
18 | 999 END
19 | 1000 PRINT"{down}{pink}I)nput tables or O)utput tables: {white}";:GOSUB998:IFINSTR("io"+R$,A$)=0THEN1000:IFA$=R$THENRETURN:ELSET=INSTR("io",A$)-1
20 | 1010 T$="Input":IFTTHENT$="Output":RETURN:ELSERETURN
21 | 2000 GOSUB990:OPEN1,U,15,"s"+MID$(STR$(D),2)+":ascii 3b00":CLOSE1:BSAVE"ascii 3b00",U(U),D(D),P(15104)TOP(15617)
22 | 2010 RETURN
23 | 3000 GOSUB990:BLOAD"ascii 3b00",U(U),D(D),P(15104)
24 | 3010 RETURN
25 | 4000 PRINT:PRINT"{pink}A)scii or C)ommodore tables: {white}";:GOSUB998:IFINSTR("ac",A$)=0THENRETURN
26 | 4010 PRINT"{down}{purple}Enter searchkey or 'L' for list: {white}";
27 | 4020 GOSUB980:GETB$:IFB$=""THEN4020:ELSEIFB$="l"THEN4500
28 | 4030 POKE244,1:PRINTB$:IFA$="a"THEN4200
29 | 4040 F=-1:FORI=0TO255:IFB$=C$(I)THENF=I
30 | 4050 NEXT:IFF<0THEN4070
31 | 4060 PRINT"{cyan}Is code #";F:SLEEP1:RETURN
32 | 4070 PRINT"{cyan}Code not found (as-typed).":SLEEP1:RETURN
33 | 4200 F=-1:FORI=0TO128:IFB$=A$(I)THENF=I
34 | 4210 NEXT:IFF<0THEN4070:ELSE4060
35 | 4500 PRINT"{white}List":I=1:PRINT:F1=0
36 | 4510 PRINTUSING"{white}(###) {yellow}Description: {cyan}";MID$(STR$(I),2);:IFA$="a"THENPRINTA$(I);:ELSEPRINTC$(I);
37 | 4515 IFPEEK(215)ANDF1=0THENPRINTTAB(40);:F1=1:ELSEPRINT:F1=0
38 | 4520 I=I+1:IFI=256THENPRINT:RETURN:ELSEGETC$:IFC$=" "THENPRINT:RETURN:ELSEIFC$<>"{home}"THEN4510
39 | 4530 GETC$:IFC$=""ORC$="{home}"THEN4530:ELSE4510
40 | 5000 CC=0:O1$="Received as (A ) ":O3$=" Description: ":O2$="Translated to (C=) ":IFT$<>"Input"THENO1$="Code to send (C=) ":O2$="Sent as (A ) "
41 | 5010 PRINT"{clear}{white}() {light gray}denote C= alternate codes"TAB(40)"{white} * {light gray}denote Zelch specific codes":PRINT"{down}{yellow}Table: {white}";T$:IFPEEK(215)=0THENO3$=R$+O3$
42 | 5020 PRINT"{down}{cyan}"O1$" #{white}"CC;TAB(40)"{cyan}"O3$;:D$=A$(CC):IFINSTR(O1$,"C=")THEND$=C$(CC)
43 | 5040 DD=PEEK(15104+CC+(T*256)):PRINT"{white}"D$;R$;"{cyan}"O2$" #{white}"DD;TAB(40);"{cyan}"O3$;:D$=A$(DD):IFINSTR(O2$,"C=")THEND$=C$(DD)
44 | 5050 PRINT"{white}"D$;R$;R$;"{yellow}[{white}Q{yellow},{white}C{yellow},{white}J{yellow},{white}+{yellow},{white}-{yellow}] Command: {white}";:GOSUB980
45 | 5060 GETKEYB$:IFB$="q"THENPRINT"Quit":PRINT:GOTO100
46 | 5070 IFB$="j"THENPRINT"Jump{light green}":GOTO5100:ELSEIFB$="c"THENPRINT"Change{light green}":GOTO5200
47 | 5075 IFB$="+"ANDCC<255THENPRINTB$:CC=CC+1:GOTO5020:ELSEIFB$="-"ANDCC>0THENPRINTB$:CC=CC-1:GOTO5020:ELSE5060
48 | 5090 IFF>-1THENPOKE15104+CC+(T*256),F:GOTO5020:ELSE5020
49 | 5100 INPUT"{down}Jump to what code";CC:GOTO5020
50 | 5200 INPUT"{down}Enter new translation";F:GOTO5090
51 | 10000 DATA "Null","*Filelink*","Underline-On","*Linelink*","Nothing","White
52 | 10010 DATA "Nothing","Bell","*40col mask*","Tab","Linefeed
53 | 10020 DATA "Enable-Change","Disable-mode","Enter/Return","Lowercase-On","Flash-On
54 | 10030 DATA "Nothing","Crsr Down","Reverse-On","Home","Delete/Backspace
55 | 10040 DATA "Nothing","Nothing","Nothing","Tab-Clear","Nothing"
56 | 10050 DATA "Nothing","Escape","Red","CrsrRight","Green
57 | 10060 DATA "Blue","Space","!","Quote","#
58 | 10070 DATA "$","%","&","'","("
59 | 10080 DATA ")","*","+",",","-"
60 | 10090 DATA ".","/","0","1","2"
61 | 10100 DATA "3","4","5","6","7"
62 | 10110 DATA "8","9",":",";","<"
63 | 10120 DATA "=",">","?","@","a"
64 | 10130 DATA "b","c","d","e","f"
65 | 10140 DATA "g","h","i","j","k"
66 | 10150 DATA "l","m","n","o","p"
67 | 10160 DATA "q","r","s","t","u"
68 | 10170 DATA "v","w","x","y","z"
69 | 10180 DATA "[","{pound}","]","^","{arrow left}"
70 | 10190 DATA "(@)","(A)","(B)","(C)","(D)"
71 | 10200 DATA "(E)","(F)","(G)","(H)","(I)"
72 | 10210 DATA "(J)","(K)","(L)","(M)","(N)"
73 | 10220 DATA "(O)","(P)","(Q)","(R)","(S)"
74 | 10230 DATA "(T)","(U)","(V)","(W)","(X)"
75 | 10240 DATA "(Y)","(Z)","({sh +})","({cm -})","({sh -})"
76 | 10250 DATA "(PI)","({cm asterisk})","Nothing","Orange","Underline-Off
77 | 10260 DATA "RUN","Nothing","F1","F3","F5"
78 | 10270 DATA "F7","F2","F4","F6","F8"
79 | 10280 DATA "Shift-Return","Uppercase-On","Flash-Off","*Color-Cycle*","CrsrUp"
80 | 10290 DATA "Reverse-Off","ClearScreen","Insert","Brown","Lt.Red"
81 | 10300 DATA "Dk.Grey","Md.Grey","Lt.Green","Lt.Blue","Lt.Grey
82 | 10310 DATA "Purple,","CrsrLeft","Yellow","Cyan","Shft-Space"
83 | 10330 DATA "{cm k}","{cm i}","{cm t}","{cm @}","{cm g}"
84 | 10340 DATA "{cm +}","{cm m}","{cm pound}","{sh pound}","{cm l}"
85 | 10350 DATA "{cm q}","{cm d}","{cm z}","{cm s}","{cm p}"
86 | 10360 DATA "{cm a}","{cm e}","{cm r}","{cm w}","{cm h}"
87 | 10370 DATA "{cm j}","{cm n}","{cm y}","{cm u}","{cm o}"
88 | 10380 DATA "{sh @}","{cm f}","{cm c}","{cm x}","{cm v}"
89 | 10390 DATA "{cm b}","({sh @})","A","B","C"
90 | 10400 DATA "D","E","F","G","H"
91 | 10410 DATA "I","J","K","L","M"
92 | 10420 DATA "N","O","P","Q","R"
93 | 10430 DATA "S","T","U","V","W"
94 | 10440 DATA "X","Y","Z","({sh +})","({cm -})","({sh -})","({cm +})","({sh pound})","(Shft-Space)"
95 | 10450 DATA "({cm k})","({cm i})","({cm t})","({cm @})","({cm g})"
96 | 10460 DATA "({cm +})","({cm m})","({cm pound})","({sh pound})","({cm l})"
97 | 10470 DATA "({cm q})","({cm d})","({cm z})","({cm s})","({cm p})"
98 | 10480 DATA "({cm a})","({cm e})","({cm r})","({cm w})","({cm h})"
99 | 10490 DATA "({cm j})","({cm n})","({cm y})","({cm u})","({cm o})"
100 | 10500 DATA "({sh @})","({cm f})","({cm c})","({cm x})","({cm v})"
101 | 10510 DATA "PI"
102 | 20000 DATA "Null","Nothing","Nothing","Nothing","Nothing","Nothing"
103 | 20010 DATA "Nothing","Bell","Backspace","Nothing","Linefeed"
104 | 20020 DATA "Nothing","Formfeed","Return","Nothing","Nothing"
105 | 20030 DATA "Nothing","Nothing","Nothing","Nothing","Nothing"
106 | 20040 DATA "Nothing","Nothing","Nothing","Nothing","Nothing"
107 | 20050 DATA "Nothing","Escape","Nothing","Nothing","Nothing"
108 | 20060 DATA "Nothing","Space","!","Quote","#"
109 | 20070 DATA "$","%","&","'","("
110 | 20080 DATA ")","*","+",",","-"
111 | 20090 DATA ".","/","0","1","2"
112 | 20100 DATA "3","4","5","6","7"
113 | 20110 DATA "8","9",":",";","<"
114 | 20120 DATA "=",">","?","@","A"
115 | 20130 DATA "B","C","D","E","F"
116 | 20140 DATA "G","H","I","J","K"
117 | 20150 DATA "L","M","N","O","P"
118 | 20160 DATA "Q","R","S","T","U"
119 | 20170 DATA "V","W","X","Y","Z"
120 | 20180 DATA "[","Backslash","]","^","{cm @}"
121 | 20190 DATA "Apostrophe","a","b","c","d"
122 | 20200 DATA "e","f","g","h","i"
123 | 20210 DATA "j","k","l","m","n"
124 | 20220 DATA "o","p","q","r","s"
125 | 20230 DATA "t","u","v","w","x"
126 | 20240 DATA "y","z","OpenSet","WideColon","CloseSet"
127 | 20250 DATA "Approximately","Nothing"
128 | 55555 A=PEEK(186):OPEN1,A,15,"s0:bbs.ascii edit":CLOSE1:DSAVE"bbs.ascii edit",U(A)
129 |
--------------------------------------------------------------------------------
/extras/gam.wheel.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Saturday, May 20, 2017 1:36:31 AM
3 | !- Import of :
4 | !- c:\src\zelch128\extras\gam.wheel.prg
5 | !- Unknown Machine
6 | !--------------------------------------------------
7 | 20 SZ=RND(-TI/37)
8 | 30 DIMPR$(20),PU$(200),LP(200),WH$(200),ZP$(50),ZP(50)
9 | 40 PR$(1)="300":PR$(2)="150":PR$(3)="1000":PR$(4)="500":PR$(5)=PR$(1)
10 | 50 PR$(6)="bankrupt":PR$(7)="lose money":PR$(8)="freespin":PR$(9)="550"
11 | 60 PR$(10)="250":PR$(11)="350":PR$(12)="750"
12 | 70 PRINT"{blue}"
13 | 80 PRINT "{blue}{clear}{down*5} Wheel Of Fortune!"
14 | 90 PRINT"{down} By: Bo Zimmerman"
15 | 100 PRINT" Completed: 05/06/88"
16 | 110 PRINT "{light blue}{down*3} Setting Up Puzzles...";
17 | 120 RESTORE
18 | 130 READPU$(PL),WH$(PL):IFPU$(PL)="00"THENPL=PL-1:GOTO150
19 | 140 PL=PL+1:GOTO130
20 | 150 READZP$(NB),ZP(NB):IFZP$(NB)="**"THENNB=NB-1:GOTO170
21 | 160 NB=NB+1:GOTO 150
22 | 170 PRINT"{down}":PZ=INT(RND(TI)*PL)+1
23 | 180 PZ$=PU$(PZ)
24 | 190 FORI=1TOLEN(PZ$)
25 | 200 LP(I)=0
26 | 210 NEXT
27 | 220 FORI=1TOLEN(PZ$)
28 | 230 IFMID$(PZ$,I,1)=CHR$(32)THENLP(I)=1
29 | 240 NEXT:PRINT"{down*17}{clear}"
30 | 1000 REM ************** MAIN ROUTINE ************************
31 | 1010 FORI=1TO2000:NEXT:PRINT"{clear}{down}{pink}{down*2}Puzzle type: ";
32 | 1020 IFWH$(PZ)="pe"THENPRINT"PERSON OR{sh space}PEOPLE"
33 | 1030 IFWH$(PZ)="ev"THENPRINT"EVENT"
34 | 1040 IFWH$(PZ)="th"THENPRINT"THING{sh space}OR{sh space}THINGS"
35 | 1050 IFWH$(PZ)="ph"THENPRINT"PHRASE"
36 | 1060 IFWH$(PZ)="pl"THENPRINT"PLACE"
37 | 1070 IFWH$(PZ)="ti"THENPRINT"TITLE"
38 | 1080 IFWH$(PZ)="oc"THENPRINT"OCCUPATION"
39 | 1090 IFWH$(PZ)="qu"THENPRINT"QUOTATION"
40 | 1100 IFWH$(PZ)="fc"THENPRINT"FICTIONAL CHARACTER"
41 | 1110 IFWH$(PZ)="la"THENPRINT"LANDMARK"
42 | 1120 PRINT"{yellow}":FORI=1TOLEN(PZ$):LQ$=MID$(PZ$,I,1)
43 | 1140 IFLP(I)=1THENPRINTLQ$;:GOTO1160
44 | 1150 IFLP(I)=0THENPRINT"-";
45 | 1160 NEXTI:CN=0
46 | 1170 PRINTCHR$(13)+"{pink}Money:{yellow}";MN;"{left} {pink}Free spins:{yellow}";SN;"{left} "
47 | 1180 PRINT"{pink} Used:{yellow} ";LU$
48 | 1190 INPUT"{down}{red}(S)pin, (V)owel, (G)uess, (Q)uit";CH$
49 | 1200 IFCH$="q"ORCH$="Q"THENEND
50 | 1210 IFCH$="g"THENPRINT"{down}{purple}Guess the puzzle:":GOTO1550
51 | 1220 IFCH$="v"THENPRINT"{down}{purple}Buy a vowel:":GOTO1360
52 | 1230 IFCH$<>"s"THEN1190
53 | 1240 PRINT"{purple}{down}Spin the wheel: ";:FORRO=1TO10
54 | 1250 RT=INT(RND(1)*12)+1:PRINTPR$(RT);:FORI=1TOLEN(PR$(RT)):PRINTCHR$(20);:NEXT
55 | 1260 FORW=1TO50:NEXTW:NEXTRO:PRINTPR$(RT)
56 | 1270 IFPR$(RT)="freespin"THENSN=SN+1:FORI=1TO2000:NEXTI:GOTO1000
57 | 1280 IFPR$(RT)="bankrupt"ANDSN<1ANDMN>0THENMN=0:GOTO1000
58 | 1281 IFPR$(RT)="bankrupt"ANDSN>0THENSN=SN-1:GOTO1000
59 | 1282 IFPR$(RT)="bankrupt"THENMN=MN-500:GOTO1000
60 | 1290 IFPR$(RT)="lose money"ANDSN<1THENMN=MN-250:GOTO1000
61 | 1300 IFPR$(RT)="lose money"ANDSN>0THENSN=SN-1:GOTO1000
62 | 1310 INPUT"{down}{cyan}Enter a consonant";LT$:IFLEN(LT$)>1THEN1310
63 | 1320 FL=0:FORI=1TOLEN(LU$):IFLT$=MID$(LU$,I,1)THENFL=1
64 | 1330 NEXT:IFFL=0THENLU$=LU$+LT$
65 | 1335 IFFL=1THEN1000
66 | 1340 LT=ASC(LT$):IFLT<66ORLT>90ORLT=69ORLT=73ORLT=79ORLT=85THEN1310
67 | 1350 GOTO1490
68 | 1360 IFMN>=250THEN1390
69 | 1370 PRINT"{down}{light blue}You don't have enough money!":FORU=1TO2000:NEXT:GOTO1000
70 | 1390 MN=MN-250
71 | 1400 INPUT"{light blue}Vowel";LT$:IFLT$="a"ORLT$="e"ORLT$="i"ORLT$="o"ORLT$="u"THENGOTO1420
72 | 1410 GOTO1400
73 | 1420 FL=0:FORI=1TOLEN(LU$):IFLT$=MID$(LU$,I,1)THENFL=1
74 | 1430 NEXT:IFFL=0THENLU$=LU$+LT$
75 | 1440 PO=0:FORI=1TOLEN(PZ$)
76 | 1450 IFMID$(PZ$,I,1)=LT$THENLP(I)=1:PO=PO+1
77 | 1460 NEXT
78 | 1470 IFPO>0THENPRINT"{down}{light blue}There are"+STR$(PO)+" "+LT$+"'s.":GOTO1000
79 | 1480 PRINT"{down}{blue}Sorry...":FORI=1TO2000:NEXT:GOTO1000
80 | 1490 PO=0:FORI=1TOLEN(PZ$)
81 | 1500 IFMID$(PZ$,I,1)=LT$THENLP(I)=1:PO=PO+1:MN=MN+VAL(PR$(RT))
82 | 1510 NEXT
83 | 1520 IFPO>0THENPRINT"{down}{light blue}There are"+STR$(PO)+" "+LT$+"'s":GOTO1000
84 | 1530 PRINT"{down}{white}Sorry...":FORI=1TO2000:NEXT:MN=MN-VAL(PR$(RT))
85 | 1540 GOTO1000
86 | 1550 INPUT"{down*2}{light blue}Go ahead";TR$:IFTR$<>PZ$THEN1000
87 | 1560 PRINT"{down}{blue}YOU{sh space}DID{sh space}IT!!!"
88 | 1570 IFMN>0THENGOSUB1650
89 | 1610 IFMN>=0THENPRINT"{light green} Your total cash winnings were $";MN
90 | 1620 IFMN<0THENPRINT" You owe the wheel of fortune $";ABS(MN)
91 | 1630 PRINT"{down*4} bye bye..."
92 | 1640 END
93 | 1650 PRINT"{down}":FORI=1TONB:PRINT"{light gray}";CHR$(I+64);") ";ZP$(I);TAB(20);"- $";ZP(I)
94 | 1660 NEXT
95 | 1670 PP=0:PRINT"{down*3}{light green}Choose item or '*' to put":PRINT"the rest on a gift certificate!"
96 | 1680 PRINT"MONEY : $";MN"{left} "
97 | 1690 FORI=1TONB:IFZP(I)(65+NB)THEN1710
102 | 1740 A=ASC(A$):A=A-64:IFZP(A)>MNTHEN1710
103 | 1750 MN=MN-ZP(A):PRINT "{down}{green}You just bought a brand new":PRINTZP$(A)
104 | 1760 FORI=0TO3000:NEXT:GOTO1650
105 | 1770 PRINT"{down*2}{green}You got many wonderous prizes today!{down}":RETURN
106 | 1780 DATA SUNDAY NEWSPAPER,TH,HIGH SCHOOL SWEETHEART,PE
107 | 1790 DATA THE HOPE DIAMOND,TH,ALL DRESSED UP AND NO PLACE TO GO,PH
108 | 1800 DATA DIAHANN CAROL,PE,SILVER WEDDING ANNIVERSARY,EV
109 | 1810 DATA HOT SPRINGS ARKANSAS,PL,A STITCH IN TIME SAVES NINE,PH
110 | 1820 DATA MICHAEL LANDON,PE,SWEAT SHIRT,TH,OFF THE TOP OF MY HEAD,PH
111 | 1830 DATA LEMON MARANGUE PIE,TH,LEAVE IT TO BEAVER,TI
112 | 1840 DATA DOLLARS AND CENTS,TH,THE LUCK OF THE IRISH,PH
113 | 1850 DATA CHOCOLATE PUDDING,TH,SURPRISE BIRTHDAY PARTY,EV
114 | 1860 DATA DENVER COLORADO,PL,HOPE SPRINGS ETERNAL,QU,FAMOUS LAST WORDS
115 | 1870 DATA PH,THE AGONY AND THE ECSTASY,TI,IN MORE WAYS THAN ONE,PH
116 | 1880 DATA VOLLEYBALL TEAM,PE,PEACE OFFERING,TH,JOHN WAYNE,PE
117 | 1890 DATA NINE TIMES OUT OF TEN,PH,LET THE CAT OUT OF THE BAG,PH
118 | 1900 DATA SENATOR BARRY GOLDWATER,PE,CASE DISMISSED,PH,SOCCER BALL,TH
119 | 1910 DATA LOOK BEFORE YOU LEAP,PH,COMPUTER SOFTWARE,TH
120 | 1920 DATA SPLIT MY SIDES LAUGHING,PH,MEAT AND POTATOES,TH
121 | 1930 DATA FOOTBALL STADIUM,PL,DYNASTY,TI,THE BIG BAD WOLF,FC
122 | 1940 DATA LIFE IS A CABARET OLD CHUM,QU,CALM COOL AND COLLECTED,PH
123 | 1950 DATA ARTE JOHNSON,PE,WILD GOOSE CHASE,PH,CASHMERE SWEATER,TH
124 | 1960 DATA AS THE CROW FLIES,PH,COME UP AND SEE ME SOMETIME,QU
125 | 1970 DATA TICKET STUB,TH,NOT A MOMENT TOO SOON,PH,SUPER BOWL,EV
126 | 1980 DATA SENSE OF HUMOR,PH,THE LOVE BOAT,TI,SPLIT SECOND,PH
127 | 1990 DATA A LEGEND IN HIS OWN TIME,PH,NEW ORLEANS,PL,PROGRAMMER,OC
128 | 2000 DATA PLANET ZELCH,PL,KISS,PE,DALLAS COWBOYS,PE,THE ZACMAN,FC
129 | 2010 DATA THE TOWER OF LONDON,LA,THE PIRATES OF PENZANCE,TI
130 | 2020 DATA ROOM TEMPERATURE,PH,MICHELE LEEX,PE,THE SEVEN HILLS OF ROME,PL
131 | 2030 DATA DO YOU KNOW THE WAY TO SAN JOSE,TI,CIRCUS OF THE STARS,EV
132 | 2040 DATA SATURDAY NIGHT LIVE,TI,HAVING THE TIME OF MY LIFE,PH
133 | 2050 DATA SALT LAKE CITY UTAH,PL,MORSE CODE,TH,ANGELA LANDSBURY,PE
134 | 2060 DATA ROOM AND BOARD,PH,THE LAST DAYS OF POMPEII,TI
135 | 2070 DATA TRIAL LAWYER,OC,TAMPA BAY BUCCANEERS,PE,SHERWOOD FOREST,PL
136 | 2080 DATA SOMEBODY UP THERE LIKES ME,QU,THEY LIVED HAPPILY EVER AFTER,QU
137 | 2090 DATA WALTER CRONKITE,PE,TEAM HORSES,TH,EXTENSION PHONE,TH
138 | 2100 DATA MY FUNNY VALENTINE,TI,LIFETIME GUARANTEE,TH,INCREDIBLE HULK,FC
139 | 2110 DATA LLOYD BRIDGES,PE,LOS ANGELES LAKERS,PE,WHEEL OF FORTUNE,TI
140 | 2120 DATA DON RICKLES,PE,SPEED CHECKED BY RADAR,PH,ONE FROM THE HEART,PH
141 | 2130 DATA I ONLY HAVE EYES FOR YOU,QU,CONFLICT OF INTEREST,PH
142 | 2140 DATA LONG JOHN SILVER,FC,DELUSIONS OF GRANDEUR,PH,ZELCH BE COOL,QU
143 | 2150 DATA WOMEN AND CHILDREN FIRST,PH,HELP,QU,DEATH,EV,THE CIVIL WAR,EV
144 | 2160 DATA 00,00
145 | 2170 DATA UMBRELLA TABLE,119,STRUCTO GAS GRILL,219,ROPE HAMMACK,69
146 | 2180 DATA GOLD WATCH,117,MINOLTA CAMARA,129,UGLY PAINTING,2000
147 | 2190 DATA COLOR TV,300,GENERIC COMPUTER,1500,CERAMIC DALMATION,400
148 | 2200 DATA REFRIGERATOR,579,12MOS FRUIT CAKES,50,HIS AND HER BIKES,379
149 | 2210 DATA TRIP TO ETHIOPIA,3
150 | 2220 DATA"**",99
151 |
--------------------------------------------------------------------------------
/prg.monster.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Wednesday, May 17, 2017 12:20:47 AM
3 | !- Import of :
4 | !- c:\src\zelch128next\prg.monster.prg
5 | !- Commodore 128 BASIC 7/7.1
6 | !--------------------------------------------------
7 | 30000 SYS15625:REM =========== AUTO-MAINTENANCE W/SCRIPT =========== 06/29/91 =
8 | 30010 IFPEEK(2961)<2THENPOKE2829,1:POKE2823,1:POKE2961,2:PRINT"{clear}{down}{ct n}{cyan}Monster Mode v2.0--Loading script...";:X=-1:ELSE30210
9 | 30020 POKE2825,255:POKE2824,1:POKE2827,0:O$="Monster Mode v2.0":GOSUB250:P0=1
10 | 30030 OPEN1,D(1,0),15:OPEN2,D(1,0),2,MID$(STR$(D(1,1)),2)+":sys.script,s,r":INPUT#1,A:IFATHENPRINT"{left*17}Default script. ":CLOSE1:CLOSE2:GOTO30050
11 | 30040 X=X+1:SYS8222:TT$(X)=I$:IFPEEK(253)=0THEN30040:ELSETT$(X+1)="{pound}":CLOSE2:CLOSE1:PRINT:GOTO30110
12 | 30050 TT$(0)="user 60":TT$(1)="msg":TT$(2)="news":TT$(3)="collect":TT$(4)="{pound}":X=3:GOTO30110
13 | 30060 OPEN2,D(1,0),2,MID$(STR$(D(1,1)),2)+":sys.network":RETURN
14 | 30100 REM ----------- CHANGE COMMANDS TO LOWERCASE ----------------------------
15 | 30110 FORI=0TOX:IFTT$(I)=" "ORTT$(I)=""ORLEFT$(TT$(I),1)=";"THENTT$(I)="^"
16 | 30120 NEXTI:FORI=0TOX:A=0:FORY=1TOLEN(TT$(I)):A$=MID$(TT$(I),Y,1)
17 | 30130 IFA$="{f5}"THENA=ABS(A-1):GOTO30160
18 | 30140 IFATHEN30160
19 | 30150 MID$(TT$(I),Y,1)=CHR$(ASC(A$)AND127)
20 | 30160 NEXTY:NEXTI
21 | 30200 REM ----------- EXECUTE NEXT SCRIPT COMMAND -----------------------------
22 | 30210 CLOSE1:CLOSE15:CLOSE2:CLOSE3:CLOSE4:X=-1
23 | 30215 X=X+1:IFX>100THEN50010
24 | 30220 A$=TT$(X):IFA$="{pound}"THEN50010:ELSEIFA$="^"THEN30215
25 | 30230 TT$(X)="^":IFINSTR(A$,"{f5}")=0THENF$="":GOTO30250
26 | 30240 F$=MID$(A$,INSTR(A$,"{f5}")+1)+"{f5}":F$=LEFT$(F$,INSTR(F$,"{f5}")-1)
27 | 30250 A=INSTR(A$,","):IFA=0THENU=D(0,0):D=D(0,1):GOTO30270
28 | 30260 U=VAL(MID$(A$,A-2)):D=VAL(MID$(A$,A+1))
29 | 30270 A=INSTR(A$,"{f5}"):IFA<1THENA=INSTR(A$,","):IFA<1THENI$=A$:GOTO30300
30 | 30280 I$=LEFT$(A$,A-1)
31 | 30300 IFINSTR(I$,"user")THEN30610
32 | 30310 IFINSTR(I$,"msg")ORINSTR(I$,"message")THEN31010
33 | 30320 IFINSTR(I$,"news")THEN30810
34 | 30330 IFINSTR(I$,"collect")ORINSTR(I$,"validate")THEN31210
35 | 30340 IFINSTR(I$,"print")THENO$=F$:GOSUB4:GOTO30210
36 | 30350 IFINSTR(I$,"run")THENI$=F$:O$="Online Basic":GOSUB250:POKE2961,2:GOTO8940
37 | 30360 IFINSTR(I$,"execute")THENO$="Zelch Specific Module":GOSUB250:I$=F$:GOTO23
38 | 30370 IFINSTR(I$,"dos")ORINSTR(I$,"disk")THEN31310
39 | 30380 IFINSTR(I$,"display")ORINSTR(I$,"file")THENGOSUB26:GOTO30210
40 | 30390 IFINSTR(I$,"hard")THEN31410
41 | 30400 IFINSTR(I$,"clear")ORINSTR(I$,"reset")THEN31510
42 | 30410 IFINSTR(I$,"modem")ORINSTR(I$,"hayes")THENPRINT#5,R$F$:GOTO30210
43 | 30420 IFINSTR(I$,"network")THENW1=.2:I$="prg.network":U=D(0,0):D=D(0,1):GOTO23
44 | 30590 GOTO30210
45 | 30600 REM ----------- USER WEED ROUTINES --------------------------------------
46 | 30610 IFINSTR(A$," ")=0THENA$=A$+" 60"
47 | 30620 A$=MID$(A$,INSTR(A$," ")+1):X=VAL(A$):IFX<1THEN30610
48 | 30630 GOSUB400:OPEN1,D(5,0),15:OPEN2,D(4,0),2,MID$(STR$(D(4,1)),2)+":sys.userfiles":W1=1:W5=0
49 | 30640 W2=VAL(MID$(O$(2),5,2)):W3=VAL(MID$(O$(2),3,2)):W4=VAL(LEFT$(O$(2),2)):FORI=1TOX
50 | 30650 W2=W2-1:IFW2<1THENW3=W3-1:W2=PEEK(2880+W3):IFW3<1THENW3=12:W2=31:W4=W4-1:IFW4<0THENW4=99
51 | 30660 NEXTI:W1$=RIGHT$(STR$(W4),2)+RIGHT$(STR$(W3),2)+RIGHT$(STR$(W2),2):DO:W7=INSTR(W1$," "):IFW7>0THENMID$(W1$,W7,1)="0"
52 | 30670 LOOPUNTILW7=0:IFLEFT$(W1$,1)>"8"THENW1$="19"+W1$:ELSEW1$="20"+W1$
53 | 30680 O$="Checking userfiles...":GOSUB250:I=FRE(1)
54 | 30690 IFUI$(W1)="^"THENW1=W1+1:IFW1<501THEN30690
55 | 30700 IFUI$(W1)=""ORUI$(W1)="{pound}"ORW1>500THENCLOSE2:CLOSE1:GOTO30210
56 | 30710 RECORD#2,W1:FORI=1TO6:SYS8222:NEXTI:A$=I$:IFLEFT$(A$,1)>"8"THENA$="19"+A$:ELSEA$="20"+A$
57 | 30715 FORI=1TO2:SYS8222:NEXTI:IFLEFT$(A$,8)>W1$ORMID$(I$,3,1)="1"THENW1=W1+1:GOTO30690
58 | 30720 O$="Munching user":GOSUB250:A$="^"+R$+"{f4}"+R$+"^"+R$+"(xxx)/xxx-xxxx"+R$+"A"+R$+"^"+R$+"00/00/00"+R$+"00000000000"+R$
59 | 30725 FORI=1TO2:A$=A$+"00000000000000000000000000"+R$:NEXTI:FORI=1TO8:A$=A$+" 0"+R$:NEXTI:RECORD#2,W1:PRINT#2,A$:A$="":I=FRE(1)
60 | 30730 PRINT#1,"s"+MID$(STR$(D(5,1)),2)+":mail."+STR$(W1):P0$(P0)="Munched user #"+STR$(W1)+"/"+UI$(W1):UI$(W1)="^":P0=P0+1:W1=W1+1:GOTO30680
61 | 30800 REM ----------- NEWS FILE ROUTINES --------------------------------------
62 | 30810 IFF$=""THENF$="sys.news":U=D(1,0):D=D(1,1)
63 | 30815 IFLEFT$(O$(2),1)>"8"THENW2$="19"+O$(2):ELSEW2$="20"+O$(2)
64 | 30820 O$="Updating "+F$:GOSUB250:X=0:GOSUB400:OPEN1,U,15:OPEN2,U,2,MID$(STR$(D),2)+":"+F$+",s,r":INPUT#1,E:IFE>0THEN30910
65 | 30830 SYS8222:SYS8222:IFPEEK(253)THEN30210
66 | 30840 IFI$>=O$(2)THENSYS8213:GOTO30830
67 | 30850 CLOSE2:CLOSE1:OPEN1,U,15,"s"+MID$(STR$(D),2)+":sys.work":OPEN2,U,2,MID$(STR$(D),2)+":"+F$+",s,r":X=0
68 | 30860 OPEN3,U,3,MID$(STR$(D),2)+":sys.work,s,w"
69 | 30870 SYS8222:A$=I$:SYS8222:IFPEEK(253)THEN30910
70 | 30875 IFLEFT$(I$,1)>"8"THENI$="19"+I$:ELSEI$="20"+I$
71 | 30880 IFW2$>I$THENSYS8222:SYS8213:P0$(P0)="Stomped "+F$+" #"+STR$(X+1)+"/{f5}"+I$+"{f5}":P0=P0+1:GOTO30870
72 | 30890 IFX>0THENPRINT#3,CHR$(1)
73 | 30900 PRINT#3,A$:PRINT#3,I$:GOSUB31:X=X+1:GOTO30870
74 | 30910 CLOSE2:CLOSE3:IFX=0THENPRINT#1,"s"+MID$(STR$(D),2)+":sys.work":PRINT#1,"s"+MID$(STR$(D),2)+":"+F$:GOTO30210
75 | 30920 PRINT#1,"s"+MID$(STR$(D),2)+":"+F$:PRINT#1,"r"+MID$(STR$(D),2)+":"+F$+"=sys.work":GOTO30210
76 | 31000 REM ----------- WEED MESSAGE BASES --------------------------------------
77 | 31010 W1=1:W9=26:IFINSTR(A$,",")>0ANDD>=UANDU>=1ANDD<=26THENW1=U:W9=D
78 | 31020 CLOSE2:CLOSE1:OPEN1,D(1,0),15:OPEN2,D(1,0),2,MID$(STR$(D(1,1)),2)+":sys.mbases"+F$:INPUT#1,E:IFE>0THEN30210
79 | 31025 IFW1>W9THEN30210:ELSERECORD#2,W1:SYS8222:U=VAL(I$):IFU<8THENW1=W1+1:GOTO31025
80 | 31030 INPUT#2,D:FORI=1TO5:SYS8222:TT$(150+I)=I$:NEXTI:I=FRE(1)
81 | 31040 C$=F$+CHR$(192+W1):O$="Sniffing sig /"+C$:GOSUB250
82 | 31050 IFVAL(TT$(155))=0ORLEFT$(TT$(154),1)<>"{sh @}"THENW1=W1+1:GOTO31025
83 | 31060 CLOSE2:CLOSE1:OPEN2,D(1,0),2,MID$(STR$(D(1,1)),2)+":sys.mdata"+F$
84 | 31065 RECORD#2,((W1-1)*51)+51:INPUT#2,W2:FORI=1TOW2:RECORD#2,((W1-1)*51)+I:SYS8222:MN$(I)=I$:INPUT#2,MR(I)
85 | 31070 NEXTI:CLOSE2:FORI=1TOW2:IFMR(I)=0ORVAL(MN$(I))=0ORMR(I)CHR$(1)THENPRINT#3,I$:GOTO31110
90 | 31120 PRINT#3,I$:FORX=1TOMR(I)-VAL(TT$(153)):SYS8213:MR(I)=MR(I)-1:NEXTX
91 | 31130 SYS8222:IFPEEK(253)=0THENPRINT#3,I$:GOTO31130
92 | 31140 PRINT#3,I$:CLOSE3:CLOSE2:PRINT#1,"s"+MID$(STR$(D),2)+":msg."+C$+STR$(I):PRINT#1,"r"+MID$(STR$(D),2)+":msg."+C$+STR$(I)+"=sys.work"
93 | 31150 CLOSE1:OPEN2,D(1,0),2,MID$(STR$(D(1,1)),2)+":sys.mdata"+F$:RECORD#2,((W1-1)*51)+I:PRINT#2,MN$(I)+CHR$(13)+STR$(MR(I)):CLOSE2:O$="Burp!":GOSUB250
94 | 31160 NEXTI:W1=W1+1:GOTO31020
95 | 31200 REM ----------- COLLECT/VALIDATE ----------------------------------------
96 | 31210 O$="Eating Disk"+STR$(U)+","+MID$(STR$(D),2):GOSUB250
97 | 31220 OPEN1,U,15,"v"+MID$(STR$(D),2):GOTO30210
98 | 31300 REM ----------- DOS COMMANDS --------------------------------------------
99 | 31310 O$="Drooling on drive"+STR$(U)+","+MID$(STR$(D),2):GOSUB250
100 | 31320 OPEN1,U,15,F$:INPUT#1,I:CLOSE1:GOTO30210
101 | 31400 REM ----------- HARDCOPY A SEQ FILE TO PRINTER DEVICE 4 -----------------
102 | 31410 O$="Scratching on paper":GOSUB250
103 | 31420 OPEN1,U,15:OPEN2,U,2,MID$(STR$(D),2)+":"+F$+",s,r":INPUT#1,E:IFETHENCLOSE1:CLOSE2:GOTO30210:ELSEOPEN4,4,7
104 | 31430 SYS8222:FORX=1TO4:DO:A$=MID$("{ct k}{f6}{f5}{f7}",X,1):A=INSTR(I$,A$):IFATHENMID$(I$,A,1)=MID$(CHR$(13)+CHR$(13)+CHR$(34)+" ",X,1)
105 | 31440 LOOPUNTILA=0:NEXTX:PRINT#4,I$:IFPEEK(253)THENCLOSE1:CLOSE2:CLOSE4:GOTO30210:ELSE31430
106 | 31500 REM ----------- CLEAR OR RESET SYSTEM VARIABLE --------------------------
107 | 31510 A=INSTR(A$," "):IFA=0THEN30210
108 | 31520 A$=MID$(A$,A+1):IFVAL(A$)<1THEN31510
109 | 31530 O(VAL(A$))=0:GOTO30210
110 | 50000 REM ----------- MONSTER MODE REPORT -------------------------------------
111 | 50010 U=D(1,0):D=D(1,1):OPEN1,U,15:OPEN2,U,2,MID$(STR$(D),2)+":sys.userlog,s,a":INPUT#1,E:IFE>0THENCLOSE2:OPEN2,U,2,MID$(STR$(D),2)+":sys.userlog,s,w"
112 | 50020 PRINT#2,"{reverse on}{light green}MONSTER{sh space}MODE{sh space}REPORT{reverse off}: ";:IFP0=1THENPRINT#2,"Growl!{ct k}":CLOSE2:CLOSE1:GOTO50040
113 | 50030 PRINT#2:FORI=1TOP0-1:PRINT#2,P0$(I):P0$(I)="":NEXTI:PRINT#2,"":CLOSE2:CLOSE1
114 | 50040 FORI=1TO50:MN$(I)="":MR(I)=0:NEXTI:FORI=0TO200:TT$(I)="":NEXTI:POKE2961,0
115 | 50099 CLOSE2:CLOSE1:I=FRE(1):I$="prg.logon":U=D(0,0):D=D(0,1):GOTO23
116 | 55555 U=PEEK(186):OPEN1,U,15,"s0:prg.monster":CLOSE1:DSAVE"prg.monster",U(U)
117 |
--------------------------------------------------------------------------------
/prg.voting booth.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Wednesday, May 17, 2017 12:22:15 AM
3 | !- Import of :
4 | !- c:\src\zelch128next\prg.voting booth.prg
5 | !- Commodore 128 BASIC 7/7.1
6 | !--------------------------------------------------
7 | 30000 SYS15625:REM ============ VOTING BOOTH MODULE V1.7 =========== 02/10/92 =
8 | 30010 ON(W1-300)GOTO30400,32500,32900,33500,35000,35400:GOTO940
9 | 30050 OPEN2,D(1,0),2,MID$(STR$(D(1,1)),2)+":sys.voting booth":RETURN
10 | 30060 OPEN2,U,2,MID$(STR$(D),2)+":vote.topic "+CHR$(64+W5)+",s,r":RETURN
11 | 30100 O$=T$(79):GOSUB770:IFW1=301ORI=0THENRETURN:ELSEI=I+192
12 | 30200 GOSUB30050:RECORD#2,I-192:SYS8222:SYS8222:CLOSE2:IFMID$(I$,ASC(U$(5))-192,1)<>"1"THENI=0:RETURN:ELSEI=I-192:RETURN
13 | 30399 REM ----------- CREATE/EDIT TOPIC
14 | 30400 GOSUB760:IFSY$="+"THEN30600:ELSEIFI>0ANDI<26THENW5=I:GOTO30900:ELSEIFSY$<>"*"THEN920:ELSEGOSUB30100:IFI=0THEN920:ELSEW5=I:GOTO30900
15 | 30600 O$=T$(80):GOSUB4:W5=1:GOSUB30050
16 | 30700 RECORD#2,W5:O$=".":GOSUB9:SYS8222:IFI$="{pound}"THENO$=R$:GOSUB9:CLOSE2:GOTO30900:ELSEW5=W5+1:IFW5<27THEN30700
17 | 30800 CLOSE2:O$=T$(81):GOSUB4:GOTO920
18 | 30900 GOSUB30050:RECORD#2,W5:U=D(2,0):D=D(2,1):SYS8222:W5$=I$:SYS8222:W6$=I$:SYS8222:SYS8222:SYS8222:W9$=I$:CLOSE2:IFW5$="{pound}"THENW5$="":W9$=""
19 | 31100 IFSY$<>"+"ORMID$(U$(8),4,1)="1"THENE=0:SY$=W6$:W2$="{ct k}{black}Access: ":GOSUB610:W6$=SY$
20 | 31400 FORI=1TO100:TT$(I)="":NEXT:I=FRE(1):O$="{ct k}{black}Subject of voting{f7}topic: "+W5$+"{ct c}":W7$=W5$:A=20:IFW5$THENGOSUB35900:W5$=W7$:ELSEGOSUB4:GOSUB35910:W5$=W7$
21 | 31450 GOSUB400:W8$=W5$+R$+W6$+R$+STR$(ID)+R$+O$(3)+R$:O$=T$(83):GOSUB4:F$="vote.text "+CHR$(W5+64):O(12)=0:GOSUB8330:O(8)=23:O(12)=1:GOSUB1010:IFO(11)THEN920
22 | 31470 GOSUB990:IFW9$<>""THENI=VAL(W9$):ELSEI=VAL(SY$):IFSY$="*"THENO$="{ct k}{black}N)ormal topic or Q)uestionaire: {ct c}":GOSUB4:C$="NQ"+R$:GOSUB28:IFI=3THEN920
23 | 31500 GOSUB400:GOSUB30050:RECORD#2,W5:PRINT#2,W8$+STR$(I):CLOSE2:IFI=2THEN37000
24 | 31600 OPEN1,U,15:GOSUB30060:INPUT#1,I:IFI>20THENCLOSE2:CLOSE1:W1=0:GOTO32000
25 | 31700 INPUT#2,W1:FORI=1TOW1:INPUT#2,TT$(I):NEXTI:CLOSE2:CLOSE1:W1=0
26 | 32000 W7$=TT$(W1+1):O$="{ct k}{black}Description for choice{f7}"+CHR$(W1+193)+": "+W7$+"{ct c}":A=60:IFW7$THENGOSUB35900:ELSEGOSUB4:GOSUB35910
27 | 32010 IFW7$=""THEN32050:ELSETT$(W1+1)=W7$:W1=W1+1:IFW1<26THEN32000:ELSE32200
28 | 32050 O$="{ct k}{black}Was that your last choice (y/n)? {ct c}":GOSUB4:C$="NY":GOSUB28:IFI=1THEN32000
29 | 32200 O$=T$(82):GOSUB4:OPEN1,U,15,"s"+MID$(STR$(D),2)+":vote.topic "+CHR$(W5+64):CLOSE1:OPEN2,U,2,MID$(STR$(D),2)+":vote.topic "+CHR$(W5+64)+",s,w"
30 | 32300 PRINT#2,W1:FORA=1TOW1:PRINT#2,TT$(A):NEXTA:CLOSE2:GOTO940
31 | 32499 REM ----------- DELETE TOPIC
32 | 32500 GOSUB760:IFI<1ORI>26THEN32550:ELSEI=I+192:GOSUB30200:IFI=0THEN920:ELSEW5=I:GOTO32600
33 | 32550 GOSUB30100:W5=I:IFI=0THEN920
34 | 32600 O$="{ct k}{black}Are you sure (y/n)? {ct c}":GOSUB4:C$="YN":GOSUB28:IFI=2THEN920:ELSEGOSUB30050
35 | 32700 RECORD#2,W5:PRINT#2,"{pound}"+R$+"00000000000000000000000000"+R$+"0"+R$+"0":CLOSE2
36 | 32800 OPEN1,D(2,0),15,"s"+MID$(STR$(D(2,1)),2)+":vote.topic "+CHR$(W5+64):PRINT#1,"s"+MID$(STR$(D(2,1)),2)+":vote.text "+CHR$(W5+64):CLOSE1:GOTO940
37 | 32899 REM ----------- RESET TOPIC RESULTS
38 | 32900 GOSUB760:IFI<1ORI>26THEN32950:ELSEI=I+192:GOSUB30200:IFI=0THEN920:ELSEW5=I:GOTO33000
39 | 32950 GOSUB30100:W5=I:IFI=0THEN920
40 | 33000 O$="{ct k}{black}Reset vote results (y/n)? {ct c}":GOSUB4:C$="YN":GOSUB28:IFI=2THEN920
41 | 33100 GOSUB30050:RECORD#2,W5:SYS8222:CLOSE2:U=D(2,0):D=D(2,1):IFI$="{pound}"THEN33400
42 | 33200 OPEN1,U,15,"s"+MID$(STR$(D),2)+":sys.work":PRINT#1,"r"+MID$(STR$(D),2)+":sys.work=vote.topic "+CHR$(64+W5):INPUT#1,I:IFI>20THENCLOSE1:GOTO33400
43 | 33300 OPEN2,U,2,MID$(STR$(D),2)+":sys.work,s,r":OPEN3,U,3,MID$(STR$(D),2)+":vote.topic "+CHR$(64+W5)+",s,w"
44 | 33310 GOSUB31:CLOSE3:CLOSE2:PRINT#1,"s"+MID$(STR$(D),2)+":sys.work":CLOSE1
45 | 33400 O$="{ct k}{black}Done.":GOSUB4:GOTO940
46 | 33499 REM ----------- VOTE ON TOPIC
47 | 33500 GOSUB760:IFI>0ANDI<27THENI=I+192:GOSUB30200:W5=I:ON(SGN(I)+1)GOTO920,33600
48 | 33510 IFSY$="*"THENGOSUB30100:W5=I:ON(SGN(I)+1)GOTO920,33600
49 | 33550 IFSY$="+"ANDW5>0ANDW5<26THENW5=W5+1:GOTO33600:ELSEIFSY$="-"ANDW5>0ANDW5<27THENW5=W5-1:GOTO33600:ELSEW5=1:GOTO920
50 | 33600 W1=0:W2=0:FORA=0TO26:TT$(A)="":VT(A)=0:NEXTA:A=FRE(1)
51 | 33700 GOSUB30050:RECORD#2,W5:SYS8222:W5$=I$:SYS8222:W6$=I$:SYS8222:SYS8222:SYS8222:W9$=I$:U=D(2,0):D=D(2,1):CLOSE2
52 | 33800 IFW5$="{pound}"ORMID$(W6$,ASC(U$(5))-192,1)="0"THEN920:ELSEO$="{clear}{ct k}{black}"+W5$+"{ct k}":GOSUB4:F$="vote.text "+CHR$(64+W5):GOSUB26
53 | 33900 O$=T$(84):GOSUB4:OPEN1,U,15:GOSUB30060:INPUT#1,I:IFI>20THENCLOSE2:CLOSE1:GOTO920:ELSEIFVAL(W9$)=2THENO$="{ct k*2}":GOSUB4:GOTO38000
54 | 34000 INPUT#2,W3:FORI=1TOW3:SYS8222:TT$(I)=I$:NEXTI:CLOSE2:CLOSE1
55 | 34100 E=0:GOSUB30060:SYS8213:IFPEEK(253)THENE=1:GOTO34400
56 | 34200 DO:SYS8222:IFI$=""THENEXIT:ELSEW1=W1+1:VT(VAL(I$))=VT(VAL(I$))+1:SYS8222:IFSTR$(ID)=I$ORSTR$(ID)+" "=I$THENW2=1
57 | 34300 LOOPUNTILPEEK(253)
58 | 34400 CLOSE2:IFW2=1THEN34800:ELSEO$="{ct k}":GOSUB4:C$="":FORI=1TOW3:O$="{black}"+CHR$(I+192)+") "+TT$(I):C$=C$+CHR$(I+192):GOSUB4:NEXTI:C$=R$+C$
59 | 34500 O$=T$(85):GOSUB4:GOSUB28:IFI=1THEN920:ELSEO$=T$(86):GOSUB4:W1=W1+1:VT(I-1)=VT(I-1)+1
60 | 34600 OPEN2,U,2,MID$(STR$(D),2)+":vote.topic "+CHR$(W5+64)+",s,a":IFE=1THENPRINT#2,CHR$(1)
61 | 34700 PRINT#2,STR$(I-1):PRINT#2,STR$(ID):CLOSE2
62 | 34800 O$="{ct k}{black}{ct k}Results out of"+STR$(W1)+" vote(s).{ct k}":GOSUB4:FORI=1TOW3:O$="{black}"+RIGHT$(" "+STR$(VT(I)),3)+" ("+RIGHT$(" "+STR$(INT(VT(I)/W1*100)),3)
63 | 34900 O$=O$+"%): "+TT$(I):GOSUB4:NEXTI:O$="{ct k}{black}RETURN>{ct c}":GOSUB4:C$=R$:GOSUB28:IFW2<>1THEN940:ELSE920
64 | 34999 REM ----------- LIST TOPICS
65 | 35000 GOSUB990:W0$="":W1=VAL(SY$):IFW1>1THENW0$="#"
66 | 35010 GOSUB760:IFI>0ANDI<27THENX=I-1:ELSEX=0
67 | 35020 GOSUB760:IFI>0ANDI<27THENY=I:ELSEY=26
68 | 35050 GOSUB30050:O$=R$:GOSUB9
69 | 35100 X=X+1:RECORD#2,X:SYS8222:W1$=I$:SYS8222:W2$=I$:SYS8222:W3$=I$:SYS8222:W4$=I$
70 | 35200 IF(MID$(W2$,ASC(U$(5))-192,1)="0"ANDW1=0)ORW1$="{pound}"THEN35300
71 | 35210 A$=CHR$(192+X):IFW0$="#"THENA$=RIGHT$(STR$(X),2)
72 | 35230 O$="{black}"+A$+") "+LEFT$(W1$+" ",20)+"{f7} "+W4$
73 | 35250 IFW1THENO$=O$+"{ct k} By: "+UI$(VAL(W3$))+" (ID#"+W3$+") ":IFVAL(W2$)=0THENO$=O$+"*UNVALIDATED*":GOSUB4:ELSEGOSUB4
74 | 35300 GOSUB8:IFX" "THEN35100:ELSECLOSE2:GOTO940
75 | 35399 REM ----------- VALIDATE TOPIC
76 | 35400 GOSUB760:IFI>0ANDI<27THEN35500
77 | 35450 W1=301:GOSUB30100:IFI=0THEN920
78 | 35500 W5=I:GOSUB990:IFSY$<>"*"THENW6$=SY$:GOTO35700
79 | 35600 E=0:W2$="{ct k}{black}Access: ":GOSUB610:W6$=SY$
80 | 35700 GOSUB30050:RECORD#2,W5:SYS8222:W1$=I$:SYS8222:SYS8222:W2$=I$:SYS8222:W3$=I$
81 | 35800 RECORD#2,W5:PRINT#2,W1$+R$+W6$+R$+W2$+R$+W3$+R$:CLOSE2:GOTO940
82 | 35900 GOSUB4:IFW7$<>""THENC$=CHR$(20)+R$:GOSUB32:IFI=2THENO$=A$:GOSUB9:RETURN:ELSEIFW7$<>""THENFORX=1TOLEN(W7$):O$=CHR$(20):GOSUB9:NEXTX
83 | 35910 IFA=60THEN35920:ELSEX=A:GOSUB5:IFI$=""THENRETURN:ELSEW7$=I$:RETURN
84 | 35920 POKE2847,A:POKE2895,1:GOSUB6:IFI$=""THENRETURN:ELSEW7$=I$:RETURN
85 | 37000 OPEN1,U,15:GOSUB30060:INPUT#1,E:W1=1:IFETHEN37010:ELSEINPUT#2,W1:FORI=1TOW1:SYS8222:TT$(I)=I$:NEXTI
86 | 37010 CLOSE2:CLOSE1:O$="{black}Enter questions,{f7}press return when done.":GOSUB4:W9=1
87 | 37020 W7$=TT$(W9):O$="{black}Question #"+STR$(W9)+"{ct k}: "+W7$+"{ct c}":A=60:GOSUB35900:TT$(W9)=W7$
88 | 37030 IFTT$(W9)<>""THEN37040:ELSEO$="{ct k}{black}Was that your last choice (y/n)? {ct c}":GOSUB4:C$="YN":GOSUB28:IFI=2THEN37020:ELSE37050
89 | 37040 W9=W9+1:IFW9<51THEN37020
90 | 37050 OPEN1,U,15,"s"+MID$(STR$(D),2)+":vote.topic "+CHR$(64+W5):CLOSE1:OPEN2,U,2,MID$(STR$(D),2)+":vote.topic "+CHR$(64+W5)+",s,w"
91 | 37060 PRINT#2,W9-1:FORW1=1TOW9-1:PRINT#2,TT$(W1):NEXTW1:CLOSE2:GOTO940
92 | 38000 Y=0:INPUT#2,W1:FORX=1TOW1:SYS8222:TT$(X)=I$:NEXTX
93 | 38010 SYS8222:IFPEEK(253)THEN38100:ELSEIFID=VAL(I$)THENY=1
94 | 38020 FORX=1TOW1:SYS8222:NEXTX:GOTO38010
95 | 38100 CLOSE1:CLOSE2:IFYTHEN38200:ELSEO$=T$(104):GOSUB4:C$="YN"+R$:GOSUB28:IFI>1THEN920
96 | 38110 O$="":GOSUB4:FORW2=1TOW1:O$="{ct k}{black}"+TT$(W2)+"{ct k}:{white}{ct c}":GOSUB4:X=80-LEN(O$):GOSUB5:TT$(W2+50)=I$:NEXTW2:O$="{ct k}{black}Save your responses (y/n/a)? {ct c}":GOSUB4
97 | 38120 C$="YNA":GOSUB28:ONIGOTO38130,38110,920
98 | 38130 OPEN2,U,2,MID$(STR$(D),2)+":vote.topic "+CHR$(64+W5)+",s,a":PRINT#2,STR$(ID):FORX=1TOW1:PRINT#2,TT$(X+50):NEXTX:CLOSE2
99 | 38200 O$="{ct k}Responses on file:":GOSUB4
100 | 38210 OPEN1,U,15:GOSUB30060:SYS8222:W1=VAL(I$):FORX=1TOW1:SYS8222:NEXTX
101 | 38220 O$="":SYS8222:IFPEEK(253)THEN38240:ELSEIFMID$(U$(8),4,1)="1"THENO$="{yellow}{ct k}By: {white}"+UI$(VAL(I$))+"{yellow} (ID#{white}"+I$+"{yellow}){ct k}"
102 | 38230 GOSUB4:FORX=1TOW1:SYS8222:O$="{black}"+TT$(X)+"{ct k}{white}:"+I$:GOSUB4:NEXTX:GOTO38220
103 | 38240 CLOSE2:CLOSE1:IFYTHEN920:ELSE940
104 | 55555 A=PEEK(186):OPEN1,A,15,"s0:prg.voting booth":CLOSE1:DSAVE"prg.voting booth",U(A):STOP
105 |
--------------------------------------------------------------------------------
/extras/prg.bbs list.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Saturday, May 20, 2017 1:38:05 AM
3 | !- Import of :
4 | !- c:\src\zelch128\extras\prg.bbs list.prg
5 | !- Commodore 128 BASIC 7/7.1
6 | !--------------------------------------------------
7 | 10 REM **ZELCH128 BBS LIST SYSTEM -- J. MACNISH 1991**
8 | 20 U=11:DV=0:IFU<8ORU>30THENU=8:DV=0
9 | 30 CL$(1)="Commodore 64/128":CL$(2)="Amiga":CL$(3)="Apple 8-bit":CL$(4)="Macintosh":CL$(5)="IBM & clones":CL$(6)="Atari 8-bit":CL$(7)="Atari ST"
10 | 40 DIM SY$(101,6):DIM SY%(101,16)
11 | 50 AC$(1)="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ- '!"
12 | 60 AC$(2)="-1234567890":SP$=" {sh space}"
13 | 70 P=1:P2=10
14 | 80 C$(1)="C64/128":C$(2)="Amiga":C$(3)="Apple8":C$(4)="Mac":C$(5)="IBM":C$(6)="Atari8":C$(7)="ST"
15 | 90 PRINT "{clear}{down}{cyan}Zelch 128 BBS Database System"
16 | 100 PRINT:PRINT"Reading systems...";
17 | 110 DOPEN#1,"sys.bbs list",D(DV),U(U),R:IFDS<>0THENDCLOSE#1:GOSUB 1210
18 | 120 C=1
19 | 130 INPUT#1,SY$(C,1),SY$(C,2),SY$(C,3),SY$(C,4),SY$(C,5),SY%(C,1),SY%(C,2),SY%(C,3),SY%(C,4),SY%(C,5),SY%(C,6),SY%(C,7),SY%(C,8),SY%(C,9),SY%(C,10)
20 | 140 INPUT#1,SY%(C,11),SY%(C,12),SY%(C,13),SY%(C,14),SY%(C,15)
21 | 150 C=C+1:IF ST=0 THEN 130
22 | 160 PRINT:DCLOSE#1
23 | 170 PRINT:PRINT "{cyan}";STR$(C-1);" systems in database."
24 | 180 PRINT
25 | 190 PRINT "{cyan}Add, List, Search, Quit":PRINT:PRINT "BBS Database: ";:P$="ALSQ":GOSUB1120
26 | 200 IF R=4 THEN PRINT"{light gray}Quit":PRINT:PRINT "{cyan}Zelch 128 BBS list system{f7}by J. MacNish 1991":END
27 | 210 IF R=1 THEN BEGIN
28 | 220 PRINT "{light gray}Add new system"
29 | 230 PRINT
30 | 240 A=C
31 | 250 PRINT "{cyan}General Information"
32 | 260 PRINT " {white}System Name(18 characters):";:P=1:P2=18:GOSUB1060:IF R$="" THEN PRINT:GOTO 190:ELSE SY$(A,1)=R$
33 | 270 PRINT "{white}(???)XXX-XXXX Area code:";:P=3:GOSUB1170:IFR$=""ORLEN(R$)<3 THEN GOTO 190:ELSE SY$(A,2)=R$
34 | 280 PRINT "{white}(XXX)???-XXXX Phone prefix:";:P=3:GOSUB1170:SY$(A,3)=R$
35 | 290 PRINT "{white}(XXX)XXX-???? Phone postfix:";:P=4:GOSUB1170:SY$(A,3)=SY$(A,3)+"-"+R$
36 | 300 PRINT "{white} Pay:";:GOSUB1150:SY%(A,12)=R
37 | 310 PRINT "{cyan}Supported Baud Rates"
38 | 320 PRINT "{white} 300 baud supported:";:GOSUB1150:SY%(A,1)=R
39 | 330 PRINT " 1200 baud supported:";:GOSUB1150:SY%(A,2)=R
40 | 340 PRINT " 2400 baud supported:";:GOSUB1150:SY%(A,3)=R
41 | 350 PRINT " 9600 baud supported:";:GOSUB1150:SY%(A,4)=R
42 | 360 PRINT "{cyan}File Support:
43 | 370 PRINT " {white}Commodore 64/128:";:GOSUB1150:SY%(A,5)=R
44 | 380 PRINT " {white} Amiga:";:GOSUB1150:SY%(A,6)=R
45 | 390 PRINT " {white} Apple 8 bit:";:GOSUB1150:SY%(A,7)=R
46 | 400 PRINT " {white} Apple Macintosh:";:GOSUB1150:SY%(A,8)=R
47 | 410 PRINT " {white} IBM and Clones:";:GOSUB1150:SY%(A,9)=R
48 | 420 PRINT " {white} Atari 8 bit:";:GOSUB1150:SY%(A,10)=R
49 | 430 PRINT " {white} Atari ST:";:GOSUB1150:SY%(A,11)=R
50 | 440 SY$(A,4)="XXX":SY$(A,5)="XXX"
51 | 450 APPEND#1,"sys.bbs list",D(DV),U(U):FORX=1TO5:PRINT#1,SY$(A,X):NEXTX:FORX=1TO15:PRINT#1,SY%(A,X):NEXTX:DCLOSE#1
52 | 460 PRINT:PRINT "{cyan}New system added.":C=C+1
53 | 470 GOTO170:BEND
54 | 480 IF R=2 THEN BEGIN
55 | 490 PRINT "{light gray}List systems":PRINT
56 | 500 PRINTLEFT$(SP$,34);"{light gray}[{pink}--Baud(x100)--{light gray}][{yellow}-------File support-------{light gray}]"
57 | 510 PRINT"{light gray}[{white}---System Name---{light gray}][{green}ACd{light gray}][{light green}-Number-{light gray}][{pink}03{light gray}][{pink}12{light gray}][{pink}24{light gray}][{pink}96{light gray}][{yellow}64{light gray}][{yellow}Am{light gray}][{yellow}Ap{light gray}][{yellow}Mc{light gray}][{yellow}IB{light gray}][{yellow}At{light gray}][{yellow}ST{light gray}]"
58 | 520 FORX=1 TO C-1:IF SY%(X,12)=1 THEN PRINT "{pink}*{white}";:ELSE PRINT "{white} ";
59 | 530 PRINTUSING"################# {light green}({green}###{light green})/######## ";SY$(X,1),SY$(X,2),SY$(X,3);
60 | 540 FORZ=1TO4:IFSY%(X,Z)=1THENPRINT"{red}o ";:ELSEPRINT" ";
61 | 550 NEXTZ
62 | 560 FORZ=5 TO 11:IF SY%(X,Z)=1 THEN PRINT "{yellow}o ";:ELSEPRINT" ";
63 | 570 NEXTZ
64 | 580 PRINT:NEXTX
65 | 590 PRINT"{ct k}{pink}* {cyan}denotes a pay board."
66 | 600 PRINT"{ct k}{yellow}64{cyan}:Commodore 64/128 {yellow}Am{cyan}:Amiga {yellow}Ap{cyan}:Apple 8-bit {yellow}Mc{cyan}:Macintosh"
67 | 610 PRINT"{yellow}IB{cyan}:IBM & Clones {yellow}At{cyan}:Atari 8-bit {yellow}ST{cyan}:Atari ST"
68 | 620 GOTO 170
69 | 630 BEND
70 | 640 IF R=3 THEN BEGIN
71 | 650 BR=0:S1=0:S2=0:FORZ=1TO7:SC(Z)=0:NEXTZ:PRINT "{light gray}Search"
72 | 660 PRINT:PRINT "{cyan}Set search restrictions:"
73 | 670 PRINT:IF S1=0 THEN X$=" any area code":ELSE X$=STR$(S1)+" area code"
74 | 680 PRINT "{light gray}[{green}A{light gray}]{green}rea code{f7} (currently searching for"X$")"
75 | 690 IF BR=0 THEN X$=" any baud)":ELSE X$=STR$(BR)+" baud and higher)"
76 | 700 PRINT "{light gray}[{pink}B{light gray}]{pink}uad rate{f7} (currently searching for"X$
77 | 710 FOR X=1 TO 7:X$=MID$(STR$(X),2):PRINT "{light gray}[{yellow}"X$"{light gray}]{yellow}"CL$(X)" file support{f7} (currently ";:IFSC(X)=1THENPRINT"on)":ELSEPRINT"off)"
78 | 720 NEXT X
79 | 730 PRINT "{light gray}[{white}S{light gray}]{white}earch using these standards"
80 | 740 PRINT "{light gray}[{white}Q{light gray}]{white}uit search":PRINT "{ct k}{white}Choice: ";
81 | 750 P$="AB1234567SQ":GOSUB1120
82 | 760 IF R=10 THEN 850:ELSE IF R=11 THEN PRINT "{cyan}Quit":GOTO170
83 | 770 IF R=2THEN BEGIN:PRINT "{cyan}Baud rate"
84 | 780 PRINT "{ct k}{cyan}Search for baud rate at or higher than{f7}{light gray}A]{cyan}1200 {light gray}B]{cyan}2400 {light gray}C]{cyan}9600 {light gray}D]{cyan}Any{white}:";:P$="ABCD":GOSUB1120:S2=R:BR=R*1200:IFR=3THENBR=9600
85 | 790 IFR=4THENS2=0:BR=0
86 | 800 IF BR>0 THEN PRINT MID$(STR$(BR),2);" baud":ELSE PRINT "Any baud"
87 | 810 GOTO 670
88 | 820 BEND
89 | 830 IF R=1 THEN PRINT "{cyan}Search for what area code{f7}(000 for no search by area code){white}: ";:P=3:GOSUB1170:S1=VAL(R$):GOTO670
90 | 840 R=R-2:PRINT "{cyan}Toggle "CL$(R)" file support":IF SC(R) THEN SC(R)=0:GOTO670:ELSE SC(R)=1:GOTO670
91 | 850 PRINT"{cyan}Search":PRINT:PRINTLEFT$(SP$,34);"{light gray}[{pink}--Baud(x100)--{light gray}][{yellow}-------File support-------{light gray}]"
92 | 860 PRINT"{light gray}[{white}---System Name---{light gray}][{green}ACd{light gray}][{light green}-Number-{light gray}][{pink}03{light gray}][{pink}12{light gray}][{pink}24{light gray}][{pink}96{light gray}][{yellow}64{light gray}][{yellow}Am{light gray}][{yellow}Ap{light gray}][{yellow}Mc{light gray}][{yellow}IB{light gray}][{yellow}At{light gray}][{yellow}ST{light gray}]"
93 | 870 FOR X=1 TO C-1:IF S1<>0 AND S1<>VAL(SY$(X,2)) THEN970
94 | 880 IF S2<>0 AND SY%(X,(S2+1))=0 THEN 970
95 | 890 FOR Y=1 TO 7:IF SC(Y)=1 AND SY%(X,(Y+4))=0 THEN 970
96 | 900 NEXT Y
97 | 910 IF SY%(X,12)=1 THEN PRINT "{pink}*{white}";:ELSE PRINT "{white} ";
98 | 920 PRINTUSING"################# {light green}({green}###{light green})/######## ";SY$(X,1),SY$(X,2),SY$(X,3);
99 | 930 FORZ=1TO4:IFSY%(X,Z)=1THENPRINT"{red}o ";:ELSEPRINT" ";
100 | 940 NEXTZ
101 | 950 FORZ=5 TO 11:IF SY%(X,Z)=1 THEN PRINT "{yellow}o ";:ELSEPRINT" ";
102 | 960 NEXTZ
103 | 970 NEXT X:PRINT
104 | 980 PRINT"{ct k}{pink}* {cyan}denotes a pay board."
105 | 990 PRINT"{ct k}{yellow}64{cyan}:Commodore 64/128 {yellow}Am{cyan}:Amiga {yellow}Ap{cyan}:Apple 8-bit {yellow}Mc{cyan}:Macintosh"
106 | 1000 PRINT"{yellow}IB{cyan}:IBM & Clones {yellow}At{cyan}:Atari 8-bit {yellow}ST{cyan}:Atari ST"
107 | 1010 GOTO 170
108 | 1020 BEND
109 | 1030 GOTO 170
110 | 1040 END
111 | 1050 REM **INPUT**
112 | 1060 R$=""
113 | 1070 GETKEYX$
114 | 1080 IF X$=CHR$(13) THEN PRINT CHR$(13);:RETURN
115 | 1090 IFX$=CHR$(20)ANDLEN(R$)>0 THEN R$=LEFT$(R$,LEN(R$)-1):PRINTX$;:GOTO1070:ELSE IF INSTR(AC$(P),X$)=0 THEN 1070
116 | 1100 IF LEN(R$)=P2 THEN 1070:ELSE R$=R$+X$:PRINT X$;:GOTO1070
117 | 1110 REM **QUICKKEY:P$=COMMAND STRING**
118 | 1120 GETKEYX$:R=INSTR(P$,X$):IFRTHENRETURN
119 | 1130 X$=CHR$(ASC(X$)OR128):R=INSTR(P$,X$):IFRTHENRETURN:ELSE1120
120 | 1140 REM ** YES/NO **
121 | 1150 R=0:X$="":GETKEYX$:IFX$<>"y"ANDX$<>"Y"ANDX$<>"N"ANDX$<>"n" THEN 1150:ELSE IFX$="y" OR X$="Y" THEN R=1:PRINT "Yes":RETURN:ELSE PRINT "No":RETURN
122 | 1160 REM **FORMATTED NUMERIC INPUT:P=LENGTH**
123 | 1170 R$=""
124 | 1180 GETKEYX$:IFX$=CHR$(13) AND LEN(R$)=P THEN PRINT CHR$(13);:RETURN
125 | 1190 IF X$=CHR$(20)ANDLEN(R$)>0 THEN R$=LEFT$(R$,LEN(R$)-1):PRINTX$;:GOTO 1180:ELSE IF INSTR("1234567890",X$)=0 THEN 1180
126 | 1200 IF LEN(R$)=P THEN 1180:ELSE R$=R$+X$:PRINTX$;:GOTO1180
127 | 1210 DOPEN#1,"sys.bbs list",D(DV),U(U),W:FORX=1TO5:READA$:PRINT#1,A$:NEXTX:FORX=1TO15:READA:PRINT#1,A:NEXTX:DCLOSE#1:DOPEN#1,"sys.bbs list",D(DV),U(U),R:RETURN
128 | 1220 DATA "Elite","602","742-7319","XXX","XXX",1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
129 |
--------------------------------------------------------------------------------
/extras/gam.startrek.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Saturday, May 20, 2017 1:35:47 AM
3 | !- Import of :
4 | !- c:\src\zelch128\extras\gam.star.prg
5 | !- Commodore 128 BASIC 7/7.1
6 | !--------------------------------------------------
7 | 20 Q$="{sh +}XV@*"
8 | 25 DA$(0)="{purple} Move":DA$(2)="{purple} {sh -} 1.5":DA$(3)="{purple} 5-+-1":DA$(4)="{purple} {sh -} "
9 | 27 DA$(5)="{purple} 6 7 8":DA$(1)="{purple} 4 3 2"
10 | 30 D$(0)="{pink}Warp engines"
11 | 40 D$(1)="{yellow}Short range sensors"
12 | 50 D$(2)="{light green}Long range sensors"
13 | 60 D$(3)="{cyan}Phasers"
14 | 70 D$(4)="{light blue}Photon torpedoes":D$(5)="{blue}Galactic records"
15 | 90 I=INT(RND(1)*256):FORJ=0TOI:K=RND(1):NEXT
16 | 100 DEFFND(N)=SQR((K1(I)-S1)^2+(K2(I)-S2)^2)
17 | 110 GOSUB610:GOSUB450:Q1=X:Q2=Y:X=8:Y=1:X1=.2075:Y1=6.28:X2=3.28
18 | 120 Y2=1.8:A=.96:C=100:W=10:K9=0:B9=0:S9=400:T9=3575:GOTO 140
19 | 130 K=K+(NA):B9=B9-B:Q(I,J)=K*C+B*W-INT(RND(Y)*X+Y):NEXTJ,I
24 | 170 IFK9>(T9-T0)THENT9=T0+K9
25 | 180 IFB9>0THEN182
26 | 181 GOSUB450:Q(X,Y)=Q(X,Y)-10:B9=0
27 | 182 PRINT"{clear}";TAB(15)"{down*3}Star Trek V"
28 | 183 FORI=1TO1000:NEXTI:GOTO190
29 | 184 NEXTI:E$="{cm i*3}U{sh asterisk}I{down}{left*4}MJ{cm r}K{down}{left*5}{reverse on}{cm i*4}{reverse off}"
30 | 185 PRINT"{up*2}";:FORI=1TO34:PRINT" {down}{left} {down}{left*3} {left}{up*2}";E$;"{up*2}{left*5}";:NEXT
31 | 190 PRINT"{clear}{down*2}"
32 | 191 PRINT"{light green}You command the starship enterprise."
33 | 193 PRINT"{down*2}Objective:"
34 | 194 PRINT"{down}Find and destroy";K9;"klingons in 55 years"
35 | 195 INPUT"{down}instructions (y/n)";E$:IFE$="n"THEN218
36 | 197 PRINT"{clear}{down}"
37 | 200 PRINT"{white}*GALAXY-64 Zones of 64 Sectors each"
38 | 201 PRINT"*Command 3 shows objects in your zone"
39 | 202 PRINT" and surrounding 8 zones"
40 | 203 PRINT" (digit 1-klingons 2-bases 3-stars)"
41 | 204 PRINT"*Torpedoes or phasers destroy klingons"
42 | 205 PRINT"*.125 warp moves you one sector"
43 | 206 PRINT"*Dock at base to reload torpedoes and"
44 | 207 PRINT" energy. *-star X-you V-klingon @-base"
45 | 208 PRINT"{right}{down}{right*2}{purple}COMMAND LIST{right}"
46 | 209 U=-1
47 | 210 U=U+1:PRINT LEFT$(D$(U),1);U+1;D$(U):
48 | 211 IFU<>5THEN210
49 | 215 PRINT:PRINT"( hit any key to cont.)";
50 | 216 GETE$:IFE$=""THEN216
51 | 218 PRINT"{clear}{down}"
52 | 230 A=0:IFQ1<0ORQ1>7ORQ2<0ORQ2>7THENN=0:S=0:K=0:GOTO250
53 | 240 N=ABS(Q(Q1,Q2)):Q(Q1,Q2)=N:S=N-INT(N/10)*10:K=INT(N/100)
54 | 250 B=INT(N/10-K*10):GOSUB450:S1=X:S2=Y
55 | 260 FORI=0TO7:FORJ=0TO7:S(I,J)=1:NEXTJ,I:S(S1,S2)=2
56 | 270 FORI=0TO7:K3(I)=0:X=8:IFI0THENGOSUB460:S(X,Y)=4
59 | 300 IFI>0THENGOSUB460:S(X,Y)=5:I=I-1:GOTO300
60 | 310 GOSUB550:IFA=0THENGOSUB480
61 | 320 IFE<=0THEN1370
62 | 330 I=1:IFD(I)>0THEN620
63 | 340 GOSUB4000
64 | 443 GOTO650
65 | 450 X=INT(RND(1)*8):Y=INT(RND(1)*8):RETURN
66 | 460 GOSUB450:IFS(X,Y)>1THEN460
67 | 470 RETURN
68 | 480 IFK<1THENRETURN
69 | 490 IFC$="{white}Docked"THENPRINT"Starbase protects enterprise":RETURN
70 | 500 FORI=0TO7:IFK3(I)<=0THENNEXT:RETURN
71 | 510 H=K3(I)*.4*RND(1):K3(I)=K3(I)-H:H=H/(FND(0)^.4):E=E-H
72 | 520 E$="Enterprise from":N=E:GOSUB530:NEXT:GOSUB4000:RETURN
73 | 530 PRINT"{down*2}{red}";H" Unit hit on ";E$
74 | 535 PRINT" Sector";K1(I)+1;"-";K2(I)+1;
75 | 540 PRINT"(";N;"left)":FORC=1TO500
76 | 545 NEXTC:RETURN
77 | 550 FORI=S1-1TOS1+1:FORJ=S2-1TOS2+1
78 | 560 IFI<0ORI>7ORJ<0ORJ>7THEN580
79 | 570 IFS(I,J)=4THENC$="{white}Docked":E=E0:P=P0:GOSUB610:RETURN
80 | 580 NEXTJ,I:IFK>0THENC$="{red}Red":RETURN
81 | 590 IFE6THEN680
90 | 670 ONAGOTO710,310,1250,1140,690,1300
91 | 680 FORI=0TO5:PRINTLEFT$(D$(I),1);I+1;"= ";D$(I):NEXT:GOTO650
92 | 690 IFD(4)>0THENPRINT"{purple}Space crud blocking tubes!":I=4:GOTO630
93 | 700 N=15:IFP<1THENPRINT"{purple}No torpedoes left":GOTO650
94 | 710 IFA=5THENPRINT"{purple}Torpedo ";
95 | 720 INPUT"Course(1-8.9)";Z:IFZ<1THEN650
96 | 730 IFZ>=9THEN710
97 | 740 IFA=5THENP=P-1:PRINT"{purple}Track";:GOTO900
98 | 750 INPUT"Warp(0-12)";W:IFW<=0ORW>12THEN710
99 | 760 IFW<=.2ORD(0)<=0THEN780
100 | 770 I=0:PRINTD$(I);" damaged, max is .2":GOSUB630:GOTO750
101 | 780 GOSUB480:IFE<=0THEN1370
102 | 790 IFRND(1)>.33THEN870
103 | 800 X=INT(RND(1)*6):IFRND(1)>.5THEN830
104 | 810 D(X)=D(X)+INT(6-RND(1)*5):PRINT"{blue}**SPACE{sh space}STORM, "
105 | 820 PRINTD$(X);" damaged**":I=X:GOSUB630:D(X)=D(X)+1:GOTO870
106 | 830 FORI=XTO5:IFD(I)>0THEN860
107 | 850 NEXT:FORI=0TOX:IFD(I)<=0THENNEXT:GOTO870
108 | 860 D(I)=.5:PRINT"{light blue}**Spock used a new repair technique**"
109 | 870 FORI=0TO5:IFD(I)=0THEN890
110 | 880 D(I)=D(I)-1:IF D(I)<=0THEND(I)=0:PRINTD$(I);" are fixed"
111 | 890 NEXT:N=INT(W*8):E=E-N-N+.5:S(S1,S2)=1
112 | 900 T=T+1:Y1=S1+.5:X1=S2+.5:IFT>T9THEN1370
113 | 910 Y=(Z-1)*.785398:X=COS(Y):Y=-SIN(Y)
114 | 920 FORI=1TON:Y1=Y1+Y:X1=X1+X:Y2=INT(Y1):X2=INT(X1)
115 | 930 IFX2<0ORX2>7ORY2<0ORY2>7THEN1110
116 | 940 IFA=5THENPRINTY2+1;"-";X2+1,
117 | 950 IFS(Y2,X2)=1THENNEXT:GOTO1060
118 | 960 PRINT:IFA=1THENPRINT"Blocked by ";
119 | 970 ONS(Y2,X2)-3GOTO1040,1020
120 | 980 PRINT"Klingon";:IFA=1THEN1050
121 | 990 FORI=0TO7:IFY2<>K1(I)THEN1010
122 | 1000 IFX2=K2(I)THENK3(I)=0
123 | 1010 NEXT:K=K-1:K9=K9-1:GOTO1070
124 | 1020 PRINT"Star";:IFA=5THENS=S-1:GOTO1070
125 | 1030 GOTO1050
126 | 1040 PRINT"Starbase";:IFA=5THENB=2:GOTO1070
127 | 1050 PRINT" at sector";Y2+1;"-";X2+1:Y2=INT(Y1-Y):X2=INT(X1-X)
128 | 1060 S1=Y2:S2=X2:S(S1,S2)=2:A=2:GOTO310
129 | 1070 PRINT" destroyed!";:IFB=2THENB=0:PRINT".traitor!!!";
130 | 1080 PRINT:S(Y2,X2)=1:Q(Q1,Q2)=K*100+B*10+S:T=T-1:IFK<1THENC$="{light green}Green"
131 | 1085 GOSUB4000:IFK9<1THEN1400
132 | 1090 GOSUB480:IFE<=0THEN1370
133 | 1100 GOSUB550:GOTO650
134 | 1110 IFA=5THENPRINT"Missed!":GOTO1090
135 | 1120 Q1=INT(Q1+W*Y+(S1+.5)/8):Q2=INT(Q2+W*X+(S2+.5)/8)
136 | 1130 Q1=Q1-(Q1<0)+(Q1>7):Q2=Q2-(Q2<0)+(Q2>7):GOTO230
137 | 1140 I=3:IFD(I)>0THEN620
138 | 1150 INPUT"{pink}Units to fire";X:IFX<=0THEN650
139 | 1160 IFX>ETHENPRINT"YOU'VE ONLY GOT";E:GOTO1150
140 | 1170 E=E-X:Y=K:FORI=0TO7:IFK3(I)<=0THEN1230
141 | 1180 H=X/(Y*(FND(0)^.4)):K3(I)=K3(I)-H
142 | 1190 E$="Klingon at":N=K3(I):GOSUB530
143 | 1200 IFK3(I)>0THEN1230
144 | 1210 PRINT"{purple}**Klingon destroyed**"
145 | 1220 K=K-1:K9=K9-1:S(K1(I),K2(I))=1:Q(Q1,Q2)=Q(Q1,Q2)-100
146 | 1230 NEXT:IFK<1THENC$="{light green}Green"
147 | 1231 GOSUB4000:IFK9<1THEN1400
148 | 1235 IFT>T9THEN1370
149 | 1240 GOTO1090
150 | 1250 I=2:IFD(I)>0THEN620
151 | 1260 PRINTD$(I);" for zone";Q1+1;"-";Q2+1
152 | 1270 FORI=Q1-1TOQ1+1:FORJ=Q2-1TOQ2+1:PRINT" ";
153 | 1280 IFI<0ORI>7ORJ<0ORJ>7THENPRINT"***";:GOTO1350
154 | 1290 Q(I,J)=ABS(Q(I,J)):GOTO1340
155 | 1300 I=5:IFD(I)>0THEN620
156 | 1310 PRINT"{clear}{light blue}Galactic record for{down}":PRINT" stardate";T;"{down}":M=1
157 | 1320 FORI=0TO7:FORJ=0TO7:PRINT" ";
158 | 1330 IFQ(I,J)<0THENPRINT"***";:GOTO1350
159 | 1340 E$=STR$(Q(I,J)):E$="00"+MID$(E$,2):PRINTRIGHT$(E$,3);
160 | 1350 NEXTJ:PRINT:NEXTI
161 | 1351 IFM<>1THENGOSUB610:GOTO650
162 | 1355 PRINT"Hit any key to cont.":M=0
163 | 1356 GETA$:IFA$=""THEN1356
164 | 1357 PRINT"{clear}":GOTO310
165 | 1360 PRINT:PRINT"{down}{yellow}It is stardate";T:RETURN
166 | 1370 GOSUB1360:PRINT
167 | 1371 PRINT"You lose!{down}"
168 | 1374 PRINT"The federation will be conquered by the"
169 | 1375 PRINT"remaining";K9;"klingon cruisers!":GOTO9999
170 | 1400 GOSUB1360
171 | 1401 PRINT"{down}{yellow}The federation is safe!"
172 | 1402 PRINT
173 | 1410 PRINT"{down}You destroyed";O%;"klingons in";T-T0;"years!{down}"
174 | 1420 PRINT"Rating:";INT(Z/(T-T0)*1000)
175 | 1421 GOTO9999
176 | 4000 PRINT"{down}{purple}":FORI=0TO7:FORJ=0TO7:PRINT"{purple}";MID$(Q$,S(I,J),1); ;:NEXTJ
177 | 4350 print" ";:onigoto4380,4390,4400,4410,4420,4430,4440
178 | 4360 PRINT"{light blue}Years :{white}";T9-T
179 | 4370 NEXT:GOTO4442
180 | 4380 PRINT"{light blue}Stardate :{white}";T;TAB(29);"{white}{sh -}";DA$(0):GOTO4370
181 | 4390 PRINT"{light blue}Condition: ";C$;TAB(29);"{white}{sh -}";DA$(1):GOTO4370
182 | 4400 PRINT"{light blue}Zone :{white}";Q1+1;"-";Q2+1;TAB(29);"{white}{sh -}";DA$(2):GOTO4370
183 | 4410 PRINT"{light blue}Sector :{white}";S1+1;"-";S2+1;TAB(29);"{white}{sh -}";DA$(3):GOTO4370
184 | 4420 PRINT"{light blue}Energy :{white}";INT(E)"{left} ";TAB(29);"{white}{sh -}";DA$(4):GOTO4370
185 | 4430 PRINT"{light blue}Torpedos :{white}";P;TAB(29);"{white}{sh -}";DA$(5):GOTO4370
186 | 4440 PRINT"{light blue}Klingons :{white}";K9"{left} {left}":GOTO4370
187 | 4442 PRINT"{light blue}Klingons at start :{white}"O%;" {light blue}Star bases:{white}";B9
188 | 4500 RETURN
189 | 9999 END
190 |
--------------------------------------------------------------------------------
/extras/prg.star trek.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Saturday, May 20, 2017 1:38:34 AM
3 | !- Import of :
4 | !- c:\src\zelch128\extras\prg.star trek.prg
5 | !- Commodore 128 BASIC 7/7.1
6 | !--------------------------------------------------
7 | 20 Q$="{sh +}XV@*"
8 | 25 DA$(0)="{purple} Move":DA$(2)="{purple} {sh -} 1.5":DA$(3)="{purple} 5-+-1":DA$(4)="{purple} {sh -} "
9 | 27 DA$(5)="{purple} 6 7 8":DA$(1)="{purple} 4 3 2"
10 | 30 D$(0)="{pink}Warp engines"
11 | 40 D$(1)="{yellow}Short range sensors"
12 | 50 D$(2)="{light green}Long range sensors"
13 | 60 D$(3)="{cyan}Phasers"
14 | 70 D$(4)="{light blue}Photon torpedoes":D$(5)="{blue}Galactic records"
15 | 90 I=INT(RND(1)*256):FORJ=0TOI:K=RND(1):NEXT
16 | 100 DEFFND(N)=SQR((K1(I)-S1)^2+(K2(I)-S2)^2)
17 | 110 GOSUB610:GOSUB450:Q1=X:Q2=Y:X=8:Y=1:X1=.2075:Y1=6.28:X2=3.28
18 | 120 Y2=1.8:A=.96:C=100:W=10:K9=0:B9=0:S9=400:T9=3575:GOTO 140
19 | 130 K=K+(NA):B9=B9-B:Q(I,J)=K*C+B*W-INT(RND(Y)*X+Y):NEXTJ,I
24 | 170 IFK9>(T9-T0)THENT9=T0+K9
25 | 180 IFB9>0THEN182
26 | 181 GOSUB450:Q(X,Y)=Q(X,Y)-10:B9=0
27 | 182 PRINT"{clear}";TAB(15)"{down*3}Star Trek V"
28 | 183 FORI=1TO1000:NEXTI:GOTO190
29 | 184 NEXTI:E$="{cm i*3}U{sh asterisk}I{down}{left*4}MJ{cm r}K{down}{left*5}{reverse on}{cm i*4}{reverse off}"
30 | 185 PRINT"{up*2}";:FORI=1TO34:PRINT" {down}{left} {down}{left*3} {left}{up*2}";E$;"{up*2}{left*5}";:NEXT
31 | 190 PRINT"{clear}{down*2}"
32 | 191 PRINT"{light green}You command the starship enterprise."
33 | 193 PRINT"{down*2}Objective:"
34 | 194 PRINT"{down}Find and destroy";K9;"klingons in 55 years"
35 | 195 INPUT"{down}instructions (y/n)";E$:IFE$="n"THEN218
36 | 197 PRINT"{clear}{down}"
37 | 200 PRINT"{white}*GALAXY-64 Zones of 64 Sectors each"
38 | 201 PRINT"*Command 3 shows objects in your zone"
39 | 202 PRINT" and surrounding 8 zones"
40 | 203 PRINT" (digit 1-klingons 2-bases 3-stars)"
41 | 204 PRINT"*Torpedoes or phasers destroy klingons"
42 | 205 PRINT"*.125 warp moves you one sector"
43 | 206 PRINT"*Dock at base to reload torpedoes and"
44 | 207 PRINT" energy. *-star X-you V-klingon @-base"
45 | 208 PRINT"{right}{down}{right*2}{purple}COMMAND LIST{right}"
46 | 209 U=-1
47 | 210 U=U+1:PRINT LEFT$(D$(U),1);U+1;D$(U):
48 | 211 IFU<>5THEN210
49 | 215 PRINT:PRINT"( hit any key to cont.)";
50 | 216 GETE$:IFE$=""THEN216
51 | 218 PRINT"{clear}{down}"
52 | 230 A=0:IFQ1<0ORQ1>7ORQ2<0ORQ2>7THENN=0:S=0:K=0:GOTO250
53 | 240 N=ABS(Q(Q1,Q2)):Q(Q1,Q2)=N:S=N-INT(N/10)*10:K=INT(N/100)
54 | 250 B=INT(N/10-K*10):GOSUB450:S1=X:S2=Y
55 | 260 FORI=0TO7:FORJ=0TO7:S(I,J)=1:NEXTJ,I:S(S1,S2)=2
56 | 270 FORI=0TO7:K3(I)=0:X=8:IFI0THENGOSUB460:S(X,Y)=4
59 | 300 IFI>0THENGOSUB460:S(X,Y)=5:I=I-1:GOTO300
60 | 310 GOSUB550:IFA=0THENGOSUB480
61 | 320 IFE<=0THEN1370
62 | 330 I=1:IFD(I)>0THEN620
63 | 340 GOSUB4000
64 | 443 GOTO650
65 | 450 X=INT(RND(1)*8):Y=INT(RND(1)*8):RETURN
66 | 460 GOSUB450:IFS(X,Y)>1THEN460
67 | 470 RETURN
68 | 480 IFK<1THENRETURN
69 | 490 IFC$="{white}Docked"THENPRINT"Starbase protects enterprise":RETURN
70 | 500 FORI=0TO7:IFK3(I)<=0THENNEXT:RETURN
71 | 510 H=K3(I)*.4*RND(1):K3(I)=K3(I)-H:H=H/(FND(0)^.4):E=E-H
72 | 520 E$="Enterprise from":N=E:GOSUB530:NEXT:GOSUB4000:RETURN
73 | 530 PRINT"{down*2}{red}";H" Unit hit on ";E$
74 | 535 PRINT" Sector";K1(I)+1;"-";K2(I)+1;
75 | 540 PRINT"(";N;"left)":FORC=1TO500
76 | 545 NEXTC:RETURN
77 | 550 FORI=S1-1TOS1+1:FORJ=S2-1TOS2+1
78 | 560 IFI<0ORI>7ORJ<0ORJ>7THEN580
79 | 570 IFS(I,J)=4THENC$="{white}Docked":E=E0:P=P0:GOSUB610:RETURN
80 | 580 NEXTJ,I:IFK>0THENC$="{red}Red":RETURN
81 | 590 IFE6THEN680
90 | 670 ONAGOTO710,310,1250,1140,690,1300
91 | 680 FORI=0TO5:PRINTLEFT$(D$(I),1);I+1;"= ";D$(I):NEXT:GOTO650
92 | 690 IFD(4)>0THENPRINT"{purple}Space crud blocking tubes!":I=4:GOTO630
93 | 700 N=15:IFP<1THENPRINT"{purple}No torpedoes left":GOTO650
94 | 710 IFA=5THENPRINT"{purple}Torpedo ";
95 | 720 INPUT"Course(1-8.9)";Z:IFZ<1THEN650
96 | 730 IFZ>=9THEN710
97 | 740 IFA=5THENP=P-1:PRINT"{purple}Track";:GOTO900
98 | 750 INPUT"Warp(0-12)";W:IFW<=0ORW>12THEN710
99 | 760 IFW<=.2ORD(0)<=0THEN780
100 | 770 I=0:PRINTD$(I);" damaged, max is .2":GOSUB630:GOTO750
101 | 780 GOSUB480:IFE<=0THEN1370
102 | 790 IFRND(1)>.33THEN870
103 | 800 X=INT(RND(1)*6):IFRND(1)>.5THEN830
104 | 810 D(X)=D(X)+INT(6-RND(1)*5):PRINT"{blue}**SPACE{sh space}STORM, "
105 | 820 PRINTD$(X);" damaged**":I=X:GOSUB630:D(X)=D(X)+1:GOTO870
106 | 830 FORI=XTO5:IFD(I)>0THEN860
107 | 850 NEXT:FORI=0TOX:IFD(I)<=0THENNEXT:GOTO870
108 | 860 D(I)=.5:PRINT"{light blue}**Spock used a new repair technique**"
109 | 870 FORI=0TO5:IFD(I)=0THEN890
110 | 880 D(I)=D(I)-1:IF D(I)<=0THEND(I)=0:PRINTD$(I);" are fixed"
111 | 890 NEXT:N=INT(W*8):E=E-N-N+.5:S(S1,S2)=1
112 | 900 T=T+1:Y1=S1+.5:X1=S2+.5:IFT>T9THEN1370
113 | 910 Y=(Z-1)*.785398:X=COS(Y):Y=-SIN(Y)
114 | 920 FORI=1TON:Y1=Y1+Y:X1=X1+X:Y2=INT(Y1):X2=INT(X1)
115 | 930 IFX2<0ORX2>7ORY2<0ORY2>7THEN1110
116 | 940 IFA=5THENPRINTY2+1;"-";X2+1,
117 | 950 IFS(Y2,X2)=1THENNEXT:GOTO1060
118 | 960 PRINT:IFA=1THENPRINT"Blocked by ";
119 | 970 ONS(Y2,X2)-3GOTO1040,1020
120 | 980 PRINT"Klingon";:IFA=1THEN1050
121 | 990 FORI=0TO7:IFY2<>K1(I)THEN1010
122 | 1000 IFX2=K2(I)THENK3(I)=0
123 | 1010 NEXT:K=K-1:K9=K9-1:GOTO1070
124 | 1020 PRINT"Star";:IFA=5THENS=S-1:GOTO1070
125 | 1030 GOTO1050
126 | 1040 PRINT"Starbase";:IFA=5THENB=2:GOTO1070
127 | 1050 PRINT" at sector";Y2+1;"-";X2+1:Y2=INT(Y1-Y):X2=INT(X1-X)
128 | 1060 S1=Y2:S2=X2:S(S1,S2)=2:A=2:GOTO310
129 | 1070 PRINT" destroyed!";:IFB=2THENB=0:PRINT".traitor!!!";
130 | 1080 PRINT:S(Y2,X2)=1:Q(Q1,Q2)=K*100+B*10+S:T=T-1:IFK<1THENC$="{light green}Green"
131 | 1085 GOSUB4000:IFK9<1THEN1400
132 | 1090 GOSUB480:IFE<=0THEN1370
133 | 1100 GOSUB550:GOTO650
134 | 1110 IFA=5THENPRINT"Missed!":GOTO1090
135 | 1120 Q1=INT(Q1+W*Y+(S1+.5)/8):Q2=INT(Q2+W*X+(S2+.5)/8)
136 | 1130 Q1=Q1-(Q1<0)+(Q1>7):Q2=Q2-(Q2<0)+(Q2>7):GOTO230
137 | 1140 I=3:IFD(I)>0THEN620
138 | 1150 INPUT"{pink}Units to fire";X:IFX<=0THEN650
139 | 1160 IFX>ETHENPRINT"YOU'VE ONLY GOT";E:GOTO1150
140 | 1170 E=E-X:Y=K:FORI=0TO7:IFK3(I)<=0THEN1230
141 | 1180 H=X/(Y*(FND(0)^.4)):K3(I)=K3(I)-H
142 | 1190 E$="Klingon at":N=K3(I):GOSUB530
143 | 1200 IFK3(I)>0THEN1230
144 | 1210 PRINT"{purple}**Klingon destroyed**"
145 | 1220 K=K-1:K9=K9-1:S(K1(I),K2(I))=1:Q(Q1,Q2)=Q(Q1,Q2)-100
146 | 1230 NEXT:IFK<1THENC$="{light green}Green"
147 | 1231 GOSUB4000:IFK9<1THEN1400
148 | 1235 IFT>T9THEN1370
149 | 1240 GOTO1090
150 | 1250 I=2:IFD(I)>0THEN620
151 | 1260 PRINTD$(I);" for zone";Q1+1;"-";Q2+1
152 | 1270 FORI=Q1-1TOQ1+1:FORJ=Q2-1TOQ2+1:PRINT" ";
153 | 1280 IFI<0ORI>7ORJ<0ORJ>7THENPRINT"***";:GOTO1350
154 | 1290 Q(I,J)=ABS(Q(I,J)):GOTO1340
155 | 1300 I=5:IFD(I)>0THEN620
156 | 1310 PRINT"{clear}{light blue}Galactic record for{down}":PRINT" stardate";T;"{down}":M=1
157 | 1320 FORI=0TO7:FORJ=0TO7:PRINT" ";
158 | 1330 IFQ(I,J)<0THENPRINT"***";:GOTO1350
159 | 1340 E$=STR$(Q(I,J)):E$="00"+MID$(E$,2):PRINTRIGHT$(E$,3);
160 | 1350 NEXTJ:PRINT:NEXTI
161 | 1351 IFM<>1THENGOSUB610:GOTO650
162 | 1355 PRINT"Hit any key to cont.":M=0
163 | 1356 GETA$:IFA$=""THEN1356
164 | 1357 PRINT"{clear}":GOTO310
165 | 1360 PRINT:PRINT"{down}{yellow}It is stardate";T:RETURN
166 | 1370 GOSUB1360:PRINT
167 | 1371 PRINT"You lose!{down}"
168 | 1374 PRINT"The federation will be conquered by the"
169 | 1375 PRINT"remaining";K9;"klingon cruisers!":GOTO9999
170 | 1400 GOSUB1360
171 | 1401 PRINT"{down}{yellow}The federation is safe!"
172 | 1402 PRINT
173 | 1410 PRINT"{down}You destroyed";O%;"klingons in";T-T0;"years!{down}"
174 | 1420 PRINT"Rating:";INT(Z/(T-T0)*1000)
175 | 1421 GOTO9999
176 | 4000 PRINT"{down}{purple}":FORI=0TO7:FORJ=0TO7:PRINT"{purple}";MID$(Q$,S(I,J),1); ;:NEXTJ
177 | 4350 PRINT" ";:ONIGOTO4380,4390,4400,4410,4420,4430,4440
178 | 4360 PRINT"{light blue}Years :{white}";T9-T
179 | 4370 NEXT:GOTO4442
180 | 4380 PRINT"{light blue}Stardate :{white}";T;TAB(29);"{white}{sh -}";DA$(0):GOTO4370
181 | 4390 PRINT"{light blue}Condition: ";C$;TAB(29);"{white}{sh -}";DA$(1):GOTO4370
182 | 4400 PRINT"{light blue}Zone :{white}";Q1+1;"-";Q2+1;TAB(29);"{white}{sh -}";DA$(2):GOTO4370
183 | 4410 PRINT"{light blue}Sector :{white}";S1+1;"-";S2+1;TAB(29);"{white}{sh -}";DA$(3):GOTO4370
184 | 4420 PRINT"{light blue}Energy :{white}";INT(E)"{left} ";TAB(29);"{white}{sh -}";DA$(4):GOTO4370
185 | 4430 PRINT"{light blue}Torpedos :{white}";P;TAB(29);"{white}{sh -}";DA$(5):GOTO4370
186 | 4440 PRINT"{light blue}Klingons :{white}";K9"{left} {left}":GOTO4370
187 | 4442 PRINT"{light blue}Klingons at start :{white}"O%;" {light blue}Star bases:{white}";B9
188 | 4500 RETURN
189 | 9999 END
190 |
--------------------------------------------------------------------------------
/v3.0 3d00.asm:
--------------------------------------------------------------------------------
1 |
2 |
3 | * = $3D00
4 | ;.D V3.0 3D00
5 | ; *** INTERRUPT/ MISC ROUTINES.
6 | JMP SETUP; 15616 / 1000 / SETUP INITIAL POINTERS/INITIALIZE INTERRUPTS
7 | JMP LOCKUPS; 15619 / 2000 / INTERRUPTS
8 | JMP OVERLAY; 15622 / 3000 / SET UP OVERLAY POINTERS
9 | JMP UNDERLAY; 15625 / 4000 / RESET BASIC VECTORS
10 | JMP CURSOR; 15628 / 5000 / 40 COLUMN CURSOR CONTROL
11 | JMP ONWINDOW; 15631 / 6000 / SEND STRING TO POSITION ON WINDOW
12 | JMP CLEAR1; 15634 / 7000 / SET VARS FOR CLEAR
13 | JMP CLEAR2; 15637 / 7500 / RESET VARS FOR CLEAR
14 | ;******************SETUP INITIAL IMPORTANT VALUES********************
15 | SETUP
16 | SEI; ITS A DIRTY JOB...
17 | LDA $0314
18 | STA PLACE
19 | LDA $0315
20 | STA PLACE+1; IRQ VECTORS
21 | LDA #$03
22 | STA $0314
23 | LDA #$3D
24 | STA $0315; REPLACE WITH NEW IRQ
25 | LDX $0BA9; * SAVE RAMDOS DRIVE
26 | LDY #$00
27 | TYA;***CLEAR POINTER AREA
28 | CLRLOP
29 | STA $0B02,Y
30 | INY
31 | CPY #$F0
32 | BNE CLRLOP
33 | STX $0BA9; * RESTORE RAMDOS DRIVE
34 | LDA $D7
35 | CMP #$80
36 | BEQ CUR80; CHECK COLUMNS
37 | LDA #$38
38 | STA $1FF8; USING SPRITE NUMBER 1
39 | LDA #$01
40 | STA $D015; TURN SPRITE ON
41 | LDA #$00
42 | STA $D017
43 | STA $D01B
44 | STA $D01C
45 | STA $D01D; DEFAULTS
46 | LDA #$00
47 | STA $D020
48 | STA $D021; BACKGROUND DEFAULTS
49 | JMP CUR40
50 | CUR80
51 | NOP;PUT 80 COL CURSOR SETUP HERE
52 | CUR40
53 | CLI
54 | RTS
55 | PLACE
56 | NOP
57 | NOP
58 | ;***********************INTERRUPT ROUTINES*****************
59 | LOCKUPS
60 | SEI
61 | LDA $0B07
62 | BNE NOCHK
63 | LDA $DD01;****IGNORE CARRIER CHECKS FOR SYSOP
64 | AND $0B24
65 | CMP $0B25
66 | BNE NOCHK
67 | JMP LOGOFF;**CARRIER FAIL
68 | NOCHK
69 | LDA $0B62
70 | BEQ LOCHK
71 | LDA $DD0A
72 | CMP #$05
73 | BNE NOCHK2
74 | LDA $DD0B
75 | CMP #$12
76 | BNE NOCHK2
77 | LDA #$00
78 | STA $0B62
79 | LOCHK
80 | LDA $DD0A
81 | BNE NOCHK2
82 | LDA $DD0B
83 | CMP $0B90
84 | BNE LICHK
85 | LDA $0B91
86 | BNE LICHK
87 | LDA #$01
88 | STA $0B91
89 | LICHK
90 | CMP #$12
91 | BNE NOCHK2
92 | LDA $0B40
93 | LDX $0B3F
94 | CMP $0B40,X
95 | BEQ SKP1
96 | INC $0B40
97 | JMP SOCHK
98 | SKP1
99 | LDA #$01
100 | STA $0B40
101 | LDA $0B3F
102 | CMP #$0C
103 | BEQ SOCHK2
104 | INC $0B3F
105 | JMP SOCHK
106 | SOCHK2
107 | LDA #$01
108 | STA $0B3F
109 | INC $0B2F
110 | SOCHK
111 | LDA #$01
112 | STA $0B62
113 | NOCHK2
114 | LDA $0B08
115 | BEQ LOGOFF
116 | LDA $D3
117 | AND #$08;***CHECK ALT
118 | STA $0B4D
119 | BEQ NOALT
120 | LDA $0B71
121 | BEQ NOALT
122 | LDA $0B72
123 | BNE NOALT
124 | JSR LOCKALT
125 | NOALT
126 | LDA $DC00
127 | CMP #$6F
128 | BNE INRR
129 | LDA $D4
130 | CMP #$58
131 | BNE INRR
132 | LDA #$08
133 | STA $0B4D;**DO BUTTON
134 | INRR
135 | LDA $0B09
136 | BEQ TIMEUP; TIME UP
137 | LDA $0B0A; CHECK A TICK
138 | CMP $DD0A
139 | BNE INRC
140 | JMP OUTA
141 | TIMEUP
142 | LDA #$00
143 | STA $0B08
144 | STA $0B09
145 | LOGOFF
146 | LDA #$01
147 | STA $0B0B;***LOGOFFFLAG
148 | OUTA
149 | LDA $DD08
150 | JMP (PLACE); GOODBYE
151 | INRC
152 | LDA $DD0A
153 | STA $0B0A
154 | DEC $0B09;*****LOSE ONE TICK
155 | DEC $0BA7
156 | LDA $0B09
157 | BNE SLTM
158 | LDA $0BA7
159 | BEQ TIMEUP
160 | SLTM
161 | NOP
162 | LDA $0B9E
163 | BEQ INRR;**CHK IDLE
164 | LDA $0B07
165 | BNE INRR
166 | DEC $0B9D
167 | BNE INRR
168 | JMP TIMEUP
169 | ;**************SET UP BASIC OVERLAY NEXTS****************
170 | OVERLAY
171 | LDA $0B05
172 | BNE OVRCONT
173 | LDA $1210
174 | STA $0B02
175 | LDA $1211
176 | STA $0B03; SAVE END BASIC POINTERS
177 | LDA $2D
178 | STA $0B04
179 | LDA $2E
180 | STA $0B05; SAVE START OF BASIC POINTERS
181 | OVRCONT
182 | LDA $0B02
183 | SEC
184 | SBC #$02
185 | STA $2D
186 | LDA $0B03
187 | SBC #$00
188 | STA $2E
189 | LDA #$01
190 | STA $0B06
191 | RTS
192 | LOCKALT
193 | LDY #$00
194 | ALP
195 | LDA BIXIT,Y
196 | STA $034A,Y
197 | INY
198 | CPY #$08
199 | BNE ALP
200 | STY $D0
201 | RTS
202 |
203 | BIXIT
204 | BYTE 83,89,83,56,50,52,51,13
205 | ;**********RESTORE OLD BASIC POINTERS***************
206 | UNDERLAY
207 | LDA $0B06
208 | BEQ ALLSET
209 | LDA $0B04
210 | STA $2D
211 | LDA $0B05
212 | STA $2E; RESET START OF BASIC
213 | ALLSET
214 | LDA #$00
215 | STA $0B06
216 | RTS
217 | ;*************40 COLUMN CURSOR CONTROLER******************
218 | CURSOR
219 | LDA $D7
220 | CMP #$80
221 | BEQ CURS80; SKIP IF 80 COLUMNS
222 | LDA #$01
223 | STA $D015
224 | LDA #$38
225 | STA $1FF8
226 | STA $07F8
227 | LDA $F1
228 | STA $D027; SPRITE COLOR
229 | LDA $EB; CURSOR Y COORD CONTROL
230 | CLC
231 | ASL
232 | ASL
233 | ASL
234 | ADC #$32
235 | STA $D001
236 | LDA $EC; CURSOR X COORD CONTROL
237 | CMP #$28
238 | BCC OVRBDR;OVER BOUNDRY
239 | SEC
240 | SBC #$28
241 | OVRBDR
242 | CMP #$1F
243 | BCS SKIP0;FORGOT WHAT THIS DOES
244 | ASL
245 | ASL
246 | ASL
247 | ADC #$08
248 | STA $D000
249 | LDA #$00
250 | STA $D010;LEFT SIDE OF BORDER
251 | JMP CURS80
252 | SKIP0
253 | SEC
254 | SBC #$1F
255 | ASL
256 | ASL
257 | ASL
258 | STA $D000
259 | LDA #$01
260 | STA $D010;RIGHT SIDE OF BORDER
261 | CURS80
262 | RTS
263 | ;**************ROUTINE TO POSITION A STRING ON THE WINDOW****************
264 | ONWINDOW
265 | LDY #$00
266 | ONWINLP
267 | LDA $E0,Y
268 | STA $0B30,Y;*TEMP STORAGE
269 | INY
270 | CPY #$0F
271 | BNE ONWINLP
272 | LDA #$00
273 | STA $E5
274 | STA $E6;* RESET WINDOWS
275 | LDA #$18
276 | STA $E4
277 | LDA $EE
278 | STA $E7
279 | LDA $0B2D
280 | STA $EC
281 | LDA $0B2E
282 | STA $EB
283 | JSR $C15C;*SET CRSR POSITIONS
284 | LDY #$09
285 | LDA #$2F
286 | LDX #$01
287 | JSR $FF74
288 | STA $FB;*BEGIN STRING OUT
289 | INY
290 | LDA #$2F
291 | LDX #$01
292 | JSR $FF74
293 | STA $FC
294 | INY
295 | LDA #$2F
296 | LDX #$01
297 | JSR $FF74
298 | STA $FD
299 | LDY #$00
300 | ONWINLP2
301 | LDA #$FC
302 | LDX #$01
303 | JSR $FF74
304 | STA $FE
305 | JSR $FFD2;*SEND STRING
306 | INY
307 | CPY $FB
308 | BNE ONWINLP2
309 | LDY #$00
310 | ONWINLP3
311 | LDA $0B30,Y
312 | STA $E0,Y;*RESTORE OLD VALUES
313 | INY
314 | CPY #$0F
315 | BNE ONWINLP3
316 | LDA #$00
317 | STA $F3
318 | STA $F4
319 | STA $F5
320 | RTS
321 | ;****************ROUTINE TO SET VAR POINTERS BEFORE CLR*******************
322 | CLEAR1
323 | LDA $032C
324 | STA $0B51
325 | LDA $032D
326 | STA $0B52
327 | LDY #$00
328 | CLRLP
329 | LDA $2F,Y
330 | STA $0B53,Y
331 | INY
332 | CPY #$0D
333 | BNE CLRLP
334 | LDA #$EF
335 | STA $032C
336 | LDA #$84
337 | STA $032D
338 | RTS
339 | STA $7D
340 | STY $7E
341 | JSR $5AE1
342 | LDX #$1B
343 | STX $18
344 | PLA
345 | TAY
346 | PLA
347 | LDX #$FA
348 | TXS
349 | PHA
350 | TYA
351 | PHA
352 | LDA #$00
353 | STA $1203
354 | STA $12
355 | STA $03DF
356 | CLI
357 | RTS
358 | ;****************ROUTINE TO RESTORE POINTERS AFTER CLR*******************
359 | CLEAR2
360 | LDA $0B51
361 | STA $032C
362 | LDA $0B52
363 | STA $032D
364 | LDY #$00
365 | CLRLP2
366 | LDA $0B53,Y
367 | STA $2F,Y
368 | INY
369 | CPY #$0D
370 | BNE CLRLP2
371 | RTS
372 | PRINT
373 | NOP
374 | ;
375 | ;'OPEN1,8,15,"S0:ML3D00,V3.0 3D00":CLOSE1:SAVE"ML3D00",8
376 |
377 |
378 |
--------------------------------------------------------------------------------
/extras/gam.zcasino.bas:
--------------------------------------------------------------------------------
1 | !--------------------------------------------------
2 | !- Wednesday, August 18, 2021 1:05:36 AM
3 | !- Import of :
4 | !- c:\tmp\newproject\gam.zcasino.prg
5 | !- Unknown Machine
6 | !--------------------------------------------------
7 | 30000 SYS15625
8 | 30010 U=PEEK(186):D=0:W2$=MID$(STR$(D),2):F$="cas.opener":GOSUB25:IFPEEK(215)THENFAST
9 | 30020 O$="{ct k*2}{pink}Zelch 128 Credit Casino{ct k}By Elite Software":GOSUB4:L=1:FORX=1TO60:TT$(X)="":NEXTX
10 | 30030 IFPEEK(2825)<7THENO$="{ct k*2}{yellow}You're running short on time,{f7}come back tomorrow!{ct k*2}":GOSUB4:GOTO920
11 | 30040 FORX=1TO4:FORY=2TO14:A$=RIGHT$(STR$(Y),2):IFY>10THENA$=" "+MID$("JQKA",Y-10,1)
12 | 30050 TT$(Y+((X-1)*13))=A$+"-"+MID$(STR$(X),2):NEXTY:NEXTX
13 | 30060 OPEN2,U,2,W2$+":cas.player,s,r":INPUT#2,I$:INPUT#2,W1$:X=0:FORI=1TO7:INPUT#2,VT(I):X=X+VT(I):NEXTI:CLOSE2:W0=(U$(1)=I$)AND(W1$=LEFT$(O$(2),6))
14 | 30070 IFW0ANDX>30THENO$="{ct k}Let other people have a chance!!":GOSUB4:GOTO920:ELSEIFNOT(W0)THENFORI=1TO7:VT(I)=0:NEXTI:GOTO30090:ELSE30090
15 | 30080 OPEN1,U,15,"s"+W2$+":cas.player":CLOSE1:OPEN2,U,2,W2$+":cas.player,s,w":PRINT#2,U$(1)+R$+LEFT$(O$(2),6):FORI=1TO7:PRINT#2,VT(I):NEXTI:CLOSE2:GOTO920
16 | 30090 RESTORE:FORI=1TO51:X=INT(RND(TI)*51)+1:A$=TT$(X):TT$(X)=TT$(I):TT$(I)=A$:NEXTI:FORI=1TO6:READVT$(I):NEXTI:FORI=11TO16:READVT$(I):NEXTI
17 | 30095 DATA"{space*4}o{space*4}","o{space*7}o","o{space*3}o{space*3}o","o o{space*3}o o","o o o o o","o oo oo o"
18 | 30096 DATA "cherry{space*2}","plum{space*4}","apple{space*3}","grapes{space*2}","jackpot ","orange{space*2}"
19 | 30097 W5$="Craps{space*5}High/Low{space*2}Roulette{space*2}Black JackCut High{space*2}Slots{space*5}"
20 | 30100 GOSUB30160:O$="{yellow}Casino Main: {white}{ct c}":GOSUB4
21 | 30110 W7=0:C$="?CHRBTSQ":GOSUB28:IFI>1ANDI<8THENO$="":GOSUB4:IFVT(I)>=5THENVT(I)=5:O$="{pink}Sorry, your plays are up for{f7}that area.":GOSUB4:GOTO30100
22 | 30120 W9=I-1:ONIGOTO30140,31000,32000,33000,34000,35000,36000,30130
23 | 30130 O$="{ct k}{cyan}Quit to BBS (y/n)? {ct c}":GOSUB4:C$="YN":GOSUB28:ONIGOTO30080,30100
24 | 30140 O$="{clear}{ct k*2}{light gray}Casino Main Menu{ct k}":GOSUB4:A$=" {white}-{yellow}={cyan}":I$="{yellow}={white}-{cyan}{space*4}":X=1:W8=0
25 | 30150 O$=A$+MID$(C$,X+1,1)+I$+MID$(W5$+"Quit{space*6}",((X-1)*10)+1,10):GOSUB4:X=X+1:IFX<8THEN30150:ELSEO$="{ct k*2}":GOSUB4:GOTO30100
26 | 30160 O$="{yellow}{ct k}Credits: {white}"+STR$(U(2)):GOSUB4:RETURN
27 | 30170 IFVT(W9+1)=5THENO$="{ct k*2}{pink}Your plays for this part of the{f7}Casino are up, go somewhere else.":GOSUB4:GOTO30100
28 | 30175 W7=0:C$="?PHQ":GOSUB28:ONIGOTO30180,30220,30200:O$="{ct k}":GOSUB4:GOTO30100
29 | 30180 O$="{clear}{ct k*2}{light gray}"+MID$(W5$,((W9-1)*10)+1,10)+"{ct k*2} {white}-{yellow}={cyan}Play{yellow}={white}-{ct k} {white}-{yellow}={cyan}Help{yellow}={white}-{ct k} {white}-{yellow}={cyan}Quit to main{yellow}={white}-{ct k*2}":GOSUB4:I=W9+1:GOTO30120
30 | 30200 F$="cas.help"+STR$(W9):GOSUB25:I=W9+1:GOTO30120
31 | 30220 I=W9+1:W7=1:VT(I)=VT(I)+1:GOTO30120
32 | 30230 O$="{ct k*2}{light green}"+A$+": {white}{ct c}":GOSUB4:GOSUB10:IFI<1THENI=0:RETURN
33 | 30240 IFI>U(2)THENO$="{ct k}{red}You only have "+MID$(STR$(U(2)),2)+" credits remaining":GOSUB4:I=0:RETURN:ELSEW6=I:RETURN
34 | 30250 O$="{ct k}{white}{space*3}{cm d}{cm i*3}{cm f}":GOSUB4:FORX=1TO9STEP3:O$="{space*3}{reverse on}{cm k}"+MID$(VT$(I),X,3)+"{reverse off}{cm k}":GOSUB4:NEXTX:O$="{space*3}{cm c}{reverse on}{cm i*3}{reverse off}{cm v}":GOSUB4:RETURN
35 | 30260 O$="{ct k}{yellow}You've won"+STR$(W6*A)+" credits!":GOSUB4:U(2)=U(2)+(W6*A):I=W9+1:GOTO30120
36 | 30270 IFY>=51ORLEN(TT$(Y))<3THENGOSUB30280
37 | 30272 O$="{ct k}{white}"+LEFT$(TT$(Y),2)+" of ":O$=O$+MID$("DiamondsClubs{space*3}Hearts{space*2}Spades{space*2}",((VAL(RIGHT$(TT$(Y),1))-1)*8)+1,8):GOSUB4:W0=VAL(LEFT$(TT$(Y),2))
38 | 30273 IFW0=0THENW0=10:IFMID$(TT$(Y),2,1)="A"ANDW8=0THENW0=11
39 | 30275 IFW8=1THENW8=0:IFMID$(TT$(Y),2,1)="A"THENO$="{ct k}An ace!{ct k}Count it as (a) 1 or (b) 11? {ct c}":GOSUB4:C$="AB":GOSUB28:W0=I:IFI=2THENW0=11
40 | 30276 RETURN
41 | 30280 IFL>=51THENFORI=1TO51:A$=TT$(I):Y=INT(RND(TI)*51)+1:TT$(I)=TT$(Y):TT$(Y)=A$:NEXTI:L=1
42 | 30290 Y=L:L=L+1:RETURN
43 | 30300 A$=LEFT$(TT$(A),2):A=VAL(A$):IFA$=" J"THENA=11:ELSEIFA$=" Q"THENA=12:ELSEIFA$=" K"THENA=13:ELSEIFA$=" A"THENA=14
44 | 30310 RETURN
45 | 30320 SLEEP1:O$="Click!...{ct c}":GOSUB4:RETURN
46 | 31000 IFW7=0THENGOSUB30160:O$="{light green}Craps menu: {white}{ct c}":GOSUB4:GOTO30170
47 | 31010 W7=0:A$="Throw for how much":GOSUB30230:IFI=0THEN31000
48 | 31020 O$="{ct k*2}{light blue}Rolling the dice...":GOSUB4
49 | 31030 W2=INT(RND(TI)*6)+1:I=W2:GOSUB30250
50 | 31040 W3=INT(RND(TI)*6)+1:I=W3:GOSUB30250:W4=W2+W3:IFW4=7ORW4=11THENA=1:GOSUB30260:GOTO31000:ELSEIFW4=2THEN31000
51 | 31050 O$="{ct k}{cyan}You must throw a(n)"+STR$(W4)+"...":GOSUB4:SLEEP2
52 | 31060 W2=INT(RND(TI)*6)+1:I=W2:GOSUB30250:W3=INT(RND(TI)*6)+1:I=W3:GOSUB30250
53 | 31070 W5=W2+W3:IFW5=7ORW5=11ORW5=2THEN31080:ELSEIFW4=W5THENA=1:GOTO30260:ELSEO$="{ct k}{white}{cyan}No dice, rolling again...":GOSUB4:SLEEP1:GOTO31060
54 | 31080 O$="{ct k*2}{red}CRAPS!!!":GOSUB4:U(2)=U(2)-W6:GOTO31000
55 | 32000 IFW7=0THENGOSUB30160:O$="{cyan}High/Low menu: {white}{ct c}":GOSUB4:GOTO30170
56 | 32010 W7=0:A$="Bet how much on this round":GOSUB30230:IFI=0THEN32000
57 | 32020 X=1:GOSUB30280:GOSUB30270
58 | 32025 IFX=4THENA=1:GOTO30260
59 | 32030 O$="{ct k}{green}H)igher or L)ower: {white}{ct c}":GOSUB4:C$="HL":GOSUB28
60 | 32040 A=Y:GOSUB30300:W2=A:W5=I:GOSUB30280:GOSUB30270:A=Y:GOSUB30300:IF(A>W2ANDW5=1)OR(A36THEN33000
66 | 33040 W2=INT(RND(TI)*36)+1:O$="{ct k*2}{light blue}The ball is off...{ct c}":GOSUB4:SLEEP3:O$="{ct k*2}{blue}It falls on number"+STR$(W2)+"{ct k*2}":GOSUB4:IFI=W2THENA=36:GOTO30260
67 | 33050 O$="{ct k}{pink}Sorry, you lose!":GOSUB4:U(2)=U(2)-W6:GOTO33000
68 | 33060 O$="{ct k}{cyan}A {white}1-18{ct k}{cyan}B {white}19-36{ct k}{cyan}C {white}Red{ct k}{cyan}D {white}Black{ct k}{cyan}E {white}Even{ct k}{cyan}F {white}Odd{ct k}{cyan}G {white}Left col{ct k}{cyan}H {white}Mid col{ct k}{cyan}I {white}Right col{ct k}{cyan}{ct k}Which will it be? {white}{ct c}":GOSUB4
69 | 33070 C$="ABCDEFGHI":GOSUB28:W2=INT(RND(TI)*36)+1:O$="{ct k}{light blue}The ball is off...{ct c}":GOSUB4:SLEEP3:O$="{ct k*2}{blue}It falls on number"+STR$(W2)+"{ct k*2}":GOSUB4
70 | 33080 A=1:IFI=1ANDW2>0ANDW2<19THEN30260
71 | 33090 IFI=2ANDW2>18ANDW2<37THEN30260
72 | 33100 IFI=3ORI=5THENIF(INT(W2/2)=(W2/2))THEN30260
73 | 33110 IFI=4ORI=6THENIF(INT(W2/2)<>(W2/2))THEN30260
74 | 33120 IFI>6THENBEGIN:E=0:FORX=(I-6)TO36STEP3:IFW2=XTHENE=1
75 | 33130 NEXTX:BEND:IFI>6ANDE=1THEN30260
76 | 33140 GOTO33050
77 | 34000 IFW7=0THENGOSUB30160:O$="{light gray}Blackjack menu: {white}{ct c}":GOSUB4:GOTO30170
78 | 34010 W7=0:A$="Amount to anti":GOSUB30230:IFI=0THEN34000
79 | 34020 W2=0:GOSUB30280:O$="{ct k}{yellow}Facing up, I have a: ":GOSUB4:GOSUB30270:W1=W0:X=Y
80 | 34030 GOSUB30280:O$="{ct k*2}{yellow}Your cards:":GOSUB4:W8=1:GOSUB30270:W2=W2+W0
81 | 34040 GOSUB30280:W8=1:GOSUB30270:W2=W2+W0
82 | 34050 IFW2=21THENO$="{ct k}{pink}Blackjack!{ct k}":GOSUB4:A=1:GOTO30260
83 | 34060 IFW2>21THENO$="{ct k}You're over!":GOSUB4:U(2)=U(2)-W6:GOTO34000
84 | 34070 O$="{ct k}{pink}Points:{white}"+STR$(W2)+"{ct k}{pink}Hit {cyan}or {yellow}Stay{cyan} (H/S)? {white}{ct c}":GOSUB4:C$="HS":GOSUB28:ONIGOTO34040,34080
85 | 34080 O$="{ct k*2}{yellow}Ok, my turn:":GOSUB4:Y=X:GOSUB30270
86 | 34090 GOSUB30280:GOSUB30270:W1=W1+W0
87 | 34100 IFW1=21THENO$="{ct k}{pink}Blackjack!{ct k}You lose!":GOSUB4:U(2)=U(2)-W6:GOTO34000
88 | 34110 IFW1>21THENO$="{ct k}{cyan}I'm over...":GOSUB4:A=1:GOTO30260
89 | 34120 IFW1<17THENSLEEP1:O$="{ct k}{yellow}I must take a card...":GOSUB4:GOTO34090
90 | 34130 O$="{ct k}{cyan}My total:"+STR$(W1)+" points{ct k}Your total:"+STR$(W2)+" points{ct k*2}":GOSUB4
91 | 34140 IFW1>=W2THENO$="{ct k}You lose!":GOSUB4:U(2)=U(2)-W6:GOTO34000
92 | 34150 A=1:GOTO30260
93 | 35000 IFW7=0THENGOSUB30160:O$="{light green}Cut High menu: {white}{ct c}":GOSUB4:GOTO30170
94 | 35010 W7=0:A$="How much will you bet":GOSUB30230:IFI=0THEN34000
95 | 35020 O$="{ct k}{light blue}Rolling dice...{ct c}":GOSUB4:SLEEP1:O$="...My roll:{ct k}":GOSUB4
96 | 35030 W2=INT(RND(TI)*6)+1:I=W2:GOSUB30250:W0=INT(RND(TI)*6)+1:I=W0:GOSUB30250:W0=W0+W2
97 | 35040 SLEEP1:O$="{ct k}{blue}{space*12}Your roll:{ct k}":GOSUB4
98 | 35050 W2=INT(RND(TI)*6)+1:I=W2:GOSUB30250:W1=INT(RND(TI)*6)+1:I=W1:GOSUB30250:W1=W1+W2
99 | 35060 IFW1=W0THENO$="{ct k}{yellow}It's a tie!":GOSUB4:GOTO35000
100 | 35070 IFW1>W0THENA=1:GOTO30260:ELSEO$="{ct k}{cyan}You're a loser!":GOSUB4:U(2)=U(2)-W6:GOTO35000
101 | 36000 IFW7=0THENGOSUB30160:O$="{light gray}Slot machine: {white}{ct c}":GOSUB4:GOTO30170
102 | 36005 I=5:GOSUB30240:IFI=0THEN36000
103 | 36010 W7=0:O$="{ct k}{purple}You pop 5 credits in,{ct k}Hit {red}{purple} to pull the arm,{f7}or {green}{purple} to abort: {white}{ct c}":GOSUB4:C$=" "+R$:GOSUB28:ONIGOTO36020,36000
104 | 36020 O$="{ct k}{light blue}Spinning...{ct c}":GOSUB4:GOSUB30320:GOSUB30320:GOSUB30320:SLEEP1
105 | 36030 W0=INT(RND(TI)*6)+1:W1=INT(RND(TI)*6)+1:W2=INT(RND(TI)*6)+1
106 | 36040 O$="{ct k*2}"+VT$(10+W0)+VT$(10+W1)+VT$(10+W2):A=0:GOSUB4
107 | 36050 A=0:IFW0=1THENA=1:IFW1=1THENA=2:IFW2=1THENA=4
108 | 36060 IFW0=5ANDW1=5ANDW2=5THENA=5:GOTO30260
109 | 36070 IFW0=W1ANDW1=W2THENA=2:GOTO30260
110 | 36080 IFATHEN30260:ELSEO$="{ct k}{pink}Nothing! Oh well...":GOSUB4:U(2)=U(2)-5:GOTO36000
111 | 55555 A=PEEK(186):OPEN1,A,15,"s0:gam.zcasino":CLOSE1:SAVE"gam.zcasino",A
112 |
--------------------------------------------------------------------------------