or d\r
jr z,d$init$next ; if null, no drive\r
push hl ; save @drv pointer\r
- if 0\r
- ex de,hl ; XDPH address in <HL>\r
- dec hl\r
- dec hl\r
- ld b,(hl) ; get relative drive code\r
- ld (@ADRV),bc ; save absolute and relative drive code\r
- dec hl ; point to init pointer\r
- ld d,(hl)\r
- dec hl\r
- ld e,(hl) ; get init pointer\r
- ex de,hl\r
- call ipchl ; call init routine\r
- else\r
push de\r
- pop ix\r
+ pop ix ; XDPH address in <DE>\r
ld b,(ix-2)\r
ld (@ADRV),bc ; save absolute and relative drive code\r
ld l,(ix-4)\r
ld h,(ix-3) ; get init pointer\r
call ipchl ; call init routine\r
- endif\r
pop hl ; recover @drv pointer\r
d$init$next:\r
pop bc ; recover counter and drive #\r