- ���� ����
+ __����________________________________________________________����___________
���� �����
��� ���� ����
-��� ����� �������� ����� ���� ���� ��� �����
-��� ������� ����������� ������� ������������� �� ��� ���
-�� ��� ��� ����� ���� ���� ��� ��� ���� ��� ��� ���� ���
-�� �� �� �� � ��� ���� ��� ������ ��� ��� ��� ��
-�� �� �� �� �� ��� ��� ��� ���� ��� ��� ��� ���� ��
-�� ��� ��� �� �� �� ��� ������� ��� �� ������� ��
-�� ��� ��� ��� �� �� �� �� ��� ��� ��� ����� ���
-��� ��� ��� ��� �� �� ��� �� ���� ���� ��� ���
-��� ����� ��� ��� ��� ��� �� �������� ��� ���
- ��� ��� ��� ��� ��� ��� ��� ������ ��� ���
- ���� ������� ���� ��� ��� ���� ��� ����� ����
- �������� �������� ��������� ��� ��� ���������������
- ����� ����� ������� �� ��� �����������
-
-Version: 0.96.C24 (released end 2001)
- Author: SHIAR (wormy@shiar.org - www.shiar.org)
- File(s): wormy.86p (main program, 6kB)
- wormy001.86s (levels, 1kB)
+��� ����� �������� ����� ���� ���� ��� �����
+��� ������� ����������� ������� ������������� �� ��� ���
+�� ��� ��� ����� ���� ���� ������ ���� ��� ��� ���� ���
+�� �� �� �� � ��� ���� ��� ������ ��� ��� ��� ��
+�� �� �� �� �� ��� ��� ��� ���� ��� ��� ��� ���� ��
+�� ��� ��� �� �� �� ��� ������� ��� �� ������� ��
+�� ��� ��� ��� �� �� �� �� ��� ��� ��� ����� ���
+��� ��� ��� ��� �� �� ��� �� ���� ���� ��� ���
+��� ����� ��� ��� ��� ��� �� �������� ��� ���
+ ��� ��� ��� ��� ��� ��� ��� ������ ��� ���
+ ���� ������� ���� ��� ��� ���� ��� ����� ����
+ �������� �������� ��������� ��� ��� ���������������
+ ����� ����� ������� �� ��� �����������
+ _____________________________________________________________________________
+
+ Version: 0.98.226 (released february 2002)
+ Author: SHIAR (wormy@shiar.org - www.shiar.org)
+ File(s): wormy.86g (main program 6kB, levels 4x1kB)
wormy.txt (readme); wormedit.exe (level editor)
- Description: Free-movement Nibbles game, 1-4 players.
- Where to get this game: shiar.org, the official home of Wormy
- Additional Credits to: Matthew Shepcar and Jonah Cohen
-
- -= [THE BEGINNING] =-
-
- First you'll want to upload wormy.86p to your calculator (or emu),
- together with a levelfile like wormy001.86s. Then you simply run
- Wormy by typing Asm(wormy or using a shell (except for AShell.)
- When multiple levelfiles are present, you have to choose one
- first. You'll get in the main menu. Here you can alter
- game settings with the arrow keys (game mode, level,
- linkplay, and players (+names and controls).
- Select (enter/2nd) the level to customize
- multiplayer games (lives, score-
- limit, game speed, rotation
- speed and auto-growth).
- When you're ready, press
- enter/2nd to start the game.
-
--= [DON'T DIE] =-
-
- Playing wormy is quite simple actually. Just avoid
- your worm from crashing (into walls or yourself)
- by turning it left/right. Default controls are:
- [1] left/right [2] F1/F2 [3] sto/, [4] enter/+
- but they can be altered to anything except EXIT
- (which always exits to the stats-screen) and MORE
- (which pauses and allows you to change contrast.)
-
- -= [WELL DONE] =-
-
- At the end of each game, the stats-screen will
- be displayed. It shows the score and deaths for
- each worm, and hiscore for singleplayer games.
- The winner(s) of multiplayer games will
- be denoted with an *. Hit enter
- to return to the main menu.
-
- -= [GAME MODES] =-
+ bla
+ Description: perfect Nibbles game with free movement, 9 game
+ modes, for 1-4 players, many levels and editor
+ Where to get this game: shiar.org, the official home of Wormy
+ Additional Credits to: Matthew Shepcar and Jonah Cohen
+
+ ___ _ _ ___ ______ ______ ______ _____ __ _ __ _ _____ __ _ ______
+ | |__| |__ |_____]|_____ | ____ | | \ | | \ | | | \ || ____
+ | | | |__ |_____]|______|_____| __|__ | \_| | \_| __|__ | \_||_____|
+
+ To get started, simply upload the file wormy.86g to your calculator/emu.
+ This file contains Wormy as well as a few levels. Then you simply run
+ Wormy by typing asm(wormy or by using some shell (just no AShell.)
+ When multiple levelfiles are present, you have to choose one first.
+ Next, you'll get in the main menu. Use up and down to choose an
+ option, left and right to alter it, and 2nd or enter to select.
+
+ - Mode - change gamemode (further details below). Select it to start.
+ - Level - select the (starting) level. Selecting it allows you to
+ customize some stuff for multiplayer levels.
+ - Link - toggle linkplay. Remember to activate it on _both_ calcs.
+ - Worms - set the number of players (upto 4) and teams (1 or 2).
+ - worm - select it to alter the selected player's name.
+ - controls - select and press your buttons for left and right.
+
+ ______ _____ __ _ . _______ ______ _____ _______
+ | \ | | | \ | ' | | \ | |______
+ |_____/ |_____| | \_| | |_____/ __|__ |______
+
+ That's really all you have to do. Avoid your worm from crashing into anything
+ (walls, bouncies, and worms; including yourself) by turning it left/right.
+ Default controls are: [1] left/right [2] F1/F2 [3] sto/, [4] enter/+
+ but they can be altered to anything except these two keys:
+ [EXIT] - this will always exit to the game-over screen.
+ [MORE] - will pause and allow you to change contrast 'n stuff.
+
+ _ _ _ _______ ______ _____ __ _ _______
+ | | | |______ | | | \ | | | \ | |______
+ |__|__| |______ |_____ |_____ |_____/ |_____| | \_| |______
+
+ At the end of each game, the stats-screen will be displayed. It shows the
+ score and deaths for each worm, and hiscore for singleplayer games.
+ The winner(s) of multiplayer games will be denoted with an *.
+ Hit enter to return to the main menu.
+
+ ______ _______ _______ _______ _______ _____ ______ _______ _______
+ | ____ |_____| | | | |______ | | | | | | \ |______ |______
+ |_____| | | | | | |______ | | | |_____| |_____/ |______ ______|
SINGLEPLAYER
Get all the food
TRON original Peaworm;
DEATH- Your just get as many
FOODMATCH MATCH tail peas as you can
- Deathmatch Multiplay- doesn't in a single level.
+ Deathmatch Multiplay- doesnt in a single level.
with food. er game in go away.
- The one who which u try Try to sur-
- reaches the to kill the vive as long
+ The one who which u try Try to sur-
+ reaches the to kill the vive as long
score-limit other worm(s) as possible.
first, wins. before they kill
you. There's no food,
- TIMEMATCH but by defauly worms slowly
+ TIMEMATCH but by default worms slowly
Try to stay get larger over time.
alive longer RACE
than the other All worms
dieing, but earn and 2+4 are teamed together.
10 for eating a pea.
- -=[LEVELS]=-
+ _______ _ _ _______ _______
+ | |______ \ / |______ | |______
+ |_____ |______ \/ |______ |_____ ______|
- Wormy comes together with WORMEDIT,
- the Wormy level editor for DOS I wrote.
- Start wormedit.exe and make some kick-ass
- levels! (Please do.) Also send me your levels
- so I can put them on my page. More info at shiar.org.
+ Wormy comes together with WORMEDIT, the Wormy level editor for DOS
+ I wrote. Start wormedit.exe and make some kick-ass levels! (Please do!!)
+ Also send me your levels so I can put them on my page. More info at shiar.org.
- -=[OF COURSE]=-
+ _____ _______ _______ _____ _ _ ______ _______ _______
+ | | |______ | | | | | |_____/ |______ |______
+ |_____| | |_____ |_____| |_____| | \_ ______| |______
- Argh, a disclaimer :( Just note Wormy was a non-profit project
- which took a lot of my (spare) time, so please don't go demand
- stuff (fixes, features..) or sue me (f)or anything. By default
- I am not responsible for any damage Wormy causes. Furthermore,
- you may not: release an altered version of Wormy (the source
- has been included for learning practises ONLY), distribute
- it w/o this readme file included (plz leave the zipfile
- intact), nor may you charge money for it. Thanks.
+ Argh, a disclaimer :( Just note Wormy was a non-profit project
+ which took a lot of my (spare) time, so please don't go demand
+ stuff (fixes, features..) or sue me (f)or anything. By default
+ I am not responsible for any damage Wormy causes. Furthermore,
+ you may not: release an altered version of Wormy (the source
+ has been included for learning practises ONLY), distribute
+ it w/o this readme file included (plz leave the zipfile
+ intact). Any questions and stuff, just _ask_ me!
- -=[HISTORY]=-
+ _ _ _____ _______ _______ _____ ______ __ __
+ |_____| | |______ | | | |_____/ \_/
+ | | __|__ ______| | |_____| | \_ |
This is a short historical overview of Worm(y):
(facts may not match reality)
- * End 1998: Matthew Shepcar releases Peaworm, worm in it's simplest form
- * Scabby didnt release another version with levels and vertical scrolling
- * End 1999: I (Shiar) got his permission to entirely screw up his Worm >:)
- * Jonah Cohen helped me for a while, but soon he either died or got bored
- * June 2000: Worm just didn't want to work correctly (linkplay problems
- mostly), so I decided to take a break to continue later..
- * Feb 2001: After a huge break I figured it's time to complete WormY
-* End 2001: Completed at last, and everyone lived happily ever after
-
--=[CREDITS]=-
-
- EMAiL wormy@shiar.org Please send me comments, fanmail and your levels!
- WWWW http://shiar.org Be sure to visit :) Lotsa stuff for your ticalc
- iRC shiar @ #ti [efnet] Idling here.
+ - End 1998 - Matthew Shepcar releases Peaworm, worm in its simplest form
+ - Scabby didnt release another version with levels and vertical scrolling
+ - End 1999 - I (Shiar) got his permission to entirely screw up his Worm >:)
+ - Jonah Cohen helped me for a while, but soon he either died or got bored
+ - June 2000 - Worm just didn't want to work correctly (linkplay problems
+ mostly), so I decided to take a break to continue later..
+ - Feb 2001 - After a huge break I figured it's time to complete Worm(y)
+- March 2002 - Completed at last, and everyone lived happily ever after
+
+ _______ ______ _______ ______ _____ _______ _______
+ | |_____/ |______ | \ | | |______
+ |_____ | \_ |______ |_____/ __|__ | ______|
+
+ EMAiL wormy@shiar.org Please send me comments, fanmail and your levels!
+ WWWW http://shiar.org Be sure to visit :) Lotsa stuff for your ticalc
+ iRC shiar @ #ti [efnet] Idling here.
Matthew Shepcar - for writing the original Peaworm and Wonderworm
Jonah Cohen - wrote some parts of Worm (like scrolling)
Many More - betatesters
too much.. - to list
Aaron Curtis - doesn't fit in layout yet :(
-______________________________________________________________________________
-=----------------------------------------------------------------------------=
\ No newline at end of file
+
+ _____________________________________________________________________________
\ No newline at end of file
; ����� ����� ������� �� ��� �����������
;_______________________________________________________________________________
;
-; Version : 98% (0.98.226)
-; Release Date : 2002 February 26
+; Version : 98% (0.98.227)
+; Release Date : 2002 February 27
; Author(s) : Shiar
; Email Address : wormy@shiar.org
; Web Page : www.shiar.org
; X [225] ED: ctf/race level copy/move fix
; X [225] LVL: episode #1: 5 ctf+5 race; episode #3 removed (all in #1 now)
; X [225] add v2 id (yas2)
+; X [227] redundant calls removed or moved
+; X [227] fixed: ctf score increased by taking _any_ pea
+; X [227] no more points in race for dieing on the second half
+; X [227] no score decrease for dieing in race (no longer needed, see above)
; 1% * LINK: >Somehow do a lot of testing with 2 calcs< *sigh*
; * LVL: episode #5: 10 easy sp levels (do i _have_ to?)
; * LVL: Eric's Yumworms (ep#5?)
;
; * correct team winners
; * level compression
-; * arrow to offscreen peas
-; * sound
-; * startpos
-; * pause in linkplay
-; * coop (DON'T COUNT ON IT)
+; * ubersized bouncies ;)
+; * arrow to offscreen peas
+; * w00t AI
+; * sound
+; * startpos
+; * pause in linkplay
+; * coop (DON'T COUNT ON IT)
;_______________________________________________________________________________
; _/_/_____ __ _ _______ _ _ ______ _______
_GETB_AHL = $46C3 ;a=(ahl) \ hl=ahl
_OP1TOOP6 = $4263
- #define buffer ;use display buffer (otherwise write directly to screen)
- #define readymask ;"greys" out the field before starting a level
- #define coolzgfx ;nice graphics for game over screen
+ #define id2 ;yas2 level identifier - this'll add (65) bytes
+ #define buffer ;use display buffer, otherwise write directly to screen (11)
+ #define readymask ;"greys" out the field before starting a level (20)
+;#define readytext ;-displays "prepare" before level starts (42)
+ #define coolzgfx ;nice graphics for game over screen (98)
#define spprotect ;options not changable for singleplayer modes
;#define intlevels ;-internal levels
-;#define readytext ;-displays "prepare" before level starts
- #define id2 ;yas2 level identifier (adds 65 bytes)
;-to become invincible, define the magic word :D
-levelhead = 'w'
-levelhead2 = 97 ;wormy levels header = "0"
+levelhead = 'w'
+levelhead2 = 97 ;wormy levels header = "0"
;_______________________________________________________________________________
; _______ _______ _____ ______ _______ ______ _______
;--- layout --------------------------------------------------------------------
-;(wormN) set:
+;(wormN) offs: set:
heading = 0 ;level*
pos = 2 ;level*
pos2 = 4 ;level
start: ;turn back NOW!
nop ;and so it begins...
jp Start
-#ifdef id2
+#ifndef id2
+ ld bc,$5242
+ rst 10h
+ .dw WormIcon
+#else
ld (bc),a
nop
ld d,h
rst 10h
.dw WormIcon
.dw WormData
-#else
- ld bc,$5242
- rst 10h
- .dw WormIcon
#endif
ld d,a
ld c,a
.db %1010010
jr nz,$+47
dec l
- .db " 98% .225",0
+ .db " 98% .227",0
WormIcon:
.db 8,2
.db %00000000,%00111100
rla ;=$17 (c=EXIT-key)
;or$A7 (c=0)
jp c,GameLoop
- jp Exit ;jr?
+ jr Exit
;--- pause menu ----------------------------------------------------------------
inc hl
ld (hl),b
inc hl
- cal resbit
+ ;(resbit)
+ ld a,h
+ and (ix+storepos)
+ ld h,a
ld (ix+head),l
ld (ix+head+1),h
inc hl
ld b,(hl)
inc hl
- cal resbit
+ ;(resbit)
+ ld a,h
+ and (ix+storepos)
+ ld h,a
psh hl
cal res4pixels ;rm last bit
pop hl
jr c,hitflag
;no peas hit:
ld a,e ;peek a (that's x86asm for pop\push ;)
- bit 1,a ;%10 = carrying flag?
+ bit 1,a ;%1O = carrying flag?
jr z,_wormdead ;if not just die
- xor %11 ;drop flag
- ld (ix+reserv),a
+ and %1 ;which flag?
ld hl,drawctfpea1 ;restore #1
- jr z,nottheotherflag ;which flag? (=and %1)
+ jr nz,nottheotherflag
inc hl ;ld hl,drawctfpea2
inc hl ;restore #2
nottheotherflag:
xor %11 ;invert flag taken + ownflag
ld (ix+reserv),a
and %10 ;just returned?
- psh af ;safe z-flag
psh bc ;safe position
+ psh af ;safe z-flag
cal DrawPea ;remove
- ld e,20 ;flag captured+returned
- cal z,IncScore
- pop bc
pop af
+ pop bc
ret nz ;flag taken: continue game ;drawworm
+ ld e,20 ;flag captured+returned
+ psh bc
+ cal IncScore
+ pop bc
ld a,3 ;draw delay
ld (drawctfpea1),a ;redraw..
ld (drawctfpea2),a ;..both flags
PeaY =$-2
PeaX =$-1
cal chkpeahit
- jr nc,_wormdead
+ jp nc,wormdead
;--- take pea ------------------------------------------------------------------
;--- misc ----------------------------------------------------------------------
checkhitlapline:
- ld a,(peaspos) ;63
+ ld a,(peaspos) ;63 usually
sub b ;x==63
jr z,nextlaphalf
- inc a
- ret nz
-nextlaphalf:
+ inc a ;(more checkin' since wormies just have those _huge_ heads ;)
+ ret nz ;x!=62
+nextlaphalf: ;x==62|63; a=0
ld a,(peaspos+1) ;yline
cp c ;ypos
ld a,1
; | | \_ |_____| |_____ ______|
;_______________________________________________________________________________
-releasekeys:
- halt
+releasekeys: ;---------->promise me you'll never let go...
+ halt ;-------------------->i won't let go....
ld a,%10000000 ;all key-masks
out (1),a
- in a,(1)
+ in a,(1) ;--------------->i'll never let go.....
inc a ;cp %11111111 (no keys pressed)
jr nz,releasekeys ;keep waitin
cal GET_KEY ;clear buffer
- ret
-
-resbit:
- ld a,h
- and (ix+storepos)
- ld h,a
- ret
+ ret ;--------------------->*die* (we are VICTORIOUS! muha)
randompos:
ld b,a
ld (ix+pos2),a ;y2
ld (ix+pos2+1),a ;x2
+ ld a,(handledworm) ;who are we? (1-4)
+ cpl ;invert (just bit 0 actually)
+ and 1 ;group 1 (1,3) or 0 (2,4)
+ ld (ix+reserv),a ;reset halflap|flags to starting settings
+
inc (ix+died)
dec (ix+lives)
psh af
- ld a,(gametype)
- cp gamectf ;ctf no death penalty
+ ld a,(gamecar)
+ and _datadecs ;ctf and race no death penalty
cal nz,DecScore10
pop af
ret nz ;HandleWorm done
.db %00011111,%11101111,%11110000,%00111111,%10000111,%00000001,%10000000,%00000011,%11111111,%11110000,%00111110,%00011110,%00010111,%01011101,%10010101,%01100101
.db %00001111,%10000011,%11100000,%00011111,%00000011,%00000001,%10000000,%00000000,%11111111,%11100000,%00000000,%00000000,%11100101,%01010101,%01000110,%01010011
+#ifdef coolzgfx
wtWormy: ;g/o
.db %00000110,%00111000,%00000000,%00111100,%00001111,%10001110,%00111100,%01111000,%00001100,%11011000,%11100011,%10000000,%00000000,%11111100,%00111000,%00000000
.db %00011001,%01000110,%11100000,%11000010,%00011100,%11011111,%01111110,%11111000,%00011110,%11011101,%11110111,%11000000,%00111111,%00000011,%01000110,%11100000
.db %01001100,%00011000,%00000000,%00000100,%00011000,%11011111,%01100010,%11001100,%00110011,%01101101,%10000111,%11000001,%00011100,%00111000,%00011000,%10000010
.db %01010010,%00100100,%01100000,%00011000,%00011111,%11011011,%11101110,%11111100,%00011111,%01111000,%11110110,%11100000,%11000000,%11000110,%00101001,%10000010
.db %01100001,%11000011,%10011111,%11100000,%00001111,%10001001,%11001100,%01111000,%00001110,%00110000,%01100110,%01100000,%00111111,%00000001,%11000110,%01111100
-
;.db %00000000,%00000001,%10000000,%00000000,%00001111,%10000000
-
-#ifndef coolzgfx
+#else
txtGO: .db 5,5,5,5,5," GAME OVER ",$CF,$CF,$CF,$CF,$CF,0
#endif
_dataPctf = %00001000 ;ctf peas=1
__bitPctf = 3
_datatime = %00010000 ;time incs score (timematch)
-;reserved %00100000 ;for future use
+_datadecs = %00100000 ;decrease score on death=1
_datafood = %01000000 ;food present=0 (6!)
_dataPmult = %10000000 ;multiple peas=1 (no _datafood) (7!)
; | | | | | | �turn speed (8=def)
; | | | | | | | �score limit (0=none)
gamesingle = 0 ; | | | | | | | |
-datasingle:.db %00000110,3,1,1,-1,-1, 8, 0 ;Singleplayer (SP; 3 lives)
+datasingle:.db %00100110,3,1,1,-1,-1, 8, 0 ;Singleplayer (SP; 3 lives)
gamepeas = 1
-datapeas: .db %00000100,1,1,1,-1,126,8, 0 ;Peaworm (SP; 1 live, 127 growth)
+datapeas: .db %00100100,1,1,1,-1,126,8, 0 ;Peaworm (SP; 1 live, 127 growth)
gametron = 2
-datatron: .db %01010100,1,1,1,-1, 0, 8, 0 ;Tron (SP; 1 live, cont.growth)
+datatron: .db %01110100,1,1,1,-1, 0, 8, 0 ;Tron (SP; 1 live, cont.growth)
gamedeathm = 3
-datadeathm:.db %01000000,3,2,1,-1,42, 8, 0 ;Deathmatch (3 lives, 50 growth)
+datadeathm:.db %01100000,3,2,1,-1,42, 8, 0 ;Deathmatch (3 lives, 50 growth)
gamefoodm = 4
-datafoodm: .db %00000000,0,2,1,-1,-1, 8,10 ;Foodmatch (100 score)
+datafoodm: .db %00100000,0,2,1,-1,-1, 8,10 ;Foodmatch (100 score)
gamemfoodm = 5
-datamfoodm:.db %11000010,0,2,1,-1,-1, 8,10 ;MuchFoodmatch (10 peas)
+datamfoodm:.db %11100010,0,2,1,-1,-1, 8,10 ;MuchFoodmatch (10 peas)
gametimem = 6
-datatimem: .db %01010000,1,2,1,-1, 0, 8, 0 ;Timematch (1 live, cont.growth)
+datatimem: .db %01110000,1,2,1,-1, 0, 8, 0 ;Timematch (1 live, cont.growth)
gamerace = 7
datarace: .db %01000000,0,2,1,-1,-1, 8,10 ;Race (100 score)
gamectf = 8