]> 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 1936c9be0bd5de4704823fcceff31871d69f3c2c..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
@@ -73,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
@@ -189,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
@@ -280,7 +285,7 @@ wstart:
 \r
        call    prt0_init\r
 \r
-       call    $coninit\r
+       call    charini\r
 \r
        call    bufferinit\r
 \r
@@ -289,15 +294,21 @@ wstart:
        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
@@ -313,7 +324,7 @@ buf.init:
        ret\r
 \r
 ;----------------------------------------------------------------------\r
-\r
+if 0\r
        extrn   msginit,msg_tx_fifo,msg_rx_fifo\r
        extrn   msg.sout\r
 \r
@@ -325,19 +336,19 @@ bufferinit:
        ld      (40h+0),hl\r
        ld      (40h+2),a\r
 \r
-       ld      (bufdat+1),hl\r
-       ld      (bufdat+3),a\r
-       xor     a\r
-       ld      (bufdat+0),a\r
-       ld      hl,inimsg\r
-       call    msg.sout\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,1\r
+       ld      a,2\r
        ld      (bufdat+0),a\r
        ld      hl,inimsg\r
        call    msg.sout\r
@@ -346,7 +357,7 @@ bufferinit:
 \r
 inimsg:\r
        db      inimsg_e - $ - 1\r
-       db      81h\r
+       db      0AEh\r
        db      inimsg_e - $ - 1\r
        db      0\r
 bufdat:\r
@@ -355,51 +366,64 @@ bufdat:
        db      0\r
 inimsg_e:\r
 \r
+endif\r
 ;----------------------------------------------------------------------\r
 ;\r
-if 0\r
 \r
-       extrn   msginit,msg.sout,msg_fifo\r
-       extrn   tx.buf,rx.buf\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        ; b:count, c:buffer nr\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
@@ -408,7 +432,6 @@ bufdat:
        db      0\r
 inimsg_e:\r
 \r
-endif\r
 \r
 ;\r
 ;----------------------------------------------------------------------\r