Skip to content

Commit

Permalink
Final solutions for problems 37-40. That was a fun game
Browse files Browse the repository at this point in the history
  • Loading branch information
jantosi committed Dec 19, 2020
1 parent cc4bf3c commit 78e7c09
Show file tree
Hide file tree
Showing 4 changed files with 590 additions and 0 deletions.
193 changes: 193 additions & 0 deletions 37-us-government.asm
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


49 changes: 49 additions & 0 deletions 38-unknown-network-2.asm
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
111 changes: 111 additions & 0 deletions 39-tec-exablaster-modem.asm
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

Loading

0 comments on commit 78e7c09

Please sign in to comment.