]> cloudbase.mooo.com Git - ddt180.git/blobdiff - ddt180.z80
move relocator to beginning of file
[ddt180.git] / ddt180.z80
index 7c457000dfc9546d07d076080b3a0c61e82ce646..c4caedfd5714a65f9db3c6dd76767cdec26e92cc 100644 (file)
@@ -13,16 +13,80 @@ TPA equ     0100h
        cseg\r
        .phase  TPA\r
 \r
-       jp      start\r
-       ds      3\r
+       LD      SP,ldr_end+(stack-ddtz_base)\r
+       LD      DE,signon\r
+       LD      C,BDOS_PSTR\r
+       CALL    BDOS\r
+\r
+       LD      HL,ldr_end+ddtz_size    ;start of reloc bitmap\r
+       ld      bc,0108h                ;init bit counter\r
 \r
+       EXX\r
+       LD      HL,(BDOS+1)\r
+       LD      (ldr_end+1),HL\r
+       LD      BC,ddtz_size-1\r
+       LD      D,B\r
+       LD      E,0FFH\r
+       INC     DE                      ;size rounded up to next page boundary\r
+       INC     BC                      ;ddtz_size\r
+       OR      A\r
+       SBC     HL,DE                   ;BDOS - size\r
+       LD      (BDOS+1),HL             ;-> new BDOS entry\r
+\r
+       push    hl\r
+       PUSH    BC\r
+       ld      de,ldr_end\r
+       sbc     hl,de\r
+       EX      DE,HL                   ;-> DE\r
+       LD      HL,ldr_size\r
+       add     hl,bc\r
+       ld      b,h\r
+       ld      c,l\r
+       LD      HL,TPA\r
+reloc_lp:\r
+       EXX\r
+       djnz    reloc_nl\r
+       ld      b,c                     ;reload bit counter\r
+       LD      e,(HL)                  ;get next 8 relocation bits\r
+       INC     HL\r
+reloc_nl:\r
+       sla     e\r
+       EXX\r
+       JR      NC,reloc_next\r
+       DEC     HL\r
+       LD      A,(HL)\r
+       ADD     A,E\r
+       LD      (HL),A\r
+       INC     HL\r
+       LD      A,(HL)\r
+       ADC     A,D\r
+       LD      (HL),A\r
+reloc_next:\r
+       cpi\r
+       jp      pe,reloc_lp\r
+       dec     hl\r
+\r
+       POP     BC\r
+       pop     de\r
+       EX      DE,HL\r
+       ADD     HL,BC\r
+       EX      DE,HL\r
+       DEC     DE\r
+       LDDR\r
+       LD      HL,conbuf+2-ddtz_base\r
+       ADD     HL,DE\r
+       JP      (HL)\r
+\r
+signon:\r
+       db      'DDTZ/180'\r
+       db      ' - Version '\r
+       maclib  version.inc\r
+       defvers\r
+       db      CR,LF,'$'\r
 ldr_end:\r
 ldr_size       equ     $ - TPA\r
-current_phase  defl    $\r
 \r
        .dephase\r
-current_cseg   defl    $\r
-\r
 ;-------------------------------------------------------------------------------\r
 ; DDT/Z core\r
 ;\r
@@ -49,38 +113,20 @@ BDOS_PSTR  equ     9       ;Print String
 \r
 STACK_SIZE     equ     80      ;ddtz internal stack\r
 CONBUF_SIZE    equ     80      ;Size of console input buffer\r
-EXPR_BUF_SIZE  equ     128     ;expressen buffer for conditional breakpoints\r
 BP_CNT         equ     12      ;Number of breakpoints\r
 BP_SIZE                equ     4       ;Size of a breakpoint record\r
 \r
 ;-------------------------------------------------------------------------------\r
 \r
 ddtz_base:\r
-       jp ddtz_bdos\r
+       jp 0\r
 l0003h:\r
        rst 30h\r
 di_or_ei:\r
        nop\r
        ret\r
-ddtz_bdos:\r
-       jp      0\r
-\r
-current_cseg   defl    $ - current_cseg\r
-       .phase  current_phase + current_cseg\r
-signon:\r
-       db      'DDTZ/180'\r
-       db      ' - Version '\r
-       maclib  version.inc\r
-       defvers\r
-       db      CR,LF,'$'\r
-msgz80:\r
-       db      'Z80 or better required!',cr,lf,'$'\r
-\r
-current_phase  defl    $\r
-       .dephase\r
-current_cseg   defl    $\r
-       ds      STACK_SIZE - (current_phase - signon)\r
 \r
+       ds      STACK_SIZE\r
 \r
 stack:\r
 reg.l2:        db      000h\r
@@ -3645,91 +3691,6 @@ bp_tab:
         endm\r
        endm\r
 \r
-expr_buf:\r
-current_cseg   defl    $ - current_cseg\r
-       .phase  current_phase + current_cseg\r
-\r
-start:\r
-       LD      SP,ldr_end+(stack-ddtz_base)\r
-       LD      DE,signon               ;ldr_end+(expr_buf-ddtz_base)\r
-       LD      C,BDOS_PSTR\r
-       CALL    BDOS\r
-\r
-       xor     a\r
-       dec     a\r
-       jp      po,reloc\r
-       ld      de,msgz80\r
-       LD      C,BDOS_PSTR\r
-       CALL    BDOS\r
-       jp      0\r
-\r
-reloc:\r
-       LD      HL,ldr_end+ddtz_size    ;start of reloc bitmap\r
-       ld      bc,0108h                ;init bit counter\r
-\r
-       EXX\r
-       LD      HL,(BDOS+1)\r
-       LD      (ldr_end+(ddtz_bdos+1-ddtz_base)),HL\r
-       LD      BC,ddtz_size-1\r
-       LD      D,B\r
-       LD      E,0FFH\r
-       INC     DE                      ;size rounded up to next page boundary\r
-       INC     BC                      ;ddtz_size\r
-       OR      A\r
-       SBC     HL,DE                   ;BDOS - size\r
-       LD      (BDOS+1),HL             ;-> new BDOS entry\r
-\r
-       push    hl\r
-       PUSH    BC\r
-       ld      de,ldr_end\r
-       sbc     hl,de\r
-       EX      DE,HL                   ;-> DE\r
-       LD      HL,ldr_size\r
-       add     hl,bc\r
-       ld      b,h\r
-       ld      c,l\r
-       LD      HL,TPA\r
-reloc_lp:\r
-       EXX\r
-       djnz    reloc_nl\r
-       ld      b,c                     ;reload bit counter\r
-       LD      e,(HL)                  ;get next 8 relocation bits\r
-       INC     HL\r
-reloc_nl:\r
-       sla     e\r
-       EXX\r
-       JR      NC,reloc_next\r
-       DEC     HL\r
-       LD      A,(HL)\r
-       ADD     A,E\r
-       LD      (HL),A\r
-       INC     HL\r
-       LD      A,(HL)\r
-       ADC     A,D\r
-       LD      (HL),A\r
-reloc_next:\r
-       cpi\r
-       jp      pe,reloc_lp\r
-       dec     hl\r
-\r
-       POP     BC\r
-       pop     de\r
-       EX      DE,HL\r
-       ADD     HL,BC\r
-       EX      DE,HL\r
-       DEC     DE\r
-       LDDR\r
-       LD      HL,conbuf+2-ddtz_base\r
-       ADD     HL,DE\r
-       JP      (HL)\r
-\r
-current_phase  defl    $\r
-       .dephase\r
-current_cseg   defl    $\r
-\r
-       ds      EXPR_BUF_SIZE - ($ - expr_buf)\r
-expr_bufe:\r
-\r
 ;-------------------------------------------------------------------------------\r
 \r
 last_S:\r
@@ -3757,7 +3718,7 @@ last_L:
        dw      TPA\r
 \r
 pbl_loop_adr:\r
-       dw      0\r
+       dw      0addeh\r
 \r
 ddtz_size      equ     $-ddtz_base\r
 ddtz_end:\r