initial cammit
authorSvjatoslav Agejenko <n0@big-laptop.(none)>
Sat, 7 Jul 2012 19:37:48 +0000 (22:37 +0300)
committerSvjatoslav Agejenko <n0@big-laptop.(none)>
Sat, 7 Jul 2012 19:37:48 +0000 (22:37 +0300)
632 files changed:
.project [new file with mode: 0755]
COPYING [new file with mode: 0755]
automation/school clock/kell/aasta.ap [new file with mode: 0755]
automation/school clock/kell/autoexec.bat [new file with mode: 0755]
automation/school clock/kell/coff.asm [new file with mode: 0755]
automation/school clock/kell/coff.com [new file with mode: 0755]
automation/school clock/kell/ekr.bas [new file with mode: 0755]
automation/school clock/kell/juhend.txt [new file with mode: 0755]
automation/school clock/kell/kk.bas [new file with mode: 0755]
automation/school clock/kell/opetajap.pp [new file with mode: 0755]
automation/school clock/kell/rebased.pp [new file with mode: 0755]
automation/school clock/kell/reede.pp [new file with mode: 0755]
automation/school clock/kell/skeem.bmp [new file with mode: 0755]
automation/school clock/kell/sync.txt [new file with mode: 0755]
automation/school clock/kell/tava.pp [new file with mode: 0755]
automation/school clock/kell/tuhi.pp [new file with mode: 0755]
automation/school clock/kell2/aasta.ap [new file with mode: 0755]
automation/school clock/kell2/kkmini.bas [new file with mode: 0755]
automation/school clock/kell2/luhend.pp [new file with mode: 0755]
automation/school clock/kell2/opetajap.pp [new file with mode: 0755]
automation/school clock/kell2/rebased.pp [new file with mode: 0755]
automation/school clock/kell2/reede.pp [new file with mode: 0755]
automation/school clock/kell2/sync.txt [new file with mode: 0755]
automation/school clock/kell2/tava.pp [new file with mode: 0755]
automation/school clock/kell2/tuhi.pp [new file with mode: 0755]
automation/school clock/kell3/aasta.ap [new file with mode: 0755]
automation/school clock/kell3/juhend.txt [new file with mode: 0755]
automation/school clock/kell3/kell3.bas [new file with mode: 0755]
automation/school clock/kell3/luhend.pp [new file with mode: 0755]
automation/school clock/kell3/reede.pp [new file with mode: 0755]
automation/school clock/kell3/skeem.png [new file with mode: 0755]
automation/school clock/kell3/tava.pp [new file with mode: 0755]
automation/school clock/kell3/tuhi.pp [new file with mode: 0755]
database/auto.scr [new file with mode: 0755]
database/data.ddb [new file with mode: 0755]
database/ddbase6.bas [new file with mode: 0755]
database/lisa.scr [new file with mode: 0755]
doc/index.html [new file with mode: 0755]
games/checkers/checkers.bas [new file with mode: 0755]
games/checkers/index.html [new file with mode: 0755]
games/checkers/sshot.png [new file with mode: 0755]
games/kabe.bas [new file with mode: 0755]
games/mario/0.i01 [new file with mode: 0755]
games/mario/1.i01 [new file with mode: 0755]
games/mario/2.i01 [new file with mode: 0755]
games/mario/3.i01 [new file with mode: 0755]
games/mario/4.i01 [new file with mode: 0755]
games/mario/5.i01 [new file with mode: 0755]
games/mario/6.i01 [new file with mode: 0755]
games/mario/7.i01 [new file with mode: 0755]
games/mario/8.i01 [new file with mode: 0755]
games/mario/9.i01 [new file with mode: 0755]
games/mario/index.html [new file with mode: 0755]
games/mario/kast.i01 [new file with mode: 0755]
games/mario/mario1.i01 [new file with mode: 0755]
games/mario/mario2.i01 [new file with mode: 0755]
games/mario/munt.i01 [new file with mode: 0755]
games/mario/munt1.i01 [new file with mode: 0755]
games/mario/munt2.i01 [new file with mode: 0755]
games/mario/pilv.i01 [new file with mode: 0755]
games/mario/poosas.i01 [new file with mode: 0755]
games/mario/puu.i01 [new file with mode: 0755]
games/mario/smario.bas [new file with mode: 0755]
games/mario/sshot.png [new file with mode: 0755]
games/mario/tellis.i01 [new file with mode: 0755]
games/mario/tigu.i01 [new file with mode: 0755]
games/mario/tigu1.i01 [new file with mode: 0755]
games/sippar.bas [new file with mode: 0755]
games/worm/1.lvl [new file with mode: 0755]
games/worm/10.lvl [new file with mode: 0755]
games/worm/11.lvl [new file with mode: 0755]
games/worm/2.lvl [new file with mode: 0755]
games/worm/3.lvl [new file with mode: 0755]
games/worm/4.lvl [new file with mode: 0755]
games/worm/5.lvl [new file with mode: 0755]
games/worm/6.lvl [new file with mode: 0755]
games/worm/7.lvl [new file with mode: 0755]
games/worm/8.lvl [new file with mode: 0755]
games/worm/9.lvl [new file with mode: 0755]
games/worm/worm.bas [new file with mode: 0755]
graphics/3D/!.bas [new file with mode: 0755]
graphics/3D/04vann2.bas [new file with mode: 0755]
graphics/3D/3dSynthezier/.project [new file with mode: 0755]
graphics/3D/3dSynthezier/bin/3dparse.bas [new file with mode: 0755]
graphics/3D/3dSynthezier/bin/city1.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/bin/city1.bat [new file with mode: 0755]
graphics/3D/3dSynthezier/bin/city2.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/bin/city2.bat [new file with mode: 0755]
graphics/3D/3dSynthezier/bin/result.mtl [new file with mode: 0755]
graphics/3D/3dSynthezier/doc/axes.png [new file with mode: 0755]
graphics/3D/3dSynthezier/doc/c1.jpg [new file with mode: 0755]
graphics/3D/3dSynthezier/doc/c2.jpg [new file with mode: 0755]
graphics/3D/3dSynthezier/doc/c3.jpg [new file with mode: 0755]
graphics/3D/3dSynthezier/doc/city1.jpg [new file with mode: 0755]
graphics/3D/3dSynthezier/doc/city2.jpg [new file with mode: 0755]
graphics/3D/3dSynthezier/doc/city3.jpg [new file with mode: 0755]
graphics/3D/3dSynthezier/doc/city_hexagon.blend [new file with mode: 0755]
graphics/3D/3dSynthezier/doc/city_square.blend [new file with mode: 0755]
graphics/3D/3dSynthezier/doc/index.html [new file with mode: 0755]
graphics/3D/3dSynthezier/include/6nrk0s.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/6nrk2s.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/blk1.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/blk2.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/blk3.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/blk4.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/bridge.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/bridge1.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/bridgegl.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/bus.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/bus_frnt.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/bus_wind.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/car.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/car_frnt.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/cars.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/flare_r.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/flare_w.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/handrail.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/katus.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/katus2.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/katus3.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/krs1.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/krs2.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/kuppel.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/maja.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/nrk4.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/nrk6.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/nrk8.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/plaat.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/pol.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/pol_ceil.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/pol_frnt.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/ring.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/seinl1.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/seinp1.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/solar.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/toru.3d [new file with mode: 0755]
graphics/3D/3dSynthezier/include/vedru.3d [new file with mode: 0755]
graphics/3D/3dball.bas [new file with mode: 0755]
graphics/3D/3dexplor/explgala.bas [new file with mode: 0755]
graphics/3D/3dexplor/explgala.bat [new file with mode: 0755]
graphics/3D/3dexplor/explmaze.bas [new file with mode: 0755]
graphics/3D/3dexplor/explmaze.bat [new file with mode: 0755]
graphics/3D/3dexplor/qbext.com [new file with mode: 0755]
graphics/3D/3dexplor/script.dat [new file with mode: 0755]
graphics/3D/3dland.bas [new file with mode: 0755]
graphics/3D/3dlife.bas [new file with mode: 0755]
graphics/3D/3dlife.dat [new file with mode: 0755]
graphics/3D/3ds2.bas [new file with mode: 0755]
graphics/3D/3dtest.bas [new file with mode: 0755]
graphics/3D/3dtext.bas [new file with mode: 0755]
graphics/3D/KHK Intellektika 2004 demo/CAT.I01 [new file with mode: 0755]
graphics/3D/KHK Intellektika 2004 demo/KHKDEMO.BAS [new file with mode: 0755]
graphics/3D/KHK Intellektika 2004 demo/KHKDEMO2.BAS [new file with mode: 0755]
graphics/3D/KHK Intellektika 2004 demo/KHKDEMO3.BAS [new file with mode: 0755]
graphics/3D/KHK Intellektika 2004 demo/KHKDEMO6.BAS [new file with mode: 0755]
graphics/3D/KHK Intellektika 2004 demo/RAY.BAS [new file with mode: 0755]
graphics/3D/KHK Intellektika 2004 demo/khkdemo4.BAS [new file with mode: 0755]
graphics/3D/KHK Intellektika 2004 demo/khkdemo5.BAS [new file with mode: 0755]
graphics/3D/font.dat [new file with mode: 0755]
graphics/3D/gravi.bas [new file with mode: 0755]
graphics/3D/mtrxmath.bas [new file with mode: 0755]
graphics/3D/ray casting engine/index.html [new file with mode: 0755]
graphics/3D/ray casting engine/raycast.bas [new file with mode: 0755]
graphics/3D/ray casting engine/sshot.png [new file with mode: 0755]
graphics/3D/realtime anaglyph/glasses-front.gif [new file with mode: 0755]
graphics/3D/realtime anaglyph/index.html [new file with mode: 0755]
graphics/3D/realtime anaglyph/sshot.png [new file with mode: 0755]
graphics/3D/realtime anaglyph/stereo.BAS [new file with mode: 0755]
graphics/3D/rocket.bas [new file with mode: 0755]
graphics/3D/stars.bas [new file with mode: 0755]
graphics/3D/swapping 3D engine/doc/index.html [new file with mode: 0755]
graphics/3D/swapping 3D engine/doc/sshot.png [new file with mode: 0755]
graphics/3D/swapping 3D engine/engine.bas [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR100.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR101.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR102.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR103.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR104.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR105.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR106.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR107.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR108.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR109.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR110.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR111.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR112.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR113.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR114.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR115.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR116.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR117.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR118.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR119.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR120.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR121.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR122.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR123.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR124.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR125.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR126.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR127.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR128.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR129.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR130.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR131.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR132.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR133.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR134.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR135.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR136.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR137.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR138.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR139.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR140.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR141.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR142.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR143.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR144.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR145.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR146.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR147.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR148.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR149.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR150.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR151.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR152.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR153.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR154.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR155.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR156.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR157.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR158.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR159.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR160.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR161.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR162.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR163.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR164.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR165.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR166.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR167.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR168.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR169.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR170.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR171.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR172.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR173.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR174.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR175.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR176.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR177.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR178.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR179.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR180.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR181.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR182.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR183.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR184.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR185.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR186.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR187.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR188.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR189.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR190.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR191.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR192.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR193.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR194.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR195.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR196.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR197.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR198.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR199.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR200.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR201.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR202.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR203.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR204.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR205.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR206.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR207.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR208.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR209.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR210.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR211.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR212.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR213.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR214.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR215.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR216.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR217.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR218.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR219.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR220.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR221.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR222.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR223.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR224.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR225.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR226.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR227.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR228.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR229.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR230.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR231.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR232.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR233.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR234.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR235.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR236.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR237.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR238.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR239.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR240.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR241.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR242.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR243.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR244.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR245.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR246.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR247.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR248.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR249.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR250.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR251.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR252.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR253.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR254.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR255.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR32.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR33.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR34.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR35.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR36.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR37.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR38.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR39.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR40.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR41.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR42.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR43.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR44.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR45.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR46.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR47.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR48.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR49.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR50.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR51.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR52.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR53.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR54.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR55.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR56.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR57.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR58.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR59.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR60.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR61.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR62.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR63.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR64.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR65.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR66.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR67.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR68.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR69.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR70.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR71.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR72.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR73.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR74.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR75.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR76.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR77.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR78.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR79.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR80.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR81.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR82.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR83.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR84.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR85.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR86.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR87.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR88.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR89.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR90.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR91.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR92.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR93.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR94.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR95.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR96.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR97.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR98.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/LTR99.3D [new file with mode: 0755]
graphics/3D/swapping 3D engine/objects/font/mk3dfont.bas [new file with mode: 0755]
graphics/3D/swapping 3D engine/qbext.com [new file with mode: 0755]
graphics/3D/swapping 3D engine/run.bat [new file with mode: 0755]
graphics/3D/tank1.bas [new file with mode: 0755]
graphics/3D/universe explorer/1.png [new file with mode: 0755]
graphics/3D/universe explorer/2.png [new file with mode: 0755]
graphics/3D/universe explorer/3.png [new file with mode: 0755]
graphics/3D/universe explorer/expluniv.bas [new file with mode: 0755]
graphics/3D/universe explorer/index.html [new file with mode: 0755]
graphics/3D/universe explorer/qbext.com [new file with mode: 0755]
graphics/3D/universe explorer/run.bat [new file with mode: 0755]
graphics/4D engine/index.html [new file with mode: 0755]
graphics/4D engine/qeng.bas [new file with mode: 0755]
graphics/4D engine/sshot.png [new file with mode: 0755]
graphics/animations/2drot.bas [new file with mode: 0755]
graphics/animations/matrix.bas [new file with mode: 0755]
graphics/animations/matrix2.bas [new file with mode: 0755]
graphics/animations/matrix4.bas [new file with mode: 0755]
graphics/animations/mkcircle.bas [new file with mode: 0755]
graphics/animations/movdna.bas [new file with mode: 0755]
graphics/animations/orbiit.bas [new file with mode: 0755]
graphics/animations/snow.bas [new file with mode: 0755]
graphics/animations/ssaver.bas [new file with mode: 0755]
graphics/animations/ssaver2.bas [new file with mode: 0755]
graphics/animations/strange.bas [new file with mode: 0755]
graphics/animations/sun&eart.bas [new file with mode: 0755]
graphics/animations/txtpal.bas [new file with mode: 0755]
graphics/animations/water1.bas [new file with mode: 0755]
graphics/animations/water2.bas [new file with mode: 0755]
graphics/bumpmap.bas [new file with mode: 0755]
graphics/fract.bas [new file with mode: 0755]
graphics/fract2.bas [new file with mode: 0755]
graphics/fract3.bas [new file with mode: 0755]
graphics/poly.bas [new file with mode: 0755]
graphics/polymap.bas [new file with mode: 0755]
graphics/polymap.dat [new file with mode: 0755]
graphics/presentations/Artifical Intelligence/data.dat [new file with mode: 0755]
graphics/presentations/Artifical Intelligence/data2.dat [new file with mode: 0755]
graphics/presentations/Artifical Intelligence/tehis.bas [new file with mode: 0755]
graphics/presentations/KHK Intellektika 2004 demo/CAT.I01 [new file with mode: 0755]
graphics/presentations/KHK Intellektika 2004 demo/KHKDEMO.BAS [new file with mode: 0755]
graphics/presentations/KHK Intellektika 2004 demo/KHKDEMO2.BAS [new file with mode: 0755]
graphics/presentations/KHK Intellektika 2004 demo/KHKDEMO3.BAS [new file with mode: 0755]
graphics/presentations/KHK Intellektika 2004 demo/KHKDEMO6.BAS [new file with mode: 0755]
graphics/presentations/KHK Intellektika 2004 demo/RAY.BAS [new file with mode: 0755]
graphics/presentations/KHK Intellektika 2004 demo/khkdemo4.BAS [new file with mode: 0755]
graphics/presentations/KHK Intellektika 2004 demo/khkdemo5.BAS [new file with mode: 0755]
graphics/presentations/KHK j6ulud/cat.i01 [new file with mode: 0755]
graphics/presentations/KHK j6ulud/khkdemo.bas [new file with mode: 0755]
graphics/presentations/KHK j6ulud/khkdemo2.bas [new file with mode: 0755]
graphics/presentations/KHK j6ulud/ray.bas [new file with mode: 0755]
graphics/presentations/KHK j6ulud/run.bat [new file with mode: 0755]
graphics/presentations/Stroboscope/athoms.bas [new file with mode: 0755]
graphics/presentations/Stroboscope/playmov.asm [new file with mode: 0755]
graphics/presentations/Stroboscope/playmov.com [new file with mode: 0755]
graphics/presentations/Stroboscope/strobo.bas [new file with mode: 0755]
graphics/presentations/tour.bas [new file with mode: 0755]
graphics/spirals/spiral2.bas [new file with mode: 0755]
graphics/spirals/spiral4.bas [new file with mode: 0755]
graphics/spirals/spiral6.bas [new file with mode: 0755]
graphics/spirals/spiral7.bas [new file with mode: 0755]
graphics/spirals/spiral8.bas [new file with mode: 0755]
graphics/spirals/spiral9.bas [new file with mode: 0755]
graphics/spirals/texture.dat [new file with mode: 0755]
graphics/spirals/texture1.dat [new file with mode: 0755]
graphics/strange2.bas [new file with mode: 0755]
graphics/texture generation/map1.bas [new file with mode: 0755]
graphics/texture generation/map2.bas [new file with mode: 0755]
graphics/texture generation/map3.bas [new file with mode: 0755]
graphics/texture generation/oldpaper.bas [new file with mode: 0755]
graphics/texture generation/test3.bas [new file with mode: 0755]
graphics/texture generation/wood.bas [new file with mode: 0755]
graphics/texture.bas [new file with mode: 0755]
graphics/tree.bas [new file with mode: 0755]
math/05graaf.bas [new file with mode: 0755]
math/3D graph/3dgraph.bas [new file with mode: 0755]
math/3D graph/index.html [new file with mode: 0755]
math/3D graph/sshot.png [new file with mode: 0755]
math/biorythm/bio.bas [new file with mode: 0755]
math/biorythm/index.html [new file with mode: 0755]
math/biorythm/ppl.txt [new file with mode: 0755]
math/biorythm/sshot.png [new file with mode: 0755]
math/determ.bas [new file with mode: 0755]
math/divides.bas [new file with mode: 0755]
math/gravi2.bas [new file with mode: 0755]
math/korrel.bas [new file with mode: 0755]
math/logar.bas [new file with mode: 0755]
math/logic.bas [new file with mode: 0755]
math/loto/loos.txt [new file with mode: 0755]
math/loto/loto.bas [new file with mode: 0755]
math/sin_cos.bas [new file with mode: 0755]
math/sinus.bas [new file with mode: 0755]
math/tuletis.bas [new file with mode: 0755]
math/valem.bas [new file with mode: 0755]
modules/fileread.bas [new file with mode: 0755]
modules/fnt8x8.bas [new file with mode: 0755]
modules/lisfile.bas [new file with mode: 0755]
modules/qbExt/index.html [new file with mode: 0755]
modules/qbExt/mousedrv.bas [new file with mode: 0755]
modules/qbExt/qbext.asm [new file with mode: 0755]
modules/qbExt/qbext.com [new file with mode: 0755]
modules/sonad.bas [new file with mode: 0755]
modules/timer.bas [new file with mode: 0755]
modules/tostr.bas [new file with mode: 0755]
modules/upal.bas [new file with mode: 0755]
networking/LPT communication driver/lptdrv.asm [new file with mode: 0755]
networking/LPT communication driver/lptdrv.com [new file with mode: 0755]
networking/LPT communication driver/lptdrv.txt [new file with mode: 0755]
networking/LPT communication driver/test.ASM [new file with mode: 0755]
networking/LPT communication driver/test.COM [new file with mode: 0755]
networking/comterm.bas [new file with mode: 0755]
networking/digital data over analog audio channel/aver.bas [new file with mode: 0755]
networking/digital data over analog audio channel/code.bat [new file with mode: 0755]
networking/digital data over analog audio channel/decode.bat [new file with mode: 0755]
networking/digital data over analog audio channel/index.html [new file with mode: 0755]
networking/digital data over analog audio channel/msg2xi.bas [new file with mode: 0755]
networking/digital data over analog audio channel/sshot.png [new file with mode: 0755]
networking/digital data over analog audio channel/test.msg [new file with mode: 0755]
networking/digital data over analog audio channel/test.txt [new file with mode: 0755]
networking/digital data over analog audio channel/test.xi [new file with mode: 0755]
networking/digital data over analog audio channel/xi2msg.bas [new file with mode: 0755]
networking/file2com.bas [new file with mode: 0755]
networking/lpt2com.bas [new file with mode: 0755]
networking/lptmorse.bas [new file with mode: 0755]
networking/monitor.bas [new file with mode: 0755]
networking/monitor2.bas [new file with mode: 0755]
networking/monitor3.bas [new file with mode: 0755]
networking/morse/morse.bas [new file with mode: 0755]
networking/morse/morse.txt [new file with mode: 0755]
networking/prt.bas [new file with mode: 0755]
networking/read.bas [new file with mode: 0755]
networking/setspeed.bas [new file with mode: 0755]
simulation/explosion/explode.bas [new file with mode: 0755]
simulation/explosion/index.html [new file with mode: 0755]
simulation/explosion/sshot.png [new file with mode: 0755]
simulation/interf.BAS [new file with mode: 0755]
simulation/interf2.BAS [new file with mode: 0755]
simulation/life/1 [new file with mode: 0755]
simulation/life/10 [new file with mode: 0755]
simulation/life/11 [new file with mode: 0755]
simulation/life/2 [new file with mode: 0755]
simulation/life/3 [new file with mode: 0755]
simulation/life/4 [new file with mode: 0755]
simulation/life/5 [new file with mode: 0755]
simulation/life/6 [new file with mode: 0755]
simulation/life/7 [new file with mode: 0755]
simulation/life/8 [new file with mode: 0755]
simulation/life/9 [new file with mode: 0755]
simulation/life/e [new file with mode: 0755]
simulation/life/index.html [new file with mode: 0755]
simulation/life/life.bas [new file with mode: 0755]
simulation/life/sshot.png [new file with mode: 0755]
simulation/liquid.bas [new file with mode: 0755]
sound/siren1.bas [new file with mode: 0755]
sound/siren2.bas [new file with mode: 0755]
system/CMOS string/getenv.asm [new file with mode: 0755]
system/CMOS string/getenv.com [new file with mode: 0755]
system/CMOS string/savecmos.bas [new file with mode: 0755]
tutorial/group1/00.bas [new file with mode: 0755]
tutorial/group1/01.bas [new file with mode: 0755]
tutorial/group1/02.bas [new file with mode: 0755]
tutorial/group1/03.bas [new file with mode: 0755]
tutorial/group1/04.bas [new file with mode: 0755]
tutorial/group1/05.bas [new file with mode: 0755]
tutorial/group1/06.bas [new file with mode: 0755]
tutorial/group1/07.bas [new file with mode: 0755]
tutorial/group1/08.bas [new file with mode: 0755]
tutorial/group1/09.bas [new file with mode: 0755]
tutorial/group1/10.bas [new file with mode: 0755]
tutorial/group1/11.bas [new file with mode: 0755]
tutorial/group1/12.bas [new file with mode: 0755]
tutorial/group1/13.bas [new file with mode: 0755]
tutorial/group1/14.bas [new file with mode: 0755]
tutorial/group1/15.bas [new file with mode: 0755]
tutorial/group1/16.bas [new file with mode: 0755]
tutorial/group1/17.bas [new file with mode: 0755]
tutorial/group1/18.bas [new file with mode: 0755]
tutorial/group1/19.bas [new file with mode: 0755]
tutorial/group1/CVS/Entries [new file with mode: 0755]
tutorial/group1/CVS/Repository [new file with mode: 0755]
tutorial/group1/CVS/Root [new file with mode: 0755]
tutorial/group1/CVS/Template [new file with mode: 0755]
tutorial/group2/01.bas [new file with mode: 0755]
tutorial/group2/02.bas [new file with mode: 0755]
tutorial/group2/03.bas [new file with mode: 0755]
tutorial/group2/04.bas [new file with mode: 0755]
tutorial/group2/05.bas [new file with mode: 0755]
tutorial/group2/06.bas [new file with mode: 0755]
tutorial/group2/07.bas [new file with mode: 0755]
tutorial/group2/08.bas [new file with mode: 0755]
tutorial/group2/09.bas [new file with mode: 0755]
tutorial/group2/10.bas [new file with mode: 0755]
tutorial/group2/11.bas [new file with mode: 0755]
tutorial/group2/12.bas [new file with mode: 0755]
tutorial/group2/13.bas [new file with mode: 0755]
tutorial/group2/14.bas [new file with mode: 0755]
tutorial/group2/15.bas [new file with mode: 0755]
tutorial/group2/16.bas [new file with mode: 0755]
tutorial/group2/17.bas [new file with mode: 0755]
tutorial/group2/18.bas [new file with mode: 0755]
tutorial/group2/CVS/Entries [new file with mode: 0755]
tutorial/group2/CVS/Repository [new file with mode: 0755]
tutorial/group2/CVS/Root [new file with mode: 0755]
tutorial/group2/CVS/Template [new file with mode: 0755]
tutorial/group3/00.bas [new file with mode: 0755]
tutorial/group3/01.bas [new file with mode: 0755]
tutorial/group3/02.bas [new file with mode: 0755]
tutorial/group3/03.bas [new file with mode: 0755]
tutorial/group3/04.bas [new file with mode: 0755]
tutorial/group3/05.bas [new file with mode: 0755]
tutorial/group3/06.bas [new file with mode: 0755]
tutorial/group3/07.bas [new file with mode: 0755]
tutorial/group3/08.bas [new file with mode: 0755]
tutorial/group3/09.bas [new file with mode: 0755]
tutorial/group3/10.bas [new file with mode: 0755]
tutorial/group3/11.bas [new file with mode: 0755]
tutorial/group3/CVS/Entries [new file with mode: 0755]
tutorial/group3/CVS/Repository [new file with mode: 0755]
tutorial/group3/CVS/Root [new file with mode: 0755]
tutorial/group3/CVS/Template [new file with mode: 0755]
tutorial/index.html [new file with mode: 0755]
tutorial/qsort3.bas [new file with mode: 0755]
unsorted/contrast.bas [new file with mode: 0755]
unsorted/font.bas [new file with mode: 0755]
unsorted/key.bas [new file with mode: 0755]
unsorted/lightpe2.bas [new file with mode: 0755]
unsorted/lightpen.bas [new file with mode: 0755]
unsorted/matem.bas [new file with mode: 0755]
unsorted/modes.bas [new file with mode: 0755]
unsorted/pal.bas [new file with mode: 0755]
unsorted/passw.bas [new file with mode: 0755]
unsorted/passw.dat [new file with mode: 0755]
unsorted/tim.dat [new file with mode: 0755]
unsorted/timer.bas [new file with mode: 0755]
wsystem.bas [new file with mode: 0755]

diff --git a/.project b/.project
new file mode 100755 (executable)
index 0000000..3e5d85f
--- /dev/null
+++ b/.project
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>QBasicApps</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+       </buildSpec>
+       <natures>
+       </natures>
+</projectDescription>
diff --git a/COPYING b/COPYING
new file mode 100755 (executable)
index 0000000..10828e0
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,341 @@
+
+                   GNU GENERAL PUBLIC LICENSE
+                      Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+                       51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                           Preamble
+
+  The licenses for most software are designed to take away your
+freedom to share and change it.  By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users.  This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it.  (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.)  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+  To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have.  You must make sure that they, too, receive or can get the
+source code.  And you must show them these terms so they know their
+rights.
+
+  We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+  Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software.  If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+  Finally, any free program is threatened constantly by software
+patents.  We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary.  To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+\f
+                   GNU GENERAL PUBLIC LICENSE
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+  0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License.  The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language.  (Hereinafter, translation is included without limitation in
+the term "modification".)  Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope.  The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+  1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+  2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+    a) You must cause the modified files to carry prominent notices
+    stating that you changed the files and the date of any change.
+
+    b) You must cause any work that you distribute or publish, that in
+    whole or in part contains or is derived from the Program or any
+    part thereof, to be licensed as a whole at no charge to all third
+    parties under the terms of this License.
+
+    c) If the modified program normally reads commands interactively
+    when run, you must cause it, when started running for such
+    interactive use in the most ordinary way, to print or display an
+    announcement including an appropriate copyright notice and a
+    notice that there is no warranty (or else, saying that you provide
+    a warranty) and that users may redistribute the program under
+    these conditions, and telling the user how to view a copy of this
+    License.  (Exception: if the Program itself is interactive but
+    does not normally print such an announcement, your work based on
+    the Program is not required to print an announcement.)
+\f
+These requirements apply to the modified work as a whole.  If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works.  But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+  3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+    a) Accompany it with the complete corresponding machine-readable
+    source code, which must be distributed under the terms of Sections
+    1 and 2 above on a medium customarily used for software interchange; or,
+
+    b) Accompany it with a written offer, valid for at least three
+    years, to give any third party, for a charge no more than your
+    cost of physically performing source distribution, a complete
+    machine-readable copy of the corresponding source code, to be
+    distributed under the terms of Sections 1 and 2 above on a medium
+    customarily used for software interchange; or,
+
+    c) Accompany it with the information you received as to the offer
+    to distribute corresponding source code.  (This alternative is
+    allowed only for noncommercial distribution and only if you
+    received the program in object code or executable form with such
+    an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it.  For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable.  However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+\f
+  4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License.  Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+  5. You are not required to accept this License, since you have not
+signed it.  However, nothing else grants you permission to modify or
+distribute the Program or its derivative works.  These actions are
+prohibited by law if you do not accept this License.  Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+  6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions.  You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+  7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all.  For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices.  Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+\f
+  8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded.  In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+  9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number.  If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation.  If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+  10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission.  For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this.  Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+                           NO WARRANTY
+
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+                    END OF TERMS AND CONDITIONS
+\f
+           How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/automation/school clock/kell/aasta.ap b/automation/school clock/kell/aasta.ap
new file mode 100755 (executable)
index 0000000..ef1b084
--- /dev/null
@@ -0,0 +1,7 @@
+v      01-01   12-31   tava\r
+n      01-01   12-31   5       reede\r
+e      10-04   opetajap\r
+e      10-31   rebased\r
+n      01-01   12-31   6       tuhi\r
+n      01-01   12-31   7       tuhi\r
+\r
diff --git a/automation/school clock/kell/autoexec.bat b/automation/school clock/kell/autoexec.bat
new file mode 100755 (executable)
index 0000000..cd7ae3c
--- /dev/null
@@ -0,0 +1,2 @@
+coff\r
+qb /run kk.bas
\ No newline at end of file
diff --git a/automation/school clock/kell/coff.asm b/automation/school clock/kell/coff.asm
new file mode 100755 (executable)
index 0000000..0466c15
--- /dev/null
@@ -0,0 +1,4 @@
+mov    dx, 37Ah\r
+mov    al, 0\r
+out    dx, al\r
+ret
\ No newline at end of file
diff --git a/automation/school clock/kell/coff.com b/automation/school clock/kell/coff.com
new file mode 100755 (executable)
index 0000000..2537f6d
Binary files /dev/null and b/automation/school clock/kell/coff.com differ
diff --git a/automation/school clock/kell/ekr.bas b/automation/school clock/kell/ekr.bas
new file mode 100755 (executable)
index 0000000..e5c6dfc
--- /dev/null
@@ -0,0 +1,67 @@
+DECLARE SUB jooks ()\r
+DECLARE SUB suva ()\r
+DEFINT A-Z\r
+DECLARE SUB cle ()\r
+DECLARE SUB disp ()\r
+DIM SHARED bit(0 TO 16)\r
+\r
+suva\r
+jooks\r
+\r
+cle\r
+bit(10) = 0\r
+bit(14) = 0\r
+bit(6) = 0\r
+bit(2) = 0\r
+4\r
+disp\r
+GOTO 4\r
+\r
+SUB cle\r
+FOR a = 1 TO 16\r
+bit(a) = 1\r
+NEXT a\r
+END SUB\r
+\r
+SUB disp\r
+prt = &H378\r
+d = 0\r
+FOR a = 0 TO 3\r
+c = 2 ^ a\r
+FOR b = 4 TO 7\r
+d = d + 1\r
+c = c + (bit(d) * 2 ^ b)\r
+NEXT b\r
+\r
+OUT prt, c\r
+NEXT a\r
+END SUB\r
+\r
+SUB jooks\r
+2\r
+cle\r
+FOR a = 1 TO 16\r
+bit(16) = 1\r
+bit(a - 1) = 1\r
+bit(a) = 0\r
+PRINT a\r
+FOR b = 1 TO 1000\r
+disp\r
+NEXT b\r
+NEXT a\r
+GOTO 2\r
+\r
+END SUB\r
+\r
+SUB suva\r
+3\r
+cle\r
+FOR b = 1 TO 16\r
+IF RND * 100 > 50 THEN bit(b) = 0\r
+NEXT b\r
+FOR b = 1 TO 100\r
+disp\r
+NEXT b\r
+GOTO 3\r
+END SUB\r
+\r
diff --git a/automation/school clock/kell/juhend.txt b/automation/school clock/kell/juhend.txt
new file mode 100755 (executable)
index 0000000..5ffaadb
--- /dev/null
@@ -0,0 +1,117 @@
+\r
+\r
+\r
+               Kooli Kell programmi kasutusjuhend\r
+\r
+2002.10
+\r
+Programmi, juhendi ja skeemi autor:\r
+Svjatoslav Agejenko\r
+n0@hot.ee
+www.hot.ee/n0/
+\r
+K\93ik on vabavara!\r
+\r
+Programm Kooli Kell on m\93eldud kella laskmiseks koolis, tundi sisse ja v\84lja.\r
+Samuti juhib programm arvuti k\81ljes olevat liidest, kahekohaliste numbrite\r
+n\84itamiseks (minutid / tunnid), 3 klahvilist klaviatuuri ja releed.\r
+Tundi sisse minev kell on 1 pikk ning 1 l\81hem helin. V\84ljaminev kell on 1\r
+tavaline pikk helin. Programm loeb aega arvuti s\81steemsest kellast.\r
+Kella laskmis ajad on organiseeritud failidesse  *.PP .\r
+Aasta v\93i p\84evaplaani muutmiseks tuleb redakteerida vastavaid faile.\r
+(s\93nast P\84eva Plaan) Programm valib sobiva p\84evaplaani l\84htudes aastaplaanist,\r
+mis asub failis "aasta.ap" . Programmi saab kasutada arvutil millele on\r
+printeri pesasse (LPT1) \81hendatud spetsiaalne liides, liidese skeem on\r
+failis "skeem.bmp". Liides omab kolme nummerdatud nuppu paigutusega:\r
+\r
+       [1]   [2]\r
+          [3]\r
+\r
+Programm on etten\84htud iseseisvalt t\94\94tama, kuid on ka v\93imalus erandkorras\r
+k\84sitsi kella lasta, aega muuta jne.. Programm eristab tavalisi nupuvajutusi\r
+ja topeltkl\93pse. Eesm\84rgiga suurendada funktsionaalsust v\84heste nuppudega.\r
+\r
+        Nuppude funktsioonid peamen\81\81s:\r
+\r
+[1] kl\93ps      - laseb kella tundi sisse\r
+    topeltkl\93ps - laseb kella tunnist v\84lja\r
+[2] kl\93ps       - l\84heb aja muutmis men\81\81sse\r
+    topeltkl\93ps - hakkab t\94\94le uuendatud graafikuga, vajalik p\84rast\r
+                 sisendfailide redigeerimist.\r
+[3] kl\93ps      - \81mardab s\81steemse aja t\84istunnini, vajalik aja\r
+                 s\81nkroniseerimiseks.\r
+    topeltkl\93ps - laeb s\81steemse: aasta, kuu, p\84eva, tunnid, minutid\r
+                 failist "sync.txt"\r
+\r
+        Nuppude funktsioonid aja muutmis men\81\81s:\r
+\r
+[1] kl\93ps       - v\84hendab s\81steemsed tunnid/minutid 1. v\93rra\r
+[2] kl\93ps       - suurendab s\81steemsed tunnid/minutid 1. v\93rra\r
+[3] kl\93ps       - valib n\84itamiseks ja redigeerimiseks tunnid v\93i minutid.\r
+    topeltkl\93ps - l\84heb tagasi peamen\81\81sse.\r
+\r
+Aja muutmis men\81\81d tunneb \84ra selle j\84rgi et indikaator tunnid v\93i\r
+minutid vilgub, mitte ei p\93le nagu peamen\81\81s.\r
+\r
+\r
+\r
+               faili AASTA.AP formaat: (aastaplaan)\r
+\r
+\r
+v      <kuu>-<p\84ev>    <kuu>-<p\84ev>    <p\84evaplaan>\r
+\r
+S\93nast vahemik. Paneb paika p\84evaplaani antud ajavahemikus. Esimene\r
+daatum peab kindlasti olema v\84iksem kui teine. St. kui on t\93esti vaja:\r
+\r
+v      10-4    2-1     eri\r
+\r
+tuleb kirjutada:\r
+\r
+v      10-4    12-31   eri\r
+v      1-1     2-1     eri\r
+\r
+P\84evaplaan kehtib vahemiku esimesest p\84evast kuni vahemiku viimase p\84evani.\r
+\r
+\r
+n      <kuu>-<p\84ev>    <kuu>-<p\84ev>    <n\84dalap\84ev>    <p\84evaplaan>\r
+\r
+S\93nast n\84dalap\84ev. sama mis "v" kuid: paneb paika p\84evaplaani antud\r
+ajavahemikus, antud n\84dalap\84eval. N\84dalap\84eva kirjeldatakse numbriga.\r
+n\84dala esimene p\84ev on esmasp\84ev, talle vastab number 1.\r
+\r
+\r
+e      <kuu>-<p\84ev> <p\84evaplaan>\r
+\r
+S\93nast eriline. Paneb paika antud kuup\84evale antud p\84evaplaani. Sobib h\84sti\r
+erakorraliste l\81hendatud v\93i muul moel muudetud p\84evaplaanide kehtestamiseks.\r
+N\84iteks riigip\81had, spordip\84ev jne.\r
+\r
+Kui teatud p\84eva kohta ei k\84inud \81htegi kirjet siis toimib vaikimisi "tuhi"\r
+p\84evaplaan. Kui teatud p\84eva kohta k\84is mitu kirjet siis j\84\84b peale viimane.\r
+\r
+\r
+\r
+               failide *.PP formaat: (p\84evaplaanid)\r
+\r
+\r
+#      <tund>:<minut>  <kell>\r
+\r
+Laseb antud ajal antud kella. V\93imalikud kella helinad on:\r
+\r
+       sis     -kell tundi sisse\r
+       val     -kell tunnist v\84lja\r
+\r
+\r
+\r
+               faili SYNC.TXT formaat:\r
+\r
+faili esimesel kahel real peab olema j\84rgnev:\r
+\r
+KK-PP-AAAA\r
+TT:MM\r
+\r
+kus    KK = kuu\r
+       PP = p\84ev\r
+       AAAA = aasta\r
+       TT = tunnid\r
+       MM = minutid\r
diff --git a/automation/school clock/kell/kk.bas b/automation/school clock/kell/kk.bas
new file mode 100755 (executable)
index 0000000..799d888
--- /dev/null
@@ -0,0 +1,693 @@
+DECLARE SUB num (a%)\r
+DECLARE SUB mntime ()\r
+DECLARE SUB showit ()\r
+DECLARE SUB ekrf (a%)\r
+DECLARE SUB ekr ()\r
+DECLARE SUB rese ()\r
+DECLARE SUB start ()\r
+DECLARE SUB boot ()\r
+DECLARE SUB getnad (g%, n%, d%, k%)\r
+DECLARE SUB initp (b$)\r
+DECLARE SUB getmd (a$, m%, d%)\r
+DECLARE SUB son (a$)\r
+DEFINT A-Z\r
+\r
+DECLARE SUB inita ()\r
+DECLARE SUB chm ()\r
+DECLARE SUB chd ()\r
+DECLARE SUB kell (a%)\r
+DECLARE SUB sync2 ()\r
+DECLARE SUB sync ()\r
+DECLARE SUB mnmain ()\r
+DECLARE SUB main ()\r
+DECLARE SUB getkey (kla%)\r
+DECLARE SUB klnait (k%)\r
+DECLARE SUB heli (a%)\r
+DECLARE SUB keys ()\r
+DECLARE SUB disp ()\r
+DIM SHARED bit(0 TO 7)\r
+DIM SHARED kl\r
+DIM SHARED hist(1 TO 3)\r
+DIM SHARED ap$(1 TO 500)\r
+DIM SHARED apl\r
+DIM SHARED pp$(1 TO 500)\r
+DIM SHARED ppl\r
+DIM SHARED prt, prt2\r
+DIM SHARED timo$\r
+DIM SHARED dato$\r
+DIM SHARED sona$(1 TO 50)\r
+DIM SHARED mitus\r
+DIM SHARED lp$\r
+DIM SHARED ndlp\r
+DIM SHARED pn$(1 TO 7)\r
+DIM SHARED bitt(1 TO 16)\r
+DIM SHARED modee, vilgu\r
+DIM SHARED tul(1 TO 2)\r
+\r
+start\r
+heli 4\r
+\r
+\r
+disp\r
+mnmain\r
+\r
+SUB chd\r
+b$ = "tuhi"\r
+IF apl = 0 THEN inita\r
+\r
+a$ = DATE$\r
+n1 = VAL(RIGHT$(a$, 4))\r
+n2 = VAL(LEFT$(a$, 2))\r
+a$ = LEFT$(a$, 5)\r
+n3 = VAL(RIGHT$(a$, 2))\r
+getnad n1, n2, n3, ndlp\r
+LOCATE 10, 1\r
+PRINT "n\84dalap\84ev:", pn$(ndlp)\r
+FOR a = 1 TO apl\r
+son ap$(a)\r
+SELECT CASE sona$(1)\r
+CASE "v"\r
+getmd sona$(2), m1, d1\r
+getmd sona$(3), m2, d2\r
+getmd DATE$, m3, d3\r
+IF m3 < m1 THEN GOTO 9\r
+IF m3 > m2 THEN GOTO 9\r
+IF m3 = m1 THEN IF d3 < d1 THEN GOTO 9\r
+IF m3 = m2 THEN IF d3 > d2 THEN GOTO 9\r
+b$ = sona$(4)\r
+CASE "n"\r
+getmd sona$(2), m1, d1\r
+getmd sona$(3), m2, d2\r
+getmd DATE$, m3, d3\r
+IF m3 < m1 THEN GOTO 9\r
+IF m3 > m2 THEN GOTO 9\r
+IF m3 = m1 THEN IF d3 < d1 THEN GOTO 9\r
+IF m3 = m2 THEN IF d3 > d2 THEN GOTO 9\r
+IF ndlp <> VAL(sona$(4)) THEN GOTO 9\r
+b$ = sona$(5)\r
+CASE "e"\r
+getmd sona$(2), m1, d1\r
+getmd DATE$, m2, d2\r
+IF (m1 = m2) AND (d1 = d2) THEN b$ = sona$(3)\r
+END SELECT\r
+9\r
+NEXT a\r
+\r
+IF b$ <> lp$ THEN initp b$\r
+lp$ = b$\r
+LOCATE 9, 1\r
+PRINT "p\84evaplaan:", lp$\r
+END SUB\r
+\r
+SUB chm\r
+showit\r
+a$ = DATE$\r
+IF a$ <> dato$ THEN chd\r
+dato$ = a$\r
+b = 0\r
+FOR a = 1 TO ppl\r
+son pp$(a)\r
+SELECT CASE sona$(1)\r
+CASE "#"\r
+getmd sona$(2), h1, m1\r
+getmd TIME$, h2, m2\r
+' PRINT h1, m1, h2, m2\r
+IF (h2 = h1) AND (m2 = m1) THEN\r
+IF sona$(3) = "sis" THEN b = 1\r
+IF sona$(3) = "val" THEN b = 2\r
+END IF\r
+END SELECT\r
+NEXT a\r
+\r
+IF b > 0 THEN kell b\r
+\r
+END SUB\r
+\r
+SUB disp\r
+CLS\r
+PRINT "Kooli Kell  v 1.2  2002.10.10"\r
+PRINT "Programmi autor Svjatoslav Agejenko"\r
+\r
+END SUB\r
+\r
+SUB ekr\r
+FOR e = 1 TO 10\r
+c = 1\r
+c = c + 16 * bitt(1)\r
+c = c + 32 * bitt(2)\r
+c = c + 64 * bitt(3)\r
+c = c + 128 * bitt(4)\r
+OUT prt2, c\r
+\r
+c = 2\r
+c = c + 16 * bitt(5)\r
+c = c + 32 * bitt(6)\r
+c = c + 64 * bitt(7)\r
+c = c + 128 * bitt(8)\r
+OUT prt2, c\r
+\r
+c = 4\r
+c = c + 16 * bitt(9)\r
+c = c + 32 * bitt(10)\r
+c = c + 64 * bitt(11)\r
+c = c + 128 * bitt(12)\r
+OUT prt2, c\r
+\r
+c = 8\r
+c = c + 16 * bitt(13)\r
+c = c + 32 * bitt(14)\r
+c = c + 64 * bitt(15)\r
+c = c + 128 * bitt(16)\r
+OUT prt2, c\r
+\r
+\r
+NEXT e\r
+END SUB\r
+\r
+SUB ekrf (a)\r
+SELECT CASE (a)\r
+CASE 0\r
+bitt(1) = 0\r
+bitt(2) = 0\r
+bitt(3) = 0\r
+bitt(7) = 0\r
+bitt(5) = 0\r
+bitt(6) = 0\r
+bitt(8) = 1\r
+CASE 1\r
+bitt(2) = 0\r
+bitt(7) = 0\r
+CASE 2\r
+bitt(1) = 0\r
+bitt(3) = 0\r
+bitt(5) = 0\r
+bitt(7) = 0\r
+bitt(8) = 0\r
+CASE 3\r
+bitt(1) = 0\r
+bitt(2) = 0\r
+bitt(5) = 0\r
+bitt(8) = 0\r
+bitt(7) = 0\r
+CASE 4\r
+bitt(2) = 0\r
+bitt(6) = 0\r
+bitt(7) = 0\r
+bitt(8) = 0\r
+CASE 5\r
+bitt(1) = 0\r
+bitt(2) = 0\r
+bitt(5) = 0\r
+bitt(6) = 0\r
+bitt(8) = 0\r
+CASE 6\r
+bitt(1) = 0\r
+bitt(2) = 0\r
+bitt(3) = 0\r
+bitt(5) = 0\r
+bitt(6) = 0\r
+bitt(8) = 0\r
+CASE 7\r
+bitt(2) = 0\r
+bitt(7) = 0\r
+bitt(5) = 0\r
+CASE 8\r
+bitt(1) = 0\r
+bitt(2) = 0\r
+bitt(3) = 0\r
+bitt(7) = 0\r
+bitt(5) = 0\r
+bitt(6) = 0\r
+bitt(8) = 0\r
+CASE 9\r
+bitt(1) = 0\r
+bitt(2) = 0\r
+bitt(7) = 0\r
+bitt(5) = 0\r
+bitt(6) = 0\r
+bitt(8) = 0\r
+CASE 10\r
+bitt(15) = 0\r
+bitt(16) = 0\r
+bitt(12) = 0\r
+bitt(10) = 0\r
+bitt(9) = 0\r
+bitt(4) = 0\r
+CASE 11\r
+bitt(15) = 0\r
+bitt(4) = 0\r
+CASE 12\r
+bitt(15) = 0\r
+bitt(16) = 0\r
+bitt(9) = 0\r
+bitt(10) = 0\r
+bitt(11) = 0\r
+CASE 13\r
+bitt(15) = 0\r
+bitt(4) = 0\r
+bitt(16) = 0\r
+bitt(11) = 0\r
+bitt(9) = 0\r
+CASE 14\r
+bitt(15) = 0\r
+bitt(4) = 0\r
+bitt(12) = 0\r
+bitt(11) = 0\r
+CASE 15\r
+bitt(9) = 0\r
+bitt(4) = 0\r
+bitt(11) = 0\r
+bitt(12) = 0\r
+bitt(16) = 0\r
+CASE 16\r
+bitt(9) = 0\r
+bitt(4) = 0\r
+bitt(11) = 0\r
+bitt(12) = 0\r
+bitt(16) = 0\r
+bitt(10) = 0\r
+CASE 17\r
+bitt(4) = 0\r
+bitt(15) = 0\r
+bitt(16) = 0\r
+CASE 18\r
+bitt(4) = 0\r
+bitt(15) = 0\r
+bitt(16) = 0\r
+bitt(12) = 0\r
+bitt(11) = 0\r
+bitt(10) = 0\r
+bitt(9) = 0\r
+CASE 19\r
+bitt(4) = 0\r
+bitt(15) = 0\r
+bitt(16) = 0\r
+bitt(12) = 0\r
+bitt(11) = 0\r
+bitt(9) = 0\r
+END SELECT\r
+\r
+END SUB\r
+\r
+SUB getkey (kla)\r
+\r
+1\r
+IF vilgu = 1 THEN\r
+tmr = tmr + 1\r
+IF tmr > 5 THEN bitt(13) = tul(1): bitt(14) = tul(2) ELSE bitt(13) = 1: bitt(14) = 1\r
+IF tmr > 10 THEN\r
+tmr = 0\r
+END IF\r
+ELSE\r
+bitt(13) = tul(1)\r
+bitt(14) = tul(2)\r
+END IF\r
+\r
+b$ = LEFT$(TIME$, 5)\r
+IF b$ <> timo$ THEN chm\r
+timo$ = b$\r
+hist(1) = hist(1) + 1\r
+IF hist(1) > 20000 THEN hist(1) = 15000\r
+hist(2) = hist(2) + 1\r
+IF hist(2) > 20000 THEN hist(2) = 15000\r
+hist(3) = hist(3) + 1\r
+IF hist(3) > 20000 THEN hist(3) = 15000\r
+\r
+keys\r
+IF kl > 0 THEN\r
+  IF hist(kl) > 1 AND hist(kl) < 9 THEN\r
+    klnait kl + 3\r
+    kla = kl + 3\r
+    GOTO 4\r
+  ELSE\r
+    hist(kl) = 0\r
+  END IF\r
+END IF\r
+IF hist(1) = 10 THEN klnait 1: kla = 1: GOTO 4\r
+IF hist(2) = 10 THEN klnait 2: kla = 2: GOTO 4\r
+IF hist(3) = 10 THEN klnait 3: kla = 3: GOTO 4\r
+\r
+IF hist(1) > 11 AND hist(2) > 11 AND hist(3) > 11 THEN klnait 0\r
+LOCATE 7, 1\r
+PRINT TIME$\r
+LOCATE 8, 1\r
+PRINT DATE$\r
+GOTO 1\r
+4\r
+\r
+\r
+hist(1) = 10000\r
+hist(2) = 10000\r
+hist(3) = 10000\r
+\r
+FOR b = 1 TO 100\r
+SOUND 0, .1\r
+NEXT b\r
+IF kla > 3 THEN SOUND 4000, .1 ELSE SOUND 3000, .1\r
+\r
+\r
+\r
+END SUB\r
+\r
+SUB getmd (a$, m, d)\r
+b$ = LEFT$(a$, 5)\r
+m = VAL(LEFT$(b$, 2))\r
+d = VAL(RIGHT$(b$, 2))\r
+\r
+END SUB\r
+\r
+SUB getnad (g, n, d, k)\r
+LOCATE 11, 1\r
+PRINT g, n, d\r
+p = g\r
+m = n - 2\r
+IF n > 2 GOTO 120\r
+p = p - 1: m = m + 12\r
+120\r
+c = INT(p / 100)\r
+y = p - c * 100\r
+w = d + INT((13 * m - 1) / 5) + y + INT(y / 4) + INT(c / 4) - 2 * c\r
+k = w - 7 * INT(w / 7)\r
+IF k = 0 THEN k = 7\r
+END SUB\r
+\r
+SUB heli (a)\r
+'GOTO 10\r
+SELECT CASE a\r
+CASE 1\r
+FOR c = 1 TO 5\r
+SOUND 3000, 1\r
+SOUND 0, 1\r
+NEXT c\r
+\r
+CASE 2\r
+FOR c = 1 TO 5\r
+SOUND 2500, 1\r
+SOUND 0, 2\r
+NEXT c\r
+SOUND 2500, 10\r
+\r
+CASE 3\r
+FOR a = 1 TO 10\r
+SOUND 500, .5\r
+SOUND 1500, .5\r
+SOUND 2000, .5\r
+SOUND 1520, .5\r
+NEXT a\r
+\r
+\r
+CASE 4\r
+FOR a = 800 TO 1000 STEP 10\r
+SOUND a, .1\r
+SOUND a * 3, .1\r
+SOUND 0, 1\r
+NEXT a\r
+10\r
+\r
+END SELECT\r
+\r
+\r
+END SUB\r
+\r
+SUB inita\r
+apl = 0\r
+OPEN "aasta.ap" FOR INPUT AS #1\r
+5\r
+IF EOF(1) <> 0 THEN GOTO 3\r
+LINE INPUT #1, a$\r
+apl = apl + 1\r
+ap$(apl) = a$\r
+GOTO 5\r
+3\r
+CLOSE #1\r
+END SUB\r
+\r
+SUB initp (b$)\r
+ppl = 0\r
+OPEN b$ + ".pp" FOR INPUT AS #1\r
+6\r
+IF EOF(1) <> 0 THEN GOTO 7\r
+LINE INPUT #1, a$\r
+ppl = ppl + 1\r
+pp$(ppl) = a$\r
+GOTO 6\r
+7\r
+CLOSE #1\r
+END SUB\r
+\r
+SUB kell (a)\r
+heli 3\r
+\r
+SELECT CASE a\r
+CASE 1\r
+OUT prt, 255\r
+FOR b = 1 TO 80\r
+SOUND 0, 1\r
+NEXT b\r
+OUT prt, 0\r
+FOR b = 1 TO 15\r
+SOUND 0, 1\r
+NEXT b\r
+OUT prt, 255\r
+FOR b = 1 TO 15\r
+SOUND 0, 1\r
+NEXT b\r
+OUT prt, 0\r
+\r
+CASE 2\r
+OUT prt, 255\r
+FOR b = 1 TO 80\r
+SOUND 0, 1\r
+NEXT b\r
+OUT prt, 0\r
+\r
+END SELECT\r
+END SUB\r
+\r
+SUB keys\r
+kl = 0\r
+OUT prt, 0\r
+8\r
+a = INP(prt)\r
+b = INP(prt)\r
+IF a <> b THEN GOTO 8\r
+\r
+b = 128\r
+FOR c = 0 TO 7\r
+d = INT(a / b)\r
+bit(c) = d\r
+a = a - (b * d)\r
+b = b / 2\r
+NEXT c\r
+\r
+IF bit(4) = 1 AND bit(6) = 1 THEN bit(4) = 0: bit(6) = 0: kl = 3\r
+IF bit(6) = 1 THEN kl = 2\r
+IF bit(4) = 1 THEN kl = 1\r
+\r
+a$ = INKEY$\r
+IF a$ = CHR$(0) + "K" THEN kl = 1\r
+IF a$ = CHR$(0) + "M" THEN kl = 2\r
+IF a$ = CHR$(0) + "P" THEN kl = 3\r
+ekr\r
+END SUB\r
+\r
+SUB klnait (k)\r
+\r
+IF k = 3 THEN c = 3 ELSE c = 1\r
+IF k = 6 THEN c = 14\r
+LOCATE 5, 6\r
+COLOR 7, c\r
+PRINT "<kesk>"\r
+COLOR 7, 0\r
+\r
+IF k = 1 THEN c = 3 ELSE c = 1\r
+IF k = 4 THEN c = 14\r
+LOCATE 4, 1\r
+COLOR 7, c\r
+PRINT "<vasak>"\r
+COLOR 7, 0\r
+\r
+IF k = 2 THEN c = 3 ELSE c = 1\r
+IF k = 5 THEN c = 14\r
+LOCATE 4, 10\r
+COLOR 7, c\r
+PRINT "<parem>"\r
+COLOR 7, 0\r
+\r
+END SUB\r
+\r
+SUB mnmain\r
+2\r
+getkey a\r
+IF a = 6 THEN sync\r
+IF a = 3 THEN sync2\r
+\r
+IF a = 1 THEN kell 1\r
+IF a = 4 THEN kell 2\r
+\r
+IF a = 2 THEN mntime\r
+IF a = 5 THEN rese\r
+GOTO 2\r
+\r
+END SUB\r
+\r
+SUB mntime\r
+vilgu = 1\r
+11\r
+showit\r
+getkey a\r
+\r
+IF modee = 1 THEN\r
+  b = VAL(LEFT$(TIME$, 2))\r
+  c = 0\r
+  IF a = 1 THEN c = 1: b = b - 1\r
+  IF a = 2 THEN c = 1: b = b + 1\r
+  IF b < 0 THEN b = 0\r
+  IF b > 23 THEN b = 23\r
+  d$ = STR$(b)\r
+  IF LEFT$(d$, 1) = " " THEN d$ = RIGHT$(d$, LEN(d$) - 1)\r
+  IF LEN(d$) < 2 THEN d$ = "0" + d$\r
+  e$ = d$ + RIGHT$(TIME$, 6)\r
+  IF c = 1 THEN TIME$ = e$\r
+ELSE\r
+  b = VAL(RIGHT$(LEFT$(TIME$, 5), 2))\r
+  c = 0\r
+  IF a = 1 THEN c = 1: b = b - 1\r
+  IF a = 2 THEN c = 1: b = b + 1\r
+  IF b < 0 THEN b = 0\r
+  IF b > 59 THEN b = 59\r
+  d$ = STR$(b)\r
+  IF LEFT$(d$, 1) = " " THEN d$ = RIGHT$(d$, LEN(d$) - 1)\r
+  IF LEN(d$) < 2 THEN d$ = "0" + d$\r
+  e$ = LEFT$(TIME$, 3) + d$ + RIGHT$(TIME$, 3)\r
+  IF c = 1 THEN TIME$ = e$\r
+END IF\r
+\r
+IF a = 3 THEN\r
+IF modee = 1 THEN modee = 2 ELSE modee = 1\r
+END IF\r
+\r
+IF a = 6 THEN GOTO 12\r
+GOTO 11\r
+12\r
+vilgu = 0\r
+modee = 2\r
+END SUB\r
+\r
+SUB num (a)\r
+\r
+FOR b = 1 TO 12\r
+bitt(b) = 1\r
+NEXT b\r
+bitt(15) = 1\r
+bitt(16) = 1\r
+\r
+b = INT(a / 10)\r
+c = a - (10 * b)\r
+ekrf b\r
+ekrf c + 10\r
+END SUB\r
+\r
+SUB rese\r
+heli 4\r
+timo$ = ""\r
+dato$ = ""\r
+apl = 0\r
+END SUB\r
+\r
+SUB showit\r
+a$ = LEFT$(TIME$, 5)\r
+IF modee = 1 THEN\r
+b = VAL(LEFT$(a$, 2))\r
+tul(1) = 1\r
+tul(2) = 0\r
+ELSE\r
+b = VAL(RIGHT$(a$, 2))\r
+tul(1) = 0\r
+tul(2) = 1\r
+END IF\r
+LOCATE 15, 1\r
+PRINT b\r
+num b\r
+\r
+\r
+END SUB\r
+\r
+SUB son (a$)\r
+\r
+FOR b = 1 TO 50\r
+sona$(b) = ""\r
+NEXT b\r
+mitus = 0\r
+\r
+b = 1\r
+FOR c = 1 TO LEN(a$)\r
+d$ = RIGHT$(LEFT$(a$, c), 1)\r
+IF d$ = " " OR d$ = CHR$(9) THEN\r
+b = 1\r
+ELSE\r
+IF b = 1 THEN b = 0: mitus = mitus + 1\r
+sona$(mitus) = sona$(mitus) + d$\r
+END IF\r
+NEXT c\r
+\r
+\r
+END SUB\r
+\r
+SUB start\r
+pn$(1) = "esmasp\84ev"\r
+pn$(2) = "teisip\84ev"\r
+pn$(3) = "kolmap\84ev"\r
+pn$(4) = "neljap\84ev"\r
+pn$(5) = "reede"\r
+pn$(6) = "laup\84ev"\r
+pn$(7) = "p\81hap\84ev"\r
+\r
+prt = &H37A\r
+prt2 = &H378\r
+hist(1) = 10000\r
+hist(2) = 10000\r
+hist(3) = 10000\r
+\r
+FOR a = 1 TO 16\r
+bitt(a) = 1\r
+NEXT a\r
+modee = 2\r
+vilgu = 0\r
+tul(1) = 1\r
+tul(2) = 1\r
+END SUB\r
+\r
+SUB sync\r
+OPEN "sync.txt" FOR INPUT AS #1\r
+LINE INPUT #1, a$\r
+DATE$ = a$\r
+LINE INPUT #1, a$\r
+TIME$ = a$\r
+CLOSE #1\r
+\r
+heli 2\r
+END SUB\r
+\r
+SUB sync2\r
+a$ = TIME$\r
+a$ = LEFT$(a$, 5)\r
+b = VAL(RIGHT$(a$, 2))\r
+c = VAL(LEFT$(a$, 2))\r
+IF b >= 30 THEN c = c + 1\r
+b = 0\r
+IF c > 23 THEN c = c - 24\r
+a$ = RIGHT$(STR$(c), LEN(STR$(c)) - 1)\r
+b$ = RIGHT$(STR$(b), LEN(STR$(b)) - 1)\r
+IF LEN(a$) < 2 THEN a$ = "0" + a$\r
+IF LEN(b$) < 2 THEN b$ = "0" + b$\r
+a$ = a$ + ":" + b$\r
+\r
+'LOCATE 10, 1\r
+'PRINT a$\r
+\r
+TIME$ = a$\r
+\r
+heli 1\r
+END SUB\r
+\r
diff --git a/automation/school clock/kell/opetajap.pp b/automation/school clock/kell/opetajap.pp
new file mode 100755 (executable)
index 0000000..0708469
--- /dev/null
@@ -0,0 +1,19 @@
+# 08:30 sis\r
+# 09:15 val\r
+\r
+# 09:25 sis\r
+# 10:10 val\r
+\r
+# 10:20 sis\r
+# 10:45 val\r
+\r
+# 10:55 sis\r
+# 11:20 val\r
+\r
+# 11:40 sis\r
+# 12:05 val\r
+\r
+# 12:15 sis\r
+# 12:40 val\r
+\r
+\r
diff --git a/automation/school clock/kell/rebased.pp b/automation/school clock/kell/rebased.pp
new file mode 100755 (executable)
index 0000000..97dc6a5
--- /dev/null
@@ -0,0 +1,23 @@
+# 08:30 sis\r
+# 09:10 val\r
+\r
+# 09:20 sis\r
+# 10:00 val\r
+\r
+# 10:10 sis\r
+# 10:50 val\r
+\r
+# 11:30 sis\r
+# 12:10 val\r
+\r
+# 12:20 sis\r
+# 13:00 val\r
+\r
+# 13:10 sis\r
+# 13:50 val\r
+\r
+# 14:00 sis\r
+# 14:40 val\r
+\r
+# 14:45 sis\r
+# 15:30 val\r
diff --git a/automation/school clock/kell/reede.pp b/automation/school clock/kell/reede.pp
new file mode 100755 (executable)
index 0000000..b4c0e82
--- /dev/null
@@ -0,0 +1,23 @@
+# 08:30 sis\r
+# 09:15 val\r
+\r
+# 09:25 sis\r
+# 10:10 val\r
+\r
+# 10:20 sis\r
+# 11:05 val\r
+\r
+# 11:35 sis\r
+# 12:20 val\r
+\r
+# 12:30 sis\r
+# 13:15 val\r
+\r
+# 13:20 sis\r
+# 14:05 val\r
+\r
+# 14:10 sis\r
+# 14:55 val\r
+\r
+# 15:00 sis\r
+# 15:45 val\r
diff --git a/automation/school clock/kell/skeem.bmp b/automation/school clock/kell/skeem.bmp
new file mode 100755 (executable)
index 0000000..37019b7
Binary files /dev/null and b/automation/school clock/kell/skeem.bmp differ
diff --git a/automation/school clock/kell/sync.txt b/automation/school clock/kell/sync.txt
new file mode 100755 (executable)
index 0000000..f6ff243
--- /dev/null
@@ -0,0 +1,5 @@
+09-06-2002\r
+15:38\r
+\r
+kuu-paev-aasta\r
+tunnid-minutid
\ No newline at end of file
diff --git a/automation/school clock/kell/tava.pp b/automation/school clock/kell/tava.pp
new file mode 100755 (executable)
index 0000000..ce22071
--- /dev/null
@@ -0,0 +1,36 @@
+# 08:30 sis\r
+# 09:15 val\r
+\r
+# 09:25 sis\r
+# 10:10 val\r
+\r
+# 10:20 sis\r
+# 11:05 val\r
+\r
+# 11:35 sis\r
+# 12:20 val\r
+\r
+# 12:30 sis\r
+# 13:15 val\r
+\r
+# 13:25 sis\r
+# 14:10 val\r
+\r
+# 14:20 sis\r
+# 15:05 val\r
+\r
+# 15:10 sis\r
+# 15:55 val\r
+\r
+# 16:00 sis\r
+# 16:45 val\r
+\r
+# 16:50 sis\r
+# 17:45 val\r
+\r
+# 17:50 sis\r
+# 18:25 val\r
+\r
+# 18:30 sis\r
+# 19:15 val\r
+\r
diff --git a/automation/school clock/kell/tuhi.pp b/automation/school clock/kell/tuhi.pp
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/automation/school clock/kell2/aasta.ap b/automation/school clock/kell2/aasta.ap
new file mode 100755 (executable)
index 0000000..82777d6
--- /dev/null
@@ -0,0 +1,14 @@
+v      01-01   12-31   tava\r
+n      01-01   12-31   5       reede\r
+e      10-04   opetajap\r
+e      10-31   rebased\r
+e      04-17   luhend\r
+e      04-18   tuhi\r
+e      04-30   luhend\r
+e      05-01   tuhi\r
+e      06-23   tuhi\r
+e      06-24   tuhi\r
+n      01-01   12-31   6       tuhi\r
+n      01-01   12-31   7       tuhi\r
+v      07-01   08-31   tuhi\r
+\r
diff --git a/automation/school clock/kell2/kkmini.bas b/automation/school clock/kell2/kkmini.bas
new file mode 100755 (executable)
index 0000000..c70ca26
--- /dev/null
@@ -0,0 +1,485 @@
+DECLARE SUB dispt ()\r
+' Svjatoslav Agejenko\r
+' E-mail: svjatoslavagejenko@gmail.com\r
+' Homepage: www.hot.ee/n0/\r
+\r
+DECLARE SUB dispp ()\r
+DECLARE SUB displukk ()\r
+DECLARE SUB kola (a%)\r
+DECLARE SUB rese ()\r
+DECLARE SUB start ()\r
+DECLARE SUB getnad (g%, n%, d%, k%)\r
+DECLARE SUB initp (b$)\r
+DECLARE SUB getmd (a$, m%, d%)\r
+DECLARE SUB son (a$)\r
+DECLARE SUB inita ()\r
+DECLARE SUB chm ()\r
+DECLARE SUB chd ()\r
+DECLARE SUB kell (a%)\r
+DECLARE SUB sync2 ()\r
+DECLARE SUB sync ()\r
+DECLARE SUB mnmain ()\r
+DECLARE SUB heli (a%)\r
+DECLARE SUB disp ()\r
+DEFINT A-Z\r
+\r
+DIM SHARED ap$(1 TO 500)\r
+DIM SHARED apl\r
+DIM SHARED pp$(1 TO 500)\r
+DIM SHARED ppl\r
+DIM SHARED prt, prt2\r
+DIM SHARED timo$\r
+DIM SHARED dato$\r
+DIM SHARED sona$(1 TO 50)\r
+DIM SHARED mitus\r
+DIM SHARED lp$\r
+DIM SHARED ndlp\r
+DIM SHARED pn$(1 TO 7)\r
+DIM SHARED lk$\r
+DIM SHARED ssave\r
+DIM SHARED ssavel\r
+DIM SHARED timero AS LONG\r
+DIM SHARED kblukk\r
+DIM SHARED tunnidara\r
+\r
+start\r
+\r
+\r
+disp\r
+mnmain\r
+\r
+SUB chd\r
+b$ = "tuhi"\r
+IF apl = 0 THEN inita\r
+\r
+a$ = DATE$\r
+n1 = VAL(RIGHT$(a$, 4))\r
+n2 = VAL(LEFT$(a$, 2))\r
+a$ = LEFT$(a$, 5)\r
+n3 = VAL(RIGHT$(a$, 2))\r
+getnad n1, n2, n3, ndlp\r
+FOR a = 1 TO apl\r
+son ap$(a)\r
+SELECT CASE sona$(1)\r
+CASE "v"\r
+getmd sona$(2), m1, d1\r
+getmd sona$(3), m2, d2\r
+getmd DATE$, m3, d3\r
+IF m3 < m1 THEN GOTO 9\r
+IF m3 > m2 THEN GOTO 9\r
+IF m3 = m1 THEN IF d3 < d1 THEN GOTO 9\r
+IF m3 = m2 THEN IF d3 > d2 THEN GOTO 9\r
+b$ = sona$(4)\r
+CASE "n"\r
+getmd sona$(2), m1, d1\r
+getmd sona$(3), m2, d2\r
+getmd DATE$, m3, d3\r
+IF m3 < m1 THEN GOTO 9\r
+IF m3 > m2 THEN GOTO 9\r
+IF m3 = m1 THEN IF d3 < d1 THEN GOTO 9\r
+IF m3 = m2 THEN IF d3 > d2 THEN GOTO 9\r
+IF ndlp <> VAL(sona$(4)) THEN GOTO 9\r
+b$ = sona$(5)\r
+CASE "e"\r
+getmd sona$(2), m1, d1\r
+getmd DATE$, m2, d2\r
+IF (m1 = m2) AND (d1 = d2) THEN b$ = sona$(3)\r
+END SELECT\r
+9\r
+NEXT a\r
+\r
+IF b$ <> lp$ THEN initp b$\r
+lp$ = b$\r
+tunnidara = 0\r
+dispp\r
+disp\r
+END SUB\r
+\r
+SUB chm\r
+a$ = DATE$\r
+IF a$ <> dato$ THEN chd\r
+dato$ = a$\r
+b = 0\r
+FOR a = 1 TO ppl\r
+son pp$(a)\r
+SELECT CASE sona$(1)\r
+CASE "#"\r
+getmd sona$(2), h1, m1\r
+getmd TIME$, h2, m2\r
+' PRINT h1, m1, h2, m2\r
+IF (h2 = h1) AND (m2 = m1) THEN\r
+IF sona$(3) = "sis" THEN b = 1\r
+IF sona$(3) = "val" THEN b = 2\r
+END IF\r
+END SELECT\r
+NEXT a\r
+\r
+IF (tunnidara = 0) AND (b > 0) THEN kell b\r
+ssave = ssave + 1\r
+END SUB\r
+\r
+SUB disp\r
+CLS\r
+PRINT "Kooli Kell (mini) v 1.1  2003.3"\r
+PRINT "Programmi autor Svjatoslav Agejenko   E-mail: n0@hot.ee"\r
+PRINT ""\r
+PRINT "s - kell tundi sisse             v - kell tunnist v�lja"\r
+PRINT "a - sisesta uus aeg              d - sisesta uus daatum"\r
+PRINT "u - �mardab aja t�istunnini      l - laeb aja failist SYNC.TXT"\r
+PRINT "7 - 1 minut tagasi               8 - 1 minut edasi"\r
+PRINT "4 - 1 tund tagasi                5 - 1 tund edasi"\r
+PRINT "r - programmi restart            q - programmist v�lja"\r
+PRINT "                                 j - j�tab k�ik tunnid t�na �ra"\r
+\r
+dispp\r
+\r
+LOCATE 12, 15\r
+PRINT "Kuu-P�ev-Aasta (USA standard)"\r
+\r
+\r
+LOCATE 17\r
+\r
+FOR a = 1 TO ppl\r
+IF pp$(a) <> SPACE$(LEN(pp$(a))) THEN\r
+  PRINT pp$(a);\r
+  PRINT SPACE$(15 - LEN(pp$(a)));\r
+END IF\r
+NEXT a\r
+\r
+displukk\r
+dispt\r
+END SUB\r
+\r
+SUB displukk\r
+LOCATE 1, 40\r
+IF kblukk = 1 THEN\r
+  COLOR 0, 7\r
+  PRINT "Klaviatuur lukus! Vajuta CTRL+L"\r
+  COLOR 7, 0\r
+ELSE\r
+  PRINT "                               "\r
+END IF\r
+END SUB\r
+\r
+SUB dispp\r
+IF ndlp = 0 THEN GOTO 14\r
+LOCATE 14, 1\r
+PRINT "n�dalap�ev:", pn$(ndlp)\r
+LOCATE 15, 1\r
+PRINT "p�evaplaan:", lp$\r
+14\r
+END SUB\r
+\r
+SUB dispt\r
+LOCATE 16, 20\r
+COLOR 12 + 15, 0\r
+IF tunnidara = 1 THEN\r
+  PRINT "T�na on k�ik tunnid �ra j�etud"\r
+ELSE\r
+  PRINT "                              "\r
+END IF\r
+COLOR 7, 0\r
+END SUB\r
+\r
+SUB getmd (a$, m, d)\r
+b$ = LEFT$(a$, 5)\r
+m = VAL(LEFT$(b$, 2))\r
+d = VAL(RIGHT$(b$, 2))\r
+\r
+END SUB\r
+\r
+SUB getnad (g, n, d, k)\r
+'LOCATE 11, 1\r
+'PRINT g, n, d\r
+p = g\r
+m = n - 2\r
+IF n > 2 GOTO 120\r
+p = p - 1: m = m + 12\r
+120\r
+c = INT(p / 100)\r
+y = p - c * 100\r
+w = d + INT((13 * m - 1) / 5) + y + INT(y / 4) + INT(c / 4) - 2 * c\r
+k = w - 7 * INT(w / 7)\r
+IF k = 0 THEN k = 7\r
+END SUB\r
+\r
+SUB heli (a)\r
+'GOTO 10\r
+SELECT CASE a\r
+CASE 1\r
+FOR c = 1 TO 5\r
+SOUND 3000, 1\r
+SOUND 0, 1\r
+NEXT c\r
+\r
+CASE 2\r
+FOR c = 1 TO 5\r
+SOUND 2500, 1\r
+SOUND 0, 2\r
+NEXT c\r
+SOUND 2500, 10\r
+\r
+CASE 3\r
+FOR a = 1 TO 10\r
+SOUND 500, .5\r
+SOUND 1500, .5\r
+SOUND 2000, .5\r
+SOUND 1520, .5\r
+NEXT a\r
+\r
+\r
+CASE 4\r
+FOR a = 800 TO 1000 STEP 10\r
+SOUND a, .1\r
+SOUND a * 3, .1\r
+SOUND 0, 1\r
+NEXT a\r
+10\r
+\r
+END SELECT\r
+\r
+\r
+END SUB\r
+\r
+SUB inita\r
+apl = 0\r
+OPEN "aasta.ap" FOR INPUT AS #1\r
+5\r
+IF EOF(1) <> 0 THEN GOTO 3\r
+LINE INPUT #1, a$\r
+apl = apl + 1\r
+ap$(apl) = a$\r
+GOTO 5\r
+3\r
+CLOSE #1\r
+END SUB\r
+\r
+SUB initp (b$)\r
+ppl = 0\r
+OPEN b$ + ".pp" FOR INPUT AS #1\r
+6\r
+IF EOF(1) <> 0 THEN GOTO 7\r
+LINE INPUT #1, a$\r
+ppl = ppl + 1\r
+pp$(ppl) = a$\r
+GOTO 6\r
+7\r
+CLOSE #1\r
+END SUB\r
+\r
+SUB kell (a)\r
+b$ = TIME$ + DATE$\r
+IF b$ <> lk$ THEN lk$ = b$ ELSE GOTO 2\r
+\r
+heli 3\r
+\r
+SELECT CASE a\r
+CASE 1\r
+kola 4\r
+FOR b = 1 TO 15\r
+SOUND 0, 1\r
+NEXT b\r
+kola 1\r
+CASE 2\r
+kola 5\r
+END SELECT\r
+2\r
+END SUB\r
+\r
+SUB kola (a)\r
+timero = TIMER\r
+11\r
+FOR b = 1 TO 100\r
+OUT prt, 0\r
+OUT prt, 255\r
+NEXT b\r
+IF ABS(timero - TIMER) < a THEN GOTO 11\r
+END SUB\r
+\r
+SUB mnmain\r
+1\r
+b$ = LEFT$(TIME$, 5)\r
+IF b$ <> timo$ THEN chm\r
+timo$ = b$\r
+\r
+a$ = INKEY$\r
+\r
+IF a$ <> "" THEN\r
+IF ssave > ssavel THEN disp\r
+ssave = 0\r
+END IF\r
+\r
+IF a$ = CHR$(12) THEN\r
+  IF kblukk = 1 THEN kblukk = 0 ELSE kblukk = 1\r
+  displukk\r
+END IF\r
+IF kblukk = 1 THEN a$ = ""\r
+\r
+IF a$ = "s" THEN kell 1\r
+IF a$ = "v" THEN kell 2\r
+\r
+IF a$ = "a" THEN\r
+CLS\r
+PRINT "                  vana aeg: " + TIME$\r
+INPUT "sisesta uus aeg (TT:MM:SS): ", b$\r
+IF LEN(b$) <> 8 THEN GOTO 12\r
+TIME$ = b$\r
+timo$ = ""\r
+12\r
+disp\r
+END IF\r
+\r
+IF a$ = "d" THEN\r
+CLS\r
+PRINT "                    vana daatum: " + DATE$\r
+INPUT "sisesta uus daatum (KK-PP-AAAA): ", b$\r
+IF LEN(b$) <> 10 THEN GOTO 13\r
+DATE$ = b$\r
+timo$ = ""\r
+13\r
+disp\r
+END IF\r
+\r
+IF a$ = "7" OR a$ = "8" THEN\r
+  b = VAL(RIGHT$(LEFT$(TIME$, 5), 2))\r
+  IF a$ = "7" THEN b = b - 1\r
+  IF a$ = "8" THEN b = b + 1\r
+  IF b < 0 THEN b = 0\r
+  IF b > 59 THEN b = 59\r
+  d$ = STR$(b)\r
+  IF LEFT$(d$, 1) = " " THEN d$ = RIGHT$(d$, LEN(d$) - 1)\r
+  IF LEN(d$) < 2 THEN d$ = "0" + d$\r
+  e$ = LEFT$(TIME$, 3) + d$ + RIGHT$(TIME$, 3)\r
+  TIME$ = e$\r
+END IF\r
+\r
+IF a$ = "4" OR a$ = "5" THEN\r
+  b = VAL(LEFT$(TIME$, 2))\r
+  IF a$ = "4" THEN b = b - 1\r
+  IF a$ = "5" THEN b = b + 1\r
+  IF b < 0 THEN b = 0\r
+  IF b > 23 THEN b = 23\r
+  d$ = STR$(b)\r
+  IF LEFT$(d$, 1) = " " THEN d$ = RIGHT$(d$, LEN(d$) - 1)\r
+  IF LEN(d$) < 2 THEN d$ = "0" + d$\r
+  e$ = d$ + RIGHT$(TIME$, 6)\r
+  TIME$ = e$\r
+END IF\r
+\r
+IF a$ = "u" THEN sync2\r
+IF a$ = "l" THEN sync\r
+\r
+IF a$ = "r" THEN rese\r
+IF a$ = "q" THEN SYSTEM\r
+\r
+IF a$ = "j" THEN\r
+IF tunnidara = 0 THEN tunnidara = 1 ELSE tunnidara = 0\r
+dispt\r
+END IF\r
+\r
+IF ssave <= ssavel THEN\r
+  LOCATE 11, 1\r
+  PRINT TIME$\r
+  LOCATE 12, 1\r
+  PRINT DATE$\r
+ELSE\r
+  IF ABS(TIMER - timero) > 10 THEN\r
+  CLS\r
+  kblukk = 1\r
+  FOR b = 1 TO 20\r
+    LOCATE RND * 22 + 1, RND * 79 + 1\r
+    IF RND * 100 < 50 THEN PRINT "*" ELSE PRINT "."\r
+  NEXT b\r
+  LOCATE RND * 22 + 1, RND * 50 + 1\r
+  COLOR 0, 7\r
+  PRINT "< " + LEFT$(TIME$, 2);\r
+  COLOR 16, 7\r
+  PRINT ":";\r
+  COLOR 0, 7\r
+  PRINT RIGHT$(LEFT$(TIME$, 5), 2) + " >"\r
+  COLOR 7, 0\r
+  timero = TIMER\r
+  END IF\r
+END IF\r
+GOTO 1\r
+\r
+\r
+END SUB\r
+\r
+SUB rese\r
+heli 4\r
+timo$ = ""\r
+dato$ = ""\r
+apl = 0\r
+END SUB\r
+\r
+SUB son (a$)\r
+\r
+FOR b = 1 TO 50\r
+sona$(b) = ""\r
+NEXT b\r
+mitus = 0\r
+\r
+b = 1\r
+FOR c = 1 TO LEN(a$)\r
+d$ = RIGHT$(LEFT$(a$, c), 1)\r
+IF d$ = " " OR d$ = CHR$(9) THEN\r
+b = 1\r
+ELSE\r
+IF b = 1 THEN b = 0: mitus = mitus + 1\r
+sona$(mitus) = sona$(mitus) + d$\r
+END IF\r
+NEXT c\r
+\r
+\r
+END SUB\r
+\r
+SUB start\r
+pn$(1) = "esmasp�ev"\r
+pn$(2) = "teisip�ev"\r
+pn$(3) = "kolmap�ev"\r
+pn$(4) = "neljap�ev"\r
+pn$(5) = "reede"\r
+pn$(6) = "laup�ev"\r
+pn$(7) = "p�hap�ev"\r
+\r
+prt = &H378\r
+\r
+ssavel = 2\r
+kblukk = 1\r
+tunnidara = 0\r
+END SUB\r
+\r
+SUB sync\r
+OPEN "sync.txt" FOR INPUT AS #1\r
+LINE INPUT #1, a$\r
+DATE$ = a$\r
+LINE INPUT #1, a$\r
+TIME$ = a$\r
+CLOSE #1\r
+\r
+heli 2\r
+END SUB\r
+\r
+SUB sync2\r
+a$ = TIME$\r
+a$ = LEFT$(a$, 5)\r
+b = VAL(RIGHT$(a$, 2))\r
+c = VAL(LEFT$(a$, 2))\r
+IF b >= 30 THEN c = c + 1\r
+b = 0\r
+IF c > 23 THEN c = c - 24\r
+a$ = RIGHT$(STR$(c), LEN(STR$(c)) - 1)\r
+b$ = RIGHT$(STR$(b), LEN(STR$(b)) - 1)\r
+IF LEN(a$) < 2 THEN a$ = "0" + a$\r
+IF LEN(b$) < 2 THEN b$ = "0" + b$\r
+a$ = a$ + ":" + b$\r
+\r
+'LOCATE 10, 1\r
+'PRINT a$\r
+\r
+TIME$ = a$\r
+\r
+heli 1\r
+END SUB\r
+\r
diff --git a/automation/school clock/kell2/luhend.pp b/automation/school clock/kell2/luhend.pp
new file mode 100755 (executable)
index 0000000..8c36fd4
--- /dev/null
@@ -0,0 +1,27 @@
+# 08:30 sis\r
+# 09:00 val\r
+\r
+# 09:10 sis\r
+# 09:40 val\r
+\r
+# 09:50 sis\r
+# 10:20 val\r
+\r
+# 10:30 sis\r
+# 11:00 val\r
+\r
+# 11:30 sis\r
+# 12:00 val\r
+\r
+# 12:10 sis\r
+# 12:40 val\r
+\r
+# 12:50 sis\r
+# 13:20 val\r
+\r
+# 13:30 sis\r
+# 14:00 val\r
+\r
+# 14:05 sis\r
+# 14:35 val\r
+\r
diff --git a/automation/school clock/kell2/opetajap.pp b/automation/school clock/kell2/opetajap.pp
new file mode 100755 (executable)
index 0000000..0708469
--- /dev/null
@@ -0,0 +1,19 @@
+# 08:30 sis\r
+# 09:15 val\r
+\r
+# 09:25 sis\r
+# 10:10 val\r
+\r
+# 10:20 sis\r
+# 10:45 val\r
+\r
+# 10:55 sis\r
+# 11:20 val\r
+\r
+# 11:40 sis\r
+# 12:05 val\r
+\r
+# 12:15 sis\r
+# 12:40 val\r
+\r
+\r
diff --git a/automation/school clock/kell2/rebased.pp b/automation/school clock/kell2/rebased.pp
new file mode 100755 (executable)
index 0000000..97dc6a5
--- /dev/null
@@ -0,0 +1,23 @@
+# 08:30 sis\r
+# 09:10 val\r
+\r
+# 09:20 sis\r
+# 10:00 val\r
+\r
+# 10:10 sis\r
+# 10:50 val\r
+\r
+# 11:30 sis\r
+# 12:10 val\r
+\r
+# 12:20 sis\r
+# 13:00 val\r
+\r
+# 13:10 sis\r
+# 13:50 val\r
+\r
+# 14:00 sis\r
+# 14:40 val\r
+\r
+# 14:45 sis\r
+# 15:30 val\r
diff --git a/automation/school clock/kell2/reede.pp b/automation/school clock/kell2/reede.pp
new file mode 100755 (executable)
index 0000000..b4c0e82
--- /dev/null
@@ -0,0 +1,23 @@
+# 08:30 sis\r
+# 09:15 val\r
+\r
+# 09:25 sis\r
+# 10:10 val\r
+\r
+# 10:20 sis\r
+# 11:05 val\r
+\r
+# 11:35 sis\r
+# 12:20 val\r
+\r
+# 12:30 sis\r
+# 13:15 val\r
+\r
+# 13:20 sis\r
+# 14:05 val\r
+\r
+# 14:10 sis\r
+# 14:55 val\r
+\r
+# 15:00 sis\r
+# 15:45 val\r
diff --git a/automation/school clock/kell2/sync.txt b/automation/school clock/kell2/sync.txt
new file mode 100755 (executable)
index 0000000..dbbc645
--- /dev/null
@@ -0,0 +1,5 @@
+02-03-2003\r
+11:32\r
+\r
+kuu-paev-aasta\r
+tunnid-minutid
\ No newline at end of file
diff --git a/automation/school clock/kell2/tava.pp b/automation/school clock/kell2/tava.pp
new file mode 100755 (executable)
index 0000000..e83ded7
--- /dev/null
@@ -0,0 +1,29 @@
+# 08:30 sis\r
+# 09:15 val\r
+\r
+# 09:25 sis\r
+# 10:10 val\r
+\r
+# 10:20 sis\r
+# 11:05 val\r
+\r
+# 11:35 sis\r
+# 12:20 val\r
+\r
+# 12:30 sis\r
+# 13:15 val\r
+\r
+# 13:25 sis\r
+# 14:10 val\r
+\r
+# 14:20 sis\r
+# 15:05 val\r
+\r
+# 15:10 sis\r
+# 15:55 val\r
+\r
+# 16:00 sis\r
+# 16:45 val\r
+\r
+# 16:50 sis\r
+# 17:35 val
\ No newline at end of file
diff --git a/automation/school clock/kell2/tuhi.pp b/automation/school clock/kell2/tuhi.pp
new file mode 100755 (executable)
index 0000000..e69de29
diff --git a/automation/school clock/kell3/aasta.ap b/automation/school clock/kell3/aasta.ap
new file mode 100755 (executable)
index 0000000..8640065
--- /dev/null
@@ -0,0 +1,12 @@
+v      01-01   12-31   tava\r
+n      01-01   12-31   5       reede\r
+e      04-17   luhend\r
+e      04-18   tuhi\r
+e      04-30   luhend\r
+e      05-01   tuhi\r
+e      06-23   tuhi\r
+e      06-24   tuhi\r
+n      01-01   12-31   6       tuhi\r
+n      01-01   12-31   7       tuhi\r
+v      07-01   08-31   tuhi\r
+\r
diff --git a/automation/school clock/kell3/juhend.txt b/automation/school clock/kell3/juhend.txt
new file mode 100755 (executable)
index 0000000..6024b42
--- /dev/null
@@ -0,0 +1,150 @@
+               Kooli Kell 3 programmi kasutusjuhend\r
+               ------------------------------------\r
+\r
+2003.09\r
+\r
+Programmi, juhendi ja skeemi autor: Svjatoslav Agejenko\r
+E-post:         svjatoslavagejenko@gmail.com\r
+kodulehekylg:   www.hot.ee/n0/\r
+\r
+Ettevaatust: Siin tekstis olev info v6ib olla vananenud, vigane v6i\r
+ebat2ielik. Autor ei v6ta endale vastutust antud systeemi kasutamisest\r
+tekkinud otsese v6i kaudse kahju puhul!\r
\r
+\r
+\r
+       0 Teemad\r
+       --------\r
+\r
+0 Teemad\r
+1 Yldinfo\r
+2 faili AASTA.AP formaat\r
+3 failide *.PP formaat\r
+4 Raudvara n6uded\r
+5 Tarkvara n6uded\r
+6 N6uded inimesele\r
+\r
+\r
+\r
+       1 Yldinfo\r
+       ---------\r
+\r
+Programm Kooli Kell on m6eldud kella laskmiseks koolis, tundi sisse ja v2lja.\r
+Tundi sisse minev kell on 1 pikk ning 1 lyhem helin. V2ljaminev kell on 1\r
+tavaline pikk helin. Programm loeb aega arvuti systeemsest kellast.\r
+Fail 'AASTA.AP' hoiab aasta graafikut, kus saab m22rata teatud p2eva kohta\r
+k2iva p2evaplaani. P2evaplaanid asuvad failides '*.PP'.\r
+Aasta v6i p2evaplaani muutmiseks tuleb redigeerida vastavaid faile.\r
+Failides on info esitatud programmile 'Kooli Kell' arusaadavate k2skudena.\r
+Kus yhel real on yks k2sk, v6i tyhi rida.\r
+Rea esimene s6na peab olema k2sk, ning j2rgnevad s6nad on selle k2su\r
+parameetrid. S6nad v6ivad olla eraldatud suvalise 0 suuremate\r
+tabulaatorite ja/v6i tyhikute arvuga.\r
+Programmi saab kasutada arvutil millele on yhendatud spetsiaalne liides,\r
+v6i millel on see liides sisse monteeritud. Liideses olev relee toimib\r
+lylitina, mis kella laskmise ajaks sulgub. Liides vooluahelasse ise\r
+voolu ei anna. Seega on liides m6eldud kella ja toiteallikaga vooluahelasse\r
+jadamisi yhendamiseks. V6i siis olemasoleva mehaanilise\r
+kella laskmis nupuga paralleelselt, siis saab kella lasta nii endisest\r
+nupust kui ka arvutiga.\r
+\r
+Programm on etten2htud iseseisvalt t88tama, kuid on\r
+ka v6imalus erandkorras k2sitsi kella lasta, aega muuta jne.\r
+Selleks tuleb vajutada erinevaid klahve klaviatuuril.\r
+K2ivitudes kuvab programm klahvide kirjeldused ekraanile.\r
+\r
+\r
+\r
+       2 faili AASTA.AP formaat\r
+       ------------------------\r
+\r
+L6pp 'AP' tuleneb s6nadest Aasta plaan.\r
+\r
+v       <kuu>-<p2ev>    <kuu>-<p2ev>    <p2evaplaan>\r
+\r
+S6nast vahemik. Paneb paika p2evaplaani antud ajavahemikus. Esimene\r
+daatum peab kindlasti olema v2iksem kui teine. St. kui on t6esti vaja:\r
+\r
+v      10-4    2-1     eri\r
+\r
+tuleb kirjutada:\r
+\r
+v      10-4    12-31   eri\r
+v      1-1     2-1     eri\r
+\r
+P2evaplaan kehtib vahemiku esimesest p2evast kuni vahemiku viimase p2evani.\r
+\r
+n       <kuu>-<p2ev>    <kuu>-<p2ev>    <n2dalap2ev>    <p2evaplaan>\r
+\r
+S6nast n2dalap2ev. sama mis "v" kuid: paneb paika p2evaplaani antud\r
+ajavahemikus, antud n2dalap2eval. N2dalap2eva kirjeldatakse numbriga.\r
+n2dala esimene p2ev on esmasp2ev, talle vastab number 1.\r
+\r
+e      <kuu>-<p�ev> <p�evaplaan>\r
+\r
+S6nast erip2evaplaan. Paneb paika antud kuup2evale antud p2evaplaani.\r
+Sobib h2sti erakorraliste, lyhendatud v6i uhekordselt kehtivate\r
+p2evaplaanide kehtestamiseks. N2iteks riigipyhad, spordip2ev jne.\r
+\r
+Kui teatud p2eva kohta ei k2inud yhtegi kirjet siis toimib vaikimisi "tuhi"\r
+p2evaplaan. Kui teatud p2eva kohta k2is mitu kirjet siis j22b peale viimane.\r
+\r
+\r
+\r
+       3 failide *.PP formaat\r
+       ----------------------\r
+\r
+L6pp 'PP' tuleneb s6nadest P2eva Plaan.\r
+\r
+#      <tund>:<minut>  <kell>\r
+\r
+Laseb antud ajal antud kella. V6imalikud kella helinad on:\r
+\r
+       sis     -kell tundi sisse\r
+        val     -kell tunnist v2lja\r
+\r
+\r
+\r
+        4 Raudvara n6uded\r
+        -----------------\r
+\r
+286 protsessoriga PC tyypi arvuti.\r
+        Peaks t88tama ka 8086 protsessoril aga pole testinud.\r
+\r
+640 KB p6him2lu.\r
+        V2hemaga pole testinud.\r
+\r
+500 KB vaba kettaruumi.\r
+        K6vakettalt t88 kiirendab oluliselt programmi k2ivitumist,\r
+        ja konfiguratsiooni redigeerimist.\r
+\r
+LPT port.\r
+\r
+Monitor.\r
+        v6ib ka mustvalge.\r
+\r
+Klaviatuur.\r
+\r
+\r
+\r
+        5 Tarkvara n6uded\r
+        -----------------\r
+\r
+DOS 6.22\r
+        V6ib ka varasem, kuid pole testinud.\r
+QB 4.5\r
+        Piisab 'QB.EXE' failist. Peaks t88tama ka MS QBasic-us.\r
+EDIT.EXE\r
+        DOSi k2surealt k2ivituv teksti redaktor.\r
+\r
+\r
+\r
+        6 N6uded inimesele\r
+        ------------------\r
+\r
+Systeemi kasutamiseks h2davajalik antud juhendist aru saamine. \r
+Systeemi paigaldamine n6uab elektriku oskusi.\r
+Programmi kasutamiseks on vajalik v2hemalt\r
+algaja tasemel arvutikasutaja oskus.\r
+\r
+\r
diff --git a/automation/school clock/kell3/kell3.bas b/automation/school clock/kell3/kell3.bas
new file mode 100755 (executable)
index 0000000..da4711b
--- /dev/null
@@ -0,0 +1,622 @@
+DECLARE FUNCTION getnam$ (a%)\r
+DECLARE FUNCTION getsym$ (a$, b%)\r
+DECLARE SUB editor ()\r
+DECLARE SUB leiaconf ()\r
+DECLARE SUB clrerr ()\r
+DECLARE SUB dispt ()\r
+\r
+' Kooli Kell 3\r
+\r
+' (c) Svjatoslav Agejenko\r
+' All rights reserved.\r
+\r
+' E-mail:       svjatoslavagejenko@gmail.com\r
+' Homepage:     svjatoslav.eu\r
+\r
+DECLARE SUB dispp ()\r
+DECLARE SUB displukk ()\r
+DECLARE SUB kola (a%)\r
+DECLARE SUB rese ()\r
+DECLARE SUB start ()\r
+DECLARE SUB getnad (g%, n%, d%, k%)\r
+DECLARE SUB initp (b$)\r
+DECLARE SUB getmd (a$, m%, d%)\r
+DECLARE SUB son (a$)\r
+DECLARE SUB inita ()\r
+DECLARE SUB chm ()\r
+DECLARE SUB chd ()\r
+DECLARE SUB kell (a%)\r
+DECLARE SUB sync2 ()\r
+DECLARE SUB sync ()\r
+DECLARE SUB mnmain ()\r
+DECLARE SUB heli (a%)\r
+DECLARE SUB disp ()\r
+DEFINT A-Z\r
+\r
+DIM SHARED ap$(1 TO 500)\r
+DIM SHARED apl\r
+DIM SHARED pp$(1 TO 500)\r
+DIM SHARED ppl\r
+DIM SHARED prt, prt2\r
+DIM SHARED timo$\r
+DIM SHARED dato$\r
+DIM SHARED sona$(1 TO 50)\r
+DIM SHARED mitus\r
+DIM SHARED lp$\r
+DIM SHARED ndlp\r
+DIM SHARED pn$(1 TO 7)\r
+DIM SHARED lk$\r
+DIM SHARED ssave\r
+DIM SHARED ssavel\r
+DIM SHARED timero AS LONG\r
+DIM SHARED kblukk\r
+DIM SHARED tunnidara\r
+DIM SHARED errmsg$\r
+DIM SHARED cnflist$(1 TO 200)\r
+\r
+'ON ERROR GOTO 20\r
+\r
+start\r
+disp\r
+mnmain\r
+\r
+20\r
+LOCATE 20, 1\r
+COLOR 0, 15\r
+PRINT "Programmi t88s ilmus j2rgnev t6rge:"\r
+PRINT errmsg$\r
+PRINT "Programmi t2itmine katkestatud!  Abi saamiseks lugege juhendit."\r
+SYSTEM\r
+\r
+SUB chd\r
+b$ = "tuhi"\r
+IF apl = 0 THEN inita\r
+\r
+a$ = DATE$\r
+n1 = VAL(RIGHT$(a$, 4))\r
+n2 = VAL(LEFT$(a$, 2))\r
+a$ = LEFT$(a$, 5)\r
+n3 = VAL(RIGHT$(a$, 2))\r
+getnad n1, n2, n3, ndlp\r
+FOR a = 1 TO apl\r
+son ap$(a)\r
+SELECT CASE sona$(1)\r
+CASE "v"\r
+getmd sona$(2), m1, d1\r
+getmd sona$(3), m2, d2\r
+getmd DATE$, m3, d3\r
+IF m3 < m1 THEN GOTO 9\r
+IF m3 > m2 THEN GOTO 9\r
+IF m3 = m1 THEN IF d3 < d1 THEN GOTO 9\r
+IF m3 = m2 THEN IF d3 > d2 THEN GOTO 9\r
+b$ = sona$(4)\r
+CASE "n"\r
+getmd sona$(2), m1, d1\r
+getmd sona$(3), m2, d2\r
+getmd DATE$, m3, d3\r
+IF m3 < m1 THEN GOTO 9\r
+IF m3 > m2 THEN GOTO 9\r
+IF m3 = m1 THEN IF d3 < d1 THEN GOTO 9\r
+IF m3 = m2 THEN IF d3 > d2 THEN GOTO 9\r
+IF ndlp <> VAL(sona$(4)) THEN GOTO 9\r
+b$ = sona$(5)\r
+CASE "e"\r
+getmd sona$(2), m1, d1\r
+getmd DATE$, m2, d2\r
+IF (m1 = m2) AND (d1 = d2) THEN b$ = sona$(3)\r
+END SELECT\r
+9\r
+NEXT a\r
+\r
+IF b$ <> lp$ THEN initp b$\r
+lp$ = b$\r
+tunnidara = 0\r
+dispp\r
+disp\r
+END SUB\r
+\r
+SUB chm\r
+a$ = DATE$\r
+IF a$ <> dato$ THEN chd\r
+dato$ = a$\r
+b = 0\r
+FOR a = 1 TO ppl\r
+son pp$(a)\r
+SELECT CASE sona$(1)\r
+CASE "#"\r
+getmd sona$(2), h1, m1\r
+getmd TIME$, h2, m2\r
+' PRINT h1, m1, h2, m2\r
+IF (h2 = h1) AND (m2 = m1) THEN\r
+IF sona$(3) = "sis" THEN b = 1\r
+IF sona$(3) = "val" THEN b = 2\r
+END IF\r
+END SELECT\r
+NEXT a\r
+\r
+IF (tunnidara = 0) AND (b > 0) THEN kell b\r
+ssave = ssave + 1\r
+END SUB\r
+\r
+SUB clrerr\r
+errmsg$ = "tundmatu viga. V6ibolla on v2he RAM m2lu?"\r
+END SUB\r
+\r
+SUB disp\r
+CLS\r
+PRINT "Kooli Kell 3     2003.09"\r
+PRINT "autor: Svjatoslav Agejenko  "\r
+PRINT ""\r
+PRINT "s - kell tundi sisse             v - kell tunnist v�lja"\r
+PRINT "a - sisesta uus aeg              d - sisesta uus daatum"\r
+PRINT "p - n2itab dokumentatsiooni      j - j�tab k�ik tunnid t�na �ra"\r
+PRINT "7 - 1 minut tagasi               8 - 1 minut edasi"\r
+PRINT "4 - 1 tund tagasi                5 - 1 tund edasi"\r
+PRINT "r - programmi restart            q - programmist v�lja"\r
+PRINT "k - konfiguratsiooni redaktor    CTRL+L - klaviatuuri lukk (sees/v2ljas)"\r
+\r
+dispp\r
+\r
+LOCATE 12, 15\r
+PRINT "Kuu-P�ev-Aasta (USA standard)"\r
+\r
+\r
+LOCATE 17\r
+\r
+FOR a = 1 TO ppl\r
+IF pp$(a) <> SPACE$(LEN(pp$(a))) THEN\r
+  PRINT pp$(a);\r
+  PRINT SPACE$(15 - LEN(pp$(a)));\r
+END IF\r
+NEXT a\r
+\r
+displukk\r
+dispt\r
+END SUB\r
+\r
+SUB displukk\r
+LOCATE 1, 40\r
+IF kblukk = 1 THEN\r
+  COLOR 0, 7\r
+  PRINT "Klaviatuur lukus! Vajuta CTRL+L"\r
+  COLOR 15, 0\r
+ELSE\r
+  PRINT "                               "\r
+END IF\r
+END SUB\r
+\r
+SUB dispp\r
+IF ndlp = 0 THEN GOTO 14\r
+LOCATE 14, 1\r
+PRINT "n�dalap�ev:", pn$(ndlp)\r
+LOCATE 15, 1\r
+PRINT "p�evaplaan:", lp$\r
+14\r
+END SUB\r
+\r
+SUB dispt\r
+LOCATE 16, 20\r
+COLOR 12 + 15, 0\r
+IF tunnidara = 1 THEN\r
+  PRINT "T2na on k6ik tunnid 2ra j2etud"\r
+ELSE\r
+  PRINT "                              "\r
+END IF\r
+COLOR 15, 0\r
+END SUB\r
+\r
+SUB editor\r
+23\r
+leiaconf\r
+CLS\r
+COLOR 0, 15\r
+LOCATE 1, 1\r
+PRINT SPACE$(80);\r
+LOCATE 1, 1\r
+PRINT "Konfiguratsiooni redaktor. Valige v2lja p2eva v6i aasta plaani."\r
+LOCATE 2, 1\r
+PRINT SPACE$(80);\r
+LOCATE 2, 1\r
+PRINT "  nr   nimi     laiend     suurus loomisdaatum"\r
+\r
+LOCATE 22, 1\r
+PRINT SPACE$(80);\r
+LOCATE 22, 1\r
+PRINT "K - valitud faili kustutamine   U - uus fail   ESC - redaktorist v2lja"\r
+p = 0\r
+v = 1\r
+17\r
+FOR a = 3 TO 21\r
+  IF a - 2 + p = v THEN\r
+    COLOR 0, 7\r
+    LOCATE a, 1\r
+    PRINT cnflist$(a - 2 + p) + SPACE$(55 - LEN(cnflist$(a - 2 + p)))\r
+    LOCATE a, 56\r
+    COLOR 31, 0\r
+    PRINT "<==";\r
+    IF cnflist$(a - 2 + p) <> SPACE$(LEN(cnflist$(a - 2 + p))) THEN\r
+      COLOR 15, 0\r
+      PRINT " valitud: " + getnam$(v)\r
+    END IF\r
+    COLOR 15, 0\r
+  ELSE\r
+    COLOR 15, 0\r
+    LOCATE a, 1\r
+    PRINT cnflist$(a - 2 + p) + SPACE$(80 - LEN(cnflist$(a - 2 + p)))\r
+  END IF\r
+NEXT a\r
+  \r
+\r
+a$ = INKEY$\r
+LOCATE 1, 1\r
+'IF a$ <> "" THEN PRINT ASC(RIGHT$(a$, 1)); ASC(LEFT$(a$, 1))\r
+IF a$ = CHR$(27) THEN GOTO 18\r
+IF a$ = "u" OR a$ = "U" THEN SHELL "EDIT": GOTO 23\r
+IF a$ = CHR$(0) + "P" THEN v = v + 1\r
+IF a$ = CHR$(0) + "H" THEN v = v - 1\r
+IF a$ = CHR$(0) + CHR$(73) THEN v = v - 17\r
+IF a$ = CHR$(0) + CHR$(81) THEN v = v + 17\r
+IF a$ = "K" OR a$ = "k" THEN\r
+  IF LEN(getnam$(v)) > 2 THEN\r
+    IF getnam$(v) = "AASTA.AP" THEN\r
+      SOUND 3000, .1\r
+    ELSE\r
+      KILL getnam$(v)\r
+      GOTO 23\r
+    END IF\r
+  ELSE\r
+    SOUND 3000, .1\r
+  END IF\r
+END IF\r
+IF a$ = CHR$(13) THEN\r
+  IF getnam$(v) = "." THEN\r
+    SOUND 3000, .1\r
+  ELSE\r
+    SHELL "EDIT " + getnam$(v)\r
+    GOTO 23\r
+  END IF\r
+END IF\r
+\r
+IF v < 1 THEN v = 1: SOUND 3000, .2\r
+IF v > 200 THEN v = 200: : SOUND 3000, .2\r
+\r
+21 IF v - p > 19 THEN p = p + 1: GOTO 21\r
+22 IF v - p < 1 THEN p = p - 1: GOTO 22\r
+\r
+GOTO 17\r
+18\r
+COLOR 15, 0\r
+disp\r
+END SUB\r
+\r
+SUB getmd (a$, m, d)\r
+b$ = LEFT$(a$, 5)\r
+m = VAL(LEFT$(b$, 2))\r
+d = VAL(RIGHT$(b$, 2))\r
+\r
+END SUB\r
+\r
+SUB getnad (g, n, d, k)\r
+'LOCATE 11, 1\r
+'PRINT g, n, d\r
+p = g\r
+m = n - 2\r
+IF n > 2 GOTO 120\r
+p = p - 1: m = m + 12\r
+120\r
+c = INT(p / 100)\r
+y = p - c * 100\r
+w = d + INT((13 * m - 1) / 5) + y + INT(y / 4) + INT(c / 4) - 2 * c\r
+k = w - 7 * INT(w / 7)\r
+IF k = 0 THEN k = 7\r
+END SUB\r
+\r
+FUNCTION getnam$ (a)\r
+c$ = ""\r
+FOR b = 8 TO 40\r
+  d$ = getsym(cnflist$(a), b)\r
+  IF d$ = " " THEN GOTO 19\r
+  c$ = c$ + d$\r
+NEXT b\r
+19\r
+getnam$ = c$ + "." + getsym(cnflist$(a), 17) + getsym(cnflist$(a), 18)\r
+END FUNCTION\r
+\r
+FUNCTION getsym$ (a$, b)\r
+getsym$ = RIGHT$(LEFT$(a$, b), 1)\r
+END FUNCTION\r
+\r
+SUB heli (a)\r
+'GOTO 10\r
+SELECT CASE a\r
+CASE 1\r
+FOR c = 1 TO 5\r
+SOUND 3000, 1\r
+SOUND 0, 1\r
+NEXT c\r
+\r
+CASE 2\r
+FOR c = 1 TO 5\r
+SOUND 2500, 1\r
+SOUND 0, 2\r
+NEXT c\r
+SOUND 2500, 10\r
+\r
+CASE 3\r
+FOR a = 1 TO 10\r
+SOUND 500, .5\r
+SOUND 1500, .5\r
+SOUND 2000, .5\r
+SOUND 1520, .5\r
+NEXT a\r
+\r
+\r
+CASE 4\r
+FOR a = 800 TO 1000 STEP 10\r
+SOUND a, .1\r
+SOUND a * 3, .1\r
+SOUND 0, 1\r
+NEXT a\r
+10\r
+\r
+END SELECT\r
+\r
+\r
+END SUB\r
+\r
+SUB inita\r
+apl = 0\r
+errmsg$ = "Ei leia aastaplaani faili! 'aasta.ap'"\r
+OPEN "aasta.ap" FOR INPUT AS #1\r
+clrerr\r
+5\r
+IF EOF(1) <> 0 THEN GOTO 3\r
+LINE INPUT #1, a$\r
+apl = apl + 1\r
+ap$(apl) = a$\r
+GOTO 5\r
+3\r
+CLOSE #1\r
+END SUB\r
+\r
+SUB initp (b$)\r
+ppl = 0\r
+errmsg$ = "Ei leia aastaplaanis mainitud '" + b$ + ".pp' p2evaplaani!"\r
+OPEN b$ + ".pp" FOR INPUT AS #1\r
+clrerr\r
+6\r
+IF EOF(1) <> 0 THEN GOTO 7\r
+LINE INPUT #1, a$\r
+ppl = ppl + 1\r
+pp$(ppl) = a$\r
+GOTO 6\r
+7\r
+CLOSE #1\r
+END SUB\r
+\r
+SUB kell (a)\r
+b$ = TIME$ + DATE$\r
+IF b$ <> lk$ THEN lk$ = b$ ELSE GOTO 2\r
+\r
+heli 3\r
+\r
+SELECT CASE a\r
+CASE 1\r
+kola 4\r
+FOR b = 1 TO 15\r
+SOUND 0, 1\r
+NEXT b\r
+kola 1\r
+CASE 2\r
+kola 5\r
+END SELECT\r
+2\r
+END SUB\r
+\r
+SUB kola (a)\r
+COLOR 15, 7\r
+s$ = ""\r
+FOR b = 1 TO 80\r
+  s$ = s$ + CHR$(219)\r
+NEXT b\r
+FOR b = 1 TO 30\r
+PRINT s$;\r
+NEXT b\r
+\r
+timero = TIMER\r
+11\r
+OUT prt, 255\r
+IF ABS(timero - TIMER) < a THEN GOTO 11\r
+OUT prt, 0\r
+COLOR 15, 0\r
+disp\r
+END SUB\r
+\r
+SUB leiaconf\r
+FOR a = 1 TO 200\r
+  cnflist$(a) = ""\r
+NEXT a\r
+c = 1\r
+\r
+SHELL "dir >dir.tmp"\r
+OPEN "dir.tmp" FOR INPUT AS #1\r
+15\r
+IF EOF(1) <> 0 THEN GOTO 16\r
+LINE INPUT #1, a$\r
+IF LEN(a$) < 30 THEN GOTO 15\r
+IF LEFT$(a$, 1) = " " THEN GOTO 15\r
+IF LEFT$(a$, 1) = "." THEN GOTO 15\r
+b$ = RIGHT$(LEFT$(a$, 12), 3)\r
+IF b$ = "PP " OR b$ = "AP " THEN  ELSE GOTO 15\r
+d$ = "    " + STR$(c)\r
+a$ = RIGHT$(d$, 4) + "   " + a$\r
+IF LEN(a$) > 50 THEN a$ = LEFT$(a$, 50)\r
+cnflist$(c) = a$\r
+c = c + 1\r
+GOTO 15\r
+16\r
+CLOSE #1\r
+KILL "dir.tmp"\r
+END SUB\r
+\r
+SUB mnmain\r
+1\r
+b$ = LEFT$(TIME$, 5)\r
+IF b$ <> timo$ THEN chm\r
+timo$ = b$\r
+\r
+a$ = INKEY$\r
+\r
+IF a$ <> "" THEN\r
+IF ssave > ssavel THEN disp\r
+ssave = 0\r
+END IF\r
+\r
+IF a$ = CHR$(12) THEN\r
+  IF kblukk = 1 THEN kblukk = 0 ELSE kblukk = 1\r
+  displukk\r
+END IF\r
+IF kblukk = 1 THEN\r
+  IF a$ <> "" THEN SOUND 3000, 1\r
+  a$ = ""\r
+END IF\r
+IF a$ = "k" OR a$ = "K" THEN editor\r
+\r
+IF a$ = "s" OR a$ = "S" THEN kell 1\r
+IF a$ = "v" OR a$ = "V" THEN kell 2\r
+\r
+IF a$ = "a" THEN\r
+CLS\r
+PRINT "                  vana aeg: " + TIME$\r
+INPUT "sisesta uus aeg (TT:MM:SS): ", b$\r
+IF LEN(b$) <> 8 THEN GOTO 12\r
+TIME$ = b$\r
+timo$ = ""\r
+12\r
+disp\r
+END IF\r
+\r
+IF a$ = "d" OR a$ = "D" THEN\r
+CLS\r
+PRINT "                    vana daatum: " + DATE$\r
+INPUT "sisesta uus daatum (KK-PP-AAAA): ", b$\r
+IF LEN(b$) <> 10 THEN GOTO 13\r
+DATE$ = b$\r
+timo$ = ""\r
+13\r
+disp\r
+END IF\r
+\r
+IF a$ = "7" OR a$ = "8" THEN\r
+  b = VAL(RIGHT$(LEFT$(TIME$, 5), 2))\r
+  IF a$ = "7" THEN b = b - 1\r
+  IF a$ = "8" THEN b = b + 1\r
+  IF b < 0 THEN b = 0\r
+  IF b > 59 THEN b = 59\r
+  d$ = STR$(b)\r
+  IF LEFT$(d$, 1) = " " THEN d$ = RIGHT$(d$, LEN(d$) - 1)\r
+  IF LEN(d$) < 2 THEN d$ = "0" + d$\r
+  e$ = LEFT$(TIME$, 3) + d$ + RIGHT$(TIME$, 3)\r
+  TIME$ = e$\r
+END IF\r
+\r
+IF a$ = "4" OR a$ = "5" THEN\r
+  b = VAL(LEFT$(TIME$, 2))\r
+  IF a$ = "4" THEN b = b - 1\r
+  IF a$ = "5" THEN b = b + 1\r
+  IF b < 0 THEN b = 0\r
+  IF b > 23 THEN b = 23\r
+  d$ = STR$(b)\r
+  IF LEFT$(d$, 1) = " " THEN d$ = RIGHT$(d$, LEN(d$) - 1)\r
+  IF LEN(d$) < 2 THEN d$ = "0" + d$\r
+  e$ = d$ + RIGHT$(TIME$, 6)\r
+  TIME$ = e$\r
+END IF\r
+\r
+IF a$ = "p" OR a$ = "P" THEN SHELL "EDIT juhend.txt": disp\r
+\r
+IF a$ = "r" OR a$ = "R" THEN rese\r
+IF a$ = "q" OR a$ = "Q" THEN SYSTEM\r
+\r
+IF a$ = "j" OR a$ = "J" THEN\r
+IF tunnidara = 0 THEN tunnidara = 1 ELSE tunnidara = 0\r
+dispt\r
+END IF\r
+\r
+IF ssave <= ssavel THEN\r
+  LOCATE 11, 1\r
+  PRINT TIME$\r
+  LOCATE 12, 1\r
+  PRINT DATE$\r
+ELSE\r
+  IF ABS(TIMER - timero) > 10 THEN\r
+  CLS\r
+  kblukk = 1\r
+  FOR b = 1 TO 20\r
+    LOCATE RND * 22 + 1, RND * 79 + 1\r
+    IF RND * 100 < 50 THEN PRINT "*" ELSE PRINT "."\r
+  NEXT b\r
+  LOCATE RND * 22 + 1, RND * 50 + 1\r
+  COLOR 0, 7\r
+  PRINT "< " + LEFT$(TIME$, 2);\r
+  COLOR 16, 7\r
+  PRINT ":";\r
+  COLOR 0, 7\r
+  PRINT RIGHT$(LEFT$(TIME$, 5), 2) + " >"\r
+  COLOR 15, 0\r
+  timero = TIMER\r
+  END IF\r
+END IF\r
+GOTO 1\r
+\r
+\r
+END SUB\r
+\r
+SUB rese\r
+heli 4\r
+timo$ = ""\r
+dato$ = ""\r
+apl = 0\r
+END SUB\r
+\r
+SUB son (a$)\r
+\r
+FOR b = 1 TO 50\r
+  sona$(b) = ""\r
+NEXT b\r
+mitus = 0\r
+\r
+b = 1\r
+FOR c = 1 TO LEN(a$)\r
+d$ = RIGHT$(LEFT$(a$, c), 1)\r
+IF d$ = " " OR d$ = CHR$(9) THEN\r
+b = 1\r
+ELSE\r
+IF b = 1 THEN b = 0: mitus = mitus + 1\r
+sona$(mitus) = sona$(mitus) + d$\r
+END IF\r
+NEXT c\r
+\r
+\r
+END SUB\r
+\r
+SUB start\r
+CLS\r
+COLOR 15\r
+pn$(1) = "esmasp�ev"\r
+pn$(2) = "teisip�ev"\r
+pn$(3) = "kolmap�ev"\r
+pn$(4) = "neljap�ev"\r
+pn$(5) = "reede"\r
+pn$(6) = "laup�ev"\r
+pn$(7) = "p�hap�ev"\r
+\r
+prt = &H378\r
+\r
+ssavel = 2\r
+kblukk = 1\r
+tunnidara = 0\r
+\r
+OUT prt, 0\r
+END SUB\r
+\r
diff --git a/automation/school clock/kell3/luhend.pp b/automation/school clock/kell3/luhend.pp
new file mode 100755 (executable)
index 0000000..8c36fd4
--- /dev/null
@@ -0,0 +1,27 @@
+# 08:30 sis\r
+# 09:00 val\r
+\r
+# 09:10 sis\r
+# 09:40 val\r
+\r
+# 09:50 sis\r
+# 10:20 val\r
+\r
+# 10:30 sis\r
+# 11:00 val\r
+\r
+# 11:30 sis\r
+# 12:00 val\r
+\r
+# 12:10 sis\r
+# 12:40 val\r
+\r
+# 12:50 sis\r
+# 13:20 val\r
+\r
+# 13:30 sis\r
+# 14:00 val\r
+\r
+# 14:05 sis\r
+# 14:35 val\r
+\r
diff --git a/automation/school clock/kell3/reede.pp b/automation/school clock/kell3/reede.pp
new file mode 100755 (executable)
index 0000000..b4c0e82
--- /dev/null
@@ -0,0 +1,23 @@
+# 08:30 sis\r
+# 09:15 val\r
+\r
+# 09:25 sis\r
+# 10:10 val\r
+\r
+# 10:20 sis\r
+# 11:05 val\r
+\r
+# 11:35 sis\r
+# 12:20 val\r
+\r
+# 12:30 sis\r
+# 13:15 val\r
+\r
+# 13:20 sis\r
+# 14:05 val\r
+\r
+# 14:10 sis\r
+# 14:55 val\r
+\r
+# 15:00 sis\r
+# 15:45 val\r
diff --git a/automation/school clock/kell3/skeem.png b/automation/school clock/kell3/skeem.png
new file mode 100755 (executable)
index 0000000..9c3e95b
Binary files /dev/null and b/automation/school clock/kell3/skeem.png differ
diff --git a/automation/school clock/kell3/tava.pp b/automation/school clock/kell3/tava.pp
new file mode 100755 (executable)
index 0000000..e83ded7
--- /dev/null
@@ -0,0 +1,29 @@
+# 08:30 sis\r
+# 09:15 val\r
+\r
+# 09:25 sis\r
+# 10:10 val\r
+\r
+# 10:20 sis\r
+# 11:05 val\r
+\r
+# 11:35 sis\r
+# 12:20 val\r
+\r
+# 12:30 sis\r
+# 13:15 val\r
+\r
+# 13:25 sis\r
+# 14:10 val\r
+\r
+# 14:20 sis\r
+# 15:05 val\r
+\r
+# 15:10 sis\r
+# 15:55 val\r
+\r
+# 16:00 sis\r
+# 16:45 val\r
+\r
+# 16:50 sis\r
+# 17:35 val
\ No newline at end of file
diff --git a/automation/school clock/kell3/tuhi.pp b/automation/school clock/kell3/tuhi.pp
new file mode 100755 (executable)
index 0000000..d3f5a12
--- /dev/null
@@ -0,0 +1 @@
+\r
diff --git a/database/auto.scr b/database/auto.scr
new file mode 100755 (executable)
index 0000000..6716870
--- /dev/null
@@ -0,0 +1,3 @@
+fload data.ddb\r
+chklin 1 |> s 1\r
+|> c
\ No newline at end of file
diff --git a/database/data.ddb b/database/data.ddb
new file mode 100755 (executable)
index 0000000..fe2191e
--- /dev/null
@@ -0,0 +1,19 @@
+// 1 nimi\r
+// 2 perekonnanimi\r
+// 3 aadress\r
+// 4 telefon\r
+// 5 sugu M / N\r
+// 6 registreerumisnumber andmebaasis\r
+// 7 s\81nniaasta\r
+\r
+Micael         |Apple          |Piparmundi 57  |405 925        |M|0|1983\r
+Linda          |Eik            |Jaama 123-3    |12121          |N|1|1910\r
+Aleksandra     |Strandbach     |Kaotuse 3-7    |053 939 626    |N|2|1950\r
+Vladislav      |Agejenko       |Miina 1        |405 925        |M|3|1950\r
+Uku            |Tsuikin        |               |               |M|4|1860\r
+Mari           |Elle           |               |               |N|5|1870\r
+Greet          |Eik            |Aoe 10-33      |3123123        |N|6|1982\r
+Veera          |Eik            |Aooof 20-33    |3123223        |N|7|1951\r
+Elvi           |Thompson       |Kastani 12-11  |127836         |N|8|1949\r
+Arni           |Eik            |Uus 123-12     |123432         |M|9|1948\r
+Mihhail                |Agejenko       |               |               |M|10|1861
\ No newline at end of file
diff --git a/database/ddbase6.bas b/database/ddbase6.bas
new file mode 100755 (executable)
index 0000000..5f2d25f
--- /dev/null
@@ -0,0 +1,959 @@
+' Dos Database\r
+' made by Svjatoslav Agejenko\r
+' in 2002\r
+' H-Page: svjatoslav.eu\r
+' E-Mail: svjatoslavagejenko@gmail.com\r
\r
+DECLARE SUB box (x1%, y1%, x2%, y2%)\r
+DECLARE SUB ssort (s%, m%)\r
+DECLARE SUB sort (s%, w%)\r
+REM $DYNAMIC\r
+DECLARE SUB cmp (a$, b$, r%)\r
+DECLARE SUB boss ()\r
+DECLARE SUB std (a$)\r
+DECLARE FUNCTION cnum$ (a%)\r
+DECLARE SUB fload (a$, b%, c%, d%)\r
+DECLARE SUB putfs (f%, l%, s%, c$)\r
+DECLARE SUB gets (l%, s%, a$)\r
+DECLARE SUB puts (l%, s%, a$)\r
+DECLARE SUB runf (a$)\r
+DECLARE SUB getfil (a%)\r
+DEFINT A-Y\r
+DECLARE SUB mkson (a$)\r
+DECLARE SUB title (a$)\r
+DECLARE SUB strip (a$, b$)\r
+DECLARE SUB cmd (a$)\r
+DECLARE SUB conkey (a$)\r
+DECLARE SUB conn (a$)\r
+DECLARE SUB ch ()\r
+DECLARE SUB chkey (a$)\r
+DECLARE SUB getkey (a$)\r
+DECLARE SUB conm (a$, c)\r
+DECLARE SUB start ()\r
+\r
+DIM SHARED con$(1 TO 50)\r
+DIM SHARED conc(1 TO 50)\r
+DIM SHARED concmd$\r
+DIM SHARED conx\r
+DIM SHARED sona$(1 TO 20)\r
+DIM SHARED mitus\r
+\r
+DIM SHARED buf$(1 TO 5000)\r
+DIM SHARED bufu(1 TO 5000)\r
+DIM SHARED bufl(1 TO 1000, 1 TO 30)\r
+DIM SHARED buflu(1 TO 1000)\r
+DIM SHARED lng\r
+DIM SHARED opf(1 TO 30)\r
+DIM SHARED hist$(1 TO 20)\r
+DIM SHARED histp, histk\r
+DIM SHARED buff(1 TO 30, 1 TO 1000)\r
+DIM SHARED stack(1 TO 2000, 1 TO 10)\r
+DIM SHARED stackl(1 TO 10)\r
+DIM SHARED stdl\r
+\r
+start\r
+\r
+1\r
+ch\r
+GOTO 1\r
+\r
+REM $STATIC\r
+SUB boss\r
+y1 = 0\r
+yp1 = 100\r
+y2 = 0\r
+yp2 = 100\r
+\r
+lx = 160\r
+ly = 100\r
+lxp = 1\r
+lyp = -1\r
+\r
+SCREEN 13\r
+\r
+GOSUB 18\r
+16\r
+a$ = INKEY$\r
+IF a$ = CHR$(0) + "H" THEN yp1 = yp1 - 25\r
+IF a$ = CHR$(0) + "P" THEN yp1 = yp1 + 25\r
+IF a$ = CHR$(27) THEN GOTO 17\r
+\r
+LINE (10, y1 - 35)-(20, y1 + 35), 0, B\r
+LINE (11, y1 - 34)-(19, y1 + 34), 15, B\r
+\r
+LINE (310, y2 - 35)-(300, y2 + 35), 0, B\r
+LINE (309, y2 - 34)-(301, y2 + 34), 15, B\r
+\r
+LINE (lx - 10, ly - 10)-(lx + 10, ly + 10), 0, B\r
+LINE (lx - 9, ly - 9)-(lx + 9, ly + 9), 15, B\r
+\r
+lx = lx + lxp\r
+ly = ly + lyp\r
+IF ly < 20 THEN lyp = 1\r
+IF ly > 180 THEN lyp = -1\r
+IF lx < 30 THEN\r
+lxp = 1\r
+IF ly < y1 - 35 OR ly > y1 + 35 THEN SOUND 1000, 1\r
+END IF\r
+IF lx > 290 THEN lxp = -1: GOSUB 18\r
+\r
+\r
+IF yp1 > 0 THEN y1 = y1 + 1: yp1 = yp1 - 1\r
+IF yp1 < 0 THEN y1 = y1 - 1: yp1 = yp1 + 1\r
+IF yp2 > 0 THEN y2 = y2 + 1: yp2 = yp2 - 1\r
+IF yp2 < 0 THEN y2 = y2 - 1: yp2 = yp2 + 1\r
+\r
+SOUND 0, .1\r
+GOTO 16\r
+18\r
+tlx = lx\r
+tly = ly\r
+tlyp = lyp\r
+tlxp = lxp\r
+\r
+\r
+19\r
+lx = lx + lxp\r
+ly = ly + lyp\r
+IF ly < 20 THEN lyp = 1\r
+IF ly > 180 THEN lyp = -1\r
+IF lx < 30 THEN lxp = 1\r
+IF lx > 290 THEN\r
+yp2 = ly - y2\r
+ELSE\r
+GOTO 19\r
+END IF\r
+\r
+SWAP lx, tlx\r
+SWAP ly, tly\r
+SWAP lyp, tlyp\r
+SWAP lxp, tlxp\r
+RETURN\r
+\r
+17\r
+SCREEN 0\r
+WIDTH 80, 50\r
+VIEW PRINT 1 TO 50\r
+END SUB\r
+\r
+SUB box (x1, y1, x2, y2)\r
+b$ = ""\r
+c$ = ""\r
+FOR a = x1 TO x2\r
+b$ = b$ + " "\r
+c$ = c$ + "-"\r
+NEXT a\r
+\r
+b$ = "|" + b$ + "|"\r
+c$ = "|" + c$ + "|"\r
+\r
+COLOR 14, 0\r
+LOCATE y1, x1\r
+PRINT c$\r
+LOCATE y2, x1\r
+PRINT c$\r
+FOR a = y1 + 1 TO y2 - 1\r
+LOCATE a, y1\r
+PRINT b$\r
+NEXT a\r
+\r
+\r
+END SUB\r
+\r
+SUB ch\r
+chkey a$\r
+IF a$ <> "" THEN conkey a$\r
+\r
+END SUB\r
+\r
+SUB chkey (a$)\r
+a$ = INKEY$\r
+IF a$ <> "" THEN\r
+IF a$ = CHR$(0) + "M" THEN a$ = "pa"\r
+IF a$ = CHR$(0) + "K" THEN a$ = "va"\r
+IF a$ = CHR$(0) + "H" THEN a$ = "ul"\r
+IF a$ = CHR$(0) + "P" THEN a$ = "al"\r
+\r
+\r
+END IF\r
+END SUB\r
+\r
+SUB cmd (a$)\r
+IF a$ = SPACE$(LEN(a$)) THEN GOTO 5\r
+conm a$, 14\r
+\r
+mkson a$\r
+IF mitus = 0 THEN GOTO 5\r
+\r
+SELECT CASE sona$(1)\r
+CASE "help"\r
+title "help"\r
+conm "help   - for help", 7\r
+conm "quit   - quit program", 7\r
+conm "b      - boss screen", 7\r
+conm "memstat- show info about memory blocks", 7\r
+conm "memput <addr> <data> - put data to specified memoy block", 7\r
+conm "memlist <addr> <amount> - show memory blocks, starting from <addr>", 7\r
+conm "runf <file.ext> - run script file", 7\r
+conm "lnstat - show info about memory lines", 7\r
+conm "lnput <line> <word> <data> <data> ... put data in <line> starting from <word>", 7\r
+conm "lnlist <addr> <amount> - show contenc of memory lines", 7\r
+conm "fstat - show info about memory files", 7\r
+conm "fput <file> <line> <word> <data> <data> ... put data in memory file", 7\r
+conm "fload <filename.ext> <file> <line> <word>- load data file into memory file", 7\r
+conm "cls    - clear screen", 7\r
+conm "stclear <stack> - clear stack", 7\r
+conm "chklin <page> <from line> <to line> - determine used line numbers to STDOUT", 7\r
+conm "stacksize <stack> - determine stack size to STDOUT", 7\r
+conm "filtand <stack> <word> <mask> <word> <mask> ... filters out lines to STDOUT", 7\r
+conm "filtor <stack> <word> <mask> <word> <mask> ... filters out lines to STDOUT", 7\r
+conm "disp <stack> <word> <word> ... display formatted selected cells to STDOUT", 7\r
+conm "sort <stack> <word> - sort elements by <word> value, lower first", 7\r
+conm "swap <stack> - swap stack elements (backwards)", 7\r
+conm "ssort <stack> <word> - sort stack in alphabetical order", 7\r
+conm "memget <pointer> - allocates memory block, and puts there -", 7\r
+conm "liststack <stack> <from line> <to line> - show stack values to STDOUT", 7\r
+conm "ask <question> <file> <line> <word> - asks question, and stores result", 7\r
+conm "flnget <file> <pointer> - get unused line in file", 7\r
+GOTO 5\r
+\r
+CASE "quit"\r
+SYSTEM\r
+\r
+CASE "memstat"\r
+title "memory blocks summary"\r
+c = 0\r
+lng = 0\r
+FOR b = 1 TO 5000\r
+IF bufu(b) > 0 THEN c = c + 1\r
+lng = lng + LEN(buf$(b))\r
+NEXT b\r
+d$ = "memory blocks used:" + STR$(c) + "  total 5000"\r
+conm d$, 7\r
+d$ = "data size:" + STR$(lng)\r
+conm d$, 7\r
+GOTO 5\r
+\r
+CASE "memput"\r
+b = VAL(sona$(2))\r
+strip sona$(3), c$\r
+IF c$ = "" THEN\r
+bufu(b) = 0\r
+buf$(b) = ""\r
+ELSE\r
+bufu(b) = 1\r
+buf$(b) = sona$(3)\r
+END IF\r
+GOTO 5\r
+\r
+CASE "memlist"\r
+b = VAL(sona$(2))\r
+c = VAL(sona$(3))\r
+IF b = 0 THEN b = 1\r
+IF c = 0 THEN c = 1\r
+\r
+FOR d = b TO 5000\r
+IF c = 0 THEN GOTO 5\r
+IF bufu(d) > 0 THEN\r
+e$ = cnum(d) + ":" + SPACE$(5 - LEN(cnum(d)))\r
+e$ = e$ + buf$(d)\r
+conm e$, 7\r
+c = c - 1\r
+END IF\r
+NEXT d\r
+GOTO 5\r
+\r
+CASE "runf"\r
+runf sona$(2)\r
+GOTO 5\r
+\r
+CASE "lnstat"\r
+title "memory lines summary"\r
+c = 0\r
+d = 0\r
+FOR b = 1 TO 1000\r
+IF buflu(b) > 0 THEN c = c + 1: d = d + buflu(b)\r
+NEXT b\r
+d$ = "memory lines used:" + STR$(c) + "  total 1000"\r
+conm d$, 7\r
+d$ = "total number of words in lines:" + STR$(d)\r
+conm d$, 7\r
+GOTO 5\r
+\r
+CASE "lnput"\r
+b = VAL(sona$(2))\r
+c = VAL(sona$(3))\r
+e = mitus\r
+IF e < 4 THEN e = 4\r
+FOR d = 4 TO e\r
+puts b, c + d - 4, sona$(d)\r
+NEXT d\r
+GOTO 5\r
+\r
+CASE "lnlist"\r
+b = VAL(sona$(2))\r
+c = VAL(sona$(3))\r
+\r
+FOR d = b TO 1000\r
+IF c = 0 THEN GOTO 5\r
+IF buflu(d) > 0 THEN\r
+e$ = cnum(d) + ":"\r
+e$ = e$ + SPACE$(5 - LEN(e$))\r
+e$ = e$ + cnum(buflu(d))\r
+e$ = e$ + SPACE$(8 - LEN(e$))\r
+\r
+FOR g = 1 TO 10\r
+gets d, g, f$\r
+e$ = e$ + " >" + f$\r
+NEXT g\r
+conm e$, 7\r
+c = c - 1\r
+END IF\r
+NEXT d\r
+GOTO 5\r
+\r
+CASE "fstat"\r
+title "Memory files summary"\r
+FOR b = 1 TO 30\r
+  e = 0\r
+  FOR c = 1 TO 1000\r
+    IF buff(b, c) > -1 THEN\r
+      IF e = 0 THEN\r
+      d$ = "File number:" + STR$(b)\r
+      conm d$, 7\r
+      e = e + 1\r
+      END IF\r
+      d$ = "on line:" + STR$(c) + "  allocated memory line: " + STR$(buff(b, c))\r
+      conm d$, 7\r
+    END IF\r
+  NEXT c\r
+NEXT b\r
+GOTO 5\r
+\r
+CASE "fput"\r
+b = VAL(sona$(2))\r
+c = VAL(sona$(3))\r
+d = VAL(sona$(4))\r
+f = mitus\r
+IF f < 5 THEN f = 5\r
+FOR e = 5 TO f\r
+putfs b, c, d + e - 5, sona$(e)\r
+NEXT e\r
+GOTO 5\r
+\r
+CASE "cls"\r
+FOR b = 1 TO 50\r
+conm " ", 7\r
+NEXT b\r
+GOTO 5\r
+\r
+CASE "fload"\r
+b = VAL(sona$(3))\r
+c = VAL(sona$(4))\r
+d = VAL(sona$(5))\r
+IF b = 0 THEN b = 1\r
+IF c = 0 THEN c = 1\r
+IF d = 0 THEN d = 1\r
+fload sona$(2), b, c, d\r
+GOTO 5\r
+\r
+CASE "stclear"\r
+b = VAL(sona$(2))\r
+IF b = 0 THEN b = 1\r
+stackl(b) = 0\r
+GOTO 5\r
+\r
+CASE "chklin"\r
+b = VAL(sona$(2))\r
+c = VAL(sona$(3))\r
+d = VAL(sona$(4))\r
+IF b = 0 THEN b = 1\r
+IF c = 0 THEN c = 1\r
+IF d = 0 THEN d = 1000\r
+\r
+FOR e = c TO d\r
+IF buff(b, e) > 0 THEN std cnum(buff(b, e))\r
+NEXT e\r
+GOTO 5\r
+\r
+CASE "stacksize"\r
+b = VAL(sona$(2))\r
+IF b = 0 THEN b = 1\r
+std cnum(stackl(b))\r
+GOTO 5\r
+\r
+CASE "b"\r
+boss\r
+conm "returning", 7\r
+GOTO 5\r
+\r
+CASE "filtor"\r
+b = VAL(sona$(2))\r
+FOR e = 1 TO stackl(b)\r
+FOR c = 3 TO mitus STEP 2\r
+gets stack(e, b), VAL(sona$(c)), f$\r
+cmp f$, sona$(c + 1), d\r
+IF d = 1 THEN\r
+std cnum(stack(e, b))\r
+GOTO 20\r
+END IF\r
+NEXT c\r
+20\r
+NEXT e\r
+GOTO 5\r
+\r
+CASE "disp"\r
+b = VAL(sona$(2))\r
+DIM tmp1(1 TO 100)\r
+DIM tmp2(1 TO 100)\r
+\r
+FOR d = 1 TO 100\r
+tmp2(d) = 0\r
+NEXT d\r
+d = 0\r
+\r
+FOR e = 3 TO mitus\r
+d = d + 1\r
+tmp1(d) = VAL(sona$(e))\r
+NEXT e\r
+\r
+FOR c = 1 TO stackl(b)\r
+FOR e = 1 TO d\r
+gets stack(c, b), tmp1(e), f$\r
+IF tmp2(e) < LEN(f$) THEN tmp2(e) = LEN(f$)\r
+NEXT e\r
+NEXT c\r
+\r
+FOR c = 1 TO stackl(b)\r
+g$ = ""\r
+FOR e = 1 TO d\r
+gets stack(c, b), tmp1(e), f$\r
+f$ = f$ + SPACE$(tmp2(e) - LEN(f$))\r
+g$ = g$ + f$ + " # "\r
+NEXT e\r
+conm g$, 10\r
+NEXT c\r
+\r
+ERASE tmp2\r
+ERASE tmp1\r
+GOTO 5\r
+\r
+CASE "filtand"\r
+b = VAL(sona$(2))\r
+FOR e = 1 TO stackl(b)\r
+FOR c = 3 TO mitus STEP 2\r
+gets stack(e, b), VAL(sona$(c)), f$\r
+cmp f$, sona$(c + 1), d\r
+IF d = 0 THEN GOTO 21\r
+NEXT c\r
+std cnum(stack(e, b))\r
+21\r
+NEXT e\r
+GOTO 5\r
+\r
+CASE "sort"\r
+b = VAL(sona$(2))\r
+c = VAL(sona$(3))\r
+sort b, c\r
+GOTO 5\r
+\r
+CASE "swap"\r
+b = VAL(sona$(2))\r
+c = stackl(b)\r
+FOR d = 1 TO c / 2\r
+SWAP stack(d, b), stack(c - d + 1, b)\r
+NEXT d\r
+GOTO 5\r
+\r
+CASE "ssort"\r
+b = VAL(sona$(2))\r
+c = VAL(sona$(3))\r
+IF b = 0 THEN b = 1\r
+IF c = 0 THEN c = 1\r
+ssort b, c\r
+GOTO 5\r
+\r
+CASE "memget"\r
+b = VAL(sona$(2))\r
+IF b = 0 THEN b = 1\r
+FOR c = 1 TO 5000\r
+IF bufu(c) = 0 THEN bufu(c) = 1: buf$(c) = "-": stack(b, 10) = c: GOTO 23\r
+NEXT c\r
+23\r
+IF stackl(10) < b THEN stackl(10) = b\r
+GOTO 5\r
+\r
+CASE "liststack"\r
+b = VAL(sona$(2))\r
+c = VAL(sona$(3))\r
+d = VAL(sona$(4))\r
+IF b = 0 THEN b = 1\r
+IF c = 0 THEN c = 1\r
+IF d = 0 THEN d = stackl(b)\r
+FOR e = c TO d\r
+std cnum(stack(e, b))\r
+NEXT e\r
+GOTO 5\r
+\r
+CASE "ask"\r
+b$ = sona$(2)\r
+IF b$ = "" THEN b$ = "input"\r
+c = VAL(sona$(3))\r
+d = VAL(sona$(4))\r
+e = VAL(sona$(5))\r
+box 5, 5, 75, 11\r
+LOCATE 7, 7\r
+PRINT b$\r
+LOCATE 9, 7\r
+INPUT "", f$\r
+putfs c, d, e, f$\r
+conm "'" + f$ + "' accepted", 7\r
+GOTO 5\r
+\r
+CASE "flnget"\r
+b = VAL(sona$(2))\r
+c = VAL(sona$(3))\r
+FOR d = 1 TO 1000\r
+IF buff(b, d) = -1 THEN\r
+stack(c, 10) = d\r
+IF stackl(10) < c THEN stackl(10) = c\r
+GOTO 24\r
+END IF\r
+NEXT d\r
+24\r
+GOTO 5\r
+\r
+END SELECT\r
+\r
+\r
+\r
+conm "Invalid command", 12\r
+5\r
+END SUB\r
+\r
+SUB cmp (a$, b$, r)\r
+IF a$ = b$ THEN r = 1 ELSE r = 0\r
+END SUB\r
+\r
+FUNCTION cnum$ (a)\r
+b$ = STR$(a)\r
+cnum$ = RIGHT$(b$, LEN(b$) - 1)\r
+END FUNCTION\r
+\r
+SUB conkey (a$)\r
+b$ = concmd$ + SPACE$(85)\r
+b$ = LEFT$(b$, 80)\r
+\r
+IF a$ = "va" THEN conx = conx - 1\r
+IF a$ = "pa" THEN conx = conx + 1\r
+IF a$ = "ul" THEN\r
+b$ = hist$(histk)\r
+histk = histk - 1\r
+IF histk < 1 THEN histk = 20\r
+END IF\r
+IF a$ = "al" THEN\r
+b$ = hist$(histk)\r
+histk = histk + 1\r
+IF histk > 20 THEN histk = 1\r
+END IF\r
+\r
+\r
+\r
+IF LEN(a$) = 1 THEN\r
+IF a$ = CHR$(13) THEN\r
+strip b$, c$\r
+histp = histp + 1\r
+IF histp > 20 THEN histp = 1\r
+histk = histp\r
+hist$(histp) = c$\r
+cmd c$\r
+b$ = ""\r
+conx = 1\r
+GOTO 4\r
+END IF\r
+\r
+IF a$ = CHR$(8) THEN\r
+IF conx > 1 THEN\r
+b$ = LEFT$(b$, conx - 2) + RIGHT$(b$, 81 - conx)\r
+conx = conx - 1\r
+END IF\r
+GOTO 4\r
+END IF\r
+\r
+b$ = LEFT$(b$, conx - 1) + a$ + RIGHT$(b$, 81 - conx)\r
+conx = conx + 1\r
+END IF\r
+4\r
+\r
+\r
+IF conx < 1 THEN conx = 1\r
+IF conx > 80 THEN conx = 80\r
+\r
+b$ = b$ + SPACE$(85)\r
+concmd$ = LEFT$(b$, 80)\r
+LOCATE 50, 1\r
+COLOR 15, 1\r
+PRINT concmd$;\r
+LOCATE 50, conx\r
+COLOR 0, 14\r
+PRINT RIGHT$(LEFT$(concmd$, conx), 1);\r
+\r
+\r
+END SUB\r
+\r
+SUB conm (d$, c)\r
+a$ = d$\r
+\r
+14\r
+IF LEN(a$) > 78 THEN\r
+b$ = LEFT$(a$, 78)\r
+conm b$, c\r
+a$ = "      >> " + RIGHT$(a$, LEN(a$) - 78)\r
+GOTO 14\r
+END IF\r
+\r
+\r
+b$ = a$ + SPACE$(80 - LEN(a$))\r
+con$(50) = b$\r
+conc(50) = c\r
+\r
+FOR a = 1 TO 49\r
+con$(a) = con$(a + 1)\r
+conc(a) = conc(a + 1)\r
+NEXT a\r
+\r
+FOR a = 1 TO 49\r
+LOCATE a, 1\r
+COLOR conc(a), 0\r
+PRINT con$(a)\r
+NEXT a\r
+\r
+END SUB\r
+\r
+SUB fload (a$, b, c, d)\r
+getfil h\r
+\r
+j = c\r
+l = 0\r
+\r
+OPEN a$ FOR INPUT AS #h\r
+12\r
+IF EOF(h) <> 0 THEN GOTO 13\r
+LINE INPUT #h, e$\r
+\r
+IF LEFT$(e$, 3) = "// " THEN\r
+conm e$, 10\r
+GOTO 12\r
+END IF\r
+IF e$ = SPACE$(LEN(e$)) THEN GOTO 12\r
+\r
+e$ = e$ + "|"\r
+l = l + 1\r
+h$ = ""\r
+i = d\r
+FOR f = 1 TO LEN(e$)\r
+g$ = RIGHT$(LEFT$(e$, f), 1)\r
+IF g$ = "|" THEN\r
+  putfs b, j, i, h$\r
+  h$ = ""\r
+  g$ = ""\r
+  i = i + 1\r
+END IF\r
+IF g$ = CHR$(9) THEN g$ = ""\r
+h$ = h$ + g$\r
+NEXT f\r
+\r
+j = j + 1\r
+GOTO 12\r
+13\r
+CLOSE #h\r
+\r
+\r
+opf(h) = 0\r
+\r
+k$ = "file: " + a$ + "  loaded." + STR$(l) + " lines in file"\r
+conm k$, 7\r
+END SUB\r
+\r
+SUB getfil (a)\r
+FOR b = 1 TO 30\r
+IF opf(b) = 0 THEN opf(b) = 1: a = b: GOTO 7\r
+NEXT b\r
+7\r
+END SUB\r
+\r
+SUB gets (l, s, a$)\r
+\r
+b = bufl(l, s)\r
+\r
+IF b = -1 THEN\r
+a$ = ""\r
+ELSE\r
+a$ = buf$(b)\r
+END IF\r
+END SUB\r
+\r
+SUB mkson (a$)\r
+\r
+mitus = 0\r
+\r
+d = 1\r
+FOR b = 1 TO LEN(a$)\r
+c$ = RIGHT$(LEFT$(a$, b), 1)\r
+IF c$ = " " THEN\r
+d = 1\r
+ELSE\r
+IF d = 1 THEN\r
+mitus = mitus + 1\r
+sona$(mitus) = ""\r
+d = 0\r
+END IF\r
+sona$(mitus) = sona$(mitus) + c$\r
+END IF\r
+NEXT b\r
+\r
+'conm "sonad_______", 10\r
+'FOR b = 1 TO mitus\r
+'conm sona$(b), 14\r
+'NEXT b\r
+\r
+FOR a = 1 TO mitus\r
+IF LEFT$(sona$(a), 2) = "|>" THEN\r
+IF sona$(a + 1) = "c" THEN stdl = 1\r
+IF sona$(a + 1) = "s" THEN stdl = 10 + VAL(sona$(a + 2))\r
+mitus = a - 1\r
+GOTO 15\r
+END IF\r
+IF LEFT$(sona$(a), 2) = "|@" THEN\r
+sona$(a) = cnum(stack(VAL(RIGHT$(sona$(a), LEN(sona$(a)) - 2)), 10))\r
+END IF\r
+NEXT a\r
+\r
+15\r
+FOR a = mitus + 1 TO 20\r
+sona$(a) = ""\r
+NEXT a\r
+END SUB\r
+\r
+SUB putfs (f, l, s, c$)\r
+\r
+'DIM SHARED buff(1 TO 30, 1 TO 1000)\r
+\r
+la = buff(f, l)\r
+\r
+IF la = -1 THEN\r
+FOR a = 1 TO 1000\r
+IF buflu(a) = 0 THEN la = a: GOTO 10\r
+NEXT a\r
+10\r
+END IF\r
+\r
+puts la, s, c$\r
+IF buflu(la) = 0 THEN buff(f, l) = -1 ELSE buff(f, l) = la\r
+END SUB\r
+\r
+SUB puts (l, s, a$)\r
+'PRINT l, s\r
+IF a$ = "|" THEN a$ = ""\r
+IF a$ = "||" THEN GOTO 11\r
+'conm a$, 13\r
+b = bufl(l, s)\r
+\r
+IF b = -1 THEN\r
+'DIM SHARED buf$(1 TO 10000)\r
+'DIM SHARED bufu(1 TO 10000)\r
+FOR c = 1 TO 10000\r
+IF bufu(c) = 0 THEN GOTO 6\r
+NEXT c\r
+6\r
+b = c\r
+bufu(b) = 1\r
+buflu(l) = buflu(l) + 1\r
+END IF\r
+\r
+strip a$, c$\r
+\r
+IF c$ = "" THEN\r
+bufu(b) = 0\r
+buf$(b) = ""\r
+bufl(l, s) = -1\r
+buflu(l) = buflu(l) - 1\r
+ELSE\r
+buf$(b) = c$\r
+bufl(l, s) = b\r
+END IF\r
+11\r
+END SUB\r
+\r
+SUB runf (a$)\r
+getfil h\r
+\r
+OPEN a$ FOR INPUT AS #h\r
+9\r
+IF EOF(h) <> 0 THEN GOTO 8\r
+LINE INPUT #h, b$\r
+cmd b$\r
+GOTO 9\r
+8\r
+CLOSE #h\r
+\r
+opf(h) = 0\r
+END SUB\r
+\r
+SUB sort (s, w)\r
+DIM tmp1(1 TO 10000)\r
+DIM tmp2(1 TO 10000)\r
+\r
+b = stackl(s)\r
+\r
+FOR a = 1 TO b\r
+gets stack(a, s), w, c$\r
+tmp1(a) = VAL(c$)\r
+tmp2(a) = a\r
+NEXT a\r
+\r
+d = 1\r
+FOR a = 1 TO b\r
+e = 32000\r
+\r
+FOR c = d TO b\r
+IF tmp1(c) < e THEN e = tmp1(c): f = c\r
+NEXT c\r
+\r
+SWAP tmp1(a), tmp1(f)\r
+SWAP tmp2(a), tmp2(f)\r
+d = d + 1\r
+NEXT a\r
+\r
+FOR a = 1 TO b\r
+stack(a, s) = tmp2(a)\r
+NEXT a\r
+\r
+END SUB\r
+\r
+SUB ssort (s, m)\r
+DIM tbti(1 TO 2000)\r
+DIM tbtp(1 TO 2000)\r
+DIM tbt$(1 TO 2000)\r
+\r
+FOR a = 1 TO stackl(s)\r
+gets stack(a, s), m, b$\r
+tbt$(a) = b$\r
+tbtp(a) = a\r
+NEXT a\r
+\r
+b = stackl(s)\r
+FOR a = 1 TO stackl(s)\r
+d$ = tbt$(1)\r
+e = 1\r
+f = ASC(LEFT$(d$, 1))\r
+FOR c = 2 TO b\r
+IF ASC(LEFT$(tbt$(c), 1)) = f THEN\r
+IF d$ <> tbt$(c) THEN\r
+g$ = d$ + CHR$(0)\r
+h$ = tbt$(c) + CHR$(0)\r
+i = LEN(g$)\r
+IF LEN(h$) > i THEN i = LEN(h$)\r
+FOR j = 1 TO i\r
+k = ASC(RIGHT$(LEFT$(g$, j), 1))\r
+l = ASC(RIGHT$(LEFT$(h$, j), 1))\r
+IF k < l THEN GOTO 22\r
+IF l < k THEN e = c: d$ = tbt$(c): f = ASC(LEFT$(d$, 1)): GOTO 22\r
+NEXT j\r
+END IF\r
+END IF\r
+IF ASC(LEFT$(tbt$(c), 1)) < f THEN f = ASC(LEFT$(tbt$(c), 1)): e = c: d$ = tbt$(c)\r
+22\r
+NEXT c\r
+\r
+tbti(a) = tbtp(e)\r
+tbt$(e) = tbt$(b)\r
+tbtp(e) = tbtp(b)\r
+b = b - 1\r
+NEXT a\r
+\r
+FOR a = 1 TO stackl(s)\r
+stack(a, s) = tbti(a)\r
+NEXT a\r
+\r
+conm "done", 7\r
+END SUB\r
+\r
+SUB start\r
+WIDTH 80, 50\r
+VIEW PRINT 1 TO 50\r
+CLS\r
+conx = 1\r
+histp = 1\r
+histk = 1\r
+stdl = 1\r
+\r
+conm "DDBASE, (Dos Data BASE) 0.0", 7\r
+conm "Copyright Svjatoslav Agejenko. All Rights Reserved.", 7\r
+conm "starting...", 7\r
+FOR a = 1 TO 5000\r
+bufu(a) = 0\r
+buf$(a) = ""\r
+NEXT a\r
+\r
+FOR a = 1 TO 30\r
+FOR b = 1 TO 1000\r
+bufl(b, a) = -1\r
+buff(a, b) = -1\r
+NEXT b\r
+opf(a) = 0\r
+NEXT a\r
+\r
+FOR a = 1 TO 1000\r
+buflu(a) = 0\r
+NEXT a\r
+\r
+FOR a = 1 TO 10\r
+stackl(a) = 0\r
+NEXT a\r
+\r
+\r
+a$ = "runf auto.scr"\r
+FOR b = 1 TO LEN(a$)\r
+c$ = RIGHT$(LEFT$(a$, b), 1)\r
+conkey c$\r
+NEXT b\r
+conkey CHR$(13)\r
+\r
+END SUB\r
+\r
+SUB std (a$)\r
+'conm a$, 2\r
+\r
+SELECT CASE stdl\r
+CASE 1\r
+conm a$, 10\r
+CASE 11 TO 20\r
+b = stdl - 10\r
+stackl(b) = stackl(b) + 1\r
+stack(stackl(b), b) = VAL(a$)\r
+\r
+c$ = a$ + " > " + cnum(stackl(b)) + " ! " + cnum(b)\r
+END SELECT\r
+\r
+\r
+\r
+\r
+END SUB\r
+\r
+SUB strip (a$, b$)\r
+b$ = a$\r
+2\r
+IF LEFT$(b$, 1) = " " THEN b$ = RIGHT$(b$, LEN(b$) - 1): GOTO 2\r
+3\r
+IF RIGHT$(b$, 1) = " " THEN b$ = LEFT$(b$, LEN(b$) - 1): GOTO 3\r
+END SUB\r
+\r
+SUB title (a$)\r
+conm " ", 10\r
+conm "================> " + a$ + " <===============", 7\r
+\r
+\r
+\r
+END SUB\r
+\r
diff --git a/database/lisa.scr b/database/lisa.scr
new file mode 100755 (executable)
index 0000000..30e4900
--- /dev/null
@@ -0,0 +1,11 @@
+flnget 1 1\r
+ask Eesnimi 1 |@1 1\r
+ask Perekonnanimi 1 |@1 2\r
+ask Aadress 1 |@1 3\r
+ask Telefon 1 |@1 4\r
+ask Sugu_M_voi_N 1 |@1 5\r
+ask S\81nniaasta 1 |@1 7\r
+stclear 1\r
+chklin 1 |> s 1\r
+stacksize 1 |> c\r
+\r
diff --git a/doc/index.html b/doc/index.html
new file mode 100755 (executable)
index 0000000..e1e408f
--- /dev/null
@@ -0,0 +1,45 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta
+    http-equiv="Content-Type"
+    content="text/html; charset=UTF-8">
+<title>QBasicApps</title>
+</head>
+<body>
+    <h1>QBasicApps - collection of applications mostly written in MS QBasic for DOS environment</h1>
+    <a href="http://php.svjatoslav.eu/gitweb/?p=QBasicApps.git;a=snapshot;h=HEAD;sf=tgz">Download</a>
+    &nbsp;&nbsp;
+    <a href="http://svjatoslav.eu/static/gitbrowse/QBasicApps/doc/index.html">Online homepage</a>
+    &nbsp;&nbsp;
+    <a href="http://svjatoslav.eu/programs.jsp">Other applications hosted on svjatoslav.eu</a>
+    <pre>
+<b>Programs author:</b>
+    Svjatoslav Agejenko
+    Homepage: <a href="http://svjatoslav.eu">http://svjatoslav.eu</a>
+    Email: <a href="mailto:svjatoslav@svjatoslav.eu">svjatoslav@svjatoslav.eu</a>
+
+This software is distributed under <a href="http://www.gnu.org/licenses/gpl-2.0.html">GNU GENERAL PUBLIC LICENSE Version 2</a>.
+
+
+This collection contains lots of applications (games, graphics tests (2D/3D/4D)
+algorithms tests, utilities) I wrote long time ago.
+Mostly in QBasic, some in x86 assembly for use under DOS environment.
+
+
+Few sample applications from the package:
+    <a href="../games/checkers/index.html">Checkers game</a>
+    <a href="../games/mario/index.html">Super Mario clone</a>
+    <a href="../graphics/3D/3dSynthezier/doc/index.html">3D synthezer</a>
+    <a href="../graphics/3D/ray casting engine/index.html">Ray casting 3D engine</a>
+    <a href="../graphics/4D engine/index.html">4D engine</a>
+    <a href="../math/3D graph/index.html">Interactive 3D graph for visualizing formulas</a>
+    <a href="../math/biorythm/index.html">Biorythm calculator</a>
+    <a href="../networking/digital data over analog audio channel/index.html">Digital data over analog audio channel</a>
+    <a href="../simulation/explosion/index.html">Explosion simulation</a>
+    <a href="../simulation/life/index.html">Game of life</a>
+
+
+</pre>
+</body>
+</html>
diff --git a/games/checkers/checkers.bas b/games/checkers/checkers.bas
new file mode 100755 (executable)
index 0000000..d194b7d
--- /dev/null
@@ -0,0 +1,513 @@
+' Checkers game (unfinished)\r
+' by Svjatoslav Agejenko 2001\r
+' svjatoslavagejenko@gmail.com\r
+\r
+\r
+DECLARE SUB compki (m%, h%, x1%, y1%)\r
+DECLARE SUB compgo2 (h%)\r
+DECLARE SUB compgo (h%)\r
+DECLARE SUB humngo (h%)\r
+DEFINT A-Z\r
+\r
+DECLARE SUB thinkc ()\r
+DECLARE SUB thinkh ()\r
+DECLARE SUB cmd (a$)\r
+DECLARE SUB freet ()\r
+DECLARE SUB prn (x%, y%, c%, a$)\r
+DECLARE SUB msg (a$, c)\r
+DECLARE SUB getfnt ()\r
+DECLARE SUB playg ()\r
+DECLARE SUB geth ()\r
+DECLARE SUB start ()\r
+DECLARE SUB mklau ()\r
+DECLARE SUB showr (x, y)\r
+DECLARE SUB show ()\r
+DIM SHARED font(0 TO 7, 0 TO 7, 0 TO 255)\r
+DIM SHARED siz, fi, ri, rs\r
+DIM SHARED stri$\r
+DIM SHARED humx1, humy1, humx2, humy2\r
+DIM SHARED sug, smax\r
+DIM SHARED npos AS LONG\r
+DIM SHARED cx1, cy1, cx2, cy2\r
+\r
+siz = 6         ' Board size\r
+fi = 0\r
+ri = 2\r
+smax = 3        ' thinking depth\r
+\r
+\r
+DIM SHARED lau(-1 TO siz + 2, -1 TO siz + 2)\r
+\r
+start\r
+mklau\r
+show\r
+playg\r
+\r
+SUB cmd (a$)\r
+\r
+mitus = 0\r
+DIM sona$(1 TO 10)\r
+FOR b = 1 TO 10\r
+sona$(b) = ""\r
+NEXT b\r
+\r
+d = 1\r
+e = 1\r
+FOR b = 1 TO LEN(a$)\r
+c$ = RIGHT$(LEFT$(a$, b), 1)\r
+IF c$ = " " THEN\r
+IF e = 0 THEN d = d + 1: e = 1\r
+GOTO 4\r
+END IF\r
+e = 0\r
+sona$(d) = sona$(d) + c$\r
+4\r
+NEXT b\r
+IF e = 1 THEN d = d - 1\r
+mitus = d\r
+\r
+\r
+SELECT CASE sona$(1)\r
+CASE "m"\r
+IF humx1 > 0 THEN msg "move replaced", 14\r
+\r
+humx1 = ASC(LEFT$(sona$(2), 1)) - 64\r
+IF humx1 > 32 THEN humx1 = humx1 - 32\r
+humy1 = VAL(RIGHT$(sona$(2), LEN(sona$(2)) - 1))\r
+humx2 = ASC(LEFT$(sona$(3), 1)) - 64\r
+IF humx2 > 32 THEN humx2 = humx2 - 32\r
+humy2 = VAL(RIGHT$(sona$(3), LEN(sona$(2)) - 1))\r
+\r
+CASE "h"\r
+msg "h - display help screen", 14\r
+msg "q - to quit", 14\r
+msg "m <from> <to> - make move", 14\r
+msg "n - no. positions processed", 14\r
+\r
+CASE "q"\r
+SYSTEM\r
+\r
+CASE "n"\r
+b$ = "positions processed:" + STR$(npos)\r
+msg b$, 14\r
+\r
+END SELECT\r
+\r
+END SUB\r
+\r
+SUB compgo (h)\r
+IF sug > smax THEN h = 0: GOTO 6\r
+sug = sug + 1\r
+npos = npos + 1\r
+freet\r
+IF sug = 1 THEN h1 = -2000 ELSE h1 = -1000\r
+\r
+'cx1 = x: cy1 = y: cx2 = x - 1: cy2 = y + 1\r
+b = 0\r
+c = 0\r
+m = 0\r
+FOR y = 1 TO siz        ' check for eating\r
+FOR x = 1 TO siz\r
+IF lau(x, y) = 1 THEN\r
+8\r
+IF (lau(x - 1, y + 1) = 2) AND (lau(x - 2, y + 2) = 0) THEN\r
+SWAP lau(x, y), lau(x - 2, y + 2)\r
+lau(x - 1, y + 1) = 0\r
+compki m1, h2, x - 2, y + 2\r
+lau(x - 1, y + 1) = 2\r
+SWAP lau(x, y), lau(x - 2, y + 2)\r
+m1 = m1 + 1\r
+IF m1 > m THEN m = m1: h1 = -1000\r
+IF m1 = m THEN\r
+IF h2 + 1 > h1 THEN\r
+h1 = h2 + 1\r
+IF npos = 1 THEN cx1 = x: cy1 = y: cx2 = x - 2: cy2 = y + 2\r
+END IF\r
+END IF\r
+b = 1\r
+END IF\r
+\r
+\r
+IF (lau(x + 1, y + 1) = 2) AND (lau(x + 2, y + 2) = 0) THEN\r
+SWAP lau(x, y), lau(x + 2, y + 2)\r
+lau(x + 1, y + 1) = 0\r
+compki m1, h2, x + 2, y + 2\r
+lau(x + 1, y + 1) = 2\r
+SWAP lau(x, y), lau(x + 2, y + 2)\r
+m1 = m1 + 1\r
+IF m1 > m THEN m = m1: h1 = -1000\r
+IF m1 = m THEN\r
+IF h2 + 1 > h1 THEN\r
+h1 = h2 + 1\r
+IF npos = 1 THEN cx1 = x: cy1 = y: cx2 = x + 2: cy2 = y + 2\r
+END IF\r
+END IF\r
+b = 1\r
+END IF\r
+\r
+\r
+IF (lau(x - 1, y - 1) = 2) AND (lau(x - 2, y - 2) = 0) THEN\r
+SWAP lau(x, y), lau(x - 2, y - 2)\r
+lau(x - 1, y - 1) = 0\r
+compki m1, h2, x - 2, y - 2\r
+lau(x - 1, y - 1) = 2\r
+SWAP lau(x, y), lau(x - 2, y - 2)\r
+m1 = m1 + 1\r
+IF m1 > m THEN m = m1: h1 = -1000\r
+IF m1 = m THEN\r
+IF h2 + 1 > h1 THEN\r
+h1 = h2 + 1\r
+IF npos = 1 THEN cx1 = x: cy1 = y: cx2 = x - 2: cy2 = y - 2\r
+END IF\r
+END IF\r
+b = 1\r
+END IF\r
+\r
+\r
+IF (lau(x + 1, y - 1) = 2) AND (lau(x + 2, y - 2) = 0) THEN\r
+SWAP lau(x, y), lau(x + 2, y - 2)\r
+lau(x + 1, y - 1) = 0\r
+compki m1, h2, x + 2, y - 2\r
+lau(x + 1, y - 1) = 2\r
+SWAP lau(x, y), lau(x + 2, y - 2)\r
+m1 = m1 + 1\r
+IF m1 > m THEN m = m1: h1 = -1000\r
+IF m1 = m THEN\r
+IF h2 + 1 > h1 THEN\r
+h1 = h2 + 1\r
+IF npos = 1 THEN cx1 = x: cy1 = y: cx2 = x + 2: cy2 = y - 2\r
+END IF\r
+END IF\r
+b = 1\r
+END IF\r
+\r
+\r
+\r
+\r
+\r
+IF c = 1 THEN GOTO 9\r
+END IF\r
+NEXT x\r
+NEXT y\r
+\r
+9\r
+IF (b = 1) AND (npos = 1) THEN\r
+cx3 = (cx1 + cx2) / 2\r
+cy3 = (cy1 + cy2) / 2\r
+lau(cx3, cy3) = 0\r
+showr cx3, cy3\r
+\r
+SWAP lau(cx1, cy1), lau(cx2, cy2)\r
+showr cx1, cy1\r
+showr cx2, cy2\r
+msg "NJAM!", 10\r
+x = cx2\r
+y = cy2\r
+c = 1\r
+b = 0\r
+GOTO 8\r
+END IF\r
+IF c = 1 THEN\r
+cx1 = 1: cy1 = 1: cx2 = 1: cy2 = 1\r
+GOTO 10\r
+END IF\r
+\r
+IF sug = 1 THEN\r
+msg "l��a ei saa", 4\r
+msg STR$(h1), 4\r
+END IF\r
+\r
+FOR y = 1 TO siz    ' unuseful move\r
+FOR x = 1 TO siz\r
+IF lau(x, y) = 1 THEN\r
+IF lau(x - 1, y + 1) = 0 THEN\r
+SWAP lau(x, y), lau(x - 1, y + 1)\r
+humngo h2\r
+SWAP lau(x, y), lau(x - 1, y + 1)\r
+IF h2 > h1 THEN\r
+h1 = h2\r
+IF sug = 1 THEN cx1 = x: cy1 = y: cx2 = x - 1: cy2 = y + 1\r
+END IF\r
+END IF\r
+\r
+IF lau(x + 1, y + 1) = 0 THEN\r
+SWAP lau(x, y), lau(x + 1, y + 1)\r
+humngo h2\r
+SWAP lau(x, y), lau(x + 1, y + 1)\r
+IF h2 > h1 THEN\r
+h1 = h2\r
+IF sug = 1 THEN cx1 = x: cy1 = y: cx2 = x + 1: cy2 = y + 1\r
+END IF\r
+END IF\r
+\r
+END IF\r
+NEXT x\r
+NEXT y\r
+h = h1\r
+10\r
+sug = sug - 1\r
+6\r
+END SUB\r
+\r
+SUB compki (m, h, x1, y1)\r
+h1 = 0\r
+\r
+FOR y = 1 TO siz\r
+FOR x = 1 TO siz\r
+NEXT x\r
+NEXT y\r
+h = h1\r
+\r
+END SUB\r
+\r
+SUB freet\r
+a$ = INKEY$\r
+IF a$ = "" THEN\r
+ELSE\r
+IF a$ = CHR$(8) THEN\r
+IF LEN(stri$) > 0 THEN\r
+stri$ = LEFT$(stri$, LEN(stri$) - 1): GOTO 3\r
+END IF\r
+END IF\r
+IF a$ = CHR$(13) THEN\r
+IF LEN(stri$) > 0 THEN\r
+msg stri$, 7\r
+cmd stri$\r
+stri$ = ""\r
+END IF\r
+GOTO 3\r
+END IF\r
+stri$ = stri$ + a$\r
+3\r
+LINE (400, 468)-(639, 479), 1, BF\r
+prn 405, 469, 14, stri$\r
+END IF\r
+END SUB\r
+\r
+SUB getfnt\r
+SCREEN 13\r
+FOR a = 0 TO 255\r
+IF (a > 5) AND (a < 17) THEN GOTO 2\r
+LOCATE 1, 1\r
+PRINT CHR$(a)\r
+2\r
+FOR y = 0 TO 7\r
+FOR x = 0 TO 7\r
+font(x, y, a) = POINT(x, y)\r
+NEXT x\r
+NEXT y\r
+NEXT a\r
+\r
+END SUB\r
+\r
+SUB humngo (h)\r
+npos = npos + 1\r
+h1 = 1000\r
+\r
+FOR y = siz TO 1 STEP -1\r
+FOR x = siz TO 1 STEP -1\r
+IF lau(x, y) = 2 THEN\r
+IF lau(x - 1, y - 1) = 0 THEN\r
+SWAP lau(x, y), lau(x - 1, y - 1)\r
+compgo h2\r
+SWAP lau(x, y), lau(x - 1, y - 1)\r
+IF h2 < h1 THEN h1 = h2\r
+END IF\r
+\r
+IF lau(x + 1, y - 1) = 0 THEN\r
+SWAP lau(x, y), lau(x + 1, y - 1)\r
+compgo h2\r
+SWAP lau(x, y), lau(x + 1, y - 1)\r
+IF h2 < h1 THEN h1 = h2\r
+END IF\r
+\r
+\r
+IF (lau(x - 1, y - 1) = 1) AND (lau(x - 2, y - 2) = 0) THEN\r
+SWAP lau(x, y), lau(x - 2, y - 2)\r
+lau(x - 1, y - 1) = 0\r
+humngo h2\r
+lau(x - 1, y - 1) = 1\r
+SWAP lau(x, y), lau(x - 2, y - 2)\r
+IF h2 - 1 < h1 THEN h1 = h2 - 1\r
+END IF\r
+\r
+IF (lau(x + 1, y - 1) = 1) AND (lau(x + 2, y - 2) = 0) THEN\r
+SWAP lau(x, y), lau(x + 2, y - 2)\r
+lau(x + 1, y - 1) = 0\r
+humngo h2\r
+lau(x + 1, y - 1) = 1\r
+SWAP lau(x, y), lau(x + 2, y - 2)\r
+IF h2 - 1 < h1 THEN h1 = h2 - 1\r
+END IF\r
+\r
+\r
+\r
+\r
+END IF\r
+NEXT x\r
+NEXT y\r
+h = h1\r
+END SUB\r
+\r
+SUB mklau\r
+FOR y = -1 TO siz + 2\r
+FOR x = -1 TO siz + 2\r
+lau(x, y) = -1\r
+NEXT x\r
+NEXT y\r
+\r
+FOR y = 1 TO siz\r
+FOR x = 1 TO siz\r
+lau(x, y) = 0\r
+NEXT x\r
+NEXT y\r
+\r
+FOR y = 1 TO ri\r
+FOR x = 1 TO siz\r
+IF (x + y + fi) / 2 = INT((x + y + fi) / 2) THEN\r
+lau(x, y) = 1\r
+END IF\r
+NEXT x\r
+NEXT y\r
+\r
+FOR y = siz - ri + 1 TO siz\r
+FOR x = 1 TO siz\r
+IF (x + y + fi) / 2 = INT((x + y + fi) / 2) THEN\r
+lau(x, y) = 2\r
+END IF\r
+NEXT x\r
+NEXT y\r
+\r
+END SUB\r
+\r
+SUB msg (a$, c)\r
+DIM buf(1 TO 10000)\r
+FOR x = 400 TO 630 STEP 40\r
+GET (x, 8)-(x + 39, 467), buf(1)\r
+PUT (x, 0), buf(1), PSET\r
+NEXT x\r
+LINE (400, 460)-(639, 467), 0, BF\r
+prn 405, 460, c, a$\r
+END SUB\r
+\r
+SUB playg\r
+'GOTO 7\r
+1\r
+thinkc\r
+show\r
+7\r
+thinkh\r
+show\r
+GOTO 1\r
+\r
+\r
+END SUB\r
+\r
+SUB prn (x, y, c, a$)\r
+x1 = x\r
+y1 = y\r
+FOR a = 1 TO LEN(a$)\r
+b = ASC(RIGHT$(LEFT$(a$, a), 1))\r
+FOR y2 = 0 TO 7\r
+FOR x2 = 0 TO 7\r
+IF font(x2, y2, b) > 0 THEN PSET (x2 + x1, y2 + y1), c\r
+NEXT x2\r
+NEXT y2\r
+x1 = x1 + 8\r
+NEXT a\r
+END SUB\r
+\r
+SUB show\r
+FOR y = 1 TO siz\r
+FOR x = 1 TO siz\r
+showr x, y\r
+NEXT x\r
+NEXT y\r
+\r
+sp = rs / 2\r
+FOR x = 1 TO siz\r
+prn ((x - 1) * rs + 12 + sp), 2, 10, CHR$(64 + x)\r
+prn ((x - 1) * rs + 12 + sp), siz * rs + 11, 10, CHR$(64 + x)\r
+NEXT x\r
+\r
+FOR y = 1 TO siz\r
+a$ = STR$(y)\r
+a$ = RIGHT$(a$, LEN(a$) - 1)\r
+prn 15 - (LEN(a$) * 8), (y - 1) * rs + sp + 7, 10, a$\r
+prn (siz * rs + 16), (y - 1) * rs + sp + 7, 10, a$\r
+NEXT y\r
+\r
+\r
+END SUB\r
+\r
+SUB showr (x, y)\r
+IF (x + y + fi) / 2 = INT((x + y + fi) / 2) THEN c = 8 ELSE c = 7\r
+x1 = (x - 1) * rs + 15\r
+y1 = (y - 1) * rs + 10\r
+LINE (x1, y1)-(x1 + rs - 1, y1 + rs - 1), c, BF\r
+IF lau(x, y) > 0 THEN\r
+sp = rs / 2\r
+IF lau(x, y) = 1 THEN c1 = 15 ELSE c1 = 14\r
+CIRCLE (x1 + sp, y1 + sp), sp - 1, c1\r
+PAINT (x1 + sp, y1 + sp), c1\r
+END IF\r
+END SUB\r
+\r
+SUB start\r
+getfnt\r
+SCREEN 12\r
+LINE (399, 0)-(399, 479), 13\r
+msg "type 'h' for help", 14\r
+\r
+rs = INT(370 / siz)\r
+\r
+\r
+END SUB\r
+\r
+SUB thinkc\r
+msg "computer turn", 14\r
+sug = 0\r
+npos = 0\r
+cx1 = -1\r
+\r
+compgo h\r
+cmd "n"\r
+IF cx1 = -1 THEN msg "you won!", 10: msg "--------", 10: SYSTEM\r
+\r
+IF h <= -2 THEN msg "oh no...", 10\r
+IF h = -1 THEN msg "oops!", 10\r
+IF h = 1 THEN msg "yess! I will eat soon!", 10\r
+IF h >= 2 THEN msg "HA HA HA YOU ARE IN TROUBLE!", 10\r
+\r
+\r
+IF ABS(cx1 - cx2) = 2 THEN\r
+cx3 = (cx1 + cx2) / 2\r
+cy3 = (cy1 + cy2) / 2\r
+lau(cx3, cy3) = 0\r
+showr cx3, cy3\r
+END IF\r
+\r
+SWAP lau(cx1, cy1), lau(cx2, cy2)\r
+showr cx1, cy1\r
+showr cx2, cy2\r
+\r
+END SUB\r
+\r
+SUB thinkh\r
+msg "your turn", 14\r
+5\r
+freet\r
+IF humx1 = 0 THEN GOTO 5\r
+SWAP lau(humx2, humy2), lau(humx1, humy1)\r
+showr humx1, humy1\r
+showr humx2, humy2\r
+IF ABS(humx1 - humx2) = 2 THEN\r
+cx3 = (humx1 + humx2) / 2\r
+cy3 = (humy1 + humy2) / 2\r
+lau(cx3, cy3) = 0\r
+showr cx3, cy3\r
+END IF\r
+\r
+humx1 = 0\r
+END SUB\r
+\r
diff --git a/games/checkers/index.html b/games/checkers/index.html
new file mode 100755 (executable)
index 0000000..058d7cd
--- /dev/null
@@ -0,0 +1,19 @@
+<HTML>\r
+<HEAD><TITLE>checkers</TITLE></HEAD>\r
+\r
+<BODY text=#A0A0ff vLink=#0000ff aLink=#0000ff link=#0000ff bgColor=#000000>\r
+\r
+<CENTER><H1>checkers</H1></CENTER>\r
+<BR>\r
+<BR>\r
+Play checkers against the computer with any board\r
+size and any amount of caps. Does thinking by recursively\r
+testing many possible scenarios with any depth.\r
+\r
+Since it is slow QBasic implementation,\r
+it isn't practical to play with many caps\r
+or big thinking depth, for reasonable responce time.\r
+\r
+<BR><IMG SRC="sshot.png">\r
+</BODY>\r
+</HTML>
\ No newline at end of file
diff --git a/games/checkers/sshot.png b/games/checkers/sshot.png
new file mode 100755 (executable)
index 0000000..9b4dbf4
Binary files /dev/null and b/games/checkers/sshot.png differ
diff --git a/games/kabe.bas b/games/kabe.bas
new file mode 100755 (executable)
index 0000000..09de45b
--- /dev/null
@@ -0,0 +1,252 @@
+' This program is created by Svjatoslav Agejenko\r
+'                     in 1998\r
+\r
+'    USE  w a z s  keys to move around\r
+'   and ENTER key to celect chess and put to other place\r
+\r
+DECLARE SUB look ()\r
+DECLARE SUB motleb ()\r
+DECLARE SUB mang ()\r
+DECLARE SUB sisend ()\r
+DECLARE SUB asend ()\r
+DEFINT A-Z\r
+DIM SHARED nu(-100 TO 300) AS INTEGER\r
+DIM SHARED kaik AS INTEGER\r
+DIM SHARED looma AS INTEGER\r
+DIM SHARED hiir(1000)\r
+DIM SHARED ax1, ax2\r
+SCREEN 2\r
+CLS\r
+LINE (1, 1)-(10, 1)\r
+LINE (1, 1)-(1, 5)\r
+LINE (10, 1)-(6, 2)\r
+LINE (6, 2)-(10, 4)\r
+LINE (10, 4)-(8, 5)\r
+LINE (8, 5)-(4, 3)\r
+LINE (4, 3)-(1, 5)\r
+PAINT (2, 2), 1\r
+GET (1, 1)-(10, 5), hiir\r
+CLS\r
+FOR a = 0 TO 10\r
+LINE ((a * 40) + 20, 10)-((a * 40) + 20, 189), 1\r
+NEXT a\r
+\r
+FOR a = 0 TO 20\r
+LINE (20, (a * 18) + 9)-(420, (a * 18) + 9), 1\r
+NEXT a\r
+\r
+FOR a = 1 TO 200\r
+nu(a) = 4\r
+NEXT a\r
+\r
+FOR a = 2 TO 10 STEP 2\r
+FOR b = 1 TO 10 STEP 2\r
+PAINT ((b * 40) + 5, (a * 18) + 5)\r
+NEXT b\r
+NEXT a\r
+\r
+FOR a = 1 TO 10 STEP 2\r
+FOR b = 2 TO 10 STEP 2\r
+PAINT ((b * 40) + 5, (a * 18) + 5)\r
+NEXT b\r
+NEXT a\r
+\r
+FOR a = 2 TO 4 STEP 2\r
+FOR b = 1 TO 10 STEP 2\r
+nu(((a - 1) * 20) + b) = 1\r
+NEXT b\r
+NEXT a\r
+\r
+FOR a = 1 TO 4 STEP 2\r
+FOR b = 2 TO 10 STEP 2\r
+nu(((a - 1) * 20) + b) = 1\r
+NEXT b\r
+NEXT a\r
+\r
+FOR a = 8 TO 10 STEP 2\r
+FOR b = 1 TO 10 STEP 2\r
+nu(((a - 1) * 20) + b) = 0\r
+NEXT b\r
+NEXT a\r
+\r
+FOR a = 7 TO 10 STEP 2\r
+FOR b = 2 TO 10 STEP 2\r
+nu(((a - 1) * 20) + b) = 0\r
+NEXT b\r
+NEXT a\r
+\r
+FOR b = 2 TO 10 STEP 2\r
+nu(80 + b) = 3\r
+NEXT b\r
+\r
+FOR b = 1 TO 10 STEP 2\r
+nu(100 + b) = 3\r
+NEXT b\r
+\r
+asend\r
+kaik = 1\r
+mang\r
+\r
+SUB asend\r
+FOR b = 1 TO 10\r
+FOR a = 1 TO 10\r
+v = nu(((b - 1) * 20) + a)\r
+SELECT CASE v\r
+CASE 1\r
+CIRCLE (a * 40, b * 18), 17, 1\r
+PAINT (a * 40, b * 18), 1\r
+CIRCLE (a * 40, b * 18), 17, 0\r
+CIRCLE (a * 40, b * 18), 16, 0\r
+LINE ((a * 40) - 16, b * 18)-((a * 40) + 16, b * 18), 0\r
+CASE 0\r
+CIRCLE (a * 40, b * 18), 17, 0\r
+PAINT (a * 40, b * 18), 0\r
+CIRCLE (a * 40, b * 18), 17, 1\r
+CIRCLE (a * 40, b * 18), 15, 1\r
+CIRCLE (a * 40, b * 18), 3, 1\r
+CIRCLE (a * 40, b * 18), 7, 1\r
+LINE ((a * 40) - 16, b * 18)-((a * 40) + 16, b * 18), 0\r
+CASE 3\r
+PAINT (a * 40, b * 18), 1\r
+END SELECT\r
+NEXT a\r
+NEXT b\r
+END SUB\r
+\r
+SUB look\r
+looma = 0\r
+FOR a = 1 TO 200\r
+IF nu(a) = 0 AND nu(a - 21) = 1 AND nu(a - 42) = 3 THEN looma = 1\r
+IF nu(a) = 0 AND nu(a - 19) = 1 AND nu(a - 38) = 3 THEN looma = 1\r
+IF nu(a) = 0 AND nu(a + 21) = 1 AND nu(a + 42) = 3 THEN looma = 1\r
+IF nu(a) = 0 AND nu(a + 19) = 1 AND nu(a + 38) = 3 THEN looma = 1\r
+NEXT a\r
+END SUB\r
+\r
+SUB mang\r
+4\r
+sisend\r
+motleb\r
+look\r
+IF looma = 1 THEN SOUND 1234, 2\r
+GOTO 4\r
+END SUB\r
+\r
+SUB motleb\r
+3\r
+REM                                  T O P E L T   L O O K\r
+FOR a = 1 TO 200\r
+IF nu(a) = 1 AND nu(a + 21) = 0 AND nu(a + 42) = 3 AND nu(a + 61) = 0 AND nu(a + 80) = 3 THEN nu(a) = 3: nu(a + 21) = 3: nu(a + 42) = 1: kaik = 1: asend: GOTO 3\r
+IF nu(a) = 1 AND nu(a + 21) = 0 AND nu(a + 42) = 3 AND nu(a + 23) = 0 AND nu(a + 4) = 3 THEN nu(a) = 3: nu(a + 21) = 3: nu(a + 42) = 1: kaik = 1: asend: GOTO 3\r
+IF nu(a) = 1 AND nu(a + 19) = 0 AND nu(a + 38) = 3 AND nu(a + 59) = 0 AND nu(a + 80) = 3 THEN nu(a) = 3: nu(a + 19) = 3: nu(a + 38) = 1: kaik = 1: asend: GOTO 3\r
+IF nu(a) = 1 AND nu(a + 19) = 0 AND nu(a + 38) = 3 AND nu(a + 17) = 0 AND nu(a - 4) = 3 THEN nu(a) = 3: nu(a + 19) = 3: nu(a + 38) = 1: kaik = 1: asend: GOTO 3\r
+IF nu(a) = 1 AND nu(a + 21) = 0 AND nu(a + 42) = 3 AND nu(a + 63) = 0 AND nu(a + 84) = 3 THEN nu(a) = 3: nu(a + 21) = 3: nu(a + 42) = 1: kaik = 1: asend: GOTO 3\r
+IF nu(a) = 1 AND nu(a + 19) = 0 AND nu(a + 38) = 3 AND nu(a + 57) = 0 AND nu(a + 76) = 3 THEN nu(a) = 3: nu(a + 19) = 3: nu(a + 38) = 1: aiki = 1: asend: GOTO 3\r
+\r
+IF nu(a) = 1 AND nu(a - 21) = 0 AND nu(a - 42) = 3 AND nu(a - 61) = 0 AND nu(a - 80) = 3 THEN nu(a) = 3: nu(a - 21) = 3: nu(a - 42) = 1: kaik = 1: asend: GOTO 3\r
+IF nu(a) = 1 AND nu(a - 21) = 0 AND nu(a - 42) = 3 AND nu(a - 23) = 0 AND nu(a - 4) = 3 THEN nu(a) = 3: nu(a - 21) = 3: nu(a - 42) = 1: kaik = 1: asend: GOTO 3\r
+IF nu(a) = 1 AND nu(a - 19) = 0 AND nu(a - 38) = 3 AND nu(a - 59) = 0 AND nu(a - 80) = 3 THEN nu(a) = 3: nu(a - 19) = 3: nu(a - 38) = 1: kaik = 1: asend: GOTO 3\r
+IF nu(a) = 1 AND nu(a - 19) = 0 AND nu(a - 38) = 3 AND nu(a - 17) = 0 AND nu(a + 4) = 3 THEN nu(a) = 3: nu(a - 19) = 3: nu(a - 38) = 1: kaik = 1: asend: GOTO 3\r
+IF nu(a) = 1 AND nu(a - 21) = 0 AND nu(a - 42) = 3 AND nu(a - 63) = 0 AND nu(a - 84) = 3 THEN nu(a) = 3: nu(a - 21) = 3: nu(a - 42) = 1: kaik = 1: asend: GOTO 3\r
+IF nu(a) = 1 AND nu(a - 19) = 0 AND nu(a - 38) = 3 AND nu(a - 57) = 0 AND nu(a - 76) = 3 THEN nu(a) = 3: nu(a - 19) = 3: nu(a - 38) = 1: aiki = 1: asend: GOTO 3\r
+NEXT a\r
+\r
+REM                                  L I H T S A L T   L O O K\r
+FOR a = 1 TO 200\r
+IF nu(a) = 1 AND nu(a + 21) = 0 AND nu(a + 42) = 3 THEN nu(a) = 3: nu(a + 21) = 3: nu(a + 42) = 1: GOTO 2\r
+IF nu(a) = 1 AND nu(a + 19) = 0 AND nu(a + 38) = 3 THEN nu(a) = 3: nu(a + 19) = 3: nu(a + 38) = 1: GOTO 2\r
+IF nu(a) = 1 AND nu(a - 21) = 0 AND nu(a - 42) = 3 THEN nu(a) = 3: nu(a - 21) = 3: nu(a - 42) = 1: GOTO 2\r
+IF nu(a) = 1 AND nu(a - 19) = 0 AND nu(a - 38) = 3 THEN nu(a) = 3: nu(a - 19) = 3: nu(a - 38) = 1: GOTO 2\r
+NEXT a\r
+REM                                      K A I T S E B\r
+FOR a = 1 TO 200\r
+IF nu(a) = 1 AND nu(a + 19) = 3 AND nu(a + 21) = 3 AND nu(a + 40) = 1 AND nu(a + 38) = 3 AND nu(a + 61) = 0 THEN nu(a) = 3: nu(a + 19) = 1: GOTO 2\r
+IF nu(a) = 1 AND nu(a + 19) = 3 AND nu(a + 21) = 0 AND nu(a + 40) = 1 AND nu(a + 38) = 3 AND nu(a + 61) = 0 THEN nu(a) = 3: nu(a + 19) = 1: GOTO 2\r
+IF nu(a) = 1 AND nu(a + 19) = 3 AND nu(a + 21) = 3 AND nu(a + 40) = 1 AND nu(a + 38) = 1 AND nu(a + 61) = 0 THEN nu(a) = 3: nu(a + 19) = 1: GOTO 2\r
+IF nu(a) = 1 AND nu(a + 19) = 3 AND nu(a + 21) = 0 AND nu(a + 40) = 1 AND nu(a + 38) = 1 AND nu(a + 61) = 0 THEN nu(a) = 3: nu(a + 19) = 1: GOTO 2\r
+\r
+IF nu(a - 2) = 1 AND nu(a + 19) = 3 AND nu(a) = 3 AND nu(a + 40) = 1 AND nu(a + 38) = 3 AND nu(a + 61) = 0 THEN nu(a - 2) = 3: nu(a + 19) = 1: GOTO 2\r
+IF nu(a - 2) = 1 AND nu(a + 19) = 3 AND nu(a) = 1 AND nu(a + 40) = 1 AND nu(a + 38) = 3 AND nu(a + 61) = 0 THEN nu(a - 2) = 3: nu(a + 19) = 1: GOTO 2\r
+IF nu(a - 2) = 1 AND nu(a + 19) = 3 AND nu(a) = 3 AND nu(a + 40) = 1 AND nu(a + 38) = 1 AND nu(a + 61) = 0 THEN nu(a - 2) = 3: nu(a + 19) = 1: GOTO 2\r
+IF nu(a - 2) = 1 AND nu(a + 19) = 3 AND nu(a) = 1 AND nu(a + 40) = 1 AND nu(a + 38) = 1 AND nu(a + 61) = 0 THEN nu(a - 2) = 3: nu(a + 19) = 1: GOTO 2\r
+NEXT a\r
+REM                                  L A H E B   N U R K A\r
+FOR a = 1 TO 200\r
+IF nu(a) = 1 AND nu(a + 2) = 4 AND nu(a + 21) = 3 THEN nu(a) = 3: nu(a + 21) = 1: GOTO 2\r
+IF nu(a) = 1 AND nu(a - 2) = 4 AND nu(a + 19) = 3 THEN nu(a) = 3: nu(a + 19) = 1: GOTO 2\r
+NEXT a\r
+REM                                  O H U T U   K A I K\r
+FOR a = 1 TO 200\r
+IF nu(a) = 1 AND nu(a + 19) = 3 AND nu(a + 38) = 3 AND nu(a + 40) = 3 THEN nu(a) = 3: nu(a + 19) = 1: GOTO 2\r
+IF nu(a) = 1 AND nu(a + 21) = 3 AND nu(a + 42) = 3 AND nu(a + 40) = 3 THEN nu(a) = 3: nu(a + 21) = 1: GOTO 2\r
+\r
+IF nu(a) = 1 AND nu(a + 19) = 3 AND nu(a + 38) = 1 AND nu(a + 40) = 3 THEN nu(a) = 3: nu(a + 19) = 1: GOTO 2\r
+IF nu(a) = 1 AND nu(a + 21) = 3 AND nu(a + 42) = 1 AND nu(a + 40) = 3 THEN nu(a) = 3: nu(a + 21) = 1: GOTO 2\r
+\r
+IF nu(a) = 1 AND nu(a + 19) = 3 AND nu(a + 38) = 3 AND nu(a + 40) = 1 THEN nu(a) = 3: nu(a + 19) = 1: GOTO 2\r
+IF nu(a) = 1 AND nu(a + 21) = 3 AND nu(a + 42) = 3 AND nu(a + 40) = 1 THEN nu(a) = 3: nu(a + 21) = 1: GOTO 2\r
+\r
+IF nu(a) = 1 AND nu(a + 19) = 3 AND nu(a + 38) = 1 AND nu(a + 40) = 1 THEN nu(a) = 3: nu(a + 19) = 1: GOTO 2\r
+IF nu(a) = 1 AND nu(a + 21) = 3 AND nu(a + 42) = 1 AND nu(a + 40) = 1 THEN nu(a) = 3: nu(a + 21) = 1: GOTO 2\r
+NEXT a\r
+REM                                  M O T T E T U   K A I K\r
+FOR a = 1 TO 200\r
+IF nu(a) = 1 AND nu(a + 21) = 3 THEN nu(a) = 3: nu(a + 21) = 1: GOTO 2\r
+IF nu(a) = 1 AND nu(a + 19) = 3 THEN nu(a) = 3: nu(a + 19) = 1: GOTO 2\r
+NEXT a\r
+LOCATE 4, 5\r
+PRINT " S I N U   V O I T"\r
+END\r
+GOTO 3\r
+2\r
+asend\r
+9\r
+END SUB\r
+\r
+SUB sisend\r
+DIM asdf(1000)\r
+\r
+p = 1\r
+5\r
+a = ax1\r
+b = ax2\r
+7\r
+IF p = 1 THEN LOCATE 1, 70: PRINT "Kust !"\r
+IF p = 2 THEN LOCATE 1, 70: PRINT "kuhu !"\r
+\r
+LOCATE 2, 60\r
+qw = (((b \ 18) - 1) * 20) + (a \ 40)\r
+PRINT qw\r
+GET (a, b)-(a + 10, b + 10), asdf\r
+PUT (a, b), hiir, PSET\r
+a$ = INPUT$(1)\r
+PUT (a, b), asdf, PSET\r
+IF p = 2 AND a$ = CHR$(13) THEN a2 = qw: ax1 = a: ax2 = b: GOTO 8\r
+IF p = 1 AND a$ = CHR$(13) THEN a1 = qw: p = 2\r
+IF a$ = "q" THEN END\r
+IF a$ = "s" THEN a = a + 40\r
+IF a$ = "a" THEN a = a - 40\r
+IF a$ = "w" THEN b = b - 18\r
+IF a$ = "z" THEN b = b + 18\r
+IF a < 1 THEN a = 1\r
+IF b < 1 THEN b = 1\r
+\r
+GOTO 7\r
+8\r
+kaik = 1\r
+LOCATE 3, 60\r
+PRINT a1; "-"; a2\r
+10\r
+REM                                     K O N T R O L L\r
+IF a1 = a2 + 19 AND nu(a1) = 0 AND nu(a2) = 3 THEN BEEP: SWAP nu(a1), nu(a2)\r
+IF a1 = a2 + 21 AND nu(a1) = 0 AND nu(a2) = 3 THEN BEEP: SWAP nu(a1), nu(a2)\r
+zxcv = 0\r
+IF a1 = a2 + 42 AND nu(a1) = 0 AND nu(a2) = 3 AND nu(a2 + 21) = 1 THEN BEEP: SWAP nu(a1), nu(a2): nu(a2 + 21) = 3: zxcv = 1\r
+IF a1 = a2 + 38 AND nu(a1) = 0 AND nu(a2) = 3 AND nu(a2 + 19) = 1 THEN BEEP: SWAP nu(a1), nu(a2): nu(a2 + 19) = 3: zxcv = 1\r
+IF a1 = a2 - 42 AND nu(a1) = 0 AND nu(a2) = 3 AND nu(a2 - 21) = 1 THEN BEEP: SWAP nu(a1), nu(a2): nu(a2 - 21) = 3: zxcv = 1\r
+IF a1 = a2 - 38 AND nu(a1) = 0 AND nu(a2) = 3 AND nu(a2 - 19) = 1 THEN BEEP: SWAP nu(a1), nu(a2): nu(a2 - 19) = 3: zxcv = 1\r
+asend\r
+IF zxcv = 1 THEN look: IF looma = 1 THEN SOUND 1234, 1: p = 2: a1 = a2: GOTO 5\r
+6\r
+END SUB\r
+\r
diff --git a/games/mario/0.i01 b/games/mario/0.i01
new file mode 100755 (executable)
index 0000000..ddf406e
--- /dev/null
@@ -0,0 +1,11 @@
+ 10 \r
+((]]]]]]((\r
+(]]]]]]]](\r
+]]]]((]]]]\r
+]]]((((]]]\r
+]]]((((]]]\r
+]]]((((]]]\r
+]]]((((]]]\r
+]]]]((]]]]\r
+(]]]]]]]](\r
+((]]]]]]((\r
diff --git a/games/mario/1.i01 b/games/mario/1.i01
new file mode 100755 (executable)
index 0000000..3d79571
--- /dev/null
@@ -0,0 +1,11 @@
+ 10 \r
+((((]]](((\r
+(((]]]]]((\r
+(((]]]]]((\r
+(((]]]]]((\r
+(((]]]]]((\r
+(((]]]]]((\r
+(((]]]]]((\r
+(((]]]]]((\r
+(((]]]]]((\r
+((((]]](((\r
diff --git a/games/mario/2.i01 b/games/mario/2.i01
new file mode 100755 (executable)
index 0000000..1e305a6
--- /dev/null
@@ -0,0 +1,11 @@
+ 10 \r
+(]]]]]]]((\r
+]]]]]]]]](\r
+]]]]((]]]]\r
+(]](((]]]]\r
+((((]]]]](\r
+(((]]]]]((\r
+(]]]](((((\r
+]]]](((]](\r
+]]]]]]]]]]\r
+(]]]]]]]](\r
diff --git a/games/mario/3.i01 b/games/mario/3.i01
new file mode 100755 (executable)
index 0000000..0638abc
--- /dev/null
@@ -0,0 +1,11 @@
+ 10 \r
+(]]]]]]]](\r
+]]]]]]]]]]\r
+(]](((]]]]\r
+(((((((]]]\r
+(((((]]]](\r
+(((((]]]](\r
+(((((((]]]\r
+(]](((]]]]\r
+]]]]]]]]]]\r
+(]]]]]]]](\r
diff --git a/games/mario/4.i01 b/games/mario/4.i01
new file mode 100755 (executable)
index 0000000..2bfbf57
--- /dev/null
@@ -0,0 +1,11 @@
+ 10 \r
+(((]](((](\r
+((]]](((]]\r
+((]]]((]]]\r
+(]]](((]]]\r
+(]]]((]]]]\r
+]]]]]]]]]]\r
+(]]]]]]]]]\r
+(((((]]]](\r
+(((((]]]](\r
+((((]]]]((\r
diff --git a/games/mario/5.i01 b/games/mario/5.i01
new file mode 100755 (executable)
index 0000000..f364c9b
--- /dev/null
@@ -0,0 +1,11 @@
+ 10 \r
+((]]]]]]((\r
+(]]]]]](((\r
+(]](((((((\r
+(]](((((((\r
+(]]]]]]]](\r
+((]]]]]]]]\r
+(((((((]]]\r
+]]](((]]]]\r
+]]]]]]]]](\r
+(]]]]]]]((\r
diff --git a/games/mario/6.i01 b/games/mario/6.i01
new file mode 100755 (executable)
index 0000000..7a52db7
--- /dev/null
@@ -0,0 +1,11 @@
+ 10 \r
+((]]]]]]((\r
+]]]]]]]]](\r
+]]](((]]](\r
+]]](((((((\r
+]]]]]]]]](\r
+]]]]]]]]]]\r
+]]]((((]]]\r
+]]](((]]]]\r
+]]]]]]]]](\r
+(]]]]]]]((\r
diff --git a/games/mario/7.i01 b/games/mario/7.i01
new file mode 100755 (executable)
index 0000000..27197cc
--- /dev/null
@@ -0,0 +1,11 @@
+ 10 \r
+(]]]]]]]](\r
+]]]]]]]]]]\r
+]]]((((]]]\r
+(](((((]]]\r
+((((]]]]]]\r
+((]]]]]]](\r
+((((((]]](\r
+(((((]]]((\r
+((((]]](((\r
+((((]]](((\r
diff --git a/games/mario/8.i01 b/games/mario/8.i01
new file mode 100755 (executable)
index 0000000..5ad4835
--- /dev/null
@@ -0,0 +1,11 @@
+ 10 \r
+((]]]]]]((\r
+(]]]((]]](\r
+(]]((((]](\r
+((]]((]]((\r
+(]]]]]]]](\r
+]]]]((]]]]\r
+]]]((((]]]\r
+]]]]((]]]]\r
+(]]]]]]]](\r
+((]]]]]]((\r
diff --git a/games/mario/9.i01 b/games/mario/9.i01
new file mode 100755 (executable)
index 0000000..6e44b1c
--- /dev/null
@@ -0,0 +1,11 @@
+ 10 \r
+(]]]]]]]((\r
+]]]]]]]]](\r
+]]](((]]]]\r
+]](((((]]]\r
+]]](((]]]]\r
+(]]]]]]]]]\r
+((]]]((]]]\r
+((((((]]]]\r
+((]]]]]]](\r
+((]]]]]]((\r
diff --git a/games/mario/index.html b/games/mario/index.html
new file mode 100755 (executable)
index 0000000..e344619
--- /dev/null
@@ -0,0 +1,13 @@
+<HTML>\r
+<HEAD><TITLE>super mario like game</TITLE></HEAD>\r
+\r
+<BODY text=#A0A0ff vLink=#0000ff aLink=#0000ff link=#0000ff bgColor=#000000>\r
+\r
+<CENTER><H1>super mario like game</H1></CENTER>\r
+<BR>\r
+<BR>\r
+<BR>Jump around, collect coins and dont touch snails!\r
+\r
+<BR><IMG SRC="sshot.png">\r
+</BODY>\r
+</HTML>
\ No newline at end of file
diff --git a/games/mario/kast.i01 b/games/mario/kast.i01
new file mode 100755 (executable)
index 0000000..59c5b7b
--- /dev/null
@@ -0,0 +1,21 @@
+ 20 \r
+(DDDDDDDDDDDDDDDDDD(\r
+D(EEEEEEEEEEEEEEEE(=\r
+DE(EEEEEEEEEEEEEE(>=\r
+DEE@@@@@@@@@@@@@@?>=\r
+DEE@???????????D@?>=\r
+DEE@??CCCCCCCCCD@?>=\r
+DEE@?CCCCCCCCCCD@?>=\r
+DEE@?CCCCCCCCCCD@?>=\r
+DEE@?CCCCCCCCCCD@?>=\r
+DEE@?CCCCCCCCCCD@?>=\r
+DEE@?CCCCCCCCCCD@?>=\r
+DEE@?CCCCCCCCCCD@?>=\r
+DEE@?CCCCCCCCCCD@?>=\r
+DEE@?CCCCCCCCCCD@?>=\r
+DEE@?CCCCCCCCCCD@?>=\r
+DEE@DDDDDDDDDDDD@?>=\r
+DEE@@@@@@@@@@@@@@?>=\r
+DE=??????????????(>=\r
+D(>>>>>>>>>>>>>>>>(=\r
+(==================(\r
diff --git a/games/mario/mario1.i01 b/games/mario/mario1.i01
new file mode 100755 (executable)
index 0000000..d24dc33
--- /dev/null
@@ -0,0 +1,21 @@
+ 20 \r
+(RRRRRQQQQ((((((((((\r
+RRQQQQQQQQQ(RRRR((((\r
+RQQQQQQQQQQRRQQQQ(((\r
+RQQQQQQQQQQQQQQQ((((\r
+QQQQQQQQQQQQQ(((((((\r
+QQQQQQQQQ((\81((((((((\r
+(QQQQQQQ\81\81\81\81\81\81((((((\r
+((\81\81\81\81\81\81\81\81\81\81\81\81\81(((((\r
+((\81\81\81\81\81\81\81\81\81\81\81\81((((((\r
+(((\81\81\81\81\81\81(\81(((((((((\r
+(((((\81\81\81\81\81((((((((((\r
+((((((JJJJJ(((((((((\r
+((((((JJJJJJ((((((((\r
+(((((JJJJJIJ((((((((\r
+(((((JIIIIJJ((((((((\r
+((((IIIIIIIJ((((((((\r
+((((IIIIIIJJJ(((((((\r
+((XXXIII(JJJJXXX((((\r
+(XXXXXXX((JXXXXXXX((\r
+((XXXXX((((XXXXXX(((\r
diff --git a/games/mario/mario2.i01 b/games/mario/mario2.i01
new file mode 100755 (executable)
index 0000000..0a0a944
--- /dev/null
@@ -0,0 +1,21 @@
+ 20 \r
+(RRRRQQQQ(((((((((((\r
+RQQQQQQQQQ((((((((((\r
+QQQQQQQQQQRRRRR(((((\r
+QQQQQQQQQQQQQQQQ((((\r
+QQQQQQQQQQQQQQQ(((((\r
+QQQQQQQQ((\81(((((((((\r
+QQQQQQQ\81\81\81\81\81\81(((((((\r
+(\81\81\81\81\81\81\81\81\81\81\81\81\81((((((\r
+(\81\81\81\81\81\81\81\81\81\81\81\81(((((((\r
+((\81\81\81\81\81\81(\81((((((((((\r
+((((\81\81\81\81\81(((((((((((\r
+(((((JJJJJ((((((((((\r
+(((((JJJJJJ(((((((((\r
+((((JJJJJIJ(((((((((\r
+((((JIIIIJJ(((((((((\r
+(((((IIIIIJ(((((((((\r
+(((((IIIII((((((((((\r
+((((XXXXXXXX((((((((\r
+(((XXXXXXXXXX(((((((\r
+((((XXXXXXXX((((((((\r
diff --git a/games/mario/munt.i01 b/games/mario/munt.i01
new file mode 100755 (executable)
index 0000000..4b3089c
--- /dev/null
@@ -0,0 +1,11 @@
+ 10 \r
+(((TTTT(((\r
+(TTTSSSSR(\r
+TTSSSSSSSR\r
+TSSS\\SSSR\r
+TSSS\]SSSR\r
+TSSS\]SSSR\r
+TSSS\]SSSR\r
+TSSS\]SSSR\r
+(SRSSSSRR(\r
+(((RRRR(((\r
diff --git a/games/mario/munt1.i01 b/games/mario/munt1.i01
new file mode 100755 (executable)
index 0000000..6b2db3b
--- /dev/null
@@ -0,0 +1,11 @@
+ 10 \r
+(((TTTT(((((((((((((\r
+(TTTSSSSR((FF((((FC(\r
+TTSSSSSSSR(FCC((FC@(\r
+TSSS\\SSSR((CCCFC@((\r
+TSSS\]SSSR(((CCC@(((\r
+TSSS\]SSSR(((FCC@(((\r
+TSSS\]SSSR((FCC@C@((\r
+TSSS\]SSSR(FC@((@C@(\r
+(SRSSSSRR((C@((((@@(\r
+(((RRRR(((((((((((((\r
diff --git a/games/mario/munt2.i01 b/games/mario/munt2.i01
new file mode 100755 (executable)
index 0000000..f064124
--- /dev/null
@@ -0,0 +1,11 @@
+ 10 \r
+((QQQQ((((((((((((((\r
+(QQQQQQ((((FF((((FC(\r
+((jjjj(((((FCC((FC@(\r
+((jjjj((((((CCCFC@((\r
+(c(jj(c((((((CCC@(((\r
+c]]]]]]c(((((FCC@(((\r
+((]]]]((((((FCC@C@((\r
+(]]]]]]((((FC@((@C@(\r
+XX]((]XX(((C@((((@@(\r
+XXX((XXX((((((((((((\r
diff --git a/games/mario/pilv.i01 b/games/mario/pilv.i01
new file mode 100755 (executable)
index 0000000..7ec44e0
--- /dev/null
@@ -0,0 +1,31 @@
+ 30 \r
+(((((((((((((((((((((((((\\(\((((((((((((((((((((((((](((((((((]((((]((((]](((((((((((((((((((((((((\r
+((((((((((((((((((((((((\((((((((\\(((((((((\(((((((((]]((\(((\(((\((]](]]((((((((((((((((((((((((((\r
+((((((((((((((((\((\((\(\]\\((\(\(((((((]((((((((](((\((\]((((\(]\(\(]]]]]](((((((((((((((((((((((((\r
+(((((((((((((((((((]t\\(]]]\\\](](((\((]((](](((((((]((((\(\]](\((]\(((((\\(](](\]\(((((((((](((((((\r
+((((((((((t((\8fwt\8f\8f\\\t](tt\(]\\((\(](\\t\t((((]\t(](((\((\]\](\(\]](]]((]\(]](((]`\`\(\\](((((((((((\r
+(((((t((((((tttttt\8ft(t\\(\\((\(]]]\t((\\]\]((((\(](\((\\(]\(](`\\`]](\]\\]\(t\\\`\\t(t\]((](((((((((\r
+((((t(tt(t((t\8fttt\8ftt]t\\(](\\(t(t\\ttt\]tt]t\\(]\tt]](\((t]\](\t]((t]\t(]`\t(]]tt\\(tt\\]](]((((((((\r
+((((((\(ttt(tt\8f\8f\8ft\8f\tt]tt\\\\t\]\tt\(\t]((\\\tt\((]](\\t]tt(\\\(tt(t\(`]\`]]\\\\\(\`tt``^```(`((((((\r
+((((tt(tttt\8f\8ftttttt\\t]\tt]ttt(]\\\\\t\\t(\\((\\t\]t\\]]`\\\](\`]\\(\\]\`(t\\\t\\tt\\^(``]\(\]((]`((\r
+(((t\(t\ttt\]\8ft\8ftt\t\8ft]]]\\t]ttt]]t\t\\]ttt\]](tt\(]t\\\]t\t`t\\]\\tt]\^\t]\\\\\tt\\`t\t`^`(\`\]]]((\r
+(((((tt]]t\\twt\\8f\\t\8f\]tt]]t(]\t\tt]\tttt\tt]\((t(\\\t\`]t(\]t\\`\t\\(\\\t\t]^\\t\\\tt\t\\^```(`(]((\r
+((t(](\ttttwttw]t\\tt(^t\(t]\]tt\(\t]t\\t(]]\]ttt\\tttt\]\^]\tt\]``\t`(\tt\`^\\\\\ttt\tt\\`]\\^((\((\r
+]t(]]]]tt]t\t^t\tt\t(\](tt]\tt]\t\\\\\]t\tt`t\\`^]\]t\]]]tt\`(`(]`\tt\\`\t\t]\\tt\ttt^t\\`\`]``(\]((\r
+(]t]t\\t\\t\^t\^t\](\]]\]]t\(ttttt\]t\t\`\t\t\t\\\\`^t`(t(]]t]t`]]t]\\\^tt\]`\t\\t\\``t\\`\``\]t``\(\r
+(]t(tt\\\\\\\\\]^t]]t^t]tt\t^\\]]]]`t\]\t`]\t^```\^^]`\tt^t]`\`]^^\\\\\\\\]^(`\^`\\\\\\^``\```]`\`(]\r
+(](t^^]\\]\\\]t^\]]^]]\^^\]]t\`\^^``]t`^\\`\\`^`]\^\`t]\^^^`^]\\^^^\\\\\]]\`\^````\\]^`\`^`\```]``](\r
+]]]]](t]`t]^\]^]]^]^]^^]^^]`\^\]`]\]`\\\\``]`\`t\\`^]```^`]^^^^^]\^^\t\``]`\\``]\\^\^^^\\\```````]]]\r
+((^((]](`]]`]^^`^^]^`]]\]``\\(\(\`]``\```]`^^^````^````t(]`^t]^^t`\\]^^\^\^`^\^``\]\\````^`\`]```(](\r
+](^]((]\`(``]]]^``^t]^^]]t]``t`]``(`````\``\``\\`\```t`^t^(^^^^^]]t^`(\\^\^`(`^^^`\^```\````\]````](\r
+]((^^]]`]^]^\`]``t^```````\`^`\`\``\^t```````]`````]^`^]]^^t^(^(^]``^```\\\`^]]]^^^^]``^````t]``]``(\r
+(((^((]``^^`^^``^^^^^^]]t`t````^`^`^`^\^`]````````````^`````^^^`]`]^^^^^((]``^^`^]]^^`````]``^^(t`(]\r
+(]^(^(`(`^]]`]`^^^`]^```^^`````t`\^`^`````````^`(`^t^`t^`^^^(```t(`^]]^^^^```^]`]``]^`(```(^(`tttt((\r
+^(^(^(((t](((`]]`^`t``t```^``^``````^````(^`(````^^^``^`(```^]``]^(]`^```]````````(]^``]t]`^`](^(`((\r
+(((tt^(^((((]`^`^```t````^```^^^]``````](`tt``]``^```(^^`]``(``t````t```(``]`^]^t`]^`(`^^^^``tt]`(((\r
+(((((((]^](((``]`(`^`]^^^``]`]]((```(`(^```]((]^`^`````````(`((t``^`````]`^(^^```(`^`](`t]^((^(`((((\r
+(((((((((]((t(^`(`^``((``(^(``^(((((((((``((^``````^(^`t`(`^t``````^]((^^^`](^```((`]((`(]^`((^]((((\r
+(((((((((((t(^``(`(t^(^(`^(^^^((^(`((^(`]((((](((````^(`((((``((``((``(^`]`(]]]]``]``]````(`(``(`(((\r
+(((((((((((((^(^((((((^^(((^(((^(((^^`((`((]`((((^`((`(^``((```^`((((^(((t`(^`((`^(`(]`^`(((`^((((((\r
+((((((((((((((((((((^(((^(((((^(((((((((((((((((^(`^^`^(((^((^((``(((`((((`](((((((^(``(((`(((((((((\r
+(((((((((((((((((((^(((((((^((^(((((((((((((((((((((^(`(^^(`((((((^^(^((`((((](`((((((((((((((((((((\r
diff --git a/games/mario/poosas.i01 b/games/mario/poosas.i01
new file mode 100755 (executable)
index 0000000..e48b7dc
--- /dev/null
@@ -0,0 +1,21 @@
+ 20 \r
+((((((((((((((((((((((((((((((q((((q(q((((((((((((((((((((((\r
+((((((((((q((q(((q(((qq(((((((qq\8aqqqq(((((((qq((((((((((((((\r
+((((((((((q(q(((q(qq((qq((q((qqq(((q(qq(qq;(qq(q((((((((((((\r
+(((((((((qq(q(\8a(((q(q(q(q((((q2qqq(qqq(q(;((;q(q((((((((((((\r
+(((((qqq(q(q(((222\8aqqq(((\8aq(qqqq\8aq2qqqq2((;\8a((q(((q?q(((((((\r
+((((qq(nq(((q((2(qq2q2q(((nn(\8aq(qqq(nqq2n2;(qnq?(;???(((((((\r
+((((((qqqq2q(qqq2\8a(22\8a(qqq(\8aqq2n(2nqq2qqq(nq?q?\8a2;;;?(((((((\r
+(((((qn(qqqq\8a(\8a(qXn22X\8a(nq\8a\8aq2(22qq22(22(2?Y??2q;?q;22((((((\r
+((((q((qq2qq\8aqqnq2nX\8aX\8aqq2\8a\8aqq\8aqX2q22((qq;(Yq???;;2;;2q(((((\r
+((((((q(22(2q2(((nqqXX\8a(XX2Xq(q2\8a22nq22q?qY((?(?qqqq;???((((\r
+(((q(qq(qqqYYXq((YXXY\8aX2\8a2\8aX2\8aq;?2???2q;;q;X?2???;?;Y;??q(((\r
+(((q(q(q22222YYX2(XX?X2q2?qX2q?YYYn2q;Y;X2???X?;?;;;??;;((((\r
+(((n(qq(\8a2\8a22XYqXY?XY;2;???qq?;?Y;?2Y;2;;Y;?XX9X9;;(9;??;(((\r
+((((qnX\8a?YY22\9f\9f???YYqqX?;qXqqq;;???;@;;;;??X\9d;;?X?q;;;9?;(?(\r
+(nnn\8aX2?2??YX\9f\9fX2q?X;2;;?qq;;;q;?;;;;;;;\9f;X\9d;9;?X;;@;@;;?99(\r
+qqqnq\8aq222\8aX\9f\9f?Y(\9fY??;qq?2;?;q?;?;;?@X;;;?\9f;9999;9@;;;;;9n?9\r
+nqnqqn2??Y??(X?Y\9f\9fX?;?;?X?;Xq;;\9fX;n\9f@;\9f;;;;\9f9;;2;;@;;?;;9((9\r
+nnqqq2(?\9fn?n\9f\9f\9f?\9fY22X;X?q;;;;;qqq;;q;\9f;;;q9X\9d;;99;@;\9d;9;;;??\r
+qnq(qqnqq???\9f\9fX(?n\9fqX(XXqq2;nqq;;;\9f\9fq\9f\9f;\9f\9f;Xq;q;\9d\9d9n;\9d;??n?9\r
+((nn((q\9f(\9fnXn\9f(n\9fXn\9fn(XqqX2\9f\9f;q\9f(qq;(\9f\9fq\9f(9\9d9\9fq\9d\9d\9d?\9d;\9f\9f?????\r
diff --git a/games/mario/puu.i01 b/games/mario/puu.i01
new file mode 100755 (executable)
index 0000000..5a8ca34
--- /dev/null
@@ -0,0 +1,61 @@
+ 60 \r
+(((((((((((((((X(((((X((T(((((((((((((((\r
+(((((((((((((((X((T((X(X((((((((((((((((\r
+((((((((((((X(((((X(X((((((X(X((((((((((\r
+(((((((((((((XX((X(((((((((T((((((((((((\r
+((((((XX((((XX(XTT(X(TXXT(((((X(((((((((\r
+((((((((((((((X((X(TXXT\9f\9f(XXXX((((((((((\r
+((((((X(X((XXX(XXXTTT(XXXTX(X(((((((((((\r
+(((((((XX((X(XX((T((XXXX(T((XXX(X(X(((((\r
+((((X(X((XXXT((XX(XXX(TXXT\9fXX(X\9f(X((((((\r
+((((XXX((((XT(X(XXXTTT(XX\9fX\9f\9f\9f\9fX((X(((((\r
+(((((X((((XT((XX((XT(XTX((XX(\9fX((((\9f\9f(((\r
+(((X((X(((TX((XXXXTXX(TT\9f(((((\9fX\9f((\9fX(((\r
+((((X(XX((X(XX(X(TX(((TTT\9fX\9f(\9fXX\9f(((((((\r
+((((X(XXXXXX((XXTTXX(TXTTT(T(X\9fX(\9f(XX(((\r
+(((((X(XX(TXXTTT(TXXT(X((X((((X\9f(X(XX(((\r
+((((((X((X(XXXXXT(XXX(TT((T(X(((((((X(((\r
+(((XX((XX(((X(TXXX(TX(TTTTXT(\9f(((\9f((\9f(((\r
+(X(((X(((X(T((X(X(XX(T(XXTX(T\9fX((\9f\9fX((((\r
+((XX(X((((((XTX(TTTXTXT(XX((XX(\9f(\9f\9f(((X(\r
+((((((XXXX((X(XXTTXT(XX\9fTT(T(((X\9f((XX(((\r
+(((XXXX(X(((X(T(TTTTXXXXTX(X(XXXX(X(\9f(X(\r
+(((((((((X(XXXXX(XT(X(X((X(XXX(XXX((\9f(((\r
+X(((((X((X(X(X((XTT(((((XX\9f(XXXX\9f(\9f((X\9f(\r
+(((XXX(XXX((X(((XTXX(T(X((\9f(((\9fX(XXXX(X(\r
+(((X(((TTX((TTXTT(XXXT(X\9f\9f(XXX((XX\9f((X(\9f\r
+((X((((XTX(((X(XX(XTT(XXXX((XX(XX\9f(X((\9fX\r
+(((((TX(((X((T(XTTXXXTXX(XX\9fX(X((\9f((((((\r
+((X(X(TXTX(XX((XTTXX(X(X\9fXX\9fT\9fXXXX(\9f(\9f((\r
+((((X(X(X((TXTTT(((X\9f\9fX(XT((XXXXX(\9f(((\9f(\r
+((((X((X((T((X(TXXXXXXX\9f(T\9fX(XX\9f\9f((\9f\9f(((\r
+((((X(((TXTXX(XXX(((XXX(\9fX\9f\9f(X\9f\9f(\9f\9f\9f\9f\9f((\r
+((XX((XXXX((XX(((XX(XXX(T\9f\9f\9fX\9f(XXX\9f\9f((((\r
+((((((X((XTXXTTTXXXXXX\9a\9a\9a\9f(TXT\9f(\9f((((X((\r
+(((X(((XXXTTXTT(T(TX(\9f\9a\9f\9aX\9f\9f\9f(X(\9f\9f(X((((\r
+((X(((((XXT(TTT(X((T(\9aX\9aXXT\9f\9f\9f(\9f\9f\9f((((((\r
+(X(XXXX(X((X((TXTT(TT\9f\9aXX\9f\9f\9fXX(X(\9f(XX(((\r
+((((X(((XXXXTXXX(((T\9f\9a\9fXX\9fX\9fX\9fX\9f(\9fX(((((\r
+(((((((XX(XXX(XXTX((\9f\9a\9a\9aT\9f\9f(\9fTXX(TX(\9f(((\r
+(((((XXXXXXX((X(X(\9f\9f\9f\9a\9a\9a\9fX\9f\9f\9fXT(X((X((((\r
+(((X(((XXXXX(XT(TT(X\9f\9a\9a\9aX\9f\9f\9fTT\9fX\9f((((\9f((\r
+((((((XX(XX((X(XTX\9f\9f\9a\9a\9aX((XXXXTX(((\9f((((\r
+(((((X(XXXXXXXXX\9f(\9f(\9f\9aX\9a(X\9fXTXX((X((((((\r
+(((((((X(X\9fX(XX((T\9f\9f\9fXX\9f\9f(XX\9fXXXX(((((\9f(\r
+((((((XX(XX((XXTX(X(\9a\9a\9a\9fX(XXXX(XXX(X((((\r
+((((((((((XXX\9fX\9a\9a\9f(\9a\9a\9aX\9f(X(TXXX((X((((((\r
+((((((((((X(\9fX(\9a\9f\9aX\9f\9a\9aXX(X(XXX(X((((((((\r
+(((((((((XXX(X\9f\9a\9a\9fX\9f\9aXX\9f\9fX(((X(((((\9f((((\r
+(((((((((((X((X\9a\9a\9f\9f\9f\9f\9aXXX(X(\9fX(\9f\9f(((((((\r
+((((((((((XXX\9f(\9a\9a\9f\9f\9f\9f\9fX\9f\9f(X(((\9f(\9f\9f((((((\r
+(((((((((((((XXX(\9a\9a\9f\9a\9aXX(((((X((((((((((\r
+(((((((((((\9f(X((T\9a\9f\9aXX\9f\9f((((X(\9f(((((((((\r
+((((((((((X(((XX(\9a\9aX\9a\9a\9f\9f((((((((((((((((\r
+((((((((((((((((\9fX\9aXX\9aX(\9f(((((\9f(((((((((\r
+((((((((((((((X(XX\9a\9f\9f\9f((\9f(((((((((((((((\r
+(((((((((((\9f(((XX(\9a\9a\9a\9a(\9f((((((((((((((((\r
+((((((((((((((((((\9a\9a\9a\9aX(((\9f(((((((((((((\r
+((((((((((((((\9f(((\9a\9a\9a\9a((((((((((((((((((\r
+((((((((((((((((((\9a\9a\9a\9a((((((((((((((((((\r
+(((((((((((((((\9f((\9a\9a\9a\9a((((((((((((((((((\r
+((((((((((((((((((\9a\9a\9a(((((((((((((((((((\r
diff --git a/games/mario/smario.bas b/games/mario/smario.bas
new file mode 100755 (executable)
index 0000000..fc1e3bd
--- /dev/null
@@ -0,0 +1,609 @@
+' Super Mario style game\r
+' by Svjatoslav Agejenko 1999\r
+' E-mail: svjatoslavagejenko@gmail.com\r
+\r
+DECLARE SUB CL ()\r
+DECLARE SUB esc ()\r
+DECLARE SUB aargh ()\r
+DECLARE SUB die ()\r
+\r
+\r
+DECLARE SUB dead ()\r
+DEFINT A-Z\r
+DECLARE SUB level1 ()\r
+DECLARE SUB nait (zaz%)\r
+DECLARE SUB wiew1 (a1%, b1%, c1%, d1%, a$)\r
+DECLARE SUB level ()\r
+DECLARE SUB save (a$)\r
+DECLARE SUB picedit ()\r
+DECLARE SUB wiew (a1%, b1%, c1%, d1%, a$)\r
+DECLARE SUB intro ()\r
+DECLARE SUB inpur ()\r
+DECLARE SUB mousedriver (AX%, bx%, cx%, dx%, lb%, rb%, EX%)\r
+DECLARE SUB tahed ()\r
+\r
+DIM SHARED sj$\r
+DIM SHARED ekraan\r
+DIM SHARED text$(1 TO 500)\r
+DIM SHARED pikkus\r
+\r
+\r
+DIM SHARED ruum(-5 TO 20, -5 TO 20) AS STRING\r
+DIM SHARED ruum1(-5 TO 20, -5 TO 20) AS STRING\r
+DIM SHARED maa(1 TO 11, 1 TO 10) AS STRING * 15\r
+DIM SHARED maa1(1 TO 10) AS INTEGER\r
+DIM SHARED maailm AS INTEGER\r
+DIM SHARED maailm1 AS INTEGER\r
+DIM SHARED text5(1 TO 15) AS STRING * 15\r
+DIM SHARED pilv(2100)\r
+DIM SHARED kast(202)\r
+DIM SHARED tellis(202)\r
+DIM SHARED poosas(1000)\r
+DIM SHARED puu(2000)\r
+DIM SHARED tuhi(202)\r
+DIM SHARED munt(202)\r
+DIM SHARED munt1(400)\r
+DIM SHARED munt2(200)\r
+DIM SHARED mari0(402)\r
+DIM SHARED mari(202, 1 TO 5)\r
+DIM SHARED koll(1 TO 230, 1 TO 10)\r
+DIM SHARED koll1(1 TO 202, 1 TO 5)\r
+DIM SHARED kolla(1 TO 10)\r
+DIM SHARED kollb(1 TO 10)\r
+DIM SHARED kollal(1 TO 10)\r
+DIM SHARED kolled(1 TO 10)\r
+\r
+DIM SHARED rahaz(1 TO 5)\r
+DIM SHARED number(100, 0 TO 11)\r
+DIM SHARED elud\r
+\r
+DIM SHARED raha\r
+DIM SHARED clra, clrb\r
+DIM SHARED a1, b1\r
+\r
+DIM SHARED prog\r
+prog = 1\r
+SCREEN 13\r
+maailm = 1\r
+maailm1 = 1\r
+level1\r
+1\r
+ekraan = 13: zpqf = 4\r
+\r
+FOR a = 0 TO 254\r
+OUT &H3C8, a\r
+OUT &H3C9, 0\r
+OUT &H3C9, 0\r
+OUT &H3C9, 0\r
+NEXT a\r
+OUT &H3C8, 255\r
+OUT &H3C9, 60\r
+OUT &H3C9, 60\r
+OUT &H3C9, 60\r
+LOCATE 20, 3\r
+COLOR 255\r
+PRINT "LOADING "\r
+\r
+\r
+CL\r
+wiew 0, 0, 1, 1, "pilv"\r
+GET (1, 1)-(109, 35), pilv\r
+CL\r
+wiew 0, 0, 1, 1, "kast"\r
+GET (1, 2)-(20, 21), kast\r
+CL\r
+wiew 0, 0, 1, 1, "tellis"\r
+GET (1, 2)-(20, 21), tellis\r
+CL\r
+GET (1, 2)-(20, 21), tuhi\r
+wiew 0, 0, 1, 1, "mario1"\r
+GET (1, 2)-(20, 21), mari(202, 1)\r
+CL\r
+wiew1 0, 0, 1, 1, "mario1"\r
+GET (3, 2)-(22, 21), mari(202, 2)\r
+CL\r
+wiew 0, 0, 1, 1, "mario2"\r
+GET (1, 2)-(20, 21), mari(202, 3)\r
+CL\r
+wiew1 0, 0, 1, 1, "mario2"\r
+GET (3, 2)-(22, 21), mari(202, 4)\r
+CL\r
+wiew 0, 0, 1, 1, "poosas"\r
+GET (1, 1)-(60, 21), poosas\r
+CL\r
+wiew 0, 0, 1, 1, "puu"\r
+GET (1, 1)-(40, 60), puu\r
+CL\r
+wiew 0, 0, 1, 1, "munt"\r
+GET (1, 1)-(10, 11), munt\r
+CL\r
+wiew 0, 0, 1, 1, "munt1"\r
+GET (0, 2)-(20, 11), munt1\r
+CL\r
+wiew 0, 0, 1, 1, "munt2"\r
+GET (0, 2)-(20, 11), munt2\r
+\r
+CL\r
+wiew 0, 0, 1, 1, "0"\r
+GET (0, 2)-(10, 11), number(100, 0)\r
+CL\r
+wiew 0, 0, 1, 1, "1"\r
+GET (0, 2)-(10, 11), number(100, 1)\r
+CL\r
+wiew 0, 0, 1, 1, "2"\r
+GET (0, 2)-(10, 11), number(100, 2)\r
+CL\r
+wiew 0, 0, 1, 1, "3"\r
+GET (0, 2)-(10, 11), number(100, 3)\r
+CL\r
+wiew 0, 0, 1, 1, "4"\r
+GET (0, 2)-(10, 11), number(100, 4)\r
+CL\r
+wiew 0, 0, 1, 1, "5"\r
+GET (0, 2)-(10, 11), number(100, 5)\r
+CL\r
+wiew 0, 0, 1, 1, "6"\r
+GET (0, 2)-(10, 11), number(100, 6)\r
+CL\r
+wiew 0, 0, 1, 1, "7"\r
+GET (0, 2)-(10, 11), number(100, 7)\r
+CL\r
+wiew 0, 0, 1, 1, "8"\r
+GET (0, 2)-(10, 11), number(100, 8)\r
+CL\r
+GET (0, 2)-(10, 11), number(100, 10)\r
+wiew 0, 0, 1, 1, "9"\r
+GET (0, 2)-(10, 11), number(100, 9)\r
+\r
+CL\r
+wiew 0, 0, 1, 1, "tigu"\r
+GET (1, 2)-(20, 21), koll1(202, 1)\r
+CL\r
+wiew 0, 0, 1, 1, "tigu1"\r
+GET (3, 2)-(22, 21), koll1(202, 2)\r
+CL\r
+wiew1 0, 0, 1, 1, "tigu"\r
+GET (1, 2)-(20, 21), koll1(202, 3)\r
+CL\r
+wiew1 0, 0, 1, 1, "tigu1"\r
+GET (3, 2)-(22, 21), koll1(202, 4)\r
+\r
+SCREEN 0\r
+SCREEN 13\r
+level\r
+a1 = 50\r
+b1 = 50\r
+edasi = 0\r
+liig = 1\r
+ov1 = 1\r
+ov2 = 2\r
+raha = 0\r
+elud = 3\r
+z = 1\r
+nait 0\r
+12\r
+IF b1 > 0 THEN GET (a1, b1)-(a1 + 20, b1 + 20), mari0: PUT (a1, b1), mari(202, liig), OR\r
+\r
+FOR ox = 1 TO 10\r
+IF kollb(ox) < 170 AND z = 1 THEN\r
+  kollb(ox) = kollb(ox) + kollal(ox)\r
+  kolla(ox) = kolla(ox) + kolled(ox)\r
+  GET (kolla(ox), kollb(ox))-(kolla(ox) + 20, kollb(ox) + 20), koll(202, ox)\r
+  IF kolled(ox) <= 0 THEN kolll = 1 ELSE kolll = 3\r
+  IF zz > 2 THEN kolll = kolll + 1: IF zz = 3 THEN kollal(ox) = kollal(ox) + 1\r
+  PUT (kolla(ox), kollb(ox)), koll1(202, kolll)\r
+END IF\r
+NEXT ox\r
+SOUND 0, .5\r
+z = z + 1\r
+IF z > 3 THEN z = 1\r
+IF z = 1 THEN\r
+zz = zz + 1\r
+IF zz > 5 THEN zz = 0\r
+alla = alla + 1\r
+IF edasi > 0 THEN edasi = edasi - 1: zy = zy + 1\r
+IF edasi < 0 THEN edasi = edasi + 1: zy = zy + 1\r
+IF zy > 2 THEN zy = 1\r
+IF zy = 2 THEN ov1 = 1: ov2 = 2\r
+IF zy = 1 THEN ov1 = 3: ov2 = 4\r
+\r
+FOR ox = 1 TO 10\r
+IF kollb(ox) < 170 THEN\r
+IF ruum((kolla(ox) + 20) / 20, (kollb(ox) + 9) / 20) = "m" THEN kollal(ox) = -1\r
+IF kolla(ox) > 270 THEN kolled(ox) = -1\r
+IF kolla(ox) < 2 THEN kolled(ox) = 1\r
+IF ruum((kolla(ox) + 28) / 20, kollb(ox) / 20) = "m" THEN kolled(ox) = -1\r
+IF ruum((kolla(ox) + 10) / 20, kollb(ox) / 20) = "m" THEN kolled(ox) = 1\r
+IF kolla(ox) - 20 < a1 AND kolla(ox) + 20 > a1 AND kollb(ox) - 5 < b1 AND kollb(ox) + 20 > b1 THEN aargh: dead: GOTO 12\r
+END IF\r
+NEXT ox\r
+END IF\r
+\r
+IF ruum((a1 + 15) / 20, (b1 + 9) / 20) = "m" THEN alla = -1: ao = 0\r
+IF ruum((a1 + 25) / 20, (b1 + 9) / 20) = "m" THEN alla = -1: ao = 0\r
+IF ruum((a1 + 20) / 20, (b1 - 8) / 20) = "m" THEN alla = 1: ao = 20\r
+IF ruum((a1 + 28) / 20, (b1) / 20) = "m" THEN edasi = -1: qa = 1\r
+IF ruum((a1 + 10) / 20, (b1) / 20) = "m" THEN edasi = 1: qa = 1\r
+\r
+IF ruum1((a1 + 20) / 20, (b1 - 8) / 20) = "o" THEN alla = 1: ruum1((a1 + 20) / 20, (b1 - 8) / 20) = "": ruum((a1 + 20) / 20, (b1 - 8) / 20) = "2": clra = ((a1 + 20) / 20) - 1: clrb = (b1 - 8) / 20: clr = 1:  SOUND 50, .5\r
+IF ruum((a1 + 20) / 20, (b1) / 20) = "1" THEN ruum((a1 + 20) / 20, (b1) / 20) = "2": clra = ((a1 + 21) / 20) - 1: clrb = (b1) / 20: clr = 1: raha = raha + 1: nait 1: SOUND 1000, 1: SOUND 2000, 1\r
+ao = ao + 1\r
+a$ = INKEY$\r
+IF a$ = CHR$(0) + "H" AND ao < 10 THEN alla = -6\r
+IF a$ = CHR$(0) + "M" AND qa = 0 THEN edasi = edasi + 3: liig = ov1\r
+IF a$ = CHR$(0) + "K" AND qa = 0 THEN edasi = edasi - 3: liig = ov2\r
+IF a$ = CHR$(27) THEN esc\r
+IF a$ = "+" AND qa = 0 THEN maailm = maailm + 1: level: GOTO 12\r
+IF qa <> 0 THEN qa = 0\r
+IF edasi > 5 THEN edasi = 3\r
+IF edasi < -5 THEN edasi = -3\r
+IF alla > 3 THEN alla = 3\r
+\r
+IF b1 > 0 THEN PUT (a1, b1), mari0, PSET\r
+\r
+IF z = 1 THEN\r
+FOR ox = 10 TO 1 STEP -1\r
+IF kollb(ox) < 170 THEN PUT (kolla(ox), kollb(ox)), koll(202, ox), PSET\r
+NEXT ox\r
+END IF\r
+\r
+\r
+b1 = b1 + alla\r
+a1 = a1 + edasi\r
+IF clr > 0 THEN clr = 0: PUT (clra * 20, clrb * 20), tuhi, PSET\r
+IF a1 > 280 THEN maailm = maailm + 1: level: a1 = 3\r
+IF a1 < 2 THEN maailm = maailm - 1: level: a1 = 279\r
+IF b1 > 170 THEN FOR a = 3000 TO 500 STEP -100: SOUND a, .3: NEXT a: dead\r
+GOTO 12\r
+\r
+SUB aargh\r
+a = 1700\r
+b = 1900\r
+FOR c = 1 TO 50\r
+a = a + 3\r
+b = b - 5\r
+SOUND a, .2\r
+SOUND b, .2\r
+NEXT c\r
+END SUB\r
+\r
+SUB CL\r
+LINE (0, 0)-(319, 150), 0, BF\r
+LOCATE 20, 10 + prog\r
+prog = prog + 1\r
+PRINT "."\r
+END SUB\r
+\r
+SUB dead\r
+IF maailm > 1 THEN maailm = maailm - 1\r
+\r
+level\r
+a1 = 20\r
+b1 = 100\r
+elud = elud - 1\r
+nait 0\r
+END SUB\r
+\r
+SUB die\r
+DIM diep(1 TO 2000)\r
+GET (0, 0)-(150, 20), diep\r
+LOCATE 1, 1\r
+PRINT "You are    "\r
+LOCATE 2, 1\r
+PRINT " killed!   "\r
\r
+FOR x = 0 TO 80\r
+FOR y = 0 TO 16\r
+IF POINT(x, y) > 0 THEN LINE (x * 5, y * 5 + 50)-(x * 5 + 4, y * 5 + 54), 4, BF\r
+NEXT y\r
+NEXT x\r
+PUT (0, 0), diep, PSET\r
+\r
+FOR a = 1 TO 100\r
+x = RND * 290 + 4\r
+y = RND * 170 + 4\r
+GET (x, y)-(x + 20, y + 20), diep\r
+x = x + RND * 4 - 2\r
+y = y + RND * 4 - 1\r
+PUT (x, y), diep, PSET\r
+NEXT a\r
+FOR a = 1 TO 50\r
+a$ = INKEY$\r
+NEXT a\r
+a$ = INPUT$(1)\r
+\r
+FOR a = 0 TO 100\r
+SOUND 0, .05\r
+LINE (0, a)-(320, a), 4\r
+LINE (0, 200 - a)-(320, 200 - a), 4\r
+NEXT a\r
+FOR a = 32 TO 0 STEP -1\r
+SOUND 0, .5\r
+OUT &H3C8, 4\r
+OUT &H3C9, a\r
+OUT &H3C9, 0\r
+OUT &H3C9, 0\r
+NEXT a\r
+END\r
+\r
+END SUB\r
+\r
+SUB esc\r
+FOR b = 0 TO 20\r
+FOR a = b TO 200 STEP 20\r
+LINE (0, a)-(320, a), 0\r
+NEXT a\r
+SOUND 0, .5\r
+NEXT b\r
+SYSTEM\r
+\r
+END SUB\r
+\r
+SUB inpur\r
+sj$ = ""\r
+WHILE sj$ = ""\r
+sj$ = INKEY$\r
+WEND\r
+END SUB\r
+\r
+SUB intro\r
+CLS\r
+wiew 2, 2, 10, 1, "win.i01"\r
+END SUB\r
+\r
+SUB level\r
+IF maailm > 10 THEN\r
+CLS\r
+PRINT "Mission complete!"\r
+PRINT "Game over"\r
+END\r
+END IF\r
+\r
+FOR a = 1 TO 10\r
+text5(a + 1) = maa(a, maailm)\r
+NEXT a\r
+\r
+FOR a = 1 TO 10\r
+FOR b = 1 TO 15\r
+IF ruum(b, a - 2) = "2" THEN MID$(maa(a, maailm1), b) = " "\r
+NEXT b\r
+NEXT a\r
+maailm1 = maailm\r
+\r
+FOR a = -3 TO 20\r
+FOR b = -3 TO 20\r
+ruum(a, b) = ""\r
+ruum1(a, b) = ""\r
+NEXT b\r
+NEXT a\r
+\r
+FOR a = 1 TO 10\r
+kollb(a) = 1000\r
+kolled(a) = 1\r
+kollal(a) = 0\r
+NEXT a\r
+\r
+CLS\r
+PAINT (1, 1), maa1(maailm)\r
+GET (1, 2)-(20, 21), tuhi\r
+FOR a = 2 TO 10\r
+FOR b = 1 TO 15\r
+c$ = RIGHT$(LEFT$(text5(a), b), 1)\r
+IF c$ = "-" THEN PUT ((b - 1) * 20, (a - 2) * 20), pilv, OR\r
+IF c$ = "." THEN PUT ((b - 1) * 20, (a - 2) * 20), poosas, OR\r
+IF c$ = "+" THEN PUT ((b - 1) * 20, (a - 2) * 20), puu, OR\r
+IF c$ = "$" THEN PUT ((b - 1) * 20, (a - 2) * 20), munt, OR: ruum(b, a - 2) = "1"\r
+IF c$ = "m" THEN PUT ((b - 1) * 20, (a - 2) * 20), kast, PSET: ruum(b, a - 2) = "m"\r
+IF c$ = "o" THEN PUT ((b - 1) * 20, (a - 2) * 20), tellis, PSET: ruum(b, a - 2) = "m": ruum1(b, a - 2) = "o"\r
+IF c$ = " " THEN ruum(b, a) = " "\r
+\r
+IF c$ = "1" THEN kolla(1) = (b - 1) * 20: kollb(1) = (a - 2) * 20: GET (kolla(1), kollb(1))-(kolla(1) + 20, kollb(1) + 20), koll(202, 1)\r
+IF c$ = "2" THEN kolla(2) = (b - 1) * 20: kollb(2) = (a - 2) * 20: GET (kolla(2), kollb(2))-(kolla(2) + 20, kollb(2) + 20), koll(202, 2)\r
+IF c$ = "3" THEN kolla(3) = (b - 1) * 20: kollb(3) = (a - 2) * 20: GET (kolla(3), kollb(3))-(kolla(3) + 20, kollb(3) + 20), koll(202, 3)\r
+IF c$ = "4" THEN kolla(4) = (b - 1) * 20: kollb(4) = (a - 2) * 20: GET (kolla(4), kollb(4))-(kolla(4) + 20, kollb(4) + 20), koll(202, 4)\r
+IF c$ = "5" THEN kolla(5) = (b - 1) * 20: kollb(5) = (a - 2) * 20: GET (kolla(5), kollb(5))-(kolla(5) + 20, kollb(5) + 20), koll(202, 5)\r
+IF c$ = "6" THEN kolla(6) = (b - 1) * 20: kollb(6) = (a - 2) * 20: GET (kolla(6), kollb(6))-(kolla(6) + 20, kollb(6) + 20), koll(202, 6)\r
+IF c$ = "7" THEN kolla(7) = (b - 1) * 20: kollb(7) = (a - 2) * 20: GET (kolla(7), kollb(7))-(kolla(7) + 20, kollb(7) + 20), koll(202, 7)\r
+IF c$ = "8" THEN kolla(8) = (b - 1) * 20: kollb(8) = (a - 2) * 20: GET (kolla(8), kollb(8))-(kolla(8) + 20, kollb(8) + 20), koll(202, 8)\r
+IF c$ = "9" THEN kolla(9) = (b - 1) * 20: kollb(9) = (a - 2) * 20: GET (kolla(9), kollb(9))-(kolla(9) + 20, kollb(9) + 20), koll(202, 9)\r
+IF c$ = "0" THEN kolla(10) = (b - 1) * 20: kollb(10) = (a - 2) * 20: GET (kolla(10), kollb(10))-(kolla(10) + 20, kollb(10) + 20), koll(202, 10)\r
+NEXT b\r
+NEXT a\r
+nait 0\r
+END SUB\r
+\r
+SUB level1\r
+maa1(1) = 1\r
+maa(1, 1) = "m              "\r
+maa(2, 1) = "m  -      -    "\r
+maa(3, 1) = "m              "\r
+maa(4, 1) = "m     $ $ $ $  "\r
+maa(5, 1) = "m    $ $ $ $   "\r
+maa(6, 1) = "m +     momom  "\r
+maa(7, 1) = "m              "\r
+maa(8, 1) = "m    .   .     "\r
+maa(9, 1) = "mmmmmmmmmmmmmmm"\r
+\r
+maa1(2) = 1\r
+maa(1, 2) = " $2-           "\r
+maa(2, 2) = " o$            "\r
+maa(3, 2) = "  o$     -     "\r
+maa(4, 2) = "   o$        3 "\r
+maa(5, 2) = "    o  o1      "\r
+maa(6, 2) = " +         mmom"\r
+maa(7, 2) = "     omom  m   "\r
+maa(8, 2) = "    $ $ $ $ m  "\r
+maa(9, 2) = "mmmm         mm"\r
+\r
+maa1(3) = 1\r
+maa(1, 3) = "          mmmmm"\r
+maa(2, 3) = "-    $ $  mmmmm"\r
+maa(3, 3) = "    $ $ $ mmmmm"\r
+maa(4, 3) = "     $ $  mmmmm"\r
+maa(5, 3) = " .        mmmmm"\r
+maa(6, 3) = "mmmm  1    mmmm"\r
+maa(7, 3) = "     mm       m"\r
+maa(8, 3) = "          mmm  "\r
+maa(9, 3) = "mmm       mmmmm"\r
+\r
+maa1(4) = 0\r
+maa(1, 4) = "mmmmmmmmmmmmmmm"\r
+maa(2, 4) = "m$    $ $ $ $  "\r
+maa(3, 4) = "mm  $m $4$ $ $ "\r
+maa(4, 4) = "m$m  mmmmmommmm"\r
+maa(5, 4) = "m$ 3      2   m"\r
+maa(6, 4) = "m1 ooooooomo  m"\r
+maa(7, 4) = "mooo$$$$$$$m  m"\r
+maa(8, 4) = "              m"\r
+maa(9, 4) = "mmmmmmmmmmmmmmm"\r
+\r
+maa1(5) = 0\r
+maa(1, 5) = "mmmmmmmmmmmmmmm"\r
+maa(2, 5) = "   m           "\r
+maa(3, 5) = "m  m  1 3  mmmm"\r
+maa(4, 5) = "m  m  mmm  o  m"\r
+maa(5, 5) = "m  m4567892o  m"\r
+maa(6, 5) = "m  mooooommo  m"\r
+maa(7, 5) = "m            mm"\r
+maa(8, 5) = "m           mmm"\r
+maa(9, 5) = "mmmm  mmm  mmmm"\r
+\r
+maa1(6) = 1\r
+maa(1, 6) = "m              "\r
+maa(2, 6) = " -     $ -     "\r
+maa(3, 6) = "m   $     $    "\r
+maa(4, 6) = "m    o   o  $  "\r
+maa(5, 6) = "m  o       o   "\r
+maa(6, 6) = "m          +   "\r
+maa(7, 6) = "m              "\r
+maa(8, 6) = "mm 1 m 2  m    "\r
+maa(9, 6) = "mmmmmmmmmmmmmmm"\r
+\r
+maa1(7) = 1\r