2024-10-25 13:47:27 -04:00

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