wormy 0.95.1B09
authorMischa Poslawsky <wormy@shiar.org>
Wed, 12 Dec 2001 20:20:06 +0000 (21:20 +0100)
committerMischa Poslawsky <wormy@shiar.org>
Mon, 2 Mar 2009 21:31:52 +0000 (22:31 +0100)
wormy.z80

index edb70567e7d1f53e739135f999a81bf4f9f31cfa..8af33c29e50eece891152019087e95ebc91c9de3 100644 (file)
--- a/wormy.z80
+++ b/wormy.z80
@@ -1,6 +1,6 @@
 ; Title                      : Wormy
 ; Title                      : Wormy
-; Version                    : 95%
-; Release Date               : summer 2001
+; Version                    : 95% (0.95.B09)
+; Release Date               : OOHHhhh... soon?!?
 ; Filename                   : wormy.86p (5kb)
 ; Author(s)                  : Shiar
 ; Email Address              : wormy@shiar.org
 ; Filename                   : wormy.86p (5kb)
 ; Author(s)                  : Shiar
 ; Email Address              : wormy@shiar.org
 ;    [  * enough hiscore saves! ]
 ;    [* complete readme         ]
 ;  1% * misc (pollish, bugs, &&&)
 ;    [  * enough hiscore saves! ]
 ;    [* complete readme         ]
 ;  1% * misc (pollish, bugs, &&&)
