scene.org File Archive

File download

<root>­/­mags­/­hugi­/­compos/hc29final.zip

File size:
60 372 bytes (58.96K)
File date:
2012-06-14 23:03:18
Download count:
all-time: 132

Preview

  • aphex/ dir
  • aphex/entry.asm 7.81K
  • aphex/entry.com 122B
  • boreal/ dir
  • boreal/entry.asm 3.90K
  • boreal/entry.com 135B
  • brox/ dir
  • brox/entry.asm 5.04K
  • brox/entry.com 136B
  • chut/ dir
  • chut/entry.asm 3.81K
  • chut/entry.com 278B
  • claw/ dir
  • claw/entry.asm 1.84K
  • claw/entry.com 150B
  • devfred/ dir
  • devfred/entry.asm 3.72K
  • devfred/entry.com 147B
  • espineter/ dir
  • espineter/bonus.asm 1.04K
  • espineter/bonus.com 80B
  • espineter/entry.asm 4.82K
  • espineter/entry.com 120B
  • espineter/fixed.asm 4.85K
  • espineter/fixed.com 122B
  • example.asm 8.09K
  • example.com 1.31K
  • flyke/ dir
  • flyke/entry.asm 3.42K
  • flyke/entry.com 168B
  • general.txt 10.48K
  • io_x/ dir
  • io_x/entry.asm 4.39K
  • io_x/entry.com 169B
  • io_x/entry1.asm 4.61K
  • io_x/entry1.com 169B
  • results.txt 951B
  • rules.txt 3.08K
  • schnaader/ dir
  • schnaader/entry.asm 4.65K
  • schnaader/entry.com 261B
  • sniper/ dir
  • sniper/entry.asm 2.31K
  • sniper/entry.com 137B
  • stefan/ dir
  • stefan/entry.asm 7.94K
  • stefan/entry.com 176B
  • tapani/ dir
  • tapani/entry.asm 9.08K
  • tapani/entry.com 128B
  • test.bat 369B
  • tester.c 5.57K
  • tester.com 18.10K

file_id.diz

=============================================================================
            h u g i   s i z e   c o d i n g   c o m p e t i t i o n

                            g e n e r a l   i n f o
=============================================================================

---------------------------------- [RULES] ----------------------------------

Unless stated otherwise in the competition specific rules, your entry must
  ... follow the competition specific rules.
  ... have the filename "entry.com".
  ... work in a Windows95 DOS box.
  ... work on Adok's PC, an Intel Pentium 4, 2.50 GHz, 256 MByte RAM,
      running Windows XP Home Edition Version 2002 Service Pack 1.
  ... use only instructions up to i586 (Pentium).

Unless stated otherwise, your entry must NOT
  ... depend on its file name, i.e. it still has to work after renaming
      it to, say, FOOBAR.EXE, or any other valid DOS executable file name.
  ... depend on its drive or path.
  ... crash unless where explicitly stated by the rules.
  ... use MMX instructions or other non-Pentium instructions like CMOVcc;
      look at the "x86.txt" file for further information.
  ... use the special registers CR0..4 (this includes the MSW), DR0..7, or 
      RDMSR/WRMSR instructions.
  ... use any external files or create new files on the disk.
  ... rely on any previously loaded code or data in memory, excluding
      DOS itself.
  ... disable interrupts for longer than 1/50 second in a row on
      a 200MHz Pentium.
  ... have been modified by means of an executable-packer (i.e., entry.com
      must be the product of assembling entry.asm).

You may assume that
  ... the registers have these values (all in hex):
      (xx - means an unknown value which MUST NOT be assumed)

          EAX = xxxx****
                AL = 00 if first FCB has valid drive letter,  FF if not
                AH = 00 if second FCB has valid drive letter, FF if not
          EBX = xxxx****
                BL = 00 if first FCB has valid drive letter,  FF if not
                BH = 00 if second FCB has valid drive letter, FF if not
          ECX = xxxx00FF
          EDX = xxxxxxxx
  DX  = CS = DS = ES = SS = xxxx, 0080 <= DX <=9000.
          ESI = xxxx0100
          EDI = xxxxFFFE
          EBP = xxxx09xx
          ESP = xxxxFFFE
          EIP = xxxx0100

  EFLAGS (binary) = xxxxxxxx xxxxxxxx xxxxx01x xx0x0x1x
      i.e.
          DF = 0
          IF = 1
          other flags = x

          WORD [FFFE] = 0000
          Layout of PSP: see [Memory Layout]

  ... that the program is not loaded high.
  ... that DPMI services are available.
  ... FCB functions can be used to access files whose name is given in 8.3
      format.

You must NOT assume that
  ... the  FPU  state is  defined;  you have to use  FINIT  to  initialize it
      before using it.

If you use other's people code (from previous compos or the like), please
add a comment about this to your code, including a reference to the original
program. Oh yes, and please comment your code.

------------------------------ [MEMORY LAYOUT] ------------------------------

