;-----------[#0000 Extended]------------ INCLUDE 'src/bios/rom/EXTENDED/EXTENDED.ASM' ;--------------------------------------- ;-------------[#1000 SETUP]------------- BLOCK #1000-$,#FF setup_start EQU $ DISP #8000 ;!!!!!!!!!!hardcode DB "SETUP" ; JR JUMP DB " (C) 2001 PETERS PLUS LTD " SETUP_DEPACK: DI POP HL LD SP,#7FFF ;!!!!!!!!!!hardcode PUSH HL PUSH AF LD HL,#8000 ;!!!!!!!!!!hardcode PUSH HL LD DE,Depacker_start ; адрес процедуры депакера !!!!! PUSH DE LD HL,Depacker LD BC,Depacker.length LDIR LD HL,Depacker.packcode ; где архив LD DE,COMPILE_ADDR.MAIN ; куда распаковывать RET Depacker: ENT DEPACK_CODE: DISP Depacker_start ; сделать тут условие для исходника депакера, чтоб автоматом выбирался разный алгоритм запаковки и распаковки INCLUDE 'src/bios/ROM/SETUP/DEHRUST.ASM' ENT DEPACK_CODE.length EQU $-DEPACK_CODE DISP Depacker+DEPACK_CODE.length Depacker.packcode: INCBIN 'Build/Bin/MAIN.PAK' Depacker.length EQU $-Depacker.packcode+DEPACK_CODE.length ENT setup_length EQU $-setup_start ;--------------------------------------- ;---------------[SET EXP]--------------- BLOCK #3FD0-$,#FF ; call exp bios from setup RST18h: PUSH AF LD A,D_ROM16OFF ; set exp-rom to bank0 OUT (SYS_PORT_ON),A POP AF RET ;--------------------------------------- ;-------------[???????????]------------- BLOCK #3FD8-$,#FF A3FD8: JP #0107 ;--------------------------------------- ;-------------[???????????]------------- BLOCK #3FE0-$,#FF A3FE0: LD A,#00 OUT (SYS_PORT_OFF),A JP #0000 ;--------------------------------------- ;-------------[???????????]------------- BLOCK #3FE8-$,#FF RET_EXP_ROM: PUSH AF LD A,D_ROM16OFF OUT (SYS_PORT_ON),A JP #0100 ;--------------------------------------- ;-------------[???????????]------------- BLOCK #3FF0-$,255 A3FF0: PUSH AF DI LD A,D_ROM16OFF OUT (SYS_PORT_OFF),A JR A3FD8 ;--------------------------------------- ;-------------[???????????]------------- A3FF8: PUSH AF LD A,#00 OUT (SYS_PORT_OFF),A JP #0000 ;--------------------------------------- A4000: ;=======================================