-?const: jp 0 ; return console input status\r
-?conin: jp 0 ; return console input character\r
-?cono: jp 0 ; send console output character\r
+;; Relocation loader\r
+;;\r
+;ldr_start::\r
+; LD HL,ddtz_end ;start of reloc bitmap\r
+; ld bc,0108h ;init bit counter\r
+;\r
+; EXX\r
+; LD HL,(BDOS+1)\r
+;; LD (ddtz_base+1),HL\r
+; LD BC,prog_size+bitmap_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,ddtz_base\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 bc,prog_size\r
+;; LD HL,TPA ;--> ddtz_base\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
+; inc hl\r
+; dec bc\r
+; ld a,b\r
+; or c\r
+; jr nz,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
+;ldr_end::\r
+;ldr_size equ $ - ldr_start\r
+;\r
+;; Entry from relocator\r
+;;\r
+;; ld sp,stack\r
+;; exx\r
+;; ld de,ddtz_base\r
+;; call cp_hl_de\r
+;; jr c,l0079h\r
+;; ex de,hl\r
+;;l0079h:\r
+;; ld de,TPA\r
+;;l007ch:\r
+;; dec hl\r
+;; ld (hl),000h\r
+;; ld a,h\r
+;; sub d\r
+;; ld b,a\r
+;; ld a,l\r
+;; sub e\r
+;; or b\r
+;; jr nz,l007ch\r
+;\r
+;; jp\r
+;\r
+;-------------------------------------------------------------------------------\r