Subversion Repositories pentevo

Rev

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

  1.  
  2. ;LAST UPDATE: 17.05.2012 savelij
  3.  
  4.                 include ../../macros.a80
  5.                 include ../../global_vars.a80
  6.                 include ../../ports_ngs.a80
  7.                 include ../../sdcomand.a80
  8.                 include ../../fat_vars.a80
  9.  
  10. DD              EQU 8                           ;ДАТА
  11. MM              EQU 3                           ;МЕСЯЦ
  12. YY              EQU 12                          ;ГОД
  13. DATA            EQU DD+(MM<<5)+(YY<<9)+0X8000   ;УЖЕ УПАКОВАНО
  14.  
  15. TXTMODE_DEBUG   EQU 0
  16.  
  17.                 PHASE 0
  18. ;ПРОДОЛЖЕНИЕ ОБРАБОТКИ НАЖАТИЯ MAGIC
  19.                 JP CONT_MAGIC                   ;0000
  20.  
  21.                 DUPL 0X0004-$,0XFF
  22.                 JP NEXT_RST8
  23.                
  24.                 DUPL 0X0008-$,0XFF
  25.                 JP $                            ;0008
  26.  
  27.                 DUPL 0X0010-$,0XFF
  28.                 JP $                    ;0010
  29.  
  30.                 DUPL ADR_SEL_ROM-$,0XFF
  31. JUMP2PAGE       OUT (C),A
  32.                 NOP
  33.                 RET
  34.  
  35.                 DUPL 0X0018-$,0XFF
  36.                 JP $                            ;0018
  37.  
  38.                 DUPL 0X001C-$,0XFF
  39.                 JP RST30_DOS
  40.  
  41.                 DUPL 0X0020-$,0XFF
  42.                 JP $                            ;0020
  43.  
  44.                 DUPL 0X0028-$,0XFF
  45.                 JP $                            ;0028
  46.  
  47.                 DUPL 0X0030-$,0XFF
  48.                 JP $                            ;0030
  49.  
  50.                 DUPL 0X0038-$,0XFF
  51. ;ОПРОС КЛАВИАТУРЫ
  52.                 EI
  53.                 RET;JP KEYBOARDS                        ;0038
  54.  
  55. ;ВЫХОД ИЗ RST8
  56. EXIT_RST8       LD BC,P4_EXIT_RST8              ;АДРЕС ВОЗВРАТА В ПОСЛЕДНЕЙ СТРАНИЦЕ RAM
  57.                 PUSH BC
  58.                 LD BC,WIN_P0
  59.                 XOR A
  60.                 JP JUMP2PAGE
  61.  
  62. RST30_DOS       LD HL,ERST30_DOS
  63.                 JP NEXT_RST
  64.  
  65. ERST30_DOS      LD BC,WIN_A0
  66.                 LD A,6
  67.                 JP ADR_SEL_ROM
  68.  
  69. RUN_FILECODE    LD BC,UNP_MICRO_BOOT            ;АДРЕС ПЕРЕХОДА
  70. JUMP2PAGE4      PUSH BC
  71.                 LD BC,WIN_A0
  72.                 LD A,4                          ;НОМЕР СТРАНИЦЫ ВЫЗОВА
  73.                 JP JUMP2PAGE
  74.  
  75.                 DUPL 0X0066-$,0XFF
  76. ;ВЫХОД ИЗ MAGIC
  77. CONT_MAGIC      NOP
  78.                 LD HL,N_0WINA0
  79.                 LD DE,(N_DOS7FFD)
  80.                 LD A,(N_77)
  81.                 CALL CONVERT_BPORT
  82.                 CALL STORE_TXTMODE
  83.                 IF TXTMODE_DEBUG=0
  84.                 CALL SCAN_FONT
  85.                 ENDIF
  86.                 CALL MAGIC_FONT
  87.                 CALL CLS_TXTMODE8
  88.  
  89.                 LD HL,TEXT_PORTREGS
  90.                 CALL PRTT_MSG
  91.                 CALL PRT_PORTREGS
  92.  
  93. ;               LD HL,PRINT_COLOR
  94. ;               CALL PRTT_MSG
  95.  
  96. CONTMAGIC1      LD A,0XFB
  97.                 IN A,(0XFE)
  98.                 AND 4
  99.                 JR NZ,CONTMAGIC1
  100. CONTMAGIC2      XOR A
  101.                 IN A,(0XFE)
  102.                 CPL
  103.                 AND 0X1F
  104.                 JR NZ,CONTMAGIC2
  105.  
  106.                 CALL RESTORE_TXTMODE
  107.                 CALL RESTORE_FONT
  108.  
  109.                 LD BC,EXITNMISERVICE
  110.                 PUSH BC
  111.                 LD BC,WIN_P0
  112.                 XOR A
  113.                 JP JUMP2PAGE
  114.  
  115. CRC16           LD BC,INT_ONLY_RET              ;АДРЕС КУДА ВЕРНУТЬСЯ В ЭТОЙ СТРАНИЦЕ
  116.                 PUSH BC
  117.                 LD BC,CRC16FAST                 ;АДРЕС ВЫЗОВА В 4 СТРАНИЦЕ
  118.                 JR JUMP2PAGE4
  119.  
  120. CODE_TABL       DW AY_PRN_INIT                  ;40
  121.                 DW AY_PRN_A_                    ;41
  122.                 DW AY_PRN_TOKEN                 ;42
  123.                 DW AY_PRN_SCR                   ;43
  124.                 DW TAPE_INIT                    ;44
  125.                 DW TAPE_EMUL                    ;45
  126.                 DW WINW                         ;46
  127.                 DW PRINT_MESSAGE                ;47
  128.                 DW PRINT_A                      ;48
  129.                 DW SCRUP                        ;49
  130.                 DW SCRDN                        ;4A
  131.                 DW COM_DEV                      ;4B
  132.                 DW COM_FAT                      ;4C
  133.                 DW SORT_FIND_FILES              ;4D
  134.                 DW MOUNTER                      ;4E
  135.                 DW LOADFILE                     ;4F
  136.                 DW RUN_FILECODE                 ;50
  137. ECODE_TABL
  138.  
  139.                 DUPL 0X00FF-$,0XFF
  140.                 DW 0X0038
  141.  
  142. ;===============
  143.  
  144. ;ПРОДОЛЖЕНИЕ ОБРАБОТКИ RST8
  145. NEXT_RST8       LD HL,EXIT_RST8
  146. NEXT_RST        PUSH HL
  147.                 LD (INTERNAL_SP),SP
  148.                 LD HL,R_0WINA0
  149.                 LD DE,(R_DOS7FFD)
  150.                 LD A,(R_77)
  151.                 CALL CONVERT_BPORT
  152.                 CALL READ_BYTE
  153.                 LD A,(NEXTBYTERST8)
  154.                 AND 0X3F
  155.                 LD L,A
  156.                 LD H,0
  157.                 ADD HL,HL
  158.                 LD DE,CODE_TABL
  159.                 ADD HL,DE
  160.                 LD E,(HL)
  161.                 INC HL
  162.                 LD D,(HL)
  163.                 EX DE,HL
  164.                 JP (HL)
  165.  
  166. LOADFILE       
  167.                 CALL ICOM_FAT
  168.                 DB Open_file
  169.                 RET
  170.  
  171. ;ЧТЕНИЕ БАЙТА ИЗ ОБЛАСТИ ПАМЯТИ ВЫЗВАШЕЙ ПРОГИ
  172. READ_BYTE       PUSH HL
  173.                 PUSH DE
  174.                 PUSH BC
  175.                 PUSH AF
  176.                 LD A,(RADRRET_H)                ;СТАРШИЙ БАЙТ АДРЕСА ОТКУДА ЧИТАТЬ
  177.                 CP 0X40
  178.                 JR NC,READBYTE_03
  179. ;ЕСЛИ АДРЕС ЧТЕНИЯ НИЖЕ 0X4000
  180.                 LD A,(R_7FFD)                   ;ИЗ КАКОГО МАППЕРА ЧИТАТЬ
  181.                 AND 0X10
  182.                 LD HL,B0_CPU0                   ;БАЙТЫ И АДРЕСА ПОРТОВ 0 МАППЕРА
  183.                 JR Z,READ_CPU0_01
  184.                 LD HL,B1_CPU0                   ;БАЙТЫ И АДРЕСА ПОРТОВ 1 МАППЕРА
  185. READ_CPU0_01    LD D,(HL)                       ;БАЙТ ДЛЯ ЗАПИСИ В ПОРТ
  186.                 INC HL
  187.                 LD A,(HL)                       ;СТАРШИЙ БАЙТ АДРЕСА ПОРТА НУЖНОЙ СТРАНИЦЫ
  188.                 AND HIGH (WIN_A1)
  189.                 OR HIGH (WIN_P1)                ;ПРЕОБРАЗОВАЛИ СТАРШИЙ БАЙТ АДРЕСА ДЛЯ ВКЛЮЧЕНИЯ В 1 ОКНЕ      
  190.                 LD B,A
  191.                 LD C,LOW (WIN_A0)               ;BC=АДРЕС ПОРТА
  192.                 LD A,(R_77)
  193.                 LD E,0X3F
  194.                 AND 0X10                        ;ОПРЕДЕЛЯЕМ DOS ИЛИ НЕ DOS
  195.                 JR Z,READ_CPU0_02
  196.                 DEC E
  197. READ_CPU0_02    LD A,D
  198.                 AND E
  199.                 OUT (C),A                       ;ВКЛЮЧАЕМ ПАГУ BASIC ИЛИ DOS
  200.                 LD DE,CPU1                      ;СМЕЩЕНИЕ ДО 1 ОКНА ПРОЕЦИРОВАНИЯ
  201.                 LD HL,(RADRRET_L)               ;АДРЕС ОТКУДА ЧИТАТЬ
  202.                 ADD HL,DE                       ;ЧИТАТЬ ЧЕРЕЗ 1 ОКНО ПРОЕЦИРОВАНИЯ
  203.                 LD A,(HL)                       ;ПРОЧИТАЛИ БАЙТ
  204.                 SBC HL,DE                       ;ВЕРНУЛИ АДРЕС БАЙТА
  205.                 INC HL                          ;УВЕЛИЧИЛИ АДРЕС ВОЗВРАТА
  206.                 LD (RADRRET_L),HL               ;ВЕРНУЛИ АДРЕС ВОЗВРАТА
  207.                 JR READBYTE_02
  208.  
  209. ;ЕСЛИ АДРЕС ЧТЕНИЯ ВЫШЕ 0X4000
  210. READBYTE_03     LD A,(R_7FFD)                   ;ИЗ КАКОГО МАППРЕА ЧИТАТЬ
  211.                 AND 0X10
  212.                 LD HL,B0_CPU0                   ;БАЙТЫ И АДРЕСА ПОРТОВ 0 МАППЕРА
  213.                 JR Z,READBYTE_01
  214.                 LD HL,B1_CPU0                   ;БАЙТЫ И АДРЕСА ПОРТОВ 1 МАППЕРА
  215. READBYTE_01     LD A,(RADRRET_H)                ;СТАРШИЙ БАЙТ АДРЕСА ОТКУДА ЧИТАТЬ
  216.                 AND 0XC0
  217.                 LD C,A
  218.                 RLCA
  219.                 RLCA
  220.                 RLCA
  221.                 LD E,A
  222.                 LD D,0                          ;DE=СМЕЩЕНИЕ В ТАБЛИЦЕ БАЙТА И СТАРШЕГО БАЙТА СТРАНИЦЫ ЧТЕНИЯ
  223.                 ADD HL,DE
  224.                 LD D,(HL)                       ;БАЙТ ДЛЯ ЗАПИСИ В ПОРТ
  225.                 INC HL
  226.                 LD A,(HL)
  227.                 AND HIGH (WIN_A1)
  228.                 OR HIGH (WIN_P1)
  229.                 LD B,A
  230.                 LD C,LOW (WIN_A1)               ;BC=АДРЕС ПОРТА ДЛЯ 1 ОКНА ПРОЕЦИРОВАНИЯ
  231.                 LD HL,(RADRRET_L)               ;АДРЕС ОТКУДА ЧИТАТЬ
  232.                 OUT (C),D                       ;ВКЛЮЧИЛИ СТРАНИЦУ ДЛЯ ЧТЕНИЯ БАЙТА
  233.                 LD E,L                          ;МЛАДШИЙ БАЙТ АДРЕСА ЧТЕНИЯ
  234.                 LD A,H
  235.                 AND HIGH (WIN_A1)
  236.                 OR HIGH (CPU1)
  237.                 LD D,A                          ;СТАРШИЙ БАЙТ АДРЕСА ЧТЕНИЯ
  238.                 LD A,(DE)                       ;ПРОЧИТАЛИ БАЙТ
  239.                 INC HL                          ;УВЕЛИЧИЛИ АДРЕС ВОЗВРАТА
  240.                 LD (RADRRET_L),HL               ;ВЕРНУЛИ АДРЕС ВОЗВРАТА
  241. READBYTE_02     LD (NEXTBYTERST8),A             ;ПОЛОЖИЛИ ПРОЧИТАННЫЙ БАЙТ
  242.                 CALL MAIN_MEM13                 ;ВЕРНУЛИ СТРАНИЦЫ В 1 И 3 ОКНО ПРОЕЦИРОВАНИЯ
  243.                 POP AF
  244.                 POP BC
  245.                 POP DE
  246.                 POP HL
  247.                 RET
  248.  
  249. LDIR_BYTES      EXX
  250.                 LD BC,INT_ONLY_RET
  251.                 PUSH BC
  252.                 LD BC,LDIR__BYTES
  253.                 PUSH BC
  254.                 LD BC,WIN_P0
  255.                 XOR A
  256.                 JP JUMP2PAGE
  257.  
  258. ;ВОССТАНОВЛЕНИE СТРАНИЦ В ОКНАХ ПРОЕЦИРОВАНИЯ 1 И 3
  259. MAIN_MEM13      LD A,(R_7FFD)                   ;ПРОВЕРКА В КАКОМ МАППЕРЕ
  260.                 AND 0X10
  261.                 LD HL,B0_CPU1                   ;ДЛЯ 0 МАППЕРА
  262.                 JR Z,MAINMEM1
  263.                 LD HL,B1_CPU1                   ;ДЛЯ 1 МАППЕРА
  264. MAINMEM1        LD C,LOW (WIN_A0)
  265.                 CALL MAINMEM3                   ;ВЕРНУЛИ ДЛЯ 1 ОКНА ПРОЕЦИРОВАНИЯ
  266.                 INC HL                          ;ДАЛЕЕ ВОЗВРАЩАЕМ ДЛЯ 3 ОКНА ПРОЕЦИРОВАНИЯ
  267.                 INC HL
  268. MAINMEM3        LD E,(HL)
  269.                 INC HL
  270.                 LD D,(HL)
  271.                 LD A,D
  272.                 OR 0X3F
  273.                 LD B,A
  274.                 BIT 3,D
  275.                 JR NZ,MAINMEM2
  276.                 SET 3,B
  277.                 LD A,D
  278.                 AND 3
  279.                 RRCA
  280.                 RRCA
  281.                 OUT (C),A
  282.                 RES 3,B
  283. MAINMEM2        INC HL
  284.                 OUT (C),E
  285.                 RET
  286.  
  287. CONTINUE_PROG   XOR A
  288.                 IN A,(0XFE)
  289.                 CPL
  290.                 AND 0X1F
  291.                 JR NZ,CONTINUE_PROG
  292.                
  293.                 LD SP,(INTERNAL_SP)
  294. INT_ONLY_RET    RET
  295.  
  296. ;КОНВЕРСИЯ СЧИТАННЫХ ЗНАЧЕНИЙ ИЗ ПОРТОВ КОНФИГУРАЦИИ
  297. ;HL=АДРЕС ОТКУДА БРАТЬ СЧИТАННЫЕ ЗНАЧЕНИЯ ДЛЯ КОНВЕРСИИ
  298. ;DE=БИТЫ 7,6 ДЛЯ ДЕКОДИРОВАНИЯ
  299. ;BC=КУДА СКЛАДЫВАТЬ ДЕКОДИРОВАННОЕ
  300. ;A=СЧИТАННОЕ ЗНАЧЕНИЕ ДЛЯ КОНВЕРСИИ ДЛЯ ПОРТА XX77
  301. CONVERT_BPORT   PUSH AF
  302.                 LD BC,B0_CPU0
  303.                 LD IYL,HIGH (WIN_A3)&0XFC
  304.                 LD A,8                          ;КОНВЕРТИТЬ 8 БАЙТ
  305. CBPORT03        EX AF,AF'
  306.                 LD A,(HL)
  307.                 CP 0XC0
  308.                 JR NC,CBPORT01
  309. ;ЕСЛИ ЧИСЛО МЕНЕЕ, ТО ВОССТАНАВЛИВАТЬ В ПОРТЫ X7F7
  310.                 LD (BC),A
  311.                 INC BC
  312.                 LD A,IYL
  313.                 ADD A,0X40
  314.                 LD IYL,A
  315.                 AND 0XF7
  316.                 RLCA
  317.                 RLCA
  318.                 SRL E
  319.                 RLA
  320.                 SRL D
  321.                 RLA
  322.                 LD (BC),A
  323.                 INC BC
  324.                 JR CBPORT02
  325.  
  326. ;ЕСЛИ ЧИСЛО БОЛЬШЕ, ТО ВОССТАНАВЛИВАТЬ В ПОРТЫ XFF7
  327. CBPORT01        LD A,(HL)
  328.                 RLCA
  329.                 RLCA
  330.                 SRL D
  331.                 RRA
  332.                 SRL E
  333.                 RRA
  334.                 LD (BC),A
  335.                 INC BC
  336.                 LD A,IYL
  337.                 ADD A,0X40
  338.                 LD IYL,A
  339.                 LD (BC),A
  340.                 INC BC
  341. CBPORT02        DEC HL
  342.                 EX AF,AF'
  343.                 DEC A
  344.                 JR NZ,CBPORT03
  345.                 POP HL
  346.                 LD L,0XBC
  347.                 LD A,H
  348.                 AND 0X0F
  349.                 OR 0XA0
  350.                 LD (BC),A
  351.                 INC BC
  352.                 LD A,H
  353.                 AND 0X80
  354.                 RRCA
  355.                 OR L
  356.                 LD L,A
  357.                 LD A,H
  358.                 AND 0X60
  359.                 RLCA
  360.                 RLCA
  361.                 RLCA
  362.                 OR L
  363.                 LD (BC),A
  364.                 RET
  365.  
  366. SORT_FIND_FILES LD HL,KOL_FOUNDED
  367.                 LD A,H
  368.                 OR L
  369.                 RET Z
  370.                 DEC HL
  371.                 LD A,H
  372.                 OR L
  373.                 RET Z
  374.                 LD BC,WIN_P1
  375.                 LD A,PAGE_TEMP
  376.                 OUT (C),A
  377.                 LD HL,CPU1+0X1000               ;АДРЕС ПЕРВЫХ СИМВОЛОВ
  378.                 LD DE,0X1000
  379.                 LD BC,SYMS4SORT
  380.                 EXX
  381.                 LD HL,CPU1+0X2000               ;АДРУС КУДА СКЛАДИРОВАТЬ СОРТИРОВАННОЕ
  382.                 LD BC,(KOLFIND)
  383.                 EXX
  384. ;ПЕРВЫЙ ПРОХОД ДЛЯ ДИРЕКТОРИЙ
  385. SORTIR03        LD A,(HL)
  386.                 AND 0X10
  387.                 JR Z,SORTIR01
  388.                 INC HL
  389.                 LD A,(BC)
  390.                 CP (HL)
  391.                 DEC HL
  392.                 JR NZ,SORTIR01
  393.                 SBC HL,DE                       ;ПЕРЕХОД К НОМЕРАМ
  394.                 LD A,(HL)
  395.                 INC HL
  396.                 EXX
  397.                 LD (HL),A
  398.                 INC HL
  399.                 EXX
  400.                 LD A,(HL)
  401.                 INC HL
  402.                 EXX
  403.                 LD (HL),A
  404.                 INC HL
  405.                 DEC BC
  406.                 LD A,B
  407.                 OR C
  408.                 EXX
  409.                 JR Z,SORTIR05                   ;ЕСЛИ КОНЧИЛОСЬ ТО ТОЖЕ САМОЕ ДЛЯ ФАЙЛОВ
  410.                 ADD HL,DE                       ;ВОЗВРАТ К ФЛАГАМ И ИМЕНАМ
  411.                 JR SORTIR03
  412.  
  413. ;НЕ ДИРЕКТОРИЯ, СЛЕДУЮЩАЯ ПАРА
  414. SORTIR01        INC HL
  415.                 INC HL
  416.                 EXX
  417.                 DEC BC
  418.                 LD A,B
  419.                 OR C
  420.                 EXX
  421.                 JR NZ,SORTIR03
  422. SORTIR05        EXX
  423.                 LD BC,(KOLFIND)
  424.                 EXX
  425.                 LD HL,CPU1+0X1000
  426.                 INC BC
  427.                 LD A,(BC)
  428.                 AND A
  429.                 JR NZ,SORTIR03
  430.                 LD BC,SYMS4SORT
  431.                 LD HL,CPU1+0X1000
  432. ;ВТОРОЙ ПРОХОД ДЛЯ ФАЙЛОВ
  433. SORTIR02        LD A,(HL)
  434.                 AND 0X10
  435.                 JR NZ,SORTIR04
  436.                 INC HL
  437.                 LD A,(BC)
  438.                 CP (HL)
  439.                 DEC HL
  440.                 JR NZ,SORTIR04
  441.                 SBC HL,DE
  442.                 LD A,(HL)
  443.                 INC HL
  444.                 EXX
  445.                 LD (HL),A
  446.                 INC HL
  447.                 EXX
  448.                 LD A,(HL)
  449.                 INC HL
  450.                 EXX
  451.                 LD (HL),A
  452.                 INC HL
  453.                 DEC BC
  454.                 LD A,B
  455.                 OR C
  456.                 EXX
  457.                 JR Z,SORTIR07
  458.                 ADD HL,DE
  459.                 JR SORTIR02
  460.  
  461. SORTIR04        INC HL
  462.                 INC HL
  463.                 EXX
  464.                 DEC BC
  465.                 LD A,B
  466.                 OR C
  467.                 EXX
  468.                 JR NZ,SORTIR02
  469. SORTIR07        EXX
  470.                 LD BC,(KOLFIND)
  471.                 EXX
  472.                 LD HL,CPU1+0X1000
  473.                 INC BC
  474.                 LD A,(BC)
  475.                 AND A
  476.                 JR NZ,SORTIR02
  477.                 LD HL,CPU1+0X2000
  478.                 LD DE,CPU1
  479.                 LD BC,0X1000
  480.                 LDIR
  481.                 RET
  482.  
  483. SYMS4SORT       DB ".!#$%&'()-0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`{}~",0X7F
  484.                 DB "АБВГДЕЖЗИЙКЛЬНОПРСТУФХЦЧШЩЪЫЬЭЮЯЁ",0
  485.  
  486. PRTT_HL_        LD A,H
  487.                 CALL PRTT_A
  488.                 LD A,L
  489. PRTT_A          PUSH AF
  490.                 RRCA
  491.                 RRCA
  492.                 RRCA
  493.                 RRCA
  494.                 CALL PRTT_A_1
  495.                 POP AF
  496. PRTT_A_1        AND 0X0F
  497.                 CP 0X0A
  498.                 CCF
  499.                 ADC A,"0"
  500.                 DAA
  501.                 AND 0X7F
  502.                 JP PRTT_A_
  503.  
  504. COORDINAT_REGS  DW Y_OFFSET+1+(X_OFFSET+3)*0X100        ;SP
  505.                 DW Y_OFFSET+1+(X_OFFSET+3+9)*0X100      ;PC
  506.                 DW Y_OFFSET+2+(X_OFFSET+3)*0X100        ;IR
  507.                 DW Y_OFFSET+3+(X_OFFSET+3)*0X100        ;AF
  508.                 DW Y_OFFSET+3+(X_OFFSET+3+9)*0X100      ;AF'
  509.                 DW Y_OFFSET+4+(X_OFFSET+3)*0X100        ;BC
  510.                 DW Y_OFFSET+4+(X_OFFSET+3+9)*0X100      ;BC'
  511.                 DW Y_OFFSET+5+(X_OFFSET+3)*0X100        ;DE
  512.                 DW Y_OFFSET+5+(X_OFFSET+3+9)*0X100      ;DE'
  513.                 DW Y_OFFSET+6+(X_OFFSET+3)*0X100        ;HL
  514.                 DW Y_OFFSET+6+(X_OFFSET+3+9)*0X100      ;HL'
  515.                 DW Y_OFFSET+7+(X_OFFSET+3)*0X100        ;IX
  516.                 DW Y_OFFSET+7+(X_OFFSET+3+9)*0X100      ;IY
  517.                 DW Y_OFFSET+0X0A+(X_OFFSET+6)*0X100     ;CPU3 MAP0
  518.                 DW Y_OFFSET+0X0A+(X_OFFSET+6+3)*0X100   ;CPU3 MAP1
  519.                 DW Y_OFFSET+0X0B+(X_OFFSET+6)*0X100     ;CPU2 MAP0
  520.                 DW Y_OFFSET+0X0B+(X_OFFSET+6+3)*0X100   ;CPU2 MAP1
  521.                 DW Y_OFFSET+0X0C+(X_OFFSET+6)*0X100     ;CPU1 MAP0
  522.                 DW Y_OFFSET+0X0C+(X_OFFSET+6+3)*0X100   ;CPU1 MAP1
  523.                 DW Y_OFFSET+0X0D+(X_OFFSET+6)*0X100     ;CPU0 MAP0
  524.                 DW Y_OFFSET+0X0D+(X_OFFSET+6+3)*0X100   ;CPU0 MAP1
  525.                 DW Y_OFFSET+0X0F+(X_OFFSET+5)*0X100     ;PORT 7FFD
  526.                 DW Y_OFFSET+0X10+(X_OFFSET+5)*0X100     ;PORT EFF7
  527.                 DW Y_OFFSET+0X11+(X_OFFSET+0)*0X100     ;PORT XX77
  528.                 DW Y_OFFSET+0X11+(X_OFFSET+0+5)*0X100   ;BYTE IN PORT XX77
  529.                 DW Y_OFFSET+0X12+(X_OFFSET+5)*0X100     ;PORT BF
  530.                 DW Y_OFFSET+0X14+(X_OFFSET+11)*0X100    ;BIT DOS ENABLE
  531.  
  532. PRINT_REGS      LD E,(IX)
  533.                 INC IX
  534.                 LD D,(IX)
  535.                 INC IX
  536.                 JP PRTT_HL_
  537.  
  538. PRINT_REG       LD E,(IX)
  539.                 INC IX
  540.                 LD D,(IX)
  541.                 INC IX
  542.                 JP PRTT_A
  543.  
  544. PRT_PORTREGS    LD A,0X0F
  545.                 LD (TXT_COLOR),A
  546.                 LD IX,COORDINAT_REGS
  547.                 LD HL,(NMI_SAVE_SP)
  548.                 CALL PRINT_REGS                         ;SP
  549.                 LD HL,(NADRRET_L)
  550.                 CALL PRINT_REGS                         ;PC
  551.                 LD A,(NREG_I)
  552.                 LD H,A
  553.                 LD A,(NREG_R)
  554.                 LD L,A
  555.                 CALL PRINT_REGS                         ;IR
  556.                 LD HL,(NREG_F)
  557.                 CALL PRINT_REGS                         ;AF
  558.                 LD HL,(NREG_FF)
  559.                 CALL PRINT_REGS                         ;AF'
  560.                 LD HL,(NREG_C)
  561.                 CALL PRINT_REGS                         ;BC
  562.                 LD HL,(NREG_CC)
  563.                 CALL PRINT_REGS                         ;BC'
  564.                 LD HL,(NREG_E)
  565.                 CALL PRINT_REGS                         ;DE
  566.                 LD HL,(NREG_EE)
  567.                 CALL PRINT_REGS                         ;DE'
  568.                 LD HL,(NREG_L)
  569.                 CALL PRINT_REGS                         ;HL
  570.                 LD HL,(NREG_LL)
  571.                 CALL PRINT_REGS                         ;HL'
  572.                 LD HL,(NREG_IXL)
  573.                 CALL PRINT_REGS                         ;IX
  574.                 LD HL,(NREG_IYL)
  575.                 CALL PRINT_REGS                         ;IY
  576.                 LD A,(B0_CPU3)
  577.                 CALL PRINT_REG                          ;CPU3 MAP0
  578.                 LD A,(B1_CPU3)
  579.                 CALL PRINT_REG                          ;CPU3 MAP1
  580.                 LD A,(B0_CPU2)
  581.                 CALL PRINT_REG                          ;CPU2 MAP0
  582.                 LD A,(B1_CPU2)
  583.                 CALL PRINT_REG                          ;CPU2 MAP1
  584.                 LD A,(B0_CPU1)
  585.                 CALL PRINT_REG                          ;CPU1 MAP0
  586.                 LD A,(B1_CPU1)
  587.                 CALL PRINT_REG                          ;CPU1 MAP1
  588.                 LD A,(B0_CPU0)
  589.                 CALL PRINT_REG                          ;CPU0 MAP0
  590.                 LD A,(B1_CPU0)
  591.                 CALL PRINT_REG                          ;CPU0 MAP1
  592.                 LD A,(N_7FFD)
  593.                 CALL PRINT_REG                          ;PORT 7FFD
  594.                 LD A,(N_EFF7)
  595.                 CALL PRINT_REG                          ;PORT EFF7
  596.                 LD A,(N_77)
  597.                 AND %11100000
  598.                 RRCA
  599.                 LD B,A
  600.                 RRCA
  601.                 RRCA
  602.                 RRCA
  603.                 RRCA
  604.                 OR B
  605.                 OR 0XBC
  606.                 CALL PRINT_REG                          ;PORT XX77
  607.                 LD A,(N_77)
  608.                 AND 0X0F
  609.                 CALL PRINT_REG                          ;BYTE IN PORT XX77
  610.                 LD A,(N_BF)
  611.                 CALL PRINT_REG                          ;PORT BF
  612.                 LD E,(IX)
  613.                 INC IX
  614.                 LD D,(IX)
  615.                 LD A,(N_77)
  616.                 AND 0X10
  617.                 RRCA
  618.                 RRCA
  619.                 RRCA
  620.                 RRCA
  621.                 ADD A,"0"
  622.                 JP PRTT_A_                              ;BIT DOS ENABLE
  623.  
  624. PRINT_COLOR     DB 0X16,0X03,0,0X17,0X00,"----------------"
  625.                 DB 0X16,0X04,0,0X17,0X08,"----------------"
  626.                 DB 0X16,0X05,0,0X17,0X10,"----------------"
  627.                 DB 0X16,0X06,0,0X17,0X18,"----------------"
  628.                 DB 0X16,0X07,0,0X17,0X20,"----------------"
  629.                 DB 0X16,0X08,0,0X17,0X28,"----------------"
  630.                 DB 0X16,0X09,0,0X17,0X30,"----------------"
  631.                 DB 0X16,0X0A,0,0X17,0X38,"----------------"
  632.                 DB 0X16,0X0B,0,0X17,0X80,"----------------"
  633.                 DB 0X16,0X0C,0,0X17,0X88,"----------------"
  634.                 DB 0X16,0X0D,0,0X17,0X90,"----------------"
  635.                 DB 0X16,0X0E,0,0X17,0X98,"----------------"
  636.                 DB 0X16,0X0F,0,0X17,0XA0,"----------------"
  637.                 DB 0X16,0X10,0,0X17,0XA8,"----------------"
  638.                 DB 0X16,0X11,0,0X17,0XB0,"----------------"
  639.                 DB 0X16,0X12,0,0X17,0XB8,"----------------"
  640.                 DB 0
  641.  
  642. X_OFFSET        EQU 63
  643. Y_OFFSET        EQU 2
  644. TEXT_PORTREGS   DB 0X17,0X0F
  645.                 DB 0X16,Y_OFFSET+0X01,X_OFFSET+0,"SP=      PC="
  646.                 DB 0X16,Y_OFFSET+0X02,X_OFFSET+0,"IR="
  647.                 DB 0X16,Y_OFFSET+0X03,X_OFFSET+0,"AF=     AF'="
  648.                 DB 0X16,Y_OFFSET+0X04,X_OFFSET+0,"BC=     BC'="
  649.                 DB 0X16,Y_OFFSET+0X05,X_OFFSET+0,"DE=     DE'="
  650.                 DB 0X16,Y_OFFSET+0X06,X_OFFSET+0,"HL=     HL'="
  651.                 DB 0X16,Y_OFFSET+0X07,X_OFFSET+0,"IX=      IY="
  652.                 DB 0X16,Y_OFFSET+0X09,X_OFFSET+0,"  MAP  0 1"
  653.                 DB 0X16,Y_OFFSET+0X0A,X_OFFSET+0,"CPU3="
  654.                 DB 0X16,Y_OFFSET+0X0B,X_OFFSET+0,"CPU2="
  655.                 DB 0X16,Y_OFFSET+0X0C,X_OFFSET+0,"CPU1="
  656.                 DB 0X16,Y_OFFSET+0X0D,X_OFFSET+0,"CPU0="
  657.                 DB 0X16,Y_OFFSET+0X0F,X_OFFSET+0,"7FFD="
  658.                 DB 0X16,Y_OFFSET+0X10,X_OFFSET+0,"EFF7="
  659.                 DB 0X16,Y_OFFSET+0X11,X_OFFSET+2,"77="
  660.                 DB 0X16,Y_OFFSET+0X12,X_OFFSET+2,"BF="
  661.                 DB 0X16,Y_OFFSET+0X14,X_OFFSET+0,"DOS ENABLE= "
  662.                 DB 0X16,Y_OFFSET+0X16,0X40,0X17,0X39,"  E.EXIT  "
  663.                 DB 0X16,1,0X10,0X17,0X32," EVO Magic Service prealfa ",0
  664. TXT_VERIFY_FONT DB 0X16,0X18,0,0X17,0X22,"  VERIFY READING FONT ",0
  665. TXT_VERIFY_OK   DB " OK    ",0
  666. TXT_VERIFY_ERR  DB "ERROR  ",0
  667.  
  668.                 include txtmode_proc.a80
  669.                 include fontread.a80
  670.                 include tape.a80
  671.                 include mouse.a80
  672.                 include call_cmos.a80
  673.                 include window.a80
  674.                 include ay_printer.a80
  675.                 include rst8_data.a80
  676.                 include fat/mounter.a80
  677.                 include fat/dev_drv.a80
  678.                 include fat/ngs_sd_drv.a80
  679.                 include fat/z_sd_drv.a80
  680.                 include fat/nemo_drv.a80
  681.                 include fat/read_fat.a80
  682.  
  683.                 DUPL 0X37F8-$,0XFF
  684. CHARS           binclude altstd.bin
  685.  
  686.                 DB "RST_08"
  687.                 DW DATA
  688.                 DEPHASE
  689.  
  690.                 include addons.a80
  691.