мысль пришедшая в голову сходу:
расширить и кол-во команд и даже ввести новые регистры за счет недокументированых команд.
А именно, берем блок #C0-#FF с префиксом #ED. Если в памяти находится след. последовательность байтов: #ED,#C0,#AA,#BB пусть это будет загрузка номера сегмента, внешняя логика декодирует #ED,#C0 и след. два байта попадают не к Z80, а во внешние регистры, а Z80 в то время выполняет две команды NOP. Для косвеной адресации подобным образом (подменой) можно использовать команды LD (nn),HL и LD HL,(nn) или LD HL,nn.
Остальное додумайте сами!