wormy 0.95.1C21
[wormy.git] / wormy.z80
index 22fc9186eee1171cdf216892eebe266110189862..0ff73a0d022c78b5e47506baadee378103e2217c 100644 (file)
--- a/wormy.z80
+++ b/wormy.z80
@@ -1,5 +1,5 @@
 ; Title                      : Wormy
-; Version                    : 96% (0.96.C14)
+; Version                    : 96% (0.96.C21)
 ; Release Date               : UUHHhhh... soon?!?
 ; Filename                   : wormy.86p (5kb)
 ; Author(s)                  : Shiar
 
 ; 96% = DONE
 
-;    [* internal levels         ]
-;    [  * check levels/gametype ]
-;    [  * enough hiscore saves! ]
-;    [* complete readme         ]
+;     * complete readme
 ;  1% * misc (pollish, bugs, &&&)
-;  1% * long length save (level#6)
-;     * mem at worm #4
+;     * mem at worm #4 (still 12 bytes or so.....)
+;     * fix line proc (+large circles)
 ;   * LINK
-;  1% * transmit game/level data
-;      Xfirst packet loss?? or vti onlyXXXXX
-;      X1/3 worms over linkXXXX
-;      Xsend new peas' positionsXXXXX
+;  1% * fix transmit game/level data
 
 ;100% = bugs fixed + levels done
 
-; MAYBE: sound
-; NO:   coop
+;>110%:        sound, startpos
+;>120%:        coop (DON'T COUNT ON IT)
 
 ;-----------------------------
 ;-----------------------------
@@ -45,6 +39,7 @@
 #define readymask   ;"greys" out the field before starting a level
 #define coolzgfx    ;nice graphics for game over screen
 
+;#define intlevels  ;internal levels
 ;#define readytext  ;displays "prepare" before level starts
 ;#define invincible ;worms cannot die =)
 ;#define optdie     ;in race games worms don't die when they run into each other
@@ -55,7 +50,6 @@
 
 #include "asm86.h"
 #include "ti86asm.inc"
-
 _SHRACC            = $4383 ;4x srl a
 _SHLACC            = $438B ;4x sll a
 _divHLby10         = $4044 ;hl=hl/10
@@ -102,16 +96,16 @@ worm3       = $AC3E ;-AC59 (1F)
 worm4       = $AC5D ;-AC77 (1F)
 balls       = $AC7C ;-ACFF (3x43d)
 SinCosTable = $AD00 ;-AE00 (4*40)
-        ;free $AE01 ;-AFFF (1FF)
+turn10      = $AE01 ;-AE01 (1) (counter)
+peaspos     = $AE02 ;-AE05 (4) (peas)
+;free       = $AE06 ;-AFFF (1FA)
 worm1p      = $B000 ;-B7FF (800)      %1011O000
 worm3p      = $B800 ;-BBFF (400)      %10111O00
-        ;free $BF91 ;-BFFF (6F)
-     ;program $D748 ;-EFFF (186D+4A)
+;free       = $BF91 ;-BFFF (6F)
+;program    = $D748 ;-EFFF (186D+4A)
 worm4p      = $F000 ;-F3FF (400)      %11110O00
 leveldata   = $F400 ;-FA70 (<=671)
-
-turn10      = $AE01 ;      (1) (counter)
-peaspos     = $AE02 ;-AE05 (4) (peas)
+       ;can you believe i actually left $269 bytes of memory unused?!?
 
 ;MEM|8---9---A---B---C---D---E---F---|
 ;   |..[------]||[]|......[-----]|[].|
@@ -131,21 +125,30 @@ DispBuffer  = $FC70
 ;------- program start -------
 ;-----------------------------
 
-.org _asm_exec_ram
-
-wormVhost   = 095
-wormVclient = 195
+ .org %1101011101001000
 
 start:
   nop
   jp  Start
-  .db 1
-  nop
+  ld  bc,42
+ .org $-1   ;3y3 M 1337!
   .dw WormTxt
   .dw WormIcon
-
 WormTxt:
-  .db "WORMY by SHIAR -- 96% C14",0
+  ld  d,a
+  ld  c,a
+  ld  d,d
+  ld  c,l
+  ld  e,c
+  jr  nz,$+100
+  ld  a,c
+  jr  nz,$+$55
+  ld  c,b
+  .dw 16713
+  .db %1010010
+  jr  nz,$+47
+  dec l
+  .db " 96% C21",0
 WormIcon:
   .db 8,2
   .db %00000000,%00111100
@@ -193,7 +196,7 @@ Start:
   ldir
   inc a   ;ld a,$D4
   ld  i,a
-  im  2
+  im  2 ;...it *does* work ;)
 
   cal _RAM_PAGE_7
   ld  hl,$BFFF ;VAT start
@@ -270,7 +273,11 @@ searchcomplete:
   ld  a,255
   ld  (ix),a ;end mark
 
+#ifdef intlevels
   ld  ix,templevels-6
+#else
+  ld  ix,templevels-3
+#endif
 levelselectmenu:
   psh ix ;offset
   ld  a,-2
@@ -313,7 +320,7 @@ displevel:
   jr  dispnextlevel
 
 readylevelfile: ;selected level at ahl
-; ld  hl,templevels-3
+; ld  hl,templevels-3/0
   ld  a,b
   add a,3 ;sellev+3 (#0==-3)
   ld  e,a
@@ -375,7 +382,11 @@ levdescclearloop:
   cal _vputs
   jr  levselectmenu+1
 __levselect:
+#ifdef intlevels
   ld  ix,templevels-6 ;reset 2 1st page
+#else
+  ld  ix,templevels-3
+#endif
 _levselect:
   ld  b,-2 ;level selected
   jr  levselect
@@ -533,12 +544,9 @@ dispmenuloop:
 ; ld  b,0 ;b=menu#
   ret
 
-;hr: ;draw horizontal line at hl
-;  ld  b,16
-;  jp  menuinvloop
-
-hr:
+hr: ;draw horizontal line at hl
   ld  b,16
+; jp  menuinvloop ;shorter but not good for pausescreen
 hrloop:
   ld  (hl),-1
   inc hl
@@ -1255,10 +1263,13 @@ skipballs:
 
 skipflags:
   ld  a,(Gametype)
+  cp  gamerace
+  jr  z,skiplaps
   cp  gamectf
   jr  nz,noflagstoskip
   inc hl
   inc hl
+skiplaps:
   inc hl
   inc hl
 noflagstoskip:
@@ -1304,8 +1315,35 @@ LetsGetThisPartyOn:
   ld  a,$17 ;no exit
   ld  (CheckExit),a ;set exit state
 
+setupworms:
+  ld  hl,worm1set
+  ld  de,worm1
+  ld  a,4 ;4x (all worms)
+createwormsloop:
+  ex  de,hl
+  ld  bc,died ;0008
+  add hl,bc
+; ld  b,0
+  ld  (hl),b ;died=0
+  inc hl
+  ld  (hl),b ;score=0
+  inc hl
+  ld  (hl),b ;score+1=0
+  inc hl
+  ld  (hl),2 ;delay=2
+  inc hl
+  ld  (hl),3 ;lives=x
+wormbeglives =$-1
+  inc hl
+  ex  de,hl  ;de=wormX+head
+  ld  bc,18
+  ldir       ;copy 18 bytes
+  dec a      ;loop
+  jr  nz,createwormsloop
+
+OhMyGodItsALabel:      ;pj34r my coding skillz
   cal loadgamecar
-  psh hl
+  psh hl ;datatype
   cal hlatlevel
   ex  (sp),hl ;pop \ psh leveldata
   psh hl ;psh loadgamecar
@@ -1316,6 +1354,9 @@ gameCar =$-1
 
 ;--------- link ------------
 
+wormVhost   = 095
+wormVclient = 195
+
 linkmatch:
   cal _clrWindow
   ld  c,wormVhost
@@ -1359,14 +1400,20 @@ setclient:
   ld  hl,worm2+name
   ld  b,9
   cal sendstuff
-  pop hl
-  pop de
+  pop hl ;loadgamecar
+  pop de ;leveldata
   psh de
-  psh hl
-  ld  b,168
+  psh hl ;loadgamecar
+  ld  b,8
+  cal sendstuff
+  ld  hl,gameCar
+  ld  b,1
+  cal sendstuff
+  ld  hl,Gametype
+  ld  b,1
   cal sendstuff
   ex  de,hl
-  ld  b,8
+  ld  b,168
   cal sendstuff
   jr  StartLevel
 sendstuff:
@@ -1409,16 +1456,22 @@ sethost:
   ld  hl,worm2+name
   ld  b,9
   cal recvstuff
-  pop hl
-  pop de
-  ld  hl,templevels
+  pop hl ;loadgamecar
+  pop de ;leveldata
+  ld  hl,templevels ;&&&&&&&
   ld  de,datalink
   psh de
-  psh hl
-  ld  b,168
+  psh hl ;loadgamecar
+  ld  b,8
+  cal recvstuff
+  ld  hl,gameCar
+  ld  b,1
+  cal recvstuff
+  ld  hl,Gametype
+  ld  b,1
   cal recvstuff
   ex  de,hl
-  ld  b,8
+  ld  b,168
   cal recvstuff
 
 ;-------- load level ---------
@@ -1447,32 +1500,6 @@ StartLevel:
   cal _HLTIMES10 ;hl=10*(hl)
   ld  (scorelimit),hl
 
-setupworms:
-  ld  hl,worm1set
-  ld  de,worm1
-  ld  a,4 ;4x (all worms)
-createwormsloop:
-  ex  de,hl
-  ld  bc,died ;8
-  add hl,bc
-; ld  b,0
-  ld  (hl),b ;died=0
-  inc hl
-  ld  (hl),b ;score=0
-  inc hl
-  ld  (hl),b ;score+1=0
-  inc hl
-  ld  (hl),2 ;delay=2
-  inc hl
-  ld  (hl),3 ;lives=x
-wormbeglives =$-1
-  inc hl
-  ex  de,hl  ;de=wormX+head
-  ld  bc,18
-  ldir       ;copy 18 bytes
-  dec a      ;loop
-  jr  nz,createwormsloop
-
 Nextlevel:
   cal _clrWindow
   pop hl ;begin of current level
@@ -1575,8 +1602,11 @@ worminit:
   ld  (hl),a ;y2
   inc hl
   ld  (hl),a ;x2
+  inc hl
+  inc hl
+  ld  (hl),a ;growH=0
 
-  ld  bc,(worm2-worm1)-5
+  ld  bc,(worm2-worm1)-7
   add hl,bc
   pop bc ;<0
   dnz worminit
@@ -2246,6 +2276,8 @@ removewormloop:
   cal res4pixels
   pop hl
   inc (ix+grow)
+  jr  nz,DoesWormTailEqualsWormHead
+  inc (ix+grow+1) ;+256
 DoesWormTailEqualsWormHead:
   cal _cphlde
   jr  nz,removewormloop
@@ -2256,6 +2288,7 @@ DoesWormTailEqualsWormHead:
   ld  a,0
 beginsize =$-1
   ld  (ix+grow),a
+  ld  (ix+grow+1),0 ;high
 safewormsizedone:
 
   ;de=ix+head
@@ -2375,6 +2408,7 @@ donediddelydone:
   ld  e,(ix+pos2)
   ld  d,(ix+pos2+1)
 
+#ifdef optdie
   psh hl
   ld  hl,previouspos
   ld  (hl),c
@@ -2386,6 +2420,7 @@ donediddelydone:
   inc hl
   ld  (hl),d
   pop hl
+#endif
 
 ;-------- move worm ----------
 
@@ -2466,6 +2501,9 @@ PeaX =$-1
   add a,15
 peagrowth =$-1
   ld  (ix+grow),a
+  jr  nc,wormset2grow
+  inc (ix+grow+1)
+wormset2grow:
   cal NewPea
   ld  hl,Left
   dec (hl)
@@ -2608,37 +2646,6 @@ checklap:
   pop bc
   ret
 
-#ifdef optdie
-checkhitotherworm:
- .db  $dd,$7d ;ld a,lx
-  cp  worm2&255
- psh ix
- jr nz,chkworm2 ; ret nz
-  ld  ix,worm1
- jr chkworm
-chkworm2:
- ld ix,worm2
-
-chkworm:
- ld h,(ix+tail+1)
- ld l,(ix+tail)
- ld e,(ix+head)
- ld d,(ix+head+1)
-  cal ChkWorm
- pop ix
-  ret z ;not hit
-  pop bc ;call
-#endif
-stopworm:
-  ld  bc,0
-previouspos =$-2
-  ld  de,0
-  ld  (ix+pos),c
-  ld  (ix+pos+1),b
-  ld  (ix+pos2),e
-  ld  (ix+pos2+1),d
-  ret
-
 ;-------- draw worm ----------
 
 Drawworm:
@@ -2665,10 +2672,14 @@ Drawworm:
   ld  (ix+head),l
   ld  (ix+head+1),h
 
-  ld  a,(ix+grow)
-  dec a
+  ld  l,(ix+grow)
+  ld  h,(ix+grow+1)
+  dec hl
+  ld  a,h
+  or  l
   jr  z,removetail
-  ld  (ix+grow),a
+  ld  (ix+grow),l
+  ld  (ix+grow+1),h
   ret
 
 removetail:
@@ -2681,6 +2692,13 @@ removetail:
   cal resbit
   ld  (ix+tail),l
   ld  (ix+tail+1),h
+  psh hl
+  cal res4pixels
+  pop hl
+  ld  c,(hl)
+  inc hl
+  ld  b,(hl)
+  jr  set4pixels
 
 res4pixels:
   cal ResPixel
@@ -2827,7 +2845,7 @@ Seed =$+1
 WormDead:
 #ifdef invincible
   jp  stopworm
-#else
+#endif
   ld  a,2
   ld  (flashtime),a
   ld  (ix+delay),respawndelay
@@ -2880,6 +2898,37 @@ anyworm:
   ld  a,$A7 ;exit@end of turn
   ld  (CheckExit),a ;set exit state
   ret ;finish turn
+
+#ifdef optdie
+checkhitotherworm:
+ .db  $dd,$7d ;ld a,lx
+  cp  worm2&255
+ psh ix
+ jr nz,chkworm2 ; ret nz
+  ld  ix,worm1
+ jr chkworm
+chkworm2:
+ ld ix,worm2
+
+chkworm:
+ ld h,(ix+tail+1)
+ ld l,(ix+tail)
+ ld e,(ix+head)
+ ld d,(ix+head+1)
+  cal ChkWorm
+ pop ix
+  ret z ;not hit
+  pop bc ;call
+
+stopworm:
+  ld  bc,0
+previouspos =$-2
+  ld  de,0
+  ld  (ix+pos),c
+  ld  (ix+pos+1),b
+  ld  (ix+pos2),e
+  ld  (ix+pos2+1),d
+  ret
 #endif
 
 CheckPea: ;@hl; destr:abcde
@@ -2918,24 +2967,6 @@ tryDrawPea: ;hl=peapos;bc=dopea
   jr  z,DrawPea
   ret
 
-sendnewpeaoverlink:
-  ld  a,(gameCar)
-  rra ;and _datalink
-  ret nc ;no link
-  ld  a,(ix+left)
-  or  a
-  jr  z,receivenewpeaoverlink
-  ld  c,l ;send pea's pos
-  cal Qsend
-  ld  c,h
-  jp  Qsend ;&&&possible jr
-receivenewpeaoverlink:
-  cal Qrecv ;Crecv
-  ld  l,c
-  cal Qrecv ;Crecv
-  ld  h,c
-  ret
-
 NewPea:
   ld  a,(FieldWidth)
   add a,127-4
@@ -3012,7 +3043,7 @@ chktimematchover:
   jr  z,nneexxtt ;yourself
   cp  (hl)
   ret nz ;someone else still alive
-  dec hl ;+delay
+  dec hl ;+del0ay
   dec hl ;+score+1
   ld  a,(hl)
   cp  (ix+score+1)
@@ -3652,103 +3683,118 @@ drawline: ;(d,e)-(h,l)
   psh bc  ;destr: a
   psh hl
   psh de
-  ld  a,d
-  cp  h
-  jr  c,lineOrdered
-  ex  de,hl
-lineOrdered:
+  ld  a,d              ;a=d=x
+  cp  h                        ;h=xx
+  jr  c,lineXincs      ;if x>xx
+  ex  de,hl            ;make x<xx
+lineXincs:             ;deltax=|deltax|
   ld  b,d
-  ld  c,e
-  psh hl
-  psh bc
-  cal FindPixel
-  pop bc
-  pop de
-connectedLine:
-  psh hl
-  ld  h,c
-  ld  c,a
-  ld  a,d
-  sub b
-  ld  b,a
-  ld  a,e
-  jr  nz,LineNotPoint
-  cp  h
-  jr  nz,LineNotPoint
-  pop hl
-  jr  DoneLine
-LineNotPoint:
-  sub h
-  ld  de,32
-  jr  nc,LinePositiveY
-  neg
-  ld  de,-32
-LinePositiveY:
-  cp  b
-  jr  nc,SteepLine
-  add a,a
-  ld  (line2sm+1),a
+  ld  c,e              ;bc=x,y
+  psh hl               ;hl=xx,yy
+  cal FindPixel                ;  (ahl=x+y)
+  ex  (sp),hl          ;       :hl>
+  ld  c,a              ;c=mask (always)
+  ld  a,h              ;a=xx
+  sub b                        ;xx-x
+  ld  b,a              ;b=deltax (always>0)
+  ld  a,l              ;a=yy
+  jr  nz,lineexists    ;deltax!=0
+  cp  e                        ;yy==y
+  jr  nz,lineexists    ;deltay!=0
+  pop hl               ;       :<hl
+  jr  DoneLine         ;line is 1 pixel
+lineexists:
+  sub e                        ;a=deltay
+  ld  de,32            ;go down (def)
+  jr  nc,lineYincs     ;cf = deltay<0
+  neg                  ;a=|deltay|
+  ld  de,-32           ;go up
+lineYincs:             ;lets assume y incs as well
+  cp  b                
+  jr  nc,SteepLine     ;deltay<deltax?
+  ld  (line2sm+1),a    ;a=deltay
   ld  h,a
   xor a
   sub b
-  add a,a
-  ld  (line1sm+1),a
-  ld  a,h
-  sub b
-  pop hl
-LineLoopGentle:
-  psh af
+  ld  (line1sm+1),a    ;a=-deltax
+  rra
+  add a,h              ;a=deltay-deltax/2
+  pop hl               ;       :<hl
+
+linedrawxloop:
+  psh af               ;init z=dy-dx
   ld  a,(hl)
-  or  c
+  or  c                        ;|c:hl
   ld  (hl),a
   rrc c
   jr  nc,$+3
-  inc hl
+  inc hl               ;(x++,y)
   pop af
-  jp  m,line2sm
+  jp  m,line2sm                ;z<0
 line1sm:
-  add a,0
-  add hl,de
+  add a,0              ;z-=deltax
+  add hl,de            ;(x,y++)
 line2sm:
-  add a,0
-  dnz LineLoopGentle
+  add a,0              ;z+=deltay
+  dnz linedrawxloop    ;|deltax| times
+
 DoneLine:
   ld  a,(hl)
-  or  c
-  ld  (hl),a
+  or  c                        ;|c:hl
+  ld  (hl),a           ;draw end
   pop de
   pop hl
   pop bc
   ret
+
 SteepLine:
-  ld  h,a
-  neg
-  add a,a
+  ld  h,a              ;h=deltay
+  neg                  ;a=-deltay
   ld  (line3sm+1),a
   ld  a,b
-  add a,a
-  ld  (line4sm+1),a
-  sub h
-  ld  b,h
-  pop hl
-LineLoopSteep:
-  psh af
+  ld  (line4sm+1),a    ;a=deltax
+  sub h                        ;a=deltax-deltay
+  ld  b,h              ;b=deltay
+  pop hl               ;       :<hl
+linedrawyloop:
+  psh af               ;init z=2(dx-dy)
   ld  a,(hl)
-  or  c
+  or  c                        ;|c:hl
   ld  (hl),a
-  add hl,de
+  add hl,de            ;(x,y++)
   pop af
-  jp  m,line4sm
+  jp  m,line4sm                ;z<0
 line3sm:
-  add a,0
+  add a,0              ;z-=deltay
   rrc c
   jr  nc,$+3
-  inc hl
+  inc hl               ;(x++,y)
 line4sm:
-  add a,0
-  dnz LineLoopSteep
+  add a,0              ;z+=deltax
+  dnz linedrawyloop    ;|deltay| times
   jr  DoneLine
 
+
+;--- foo ---
+;wild insert
+receivenewpeaoverlink:
+  cal Qrecv ;Crecv
+  ld  l,c
+  cal Qrecv ;Crecv
+  ld  h,c
+  ret
+sendnewpeaoverlink:
+  ld  a,(gameCar)
+  rra ;and _datalink
+  ret nc ;no link
+  ld  a,(ix+left)
+  or  a
+  jr  z,receivenewpeaoverlink
+  ld  c,l ;send pea's pos
+  cal Qsend
+  ld  c,h
+; jr  Qsend ;that's why it's here
+
 ;..and last but not least..:
 ;-----------------------------
 ;----------- link ------------
@@ -3757,38 +3803,6 @@ line4sm:
 timeout = $8000
 lossout = 20
 
-linkok:
-  ld  a,D0HD1H
-  out (7),a            ;raise both wires = link ok
-  ret
-
-checklink:             ;load wires in A and check for timeout
-  dec de               ;decrease timer
-  ld  a,d
-  or  e
-  jr  z,linktimeout    ;timeout if de==0
-linktest:
-  ld  a,$BF
-  out (1),a            ;select keys
-  in  a,(1)            ;input
-  bit 6,a              ;exit key
-  jp  z,Exit           ;break!
-linkfine:
-  in  a,(7)
-  and %11
-  ret
-linktimeout: ;de==0
-  cal linkok
-  ld a,0               ;losses so far
-linklosses =$-1
-  inc a                ;and this is another one
-  ld (linklosses),a
-  pop de               ;return from link
-  cp  lossout          ;quit if too many errors
-  ret c                ;otherwise just continue
-linkerr:
-  jp  Exit
-
 ;---- SEND ----
 
 Qsend:         ;--- try to send 8 bits in C; CF=error --- destr:abcde ---
@@ -3853,12 +3867,46 @@ recvfinish:
   ld (linklosses),a    ;reset number of losses
   ret
 
+;---- COMMON ----
+
+linkok:
+  ld  a,D0HD1H
+  out (7),a            ;raise both wires = link ok
+  ret
+
+checklink:             ;load wires in A and check for timeout
+  dec de               ;decrease timer
+  ld  a,d
+  or  e
+  jr  z,linktimeout    ;timeout if de==0
+linktest:
+  ld  a,$BF
+  out (1),a            ;select keys
+  in  a,(1)            ;input
+  bit 6,a              ;exit key
+  jp  z,Exit           ;break!
+linkfine:
+  in  a,(7)
+  and %11
+  ret
+linktimeout: ;de==0
+  cal linkok
+  ld a,0               ;losses so far
+linklosses =$-1
+  inc a                ;and this is another one
+  ld (linklosses),a
+  pop de               ;return from link
+  cp  lossout          ;quit if too many errors
+  ret c                ;otherwise just continue
+linkerr:
+  jp  Exit
+
+#ifdef intlevels
 
 ;-----------------------------
 ;---------- levels -----------
 ;-----------------------------
 
-;&&&&& 99%
 LevelDef:
   .db 5,4,15,15,0,0    ;peas,speed,growth,begin_size,sprite,balls
   .db 0,2,63           ;start d, y, x
@@ -3915,6 +3963,8 @@ LevelDefC: ;ctf
   .db 27,8,27,116
   .db 0
 
+#endif
+
 ;-----------------------------
 ;---------- data -------------
 ;-----------------------------
@@ -4026,11 +4076,16 @@ txtposReady = 7
 txtGO:     .db 5,5,5,5,5," GAME OVER ",$CF,$CF,$CF,$CF,$CF,0
 #endif
 
+#ifdef intlevels
 datalevels: .dw LevelDef, LevelDefM
             .dw LevelDefT,LevelDefM
             .dw LevelDefM,LevelDefM
             .dw LevelDefR,LevelDefC
 nrlevels:   .db 0,3,1,3,3,3,3,1     ;=defaults
+#else
+datalevels: .dw 0,0,0,0,0,0,0,0
+nrlevels:   .dw 0,0,0,0
+#endif
 
 _datalink      = %0000001 ;linkplay
 _datafoodl     = %0000010 ;left=0 limit
@@ -4080,11 +4135,13 @@ worm4set:  .dw worm4p,worm4p
 worm4name: .db "JIM     ",0
 
 defhiscrpos:
+#ifdef intlevels
   .db 0,0,"SHI"
   .db 0,0,"SHI"
   .db 0,0,"SHI"
   .db 0,0,"SHI"
   .db 0,0,"SHI"
+#endif
 
 Gametype:  .db 0 ;last gamemode
 
@@ -4114,50 +4171,19 @@ startdelay    = 30
 respawndelay  = 30
 maxnamelength = 8+1
 
-;bla space (reserved for internal levels)
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "WWW.SHIAR.ORG  WWW.SHIAR.ORG  "
-.db "   wormy@shiar.org",0
-
 defspritesz = 4
 defspriteimg:  .db %01100000
                .db %11110000
                .db %11110000
                .db %01100000
 
+#ifdef intlevels
 deflevels:
   .db "Internal Levels",0
-  .db "by SHIAR -- still t"
-  .db "o be added...." ;,0
+  .db "by Shiar" ;,0
 
   .db 0,deflevels/256,deflevels&255
+#endif
 templevels:
 
 ;-----------------------------