; E: Doom.trd disk 0 ; F: *.XXX disk 1 ; G: mapw*.d2 disk 2 ; H: my_tab*.* disk 3 ; ORG 100h ; DISP 8000h ; .PHASE 8000h ;COPY_SLOT1 EQU 04105H ;DISK_TYPE EQU 0C100H ; переадресация дисков ;RAMD_KEYS EQU 0C180H ; ключи RAM-Disks ;OPER_DISK EQU 05CF6H ;RAMD_FAT EQU 0C200H ; расположение блоков RAM-Disk-ов ;####################################### ;--------------------------------------- ORG #8004 ; X_COORD: DW 090*256 Y_COORD: DW 090*256 ANGLE_A: DW -160*32+0C000h ANGLE_R: DW 0000 X_SPEED: DW 300H Y_SPEED: DW 302H A_SPEED: DW 200H TABLE_TRACE: DS 33 ; таблица трассировки/банки таблицы TABLE_WALL: DS 33 ; #50 bytes ;--------------------------------------- ;--------------------------------------- ORG #8078 ; NAMES: DB 6,1 LAST_KEY: DB 0 ; 03 bytes ;--------------------------------------- ;--------------------------------------- ORG #8080 ; Обязательно для старой процедуры чтения музла ; NAME1: DB "_1X62 CBL " NAME2: DB "2NDREAL3CBL " NAME3: DB "_ICT2 CBL " ;NAME4: DB "MISS2 CBL " ;NAME5: DB "5EL CBL " NAME6: DB "_UNNY2 CBL " NAME8: DB "94956C CBL " NAME9: DB "_ENI511CCBL " ; ; #60 bytes ;--------------------------------------- ;--------------------------------------- ORG #8100 ; Выравнивание на непереполнение младшего бита адреса ; ; точно не больше #DC должен быть младший бит ;эти буфера завязаны на размер TRD в ; страницах по 16кб + 1 байт закрывашка ;TABLE_MAIN: DS 37 TABLE_MAIN: DS 33 TABLE_PIC: DS 6 ;--------------------------------------- ;--------------------------------------- ORG 8121 code: ;--------------------------------------- ;--------------------------------------- ORG #842B ; MONSTR_DAT: M_PAGE EQU $-MONSTR_DAT DB 0 ; страница с общими данными монстра (картинки) ; признак конца таблицы монстров M_ADR EQU $-MONSTR_DAT DW 4000h ; адрес в странице ; M_HIGH EQU $-MONSTR_DAT DB 40h ; вертикальное положение ; M_HOR EQU $-MONSTR_DAT DW 160 ; горизонтальное положение ; M_VAR2 EQU $-MONSTR_DAT DW 08 ; счетчик переключений ; M_XADD EQU $-MONSTR_DAT DW 100h ; x-add параметры DB 40h,40h ; ширина-высота ??? ; M_X EQU $-MONSTR_DAT DW 0700h ; координата X ; M_Y EQU $-MONSTR_DAT DW 0700h ; координата Y ; M_VX EQU $-MONSTR_DAT DW 0000h ; скорость движения по X ; M_VY EQU $-MONSTR_DAT DW 0000h ; скорость движения по Y ; M_TYPE EQU $-MONSTR_DAT DW 0 ; тип монстра уничтожаемый, неуничтожаемый ; исчезающий при ударе о стенку, не исчезающий ; исчезающий при соприкосновении с игроком, ; не исчезающий.... M_VAR EQU $-MONSTR_DAT DB 0 ; Переменные конкретного монстра ; M_VAR3 EQU $-MONSTR_DAT DB 0 ; Переменная монстра бит 0,1 - деление по ширине ; bit 2 - переключать по старшему ; bit 3 - ; bit 4 ; bit 5 ; bit 6 - показывать один цикл ; bit 7 - не выводить ; M_VAR4 EQU $-MONSTR_DAT DB 0 ; Переключение монстра ADD параметр MONSTR_D_LEN EQU $-MONSTR_DAT ;следующий монстр DB 0 ; - отсутствует ; ;**************************************** ; IX+0 - страница стенки ; IX+1,2 - адрес стенки в странице ; IX+3 - положение по вертикали - задает масштаб ; IX+4,5 - положение по горизонтали ; IX+6,7 - reserved ; IX+8,9 - X-add-parameter (коэфициент масштабирования по Y) ; IX+10 - реальная ширина стенки ??? ; IX+11 - реальная высота стенки ??? WALL_DATS: DB 0 DW #4000 DB #40 DW #00A0 ; 160 DB 0,0 MONSTR_DATS: DB 0,0,0,0,0,0,0,0 ; ; ************************************** ; MSD_DATS: DW 0,0,0,0 DW 0,0,0,0 CAT_PAGE EQU 15 EFF_PAGE: DB 0FFh PAGE_M_PLACE: DB 0FFh FIRE_PAGE: DB 0FFh BAR_PAGE: DB 0FFh BFGF_PAGE: DB 0FFh MONSTR_END_T: DW MONSTR_TABLE ;--------------------------------------- ;--------------------------------------- ORG #86F0 ; db 'flc C',0,80h,0,80H,80H,2,1 ; PALITRE: ;----[Place for PAL!!!]----------------- incbin "pal.bin" ; размер #0400 байт ;--------------------------------------- ;--------------------------------------- ORG #8B00 ; RECALC_MAP: ; пересчет карты на реальные номера стенок ;--------------------------------------- ;--------------------------------------- ORG #2100 ; +1100h байт к основной адресации incbin "table.bin" ; размер #6000 байт ;---------------------------------------