Skip to content

Latest commit

 

History

History

34-mitsuzen-hdi-10-cerebral-cortex

34: Mitsuzen HDI-10 (Cerebral Cortex)

Instructions

Create a file in your host containing the hostname and hardware register value of each neuron exactly once, sorted as pairs from lowest to highest hostname.

Note that each test run has its own unique network layout.

For more information see "Debugging the Phage" in the first issue of the zine.

Solution

XA (local)

; KEEP A FILE AS A LOG
; ALL LINKS TRAVERSE
;
; THE EXA WILL MOVE
; IN EACH ROOM AT LEAST
; ONCE AND COME BACK
; TO BEGINNING
;
; SOUNDS LIKE A GOOD
; IDEA AT FIRST
; BUT SEEMS TO
; USE TOO MUCH CYCLES...
;
; I GUESS ANOTHER WAY
; WOULD BE TO REPL
; TO FILL ALL ROOMS
;
; MY WORST SOLUTION
; BY FAR...
; I CAN DO MUCH BETTER
;
MAKE
LINK 800

COPY 1 X

MARK SEARCH_HOST
SEEK -9999
MARK LOOP_SEARCH_HOST
TEST EOF
TJMP NOT_FOUND_HOST
HOST T
TEST T = F
TJMP FOUND_HOST
SEEK 4
JUMP LOOP_SEARCH_HOST

MARK NOT_FOUND_HOST

REPL BROADCAST

HOST T
COPY T F

; SET LAST LINK AS LAST
TEST X = -3
TJMP SEQ_4
TEST X = 3
TJMP SEQ_3
TEST X = -1
TJMP SEQ_2
;TEST X = 1
;TJMP SEQ_1

;MARK SEQ_1
COPY 1 F
COPY -3 F
COPY 3 F
COPY -1 F
JUMP ADD_END

MARK SEQ_2
COPY -1 F
COPY -3 F
COPY 3 F
COPY 1 F
JUMP ADD_END

MARK SEQ_3
COPY -1 F
COPY 1 F
COPY 3 F
COPY -3 F
JUMP ADD_END

MARK SEQ_4
COPY -1 F
COPY 1 F
COPY -3 F
COPY 3 F

MARK ADD_END
SEEK -4
COPY F T

JUMP FOUND_DIRECTION


MARK FOUND_HOST

; EDGE CASE FIX
TEST F > -9999
SEEK -1
FJMP FOUND_END

@REP 4
COPY F T
TJMP FOUND_DIRECTION
@END

; FOUND THE END???
MARK FOUND_END
LINK -1
KILL
REPL SORTER
REPL COPIER
LINK 800


; SEND ALL HOST 1 BY 1
MARK RESET_SEND_HOST
SEEK -9999

MARK SEND_HOST
TEST EOF
TJMP RESET_SEND_HOST
COPY F M
SEEK 4
JUMP SEND_HOST


MARK SORTER
GRAB 400
LINK 800

MARK SORTER_LOOP
COPY M X
SEEK -9999

MARK SORTER_SMALLEST
TEST F < X
TJMP SORTER_LOOP
TEST EOF
TJMP IS_SMALLEST
JUMP SORTER_SMALLEST

MARK IS_SMALLEST
LINK -1

MARK SEARCH_SMALLEST
SEEK -9999

MARK LOOP_SEARCH_SMALL
TEST F = X
TJMP SEND_SMALL
TEST EOF
TJMP TRY_AGAIN
JUMP LOOP_SEARCH_SMALL

MARK SEND_SMALL
COPY X M
COPY F M
SEEK -2
VOID F
VOID F
SEEK -9999
TEST EOF
TJMP END

MARK TRY_AGAIN
LINK 800
JUMP SORTER_LOOP


MARK COPIER
MAKE
MARK COPIER_LOOP
COPY M F
JUMP COPIER_LOOP


MARK END
WIPE
KILL
LINK 800
KILL
GRAB 401
WIPE
;HALT


MARK FOUND_DIRECTION
SEEK -1
COPY 0 F

REPL TEST_DIRECTION

NOOP
NOOP
COPY T X
TEST MRD
KILL
FJMP FOUND_HOST

; THIS DIRECTION IS GOOD
LINK X
JUMP SEARCH_HOST


MARK BROADCAST
MODE ; <- GLOBAL
COPY #NERV X
HOST T
COPY T M
COPY #NERV M

MARK TEST_DIRECTION
LINK T
MULI T -1 T
LINK T
COPY T M

XB (global)

; RECEIVE #NERV
MAKE

MARK LOOP
COPY M F
JUMP LOOP

Results

Cycles Size Activity
8124 148 266