Added message about compilation process on the compiler and fixed Makefile dependencies
This commit is contained in:
parent
6e8d951360
commit
0c36e9d78c
4
Makefile
4
Makefile
@ -17,10 +17,10 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
SYSTEM_VVP=system/system.vvp
|
SYSTEM_VVP=system/system.vvp
|
||||||
BOOT_CODE=boot_code/brainfuck.txt
|
BOOT_CODE=boot_code/brainfuck_mandelbrot.txt
|
||||||
GTKWSAVE=./gtkwave_savefile.gtkw
|
GTKWSAVE=./gtkwave_savefile.gtkw
|
||||||
MICROCODE=system/ucode.txt
|
MICROCODE=system/ucode.txt
|
||||||
BOOTABLES=boot_code/brainfuck_compiled.txt boot_code/brainfuck_mandelbrot.txt ${BOOT_CODE}
|
BOOTABLES=boot_code/brainfuck_compiled.txt boot_code/brainfuck.txt ${BOOT_CODE}
|
||||||
|
|
||||||
NO_ASM=1
|
NO_ASM=1
|
||||||
include common.mk
|
include common.mk
|
||||||
|
@ -8,8 +8,8 @@ BUILD_FILES+=$(subst .asm,.bin,${SOURCE})
|
|||||||
all: ${BINARIES}
|
all: ${BINARIES}
|
||||||
|
|
||||||
brainfuck.bin: brainfuck_interpreter_v0.asm
|
brainfuck.bin: brainfuck_interpreter_v0.asm
|
||||||
brainfuck_mandelbrot.bin: brainfuck_interpreter_v0.asm
|
|
||||||
brainfuck_compiled.bin: brainfuck_compiler_v1.asm
|
brainfuck_compiled.bin: brainfuck_compiler_v1.asm
|
||||||
|
brainfuck_mandelbrot.bin: brainfuck_compiler_v1.asm
|
||||||
|
|
||||||
NO_ASM=0
|
NO_ASM=0
|
||||||
include ../common.mk
|
include ../common.mk
|
||||||
|
@ -5,3 +5,4 @@ prog:
|
|||||||
.ASCII '+++++++.---.--.<<.>---------------------.>+++++.-----------------.++++++++.+++++.--------.+++++++++++++++.---------------'
|
.ASCII '+++++++.---.--.<<.>---------------------.>+++++.-----------------.++++++++.+++++.--------.+++++++++++++++.---------------'
|
||||||
.ASCII '---.++++++++.<<<.>>>------------------.++++++++++++++++++++++.++++++.---.+.<<.>>+.--.+++.---------.+++++++++++++.<<++++++'
|
.ASCII '---.++++++++.<<<.>>>------------------.++++++++++++++++++++++.++++++.---.+.<<.>>+.--.+++.---------.+++++++++++++.<<++++++'
|
||||||
.ASCII '++++++.------------.>----------.--------.++++++++.--.<<.'
|
.ASCII '++++++.------------.>----------.--------.++++++++.--.<<.'
|
||||||
|
output_program:
|
||||||
|
@ -20,12 +20,21 @@
|
|||||||
mov sp,#STACK
|
mov sp,#STACK
|
||||||
mov bx,#bootup_msg
|
mov bx,#bootup_msg
|
||||||
mov ah,#0x02
|
mov ah,#0x02
|
||||||
bootup_print:
|
print1:
|
||||||
mov dl,[bx]
|
mov dl,[bx]
|
||||||
int #0x21
|
int #0x21
|
||||||
inc bx
|
inc bx
|
||||||
cmp dl,#0x0A
|
cmp dl,#0x0A
|
||||||
jne bootup_print
|
jne print1
|
||||||
|
|
||||||
|
mov bx,#compiling
|
||||||
|
mov ah,#0x02
|
||||||
|
print2:
|
||||||
|
mov dl,[bx]
|
||||||
|
int #0x21
|
||||||
|
inc bx
|
||||||
|
cmp dl,#0
|
||||||
|
jne print2
|
||||||
|
|
||||||
MOV SI,#prog
|
MOV SI,#prog
|
||||||
MOV DI,#output_program
|
MOV DI,#output_program
|
||||||
@ -33,21 +42,6 @@ MOV DI,#output_program
|
|||||||
MOV CX,#0
|
MOV CX,#0
|
||||||
JMP COMPILE ; Moving some functions above the main switch to make shot jumps work
|
JMP COMPILE ; Moving some functions above the main switch to make shot jumps work
|
||||||
|
|
||||||
;;;;;;;;; . ;;;;;;;;;
|
|
||||||
WAS_PRINT:
|
|
||||||
CALL FLUSH_MOVES
|
|
||||||
CALL FLUSH_WRITES
|
|
||||||
|
|
||||||
MOV AX,#0x02B4 ; mov $0x2,%ah
|
|
||||||
STOSW
|
|
||||||
|
|
||||||
MOV AX,#0x178A ; mov (%bx),%dl
|
|
||||||
STOSW
|
|
||||||
|
|
||||||
MOV AX,#0x21CD ; int $0x21
|
|
||||||
STOSW
|
|
||||||
|
|
||||||
JMP COMPILE
|
|
||||||
|
|
||||||
;;;;;;;;; ] ;;;;;;;;;
|
;;;;;;;;; ] ;;;;;;;;;
|
||||||
WAS_PR:
|
WAS_PR:
|
||||||
@ -80,55 +74,6 @@ MOV [BX],DI
|
|||||||
|
|
||||||
JMP COMPILE
|
JMP COMPILE
|
||||||
|
|
||||||
;;;;;;;;;;; ACTUAL START ;;;;;;;;;;;;;;;
|
|
||||||
COMPILE:
|
|
||||||
MOV AL,[SI]
|
|
||||||
INC SI
|
|
||||||
CMP AL,#'+
|
|
||||||
JZ WAS_PLUS
|
|
||||||
CMP AL,#'-
|
|
||||||
JZ WAS_MINUS
|
|
||||||
CMP AL,#'>
|
|
||||||
JZ WAS_MR
|
|
||||||
CMP AL,#'<
|
|
||||||
JZ WAS_ML
|
|
||||||
CMP AL,#'[
|
|
||||||
JZ WAS_PL
|
|
||||||
CMP AL,#']
|
|
||||||
JZ WAS_PR
|
|
||||||
CMP AL,#'.
|
|
||||||
JZ WAS_PRINT
|
|
||||||
|
|
||||||
MOV AL,#0xF4 ; hlt
|
|
||||||
MOV [DI],AL
|
|
||||||
MOV BX,#DATA
|
|
||||||
MOV AX,#output_program
|
|
||||||
JMP AX
|
|
||||||
|
|
||||||
;;;;;;;;; + ;;;;;;;;;
|
|
||||||
WAS_PLUS:
|
|
||||||
CALL FLUSH_MOVES
|
|
||||||
INC CL
|
|
||||||
JMP COMPILE
|
|
||||||
|
|
||||||
;;;;;;;;; - ;;;;;;;;;
|
|
||||||
WAS_MINUS:
|
|
||||||
CALL FLUSH_MOVES
|
|
||||||
DEC CL
|
|
||||||
JMP COMPILE
|
|
||||||
|
|
||||||
;;;;;;;;; > ;;;;;;;;;
|
|
||||||
WAS_MR:
|
|
||||||
CALL FLUSH_WRITES
|
|
||||||
INC CH
|
|
||||||
JMP COMPILE
|
|
||||||
|
|
||||||
;;;;;;;;; < ;;;;;;;;;
|
|
||||||
WAS_ML:
|
|
||||||
CALL FLUSH_WRITES
|
|
||||||
DEC CH
|
|
||||||
JMP COMPILE
|
|
||||||
|
|
||||||
;;;;;;;;; [ ;;;;;;;;;
|
;;;;;;;;; [ ;;;;;;;;;
|
||||||
WAS_PL:
|
WAS_PL:
|
||||||
CALL FLUSH_MOVES
|
CALL FLUSH_MOVES
|
||||||
@ -171,6 +116,80 @@ STOSW
|
|||||||
JMP COMPILE
|
JMP COMPILE
|
||||||
|
|
||||||
|
|
||||||
|
;;;;;;;;;;; ACTUAL START ;;;;;;;;;;;;;;;
|
||||||
|
COMPILE:
|
||||||
|
MOV AL,[SI]
|
||||||
|
INC SI
|
||||||
|
CMP AL,#'+
|
||||||
|
JZ WAS_PLUS
|
||||||
|
CMP AL,#'-
|
||||||
|
JZ WAS_MINUS
|
||||||
|
CMP AL,#'>
|
||||||
|
JZ WAS_MR
|
||||||
|
CMP AL,#'<
|
||||||
|
JZ WAS_ML
|
||||||
|
CMP AL,#'[
|
||||||
|
JZ WAS_PL
|
||||||
|
CMP AL,#']
|
||||||
|
JZ WAS_PR
|
||||||
|
CMP AL,#'.
|
||||||
|
JZ WAS_PRINT
|
||||||
|
|
||||||
|
mov bx,#compiled
|
||||||
|
mov ah,#0x02
|
||||||
|
print3:
|
||||||
|
mov dl,[bx]
|
||||||
|
int #0x21
|
||||||
|
inc bx
|
||||||
|
cmp dl,#0x0A
|
||||||
|
jne print3
|
||||||
|
|
||||||
|
MOV AL,#0xF4 ; hlt
|
||||||
|
MOV [DI],AL
|
||||||
|
MOV BX,#DATA
|
||||||
|
MOV AX,#output_program
|
||||||
|
JMP AX
|
||||||
|
|
||||||
|
;;;;;;;;; . ;;;;;;;;;
|
||||||
|
WAS_PRINT:
|
||||||
|
CALL FLUSH_MOVES
|
||||||
|
CALL FLUSH_WRITES
|
||||||
|
|
||||||
|
MOV AX,#0x02B4 ; mov $0x2,%ah
|
||||||
|
STOSW
|
||||||
|
|
||||||
|
MOV AX,#0x178A ; mov (%bx),%dl
|
||||||
|
STOSW
|
||||||
|
|
||||||
|
MOV AX,#0x21CD ; int $0x21
|
||||||
|
STOSW
|
||||||
|
|
||||||
|
JMP COMPILE
|
||||||
|
;;;;;;;;; + ;;;;;;;;;
|
||||||
|
WAS_PLUS:
|
||||||
|
CALL FLUSH_MOVES
|
||||||
|
INC CL
|
||||||
|
JMP COMPILE
|
||||||
|
|
||||||
|
;;;;;;;;; - ;;;;;;;;;
|
||||||
|
WAS_MINUS:
|
||||||
|
CALL FLUSH_MOVES
|
||||||
|
DEC CL
|
||||||
|
JMP COMPILE
|
||||||
|
|
||||||
|
;;;;;;;;; > ;;;;;;;;;
|
||||||
|
WAS_MR:
|
||||||
|
CALL FLUSH_WRITES
|
||||||
|
INC CH
|
||||||
|
JMP COMPILE
|
||||||
|
|
||||||
|
;;;;;;;;; < ;;;;;;;;;
|
||||||
|
WAS_ML:
|
||||||
|
CALL FLUSH_WRITES
|
||||||
|
DEC CH
|
||||||
|
JMP COMPILE
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
FLUSH_WRITES:
|
FLUSH_WRITES:
|
||||||
CMP CL,#0
|
CMP CL,#0
|
||||||
@ -238,7 +257,9 @@ MOVES_FLUSHED:
|
|||||||
MOV CH,#0
|
MOV CH,#0
|
||||||
RET
|
RET
|
||||||
|
|
||||||
bootup_msg: .ASCII 'Native brainfuck compiler v1\n'
|
bootup_msg: .ASCII 'Native 8086 brainfuck compiler v1\n'
|
||||||
|
compiling: .ASCII 'Compiling...\0'
|
||||||
|
compiled: .ASCII '\rCompiled! \n'
|
||||||
DATA: .BLKB 560
|
DATA: .BLKB 560
|
||||||
.BLKB 200
|
.BLKB 200
|
||||||
STACK:
|
STACK:
|
||||||
|
Loading…
Reference in New Issue
Block a user