From f090e4cc67a916d22f95fd4da5760b9bd9425097 Mon Sep 17 00:00:00 2001 From: acn Date: Wed, 1 Jul 2020 16:22:16 +0200 Subject: [PATCH] HDimage: added script to create HDimage, added new games Note: LadderTP uses wrong DAT file at the moment! --- HDimage/VT100games-HD.img | Bin 460800 -> 550912 bytes HDimage/makeimage.sh | 76 +++++++ HDimage/u0/2048.COM | Bin 2072 -> 2076 bytes HDimage/u0/2048.DOC | 51 +++++ HDimage/u0/2048.TXT | 31 --- HDimage/u0/BACKGMMN.DOC | 73 +++++++ HDimage/u0/BACKGMMN.TXT | 64 ------ HDimage/u0/{BLOCKS.TXT => BLOCKS.DOC} | 45 +++-- HDimage/u0/BS.DOC | 74 +++++++ HDimage/u0/BS.TXT | 69 ------- HDimage/u0/{CATCHUM.TXT => CATCHUM.DOC} | 19 +- HDimage/u0/CHASE.COM | Bin 0 -> 11135 bytes HDimage/u0/CHASE.DOC | 50 +++++ HDimage/u0/CPMTRIS.DOC | 51 +++++ HDimage/u0/CPMTRIS.TXT | 41 ---- HDimage/u0/FTM.COM | Bin 0 -> 10496 bytes HDimage/u0/FTM.DOC | 86 ++++++++ HDimage/u0/{LADDER.TXT => LADDER.DOC} | 16 +- HDimage/u0/MAZEZAM.COM | Bin 0 -> 13656 bytes HDimage/u0/MAZEZAM.DOC | 97 +++++++++ HDimage/u0/PAC.COM | Bin 0 -> 15130 bytes HDimage/u0/PAC.DOC | 39 ++++ HDimage/u0/QUATRIS.DOC | 11 + HDimage/u0/QUATRIS.TXT | 79 -------- HDimage/u0/README.TXT | 24 --- HDimage/u0/ROBOTS.DOC | 58 ++++++ HDimage/u0/ROBOTS.TXT | 67 ------- HDimage/u0/ROGUE.DOC | 183 ++--------------- HDimage/u0/SNAKE.COM | Bin 0 -> 11776 bytes HDimage/u0/SNAKE.DOC | 53 +++++ HDimage/u0/SOKOBAN.DOC | 63 ++++++ HDimage/u0/SOKOBAN.TXT | 56 ------ HDimage/u0/TLADDER.COM | Bin 0 -> 33792 bytes HDimage/u0/TLADDER.DAT | Bin 0 -> 512 bytes HDimage/u0/TLADDER.DOC | 117 +++++++++++ HDimage/u0/{WORM.TXT => WORM.DOC} | 26 +-- HDimage/u1/-read.me | 26 --- HDimage/u1/-readme.1st | 42 ---- HDimage/u1/{screen.001 => SCREEN.001} | 0 HDimage/u1/{screen.002 => SCREEN.002} | 0 HDimage/u1/{screen.003 => SCREEN.003} | 0 HDimage/u1/{screen.004 => SCREEN.004} | 0 HDimage/u1/{screen.005 => SCREEN.005} | 0 HDimage/u1/{screen.006 => SCREEN.006} | 0 HDimage/u1/{screen.007 => SCREEN.007} | 0 HDimage/u1/{screen.008 => SCREEN.008} | 0 HDimage/u1/{screen.009 => SCREEN.009} | 0 HDimage/u1/{screen.010 => SCREEN.010} | 0 HDimage/u1/{screen.011 => SCREEN.011} | 0 HDimage/u1/{screen.012 => SCREEN.012} | 0 HDimage/u1/{screen.013 => SCREEN.013} | 0 HDimage/u1/{screen.014 => SCREEN.014} | 0 HDimage/u1/{screen.015 => SCREEN.015} | 0 HDimage/u1/{screen.016 => SCREEN.016} | 0 HDimage/u1/{screen.017 => SCREEN.017} | 0 HDimage/u1/{screen.018 => SCREEN.018} | 0 HDimage/u1/{screen.019 => SCREEN.019} | 0 HDimage/u1/{screen.020 => SCREEN.020} | 0 HDimage/u1/{screen.021 => SCREEN.021} | 0 HDimage/u1/{screen.022 => SCREEN.022} | 0 HDimage/u1/{screen.023 => SCREEN.023} | 0 HDimage/u1/{screen.024 => SCREEN.024} | 0 HDimage/u1/{screen.025 => SCREEN.025} | 0 HDimage/u1/{screen.026 => SCREEN.026} | 0 HDimage/u1/{screen.027 => SCREEN.027} | 0 HDimage/u1/{screen.028 => SCREEN.028} | 0 HDimage/u1/{screen.029 => SCREEN.029} | 0 HDimage/u1/{screen.030 => SCREEN.030} | 0 HDimage/u1/{screen.031 => SCREEN.031} | 0 HDimage/u1/{screen.032 => SCREEN.032} | 0 HDimage/u1/{screen.033 => SCREEN.033} | 0 HDimage/u1/{screen.034 => SCREEN.034} | 0 HDimage/u1/{screen.035 => SCREEN.035} | 0 HDimage/u1/{screen.036 => SCREEN.036} | 0 HDimage/u1/{screen.037 => SCREEN.037} | 0 HDimage/u1/{screen.038 => SCREEN.038} | 0 HDimage/u1/{screen.039 => SCREEN.039} | 0 HDimage/u1/{screen.040 => SCREEN.040} | 0 HDimage/u1/{screen.041 => SCREEN.041} | 0 HDimage/u1/{screen.042 => SCREEN.042} | 0 HDimage/u1/{screen.043 => SCREEN.043} | 0 HDimage/u1/{screen.044 => SCREEN.044} | 0 HDimage/u1/{screen.045 => SCREEN.045} | 0 HDimage/u1/{screen.046 => SCREEN.046} | 0 HDimage/u1/{screen.047 => SCREEN.047} | 0 HDimage/u1/{screen.048 => SCREEN.048} | 0 HDimage/u1/{screen.049 => SCREEN.049} | 0 HDimage/u1/{screen.050 => SCREEN.050} | 0 HDimage/u1/{screen.051 => SCREEN.051} | 0 HDimage/u1/{screen.052 => SCREEN.052} | 0 HDimage/u1/{screen.053 => SCREEN.053} | 0 HDimage/u1/{screen.054 => SCREEN.054} | 0 HDimage/u1/{screen.055 => SCREEN.055} | 0 HDimage/u1/{screen.056 => SCREEN.056} | 0 HDimage/u1/{screen.057 => SCREEN.057} | 0 HDimage/u1/{screen.058 => SCREEN.058} | 0 HDimage/u1/{screen.059 => SCREEN.059} | 0 HDimage/u1/{screen.060 => SCREEN.060} | 0 HDimage/u1/{screen.061 => SCREEN.061} | 0 HDimage/u1/{wanderer.com => WANDERER.COM} | Bin HDimage/u1/{wanderer.doc => WANDERER.DOC} | 0 HDimage/u1/credits | 91 --------- HDimage/u1/qterm.pat | 234 ---------------------- 103 files changed, 971 insertions(+), 1041 deletions(-) create mode 100755 HDimage/makeimage.sh create mode 100644 HDimage/u0/2048.DOC delete mode 100644 HDimage/u0/2048.TXT create mode 100644 HDimage/u0/BACKGMMN.DOC delete mode 100644 HDimage/u0/BACKGMMN.TXT rename HDimage/u0/{BLOCKS.TXT => BLOCKS.DOC} (64%) create mode 100644 HDimage/u0/BS.DOC delete mode 100644 HDimage/u0/BS.TXT rename HDimage/u0/{CATCHUM.TXT => CATCHUM.DOC} (77%) create mode 100644 HDimage/u0/CHASE.COM create mode 100644 HDimage/u0/CHASE.DOC create mode 100644 HDimage/u0/CPMTRIS.DOC delete mode 100644 HDimage/u0/CPMTRIS.TXT create mode 100644 HDimage/u0/FTM.COM create mode 100644 HDimage/u0/FTM.DOC rename HDimage/u0/{LADDER.TXT => LADDER.DOC} (62%) create mode 100644 HDimage/u0/MAZEZAM.COM create mode 100644 HDimage/u0/MAZEZAM.DOC create mode 100644 HDimage/u0/PAC.COM create mode 100644 HDimage/u0/PAC.DOC create mode 100644 HDimage/u0/QUATRIS.DOC delete mode 100644 HDimage/u0/QUATRIS.TXT delete mode 100644 HDimage/u0/README.TXT create mode 100644 HDimage/u0/ROBOTS.DOC delete mode 100644 HDimage/u0/ROBOTS.TXT create mode 100644 HDimage/u0/SNAKE.COM create mode 100644 HDimage/u0/SNAKE.DOC create mode 100644 HDimage/u0/SOKOBAN.DOC delete mode 100644 HDimage/u0/SOKOBAN.TXT create mode 100644 HDimage/u0/TLADDER.COM create mode 100644 HDimage/u0/TLADDER.DAT create mode 100644 HDimage/u0/TLADDER.DOC rename HDimage/u0/{WORM.TXT => WORM.DOC} (56%) delete mode 100644 HDimage/u1/-read.me delete mode 100644 HDimage/u1/-readme.1st rename HDimage/u1/{screen.001 => SCREEN.001} (100%) rename HDimage/u1/{screen.002 => SCREEN.002} (100%) rename HDimage/u1/{screen.003 => SCREEN.003} (100%) rename HDimage/u1/{screen.004 => SCREEN.004} (100%) rename HDimage/u1/{screen.005 => SCREEN.005} (100%) rename HDimage/u1/{screen.006 => SCREEN.006} (100%) rename HDimage/u1/{screen.007 => SCREEN.007} (100%) rename HDimage/u1/{screen.008 => SCREEN.008} (100%) rename HDimage/u1/{screen.009 => SCREEN.009} (100%) rename HDimage/u1/{screen.010 => SCREEN.010} (100%) rename HDimage/u1/{screen.011 => SCREEN.011} (100%) rename HDimage/u1/{screen.012 => SCREEN.012} (100%) rename HDimage/u1/{screen.013 => SCREEN.013} (100%) rename HDimage/u1/{screen.014 => SCREEN.014} (100%) rename HDimage/u1/{screen.015 => SCREEN.015} (100%) rename HDimage/u1/{screen.016 => SCREEN.016} (100%) rename HDimage/u1/{screen.017 => SCREEN.017} (100%) rename HDimage/u1/{screen.018 => SCREEN.018} (100%) rename HDimage/u1/{screen.019 => SCREEN.019} (100%) rename HDimage/u1/{screen.020 => SCREEN.020} (100%) rename HDimage/u1/{screen.021 => SCREEN.021} (100%) rename HDimage/u1/{screen.022 => SCREEN.022} (100%) rename HDimage/u1/{screen.023 => SCREEN.023} (100%) rename HDimage/u1/{screen.024 => SCREEN.024} (100%) rename HDimage/u1/{screen.025 => SCREEN.025} (100%) rename HDimage/u1/{screen.026 => SCREEN.026} (100%) rename HDimage/u1/{screen.027 => SCREEN.027} (100%) rename HDimage/u1/{screen.028 => SCREEN.028} (100%) rename HDimage/u1/{screen.029 => SCREEN.029} (100%) rename HDimage/u1/{screen.030 => SCREEN.030} (100%) rename HDimage/u1/{screen.031 => SCREEN.031} (100%) rename HDimage/u1/{screen.032 => SCREEN.032} (100%) rename HDimage/u1/{screen.033 => SCREEN.033} (100%) rename HDimage/u1/{screen.034 => SCREEN.034} (100%) rename HDimage/u1/{screen.035 => SCREEN.035} (100%) rename HDimage/u1/{screen.036 => SCREEN.036} (100%) rename HDimage/u1/{screen.037 => SCREEN.037} (100%) rename HDimage/u1/{screen.038 => SCREEN.038} (100%) rename HDimage/u1/{screen.039 => SCREEN.039} (100%) rename HDimage/u1/{screen.040 => SCREEN.040} (100%) rename HDimage/u1/{screen.041 => SCREEN.041} (100%) rename HDimage/u1/{screen.042 => SCREEN.042} (100%) rename HDimage/u1/{screen.043 => SCREEN.043} (100%) rename HDimage/u1/{screen.044 => SCREEN.044} (100%) rename HDimage/u1/{screen.045 => SCREEN.045} (100%) rename HDimage/u1/{screen.046 => SCREEN.046} (100%) rename HDimage/u1/{screen.047 => SCREEN.047} (100%) rename HDimage/u1/{screen.048 => SCREEN.048} (100%) rename HDimage/u1/{screen.049 => SCREEN.049} (100%) rename HDimage/u1/{screen.050 => SCREEN.050} (100%) rename HDimage/u1/{screen.051 => SCREEN.051} (100%) rename HDimage/u1/{screen.052 => SCREEN.052} (100%) rename HDimage/u1/{screen.053 => SCREEN.053} (100%) rename HDimage/u1/{screen.054 => SCREEN.054} (100%) rename HDimage/u1/{screen.055 => SCREEN.055} (100%) rename HDimage/u1/{screen.056 => SCREEN.056} (100%) rename HDimage/u1/{screen.057 => SCREEN.057} (100%) rename HDimage/u1/{screen.058 => SCREEN.058} (100%) rename HDimage/u1/{screen.059 => SCREEN.059} (100%) rename HDimage/u1/{screen.060 => SCREEN.060} (100%) rename HDimage/u1/{screen.061 => SCREEN.061} (100%) rename HDimage/u1/{wanderer.com => WANDERER.COM} (100%) rename HDimage/u1/{wanderer.doc => WANDERER.DOC} (100%) delete mode 100644 HDimage/u1/credits delete mode 100644 HDimage/u1/qterm.pat diff --git a/HDimage/VT100games-HD.img b/HDimage/VT100games-HD.img index 76b0b9042b7409305049540949e85997742f5a34..4da7cf53cf8635121be8716766fe34be2ebff4f5 100644 GIT binary patch delta 83819 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 E155ycW&i*H diff --git a/HDimage/makeimage.sh b/HDimage/makeimage.sh new file mode 100755 index 0000000..b5b32db --- /dev/null +++ b/HDimage/makeimage.sh @@ -0,0 +1,76 @@ +#!/bin/bash + +imagefile=./VT100games-HD.img + +filelist=" + 2048/2048.COM + Backgammon/backgmmn.com + Battleships/bs.com + Blocks/BLOCKS.COM + CatChum/CATCHUM.COM + CatChum/CATCHUM.DAT + cpmtris/cpmtris.com + FindThatMine/ftm.com + Ladder/LADDER.COM + Ladder/LADDER.DAT + MazezaM/mazezam.com + Pac/pac.com + Quatris/QUATRIS.COM + Quatris/QUATRIS.SCO + RobotChase/chase.com + Robots/ROBOTS.COM + Rogue/rogue.com + Snake/SNAKE.COM + Sokoban/sokoban.com + Sokoban/soklevls.dat + Worm/worm.com +" + +dirlist=" + 2048 Backgammon Battleships Blocks CatChum cpmtris FindThatMine + Ladder LadderTP MazezaM Pac Quatris RobotChase Robots + Rogue Snake Sokoban Worm +" + +wanderer=" + screen.* + wanderer.com + wanderer.doc +" + +[ ! -d u0 ] && mkdir u0 +[ ! -d u1 ] && mkdir u1 + +rm -f u0/* u1/* + +for i in ${filelist}; do + target=`basename $i` + cp -v ../$i u0/${target^^} +done +for i in ${wanderer}; do cp -v ../Wanderer/$i u1; done +cp -v ../LadderTP/LADDER.COM u0/TLADDER.COM +cp -v ../LadderTP/LADDER.DAT u0/TLADDER.DAT +for i in u1/*; do + target=`basename $i` + mv $i u1/${target^^} +done + +for i in ${dirlist}; do + pandoc -f markdown -t plain -s ../$i/README.md -o u0/${i^^}.DOC +done + +cd u0 +mv BACKGAMMON.DOC BACKGMMN.DOC +mv BATTLESHIPS.DOC BS.DOC +mv ROBOTCHASE.DOC CHASE.DOC +mv FINDTHATMINE.DOC FTM.DOC +mv LADDERTP.DOC TLADDER.DOC +cd .. + +mkfs.cpm -fz80pack-hd $imagefile +cpmcp -f z80pack-hd $imagefile u0/* 0: +cpmcp -f z80pack-hd $imagefile u1/* 1: + +echo "" +echo "Fertig!" + diff --git a/HDimage/u0/2048.COM b/HDimage/u0/2048.COM index e287e342bdf25b7e337eaf1798daba58d295b593..589dba7efca8593511d3fec6c84cdcb0f286d62d 100644 GIT binary patch delta 1017 zcmZ8fT}TvB6rP=*bG*8aGc9gyin*?~p=QhN4{kCASq~Kj5r$drTMrRJ4Dkef)MnY6h*HlxHzk$?&_|85EvRgxGxd*5?gm?c2m1t=AQ3-=jWce-=H?EMY2&k z2>kO3^!gH&*ot6Zl=3?%+h-M{fhxp+xGzkB*bSh^`XfUg(m&l%vD-gl9`hXS<-R~M za?Gu!A8}91@X%5MS}*~zTzMiThO}RHM$8F`*WxH=>`lpq?{>qn-Eg)DSt+r2tvV#O zEag0t!5OHl{|8b#h)lt@vYkj8(JU4BUm&EAJ0Rr~c^)_1ByPAF1Cpf+LgB{3_zkH# zq-{OQ36p92B_!?la8BjZnBC%G*{M4sR`wFoN(o7C*l}qs8S-ggtVSdt$M~3OiBD|Z zx|X-UOM85yJ`X`2>E%!Vs$8mJ9y3g|Sj1kfp9Ge8r-Qb1>bWq_uDEdtE|TLQWW zY#Hbhur$zRU`e3q4tPkDpnYI-yx1(zIbicZXMrsMo#)&FSm}+ZUkH|z1Oi>5cBYcY zVX6{VPWr;MoG>q$5yI3Ja`@?r>WoW)cY*CuA1>?d-ut5btNF~}1e#aMGp4tblJnzkMN@*ylVEKs$pHkffB&V%hf&+YgtB6NbG0LyYyKMtL!l}GZF{4VQM=|d!ZEYu~^u5_T*{cyT zP_F&B-eC#92yXw;L5NJ7H`3oNh&F)XeLgF zfqx!@9`tyLr3%(DIk#=a>QrMPDv}taD#KJFRtWT4iD*((6Vu(kQh(CeFYX)QK7TRt zom)+hxThHtDG<;CCiG`3Cg-J~_Qy&~Sz+>-G{PBcU3THiQaD-)XN!;lF?p>$hQwg7aVa|>WPYw>C!fF8g9V(=_0BX`2I zj4(p(g()G-LuQ09^$>=61Iemw29W4JkKnddn zR*ju%ZA2njZRI%B^YzV_ih89uzb@~#3HS&Hb3W0Ct5u?C+)$5nPVL>1xtuu_mHZXj zk8|Co@ZV~1SJMWlSb-Y<^#vmlIyr$RPmxdLx1N{{jz3AXfkY diff --git a/HDimage/u0/2048.DOC b/HDimage/u0/2048.DOC new file mode 100644 index 0000000..9cd36b9 --- /dev/null +++ b/HDimage/u0/2048.DOC @@ -0,0 +1,51 @@ + + +2048 + + +Join the numbers and get to the 2048 tile. + +- Based on 2048 created by Gabriele Cirulli. +- Based on the console version for GNU/Linux by Maurits van der Schee +- Ported to Z80 and CP/M by Marco Maccaferri macca@maccasoft.com + +Original Repository: https://github.com/maccasoft/z80-apps + +In this version some minimal changes were applied: * On startup, +clearing the screen will be performed by the standard VT100 ^[2J. * The +"arrow symbols" below the playfield are symbolized by <>^v, as the +symbols used before actually are control characters that most VT100 +terminals do not display. * The newer version without the undocumented +opcode is used. + + +Commands + +Use the arrow keys to move the tiles. + +When two tiles with the same number touch, they merge into one. + +- w, s, a, d - Alternate keys (up, down, left, right) +- CTRL-E, CTRL-X, CTRL-S, CTRL-D - Wordstar-compatible control keys + + +Compile: + +If using TASM, the command is: TASM -80 -b 2048.ASM 2048.COM + +The "Micro Z80 Assembler" was used to assemble 2048.COM on Linux. It is +provided in the directory uz80as, just compile it using make. + +The command for assembling 2048 is: uz80as 2048.ASM 2048.COM. + +uz80as can be found here: https://github.com/jorgicor/uz80as The uz80as +directory here is taken from the RomWBW source tree. + + +License: + +From original repository: + +Unless otherwise specified all programs are distributed with the GNU +GPL-V3 license, images, design files and other artwork are distributed +under the Creative Commons Attribution-ShareAlike 3.0 license. diff --git a/HDimage/u0/2048.TXT b/HDimage/u0/2048.TXT deleted file mode 100644 index ba41a3f..0000000 --- a/HDimage/u0/2048.TXT +++ /dev/null @@ -1,31 +0,0 @@ -# 2048 - -Join the numbers and get to the 2048 tile. - -* Based on 2048 created by Gabriele Cirulli. -* Based on the console version for GNU/Linux by Maurits van der Schee -* Ported to Z80 and CP/M by Marco Maccaferri - -Original Repository: https://github.com/maccasoft/z80-apps - -## Commands - -Use the arrow keys to move the tiles. - -When two tiles with the same number touch, they merge into one. - -* w, s, a, d - Alternate keys (up, down, left, right) -* CTRL-E, CTRL-X, CTRL-S, CTRL-D - Wordstar-compatible control keys - -## Compile: - -TASM -80 -b 2048.ASM 2048.COM - -## License: - -From original repository: - -Unless otherwise specified all programs are distributed with the -GNU GPL-V3 license, images, design files and other artwork are -distributed under the Creative Commons Attribution-ShareAlike 3.0 license. - diff --git a/HDimage/u0/BACKGMMN.DOC b/HDimage/u0/BACKGMMN.DOC new file mode 100644 index 0000000..132fbe7 --- /dev/null +++ b/HDimage/u0/BACKGMMN.DOC @@ -0,0 +1,73 @@ + + +GAMMON IV (VT100 ANSI EDITION) + + +By: David C. Oshel 1219 Harding Ave. Ames, Iowa 50010 + +This is a patched version of "Gammon IV, Version 2.0, April 1, 1986", a +full-screen backgammon for CP/M. + +I patched the game to use VT100 compatible escape sequences (including +ANSI color). + +Therefore, I removed most of the "user patch area" and hardcoded the +VT100 sequences in the C code, replaced the asm code of gotoxy() with C +code and removed the Kaypro graphics routines (and the "G(raphics" +command) as it is not needed for my VT100 version. + +BACKGMMN.COM is the compiled and ready-to-run game. + +Have fun playing! + +Anna Christina Naß acn@acn.wtf + + +Compiling the game + +See Compiler/Compiling.md for information on compiling the game on CP/M. + + +From the original Version 2.0 READ.ME: + +Improvements for Version 2.0 include: + +a) Several bugs and poltergeists, especially in the Arrange command, + have been completely exorcised. No bugs have been found in the Play + command for months; but, as before, Gammon IV will not invariably + recognize a forced move, either in your play or in its own. Gammon + IV knows and obeys all other official rules of backgammon. + +b) There are no "hidden" commands anymore. All commands are now shown + in the command lines, including X(pert. + +c) Input error handling now documents the BAR, HOME and HELP commands, + so first-time players do not need to read anything else in order to + play the game successfully. The X(pert mode dispenses with these + messages, so X(pert actually does mean expert, now! + +d) The "break" command is Control-C again, instead of ESCAPE. It was + all too easy to hit ESC instead of 1 on the Kaypro keyboard, leading + to an inadvertently paused game. + +e) The sanction against cheating (your opponent became Torve) has been + removed. + +f) If the cube is doubled during the opening rolloff to see who goes + first, and the cube value reaches 8, additional pairs on the dice + have no further effect. The cube's opening value will not go + above 8. + +The computer's three styles of play have not been changed. Judging from +the feedback I've received, Gammon IV plays acceptably well at the +current levels. All information needed to re-compile the program is +included in the BACKGMMN.C file, including the details of C/80 3.1 +configuration. The compile and link steps are governed by BACKGMMN.SUB. + +This program is in the public domain, so distribute it freely. + +Enjoy! + + David C. Oshel + 1219 Harding Ave. + Ames, Iowa 50010 diff --git a/HDimage/u0/BACKGMMN.TXT b/HDimage/u0/BACKGMMN.TXT deleted file mode 100644 index 5bfd358..0000000 --- a/HDimage/u0/BACKGMMN.TXT +++ /dev/null @@ -1,64 +0,0 @@ -# Gammon IV (VT100 ANSI edition) - -This is a patched version of "Gammon IV, Version 2.0, April 1, 1986", a -full-screen backgammon for CP/M. - -The difference is, that this version outputs VT100 compatible Escape sequences -(including color) to make this game work on my RC2014 Z80 CP/M machine using -a VT100 compatible VGA terminal module. - -Therefore, I removed most of the "user patch area" and hardcoded the VT100 -sequences in the C code. I also removed the asm code of gotoxy() and replaced -it with C code - at least on my 8 MHz Z80 it runs fast enough. -Also, I removed the Kaypro graphics routines and the "G(raphics" command, as -it is not needed for my VT100 version. - -BACKGMMN.COM is the compiled and ready-to-run object file. - -Have fun playing! - -Anna Christina Naß - -## From the original Version 2.0 READ.ME: - -Improvements for Version 2.0 include: - -a) Several bugs and poltergeists, especially in the Arrange command, have -been completely exorcised. No bugs have been found in the Play command for -months; but, as before, Gammon IV will not invariably recognize a forced move, -either in your play or in its own. Gammon IV knows and obeys all other -official rules of backgammon. - -b) There are no "hidden" commands anymore. All commands are now shown in -the command lines, including X(pert. - -c) Input error handling now documents the BAR, HOME and HELP commands, so -first-time players do not need to read anything else in order to play the -game successfully. The X(pert mode dispenses with these messages, so X(pert -actually does mean expert, now! - -d) The "break" command is Control-C again, instead of ESCAPE. It was all -too easy to hit ESC instead of 1 on the Kaypro keyboard, leading to an -inadvertently paused game. - -e) The sanction against cheating (your opponent became Torve) has been -removed. - -f) If the cube is doubled during the opening rolloff to see who goes first, -and the cube value reaches 8, additional pairs on the dice have no further -effect. The cube's opening value will not go above 8. - -The computer's three styles of play have not been changed. Judging from the -feedback I've received, Gammon IV plays acceptably well at the current levels. -All information needed to re-compile the program is included in the -BACKGMMN.C file, including the details of C/80 3.1 configuration. -The compile and link steps are governed by BACKGMMN.SUB. - -This program is in the public domain, so distribute it freely. - -Enjoy! - - David C. Oshel - 1219 Harding Ave. - Ames, Iowa 50010 - diff --git a/HDimage/u0/BLOCKS.TXT b/HDimage/u0/BLOCKS.DOC similarity index 64% rename from HDimage/u0/BLOCKS.TXT rename to HDimage/u0/BLOCKS.DOC index 83d0d05..807b348 100644 --- a/HDimage/u0/BLOCKS.TXT +++ b/HDimage/u0/BLOCKS.DOC @@ -1,4 +1,7 @@ -# Blocks + + +BLOCKS + This is a clone (more or less) of SameGame, a tile-matching puzzle video game, originally released under the name Chain Shot! in 1985 by Kuniaki @@ -9,14 +12,15 @@ The goal of the game is to remove all the blocks of the board. Copyright (c) 1999-2018 Miguel García / FloppySoftware The game has been modified for VT100 compatibility (insted of VT52) and -got some color by me (Anna Christina Naß . +got some color by me (Anna Christina Naß acn@acn.wtf. -Original Repository: https://github.com/MiguelVis/RetroProjects -Website: http://www.floppysoftware.es/blocks.html?path=cpm_projects|blocks +Original Repository: https://github.com/MiguelVis/RetroProjects Website: +http://www.floppysoftware.es/blocks.html?path=cpm_projects|blocks The file BLOCKS.COM is the compiled game file. -## The Game + +The Game Move the cursor using the numpad keys: @@ -30,33 +34,34 @@ Then select a blocks using 7 and remove the blocks using 9. You can select just one block, or a group of blocks of the same type -If you are in the normal mode, you can place all the blocks against a side -(top, bottom, left or right). -Select the side using the E, S, D or X key. +If you are in the normal mode, you can place all the blocks against a +side (top, bottom, left or right). Select the side using the E, S, D or +X key. If you are in the automatic mode, the blocks rows will be placed on the -bottom side of the board, and the columns will be placed on the middle of -the board. +bottom side of the board, and the columns will be placed on the middle +of the board. -The special block **X**, multiplies that result by 10. +The special block X, multiplies that result by 10. -## Compile: -To compile, use MESCC, "Mike's Enhanced Small C Compiler". -See: http://www.floppysoftware.es/mescc.html?path=cpm_projects|mescc +Compile: -In the directory mescc, I provide the files neccessary to compile Blocks, -using: +To compile, use MESCC, "Mike's Enhanced Small C Compiler". See: +http://www.floppysoftware.es/mescc.html?path=cpm_projects|mescc + +In the directory mescc, I provide the files neccessary to compile +Blocks, using: CC BLOCKS CCOPT BLOCKS ZSM BLOCKS HEXTOCOM BLOCKS -Note that only the really neccessary files are provided - see the link above -for the full MESCC compiler and source code! +Note that only the really neccessary files are provided - see the link +above for the full MESCC compiler and source code! -## License: + +License: GPL Version 2, see copying.txt - valid for MESCC and Blocks. - diff --git a/HDimage/u0/BS.DOC b/HDimage/u0/BS.DOC new file mode 100644 index 0000000..cab9428 --- /dev/null +++ b/HDimage/u0/BS.DOC @@ -0,0 +1,74 @@ + + +BATTLESHIPS + + +CP/M port of the Unix game. + +Copyright: * bs.c - original author: Bruce Holloway * salvo option by: +Chuck A DeGaul * with improved user interface, autoconfiguration and +code cleanup * by Eric S. Raymond esr@snark.thyrsus.com * v1.2 with +color support and minor portability fixes, November 1990 * v2.0 +featuring strict ANSI/POSIX conformance, November 1993. * v2.1 for +Linux, October 1994. * Slipstreamed in fixes to make it gcc -Wall clean, +May '95. * fairly seriously hacked for Hitech C and CP/M, rjm 95/8/14 + +I found it as part of the ZCN repository: +https://github.com/jamesots/zcn + +The C source has been modified for VT100 compatibility and some minor +changes have been made by me (Anna Christina Naß acn@acn.wtf. + +bs.com is the compiled binary. + +See the *.txt files for more information. + + +Modes + +- -b selects a "blitz" variant +- -s selects a "salvo" variant +- -c permits ships to be placed adjacently + +The "blitz" variant allows a side to shoot for as long as it continues +to score hits. + +The "salvo" game allows a player one shot per turn for each of his/her +ships still afloat. This puts a premium scoring hits early and knocking +out some ships and also makes much harder the situation where you face a +superior force with only your PT-boat. + + +Keys + +To position your ships: move the cursor to a spot, then type the first +letter of a ship (using CAPITAL letters) type to select it, then type a +direction ([hjkl] or [4862]), indicating how the ship should be pointed. +You may also type a ship letter followed by +r' to position it randomly, or typeR' to place all remaining ships +randomly. + +Navigation and aiming keys: + + yz k u 7 8 9 + \|/ \|/ + h-+-l 4-+-6 + /|\ /|\ + b j n 1 2 3 + + Key Action Key Action + ------- -------------------------- ----------- -------------------------- + h / 4 move left y / z / 7 move up+left + l / 6 move right b / 1 move down+left + j / 2 move down u / 9 move up+right + k / 8 move up n / 3 move down+right + r place this ship randomly R place all ships randomly + ^L screen redraw Q quit game + + +Compiling + +HiTech C has been used to compile it, but it needs a lot of free memory +(TPA). + +For compiling, I used the command c bs.c in CP/M. diff --git a/HDimage/u0/BS.TXT b/HDimage/u0/BS.TXT deleted file mode 100644 index 27cf2a4..0000000 --- a/HDimage/u0/BS.TXT +++ /dev/null @@ -1,69 +0,0 @@ -# Battleships - -CP/M port of the Unix game. - -Copyright: - * bs.c - original author: Bruce Holloway - * salvo option by: Chuck A DeGaul - * with improved user interface, autoconfiguration and code cleanup - * by Eric S. Raymond - * v1.2 with color support and minor portability fixes, November 1990 - * v2.0 featuring strict ANSI/POSIX conformance, November 1993. - * v2.1 for Linux, October 1994. - * Slipstreamed in fixes to make it gcc -Wall clean, May '95. - * fairly seriously hacked for Hitech C and CP/M, rjm 95/8/14 - -I found it as part of the ZCN repository: https://github.com/jamesots/zcn - -The C source has been modified for VT100 compatibility and some minor -changes have been made by me (Anna Christina Naß . - -bs.com is the compiled binary. - -## Modes - -* -b selects a "blitz" variant -* -s selects a "salvo" variant -* -c permits ships to be placed adjacently - -The "blitz" variant allows a side to shoot for as long as -it continues to score hits. - -The "salvo" game allows a player one shot per turn for -each of his/her ships still afloat. This puts a premium -scoring hits early and knocking out some ships and also -makes much harder the situation where you face a superior -force with only your PT-boat. - -## Keys - -To position your ships: move the cursor to a spot, then type the first -letter of a ship (using CAPITAL letters) type to select it, then type a -direction ([hjkl] or [4862]), -indicating how the ship should be pointed. -You may also type a ship letter followed by r to position it randomly, -or type `R' to place all remaining ships randomly. - -Navigation and aiming keys: - - yz k u 7 8 9 - \|/ \|/ - h-+-l 4-+-6 - /|\ /|\ - b j n 1 2 3 - -| Key | Action | Key | Action | -| ----- | ------------------------ | --------- | ------------------------ | -| h / 4 | move left | y / z / 7 | move up+left | -| l / 6 | move right | b / 1 | move down+left | -| j / 2 | move down | u / 9 | move up+right | -| k / 8 | move up | n / 3 | move down+right | -| r | place this ship randomly | R | place all ships randomly | -| ^L | screen redraw | Q | quit game | - -## Compiling - -HiTech C has been used to compile it, but it needs a lot of free memory (TPA). - -For compiling, I used the command c bs.c in CP/M. - diff --git a/HDimage/u0/CATCHUM.TXT b/HDimage/u0/CATCHUM.DOC similarity index 77% rename from HDimage/u0/CATCHUM.TXT rename to HDimage/u0/CATCHUM.DOC index 758d49f..3daea5e 100644 --- a/HDimage/u0/CATCHUM.TXT +++ b/HDimage/u0/CATCHUM.DOC @@ -1,18 +1,21 @@ -# CatChum -CatChum was originally written for the CP/M operating system and the game -came bundled with Kaypro computers. It is copyrighted by: + +CATCHUM + + +CatChum was originally written for the CP/M operating system and the +game came bundled with Kaypro computers. It is copyrighted by: Yahoo Software 10970 Ashton Ave, Suite 312 Los Angeles, CA -For information on the game, see: -[Wikipedia](https://en.wikipedia.org/wiki/CatChum) +For information on the game, see: Wikipedia This version is adapted to VT100 ANSI escape sequences. -## Note + +Note It seems to me that CATCONF.COM uses some kind of "wrong" VT100 sequences, as my terminal does not like them - the output looks wrong. @@ -22,7 +25,8 @@ RC2014 VGA VT100 terminal. So don't change it using CATCONF.COM :) -## Usage + +Usage The gameplay is like Pac-Man :) @@ -30,4 +34,3 @@ Use the keys 8 (up), 4 (left), 6 (right) and 2 (down) to control your character (the C/c). Have fun! - diff --git a/HDimage/u0/CHASE.COM b/HDimage/u0/CHASE.COM new file mode 100644 index 0000000000000000000000000000000000000000..20c99e785b705bf7502d6f9c68d7f250dbe4f162 GIT binary patch literal 11135 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 literal 0 HcmV?d00001 diff --git a/HDimage/u0/MAZEZAM.DOC b/HDimage/u0/MAZEZAM.DOC new file mode 100644 index 0000000..48ae51f --- /dev/null +++ b/HDimage/u0/MAZEZAM.DOC @@ -0,0 +1,97 @@ + + +MAZEZAM + + +MazezaM is a puzzle game for CP/M. + +- Copyright (C) 2002 Malcolm Tyrrell tyrrelmr@cs.tcd.ie +- CP/M version (C) 2004-2008 Ventzislav Tzvetkov (drHirudo) (for VT52 + terminals) +- z88dk version by Stefano Bodrato (www.z88dk.org) +- VT100 adaption (C) 2020 Anna Christina Naß acn@acn.wtf + +Licensed under the GPL. + +You can find the VT52 version of this game, and also for other +platforms, here: http://hirudov.com/ + + +The game + +MazezaM (pronounced "may-zam") is a simple puzzle game. You enter the +mazezam on the left and you have to get to the exit on the right by +pushing rows of blocks left and right. + +In the game = represents a brick, # represents a block, P is the Player +and O is a door. Good Luck. + + +Keys + +I changed the keys to 8, 6, 4, 2 on the numpad, but W, A, S, D will also +work. Use R to restart a level (at the cost of one live). + + +About the game, by drHirudo + +To the best of my knowledge MazezaM's specific game logic is original. +Unfortunately, there are so many puzzles out there that it is impossible +for me to be sure. If you are aware of a prior instance of the idea, +please get in touch. If possible, include a link which I can add to my +web page. + +The idea for MazezaM came to me while recalling an Oric-1 type-in game +called "Fall Guy" (from the book "Sixty Programs for the Oric-1" by +Robert Erskine, Humphrey Walwyn, Paul Stanley and Michael Bews). The +game play is a reminiscent of the game Sokoban (Thinking Rabbit, Inc) +and also bears a resemblance to "sliding block" or "sliding piece" +puzzles where wooden shapes are moved around in order to get a (usually +larger) shape from one side of the puzzle to the other. The name +"MazezaM" was suggested by Robert Byrne. + + +Compiling + +MazezaM is written in C for the ZXCC compiler which can be found in +z88dk. + +Use this command line (tested in Linux) to compile: + + zcc +cpm -lndos -o MAZEZAM.COM mazezam.c -O3 + + +New Levels Wanted: + +If you like this game and are good at designing levels, I encourage you +to create levels and send them to any of the authors for include in +further versions. Credit of course will be given. + + +Other versions and games my drHirudo + +Original Sinclair and Java games - Copyright (C) 2002 Malcolm Tyrrell +http://www.cs.tcd.ie/Malcolm.Tyrrell/ + +Amiga Version Copyright (C) 2003-2004 Ventzislav Tzvetkov +http://hirudov.com/ + +Gameboy Version Copyright (C) 2003-2004 Ventzislav Tzvetkov +http://hirudov.com/ Developed using GBDK v2.1.0-1 and Wzonka-Lad +1.03.00. + +Oric Atmos Version Copyright (C) 2004 Ventzislav Tzvetkov +http://hirudov.com/ + +Apple II Version Copyright (C) 2004 Ventzislav Tzvetkov +http://hirudov.com/ + +Commodore 64 Version Copyright (C) 2004 Ventzislav Tzvetkov +http://hirudov.com/ + +SNES version Copyright (C) 2004-2006 Ventzislav Tzvetkov +http://hirudov.com/ + +CP/M version Copyright (C) 2004-2008 Ventzislav Tzvetkov +http://hirudov.com/ Compiled using Z88DK on AmigaOS 4. Tested under +DOSBox and MYZ80 emulator. diff --git a/HDimage/u0/PAC.COM b/HDimage/u0/PAC.COM new file mode 100644 index 0000000000000000000000000000000000000000..0c83858a5c6e12aa42c576e3ea167c5394f2957f GIT binary patch literal 15130 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 AwEzGB literal 0 HcmV?d00001 diff --git a/HDimage/u0/PAC.DOC b/HDimage/u0/PAC.DOC new file mode 100644 index 0000000..df5edc3 --- /dev/null +++ b/HDimage/u0/PAC.DOC @@ -0,0 +1,39 @@ + + +PAC + + +Copyright 2020 Andrew Pamment + +A CP/M Pac-Man clone + +The original files can be found here: +http://members.iinet.net.au/~apamment/CPM/ + +Only slight modifications have been made by Anna Christina Naß +acn@acn.wtf + +See LICENSE for license. + + +Keys + +Use the numpad to move the Pac, or use the keys W, A, S, D + + 8 + | + 4 - * - 6 + | + 2 Q - Quit + + +Compiling + +Robot Chase is written in C for the ZXCC compiler which can be found in +z88dk. + +Use this command line (tested in Linux) to compile: + + zcc +cpm -lm -lndos -O3 -o PAC.COM pac.c ansi.c + +Or just use the Makefile :) diff --git a/HDimage/u0/QUATRIS.DOC b/HDimage/u0/QUATRIS.DOC new file mode 100644 index 0000000..0db41d8 --- /dev/null +++ b/HDimage/u0/QUATRIS.DOC @@ -0,0 +1,11 @@ + + +QUATRIS + + +This is a Tetris clone which has been adapted to VT100 escape sequences +(via PDTINS.COM). + +The game is by: Steven B. Perkins 1227 Spring Ridge Dr. Sandy, UT 84094 + +See QUATRIS.TXT for more information. diff --git a/HDimage/u0/QUATRIS.TXT b/HDimage/u0/QUATRIS.TXT deleted file mode 100644 index 5b3fc42..0000000 --- a/HDimage/u0/QUATRIS.TXT +++ /dev/null @@ -1,79 +0,0 @@ - - Quatris 2.0 - The Games of Shapes - - - Quatris is a game of placing shapes strategically as they fall -into place. Each shape can be thought of as 4 small squares linked -together. Thus the name Quatris. These shapes are sometimes refered -to as tetrominoes. The game is similar to the commercial game Tetris. -This adaptation of the theme is for CP/M. It is written in Turbo -Pascal, and thus requires a Z80 or compatible CPU. The source code is -available for a modest fee, and can be ported to MS-DOS with little -trouble. - - The game controls are mostly numbers. The game screen lists the -controls, so play is simple. Strategy is complex however. The main -object is to completely fill whole rows with blocks. When this -happens, the row vanishes, and the end of the game is postponed. -Points are accumulated as each shape drops. You get more points for -placing the shape faster, so use the space bar to drop it into place -as soon as it is properly positioned. You get more points at harder -(lower) levels as the action speeds up. It may be strategic to begin -at a higher level, or to advance while playing. The level auto- -matically advances, if not high enough already, after a certain number -of rows have been filled. An option to preview the next shape is -available, but it does slightly lower your points. - - The .COM file is initially set up for a Kaypro/Televideo/ADM type -terminal. The public domain program PDTINS by Carson Wilson is -included to allow this to be changed if needed. My thanks to him for -this program. In the unlikely event that a compatible terminal is not -on the PDTINS menu, you only need to worry about clear screen and -cursor addressing. Look for 01A hex for clear screen, and =rc -for cursor addressing in the distributed .COM file. The crt init (and -exit) sequence can be used to turn the cursor off (and back on) if it -bothers you. With DDT, the strings would begin (length first) at 016B -hex (off) and 017B hex (on). Add your strings, with appropriate -lengths, to enable this feature. - - The game is configured to run best on a 4 MHz machine. This too -can be changed. To try a different value (lower values make the game -more challenging) include the value on the command line, example: - - A>QUATRIS 3MHZ - -To enter your system speed permanently as the default, requires DDT or -some other patch utility. The value is at location 0124 hex. - - A high scores file is maintained for the top ten scores. This -encourages competition and makes the game more enjoyable, even if you -only try to better your own high score. My high score is about 6500. -To see the high scores without playing just enter the command: - - A>QUATRIS SCORE - - The game can be exited early if desired. In case of supervisor -surveillance, or if you need to pause for some reason (ahem), there is -a key which clears the screen and leaves a bogus "A>" prompt. Hit -any key to resume where you left off, or hit ESC at the false prompt -to quietly exit to CP/M (your score is not recorded in this case). - - This software and documentation is copyright 1989 by Steven B. -Perkins. You are free to use, copy, and distribute it as long as it -is not for profit. Contact me if other arrangements are desired. - - I believe the CP/M world can use more support. There really are -a lot of us out here! Any comments about this game, or monetary -encouragement towards further efforts and upgrades can be sent to the -address below. I also frequent Z-Node 45: (713)937-8886 and you can -leave messages for me there. A donation of $10 or more makes you an -official supported user. If you send such a donation and a floppy -disk, you will receive the source code, the latest version, and another -game and utility to try. Have fun, and keep supporting CP/M and the Z- -system. - - - Address: Steven B. Perkins - 1227 Spring Ridge Dr. - Sandy, UT 84094 diff --git a/HDimage/u0/README.TXT b/HDimage/u0/README.TXT deleted file mode 100644 index c5c0682..0000000 --- a/HDimage/u0/README.TXT +++ /dev/null @@ -1,24 +0,0 @@ -CP/M VT100 games HD image for z80pack -------------------------------------- - -This HD image provides all VT100 CP/M games from my Git repository: -https://git.imzadi.de/acn/vt100-games - -Also, the Backgammon game from https://git.imzadi.de/acn/vt100-games -can be found here. - -Its purpose is to be a single hard disk image with all games at one -place :) - -To achieve this goal and not overwhelm the directory, only the compiled -or assembled .COM file of the games together with a documentation TXT -file (and neccessary data files) are placed here. -The source files, installation files and other documentation files -are not found here. - -These files can be found in the repositories mentioned above. - -Have fun! - -Anna Christina Naß - diff --git a/HDimage/u0/ROBOTS.DOC b/HDimage/u0/ROBOTS.DOC new file mode 100644 index 0000000..2907d5d --- /dev/null +++ b/HDimage/u0/ROBOTS.DOC @@ -0,0 +1,58 @@ + + +ROBOTS + + +Robots is a turn-based game for CP/M. + +It's based on ROBOTS, a BSD game (but no source code was taken from it). + +The objetive of the robots is only one: to kill you. + +The only thing you can do, is to try to escape from them. But use the +teletransportation with care: you have only a few teletransport tickets! + +The robots will die if they collide between them or crash against +something. + +That's your only opportunity to win the robots. + +Good luck! + +Copyright (c) 2015 Miguel García / FloppySoftware + +A 'clear screen' function (VT100) has been added by me (Anna Christina +Naß acn@acn.wtf. + +Original Repository: https://github.com/MiguelVis/RetroProjects Website: +http://www.floppysoftware.es/robots.html?path=cpm_projects|robots + +The file ROBOTS.COM is the compiled game file. + + +Commands + +Move the player .P. using the numpad numbers as shown on the screen. +Press T for teletransportation and Q for quit. + + +Compile: + +To compile, use MESCC, "Mike's Enhanced Small C Compiler". See: +http://www.floppysoftware.es/mescc.html?path=cpm_projects|mescc + +In the directory mescc, I provide the files neccessary to compile +Robots, using: + + CC ROBOTS + CCOPT ROBOTS + ZSM ROBOTS + HEXTOCOM ROBOTS + +Note that only the really neccessary files are provided - see the link +above for the full MESCC compiler and source code! + + +License: + +GPL Version 2, see copying.txt - valid for MESCC and Robots. diff --git a/HDimage/u0/ROBOTS.TXT b/HDimage/u0/ROBOTS.TXT deleted file mode 100644 index 91cc93e..0000000 --- a/HDimage/u0/ROBOTS.TXT +++ /dev/null @@ -1,67 +0,0 @@ -ROBOTS ------- - -A GAME FOR CP/M-80 & CP/M-86. - -v1.00 - 19 Mar 2015. - - R () : : () - R O B O T S \ [0_0] / - B x-+-:-+-x -R O B O T S |___| - T / \ - S \ / - -(c) 2015 Miguel Garcia / FloppySoftware - www.floppysoftware.es - cpm-connections.blogspot.com - floppysoftware@gmail.com - - -THE GAME --------- - -Robots is a turn-based game for CP/M-80 & CP/M-86. - -Based on ROBOTS, a BSD game (but no source code was taken from it). - -The objetive of the robots is only one: to kill you. - -The only thing you can do, is to try to escape from them. But use the -teletransportation with care: you have only a few teletransport tickets! - -The robots will die if they collide between them or crash against something. - -That's your only opportunity to win the robots. - -Good luck! - - -GAME FILES ----------- - -ROBOTS .COM -- Game for CP/M-80. -ROBOTS .CMD -- Game for CP/M-86. -ROBOTS .C -- Source code for MESCC & DR-C. -ROBOTS .TXT -- This help file. -COPYING .TXT -- GNU General Public License. - - -TECHNICAL NOTES ---------------- - -This program was developed using MESCC (Mike's Enhanced Small C Compiler - my -own version of Small C) for the CP/M-80 version, and Digital Research C for -the CP/M-86 version. - -See ROBOTS.C for more details. - - -COPYRIGHT AND LEGAL NOTES -------------------------- - -This program is copyright of FLOPPY SOFTWARE from VALENCIA, SPAIN, and is -distributed under the GNU GENERAL PUBLIC LICENSE. - -Read the COPYING.TXT text file for more details. - diff --git a/HDimage/u0/ROGUE.DOC b/HDimage/u0/ROGUE.DOC index 4d4484f..c6033f6 100644 --- a/HDimage/u0/ROGUE.DOC +++ b/HDimage/u0/ROGUE.DOC @@ -1,170 +1,13 @@ -Command letters: - -> go downstairs: must be on stairs '%' -< go upstairs: must have amulet of Funidoog ',' and be on stairs -. rest a while -i inventory: list all items being carried -e eat some food -s search for traps & secret doors -c call an item something -d drop an item -q quaff a potion -r read a scroll -z zap a wand -p point a wand in a particular direction -w weild a weapon -t throw a weapon in a particular direction (see weapons below) -W wear a suit of armour -Q quit the game -S save the game for later -P put on a ring -R remove a ring -^R reprint the last message -^L redraw the screen -h move one position left -j move down -k move up -l move right -y move up & left -u move up & right -b move down & left -n move down & right -H, J, K, L, Y, U, B, N run in the given direction till something is found - -certain commands can be done repeatedly, e.g. 10l will move 10 spaces right, -or 5s will search five times, the maximum repetition count is 255 (guess who's -using a byte counter!!) - command letters don't get echoed, as the effect they -have usually shows up in some other way. - -Things on screen: - - solid rock (empty space) -. room interior -- | room walls -+ door -# corridor -^ trap -% stairs -? scroll -! potion -/ wand -= ring -) weapon -] armour -* gold -: food -, the Amulet of Funidoog -A-Z monsters - -A giant ant -B bat -C centaur -D dragon -E floating eye -F violet fungus -G giant -H hobgoblin -I invisible stalker (if you can see them) -J jackal -K kobold -L leprachaun -M mimic (when it's not pretending to be something else) -N nymph -O orc -P purple worm -Q quasit -R rust monster -S skeleton -T troll -U umber hulk -V vampire -W wraith -X xorn -Y yeti -Z zombie - -Anything that can be picked up (scrolls et. seq.) gets picked up when moved -on top of, to fight a monster, either point a wand at it, throw a weapon -at it, or to fight it hand to hand, attempt to move on top of it. - -Weapons fall into four classes: -1. two handed sword, long sword, mace: these are best weilded when going - into hand to hand combat; -2. short bow, crossbow, sling: these are best weilded when class 3 - weapons are to be thrown; -3. arrow, crossbow bolt, rock: these are best thrown at monsters some - distance away, best results will be obtained if the approprate - class 2 weapon is weilded when throwing class 3 weapons; -4. spear, dagger, dart: these are best thrown as class 3, however no - special weapon need be weilded to throw these. - -When throwing a weapon or pointing a wand, the direction should be specified -as for moving, so to point a wand to the left type in 'ph', and give the -letter from the inventory when asked what to zap, similarly to throw something -down, type 'tj', and the inventory letter, etc. etc. etc. - -The general idea of the game is to find the Amulet of Funidoog, which will be -found somewhere below level 20, and escape from the dungeon with it: once it -has been picked up, the '<' command to go upstairs works. - -This game has it's roots in AD&D (The T.S.R. fantasy role playing game), but -intimate knowledge of AD&D is not necessary to play Rogue (though it can be -a help). Rogue was originally written in C, and released on Berkley UNIX -systems - the only major part missing is the wizards password (which is a -massive cheat anyway). By and large, damages that monsters do, armour classes -of monsters, probabilities of hitting in combat, and other such variables are -lifted directly from AD&D, as they were for the Berkley version. - -A few (hopefully helpful) comments: use the rest command copiously - it -allows you to regain hit points lost in combat; traps generally only show -up when you stand on them, unless you are searching - on the subject of -searching, don't get too depressed if you seem to have explored everywhere -and you can't find the stairs: search along the walls of the rooms you have -found ('s' command, do it typically 10 times for each '-' or '|' in the -wall). Note also that some of the monsters get very vicious: dragons can -breath on you, rust monsters weaken metal armour, leprachauns will steal your -gold, invisible stalkers are just that (invisible), mimics tend to look like -other things: scrolls, armour, stairs - anything that isn't a monster, etc, -etc, etc; there are cursed items (rings, armour, weapons) which can be quite -hard to get rid of - unless you have a scroll of remove curse... Regarding -the various weapons: Two handed swords are the best weapons in class 1 The -crossbow is the best in classes 2/3, and the spear is the best in class 4. -Regarding armour class: the lower it is, the better for you. Regarding your -strength / hit points / experience / gold: the higher the better (There must -be some reason why armour class works backwards...). Logically (?) the -monsters get harder to kill the deeper you get into the dungeon - Dragons & -Purple worms (probably the meanest pair in the game) are often best left -alone if you find them asleep, because it isn't worth taking a chance on -getting bumped off by one of them: by the time you meet those two monsters -you'll be pretty close to the amulet, and once you have it, the best -thing to do is to high tail it back up through the dungeon to about level 17. -On the other hand DON'T rush down: explore each level to find all the magic -and monsters you can: killing monsters is how you get experience, and the -more experience you have, the better you'll do in a fight; in addition a good -arsenal of magic items can make the difference between winning & losing a -fight. On the lower levels rooms become dark: this limits your area of vision -as shown by the area of '.'s around you, however there are wands & scrolls -which can alleviate this problem (to a point at least). I'll leave it for you -to find out what all the scrolls, rings, etc do, to begin with you'll be using -all the scrolls of identify as soon as they get found. Note that potion -colours (and wand metals and ring gems) change from game to game, so don't -assume that just because a potion of healing is orange in this game, it will -be orange in the next (that would be too easy!!). - -Patching for different terminals. - -As delivered, this runs on Televideo compatible terminals (including Liberty -Freedom, ADM31, Wyse 50, Wyse 60, and Commodore 128 in CP/M mode). Two special -abilities must be present, clear screen and move cursor; and clear to end of -line will be used if it exists, however ROGUE knows how to get by without it. -The patch area is right at the start of the program. Since most of the -patchable stuff I write is designed to use the same patch overlay there is a -lot of patching possible that is not applicable to ROGUE. However, once you -have the 1/2 K patch overlay it becomes trivial to patch new programs to work -for you. Included is a file QTERM.PAT which goes into detail on how to do the -patching. It should be noted that ROGUE.COM is not the same size as QTERM.COM: -the value for the SAVE command will be: - -SAVE 89 ROGUENEW.COM - -In all other respects, QTERM.PAT explains how to patch ROGUE for your system. - \ No newline at end of file + + +ROGUE + + +ROGUE was written Nov 1984 thru Feb 1985 by David Goodenough. + +I made the changes for VT100 escape sequences according to QTERM.PAT. + +The original files can be found in the file rogue17cpm.zip. + +ROGUE.COM is the executable file and ROGUE.DOC contains the help for all +commands. diff --git a/HDimage/u0/SNAKE.COM b/HDimage/u0/SNAKE.COM new file mode 100644 index 0000000000000000000000000000000000000000..dd45beb5bf95260237aa05d7e671286496e0c4ef GIT binary patch literal 11776 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

