X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=2_isa%2Fsrc%2Fbootrom.s;h=87b7f83f1a508bbd913707b723f90962ada6ad48;hb=a80e63bb420d4ae8dee66703bca59035d672c9fb;hp=2a46cfdabb8a38f695b8c955cbfce4607153b502;hpb=f6c7387b482f9e4573a8e0f4b47afb2c395ad540;p=calu.git diff --git a/2_isa/src/bootrom.s b/2_isa/src/bootrom.s index 2a46cfd..87b7f83 100644 --- a/2_isa/src/bootrom.s +++ b/2_isa/src/bootrom.s @@ -25,15 +25,11 @@ main: ldi r11, PBASE@lo ldih r11, PBASE@hi poll: - ldw r3, UART_STATUS(r10) - andx r3, UART_RECV_NEW - brzs+ poll; branch if zero - call recv_byte ; we received the enter bootrom sign xor r1, r1, r1 cmpi r0, 0x48 ; 'H' - breq- bt_H + breq+ bt_H br poll ; else ;----- @@ -41,7 +37,7 @@ send_byte: ldw r3, UART_STATUS(r10) andx r3, UART_TRANS_EMPTY brnz+ send_byte ; branch if not zero - stb r1, UART_TRANS(r10) + stw r1, UART_TRANS(r10) ret ;----- @@ -62,7 +58,7 @@ recv_byte: andx r3, UART_RECV_NEW brzs+ recv_byte; branch if zero xor r0, r0, r0 - ldb r0, UART_RECV(r10) + ldw r0, UART_RECV(r10) ret ;----- @@ -89,9 +85,8 @@ recv_word: ;----- bootrom: call recv_byte - br tehend - xor r1, r1, r1 + cmpi r0, 0x57 ; 'W' breq- bt_W @@ -114,26 +109,26 @@ bootrom: bt_H: ldi r1, 0x4f ; 'O' call send_byte - call send_byte br bootrom bt_W: - call recv_word ; receive addr - stw r0, PADDR(r11) - call recv_word ; receive instr - stw r0, PDATA(r11) - ldi r1, 0x44 ; 'D' - call send_byte + ; call recv_word ; receive addr + ; stw r0, PADDR(r11) + ; call recv_word ; receive instr + ; stw r0, PDATA(r11) + ; ldi r1, 0x44 ; 'D' + ; call send_byte br bootrom bt_R: - call recv_word ; receive addr - mov r2, r0 - ldi r1, 0x46 ; 'F' - call send_byte - ldx r1, 0(r2) - call send_word - br bootrom + ;call recv_word ; receive addr + ;mov r2, r0 + ;ldi r1, 0x46 ; 'F' + ;call send_byte + ;ldx r1, 0(r2) + ;call send_word + ;br bootrom + br tehend bt_Q: call recv_word ; receive addr @@ -158,3 +153,12 @@ bt_J: brr r0 tehend: + xor r1, r1, r1 + ldi r1, 0x41 ; 'A' + call send_byte + xor r1, r1, r1 + ldi r1, 0x42 ; 'B' + call send_byte + xor r1, r1, r1 + ldi r1, 0x43 ; 'C' + call send_byte