The PSP is a copy of a buffer containing the history of command line
arguments. You can assume that all preceding command line arguments were
smaller than 100 bytes. That is:
  PSP:[E5h] = 0Dh or 0
  PSP:[E6h]...[FFh] = 0

Format of Program Segment Prefix (PSP) (located at initial DS:0000):
[according to Ralf Brown's Interrupt List]

Offset  Size    Description     (Table 01378)
00h  2 BYTEs   INT 20 instruction for CP/M CALL 0 program termination
                the CDh 20h here is often used as a signature for a valid PSP
02h    WORD    segment of first byte beyond memory allocated to program
        note: do not assume that this word contains 0A000h
04h    BYTE    (DOS) unused filler
05h    BYTE    CP/M CALL 5 service request (FAR CALL to absolute 000C0h)
06h    WORD    CP/M compatibility--size of first segment for .COM files
08h  2 BYTEs   remainder of FAR JMP at 05h
0Ah    DWORD   stored INT 22 termination address
0Eh    DWORD   stored INT 23 control-Break handler address
12h    DWORD   DOS 1.1+ stored INT 24 critical error handler address
16h    WORD    segment of parent PSP
18h 20 BYTEs   DOS 2+ Job File Table, one byte per file handle, FFh = closed
2Ch    WORD    DOS 2+ segment of environment for process (see #01379)
2Eh    DWORD   DOS 2+ process's SS:SP on entry to last INT 21 call
32h    WORD    DOS 3+ number of entries in JFT (default 20)
34h    DWORD   DOS 3+ pointer to JFT (default PSP:0018h)
38h    DWORD   DOS 3+ pointer to previous PSP (default FFFFFFFFh in 3.x)
3Ch    BYTE    DOS 4+ (DBCS) interim console flag (see AX=6301h)
3Dh    BYTE    (APPEND) TrueName flag (see INT 2F/AX=B711h)
3Eh  2 BYTE    ?
40h  2 BYTEs   DOS 5+ version to return on INT 21/AH=30h
42h  7 BYTE    ?
49h    BYTE    unused by DOS versions <= 6.00
4Ch    WORD    ?
4Eh  2 BYTEs   unused by DOS versions <= 6.00
50h  3 BYTEs   DOS 2+ service request (INT 21/RETF instructions)
53h  2 BYTEs   unused in DOS versions <= 6.00
55h  7 BYTEs   unused in DOS versions <= 6.00; can be used to make first FCB
                  into an extended FCB
5Ch 16 BYTEs   first default FCB, filled in from first commandline argument
                overwrites second FCB if opened
6Ch 16 BYTEs   second default FCB, filled in from second commandline argument
                  overwrites beginning of commandline if opened
7Ch  4 BYTEs   unused
80h 128 BYTEs  commandline / default DTA
                command tail is BYTE for length of tail, N BYTEs for the tail,
                  followed by a BYTE containing 0Dh

-------------------------------- [CHECKING] ---------------------------------

Usually, there is a test suite provided with the competition rules, which is
irregularily updated; new versions can be found at

                      http://www.hugi.scene.org/compo/

However, the test suites usually only serve as a GUIDE, so please check your
program against the rules before submitting. Also be aware that the test
suite itself may contain bugs; if you find one, please send an e-mail about
it to Adok (cdvolko@gmx.net) or (preferred) to the compo mailinglist (see
below).

------------------------------- [SUBMISSION] --------------------------------

You have to send

  - the sourcecode of your entry
  - the executable of your entry ("entry.com")

to Adok so that he can analyse and evaluate your entry.

Send your entries to:
                         cdvolko@gmx.net

It would be best if you could submit your entry as early as possible. Then
Adok can inform you about bugs, if he finds any, and you have enough time to
fix them. Attention: if he finds no bugs, this doesn't automatically mean
that your entry is bug-free; see also CHECKING (above).

You can submit updates to your entries all the time till the deadline.

Entries that do not agree with these rules will be disqualified. Their coders
will be informed about the mistake, and they can re-submit a bugfixed version
unless the compo is over.

Only one entry per coder can qualify; if two or more coders work together on
a single entry, it will count as a joint entry for those coders; no other
entries of these coders can qualify. Note that the entry will count as a
entry of this group of coders for the world league table.

----------------------------- [PUBLIC JUDGEMENT] ----------------------------

After the deadline for entry submission, as soon as the entries and the beta
results are released, the public judgement starts. During this week you can
discuss and object to the entries that seem to break some rule. Please send
your objections to the compo-mailinglist (see below). Adok and/or a jury
formed by him will check if your objections are according to the rules.

If a hidden flaw is found in one of the originally accepted entries during
the public judgement period, public judgement will decide what to do with the
entry. Possible consequences include disqualification and penalties.

------------------------------- [PRE-RESULTS] -------------------------------

Preliminary results of this compo will be released on the compo-web-site and
always updated after receiving a new entry. In this way the compo will
hopefully be exciting.

Compo-web-site URL:
                     http://www.hugi.scene.org/compo/

---------------------------------- [PRIZES] ---------------------------------

I'm sorry if I disappoint you, but there are no material prizes. Everything
is just a matter of fun, honor and fame. Moreover, the 30 best competitors
will get points and be listed in the 'World League Table of Assembly'
situated at the compo-web-site. Reaching a good place at a compo and even
more in the World League Table of Assembly is a good visiting-card and
recommendation for every competitor!

------------------------------ [MAILING LIST] -------------------------------

The purpose of the Hugi Compo mailing list is to inform about new compos and
provide a discussion forum for the competitors. At the moment there are about
350 subscribers.

To subscribe send a mail to hugi-compo-subscribe@yahoogroups.com. You'll get
an automatically generated mail which confirms your subscription within a few
hours. Then you start getting the mails the others have posted to this
mailinglist. You will have to subscribe to write mails to the mailinglist.

Mails for the list have to be sent to:
        hugi-compo@yahoogroups.com

If you want to subscribe, send a mail to:
        hugi-compo-subscribe@yahoogroups.com

If you want to unsubscribe, send a mail to:
        hugi-compo-unsubscribe@yahoogroups.com

The mailing list archive can be found at
        http://groups.yahoo.com/groups/hugi-compo/

-------------------------------- [ADDRESSES] --------------------------------

Send your entries to:
                                            cdvolko@gmx.net   [Adok/Hugi]
Compo-homepage (pre-results, world league table, test suites etc.):
                                         http://www.hugi.scene.org/compo/
Subscribe to the mailing list:
                                     hugi-compo-subscribe@yahoogroups.com
Unsubscribe from mailing list:
                                   hugi-compo-unsubscribe@yahoogroups.com
Mailing list archive:
                            http://www.yahoogroups.com/groups/hugi-compo/

-----------------------------------------------------------------------------

Thanks for reading this file!

Original rules by Adok
Extended and revised by INT-E

Place    Handle     Country     Size in bytes    Last update 
  1      Aphex      Romania         122           27 Oct 09 
  1    Espineter     Spain          122 (120)     30 Oct 09 
  3     Tapani       Sweden         128           31 Oct 09 
  4     Boreal      US of A         135           29 Oct 09 
  5      brox       Ukraine         136           28 Oct 09 
  *     Sniper      US of A         137           31 Oct 09 
  6    DevFred      Germany         147           16 Oct 09 
  7     claw        Germany         150           16 Oct 09 
  8     Flyke       Denmark         168           31 Oct 09 
  9      io_x        Italy          169           30 Oct 09 
 10     Stefan      Germany         176           31 Oct 09 
 11    Schnaader    Germany         261           31 Oct 09 
 12      Chut       Hungary         278            1 Oct 09 

*Sniper's entry doesn't count since he has all of the sources before hand.

                   +  +              +     +--+  +--+
                   |  |                       |  |  |
                   +--+  +  +  +--+  +     +--+  +--+
                   |  |  |  |  |  |  |     |        |
                   +  +  +--+  +--+  +     +--+     +
                                  |
                               +--+  compo



Version 1.1
 - Your entry does not have to handle any other char besides the space,
   the 0Dh char (CR), and the digits for the seed number.  Any other char
   is considered illegal.
 - The CRLF pair at the end of each line must be in the order of CRLF and
   each line must contain that pair at the end.


Version 1.0 (original version)

BOO! Yep, Halloween is coming up, and in fact is the deadline for this compo.

This time your task is very simple. This time all you have to do is make the
world's smallest program to construct random mazes. Of course they can't be
totally random - they can only be pseudo random, and the random number
generator has already been chosen for you. Also chosen are the dimensions of
the mazes. And, in keeping with the theme of the season, you must put a little
ghost at the entrance to your mazes and a house (to haunt) at the exit.

So you don't have to look at the same maze over and over again, you get to
choose the starting seed for the random number generator. This is done by
entering it on the command line, for example: entry 29.

Your program must handle seeds in the range of 0 through 100. If no number is
entered then the seed must default to 0. You may assume that there is a single
space character separating any seed number from the name of your program
(which, as always, must be called "entry"). You may not assume that there is a
carriage return immediately following the seed number (because of the tester).

Oh yeah, one other little rule: You must use DOS routines to display the
characters in your mazes rather than BIOS routines. This way the automatic
tester can redirect your characters to an output file and use that to compare
with a file generated by the example program.

Send your entry.com file along with its source code to Sniper at:

                   ------->> fys@frontiernet.net <<-------

The deadline is the 31st of October 2009 at the stroke of midnight MST. You
may submit entries as often as you like up until the deadline. In fact you're
encouraged to do so to add excitement to the compo.

Besides these rules, you must follow the general rules that apply to all
compos. These are described in the accompanying file, general.txt.

Please note: Even if your entry passes the automatic tester, it doesn't
necessarily mean that it's completely valid. It's up to you to make sure that
it meets all the rules.

After the deadline, each entry will be released to the participants who get to
look it over to check its validity. Five bytes will be added to your score for
each violation found plus the number of bytes needed to correct it.

If you have any questions or comments, please feel free to post them at:
hugi-compo@yahoogroups.com

Have fun!
Boreal