Subversion Repositories pentevo

Rev

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