?pathlinks? – Rev 905
Rev 896 |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
| ?url?
;LAST UPDATE: 23.02.2020 savelij
; DOS_FE
include ../../svn/pentevo/rom/macros.a80
include ../../svn/pentevo/rom/global_vars.a80
include ../../svn/pentevo/rom/define.a80
include ../../svn/pentevo/rom/evodos_vars.a80
include define.a80
STACK EQU 0X0DFF
OLD_IF EQU STACK-WORD*2
OLD_AF EQU STACK-WORD
;команда выхода и переход на обработчик
JP_EMU MACRO ADDRESS
DUPL ADDRESS-$,0;XFF
NOP
NOP
OUT (EXIT_PORT),A
ENDM
DJP_EMU MACRO ADDRESS
DUPL ADDRESS-$,0;XFF
NOP
NOP
DI
HALT
ENDM
;генерация адресов для таблицы
LABEL_GEN MACRO ADDRESS
_ADDRESS EQU ($-TABLE_VIRT)/4
DW ADDRESS,ADR_ADDRESS.WORK
ENDM
;переход на обработчик с кодом адреса
EMU_JUMP MACRO ADDRESS
ADR_ADDRESS EQU $
LD (OLD_AF+1),A
LD A,_ADDRESS
JP WORKER
.WORK EQU $
ENDM
ORG 0
JP START_TEST
DUPL 0X0038-$,0;XFF
EI
RET
DUPL 0X006F-$,0;XFF
JP (HL)
; JP_EMU 0X02BE ; OUT (0XFF), A
DUPL 0X302-$
START_TEST JP_EMU 0X0302
JP_EMU 0X030A
JP_EMU 0X0312
JP_EMU 0X031A
JP_EMU 0X0322
JP_EMU 0X032A
JP_EMU 0X0332
JP_EMU 0X033A
JP_EMU 0X0342
JP_EMU 0X034A
JP_EMU 0X0355
JP_EMU 0X035D
JP_EMU 0X0367
JP_EMU 0X0371
JP_EMU 0X037B
JP_EMU 0X0383
JP_EMU 0X038D
JP_EMU 0X0395
JP_EMU 0X039F
JP_EMU 0X03A7
JP_EMU 0X03B1
JP_EMU 0X03B9
JP_EMU 0X03C3
JP_EMU 0X03CB
JP_EMU 0X03D5
JP_EMU 0X03DD
JP_EMU 0X03E7
JP_EMU 0X03EF
DJP_EMU 0X0402
DJP_EMU 0X040A
DJP_EMU 0X0412
DJP_EMU 0X041A
DJP_EMU 0X0422
DJP_EMU 0X042A
DJP_EMU 0X0432
DJP_EMU 0X043A
DJP_EMU 0X0442
DJP_EMU 0X044A
DJP_EMU 0X0455
DJP_EMU 0X045D
DJP_EMU 0X0467
DJP_EMU 0X0471
DJP_EMU 0X047B
DJP_EMU 0X0483
DJP_EMU 0X048D
DJP_EMU 0X0495
DJP_EMU 0X049F
DJP_EMU 0X04A7
DJP_EMU 0X04B1
DJP_EMU 0X04B9
DJP_EMU 0X04C3
DJP_EMU 0X04CB
DJP_EMU 0X04D5
DJP_EMU 0X04DD
DJP_EMU 0X04E7
DUPL 0X801-$,0;XFF
;[таблица адресов перехвата и вызыватора обработчиков]
TABLE_VIRT
LABEL_GEN 0X0302
LABEL_GEN 0X030A
LABEL_GEN 0X0312
LABEL_GEN 0X031A
LABEL_GEN 0X0322
LABEL_GEN 0X032A
LABEL_GEN 0X0332
LABEL_GEN 0X033A
LABEL_GEN 0X0342
LABEL_GEN 0X034A
LABEL_GEN 0X0355
LABEL_GEN 0X035D
LABEL_GEN 0X0367
LABEL_GEN 0X0371
LABEL_GEN 0X037B
LABEL_GEN 0X0383
LABEL_GEN 0X038D
LABEL_GEN 0X0395
LABEL_GEN 0X039F
LABEL_GEN 0X03A7
LABEL_GEN 0X03B1
LABEL_GEN 0X03B9
LABEL_GEN 0X03C3
LABEL_GEN 0X03CB
LABEL_GEN 0X03D5
LABEL_GEN 0X03DD
LABEL_GEN 0X03E7
LABEL_GEN 0X03EF
LABEL_GEN 0X0402
LABEL_GEN 0X040A
LABEL_GEN 0X0412
LABEL_GEN 0X041A
LABEL_GEN 0X0422
LABEL_GEN 0X042A
LABEL_GEN 0X0432
LABEL_GEN 0X043A
LABEL_GEN 0X0442
LABEL_GEN 0X044A
LABEL_GEN 0X0455
LABEL_GEN 0X045D
LABEL_GEN 0X0467
LABEL_GEN 0X0471
LABEL_GEN 0X047B
LABEL_GEN 0X0483
LABEL_GEN 0X048D
LABEL_GEN 0X0495
LABEL_GEN 0X049F
LABEL_GEN 0X04A7
LABEL_GEN 0X04B1
LABEL_GEN 0X04B9
LABEL_GEN 0X04C3
LABEL_GEN 0X04CB
LABEL_GEN 0X04D5
LABEL_GEN 0X04DD
LABEL_GEN 0X04E7
LABEL_GEN 0X04EF
;[вызываторы перехвата]
EMU_JUMP 0X0302
EMU_JUMP 0X030A
EMU_JUMP 0X0312
EMU_JUMP 0X031A
EMU_JUMP 0X0322
EMU_JUMP 0X032A
EMU_JUMP 0X0332
EMU_JUMP 0X033A
EMU_JUMP 0X0342
EMU_JUMP 0X034A
EMU_JUMP 0X0355
EMU_JUMP 0X035D
EMU_JUMP 0X0367
EMU_JUMP 0X0371
EMU_JUMP 0X037B
EMU_JUMP 0X0383
EMU_JUMP 0X038D
EMU_JUMP 0X0395
EMU_JUMP 0X039F
EMU_JUMP 0X03A7
EMU_JUMP 0X03B1
EMU_JUMP 0X03B9
EMU_JUMP 0X03C3
EMU_JUMP 0X03CB
EMU_JUMP 0X03D5
EMU_JUMP 0X03DD
EMU_JUMP 0X03E7
EMU_JUMP 0X03EF
EMU_JUMP 0X0402
EMU_JUMP 0X040A
EMU_JUMP 0X0412
EMU_JUMP 0X041A
EMU_JUMP 0X0422
EMU_JUMP 0X042A
EMU_JUMP 0X0432
EMU_JUMP 0X043A
EMU_JUMP 0X0442
EMU_JUMP 0X044A
EMU_JUMP 0X0455
EMU_JUMP 0X045D
EMU_JUMP 0X0467
EMU_JUMP 0X0471
EMU_JUMP 0X047B
EMU_JUMP 0X0483
EMU_JUMP 0X048D
EMU_JUMP 0X0495
EMU_JUMP 0X049F
EMU_JUMP 0X04A7
EMU_JUMP 0X04B1
EMU_JUMP 0X04B9
EMU_JUMP 0X04C3
EMU_JUMP 0X04CB
EMU_JUMP 0X04D5
EMU_JUMP 0X04DD
EMU_JUMP 0X04E7
EMU_JUMP 0X04EF
DUPL STACK+0X101-$,0;XFF
;вход в обработчик
WORKER RET
DUPL 0X3D2F-$,0;XFF
NOP
RET
DUPL 0X3FF8-$,0
DB "EVOSFE"
DW DATA_VERS