-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Final solutions for problems 37-40. That was a fun game
- Loading branch information
Showing
4 changed files
with
590 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,193 @@ | ||
;XA | ||
|
||
|
||
;GO TO FILE 200, DRIVE 1 | ||
;INDEX FILE | ||
GRAB 300 | ||
COPY F X;SRC ID | ||
DROP | ||
|
||
LINK 800 | ||
LINK 801 | ||
GRAB 200 | ||
;FIND SRC ID | ||
MARK SEEKSRC | ||
TEST X = F | ||
FJMP SEEKSRC | ||
|
||
COPY 10 T | ||
MARK COPYSRCFILEIDS | ||
COPY F M | ||
SUBI T 1 T | ||
FJMP GRABDEST | ||
JUMP COPYSRCFILEIDS | ||
|
||
MARK GRABDEST | ||
DROP | ||
LINK -1 | ||
LINK -1 | ||
GRAB 300 | ||
SEEK 1 | ||
COPY F X;DEST ID | ||
DROP | ||
LINK 800 | ||
LINK 801 | ||
GRAB 200 | ||
|
||
;FIND DEST ID | ||
MARK SEEKDEST | ||
TEST X = F | ||
FJMP SEEKDEST | ||
|
||
COPY 10 T | ||
MARK COPYDESTFILEIDS | ||
COPY F M | ||
SUBI T 1 T | ||
FJMP DONEINDEXING | ||
JUMP COPYDESTFILEIDS | ||
|
||
MARK DONEINDEXING | ||
;WE HAVE 10 SRC AND 10 | ||
;DEST IDS NOW IN FILE | ||
;400 IN BASE. | ||
;HAND OVER TO XB. | ||
|
||
|
||
|
||
;XB | ||
|
||
|
||
|
||
|
||
MAKE | ||
@REP 20 | ||
COPY M F | ||
@END | ||
|
||
SEEK -9999 | ||
;COPY 10 T | ||
|
||
MARK NEXTPAIR | ||
;SUBI T 1 T | ||
;FJMP DONE | ||
|
||
;TODO - THE CASE WHEN | ||
;THEYRE IN SAME FILE | ||
|
||
COPY F X | ||
SEEK 9 | ||
SUBI F X X | ||
SEEK -11 | ||
MULI X X X | ||
TEST X < 100 | ||
FJMP SRCNOTDEST | ||
;X<100 MEANS DIFFERENCE | ||
;BETWEEN OFFSETS WAS <10 | ||
;- IT IS THE SAME FILE | ||
;CAN'T USE TWO AGENTS | ||
|
||
COPY F X | ||
REPL READER | ||
SEEK 9 | ||
COPY F X | ||
REPL PROXYTOWER | ||
SEEK -10 | ||
|
||
COPY 50 T | ||
JUMP AWAITCOPY | ||
|
||
;ELSE DEPLOY TWO AGENTS | ||
;ONE TO SRC ONE TO DEST | ||
MARK SRCNOTDEST | ||
|
||
COPY F X | ||
REPL READER | ||
SEEK 9 | ||
COPY F X | ||
REPL WRITER | ||
SEEK -10 | ||
|
||
COPY 40 T | ||
|
||
MARK AWAITCOPY | ||
SUBI T 1 T | ||
TJMP AWAITCOPY | ||
|
||
|
||
JUMP NEXTPAIR | ||
|
||
|
||
MARK READER | ||
|
||
LINK 800 | ||
|
||
SWIZ X 0003 T | ||
ADDI 800 T T | ||
LINK T;DRIVE | ||
|
||
SWIZ X 0002 T | ||
ADDI 200 T T | ||
GRAB T;FILE | ||
|
||
SWIZ X 0001 T | ||
MULI T 10 T | ||
SEEK T | ||
|
||
@REP 10 | ||
COPY F M | ||
@END | ||
|
||
JUMP DONE | ||
|
||
;AND WE'RE HERE! | ||
|
||
|
||
MARK WRITER | ||
|
||
LINK 800 | ||
|
||
SWIZ X 0003 T | ||
ADDI 800 T T | ||
LINK T;DRIVE | ||
|
||
SWIZ X 0002 T | ||
ADDI 200 T T | ||
GRAB T;FILE | ||
|
||
SWIZ X 0001 T | ||
MULI T 10 T | ||
SEEK T | ||
|
||
@REP 10 | ||
COPY M F | ||
@END | ||
|
||
JUMP DONE | ||
;AND WE'RE HERE! | ||
|
||
MARK PROXYTOWER | ||
MAKE | ||
|
||
COPY 10 T | ||
MARK PROXYSTORE | ||
COPY M F | ||
SUBI T 1 T | ||
TJMP PROXYSTORE | ||
|
||
SEEK -9999 | ||
REPL WRITER | ||
|
||
COPY 10 T | ||
MARK PROXYREAD | ||
COPY F M | ||
SUBI T 1 T | ||
TJMP PROXYREAD | ||
|
||
WIPE | ||
|
||
JUMP DONE | ||
|
||
MARK DONE | ||
HALT | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
;XA | ||
|
||
|
||
LINK 800 | ||
LINK 800 | ||
LINK 800 | ||
LINK 800 | ||
LINK 800 | ||
KILL | ||
KILL | ||
KILL | ||
KILL | ||
KILL | ||
KILL | ||
|
||
COPY 200 X | ||
MARK NEXTFILE | ||
REPL GRABBER | ||
ADDI X 1 X | ||
TEST X > 299 | ||
TJMP GRABBEDALL | ||
JUMP NEXTFILE | ||
|
||
MARK GRABBEDALL | ||
REPL KILLA | ||
NOOP | ||
NOOP | ||
REPL KILLA | ||
|
||
|
||
MARK GRABBER | ||
GRAB X | ||
LINK -1 | ||
LINK -1 | ||
LINK -1 | ||
LINK -1 | ||
LINK -1 | ||
HALT | ||
|
||
MARK KILLA | ||
LINK -1 | ||
LINK -1 | ||
LINK 800 | ||
KILL | ||
KILL | ||
REPL KILLA | ||
NOOP | ||
NOOP | ||
JUMP KILLA |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
;PH | ||
|
||
|
||
GRAB 300 | ||
LINK 800 | ||
|
||
MARK FILE300LEN | ||
TEST EOF | ||
ADDI X 1 X | ||
SEEK 1 | ||
FJMP FILE300LEN | ||
|
||
DROP | ||
LINK -1 | ||
GRAB 301 | ||
LINK 800 | ||
|
||
MARK SINGLENUMBER | ||
TEST EOF | ||
TJMP DONEDIALLING | ||
COPY 11 T;PAGERNUM.LEN | ||
MARK DIAL | ||
COPY F #DIAL | ||
SUBI T 1 T | ||
TJMP DIAL | ||
|
||
REPL TELLMSG | ||
REPL TSR | ||
|
||
MULI 2 X T | ||
MARK WAITLOOP | ||
FJMP DISCONNECT | ||
SUBI T 1 T | ||
JUMP WAITLOOP | ||
|
||
MARK DISCONNECT | ||
COPY -1 #DIAL | ||
|
||
JUMP SINGLENUMBER | ||
|
||
|
||
MARK DONEDIALLING | ||
;SPAWN CLOCK SYNC BOTS | ||
SEEK -9999 | ||
;MASTER CLK INIT VAL | ||
COPY 149 X | ||
|
||
|
||
MARK SYNCSINGLENUMBER | ||
TEST EOF | ||
TJMP SYNCDONEDIALLING | ||
COPY 11 T;PAGERNUM.LEN | ||
MARK SYNCDIAL | ||
COPY F #DIAL | ||
SUBI T 1 T | ||
TJMP SYNCDIAL | ||
|
||
REPL SYNCBOT | ||
SUBI X 20 X | ||
|
||
MARK SYNCDISCONNECT | ||
COPY -1 #DIAL | ||
|
||
JUMP SYNCSINGLENUMBER | ||
|
||
MARK SYNCDONEDIALLING | ||
|
||
|
||
JUMP CLEANUP | ||
|
||
MARK CLEANUP | ||
LINK -1 | ||
DROP | ||
LINK 800 | ||
GRAB 300 | ||
LINK -1 | ||
HALT | ||
|
||
|
||
MARK TSR | ||
LINK 800 | ||
MARK TSRDATACOPY | ||
COPY M T | ||
FJMP TSRDONECOPY | ||
COPY T #DATA | ||
JUMP TSRDATACOPY | ||
|
||
MARK TSRDONECOPY | ||
HALT | ||
|
||
MARK TELLMSG | ||
GRAB 300 | ||
MARK TELLMSGMORE | ||
TEST EOF | ||
TJMP TELLMSGDONE | ||
COPY F M | ||
JUMP TELLMSGMORE | ||
|
||
MARK TELLMSGDONE | ||
COPY 0 M | ||
HALT | ||
|
||
|
||
MARK SYNCBOT | ||
LINK 800 | ||
COPY X T | ||
MARK IDLE | ||
SUBI T 1 T | ||
TJMP IDLE | ||
COPY 1 #PAGE | ||
|
Oops, something went wrong.