]> cloudbase.mooo.com Git - z180-stamp.git/blobdiff - z180/init.180
message buffer init changes. cp/m r/w for new memory map
[z180-stamp.git] / z180 / init.180
index 4c7bd77e0a7233f5d579b41fdd9034c477b05a88..05c24ff592370f8e14488211d251ccd4a9cf3cef 100644 (file)
@@ -76,7 +76,7 @@ start:
 \r
 hwini0:\r
     if CPU_Z180\r
-       db      3               ;count\r
+       db                      ;count\r
        db      rcr,CREFSH      ;configure DRAM refresh\r
        db      dcntl,INIWAITS  ;wait states\r
        db      cbr,SYS$CBR\r
@@ -152,7 +152,7 @@ hw_reset:
 \r
 kstart:\r
     if CPU_Z180\r
-       ld      a,SYS$CBR\r
+       ld      a,SYS$CBR       ;TODO:\r
        out0    (cbr),a\r
        ld      a,SYS$CBAR\r
        out0    (cbar),a\r
@@ -192,8 +192,8 @@ wstart:
 ;      call    prt0_init\r
     endif\r
 \r
+       call    msginit\r
        call    charini\r
-       call    bufferinit\r
 \r
     if CPU_Z80\r
        ld      a,0\r
@@ -228,86 +228,66 @@ syscbr:   db      0
 ;----------------------------------------------------------------------\r
 ;\r
 \r
-       global  buf.init\r
+       global  bufinit\r
 \r
-buf.init:\r
-       ld      (ix+o.in_idx),0\r
+bufinit:\r
+       ld      (ix+o.in_idx),0         ;reset pointers (empty fifo)\r
        ld      (ix+o.out_idx),0\r
-\r
        ld      a,(ix+o.id)\r
-       cp      4\r
-       ret     nc\r
-\r
-       push    de\r
-       push    hl\r
-       ld      hl,fifo_list\r
-       push    hl              ;save fifo_list\r
+       ld      hl,fifolst\r
        ld      e,a\r
        ld      d,0\r
        add     hl,de\r
        add     hl,de\r
        push    ix\r
        pop     de\r
+       cp      4\r
+       jr      nc,bfi_skip\r
+\r
        ld      (hl),e\r
        inc     hl\r
        ld      (hl),d\r
-       pop     hl              ;get fifo_list back\r
-       or      a\r
-       jr      nz,bufi_ex\r
 \r
-       ld      (040h),hl\r
-       ld      (040h+2),a\r
-bufi_ex:\r
-       pop     hl\r
-       pop     de\r
+bfi_skip:\r
+       ex      de,hl\r
+       call    hwl2phy                 ;get phys. address of fifo\r
+       ld      c,a\r
+       ld      a,(ix+o.id)             ;fifo id\r
+       or      a                       ;test if fifo 0\r
+       ret     z\r
 \r
+       ld      b,a\r
+       push    bc                      ;c: bank-addr, b: ignored\r
+       push    hl                      ;address\r
+       ld      c,0\r
+       push    bc                      ;c: function, b:subf\r
+       ld      b,5\r
+       ld      h,c\r
+       ld      l,c\r
+       add     hl,sp\r
+       call    msg.sm\r
+       pop     hl\r
+       pop     hl\r
+       pop     hl\r
        ret\r
 \r
-\r
-fifo_list:\r
+       public  fifolst\r
+fifolst :\r
        rept 4\r
         dw     0\r
        endm\r
 \r
 ;----------------------------------------------------------------------\r
 \r
+       extrn   msg.sm\r
        extrn   msginit,msg.sout\r
        extrn   mtx.fifo,mrx.fifo\r
-       extrn   co.fifo,ci.fifo\r
+       extrn   ff.init,co.fifo,ci.fifo\r
 \r
 \r
-bufferinit:\r
+fifoinit:\r
     if CPU_Z180\r
-       call    msginit\r
-\r
-       ld      hl,buffers\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
-       ex      de,hl\r
 \r
-       or      a\r
-       jr      nz,bfi_2\r
-;      call    hwl2phy\r
-;      ld      (40h+0),hl\r
-;      ld      (40h+2),a\r
-       out     (AVRINT5),a\r
-       jr      bfi_3\r
-bfi_2:\r
-       call    hwl2phy\r
-       ld      (bufdat+1),hl\r
-       ld      (bufdat+3),a\r
-       ld      hl,inimsg\r
-       call    msg.sout\r
-bfi_3:\r
-       ex      de,hl\r
-       djnz    bfi_1\r
        ret\r
 \r
     else ;CPU_Z180\r
@@ -351,27 +331,7 @@ bfi_3:
        ret\r
     endif\r
 \r
-buffers:\r
-       db      0\r
-       dw      mtx.fifo\r
-       db      1\r
-       dw      mrx.fifo\r
-       db      2\r
-       dw      ci.fifo\r
-       db      3\r
-       dw      co.fifo\r
-buftablen equ  ($ - buffers)/3\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
 \r
 \r
 ;\r
@@ -612,6 +572,7 @@ l2p_i:
 ;\r
 ;out ahl: Phys. (linear) Address\r
 \r
+       public  hwl2phy\r
 \r
 hwl2phy:\r
        push    bc              ;\r