@QhLLg!Cb!zzK;D5^v-P zlpt?qp%)wgcPz6A+|;zpVIl^hFmgmFm>pq-yhxUi9mxbhvfzwx4s%4y$@H4%e~0XU zBRv^h+Z%%4JHsZO)3RMNZ$@V1z!jT;GmzQBOYCQG(EmNF)5USR!b}z}f|$Z&TcObg zw>fAKv@_S{4Y;}eL#bT8&E|!Kn3*y|mEN={fA?Qy(}9_Z6Q(go+`o>R#gW z>q#W9O9#hCXB>TZnZWLgMHOfQCzTfPKxMBqI($h>ID+ffBH&aLtoQxQS zTS;RWRO3uGo9d0)?|`!KDl34pGZj7QRZGsjKuSu^{VORs_iv=< z-wB+*iasW9`4?`35_|x;phx_LBxNQz#P7O_Vdd$0dscU_Hv}PrJB|dpuqj~}CcrRM zNb*9qKI!dvJltY7hExUIvmyM1Get;RrMkFY2=;E%mr9u~&hG`Qygf_lwy~dg2Wfvm z`SwYIiG2$e0Um+n{Bs#8I_}T>3mGYK?CF}SO)FNGt*>4Ib8r+~Qel%G$Ozu(6BWF! zOgN(SyOBM59xX4qtNGG10@GH_X$iAfaj3U^TdzA2c%l1bqGBshZ`!24I= zeno^L1uldFHBvo9q{A$==(J)`c;04f!2;g`k2|A}3%4y;2e>Si(UDHcXi;o}FoVgS zV>2c*9nia6I^;+tQ>87Lc!8uiOt>&|F%ZkbF55!U^~^W00LjI0Cd7c^xRBG?777NJ zRsky3ueh!ua=|bO143Z8FhB4@(J%?D5?F|aoE#r#!q-YJqt(ZyxA|_CTYCFacnFYS zH+LV9M3FU+W;O`BKFr(Tg?#CkmXT*atg{qf+iEE(hBv^p*@lj^aI>(T?X*BA$Ia|B z=K%IX$c%-pFP%xTgh6yB8h2w+zD#&j1XBTlpB+lEqKHF*27llrjMQGU1Ga^fOf0(! zt)ejUiQRBt@gc-J7$}IfVkzJ$h#0VOsye z+Vs*C7lwfn4KL}X%+7g0+>nh%OiMojSJlyq*)~g`Lp!FI_PftHQbZa|*iCD);$bN~08Z@EZTF)!O zYPcj#jh@WZ5Kb!WAZHA1BcaVqNM*A&l*f*3DjeVrl29`fI-m*d*M`)feH`mr(0&ac zBGiA2^)CeC4|6P}b|>Ixgmv%{VHrd44)NlG*{<7g;sS}hw%zWSNMVo>_}ijUl)DufeYnJ!qsPCtAISrc9Yx5N`(Ce*@AG-xJvYZF2THKAs0Cu#@E z>2=Z1JJR|&_AiKtkLz^%uzo?T*Q17|GPRu&5F-KLfB^yE(2Xny1bPAnUD}OjiA%;kTKp~!|1YOcht`CkkHDa*4FK@?PJ_$kt28IG!f z9~z_#ZTqW!Xl=(j;p?QtYe(VXiDi_}U3Z z7+LoYhV@Kv@Vj8D_&(S&WD-2&<7Pllylr{1aZ^)mBll2a?T&{Dn^VFi(y!5L=2ybS zJRMdYY{+Y_-&afEjjL^JbT@M3Fnr^K*IaJn@)BH1I;CT00-(a(%+)ry57zDB_SNol zH?|>BvT2^yzxun5SQmU$A3mgRRoG(K4avZ}X*>!TXA*pmbnDKk_KMdWom8uxN#`P{Nb_rp!iJ9cqGOG``s z15QVNgF73E<0K%c?8aZ>m|b{`*`-C3k;WRaIF< z&G++>GJ#T-P)Z=)-3Whc(&XOV+_IywHkaGcu#0PRALQVLYpLCfEV*Vk*I2u&zNxvf z{-J}-wOoBO@-b3Ac?TPIL6YvQZEW6A-@xs3H|(l!u6H*yad})5a9*`>{pJF0Z~e~N zhNjvgq)Vi9*?XFs_cs;IpO1RgH5|-$H`dLMp*78~+rKxjAm5R{r+MFAq)DbU$yK!n z4%Ro;?yGHRZlb(WDct6Cv=%Jl@GocPZ?0M3aDW*5_U~w}e`s$lO4Q`uTZ>$x?y86* z(qot{%w4>R(%&O&a5uPj?g2;Ca{Ju7K=U0<+|E7jrrHK{25{SlcG+9s0Hy-_?%abu z=qa0Iut=zG-qF}R#Y+2TFr70>8cP#wO~Y%57)Lep`J4-gFEg6 zr27umH{<$yYQdko4mQ>|)Nyq?_EB?WP&9sHV{KCtx1yqEMHOOJ*OXP&KrC|i;oE(i z*3X{% zXRFyk3zQFg83hC_4d1Ae_uUQ4dJ2{gP=Y8Hmf6;C2y9g>nj77vBt5l)cP=ca$=e5cIQ@MCykq;ME9T6OG0-H29`P<7x`P zZH>TzqREa3=$({oJ5J&7OF`10+pU|aWL3C;wPt{y2a*HZBzVB0o3E($s(~DgaO45J z_-h|cfshxnUk@2kH4wC*mUAGRX!K#=y_pfutzWTu#d^+OF@VBAgagpXan;K!t5$GD z9MVSNa4`*mN=>$W0Cy}H2Bj9<8T0IY){O&H0+lL&p|^1WR+yyy0{@l{Kslh<&Ft7# zkDKUP5HZ>eoO!?=8pmy5@;%g?wpOu5+W5GdlqLAR2=#X+mDu6-hn6z&U2Ti>Z>=P4s3MZ!M>vqaz z^LPCd1I7IFH5RQ-$dw|%8yFH}ds=H@H(-^3icu9^Sdwr9)8|f#zc~uFM1@glID8X^ zJfTL$R*l*$iaotz{vQZ)01MI43Q#Gg3zZNRit?;MeWx^;e4D=NB}!*`?^kZ(mRFTkuU=8kVY{?)aw?HdVQazT#IzNG!AtqHDq&7rE253P zF Com-file" (press O, C, Q) +- Compile SNAKE.PAS: press C (Compile), then enter snake as Work file + name. + +This should result in a SNAKE.COM file. diff --git a/HDimage/u0/SOKOBAN.DOC b/HDimage/u0/SOKOBAN.DOC new file mode 100644 index 0000000..a468ce4 --- /dev/null +++ b/HDimage/u0/SOKOBAN.DOC @@ -0,0 +1,63 @@ + + +SOKOBAN + + +CP/M port of a Unix curses clone of sokoban + +I found it as part of the ZCN repository: +https://github.com/jamesots/zcn + +The C source has been modified for VT100 compatibility, and some unused +variables have been removed :) + +sokoban.com is the compiled binary. + +To run it, the files sokoban.com and soklevls.dat are needed The help +file, sokoban.hlp, is not used in this version. You find the contents +below. + +See the readme.* files for more information. + + +Commands + + Key Action Key Action Key Action + ------- --------------------- -------- ------------------------- ----- --------------------- + h move/push left H run/push left ^H run left to object + l move/push right L run/push right ^L run right to object + j move/push down J run/push down ^J run down to object + k move/push up K run/push up ^K run up to object + u undo last move/push U undo all + c / s temporary save ^U / r reset to temporary save + ^R Refresh screen q quit + + +The game + +Characters on screen are: + + Symbol Meaning Symbol Meanging + -------- ---------------------------- -------- --------------------------- + @@ player ++ player on saving position + .. saving position for packet $$ packets + ** saved packet ## wall + +Your goal is to move all packets to the saving position by pushing them. + +As you could see you can make a temporary save. This is useful if you +think that all the moves/pushes you have made are correct, but you don't +know how to go on. In this case you can temporary save (using the c +command). If you then get stucked you need not undo all (using U), you +can reset to you temporary save. + +If you have restored a saved game, a temporary save is automatically +made at the start. + + +Compiling + +HiTech C has been used to compile it, it is placed in the directory +HitechC. + +To compile Sokoban, I used the command c -O sokoban.c in CP/M. diff --git a/HDimage/u0/SOKOBAN.TXT b/HDimage/u0/SOKOBAN.TXT deleted file mode 100644 index b316451..0000000 --- a/HDimage/u0/SOKOBAN.TXT +++ /dev/null @@ -1,56 +0,0 @@ -# Sokoban - -CP/M port of a Unix curses clone of sokoban - -I found it as part of the ZCN repository: https://github.com/jamesots/zcn - -The C source has been modified for VT100 compatibility, and some unused -variables have been removed :) - -sokoban.com is the compiled binary. - -To run it, the files sokoban.com and soklevls.dat are needed -The help file, sokoban.hlp, is not used in this version. -You find the contents below. - -See the readme.* files for more information. - -## Commands - -| Key | Action | Key | Action | Key | Action | -| --- | ------------------- | ---- | -------------- | --- | ---------------- | -| h | move/push left | H | run/push left | ^H | run left to obj | -| l | move/push right | L | run/push right | ^L | run right to obj | -| j | move/push down | J | run/push down | ^J | run down to obj | -| k | move/push up | K | run/push up | ^K | run up to obj | -| u | undo last move/push | U | undo all | | | -| c/s | temporary save | ^U/r | reset to temporary save | | | -| ^R | Refresh screen | q | quit | | | - -## The game - -Characters on screen are: - -| Symbol | Meaning | Symbol | Meanging | -| ------ | -------------------------- | ------ | -------------------------- | -| @@ | player | ++ | player on saving position | -| .. | saving position for packet | $$ | packets | -| ** | saved packet | ## | wall | - -Your goal is to move all packets to the saving position by pushing them. - -As you could see you can make a temporary save. This is useful if you think -that all the moves/pushes you have made are correct, but you don't know how -to go on. In this case you can temporary save (using the c command). If you -then get stucked you need not undo all (using U), you can reset to you -temporary save. - -If you have restored a saved game, a temporary save is automatically made -at the start. - -## Compiling - -HiTech C has been used to compile it, it is placed in the directory HitechC. - -To compile Sokoban, I used the command c -O sokoban.c in CP/M. - diff --git a/HDimage/u0/TLADDER.COM b/HDimage/u0/TLADDER.COM new file mode 100644 index 0000000000000000000000000000000000000000..7cada4a419bd955b7350208fa9e1f7f11b1eee0f GIT binary patch literal 33792 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 OkZ*z60U=Hc<^K!u0hh}F literal 0 HcmV?d00001 diff --git a/HDimage/u0/TLADDER.DAT b/HDimage/u0/TLADDER.DAT new file mode 100644 index 0000000000000000000000000000000000000000..d3a2299c2557af8b98693b8156a0bb5caf14b061 GIT binary patch literal 512 zcmWf1adlP*3(+++Fi_BN^b7XXR6qet($OeE0M Com-file" (press O, C, Q) +- Compile LADDER.PAS: press C (Compile), then enter ladder as Work + file name. + +This should result in a LADDER.COM file. + +The rest of this file is mostly the README from the original repository. + + + +ORIGINAL README CONTENT: + + +About + +This is a rewrite in Turbo Pascal of the classic CP/M game "Ladder", +originally written by Yahoo Software (not Yahoo!). + +Ladder is an ASCII character based platform arcade game similar to +Donkey Kong. You travel through levels with platforms and ladders where +rocks fall down from the top while you collect statues before reaching +the exit. + +Back in 1999 Stephen Ostermiller made a version of Ladder in Java. +Later, Mats Engstrom of SmallRoomLabs started another version in of +Ladder in golang. Between my own memories of playing the original game +on a Kaypro, and Stephen Ostermiller's and Mats Engstrom's code, I was +able to come up with this version. + +This version will use the original LADCONF.COM configuration program and +LADDER.DAT configuration file. Since this version is a Turbo Pascal +program, the terminal configuration portion of LADCONF isn't used, +though it still does set up the movement keys, sound and back chatter +options. + + +Compiling the game + +You'd need Turbo Pascal, of course. You'll also need to edit +LADCONST.PAS to set the cursor on and off sequences for your terminal. +LADDER.PAS is the main part of the program. I've successfully compiled +this on a 58K CP/M system, so available RAM isn't a particularly +critical limitation. + +Once you've compiled LADDER.COM, copy LADCONF.COM to the same user area. +If you don't have a LADDER.DAT file, when you run LADDER the first time +it'll automatically load LADCONF to set up the movement keys and +options, then transfer you back to LADDER. + + +Limitations + +At the moment, once you've successfully completed the 7th distinct level +(Gang Land), the program just cycles through all 7 seven levels over and +over again until the bonus time becomes too short to actually finish a +level. If anyone knows what the original program actually did (I never +managed to get anywhere near to completing the original game), let me +know and I'll see what I can do. + +The Delay(ms) call in Turbo Pascal only works for a Z80 running at up to +32MHz (and TINST will only allow you to specify a value of up to 20MHZ +if I recall correctly). So if you're trying to run this on a system with +an effective clock speed of greater than 32MHz, you're going to have to +come up with another mechanism. That's not an insurmountable roadblock +though; on my 144MHz-Z80-equivalent RunCPM box running on a Teensy 4.0, +I patched the Turbo Pascal runtime to make a call to a BDOS extension I +created to call the Arduino's delay() function. Works like a charm. If +your system includes any kind of millisecond counter you can read, +that's a good spot to start looking. + + +References + +Original Ladder game Ladder in Java Ladder in golang diff --git a/HDimage/u0/WORM.TXT b/HDimage/u0/WORM.DOC similarity index 56% rename from HDimage/u0/WORM.TXT rename to HDimage/u0/WORM.DOC index 274c089..3d1e7b2 100644 --- a/HDimage/u0/WORM.TXT +++ b/HDimage/u0/WORM.DOC @@ -1,26 +1,28 @@ -# Worm + + +WORM + I have no information on the author or copyright of this game. It is like "Snake", but the worm is only moving when a key is pressed. -The goal of the game is to survive as long as possible - as the worm +The goal of the game is to survive as long as possible - as the worm will get longer and longer after eating a number. -## Controls + +Controls Use the number keys 2, 4, 6 and 8 to control the worm. The german description of the game is: - WORM ist ein Spiel, bei dem ein Buchstabenwurm mittels der - Pfeiltasten bzw. Zifferntasten (siehe Bild) ueber das Spiel- + WORM ist ein Spiel, bei dem ein Buchstabenwurm mittels der ^ + Pfeiltasten bzw. Zifferntasten (siehe Bild) ueber das Spiel- I feld bewegt werden kann. Jedesmal wenn der Wurm eine Zahl - frisst, waechst er um ein Stueck in die Laenge. - Das Ziel des Spiels ist es, den Wurm moeglichst lang zu mae- - sten. Dabei darf er aber in seiner Gier weder sich selbst + frisst, waechst er um ein Stueck in die Laenge. 8 + Das Ziel des Spiels ist es, den Wurm moeglichst lang zu mae- <- 4 6 -> + sten. Dabei darf er aber in seiner Gier weder sich selbst 2 noch die Umrandung anknabbern! - - Viel Spass ! - - + I + Viel Spass ! v diff --git a/HDimage/u1/-read.me b/HDimage/u1/-read.me deleted file mode 100644 index 51e0181..0000000 --- a/HDimage/u1/-read.me +++ /dev/null @@ -1,26 +0,0 @@ -This is version 2.2 of wanderer. I've jumped the version numbers out -of my original sequence so that they now match the same version numbers -as used by Steven Shipway. - -You will need WANDERER.LBR to be able to fully use this, however the -version of WANDERER in this .LBR is the one to use - it has a couple -of bug fixes: the old version can't solve screen 31, and can't get -the monster on screen 37. Basically, all you need from the earlier -one are the screens, replace any other files with those from this -.LBR. Also replace SCREEN.050 from the old one, as this was a special -"end marker" screen, that job has now been taken over by SCREEN.061 - -Happy wandering :-) - - -.UUCP: .....!harvard!xait!lakart!pallio!dg -Internet: dg%pallio.uucp@cfisun.cfi.com -GEnie: D.GOODENOUGH -Q-link: Delta G -BBS's David Goodenough on all - - (617) 965-7046 - (617) 825-3135 - (617) 329-8528 - (617) 329-4237 - \ No newline at end of file diff --git a/HDimage/u1/-readme.1st b/HDimage/u1/-readme.1st deleted file mode 100644 index 6f1f942..0000000 --- a/HDimage/u1/-readme.1st +++ /dev/null @@ -1,42 +0,0 @@ - WANDERER - ======== - -As delivered this will run on any Televideo compatible screen, -including Commodore C128 in CP/M mode; Wyse 50's; Wyse 60's; -Kaypro's; Liberty Freedom 110's, 200's and Turbo 1's; ADM3A; -and ADM31. I've included a file QTERM.PAT that talks a lot -about patching other stuff. You will see that the patch area -is a lot bigger than it needs to be, but that is because it -uses the same patch overlay as QTERM, ROGUE, etc. The two -patches needed to make WANDERER go are: clear screen and moveto. -I'd suggest just putting those two in, and setting the terminal -capability byte to zero, to nuke out everything else. ALSO NOTE -the save command will be: - -A>SAVE 36 WANDERER.COM - -as wanderer is a bit smaller than QTERM. - - -I have included all the screens that have been released so far: 1 - 49. -SCREEN.050 is present, but only contains a single period: '.' This is -to tell wanderer that after screen 49 there aren't any more. However, -if you try to jump to (say) screen 76, it won't detect the overrun, and -you'll get a rather unpleasant message from wanderer. Oh well ..... - - -If you have any questions, suggestions, flames, comments, bug reports -or screens to be released, I can be reached at: - -Q-link Delta G -.UUCP .....!harvard!xait!lakart!pallio!dg -Internet dg%pallio.uucp@cfisun.cfi.com -GEnie D.Goodenough -BBS's David Goodenough on all of them: - - (617) 288-6477 - (617) 825-3135 - (617) 329-4237 - (617) 329-8528 - (617) 965-7046 - \ No newline at end of file diff --git a/HDimage/u1/screen.001 b/HDimage/u1/SCREEN.001 similarity index 100% rename from HDimage/u1/screen.001 rename to HDimage/u1/SCREEN.001 diff --git a/HDimage/u1/screen.002 b/HDimage/u1/SCREEN.002 similarity index 100% rename from HDimage/u1/screen.002 rename to HDimage/u1/SCREEN.002 diff --git a/HDimage/u1/screen.003 b/HDimage/u1/SCREEN.003 similarity index 100% rename from HDimage/u1/screen.003 rename to HDimage/u1/SCREEN.003 diff --git a/HDimage/u1/screen.004 b/HDimage/u1/SCREEN.004 similarity index 100% rename from HDimage/u1/screen.004 rename to HDimage/u1/SCREEN.004 diff --git a/HDimage/u1/screen.005 b/HDimage/u1/SCREEN.005 similarity index 100% rename from HDimage/u1/screen.005 rename to HDimage/u1/SCREEN.005 diff --git a/HDimage/u1/screen.006 b/HDimage/u1/SCREEN.006 similarity index 100% rename from HDimage/u1/screen.006 rename to HDimage/u1/SCREEN.006 diff --git a/HDimage/u1/screen.007 b/HDimage/u1/SCREEN.007 similarity index 100% rename from HDimage/u1/screen.007 rename to HDimage/u1/SCREEN.007 diff --git a/HDimage/u1/screen.008 b/HDimage/u1/SCREEN.008 similarity index 100% rename from HDimage/u1/screen.008 rename to HDimage/u1/SCREEN.008 diff --git a/HDimage/u1/screen.009 b/HDimage/u1/SCREEN.009 similarity index 100% rename from HDimage/u1/screen.009 rename to HDimage/u1/SCREEN.009 diff --git a/HDimage/u1/screen.010 b/HDimage/u1/SCREEN.010 similarity index 100% rename from HDimage/u1/screen.010 rename to HDimage/u1/SCREEN.010 diff --git a/HDimage/u1/screen.011 b/HDimage/u1/SCREEN.011 similarity index 100% rename from HDimage/u1/screen.011 rename to HDimage/u1/SCREEN.011 diff --git a/HDimage/u1/screen.012 b/HDimage/u1/SCREEN.012 similarity index 100% rename from HDimage/u1/screen.012 rename to HDimage/u1/SCREEN.012 diff --git a/HDimage/u1/screen.013 b/HDimage/u1/SCREEN.013 similarity index 100% rename from HDimage/u1/screen.013 rename to HDimage/u1/SCREEN.013 diff --git a/HDimage/u1/screen.014 b/HDimage/u1/SCREEN.014 similarity index 100% rename from HDimage/u1/screen.014 rename to HDimage/u1/SCREEN.014 diff --git a/HDimage/u1/screen.015 b/HDimage/u1/SCREEN.015 similarity index 100% rename from HDimage/u1/screen.015 rename to HDimage/u1/SCREEN.015 diff --git a/HDimage/u1/screen.016 b/HDimage/u1/SCREEN.016 similarity index 100% rename from HDimage/u1/screen.016 rename to HDimage/u1/SCREEN.016 diff --git a/HDimage/u1/screen.017 b/HDimage/u1/SCREEN.017 similarity index 100% rename from HDimage/u1/screen.017 rename to HDimage/u1/SCREEN.017 diff --git a/HDimage/u1/screen.018 b/HDimage/u1/SCREEN.018 similarity index 100% rename from HDimage/u1/screen.018 rename to HDimage/u1/SCREEN.018 diff --git a/HDimage/u1/screen.019 b/HDimage/u1/SCREEN.019 similarity index 100% rename from HDimage/u1/screen.019 rename to HDimage/u1/SCREEN.019 diff --git a/HDimage/u1/screen.020 b/HDimage/u1/SCREEN.020 similarity index 100% rename from HDimage/u1/screen.020 rename to HDimage/u1/SCREEN.020 diff --git a/HDimage/u1/screen.021 b/HDimage/u1/SCREEN.021 similarity index 100% rename from HDimage/u1/screen.021 rename to HDimage/u1/SCREEN.021 diff --git a/HDimage/u1/screen.022 b/HDimage/u1/SCREEN.022 similarity index 100% rename from HDimage/u1/screen.022 rename to HDimage/u1/SCREEN.022 diff --git a/HDimage/u1/screen.023 b/HDimage/u1/SCREEN.023 similarity index 100% rename from HDimage/u1/screen.023 rename to HDimage/u1/SCREEN.023 diff --git a/HDimage/u1/screen.024 b/HDimage/u1/SCREEN.024 similarity index 100% rename from HDimage/u1/screen.024 rename to HDimage/u1/SCREEN.024 diff --git a/HDimage/u1/screen.025 b/HDimage/u1/SCREEN.025 similarity index 100% rename from HDimage/u1/screen.025 rename to HDimage/u1/SCREEN.025 diff --git a/HDimage/u1/screen.026 b/HDimage/u1/SCREEN.026 similarity index 100% rename from HDimage/u1/screen.026 rename to HDimage/u1/SCREEN.026 diff --git a/HDimage/u1/screen.027 b/HDimage/u1/SCREEN.027 similarity index 100% rename from HDimage/u1/screen.027 rename to HDimage/u1/SCREEN.027 diff --git a/HDimage/u1/screen.028 b/HDimage/u1/SCREEN.028 similarity index 100% rename from HDimage/u1/screen.028 rename to HDimage/u1/SCREEN.028 diff --git a/HDimage/u1/screen.029 b/HDimage/u1/SCREEN.029 similarity index 100% rename from HDimage/u1/screen.029 rename to HDimage/u1/SCREEN.029 diff --git a/HDimage/u1/screen.030 b/HDimage/u1/SCREEN.030 similarity index 100% rename from HDimage/u1/screen.030 rename to HDimage/u1/SCREEN.030 diff --git a/HDimage/u1/screen.031 b/HDimage/u1/SCREEN.031 similarity index 100% rename from HDimage/u1/screen.031 rename to HDimage/u1/SCREEN.031 diff --git a/HDimage/u1/screen.032 b/HDimage/u1/SCREEN.032 similarity index 100% rename from HDimage/u1/screen.032 rename to HDimage/u1/SCREEN.032 diff --git a/HDimage/u1/screen.033 b/HDimage/u1/SCREEN.033 similarity index 100% rename from HDimage/u1/screen.033 rename to HDimage/u1/SCREEN.033 diff --git a/HDimage/u1/screen.034 b/HDimage/u1/SCREEN.034 similarity index 100% rename from HDimage/u1/screen.034 rename to HDimage/u1/SCREEN.034 diff --git a/HDimage/u1/screen.035 b/HDimage/u1/SCREEN.035 similarity index 100% rename from HDimage/u1/screen.035 rename to HDimage/u1/SCREEN.035 diff --git a/HDimage/u1/screen.036 b/HDimage/u1/SCREEN.036 similarity index 100% rename from HDimage/u1/screen.036 rename to HDimage/u1/SCREEN.036 diff --git a/HDimage/u1/screen.037 b/HDimage/u1/SCREEN.037 similarity index 100% rename from HDimage/u1/screen.037 rename to HDimage/u1/SCREEN.037 diff --git a/HDimage/u1/screen.038 b/HDimage/u1/SCREEN.038 similarity index 100% rename from HDimage/u1/screen.038 rename to HDimage/u1/SCREEN.038 diff --git a/HDimage/u1/screen.039 b/HDimage/u1/SCREEN.039 similarity index 100% rename from HDimage/u1/screen.039 rename to HDimage/u1/SCREEN.039 diff --git a/HDimage/u1/screen.040 b/HDimage/u1/SCREEN.040 similarity index 100% rename from HDimage/u1/screen.040 rename to HDimage/u1/SCREEN.040 diff --git a/HDimage/u1/screen.041 b/HDimage/u1/SCREEN.041 similarity index 100% rename from HDimage/u1/screen.041 rename to HDimage/u1/SCREEN.041 diff --git a/HDimage/u1/screen.042 b/HDimage/u1/SCREEN.042 similarity index 100% rename from HDimage/u1/screen.042 rename to HDimage/u1/SCREEN.042 diff --git a/HDimage/u1/screen.043 b/HDimage/u1/SCREEN.043 similarity index 100% rename from HDimage/u1/screen.043 rename to HDimage/u1/SCREEN.043 diff --git a/HDimage/u1/screen.044 b/HDimage/u1/SCREEN.044 similarity index 100% rename from HDimage/u1/screen.044 rename to HDimage/u1/SCREEN.044 diff --git a/HDimage/u1/screen.045 b/HDimage/u1/SCREEN.045 similarity index 100% rename from HDimage/u1/screen.045 rename to HDimage/u1/SCREEN.045 diff --git a/HDimage/u1/screen.046 b/HDimage/u1/SCREEN.046 similarity index 100% rename from HDimage/u1/screen.046 rename to HDimage/u1/SCREEN.046 diff --git a/HDimage/u1/screen.047 b/HDimage/u1/SCREEN.047 similarity index 100% rename from HDimage/u1/screen.047 rename to HDimage/u1/SCREEN.047 diff --git a/HDimage/u1/screen.048 b/HDimage/u1/SCREEN.048 similarity index 100% rename from HDimage/u1/screen.048 rename to HDimage/u1/SCREEN.048 diff --git a/HDimage/u1/screen.049 b/HDimage/u1/SCREEN.049 similarity index 100% rename from HDimage/u1/screen.049 rename to HDimage/u1/SCREEN.049 diff --git a/HDimage/u1/screen.050 b/HDimage/u1/SCREEN.050 similarity index 100% rename from HDimage/u1/screen.050 rename to HDimage/u1/SCREEN.050 diff --git a/HDimage/u1/screen.051 b/HDimage/u1/SCREEN.051 similarity index 100% rename from HDimage/u1/screen.051 rename to HDimage/u1/SCREEN.051 diff --git a/HDimage/u1/screen.052 b/HDimage/u1/SCREEN.052 similarity index 100% rename from HDimage/u1/screen.052 rename to HDimage/u1/SCREEN.052 diff --git a/HDimage/u1/screen.053 b/HDimage/u1/SCREEN.053 similarity index 100% rename from HDimage/u1/screen.053 rename to HDimage/u1/SCREEN.053 diff --git a/HDimage/u1/screen.054 b/HDimage/u1/SCREEN.054 similarity index 100% rename from HDimage/u1/screen.054 rename to HDimage/u1/SCREEN.054 diff --git a/HDimage/u1/screen.055 b/HDimage/u1/SCREEN.055 similarity index 100% rename from HDimage/u1/screen.055 rename to HDimage/u1/SCREEN.055 diff --git a/HDimage/u1/screen.056 b/HDimage/u1/SCREEN.056 similarity index 100% rename from HDimage/u1/screen.056 rename to HDimage/u1/SCREEN.056 diff --git a/HDimage/u1/screen.057 b/HDimage/u1/SCREEN.057 similarity index 100% rename from HDimage/u1/screen.057 rename to HDimage/u1/SCREEN.057 diff --git a/HDimage/u1/screen.058 b/HDimage/u1/SCREEN.058 similarity index 100% rename from HDimage/u1/screen.058 rename to HDimage/u1/SCREEN.058 diff --git a/HDimage/u1/screen.059 b/HDimage/u1/SCREEN.059 similarity index 100% rename from HDimage/u1/screen.059 rename to HDimage/u1/SCREEN.059 diff --git a/HDimage/u1/screen.060 b/HDimage/u1/SCREEN.060 similarity index 100% rename from HDimage/u1/screen.060 rename to HDimage/u1/SCREEN.060 diff --git a/HDimage/u1/screen.061 b/HDimage/u1/SCREEN.061 similarity index 100% rename from HDimage/u1/screen.061 rename to HDimage/u1/SCREEN.061 diff --git a/HDimage/u1/wanderer.com b/HDimage/u1/WANDERER.COM similarity index 100% rename from HDimage/u1/wanderer.com rename to HDimage/u1/WANDERER.COM diff --git a/HDimage/u1/wanderer.doc b/HDimage/u1/WANDERER.DOC similarity index 100% rename from HDimage/u1/wanderer.doc rename to HDimage/u1/WANDERER.DOC diff --git a/HDimage/u1/credits b/HDimage/u1/credits deleted file mode 100644 index aadd926..0000000 --- a/HDimage/u1/credits +++ /dev/null @@ -1,91 +0,0 @@ - WANDERER CREDITS - ================== - -This file should always be available to all players of the game. Feel free to -add anything necessary, eg, if you create some new screens, but don't *delete* -anything! The people in here have worked hard and deserve all the fame they -can get :-) - -Steven Shipway - ------------------------------------------------------------------------------ - - Wanderer was created by Steven Shipway, a first year mathematics -student at Warwick University, England. The idea came from games such as -Boulderdash, Xor, and especially the Repton games from Superior Software. - - Later improvements came from play@nl.cwi, who designed the editor -and made countless bugfixes, of which there are too many to list here. He -also improved many parts of the original code, and also designed some -screens. Also Dave (david@ist.co.uk), who did most of the work towards the -improved level jumping routine (sorry, I had to alter it a bit due to other -changes). Jason (jason@uucp.aeras) is responsible for the help routine, for -which I am eternally grateful since it saved me a lot of work. - I should really mention Harvey Thompson (hjt@uk.ac.warwick.cs) as -well, since he provided the idea behind the encryption system ( the seeded -random exclusive or ). However I won't, since it will annoy him terribly! - Thanx to meulenbr@nl.philips.prl.cst (Frans) for the idea behind the -addition of the balloons. - - Assisting in the development were Rob McMahon (our systems manager) -and Mark Sunnarks. In screen development were the following: - -Screens 1,2,3,4,7,8,10,12,16,23,24,26 - Steven Shipway ( maujp@uk.ac.warwick.cu ) -Screens 5,6 James Beckett ( csutg@uk.ac.warwick.cu ) -Screen 9,27,29 Kenton Oatley ( maukr@uk.ac.warwick.cu ) -Screens 11,13,14,19,20 - Nameless ( play@nl.cwi ) -Screen 17 David ( david@ist.co.uk ) -Screens 15,18,41,42 - Bruce Butterfield & Son ( bruce@au.oz.utas.tasis ) -Screens 21,22 Max Rockatansky ( jn@uk.ac.ukc ) -Screen 25 Will Bent ( whb@hoh-2.ATT.COM ) -Screen 28 Frans Meulenbrooks ( meulenbr@nl.philips.prl.cst ) -Screen 31 Alan Bland ( mab@druwy.uucp ) -Screen 32 Ed Strong ( ems%nanotech@edu.princeton ) -Screen 33,35 Mark Maplethorpe ( csttrjs@uk.ac.warwick.cu ) -Screen 34,53 David Goodenough ( dg%lakart.uucp@xait.xerox.com ) -Screen 36 Kevin Pickard ( kevin%perle@uucp.uunet ) -Screens 37,38,39 - Paul Metcalf ( maukw@uk.ac.warwick.cu ) -Screen 40,50,51 - Bill Martin ( wjmartiniii@edu.waterloo.violet ) -Screen 43 Bryan Ewbank ( bdewbank@ixlpo.uucp ) -Screens 44,55,56 - Hans Bodlaender ( hansb@ruuinf.uucp ) -Screen 45 Mark Sergent ( ai3!mark@artecon.uucp ) -Screens 48 Kevin O'Donnell ( kjo@uk.ac.ukc ) - Tony Newell ( adn@uk.ac.ukc ) -Screen 49 Paul White ( white@pdnag1.uucp ) -Screens 54,52,46,47 - Hugo Wouters ( hugo@cs.kuleuven.ac.be ) -Screen 57 Danny Young ( danny@iconsys.uucp ) -Screens 58,59 Ronald Lamprecht ( v61%dhdurz1.bitnet@cunyvm.cuny.edu ) -Screens 30,60 I cant remember. If either of these is yours, please mail - me or post to the net for correction to this list. - - All of these screens are possible with the current version of Wanderer (2.2). - - Any new screens you wish to have added to the list please mail to -me for release in a official update package. The address is currently -maujp@uk.ac.warwick.cu or maujp%uk.ac.warwick.cu@nsfnet-relay.ac.uk . -Please note that the bitnet address has changed recently, and several items of -email have gone astray. - - The X-Windows port - which is pretty impressive - comes from Mike Cuddy. -His address is cuddy%convex@edu.umich.cc.umix or convex!cuddy. Although -I haven't been able to see this one for myself a friend assures me that the -graphics are fantastic. - - The official PC Port for Wanderer was done by Greg Margo, who may be found -at gmago@uucp.netxcom or ...!uunet!netxcom!gmargo. - The Acorn Archimedes port was done by Max Rockatansky, jn@uk.ac.ukc . Mail -him if you want a copy. ( Although he could well charge for the disc... ) - The port to the Amiga was courtesy of Alan Bland ( mab@druwy.uucp ) who has -included sound and graphics to the game. As before, he's the one to mail if -you want to know more. - - Also thanks to Paul Metcalf for thinking of a name for the game! - - - THE END - - \ No newline at end of file diff --git a/HDimage/u1/qterm.pat b/HDimage/u1/qterm.pat deleted file mode 100644 index 7148689..0000000 --- a/HDimage/u1/qterm.pat +++ /dev/null @@ -1,234 +0,0 @@ -Patching QTERM for your system. - -The first thing to do is to back QTERM up, and then invoke DDT, SID, ZSID, -or whatever your local patch utility is, in the following way: - -A>DDT QTERM.COM - -DDT (etc.) will read in QTERM, and then prompt. The following is a list of -patch areas where QTERM should be changed to reflect your system. Some of -these are mandatory (i.e. QTERM won't work without them), whereas others -can be changed to null subroutines or empty data without preventing QTERM -from working, it just won't have all the features available. - - -1. Modem input status: 0110 - 011F - -QTERM calls here to check RDR: status. Return with the zero flag set if -no character is available, or with the zero flag clear if a char is -available. Generally this can be an input from the usart / sio / dart -status port followed by an 'and'. - -2. Read modem character: 0120 - 012F - -This gets a character from the RDR: port once the input status has decided -it's there. Return the character in the a register. Generally this can be -an input from the usart / sio / dart data port. - -3. Modem output status: 0130 - 013F - -Check if the PUN: port can accept another character. Return with the zero -flag set if the PUN: port can't receive a character, or with the zero flag -clear if the PUN: port is ready. Generally this can be an input from the -usart / sio / dart status port followed by an 'and'. - -4. Write modem character: 0140 - 014F - -Send the character in the a register to the PUN: port. This will only be -called after the output status routine has returned a non-zero status. -Generally this can be an output to the usart / sio / dart data port. - -These first four patches are all necessary for QTERM to work. The next few -are not necessary, but they will be useful. - -5. Start break: 0150 - 015F - End break: 0160 - 016F - -The start break subroutine at 0150 should initiate a break condition on -the modem output line, and 0160 should clear the break condition. If these -are to be omitted, then just put return (C9) instructions at 0150 and 0160. - -6. Drop DTR: 0170 - 017F - Restore DTR: 0180 - 018F - -The drop DTR subroutine causes DTR to be made inactive, and restore DTR -returns DTR to an active state. If your modem does not respond to DTR, but -can be made to hang up by sending a string, then put a return (C9) at 0170. -Use the space from 0171 to 018F to contain the string, with the following -notes: to transmit a break, use an 0FFH byte, to cause a two second delay -use an 0FEH byte, and use a 00 byte to terminate. Hence the following -could be used to hang up a Hayes compatible: - -FE 2B 2B 2B FE 41 54 48 30 0D 00 - -FE - delay -2B - '+' sent three times -FE - delay -41 54 48 30 0D - ATH0 - -If neither DTR nor a string is to be used, then place a return (C9) at -0180 and 0171, and a nop (00) at 0170. The string is used only if a C9 -is found at 0170, so by placing the C9 at 0171 the string print is -inhibited. - -7. Baud rate setting: 0190 - 019F - Baud rate table: 01A0 - 01AF - -These two patch areas work together to allow QTERM to change the baud rate -of the modem port. The baud rate table holds pairs of bytes for setting the -baud rate to eight different values: 38400, 19200, 9600, 4800, 2400, 1200, -600 and 300, in that order. In these pairs, the first byte will be passed -to the subroutine at 0190, and the second byte is used to enable that baud -rate: an 0FFH in the second byte enables the rate, and a zero disables. -So if your system only went up to 9600, (using a value of 1 to get 9600) -the first six bytes in the table would be: - - 00 00 no value for 38400: disable by the 00 - 00 00 no value for 19200: disable by the 00 - 01 FF 01 is the value for 9600: enable by the FF - -In all cases of enabled baud rates, the subroutine at 0190 gets the -appropriate value in the a register and should use it to set the baud rate. -If this is to be omitted, then just put a return (C9) instruction at 0190, -and fill the table from 01A0 to 01AF with 00's. - -8. Communication mode setting: 01B0 - 01BF - Communication mode table: 01C0 - 01CB - -These two patch areas work together to allow QTERM to change the -communications format of the modem port. The mode table holds bytes for -setting 12 different formats, selecting number of data bits (7 or 8) -parity (odd, even, or none) and number of stop bits (1 or 2). In order -the 12 values are for 7n1, 8n1, 7n2, 8n2, 7e1, 8e1, 7e2, 8e2, 7o1, 8o1, -7o2, and 8o2. The subroutine at 01B0 gets one of these values in the a -register and should use it to set the communications mode. If this is to -be omitted, then just put a return (C9) instruction at 01B0. - -9. Protocol transfer size: 01CD - -During protocol transfers, disk reads and writes take place every 8K. This -is normally possible without causing a timeout, and reduces disk access to -a minimum. However if your disk is slow, you can drop this to 4 or even 2 -to reduce the size of transfer, and hence prevent timeouts. Note that there -is an unused byte between the end of the communications mode table, and the -transfer size (i.e. at 01CC). This bytes is reserved for future use, and -should not be changed. - -10. Processor speed: 01CE - -This is the speed in Mhz that your Z80 runs at: 4, 6 or whatever. For -a 2.5Mhz cpu, use 3. - -11. Escape character: 01CF - -All special functions of QTERM are activated by the use of escape sequences. -At 01CF is the byte used for the escape character (the default is ^\). Any -byte can be used, but a little used value is best selected, also using a -printable character (' ' thru '~') may have undesirable results. Note that to -transmit the escape value itself, just type it twice. - -These previous three are necessary. - -12. Signon message: 01D0 - 01EF - -This must be a string that identifies your system / terminal. It must be -present, and is printed when QTERM first starts. It should be composed of -printable characters, and terminated by a zero byte. - -13. Clear screen: 01F0 - 01FF - -This must be a string that clears the terminal screen, and leaves the -cursor in the top left hand corner. This should also be terminated by a -zero byte. - -14. Moveto: 0200 - 022E - -QTERM requires the ability to move the cursor around the screen. It calls -this subroutine with the required coordinates in hl: where h is the row, -and l the column to move to. The top left hand corner of the screen is 0,0; -and the bottom right corner is 23,79. This subroutine will have to do -terminal output: at 0109H is a routine that prints a character in the c -register, and at 010CH is a routine to print a decimal number in hl (mainly -for the use of vt100 and vt220 compatibles). Note that the above two -subroutines will destroy all registers, and that this subroutine can also -destroy all registers. - -15. Teminal capability bit map: 022F - -This byte contains one bit set for each of the following terminal -capabilities: - -bit 0: (01H) bright (end highlight) -bit 1: (02H) dim (start highlight) -bit 2: (04H) delete line -bit 3: (08H) insert line -bit 4: (10H) delete character -bit 5: (20H) insert character -bit 6: (40H) clear to end of line -bit 7: (80H) clear to end of screen - -16. Terminal capability strings: 0230 - 026F - -In this area are eight strings, each of which can be at most eight characters -long. They are the strings to be printed to perform the terminal capabilities -mentioned above. Each one of them should be terminated by a zero byte. Hence -at 0230 is the string for dim (start highlight), at 0238 is the string for -bright (end highlight), etc.; with 0268 being the string for clear to end of -screen. Programs that use these will check the terminal capability bitmap at -022F before using them, to determine if they are available. - -17. Entry subroutine: 0270 - 0272 - -Upon entry to QTERM, this subroutine will be called. If it is not needed -then a return instruction (0C9H) should be placed at 0270, otherwise there -is enough space to put in a jump to code that is to be executed when QTERM -starts. - -18. Exit subroutine: 0273 - 0275 - -After an Q has been issued to exit QTERM, this subroutine will -be called immediately before exiting back to CP/M. As with the entry -subroutine, if not needed, a return instruction (0C9H) should be placed at -0273H, otherwise any termination code can be added. - -19. Patch area: 0276 - 02FF - -Since the area provided for the above patches is limited, it may be necessary -to use more space. The block of memory from 0276 to 02FF is set aside for -custom patches, this can be used if the individual spaces are not big enough. - - -Once all the patches have been made, exit the patch program (usually by -typing ^C), and finish up by saving a new copy of QTERM: - -A>SAVE 51 QTERMNEW.COM - -In addition, the patch area only can be saved as follows: - -A>SAVE 2 QTERMPAT.XXX - -Which will create a 1/2K file containing all the patches needed to make this -particular version of QTERM work. By doing this, when a new release of QTERM -needs to be patched, all that is necessary is to read in the new unpatched -version with DDT or whatever, then overlay the patch area. This is typically -done by typing: - -IQTERMPAT.XXX - -to DDT, SID, ZSID etc. to set up the command line to read QTERMPAT.XXX, then -follow this with a: - -R - -to read it. This should overlay the saved patch area on the new version, -hence doing all the patches at once. Then exit DDT with ^C, and do the -first save shown above to save the new working version. - - -NOTE: this "overlaying" of patches will NOT work with versions 2.8 and -earlier. In addition, three things have been added to the 3.3 patch -area. -1. changing the DTR manipulation area to include a hangup string -2. adding the transfer read / write size at 01CD -3. adding the entry and exit subroutine hooks - \ No newline at end of file