]> cloudbase.mooo.com Git - z180-stamp.git/blobdiff - z180/r3init.180
cli_readline_into_buffer: remove unneeded buf[]
[z180-stamp.git] / z180 / r3init.180
index 8156ed75f9ed74b71644a0150ae7481574e59a7d..9edeaf216f33b2395baafcda06fca5348b4faeb1 100644 (file)
@@ -3,7 +3,7 @@
 \r
        extrn ddtz,bpent\r
        extrn $stack\r
-       extrn $coninit,$cists,$ci\r
+       extrn charini,?const,?conin\r
 \r
        extrn romend\r
 \r
@@ -32,8 +32,15 @@ rsti defl    1
         jp bpent\r
 rsti    defl rsti+1\r
        endm\r
+        db 0, 0, 0, 0, 0\r
 \r
 ;----------------------------------------------------------------------\r
+       \r
+       ;org    40h\r
+\r
+       dw      0\r
+       db      0\r
+\r
 \r
        if ROMSYS\r
 $crom:  defb c$rom             ;\r
@@ -66,17 +73,20 @@ hwini0:
 ;----------------------------------------------------------------------\r
 \r
 start:\r
-       push af                 ;003c\r
-       in0 a,(itc)             ;003d   Illegal opcode trap?\r
-       jp p,??st01             ;0040\r
-       pop af                  ;0043\r
-       jp bpent                ;0044     yes, handle\r
+       ld      (tmpstack),sp\r
+       ld      sp,tmpstack\r
+       push af\r
+       in0 a,(itc)             ;Illegal opcode trap?\r
+       jp m,??st01\r
+       ld a,i                  ;I register == 0 ?\r
+       jr z,??st02             ;    yes, harware reset\r
 \r
 ??st01:\r
-       ld a,i                  ;0047   I register == 0 ?\r
-       jr z,??st02             ;004b     yes, harware reset\r
-       pop af                  ;004d\r
-       jp bpent                ;004e     no, allready set up\r
+       ld      a,(syscbr)\r
+       out0    (cbr),a\r
+       pop af                  ;restore registers\r
+       ld      sp,(tmpstack)   ;\r
+       jp bpent                ;\r
 \r
 ??st02:\r
        di                      ;0058\r
@@ -87,8 +97,8 @@ start:
 \r
        ld      a,M_NCD         ;No Clock Divide\r
        out0    (ccr),a\r
-       ld      a,M_X2CM        ;X2 Clock Multiplier\r
-       out0    (cmr),a\r
+;      ld      a,M_X2CM        ;X2 Clock Multiplier\r
+;      out0    (cmr),a\r
 \r
 ; search warm start mark\r
 \r
@@ -182,6 +192,8 @@ ramok:
 \r
 alloc:\r
        out0    (cbr),c         ;01de\r
+       ld      a,c\r
+       ld      (syscbr),a\r
        ld      sp,$stack       ;01e1\r
 \r
 ; Clear RAM using DMA0\r
@@ -273,28 +285,30 @@ wstart:
 \r
        call    prt0_init\r
 \r
+       call    charini\r
 \r
-;;;    call    bufferinit\r
-\r
-\r
-       call    $coninit\r
-\r
+       call    bufferinit\r
 \r
 \r
 \r
        im 2                    ;?030e\r
        ei                      ;0282\r
 \r
-       call $cists             ;0284\r
-       call $cists             ;0287\r
+       call ?const             ;0284\r
+       call ?const             ;0287\r
        or a                    ;028a\r
-       call nz,$ci             ;028d\r
+       call nz,?conin          ;028d\r
 \r
        ld a,(banktab)          ;\r
        ld e,a                  ;\r
        jp ddtz                 ;0290\r
 \r
 \r
+       ds      8\r
+tmpstack:\r
+       dw      2\r
+syscbr:        db      1\r
+\r
 ;\r
 ;----------------------------------------------------------------------\r
 ;\r
