Subversion Repositories pentevo

Rev

Rev 516 | Rev 549 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1.  
  2. ;LAST UPDATE: 13.12.2011 savelij
  3.  
  4.                 include ../../macros.a80
  5.                 include ../../global_vars.a80
  6.                 include ../../ports_ngs.a80
  7.                 include ../../sdcomand.a80
  8.                 include rst8_vars.a80
  9.  
  10. DD              EQU 13                          ;ДАТА
  11. MM              EQU 12                          ;МЕСЯЦ
  12. YY              EQU 11                          ;ГОД
  13. DATA            EQU DD+(MM<<5)+(YY<<9)+0X8000   ;УЖЕ УПАКОВАНО
  14.  
  15.                 PHASE 0
  16. ;ОБРАБОТКА НАЖАТИЯ MAGIC
  17.                 JP CONT_MAGIC                   ;0000
  18.  
  19.                 DUPL 0X0008-$,0XFF
  20. ;ПРОДОЛЖЕНИЕ ОБРАБОТКИ RST8
  21.                 JP NEXT_RST8                    ;0008
  22.  
  23.                 DUPL 0X0010-$,0XFF
  24. ;ЧТЕНИЕ БАЙТА ИЗ ОСНОВНОЙ ПАМЯТИ
  25.                 JP RD_BYTE_48K                  ;0010
  26.  
  27.                 DUPL ADR_SEL_ROM-$,0XFF
  28. JUMP2PAGE       OUT (C),A
  29.                 NOP
  30.                 RET
  31.  
  32.                 DUPL 0X0018-$,0XFF
  33.                 JP EXIT_RST8                    ;0018
  34.  
  35.                 DUPL 0X0020-$,0XFF
  36.                 JP $                            ;0020
  37.  
  38.                 DUPL 0X0028-$,0XFF
  39.                 JP $                            ;0028
  40.  
  41.                 DUPL 0X0030-$,0XFF
  42.                 JP $                            ;0030
  43.  
  44.                 DUPL 0X0038-$,0XFF
  45. ;ОПРОС КЛАВИАТУРЫ
  46.                 JP KEYBOARDS                    ;0038
  47.  
  48. ;ЧТЕНИЕ БАЙТА ИЗ ОБЛАСТИ ПАМЯТИ 0X4000-0XFFFF
  49. RD_BYTE_48K     PUSH HL
  50.                 PUSH DE
  51.                 PUSH BC
  52.                 PUSH AF
  53.                 LD BC,WIN_P2
  54.                 LD DE,0XFD
  55.                 LD HL,(ADRRET_L)
  56.                 OUT (C),E
  57.                 LD A,(HL)
  58.                 INC HL
  59.                 OUT (C),D
  60.                 LD (ADRRET_L),HL
  61.                 LD (NEXTBYTERST8),A
  62.                 POP AF
  63.                 POP BC
  64.                 POP DE
  65.                 POP HL
  66.                 RET
  67.  
  68. ;ВЫХОД ИЗ RST8
  69. EXIT_RST8       LD BC,0X0069                    ;АДРЕС ВОЗВРАТА В ПОСЛЕДНЕЙ СТРАНИЦЕ RAM
  70.                 PUSH BC
  71.                 LD BC,WIN_P0
  72.                 XOR A
  73.                 JP JUMP2PAGE
  74.  
  75. ;ВЫХОД ИЗ MAGIC
  76. CONT_MAGIC      LD BC,0X0066+6
  77.                 PUSH BC
  78.                 LD BC,WIN_P0
  79.                 XOR A
  80.                 JP JUMP2PAGE
  81.  
  82. ;ПРОДОЛЖЕНИЕ ОБРАБОТКИ RST8
  83. NEXT_RST8       LD HL,EXIT_RST8
  84.                 PUSH HL
  85.                 LD (INTERNAL_SP),SP
  86.                 LD A,(CODE_CALL)
  87.                 AND 0X3F
  88.                 LD L,A
  89.                 LD H,0
  90.                 ADD HL,HL
  91.                 LD DE,CODE_TABL
  92.                 ADD HL,DE
  93.                 LD E,(HL)
  94.                 INC HL
  95.                 LD D,(HL)
  96.                 EX DE,HL
  97.                 JP (HL)
  98.  
  99. CODE_TABL       DW AY_PRN_INIT                  ;40
  100.                 DW AY_PRN_A_                    ;41
  101.                 DW AY_PRN_TOKEN                 ;42
  102.                 DW AY_PRN_SCR                   ;43
  103.                 DW TAPE_INIT                    ;44
  104.                 DW TAPE_EMUL                    ;45
  105.                 DW WINW                         ;46
  106.                 DW PRINT_MESSAGE                ;47
  107.                 DW PRINT_A                      ;48
  108.                 DW SCRUP                        ;49
  109.                 DW SCRDN                        ;4A
  110.                 DW COM_DEV                      ;4B
  111.                 DW RUN_FILECODE                 ;4C
  112. ECODE_TABL
  113.  
  114.                 DUPL 0X00FF-$,0XFF
  115.                 DW 0X0038
  116.  
  117. ;===============
  118.  
  119. RUN_FILECODE    LD BC,0X0100                    ;АДРЕС ПЕРЕХОДА
  120.                 PUSH BC
  121.                 LD BC,WIN_A0
  122.                 LD A,4                          ;ВЫЗОВ КОДА ИЗ 4 СТРАНИЦЫ
  123.                 JP JUMP2PAGE
  124.  
  125. CONTINUE_PROG   XOR A
  126.                 IN A,(0XFE)
  127.                 CPL
  128.                 AND 0X1F
  129.                 JR NZ,CONTINUE_PROG
  130.                
  131.                 LD SP,(INTERNAL_SP)
  132.                 RET
  133.  
  134.                 include tape.a80
  135.                 include input_keys.a80
  136.                 include mouse.a80
  137.                 include selector.a80
  138.                 include koshak.a80
  139.                 include call_cmos.a80
  140.                 include window.a80
  141.                 include rst8_data.a80
  142. ;               include fat/ports_ngs.a80
  143. ;               include fat/sdcomand.a80
  144.                 include fat/dev_drv.a80
  145.                 include fat/ngs_sd_drv.a80
  146.                 include fat/z_sd_drv.a80
  147.                 include fat/nemo_drv.a80
  148.                 IF SMUC=1
  149.                 include fat/smuc_drv.a80
  150.                 ENDIF
  151.  
  152. COM_FAT         include fat/read_fat.a80
  153.  
  154.                 include ay_printer.a80
  155.  
  156.                 DUPL 0X37F8-$,0XFF
  157. CHARS           binclude altstd.bin
  158.  
  159.                 DB "RST_08"
  160.                 DW DATA
  161.                 DEPHASE
  162.