Subversion Repositories pentevo

Rev

Rev 896 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

  1.  
  2. ;LAST UPDATE: 23.02.2020 savelij
  3.  
  4. ; DOS_FE
  5.  
  6.                 include ../../svn/pentevo/rom/macros.a80
  7.                 include ../../svn/pentevo/rom/global_vars.a80
  8.                 include ../../svn/pentevo/rom/define.a80
  9.                 include ../../svn/pentevo/rom/evodos_vars.a80
  10.                 include define.a80
  11.  
  12. STACK           EQU 0X0DFF
  13.  
  14. OLD_IF          EQU STACK-WORD*2
  15. OLD_AF          EQU STACK-WORD
  16.  
  17. ;команда выхода и переход на обработчик
  18. JP_EMU          MACRO ADDRESS
  19.                 DUPL ADDRESS-$,0;XFF
  20.                 NOP
  21.                 NOP
  22.                 OUT (EXIT_PORT),A
  23.                 ENDM
  24.  
  25. DJP_EMU         MACRO ADDRESS
  26.                 DUPL ADDRESS-$,0;XFF
  27.                 NOP
  28.                 NOP
  29.                 DI
  30.                 HALT
  31.                 ENDM
  32.  
  33. ;генерация адресов для таблицы
  34. LABEL_GEN       MACRO ADDRESS
  35. _ADDRESS        EQU ($-TABLE_VIRT)/4
  36.                 DW ADDRESS,ADR_ADDRESS.WORK
  37.                 ENDM
  38.  
  39. ;переход на обработчик с кодом адреса
  40. EMU_JUMP        MACRO ADDRESS
  41. ADR_ADDRESS     EQU $
  42.                 LD (OLD_AF+1),A
  43.                 LD A,_ADDRESS
  44.                 JP WORKER
  45.  
  46. .WORK           EQU $
  47.                 ENDM
  48.  
  49.                 ORG 0
  50.                 JP START_TEST
  51.  
  52.                 DUPL 0X0038-$,0;XFF
  53.                 EI
  54.                 RET
  55.  
  56.                 DUPL 0X006F-$,0;XFF
  57.                 JP (HL)
  58.  
  59. ;               JP_EMU 0X02BE                   ; OUT      (0XFF), A
  60.  
  61.                 DUPL 0X302-$
  62. START_TEST      JP_EMU 0X0302
  63.                 JP_EMU 0X030A
  64.                 JP_EMU 0X0312
  65.                 JP_EMU 0X031A
  66.                 JP_EMU 0X0322
  67.                 JP_EMU 0X032A
  68.                 JP_EMU 0X0332
  69.                 JP_EMU 0X033A
  70.                 JP_EMU 0X0342
  71.                 JP_EMU 0X034A
  72.                 JP_EMU 0X0355
  73.                 JP_EMU 0X035D
  74.                 JP_EMU 0X0367
  75.                 JP_EMU 0X0371
  76.                 JP_EMU 0X037B
  77.                 JP_EMU 0X0383
  78.                 JP_EMU 0X038D
  79.                 JP_EMU 0X0395
  80.                 JP_EMU 0X039F
  81.                 JP_EMU 0X03A7
  82.                 JP_EMU 0X03B1
  83.                 JP_EMU 0X03B9
  84.                 JP_EMU 0X03C3
  85.                 JP_EMU 0X03CB
  86.                 JP_EMU 0X03D5
  87.                 JP_EMU 0X03DD
  88.                 JP_EMU 0X03E7
  89.                 JP_EMU 0X03EF
  90.  
  91.                 DJP_EMU 0X0402
  92.                 DJP_EMU 0X040A
  93.                 DJP_EMU 0X0412
  94.                 DJP_EMU 0X041A
  95.                 DJP_EMU 0X0422
  96.                 DJP_EMU 0X042A
  97.                 DJP_EMU 0X0432
  98.                 DJP_EMU 0X043A
  99.                 DJP_EMU 0X0442
  100.                 DJP_EMU 0X044A
  101.                 DJP_EMU 0X0455
  102.                 DJP_EMU 0X045D
  103.                 DJP_EMU 0X0467
  104.                 DJP_EMU 0X0471
  105.                 DJP_EMU 0X047B
  106.                 DJP_EMU 0X0483
  107.                 DJP_EMU 0X048D
  108.                 DJP_EMU 0X0495
  109.                 DJP_EMU 0X049F
  110.                 DJP_EMU 0X04A7
  111.                 DJP_EMU 0X04B1
  112.                 DJP_EMU 0X04B9
  113.                 DJP_EMU 0X04C3
  114.                 DJP_EMU 0X04CB
  115.                 DJP_EMU 0X04D5
  116.                 DJP_EMU 0X04DD
  117.                 DJP_EMU 0X04E7
  118.                
  119.  
  120.                 DUPL 0X801-$,0;XFF
  121. ;[таблица адресов перехвата и вызыватора обработчиков]
  122. TABLE_VIRT
  123.                 LABEL_GEN 0X0302
  124.                 LABEL_GEN 0X030A
  125.                 LABEL_GEN 0X0312
  126.                 LABEL_GEN 0X031A
  127.                 LABEL_GEN 0X0322
  128.                 LABEL_GEN 0X032A
  129.                 LABEL_GEN 0X0332
  130.                 LABEL_GEN 0X033A
  131.                 LABEL_GEN 0X0342
  132.                 LABEL_GEN 0X034A
  133.                 LABEL_GEN 0X0355
  134.                 LABEL_GEN 0X035D
  135.                 LABEL_GEN 0X0367
  136.                 LABEL_GEN 0X0371
  137.                 LABEL_GEN 0X037B
  138.                 LABEL_GEN 0X0383
  139.                 LABEL_GEN 0X038D
  140.                 LABEL_GEN 0X0395
  141.                 LABEL_GEN 0X039F
  142.                 LABEL_GEN 0X03A7
  143.                 LABEL_GEN 0X03B1
  144.                 LABEL_GEN 0X03B9
  145.                 LABEL_GEN 0X03C3
  146.                 LABEL_GEN 0X03CB
  147.                 LABEL_GEN 0X03D5
  148.                 LABEL_GEN 0X03DD
  149.                 LABEL_GEN 0X03E7
  150.                 LABEL_GEN 0X03EF
  151.  
  152.                 LABEL_GEN 0X0402
  153.                 LABEL_GEN 0X040A
  154.                 LABEL_GEN 0X0412
  155.                 LABEL_GEN 0X041A
  156.                 LABEL_GEN 0X0422
  157.                 LABEL_GEN 0X042A
  158.                 LABEL_GEN 0X0432
  159.                 LABEL_GEN 0X043A
  160.                 LABEL_GEN 0X0442
  161.                 LABEL_GEN 0X044A
  162.                 LABEL_GEN 0X0455
  163.                 LABEL_GEN 0X045D
  164.                 LABEL_GEN 0X0467
  165.                 LABEL_GEN 0X0471
  166.                 LABEL_GEN 0X047B
  167.                 LABEL_GEN 0X0483
  168.                 LABEL_GEN 0X048D
  169.                 LABEL_GEN 0X0495
  170.                 LABEL_GEN 0X049F
  171.                 LABEL_GEN 0X04A7
  172.                 LABEL_GEN 0X04B1
  173.                 LABEL_GEN 0X04B9
  174.                 LABEL_GEN 0X04C3
  175.                 LABEL_GEN 0X04CB
  176.                 LABEL_GEN 0X04D5
  177.                 LABEL_GEN 0X04DD
  178.                 LABEL_GEN 0X04E7
  179.                 LABEL_GEN 0X04EF
  180.  
  181. ;[вызываторы перехвата]
  182.                 EMU_JUMP 0X0302
  183.                 EMU_JUMP 0X030A
  184.                 EMU_JUMP 0X0312
  185.                 EMU_JUMP 0X031A
  186.                 EMU_JUMP 0X0322
  187.                 EMU_JUMP 0X032A
  188.                 EMU_JUMP 0X0332
  189.                 EMU_JUMP 0X033A
  190.                 EMU_JUMP 0X0342
  191.                 EMU_JUMP 0X034A
  192.                 EMU_JUMP 0X0355
  193.                 EMU_JUMP 0X035D
  194.                 EMU_JUMP 0X0367
  195.                 EMU_JUMP 0X0371
  196.                 EMU_JUMP 0X037B
  197.                 EMU_JUMP 0X0383
  198.                 EMU_JUMP 0X038D
  199.                 EMU_JUMP 0X0395
  200.                 EMU_JUMP 0X039F
  201.                 EMU_JUMP 0X03A7
  202.                 EMU_JUMP 0X03B1
  203.                 EMU_JUMP 0X03B9
  204.                 EMU_JUMP 0X03C3
  205.                 EMU_JUMP 0X03CB
  206.                 EMU_JUMP 0X03D5
  207.                 EMU_JUMP 0X03DD
  208.                 EMU_JUMP 0X03E7
  209.                 EMU_JUMP 0X03EF
  210.  
  211.                 EMU_JUMP 0X0402
  212.                 EMU_JUMP 0X040A
  213.                 EMU_JUMP 0X0412
  214.                 EMU_JUMP 0X041A
  215.                 EMU_JUMP 0X0422
  216.                 EMU_JUMP 0X042A
  217.                 EMU_JUMP 0X0432
  218.                 EMU_JUMP 0X043A
  219.                 EMU_JUMP 0X0442
  220.                 EMU_JUMP 0X044A
  221.                 EMU_JUMP 0X0455
  222.                 EMU_JUMP 0X045D
  223.                 EMU_JUMP 0X0467
  224.                 EMU_JUMP 0X0471
  225.                 EMU_JUMP 0X047B
  226.                 EMU_JUMP 0X0483
  227.                 EMU_JUMP 0X048D
  228.                 EMU_JUMP 0X0495
  229.                 EMU_JUMP 0X049F
  230.                 EMU_JUMP 0X04A7
  231.                 EMU_JUMP 0X04B1
  232.                 EMU_JUMP 0X04B9
  233.                 EMU_JUMP 0X04C3
  234.                 EMU_JUMP 0X04CB
  235.                 EMU_JUMP 0X04D5
  236.                 EMU_JUMP 0X04DD
  237.                 EMU_JUMP 0X04E7
  238.                 EMU_JUMP 0X04EF
  239.  
  240.                 DUPL STACK+0X101-$,0;XFF
  241. ;вход в обработчик
  242. WORKER          RET
  243.  
  244.                 DUPL 0X3D2F-$,0;XFF
  245.                 NOP
  246.                 RET
  247.  
  248.                 DUPL 0X3FF8-$,0
  249.                 DB "EVOSFE"
  250.                 DW DATA_VERS
  251.