+;  1% * long length save (level#6)
+;     * mem at worm #4
 ;   * LINK
 ;   * LINK
-;     * fix first packet loss
 ;  1% * transmit game/level data
 ;  1% * transmit game/level data
-;  1% * 1/3 worms over link
-;;;1% * get g/o signal (l&l) working
-;;;1% * send new peas' positions
+;      Xfirst packet loss?? or vti onlyXXXXX
+;      X1/3 worms over linkXXXX
+;      Xsend new peas' positionsXXXXX
 
 ;100% = bugs fixed + levels done
 
 
 ;100% = bugs fixed + levels done
 
+; MAYBE: sound
+; NO:   coop
+
 ;-----------------------------
 ;-----------------------------
 ;-----------------------------
 ;-----------------------------
-;---------  W O R M  ---------
+;-------  W O R M Y  ---------
 ;-----------------------------
 ;-----------------------------
 
 ;-----------------------------
 ;-----------------------------
 
@@ -116,6 +120,7 @@ peaspos     = $AE02 ;-AE05 (4) (peas)
 ;--- temporary
 
 namelength  = $BC00 ;(1)         @menu
 ;--- temporary
 
 namelength  = $BC00 ;(1)         @menu
+datalink    = $BC00 ;(8)        @init
 #ifdef buffer
 DispBuffer  = $BC00 ;(10x57d)    @game
 #else
 #ifdef buffer
 DispBuffer  = $BC00 ;(10x57d)    @game
 #else
@@ -128,12 +133,12 @@ DispBuffer  = $FC70
 
 .org _asm_exec_ram
 
 
 .org _asm_exec_ram
 
-wormVhost   = 093
-wormVclient = 193
+wormVhost   = 095
+wormVclient = 195
 
 start:
   nop
 
 start:
   nop
-  jp Start
+  jp  Start
   .db 1
   nop
   .dw WormTxt
   .db 1
   nop
   .dw WormTxt
@@ -156,13 +161,13 @@ levelhead  = 'w'
 levelhead2 = 95 ;wormy levels header = "95"
 
 int_handler:
 levelhead2 = 95 ;wormy levels header = "95"
 
 int_handler:
-  ex af,af'
-  in a,($03)
+  ex  af,af'
+  in  a,($03)
   bit 3,a
   bit 3,a
-  jp z,$0039
+  jp  z,$0039
   res 0,a
   out ($03),a
   res 0,a
   out ($03),a
-  jp $0039
+  jp  $0039
 int_end:
 
 Start:
 int_end:
 
 Start:
@@ -1150,7 +1155,9 @@ nameentered:
   ld  (ix+8),0 ;end mark
   jp  DisplayMenu
 
   ld  (ix+8),0 ;end mark
   jp  DisplayMenu
 
-;--proc
+;-----------------------------
+;------- procs-n-stuff -------
+;-----------------------------
 
 ubergetkey:
   halt ;woo hoo
 
 ubergetkey:
   halt ;woo hoo
@@ -1246,9 +1253,9 @@ skipflags:
 noflagstoskip:
 
 skipobjects:
 noflagstoskip:
 
 skipobjects:
-  ld  a,(hl)
-  inc hl
-  or  a
+  xor a
+  or  (hl)
+  inc hl ;nf
   ret z ;0=end
   inc hl
   inc hl
   ret z ;0=end
   inc hl
   inc hl
@@ -1288,34 +1295,15 @@ LetsGetThisPartyOn:
 
   cal loadgamecar
   psh hl
 
   cal loadgamecar
   psh hl
-  ld  (wormbeglives),a
-  inc hl ;nrworms
-  ld  a,(hl)
-  ld  (nrworms),a
-  inc hl ;level
-  inc hl
-  ld  a,(hl)
-  ld  (customspeed),a
-  inc hl
-  ld  a,(hl)
-  ld  (growspeed),a
-  inc hl
-  ld  a,(hl)
-  ld  (turnleft),a
-  ld  (turnright),a ;more efficient
-  inc hl
-  ld  l,(hl)
-  ld  h,0
-  cal _HLTIMES10       ;hl=10*(hl)
-  ld  (scorelimit),hl
-
-  pop hl ;loadgamecar
   cal hlatlevel
   cal hlatlevel
-
-  psh hl  ;1st level
-  ld  a,(gameCar)
+  ex  (sp),hl ;pop \ psh leveldata
+  psh hl ;psh loadgamecar
+  ld  a,0
+gameCar =$-1
   rra ;and _datalink
   rra ;and _datalink
-  jr  nc,GameOver
+  jp  nc,StartLevel ;&&&jr
+
+;--------- link ------------
 
 linkmatch:
   cal _clrWindow
 
 linkmatch:
   cal _clrWindow
@@ -1335,22 +1323,120 @@ linkmatch:
 host:
   ld  c,wormVclient
   cal Qsend
 host:
   ld  c,wormVclient
   cal Qsend
-  ld  a,$18
-  jr  multiplayer
+  jr  sethost
 client:
   ld  hl,txtReceive
   cal _puts
 client:
   ld  hl,txtReceive
   cal _puts
-  ld  a,$E6
-multiplayer:
-  ld  (SwapPos),a
-; ld  a,2
-; ld  (nrworms),a
+setclient:
+ ;name/keys: wormy#1 = link    = 0  + link (name1)
+ ;                 2 = worm #1 = #1 + local(name1)
+ ;                 3 = link    = 0  + link (name2)
+ ;                 4 = worm #2 = #2 + local(name2)
+  ld  de,worm2+left
+  ld  hl,worm1+left
+  ldi ;keys worm#2 = worm#1
+  ldi ;+right
+  ld  de,worm4+left
+  ldi ;keys worm#4 = worm#2
+  ldi
+  xor a
+  ld  (worm1+left),a ;worm 1...
+  ld  (worm3+left),a ;and worm 3 via link
+  ld  hl,worm1+name
+  ld  b,9
+  cal recvstuff
+  ld  hl,worm2+name
+  ld  b,9
+  cal sendstuff
+  pop hl
+  pop de
+  psh de
+  psh hl
+  ld  b,168
+  cal sendstuff
+  ex  de,hl
+  ld  b,8
+  cal sendstuff
+  jr  StartLevel
+sendstuff:
+  psh de
+sendstuffloop:
+  psh bc
+  ld  c,(hl)
+  inc hl
+  cal Qsend
+  pop bc
+  dnz sendstuffloop
+  pop de
+  ret
+recvstuff:
+  psh de
+recvstuffloop:
+  psh bc
+  cal Qrecv
+  ld  (hl),c
+  inc hl
+  pop bc
+  dnz recvstuffloop
+  pop de
+  ret
+sethost:
+ ;name/keys: wormy#1 = worm #1 = ok
+ ;                 2 = link    = 0  + link (name1)
+ ;                 3 = worm #2 = #2 + local(name2)
+ ;                 4 = link    = 0  + link (name2)
+  ld  de,worm3+left
+  ld  hl,worm2+left
+  ldi ;keys worm#3 = worm#2
+  ldi ;+right
+  xor a
+  ld  (worm2+left),a ;worm 2+4..
+  ld  (worm4+left),a ;..over link
+  ld  hl,worm1+name
+  ld  b,9
+  cal sendstuff
+  ld  hl,worm2+name
+  ld  b,9
+  cal recvstuff
+  pop hl
+  pop de
+  ld  hl,templevels
+  ld  de,datalink
+  psh de
+  psh hl
+  ld  b,168
+  cal recvstuff
+  ex  de,hl
+  ld  b,8
+  cal recvstuff
 
 
-;-----------------------------
-;--------- game over ---------
-;-----------------------------
+;-------- load level ---------
+
+StartLevel:
+  pop hl ;loadgamecar
+  ld  a,(hl)
+  ld  (wormbeglives),a
+  inc hl ;nrworms
+  ld  a,(hl)
+  ld  (nrworms),a
+  inc hl ;level
+  inc hl
+  ld  a,(hl)
+  ld  (customspeed),a
+  inc hl
+  ld  a,(hl)
+  ld  (growspeed),a
+  inc hl
+  ld  a,(hl)
+  ld  (turnleft),a
+  ld  (turnright),a ;more efficient
+  inc hl
+  ld  l,(hl)
+  ld  h,0
+  cal _HLTIMES10 ;hl=10*(hl)
+  ld  (scorelimit),hl
 
 
-GameOver:
+setupworms:
   ld  hl,worm1set
   ld  de,worm1
   ld  a,4 ;4x (all worms)
   ld  hl,worm1set
   ld  de,worm1
   ld  a,4 ;4x (all worms)
@@ -1376,12 +1462,12 @@ wormbeglives =$-1
   dec a      ;loop
   jr  nz,createwormsloop
 
   dec a      ;loop
   jr  nz,createwormsloop
 
-StartLevel:
+Nextlevel:
   cal _clrWindow
   pop hl ;begin of current level
   ld  a,(hl)
   inc a ;=255?
   cal _clrWindow
   pop hl ;begin of current level
   ld  a,(hl)
   inc a ;=255?
-  jp  nz,nextlevel
+  jp  nz,donextlevel
 
   psh hl
   ld  hl,Level
 
   psh hl
   ld  hl,Level
@@ -1393,7 +1479,7 @@ StartLevel:
   psh bc   ;where to go afterwards
   inc hl   ;location of ending-code
   jp  (hl) ;go there ("call")
   psh bc   ;where to go afterwards
   inc hl   ;location of ending-code
   jp  (hl) ;go there ("call")
-nextlevel:
+donextlevel:
   ld  a,(Gametype)
   or  a ;gamesingle
   psh af
   ld  a,(Gametype)
   or  a ;gamesingle
   psh af
@@ -1491,6 +1577,7 @@ worminit:
 
 ;-------- draw level ---------
 
 
 ;-------- draw level ---------
 
+initlevel:
   ld  a,(de)
   inc de
   sub 128
   ld  a,(de)
   inc de
   sub 128
@@ -1586,8 +1673,9 @@ levelhasbeensetup:
 
   cal drawstuff
 
 
   cal drawstuff
 
-;-----------------------------
+;--------- prepare -----------
 
 
+leveldone:
   psh hl                        ; >> levelp new
   cal forceshowstats
 
   psh hl                        ; >> levelp new
   cal forceshowstats
 
@@ -1609,7 +1697,6 @@ maskline:
   dec c
   jr  nz,maskloop
 #endif
   dec c
   jr  nz,maskloop
 #endif
-
 #ifdef readytext
   ld  hl,$FDE0
   ld  de,$FDE1
 #ifdef readytext
   ld  hl,$FDE0
   ld  de,$FDE1
@@ -1624,54 +1711,6 @@ maskline:
   res 3,(iy+5)
 #endif
 
   res 3,(iy+5)
 #endif
 
-  ld  a,0
-gameCar =$-1
-  rra ;and _datalink
-  jr  nc,initfinished ;no link
-  xor a
-SwapPos: ;$18 xx -> $E6 xx
-         ; jr xx -> and xx
-  jr  sethost
-setclient:
-  ld  (worm1+left),a ;worm 1...
-  ld  (worm3+left),a ;and worm 3 via link
-  ld  hl,worm1+name
-  ld  b,9
-  cal recvstuff
-  ld  hl,worm2+name
-  ld  b,9
-  cal sendstuff
-  jr  initfinished
-sendstuff:
-  psh bc
-  ld  c,(hl)
-  inc hl
-  psh hl
-  cal Qsend
-  pop hl
-  pop bc
-  dnz sendstuff
-  ret
-recvstuff:
-  psh bc
-  psh hl
-  cal Qrecv
-  pop hl
-  ld  (hl),c
-  inc hl
-  pop bc
-  dnz recvstuff
-  ret
-sethost:
-  ld  (worm2+left),a ;worm 2+4..
-  ld  (worm4+left),a ;..over link
-  ld  hl,worm1+name
-  ld  b,9
-  cal sendstuff
-  ld  hl,worm2+name
-  ld  b,9
-  cal recvstuff
-initfinished:
   ld  a,(gameCar)
   and _datafood
   jr  z,nofood
   ld  a,(gameCar)
   and _datafood
   jr  z,nofood
@@ -2164,7 +2203,7 @@ respawncheck:
   jr  nz,unnamedlabel
   cal saverespawncounter
 removeworm:
   jr  nz,unnamedlabel
   cal saverespawncounter
 removeworm:
-  ld  h,(ix+tail+1)
+  ld  h,(ix+tail+1) ;&
   ld  l,(ix+tail)
   ld  d,(ix+head+1)
   ld  e,(ix+head)
   ld  l,(ix+tail)
   ld  d,(ix+head+1)
   ld  e,(ix+head)
@@ -2267,7 +2306,9 @@ inlink:
   ld  l,c
   ret
 
   ld  l,c
   ret
 
+;-----------------------------
 ;------- handle worm ---------
 ;------- handle worm ---------
+;-----------------------------
 
 HandleWorm:
   xor a
 
 HandleWorm:
   xor a
@@ -2426,7 +2467,7 @@ peagrowth =$-1
   pop hl                         ; << call
   pop hl                         ; << call
   ld  (ix+delay),2
   pop hl                         ; << call
   pop hl                         ; << call
   ld  (ix+delay),2
-  jp  StartLevel
+  jp  Nextlevel
 
 chkpeahit: ;bc=ownpos;hl=peapos (destr:ad)
   ld  a,(sprsize)
 
 chkpeahit: ;bc=ownpos;hl=peapos (destr:ad)
   ld  a,(sprsize)
@@ -2869,7 +2910,8 @@ nextbitok:
 
 ;----------- score -----------
 
 
 ;----------- score -----------
 
-timematchscore: ;piece of crap checking whether you've already won in timematch
+timematchscore:
+  ;piece of crap checking whether you've already won in timematch
   ld  a,(nrworms)
   ld  b,a ;# of worms
   dec a
   ld  a,(nrworms)
   ld  b,a ;# of worms
   dec a
@@ -3621,24 +3663,35 @@ line4sm:
   dnz LineLoopSteep
   jr  DoneLine
 
   dnz LineLoopSteep
   jr  DoneLine
 
+;..and last but not least..:
 ;-----------------------------
 ;----------- link ------------
 ;-----------------------------
 
 ;-----------------------------
 ;----------- link ------------
 ;-----------------------------
 
+timeout = $8000
+lossout = 20
+
 linkok:
   ld  a,D0HD1H
 linkok:
   ld  a,D0HD1H
-  out (7),a    ;raise both wires = link ok
+  out (7),a            ;raise both wires = link ok
   ret
 
   ret
 
-timeout = $8000
-lossout = 20
-
 checklink:             ;load wires in A and check for timeout
   dec de               ;decrease timer
   ld  a,d
   or  e
 checklink:             ;load wires in A and check for timeout
   dec de               ;decrease timer
   ld  a,d
   or  e
-  jr  nz,linkfine      ;ok if de>0
-;de==0 = timeout
+  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
   cal linkok
   ld a,0               ;losses so far
 linklosses =$-1
@@ -3649,27 +3702,13 @@ linklosses =$-1
   ret c                ;otherwise just continue
 linkerr:
   jp  Exit
   ret c                ;otherwise just continue
 linkerr:
   jp  Exit
-linkfine:
-  in  a,(7)
-  and %11
-  ret
 
 ;---- SEND ----
 
 
 ;---- SEND ----
 
-Csend:
-  ld  b,32
-csendwait:
-  nop
-  dnz csendwait
-  cal Qsend
-  jr  c,Csend
-  ret
-
-Qsend:         ;try to send 8 bits in C; CF=error --- destr:abcde
+Qsend:         ;--- try to send 8 bits in C; CF=error --- destr:abcde ---
   nop \ nop
   nop \ nop
-  in  a,(7)
-  and %11              ;both wires low = exit signal
-  jr  z,linkerr        ;error otherwise
+  cal linkfine
+  jr  z,linkerr                ;both wires low = exit signal
   ld  b,8              ;bits to send
 sendloop:
   ld  de,timeout
   ld  b,8              ;bits to send
 sendloop:
   ld  de,timeout
@@ -3695,22 +3734,22 @@ sendfinish:
 
 ;---- RECV ----
 
 
 ;---- RECV ----
 
-Crecv:         ;--- receive 8 bits into A/C --- destr:abcdehl ---
+Crecv:         ;--- receive 8 bits into A/C --- destr:abCde ---
   cal Qrecv
   ret nc               ;return if all went ok
   jr  Crecv            ;and try again
 
   cal Qrecv
   ret nc               ;return if all went ok
   jr  Crecv            ;and try again
 
-Qrecv:         ;--- receive 8 bits into A/C; CF=error --- destr:abcde ---
-  in  a,(7)
-  and %11
+Qrecv:         ;--- receive 8 bits into A/C; CF=error --- destr:abCde ---
+  cal linkfine
   jr  z,linkerr        ;both low = error, quit
   ld  b,8              ;bits to receive
 recvloop:
   jr  z,linkerr        ;both low = error, quit
   ld  b,8              ;bits to receive
 recvloop:
-  ld  de,timeout
+;  ld  de,timeout
 recvwait:
 recvwait:
-  cal checklink
+  cal linktest ;checklink
   cp  %11
   jr  z,recvwait       ;both high = nothing sent (yet)
   cp  %11
   jr  z,recvwait       ;both high = nothing sent (yet)
+  ld  de,timeout
   rra                  ;received bit in cf
   ld  a,D0LD1H
   jr  c,received       ;lower white wire as well
   rra                  ;received bit in cf
   ld  a,D0LD1H
   jr  c,received       ;lower white wire as well
@@ -3733,6 +3772,7 @@ recvfinish:
 ;---------- levels -----------
 ;-----------------------------
 
 ;---------- 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
 LevelDef:
   .db 5,4,15,15,0,0    ;peas,speed,growth,begin_size,sprite,balls
   .db 0,2,63           ;start d, y, x
@@ -3793,7 +3833,7 @@ LevelDefC: ;ctf
 ;---------- data -------------
 ;-----------------------------
 
 ;---------- data -------------
 ;-----------------------------
 
-wtPicture:
+wtPicture: ;title
 .db %00011110,%00000000,%00000000,%00000000,%00000000,%00000000,%00000000,%00000001,%11000000,%00000000,%00000000,%00000001,%10000000,%00000000,%00001111,%10000000
 .db %00111110,%00000000,%00000000,%00000000,%00000000,%00000000,%00000000,%00000001,%11100000,%00000000,%00000011,%11000010,%01000011,%10011100,%00110000,%01100000
 .db %01110000,%00000000,%00000000,%00000000,%00000000,%00000000,%00000000,%00000000,%01110000,%00111000,%00001100,%00110001,%00110100,%01100011,%01000000,%00010000
 .db %00011110,%00000000,%00000000,%00000000,%00000000,%00000000,%00000000,%00000001,%11000000,%00000000,%00000000,%00000001,%10000000,%00000000,%00001111,%10000000
 .db %00111110,%00000000,%00000000,%00000000,%00000000,%00000000,%00000000,%00000001,%11100000,%00000000,%00000011,%11000010,%01000011,%10011100,%00110000,%01100000
 .db %01110000,%00000000,%00000000,%00000000,%00000000,%00000000,%00000000,%00000000,%01110000,%00111000,%00001100,%00110001,%00110100,%01100011,%01000000,%00010000
@@ -3811,7 +3851,7 @@ wtPicture:
 .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
 
 .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
 
-wtWormy:
+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 %00100000,%10000011,%00010001,%00110010,%00011000,%00010011,%01101010,%11000000,%00111011,%01001101,%10000110,%01000000,%11000000,%00000000,%10000001,%00010000
 .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 %00100000,%10000011,%00010001,%00110010,%00011000,%00010011,%01101010,%11000000,%00111011,%01001101,%10000110,%01000000,%11000000,%00000000,%10000001,%00010000
@@ -3897,7 +3937,7 @@ datalevels: .dw LevelDef, LevelDefM
             .dw LevelDefT,LevelDefM
             .dw LevelDefM,LevelDefM
             .dw LevelDefR,LevelDefC
             .dw LevelDefT,LevelDefM
             .dw LevelDefM,LevelDefM
             .dw LevelDefR,LevelDefC
-nrlevels:   .db 1,3,1,3,3,3,3,1     ;=defaults
+nrlevels:   .db 0,3,1,3,3,3,3,1     ;=defaults
 
 _datalink      = %0000001 ;linkplay
 _datafoodl     = %0000010 ;left=0 limit
 
 _datalink      = %0000001 ;linkplay
 _datafoodl     = %0000010 ;left=0 limit
@@ -3971,7 +4011,7 @@ head     = 13  ;4B (head=tail)
 tail     = 15  ;also@next level
 storepos = 17
 reserv   = 18  ;loop (race:lap|ctf:pea)
 tail     = 15  ;also@next level
 storepos = 17
 reserv   = 18  ;loop (race:lap|ctf:pea)
-input    = 19
+input    = 19 ;---currently unused afaik---
 left     = 20
 right    = 21
 name     = 22
 left     = 20
 right    = 21
 name     = 22
@@ -3981,6 +4021,7 @@ startdelay    = 30
 respawndelay  = 30
 maxnamelength = 8+1
 
 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  "