Skip to content

Instantly share code, notes, and snippets.

@ciaranchen
Created June 23, 2021 11:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ciaranchen/43fe6ff802c250b82c503c6a14eb625a to your computer and use it in GitHub Desktop.
Save ciaranchen/43fe6ff802c250b82c503c6a14eb625a to your computer and use it in GitHub Desktop.
TIS-100 Code (2)
@0
@1
@2
@3
@4
@5
@6
@7
@8
@9
MOV 17, ACC
ST: MOV 0, DOWN
MOV ACC, DOWN
SWP
MOV 30, ACC
NZ: SUB 1
MOV 3, DOWN
JNZ NZ
MOV -1, DOWN
SWP
SUB 1
JMP ST
@10
@0
@1
@2
@3
@4
@5
@6
@7
@8
@9
MOV 17, ACC
ST: MOV 0, DOWN
MOV ACC, DOWN
SWP
MOV 30, ACC
NZ: SUB 1
MOV 3, DOWN
JNZ NZ
MOV -1, DOWN
SWP
SUB 1
JMP ST
@10
@0
@1
@2
@3
@4
@5
@6
@7
@8
@9
MOV 17, ACC
ST: MOV 0, DOWN
MOV ACC, DOWN
SWP
MOV 30, ACC
NZ: SUB 1
MOV 3, DOWN
JNZ NZ
MOV -1, DOWN
SWP
SUB 1
JMP ST
@10
@0
@1
@2
@3
@4
@5
@6
@7
@8
MOV 15, ACC
NZ: SUB 1
MOV 0, RIGHT
MOV 3, RIGHT
JNZ NZ
MOV 15, ACC
NZ2: SUB 1
MOV 3, RIGHT
MOV 0, RIGHT
JNZ NZ2
@9
MOV 17, ACC
ST: MOV 0, DOWN
MOV ACC, DOWN
SWP
MOV 30, ACC
NZ: SUB 1
MOV LEFT, DOWN
JNZ NZ
MOV -1, DOWN
SWP
SUB 1
JMP ST
@10
@0
@1
MOV UP, RIGHT
MOV UP, DOWN
# WIDTH
MOV UP, DOWN
# HEIGHT
MOV UP, ACC
MOV ACC, RIGHT
MOV ACC, DOWN
@2
MOV LEFT, ACC
SAV
# HEIGHT
MOV LEFT, ACC
MOV ACC, DOWN
NZ: SUB 1
SWP
MOV ACC, DOWN
SWP
JNZ NZ
@3
@4
MOV UP, RIGHT
MOV UP, DOWN
MOV UP, DOWN
@5
MOV LEFT, ACC
SAV
MOV UP, ACC
NZ: SUB 1
MOV UP, DOWN
SWP
MOV ACC, DOWN
ADD 1
SWP
JNZ NZ
@6
@7
@8
MOV UP, ACC
SAV
MOV UP, ACC
NZ: SUB 1
SWP
MOV ACC, RIGHT
SWP
JNZ NZ
@9
MOV UP, DOWN
MOV UP, DOWN
MOV LEFT, ACC
NZ: SUB 1
MOV 3, DOWN
JNZ NZ
MOV -1, DOWN
@10
@0
@1
MOV UP, DOWN
@2
@3
@4
@5
MOV UP, ACC
MOV ACC, DOWN
SWP
MOV ACC, DOWN
ADD 1
SWP
@6
@7
@8
MOV UP, ACC
MOV ACC, RIGHT
SAV
MOV UP, ACC
SWP
LP: SUB 1
SWP
MOV ACC, RIGHT
SWP
JNZ LP
@9
MOV LEFT, ACC
NEG
LP:
MOV LEFT, DOWN
SAV
ADD 18
MOV ACC, DOWN
SWP
MOV 3, DOWN
MOV -1, DOWN
ADD 1
JNZ LP
@10
@0
MOV UP, ACC
MOV ACC, DOWN
MOV ACC, RIGHT
@1
MOV LEFT, DOWN
@2
MOV RIGHT, ACC
SWP
MOV ACC, DOWN
MOV DOWN, RIGHT
@3
MOV UP, ACC
MOV ACC, DOWN
SWP
MOV ACC, LEFT
MOV LEFT, RIGHT
@4
MN: MOV UP, DOWN
MOV LEFT, ACC
SWP
MOV ACC, RIGHT
MOV RIGHT, DOWN
JMP MN
@5
MOV LEFT, ACC
SWP
MOV ACC, LEFT
@6
MOV UP, ACC
SWP
MOV ACC, RIGHT
MOV ACC, UP
@7
ADD UP
SUB LEFT
MOV ACC, DOWN
@8
ADD UP
SUB UP
MOV ACC, DOWN
@0
@1
ST: MOV 0, ACC
SAV
MOV UP, ACC
LP: SUB RIGHT
MOV 1, RIGHT
SWP
ADD 1
SWP
JLZ END
JMP LP
END:MOV RIGHT,DOWN
MOV 0, RIGHT
MOV ACC, DOWN
SWP
MOV ACC, DOWN
@2
ST: MOV UP, ACC
SAV
LP: MOV ACC, LEFT
MOV LEFT, ACC
JEZ ST
SWP
SAV
JMP LP
@3
@4
MOV UP, ACC
ADD UP
MOV ACC, DOWN
MOV UP, ACC
SUB 1
MOV ACC, DOWN
@5
@6
@7
MOV UP, RIGHT
MOV UP, DOWN
@8
MOV LEFT, DOWN
@0
ST: MOV 0, ACC
SAV
LP: MOV UP, ACC
JEZ EZ
MOV ACC, RIGHT
SWP
ADD 1
SWP
JMP LP
EZ: SWP
MOV ACC, DOWN
@1
MOV DOWN, NIL
MN: MOV UP, DOWN
JMP MN
@2
MOV UP, ACC
MOV ACC, DOWN
@3
ST: MOV RIGHT, ACC
SUB 9
LP: JEZ EZ
MOV UP, DOWN
ADD 1
JMP LP
EZ: MOV UP, ACC
MOV ACC, RIGHT
MOV ACC, UP
MOV RIGHT, ACC
SUB 9
LP2: JEZ ST
MOV DOWN, UP
ADD 1
JMP LP2
@4
MOV DOWN, UP
MN: MOV UP, ACC
MOV ACC, LEFT
MOV LEFT, DOWN
MOV ACC, LEFT
JMP MN
@5
@6
MOV UP, RIGHT
@7
MOV LEFT, UP
MN: MOV UP, DOWN
JMP MN
@8
@0
ST: MOV 0, ACC
LP: SWP
MOV UP, ACC
JEZ EZ
MOV ACC, RIGHT
SWP
ADD 1
JMP LP
EZ: SWP
MOV ACC, DOWN
LP2: MOV DOWN, ACC
JEZ ST
MOV ACC, RIGHT
JMP LP2
@1
MOV LEFT, DOWN
@2
MOV RIGHT, ACC
SAV
LP: MOV ACC, RIGHT
SUB 1
JNZ LP
MOV ACC, RIGHT
@3
MOV UP, LEFT
M1: MOV LEFT,ACC
MOV ACC, RIGHT
JEZ EZ
SUB 1
MOV RIGHT, NIL
LP2: JEZ M1
MOV DOWN, UP
SUB 1
JMP LP2
EZ: MOV 0, UP
@4
ST: MOV LEFT, ACC
JEZ E0
SUB 1
JEZ E1
LP: MOV 1, RIGHT
MOV 1, DOWN
SUB 1
JNZ LP
E1: MOV 0, RIGHT
MOV 0, DOWN
MOV RIGHT, DOWN
MOV 1, LEFT
JMP ST
E0: MOV 0, DOWN
MOV 0, DOWN
@5
MOV UP, ACC
SAV
LP: MOV LEFT, ACC
JEZ EZ
SWP
MOV ACC, DOWN
MOV UP, ACC
MOV ACC, DOWN
MOV ACC, DOWN
MOV DOWN, ACC
SWP
JMP LP
EZ: SWP
MOV ACC, LEFT
@6
LP2: MOV DOWN, ACC
JEZ ST
MOV ACC, RIGHT
JMP LP2
ST:
@7
ST: MOV UP, ACC
JEZ EZ
MOV RIGHT, LEFT
JMP ST
EZ: MOV UP, ACC
JNZ NZ
NZ: MOV ACC, DOWN
@8
ST: MOV UP, ACC
SAV
SUB UP
JGZ GZ
MOV UP, LEFT
SWP
MOV ACC, UP
JMP ST
GZ: SWP
MOV ACC, LEFT
MOV UP, UP
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment