Teil 2 meiner EXAPUNKS-Lösungen, Level 11-20
11 - UC Berkeley
Cycles: 553 / Size: 38 / Activity: 7
; EXA 'LC' ; GET DATA GRAB 300 COPY F M COPY F M WIPE ; PREPARE NEW FILE MAKE COPY M X MARK LOOP COPY M F SUBI X 1 X TEST X = 0 FJMP LOOP DROP HALT
; EXA 'RM' ; MOVE TO CORRECT HOST LINK 800 COPY M X MARK LOOP LINK 800 LINK 800 HOST T TEST X = T FJMP LOOP ; REACHED HOST COPY M X GRAB 200 MARK NEXT COPY F T TEST X = T FJMP NEXT ; FOUND IT ; POS TO REGISTER T ; LENGTH TO REGISTER X COPY F T COPY F X COPY X M ; READ THE ACTUAL DATA SEEK -9999 SEEK T MARK READ COPY F M SUBI X 1 X TEST X = 0 FJMP READ ; TERMINATE HALT
12 - Workhouse
Cycles: 517 / Size: 30 / Activity: 2
; EXA 'XA' ; GET USER NAME GRAB 300 COPY F X DROP ; GET USER FILE ID LINK 800 GRAB 199 MARK USERFILEID TEST F = X FJMP USERFILEID SEEK 1 COPY F X DROP ; GET USER FILE LINK 799 GRAB X COPY 0 X SEEK 2 ; EXISTING VALUES MARK REPLACEVALUE ADDI X F X SEEK -1 COPY 75 F SUBI X 75 X TEST EOF FJMP REPLACEVALUE ; NEW VALUES MARK ADD75 COPY 75 F SUBI X 75 X TEST X < 75 FJMP ADD75 COPY X F DROP HALT
13 - Equity First Bank
Cycles: 5025 / Size: 21 / Activity: 10
; EXA 'XA' LINK 800 LINK 800 LINK 800 COPY 800 X ; CREATE EXAS MARK LOOPREPL REPL GOTOATM ADDI X 1 X TEST X = 807 FJMP LOOPREPL MARK GOTOATM LINK X ; DISPENSE CASH MARK DISPENSE COPY #CASH X MARK LOOPDISPENSE TEST X = 0 TJMP EXITLOOP COPY 20 #DISP SUBI X 1 X JUMP LOOPDISPENSE MARK EXITLOOP ; TERMINATE HALT
14 - Mitsuzen HDI-10
Single EXA Solution:
Cycles: 559 / Size: 33 / Activity: 239
; EXA 'XA' ; MOVE TO POSITION LINK 800 ; PREPARE MARK LOOPMAIN MAKE COPY 40 F COPY -70 F COPY -70 F COPY 40 F COPY #NERV T DIVI T -10 T SUBI T 2 T MARK LOOPPREPARE FJMP CONTWRITE COPY -70 F COPY -70 F SUBI T 1 T JUMP LOOPPREPARE MARK CONTWRITE ; WRITE SEQUENCE SEEK -9999 MARK LOOPWRITE LINK 1 LINK 1 COPY F #NERV LINK -1 LINK -1 LINK 3 LINK 3 COPY F #NERV LINK -3 LINK -3 TEST EOF FJMP LOOPWRITE WIPE JUMP LOOPMAIN
Multiple EXA Solution:
Cycles: 86 / Size: 32 / Activity: 7
; EXA 'RD' LINK 800 MARK LOOP COPY #NERV X DIVI X -10 X SUBI X 2 X COPY X M COPY X M JUMP LOOP
; EXA 'WS' LINK 800 LINK 1 LINK 1 MARK OUTER COPY 40 #NERV COPY -70 #NERV COPY M T MARK INNER COPY -70 #NERV SUBI T 1 T TJMP INNER JUMP OUTER
; EXA 'WA' LINK 800 LINK 3 LINK 3 MARK OUTER COPY -70 #NERV COPY 40 #NERV COPY M T MARK INNER COPY -70 #NERV SUBI T 1 T TJMP INNER JUMP OUTER
15 - Trash World News
Cycles: 3669 / Size: 42 / Activity: 4
; EXA 'RD' GRAB 300 ; WAIT FOR TRANSMISSION MARK LOOPFILE COPY M T FJMP ABORT SEEK -9999 MARK LOOPWORD COPY F M COPY F M TEST EOF FJMP LOOPWORD ; SEND EOF TO WR COPY 0 M JUMP LOOPFILE MARK ABORT DROP LINK 800 GRAB 200 LINK 800 DROP HALT
; EXA 'WR' LINK 800 LINK 799 GRAB 212 ; PROCESS FILE MARK LOOPFILE TEST EOF TJMP ABORT COPY F X ; START TRANSMISSION COPY 1 M ; SEE IF WORD MATCHES MARK LOOPWORD COPY M T FJMP LOOPFILE TEST X = T TJMP REPLACE VOID M JUMP LOOPWORD MARK REPLACE SEEK -1 COPY M F JUMP LOOPWORD JUMP LOOPFILE ; SEND ABORT TO RD MARK ABORT COPY 0 M HALT
16 - KGOG-TV
Cycles: - / Size: - / Activity: -
; EXA 'XA' LINK 800 KILL KILL GRAB 210 LINK 809 DROP GRAB 265 LINK -1 DROP GRAB 211 LINK 867 DROP HALT
17 - TEC Redshift
Cycles: 6011 / Size: 24 / Activity: 13
; EXA 'XA' LINK 800 ; TRY 999-000 BACKWARDS COPY 999 T MARK LOOP SWIZ T 3 #PASS SWIZ T 2 #PASS SWIZ T 1 #PASS REPL CHECK SUBI T 1 T TJMP LOOP ; SEE IF LINK EXISTS ; KILL XA ON WAY BACK MARK CHECK LINK 800 GRAB 199 COPY F X DROP MAKE SWIZ T 3 F SWIZ T 2 F SWIZ T 1 F COPY X F LINK -1 KILL LINK -1 DROP HALT
18 - Digital Library Project
Cycles: 377 / Size: 43 / Activity: 74
; EXA 'XA' GRAB 300 MARK LOOPBOOKS COPY F X REPL GETBOOK TEST EOF FJMP LOOPBOOKS HALT MARK GETBOOK ; GO TO HOST LINK 800 SWIZ X 3 T MARK LOOPWALK LINK 800 SUBI T 1 T TJMP LOOPWALK ; GRAB BOOK & SEND IT SWIZ X 021 X ADDI X 200 X GRAB X MODE REPL WRITEBOOK MARK SENDBOOK COPY F M TEST EOF JUMP SENDBOOK HALT ; COPY TO BOOK MARK WRITEBOOK MAKE MARK RECEIVEBOOK TEST MRD FJMP WRITEFINISH COPY M F NOOP JUMP RECEIVEBOOK ; DELIVER BOOK MARK WRITEFINISH SEEK -9999 COPY F X SWIZ X 3 T ADDI T 1 T MARK LOOPWALKBACK LINK -1 SUBI T 1 T TJMP LOOPWALKBACK DROP HALT
19 - TEC Exa-Blaster Modem
Cycles: 1084 / Size: 53 / Activity: 17
; EXA 'XA' ; INIT FILE POS COUNTER COPY 0 X MARK LOOPSTATION GRAB 301 ; SEEK NEXT NUMBER SEEK X ; EOF? TEST EOF TJMP EXIT ; SEND CONTINUE COPY 1 M ; SEND NUMBER COPY 11 T MARK LOOPDIAL COPY F M SUBI T 1 T TJMP LOOPDIAL DROP GRAB 300 ; SEND DATA TO WRITE MARK SENDDATA COPY M T FJMP ENDSEND COPY F M COPY F M SEEK -2 JUMP SENDDATA MARK ENDSEND DROP ; ADVANCE TO NEXT NUMBER ADDI X 11 X JUMP LOOPSTATION MARK EXIT COPY 0 M DROP HALT
; EXA 'XB' LINK 800 MARK NEXTSTATION ; CHECK FINISHED COPY M T FJMP EXIT ; DIAL COPY 11 T MARK LOOPDIAL COPY M #DIAL SUBI T 1 T TJMP LOOPDIAL ; ENTER STATION LINK 800 GRAB 200 ; MANIPULATE LIST MARK WRITEDATA COPY 1 M COPY M F COPY M F TEST EOF FJMP WRITEDATA COPY 0 M DROP LINK -1 ; HANG UP COPY -1 #DIAL JUMP NEXTSTATION ; EXIT MARK EXIT HALT
20 - Emerson's Guide
Cycles: 50 / Size: 48 / Activity: 6
; EXA 'RD' GRAB 300 COPY F X COPY F M COPY F M COPY X M HALT
; EXA 'WR' LINK 800 COPY M T FJMP SKIPEAST MARK WALKEAST LINK 801 SUBI T 1 T TJMP WALKEAST MARK SKIPEAST COPY M X TEST X = 0 TJMP EDITFILE TEST X < 0 TJMP EMBARKSOUTH COPY X T MARK WALKNORTH LINK 800 SUBI T 1 T TJMP WALKNORTH JUMP EDITFILE MARK EMBARKSOUTH COPY X T SWIZ T -1 T MARK WALKSOUTH LINK 802 SUBI T 1 T TJMP WALKSOUTH MARK EDITFILE COPY M X GRAB 200 MARK LOOPFILE TEST F = X TJMP ADDSTARS SEEK 5 JUMP LOOPFILE MARK ADDSTARS COPY F X COPY 4 T MARK LOOPSTARS COPY X F SUBI T 1 T TJMP LOOPSTARS HALT