163 lines
1.1 KiB
NASM
163 lines
1.1 KiB
NASM
// cat.asm
|
|
//
|
|
// load spi flash rom starting at address 0x040000 and write the
|
|
// data to UART_TX
|
|
//
|
|
// Put your code here:
|
|
|
|
@171
|
|
D=A
|
|
@SPI
|
|
M=D
|
|
@21
|
|
D=A
|
|
@COUNT
|
|
M=D
|
|
(DECR)
|
|
@COUNT
|
|
DM=M-1
|
|
@DECR
|
|
D;JGT
|
|
@3
|
|
D=A
|
|
@SPI
|
|
M=D
|
|
(WAIT10)
|
|
@SPI
|
|
D=M
|
|
@WAIT10
|
|
D;JLT
|
|
@4
|
|
D=A
|
|
@SPI
|
|
M=D
|
|
(WAIT11)
|
|
@SPI
|
|
D=M
|
|
@WAIT11
|
|
D;JLT
|
|
@SPI
|
|
M=0
|
|
(WAIT12)
|
|
@SPI
|
|
D=M
|
|
@WAIT12
|
|
D;JLT
|
|
@SPI
|
|
M=0
|
|
(WAIT13)
|
|
@SPI
|
|
D=M
|
|
@WAIT13
|
|
D;JLT
|
|
//(WAIT14)
|
|
//@SPI
|
|
//D=M
|
|
//@WAIT14
|
|
//D;JLT
|
|
//@SPI
|
|
//D=M
|
|
//@128
|
|
//M=D
|
|
|
|
@4
|
|
D=A
|
|
@SPI
|
|
M=D
|
|
(WAIT21)
|
|
@SPI
|
|
D=M
|
|
@WAIT21
|
|
D;JLT
|
|
@SPI
|
|
M=0
|
|
(WAIT22)
|
|
@SPI
|
|
D=M
|
|
@WAIT22
|
|
D;JLT
|
|
@SPI
|
|
M=1
|
|
(WAIT23)
|
|
@SPI
|
|
D=M
|
|
@WAIT23
|
|
D;JLT
|
|
@SPI
|
|
D=M
|
|
@129
|
|
M=D
|
|
@4
|
|
D=A
|
|
@SPI
|
|
M=D
|
|
(WAIT31)
|
|
@SPI
|
|
D=M
|
|
@WAIT31
|
|
D;JLT
|
|
@SPI
|
|
M=0
|
|
(WAIT32)
|
|
@SPI
|
|
D=M
|
|
@WAIT32
|
|
D;JLT
|
|
@2
|
|
D=A
|
|
@SPI
|
|
M=D
|
|
(WAIT33)
|
|
@SPI
|
|
D=M
|
|
@WAIT33
|
|
D;JLT
|
|
@SPI
|
|
D=M
|
|
@130
|
|
M=D
|
|
start
|
|
@128
|
|
D=A
|
|
@CHARBOOT
|
|
M=D
|
|
@BOOT
|
|
0;JEQ
|
|
|
|
(POLL)
|
|
@BUT
|
|
D=!M
|
|
@LED
|
|
M=D
|
|
@POLL
|
|
0;JMP
|
|
|
|
(WAITBOOT)
|
|
@UART_TX
|
|
D=M
|
|
@BOOT
|
|
D;JEQ
|
|
@WAITBOOT
|
|
0;JMP
|
|
|
|
(BOOT)
|
|
@CHARBOOT
|
|
A=M
|
|
D=M
|
|
@UART_TX
|
|
M=D
|
|
@CHARBOOT
|
|
M=M+1
|
|
@131
|
|
D=A
|
|
@CHARBOOT
|
|
D=D-M
|
|
@ENDBOOT
|
|
D;JEQ
|
|
@WAITBOOT
|
|
0;JMP
|
|
|
|
(ENDBOOT)
|
|
@POLL
|
|
0;JMP
|