@@ -310,50 +324,106 @@ buf.init:
        ret\r
 \r
 ;----------------------------------------------------------------------\r
+if 0\r
+       extrn   msginit,msg_tx_fifo,msg_rx_fifo\r
+       extrn   msg.sout\r
 \r
-.comment *\r
+bufferinit:\r
 \r
-       extrn   msginit,msg.sout,msg_fifo\r
-       extrn   tx.buf,rx.buf\r
+       ld      de,msg_tx_fifo\r
+       in0     a,cbr\r
+       call    log2phys\r
+       ld      (40h+0),hl\r
+       ld      (40h+2),a\r
+\r
+;      ld      (bufdat+1),hl\r
+;      ld      (bufdat+3),a\r
+;      ld      a,1\r
+;      ld      (bufdat+0),a\r
+;      ld      hl,inimsg\r
+;      call    msg.sout\r
+\r
+       ld      de,msg_rx_fifo\r
+       in0     a,cbr\r
+       call    log2phys\r
+       ld      (bufdat+1),hl\r
+       ld      (bufdat+3),a\r
+       ld      a,2\r
+       ld      (bufdat+0),a\r
+       ld      hl,inimsg\r
+       call    msg.sout\r
+\r
+       ret\r
+\r
+inimsg:\r
+       db      inimsg_e - $ - 1\r
+       db      0AEh\r
+       db      inimsg_e - $ - 1\r
+       db      0\r
+bufdat:\r
+       db      0\r
+       dw      0\r
+       db      0\r
+inimsg_e:\r
+\r
+endif\r
+;----------------------------------------------------------------------\r
+;\r
+\r
+       extrn   msginit,msg.sout\r
+       extrn   mtx.fifo,mrx.fifo\r
+       extrn   co.fifo,ci.fifo\r
 \r
 \r
 bufferinit:\r
        call     msginit\r
 \r
        ld      hl,buffers\r
-       ld      bc,0300h\r
+       ld      b,buftablen\r
 bfi_1:\r
+       ld      a,(hl)\r
+       inc     hl\r
+       ld      (bufdat+0),a\r
        ld      e,(hl)\r
        inc     hl\r
        ld      d,(hl)\r
        inc     hl\r
        push    hl\r
+\r
+       or      a\r
+       jr      nz,bfi_2\r
+       in0     a,cbr\r
+       call    log2phys\r
+       ld      (40h+0),hl\r
+       ld      (40h+2),a\r
+       out0    (AVRINT5),a\r
+       jr      bfi_3   \r
+bfi_2:\r
        in0     a,cbr\r
        call    log2phys\r
        ld      (bufdat+1),hl\r
        ld      (bufdat+3),a\r
-       ld      a,c\r
-       ld      (bufdat+0),a\r
        ld      hl,inimsg\r
        call    msg.sout\r
+bfi_3:\r
        pop     hl\r
-       inc     c\r
        djnz    bfi_1\r
        ret\r
 \r
-       rept    20\r
-       db      0\r
-       endm\r
-\r
 buffers:\r
-       dw      msg_fifo\r
-       dw      tx.buf\r
-       dw      rx.buf\r
+       db      0\r
+       dw      mtx.fifo\r
+       db      1\r
+       dw      mrx.fifo\r
+       db      2\r
+       dw      co.fifo\r
+       db      3\r
+       dw      ci.fifo\r
+buftablen equ  ($ - buffers)/3\r
 \r
 inimsg:\r
-       db      inimsg_e - $ -2\r
-       db      PMSG\r
-       db      81h\r
+       db      inimsg_e - $ -1\r
+       db      0AEh\r
        db      inimsg_e - $ -1\r
        db      0\r
 bufdat:\r
@@ -362,7 +432,6 @@ bufdat:
        db      0\r
 inimsg_e:\r
 \r
-       *\r
 \r
 ;\r
 ;----------------------------------------------------------------------\r