EXAPUNKS

6. Juni 2020 · Spiele · andreas · Kein Kommentar
Unknown Network 1

Durch den Artikel “Programmierspiele: Coding-Logik spielend erlernen” in der c’t auf das Spiel aufmerksam geworden, war der aktuelle “Summer Sale” bei GOG eine gute Gelegenheit, EXAPUNKS DRM-frei zum kleinen Preis zu erwerben.

EXAPUNKS versprüht eine geballte Ladung Retro-Charme inklusive ausdruckbarer Hacker-Magazine, so daß man sich in kürzester Zeit zurück im Kinderzimmer zwischen C64 und 64’er mitten bei den ersten Assembler-Gehversuchen wiederfindet … Zur endgültigen Glückseeligkeit fehlt eigentlich nur noch der INPUT ASS.

Hier die ersten - nicht optimierten und / oder aufbereiteten - Lösungen für die Programmieraufgaben. Sofern mehrere EXAs im Spiel sind, wurde nach den Tutorials die Benennung an die Aufgabe(n) angepasst, z.B. “ReaD” oder “WRite”.

01 - Tutorial: Trash Wold News 1

Cycles: 5 / Size: 5 / Activity: 2

; EXA 'XA'
LINK 800
GRAB 200
LINK 800
DROP
HALT

02 - Tutorial: Trash World News 2

Cycles: 10 / Size: 10 / Activity: 2

; EXA 'XA'
LINK 800
GRAB 200
COPY F X
ADDI X F X
MULI X F X
SUBI X F X
COPY X F
LINK 800
DROP
HALT

03 - Tutorial: Trash World News 3

Cycles: 11 / Size: 15 / Activity: 4

; EXA 'XA'
LINK 800
LINK 800
MAKE
COPY M F
COPY M F
DROP
HALT
; EXA 'XB'
LINK 800
LINK 799
GRAB 199
COPY F X
COPY F M
COPY X M
WIPE
HALT

04 - Tutorial: Trash World News 4

Cycles: 409 / Size: 14 / Activity: 2

; EXA 'XA'
LINK 800
GRAB 200
COPY F X
WIPE
MAKE
ADDI X 1 X
MARK LOOP
SUBI X 1 X 
COPY X F
TEST X = 0
FJMP LOOP
LINK 800
DROP
HALT

05 - Euclid’s Pizza

Cycles: 103 / Size: 21 / Activity: 1

; EXA 'RD'
GRAB 300
COPY 5 X
MARK LOOP
COPY F M
SUBI X 1 X
TEST X = 0
FJMP LOOP
HALT
; EXA 'WR'
LINK 800
GRAB 200
; LOOP TO END OF FILE
MARK LOOP
SEEK 1
TEST EOF
FJMP LOOP
; APPEND ORDER
COPY 5 X
MARK LOOPTOO
COPY M F
SUBI X 1 X
TEST X = 0
FJMP LOOPTOO
HALT

06 - Mitsuzen HDI-10

Cycles: 247 / Size: 21 / Activity: 6

; EXA 'RD'
LINK 800
MARK LOOP
COPY #NERV X
; SEE IF VALUE IS <120
TEST X < -120
FJMP VALBOK
COPY -120 X
MARK VALBOK
; SEE IF VALUE IS > 50
TEST X > 50
FJMP VALTOK
COPY 50 X
MARK VALTOK
COPY X M
JUMP LOOP
; EXA 'WR'
LINK 800
LINK 1
LINK 1
LINK 1
LINK 1
MARK LOOP
COPY M #NERV
JUMP LOOP

07 - Last Stop Snaxnet

Cycles: 65 / Size: 15 / Activity: 2

; EXA 'XA'
GRAB 300
COPY F X
DROP
LINK 800
LINK 800
GRAB 237
MARK LOOP
TEST F = X
FJMP CONT
SEEK -1
VOID F
MARK CONT
TEST EOF
FJMP LOOP
HALT

08 - Zebros Copies

Cycles: 196 / Size: 32 / Activity: 4

; EXA 'RD'
; GET CUSTOMER ID
GRAB 300
COPY F X
COPY X M
DROP
; CORRECT BALANCE
LINK 800
GRAB 200
MARK LOOP
TEST F = X
TJMP CONT
SEEK 2
JUMP LOOP
MARK CONT
COPY F M
COPY F M
SEEK -2
COPY 0 F
COPY 0 F
HALT
; EXA 'WR'
; GET THE DATE
LINK 800
LINK 801
COPY #DATE X
LINK -1
; ADD PAYMENT
GRAB 201
MARK LOOP
SEEK 1
TEST EOF
FJMP LOOP
COPY X F
COPY M F
COPY M F
COPY M F
HALT

09 - SFCTA Highway Sign #4902

Cycles: 246 / Size: 16 / Activity: 1

; EXA 'XA'
; CLEAR THE SIGN
GRAB 300
LINK 800
COPY X #CLRS
; WRITE MESSAGE
MARK LOOP
DIVI X 9 T
COPY T #DATA
MODI X 9 T
COPY T #DATA
COPY F #DATA
TEST EOF
TJMP END
ADDI X 1 X
JUMP LOOP
; END
MARK END
WIPE
HALT

10 - Unknown Network 1

Cycles: 29 / Size: 30 / Activity: 27

; EXA 'XA'
; RESET COUNT
COPY 0 X
LINK 800
REPL SPAWNLEFT
REPL SPAWNRIGHT
HALT
MARK SPAWNLEFT
ADDI X 1 X
LINK 800
TEST X = 3
TJMP PICKUP
REPL SPAWNLEFT
REPL SPAWNRIGHT
HALT
MARK SPAWNRIGHT
ADDI X 1 X
LINK 801
TEST X = 3
TJMP PICKUP
REPL SPAWNLEFT
REPL SPAWNRIGHT
HALT
; PICKUP FOR ALL EXAS
MARK PICKUP
KILL
GRAB 276
LINK -1
LINK -1
LINK -1
LINK -1
DROP
HALT