A83: PUSH/POP Contest...


[Prev][Next][Index][Thread]

A83: PUSH/POP Contest...




This contest is for all of you Z80 enthusiasts looking for a challenge.  As
far as I know, no one has bothered to write PUSH/POPs for 8-bit registers.
So, this is the objective of this contest.  However, as with every other
contest there are rules.  This contest is no different.  So, here are the
rules:

1)  Self-edit routines are NOT allowed.
2)  If the alternate registers are used, disabling and enabling interrupts
is required.
3)  NO registers may be destroyed (except the 8-bit register that is
supposed to be affected in the POP).  This includes the flags!
4)  Storing registers in memory using absolute addressing is NOT allowed
(e.g. ld [$FFFE],hl).
5)  All single register PUSHes and POPs must be covered to win:
  PUSH A       POP A
  PUSH B       POP B
  PUSH C       POP C
  PUSH D       POP D
  PUSH E       POP E
  PUSH F       POP F  (You may use the word FLAGS if you like, instead of F)
  PUSH H       POP H
  PUSH L       POP L
6)  PUSHing and POPing between different 8-bit registers *must* be possible
(e.g. PUSH A \ POP F).
7)  NO OPCODES will be accepted.  All commands must be entered using
Mnemonics (e.g. LD A,B).
8)  All entries must be sent to <shinelight@detroit.crosswinds.net>.  NO
ENTRIES TO THE LISTS WILL BE ACCEPTED!

Every contest has a prize, right?  Well, this one is no different.  I know
that this may not seem like a big prize, but how does your name in the
credits of TAZM sound?  On top of that, you will be an automatic beta
tester of TAZM!

In order to win, the total number of clock cycles of all PUSHes and POPs
must be less than 576 and/or the total number of bytes must be less than
56.  If it comes to a tie in distance from these values, # of clock cycles
will be the winner.  A list of the top 3 will be posted.

Here is the attempt I made that shows the individual clock cycles and bytes
for each PUSH and POP.

Mnemonic           Clock Cycles                Bytes
----------------------------------------------------
PUSH A             23                          3
POP A              54                          5
PUSH B             23                          3
POP B              54                          5
PUSH C             11                          1
POP C              52                          4
PUSH D             23                          3
POP D              54                          5
PUSH E             11                          1
POP E              52                          4
PUSH F             11                          1
POP F              52                          4
PUSH H             23                          3
POP H              62                          7
PUSH L             11                          1
POP L              60                          6
----------------------------------------------------
Total              576                         56



To submit an entry, send it in to <shinelight@detroit.crosswinds.net> with
the following format:



PUSH A;Commands (e.g. LD A,B \ LD B,C);Clock Cycles;# of bytes
POP A;...;# of bytes
...
PUSH L;...;# of bytes
POP L;...;# of bytes

Mnemonic           Clock Cycles                Bytes
----------------------------------------------------
PUSH A                                       
POP A                                        
PUSH B                                       
POP B                                        
PUSH C                                       
POP C                                        
PUSH D                                       
POP D                                        
PUSH E                                       
POP E                                        
PUSH F                                       
POP F                                        
PUSH H                                       
POP H                                        
PUSH L                                       
POP L                                        
----------------------------------------------------
Total                                       




NOTE:  While you may send multiple entries, only the last one received by
the closing date will be taken.  The final date for entry acceptance is
7/10/99.