Subversion Repositories pentevo

Rev

Rev 875 | Rev 999 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

  1.  
  2. ;LAST UPDATE: 10.03.2020 savelij
  3.  
  4.                 TITLE "menu_execute.a80"
  5.  
  6. ;[ЗАГРУЗКА С ЛЕНТЫ]
  7. TAPELOAD        LD H,CMOS_BYTE_00
  8.                 CALL READCMOS
  9.                 AND M_EMUL_TAPE
  10.                 JP NZ,EMULTAPLOAD
  11.                 LD IX,TAPE_LDT
  12.                 RST8 _WINW
  13. TAPELOAD1       CALL MEMSET                     ;ВЫСТАВИЛИ РЕЖИМЫ ПАМЯТИ И ТУРБЫ
  14.                 LD HL,BAS4TAPE
  15.                 LD DE,0X5C3A
  16.                 LD BC,EBAS4TAPE-BAS4TAPE
  17.                 LDIR                            ;ПЕРЕМЕННЫЕ БАСИКА СДЕЛАЛИ FOR ONLY TAPE
  18.                 LD HL,ERROR_TAPE
  19.                 PUSH HL
  20.                 LD (0X5C3D),SP                  ;ПЕРЕХВАТ ОШИБКИ ЕСЛИ ЕСТЬ ЖЕЛАНИЕ ВЕРНУТЬСЯ
  21.                 LD HL,0XFF58
  22.                 LD SP,HL                        ;ВЫСТАВИЛИ СТЕК А ЛЯ БЕЙСИК 48
  23.                 LD DE,0X3E08
  24.                 LD BC,0XA8
  25.                 EX DE,HL
  26.                 LDIR                            ;ПОЛОЖИЛИ ШРИФТ UDG
  27.                 LD HL,0X3E00
  28.                 PUSH HL
  29.                 LD HL,0X1303
  30.                 PUSH HL
  31.                 LD HL,0X1B76
  32.                 PUSH HL                         ;ЗАПОЛНИЛИ ДНО ПЕРЕСТАВЛЕННОГО СТЕКА
  33.                 LD IX,0X5CD1                    ;УСТАНОВИЛИ ДЛЯ ЗАГРУЗКИ С ЛЕНТЫ
  34.                 JP 0X073E                       ;ПЕРЕХОД НА ЗАГРУЗКУ С ЛЕНТЫ
  35.  
  36. ;[ПЕРЕХВАТ ОШИБКИ ИЛИ БРЕКА ДЛЯ ВОЗВРАТА]
  37. ERROR_TAPE      LD HL,BAS_VAR
  38.                 LD DE,0X5C00
  39.                 LD BC,EBAS_VAR-BAS_VAR
  40.                 LDIR                            ;ВЕРНУЛИ ТЫРДОСНЫЕ ПЕРЕМЕННЫЕ НА МЕСТО
  41.                 XOR A
  42.                 LD (0X5C3D),BC                  ;СНЯЛИ ПЕРЕХВАТЧИК ОШИБОК
  43.                 OUT (0XFE),A
  44.                 DEC A
  45.                 LD (gFenv),A
  46.                 CALL GLUDIN                     ;ПОГУДЕЛИ В АУ ЧТО БЫЛА ОШИБКА
  47.                 LD A,1
  48.                 LD (gFenv),A
  49.                 JP RESTART                      ;ПЕРЕЗАПУСК HE GLUK
  50.  
  51. ;[СОЗДАНИЕ РАМ ДИСКА НА 640К]
  52. RAM_640         LD HL,RESTART
  53.                 PUSH HL
  54. CREATE_TRDRAM   LD HL,636*4                     ;RAM DISK НА 640 КИЛОБАЙТ
  55. ;               JR KILRAMd
  56.  
  57. ;СОЗДАНИЕ РАМ ДИСКА НА 896 КИЛ
  58. ;RAM_892                LD HL,RESTART
  59. ;               PUSH HL
  60. ;               LD HL,892*4                     ;RAM DISK НА 896 КИЛОБАЙТ
  61. KILRAMd         LD (SECFREE),HL                 ;ВЫСТАВИЛИ ПЕРЕМЕННУЮ КОЛИЧЕСТВА СЕКТОРОВ НА RAM DISK
  62.                 DI
  63.                 PEC_ON M_SHADOW_BF
  64.                 LD A,RAM_RAMDISK+1
  65.                 LD BC,WIN_P2
  66.                 OUT (C),A
  67.                 LD HL,0X8000
  68.                 LD D,H
  69.                 LD E,L
  70.                 INC DE
  71.                 LD BC,0X0FFF
  72.                 LD (HL),L
  73.                 LDIR                            ;ОЧИСТИЛИ СТРАНИЦУ TR-DOS ДИРЕКТОРИИ
  74.                 LD HL,DSKINFO
  75.                 LD DE,0X88E1
  76.                 LD C,DSK_END-DSKINFO
  77.                 LDIR                            ;ПЕРЕНЕСЛИ ШАБЛОН ДЛЯ 9 СЕКТОРА ДИРЫ
  78.                 LD A,ZXSTD_CPU2;0XFD
  79.                 LD BC,WIN_P2
  80.                 OUT (C),A
  81.                 PEC_OFF M_SHADOW_BF
  82.                 JP CREATE_TRD640
  83.  
  84. ;[СБРОС NEOGS]
  85. RESETNGS        LD A,0X80
  86.                 OUT (0X33),A
  87.                 JP RESTART
  88.  
  89. ;[FILE NOT FOUND]
  90. FILE_NONE       LD IX,FILENONE
  91.                 RST8 _WINW
  92.                 JP STUPID1
  93.  
  94. ;[ПРОВЕРКА ВИРТУАЛЬНОГО ПРИВОДА]
  95. CMP_VIRTUAL     LD H,VIRT_REAL_DRIVE
  96.                 CALL READCMOS
  97.                 LD A,(DRV_SYM)
  98.                 LD D,A                          ;НОМЕР ТЕКУЩЕГО РЕАЛЬНОГО ДИСКОВОДА
  99.                 LD A,L
  100.                 RRCA
  101.                 RRCA
  102.                 AND 3                           ;НОМЕР РЕАЛЬНОГО ДИСКОВОДА ИЗ CMOS
  103.                 CP D
  104.                 JR NZ,PRT_NONETRDOS
  105.                 LD IX,ERR_VIRTUAL
  106.                 JR PRT_NONETRDOS1
  107.  
  108. PRT_NONETRDOS   LD IX,NONETRDOS
  109. PRT_NONETRDOS1  RST8 _WINW
  110.                 JR STUPID1
  111.  
  112. ;[ВЫВОД ПОМОЩИ]
  113. VIEW_HELP       LD IX,WIN_HELP
  114.                 RST8 _WINW
  115. VIEWHELP1       CALL PRINTTIME
  116.                 EI
  117.                 HALT
  118.                 BIT 5,(IY+1)
  119.                 CALL Z,CP_TIME_KOSHAK
  120.                 JR Z,VIEWHELP1
  121.                 RES 5,(IY+1)
  122.                 JR STUPID1
  123.  
  124. LDFDI_ERROR     LD IX,LDFDIERROR
  125.                 RST8 _WINW
  126.                 JR STUPID1
  127.  
  128. _STUPID         LD IX,MSTUPID
  129.                 CALL DRAWWIN
  130.                 LD HL,_STUPID
  131.                 LD (DSTUPID),HL
  132. STUPID1         LD SP,0
  133. TEK_SP          EQU $-2
  134.                 CALL SET_7FFD_0
  135.                 EI
  136.                 CALL RESET_VG
  137.                 CALL EXIT4ERROR
  138. ;               LD A,0XFF
  139. ;               LD (gFenv),A
  140. ;               CALL GLUDIN                     ;HL
  141. ;               LD A,1
  142. ;               LD (gFenv),A
  143.                 JP RESTART
  144.  
  145. ;[ПЕРЕХОДИЛКА В БАСИК128]
  146. BAS128          CALL SYSTEM
  147.                 CALL MEMSET
  148.                 DI
  149.                 CALL INIT_LOADTAPE
  150.                 XOR A
  151.                 CALL SET_7FFD
  152.                 RST 0
  153.  
  154. ;[СБРОС УКАЗАТЕЛЯ ЗАГРУЗЧИКА TAPE]
  155. INIT_LOADTAPE   PEC_ON M_SHADOW_BF
  156.                 LD BC,WIN_P2
  157.                 XOR A
  158.                 OUT (C),A
  159.                 LD HL,0X8000
  160.                 LD (HL),A
  161.                 INC L
  162.                 LD (HL),A
  163.                 INC L
  164.                 LD (HL),A
  165.                 LD B,HIGH (WIN_A2)
  166.                 LD A,0X7D
  167.                 OUT (C),A
  168.                 PEC_OFF M_SHADOW_BF
  169.                 RET
  170.  
  171. ;[ПЕРЕХОДИЛКА В БАСИК48]
  172. BAS48           CALL SYSTEM
  173.                 CALL MEMSET
  174.                 CALL INIT_LOADTAPE
  175.                 LD A,0X30
  176.                 CALL SET_7FFD
  177.                 RST 0
  178.  
  179. ;[ПЕРЕХОДИЛКА В ТЫРДОС]
  180. DOS128          CALL SYSTEM
  181.                 CALL MEMSET
  182.                 LD IX,0
  183.                 JP DOSIX
  184.  
  185. ;МЕНЮХА ЗАЧИСТКИ СТРАНИЦ, ФОРМАТИРОВАНИЯ РАМДИСКА И ДИСКЕТНЫЙ КОПИР
  186. _KILLS          LD IX,MKILLS
  187.                 RST8 _WINW
  188.                 JP _RULILKA
  189.  
  190. ;[СБРОС В BASIC 48 СО СТАНДАРТНОЙ ПРОШИВКОЙ ПРИ ВЫКЛЮЧЕННОМ ТУРБО РЕЖИМЕ]
  191. BAS48STD        DI
  192.                 CALL SET_EMU_TAPE
  193.                 LD BC,PENT_CONF
  194.                 LD A,0X14
  195.                 OUT (C),A
  196.                 LD BC,CONF_128
  197.                 LD A,0X30
  198.                 OUT (C),A
  199.                 PEC_ON M_SHADOW_BF
  200.                 ATMPORT WIN_A0,0X3F
  201.                 EVOPORT WIN_P0,0
  202.                 LD HL,0
  203.                 LD (HL),H
  204.                 INC L
  205.                 LD (HL),H
  206.                 INC L
  207.                 LD (HL),H
  208.                 ATMPORT WIN_A0,ROM_BAS48_STD
  209.                 PEC_OFF M_SHADOW_BF
  210.                 JP 0
  211.  
  212. ;[СБРОС В BASIC 128 СО СТАНДАРТНОЙ ПРОШИВКОЙ ПРИ ВЫКЛЮЧЕННОМ ТУРБО РЕЖИМЕ]
  213. BAS128STD       DI
  214.                 CALL SET_EMU_TAPE
  215.                 LD BC,PENT_CONF
  216.                 LD A,0X14
  217.                 OUT (C),A
  218.                 PEC_ON M_SHADOW_BF
  219.                 ATMPORT WIN_A0,0X3F
  220.                 EVOPORT WIN_P0,0
  221.                 LD HL,0
  222.                 LD (HL),H
  223.                 INC L
  224.                 LD (HL),H
  225.                 INC L
  226.                 LD (HL),H
  227.                 ATMPORT WIN_A0,ROM_BAS48_128
  228.                 LD BC,CONF_128
  229.                 XOR A
  230.                 OUT (C),A
  231.                 ATMPORT WIN_A0,ROM_BAS128_STD
  232.                 PEC_OFF M_SHADOW_BF
  233.                 JP 0
  234.  
  235. ;[HDD BOOT]
  236. HDD_BOOT        LD HL,ADR_CAT
  237.                 PUSH HL
  238.                 RST8 _COM_DEV,_COMHDDN,_DEV_INIT
  239.                 LD A,H
  240.                 POP HL
  241.                 AND A
  242.                 JR NZ,HDDBOOT1
  243. HDDBOOT4        PUSH HL
  244.                 CALL MEMSET
  245.                 POP DE
  246.                 PUSH DE
  247.                 LD HL,HDDBOOT2
  248.                 LD BC,EHDDBOOT2-HDDBOOT2
  249.                 LDIR
  250.                 RET
  251.  
  252. HDDBOOT1        LD IX,HDDBOOT_ERROR
  253.                 RST8 _WINW
  254.                 JP STUPID1
  255.  
  256. HDDBOOT2        LD HL,0X6000                    ;ГРУЗИТЬ БУДЕМ КАК И БЫЛ АДРЕС
  257.                 PUSH HL                         ;ПОСЛЕ ЗАГРУЗКИ ЗАПУСКАЕМ ЗАГРУЖЕННОЕ
  258.                 LD BC,0
  259.                 LD DE,2
  260.                 LD A,0X30
  261.                 RST8 _COM_DEV,_COMHDDN,_DEV_READ
  262.                 RET
  263.  
  264.                 LD DE,2                         ;ГРУЗИМ НАЧИНАЯ С СЕКТОРА 2 ИБО LBA
  265.                 LD BC,0XFF00+PN_1F6
  266.                 LD A,0XE0                       ;ВЫБРАЛИ МАСТЕР И LBA РЕЖИМ
  267.                 OUT (C),A
  268.                 LD C,PN_1F5
  269.                 OUT (C),D
  270.                 LD C,PN_1F4
  271.                 OUT (C),D
  272.                 LD C,PN_1F3
  273.                 OUT (C),E
  274.                 LD C,PN_1F2
  275.                 LD A,0X30                       ;ГРУЗИМ СЕКТОРОВ КАК И БЫЛО
  276.                 OUT (C),A
  277.                 EX AF,AF'                       ;СПРЯТАЛИ КОЛИЧЕСТВО СЕКТОРОВ ЗАГРУЗКИ
  278.                 LD C,PN_1F7
  279.                 LD A,0X20
  280.                 OUT (C),A                       ;КОМАНДА ЧТЕНИЯ
  281.                 LD C,PN_1F7
  282. HDDRD1_         IN A,(C)
  283.                 AND 0X88
  284.                 CP 8
  285.                 JR NZ,HDDRD1_
  286.                 EX AF,AF'
  287. HDDRD2_         EX AF,AF'
  288.                 XOR A
  289.                 LD C,PN_1F0
  290. READSC1_        IN E,(C)
  291.                 INC C
  292.                 IN D,(C)
  293.                 DEC C
  294.                 LD (HL),E
  295.                 INC HL
  296.                 LD (HL),D
  297.                 INC HL
  298.                 DEC A
  299.                 JR NZ,READSC1_
  300.                 LD C,PN_1F7
  301. HDDRD3_         IN A,(C)
  302.                 AND 0X80
  303.                 JR NZ,HDDRD3_
  304.                 EX AF,AF'
  305.                 DEC A
  306.                 JR NZ,HDDRD2_
  307.                 RET
  308. EHDDBOOT2
  309.  
  310.                 include "hdd_cd_boot.a80"
  311.  
  312. HDDRDLN EQU $-HDDREAD
  313.  
  314. ;[CD BOOT]
  315. CDBOOT  XOR A
  316.         CALL CLS
  317.         CALL MEMSET
  318.         CALL HDDBINI
  319.         EI
  320.         JP CDBOOTGO
  321.  
  322. UMOUNTIMAGE     RST8 _MOUNTER,_GET_VIRT_BITS
  323.                 AND 0X0F
  324.                 JP Z,RESTART
  325.                 LD IX,WDISMOUNT
  326.                 RST8 _WINW
  327.                 JP _RULILKA                     ;ВОЗВРАЩАЕМСЯ К ОБЩЕМУ УПРАВЛЕНИЮ
  328.  
  329. DISMOUNT_A      XOR A
  330. DISMOUNT_DRV    RST8 _MOUNTER,_CLOSEMOUNT
  331.                 JP RESTART
  332.  
  333. DISMOUNT_B      LD A,1
  334.                 JR DISMOUNT_DRV
  335.  
  336. DISMOUNT_C      LD A,2
  337.                 JR DISMOUNT_DRV
  338.  
  339. DISMOUNT_D      LD A,3
  340.                 JR DISMOUNT_DRV
  341.  
  342. ;[СБРОС CMOS]
  343. RESET_CMOS      RST8 _CMOS_RW,_CLEAR_CMOS
  344.                 CALL SET_MODES
  345.                 JP RESTART
  346.  
  347. ;[УСТАНОВКА ЗАДЕРЖКИ ДО ОПРЕДЕЛЕНИЯ HDD]
  348. HDDTIMEOUT      LD H,HDD_TIMEOUT
  349.                 CALL READCMOS
  350.                 LD E,A
  351.                 AND 0X0F
  352.                 INC A
  353.                 CP 10
  354.                 JR C,HDDTIMEOUT1
  355.                 XOR A
  356. HDDTIMEOUT1     LD D,A
  357.                 LD A,E
  358.                 AND 0XF0
  359.                 OR D
  360.                 LD L,A
  361.                 CALL WRITECMOS
  362.                 AND 0X0F
  363.                 ADD A,'0'
  364.                 LD (TXT_HDDTIMEOUT),A
  365.                 JR REPRINT_MENU
  366.  
  367.         IF 0
  368. ;[УСТАНОВКА ЗАДЕРЖКИ ЗАПУСКА SCREENSAVER]
  369. SCRSAVTIMEOUT   LD H,HDD_TIMEOUT
  370.                 CALL READCMOS
  371.                 LD E,A
  372.                 AND 0XF0
  373.                 ADD A,0X10
  374.                 CP 0XA0
  375.                 JR C,.L0
  376.                 XOR A
  377. .L0             LD D,A
  378.                 LD A,E
  379.                 AND 0X0F
  380.                 OR D
  381.                 LD L,A
  382.                 CALL WRITECMOS
  383.                 AND 0XF0
  384.                 RRCA
  385.                 RRCA
  386.                 RRCA
  387.                 RRCA
  388.                 LD (TIMEOUTSCRSAV),A
  389.                 ADD A,'0'
  390.                 LD (TXT_SCRSAVDELAY),A
  391.                 JR REPRINT_MENU
  392.         ENDIF
  393.  
  394. ;[УСТАНОВКА РАЗРЕШЕНИЯ/ЗАПРЕЩЕНИЯ ОЗВУЧКИ КЛАВИАТУРЫ]
  395. SOUND_KEYS      LD C,M_SOUNDKEYS
  396.                 LD HL,SNDKEYS_STAT
  397. SET_MENU        PUSH HL
  398.                 LD H,CMOS_BYTE_01
  399. SET_MENU1       CALL READCMOS
  400.                 XOR C
  401.                 LD L,A
  402.                 CALL WRITECMOS
  403.                 AND C
  404.                 POP HL
  405.                 CALL SET_ONOFF
  406. REPRINT_MENU    LD HL,SETUPERTXT
  407.                 RST8 _PRINT_MESSAGE
  408.                 CALL REST_COLCURS
  409.                 RST8 _COM_DEV,_CONTROL_SD
  410.                 JP _RULILKA
  411.  
  412. ;[УСТАНОВКА РАЗРЕШЕНИЯ/ЗАПРЕЩЕНИЯ ДОСТУПА К SD КАРТЕ NEOGS]
  413. ACS_SDNGS       LD C,M_ACCESSSDG
  414.                 LD HL,ACCSSDG_STAT
  415.                 JR SET_MENU
  416.  
  417. ;[УСТАНОВКА ВЫБОРА ДРАЙВЕРА ПРИНТЕРА]
  418. AYPRN_SETUP     LD C,M_TYPE_FONT
  419.                 LD HL,ETXT_AYPRINTER
  420.                 JR SET_MENU
  421.  
  422. ;[ВКЛЮЧЕНИЕ/ВЫКЛЮЧЕНИЕ АВТОСТАРТА TAP ФАЙЛА ПРИ ВЫБОРЕ В FILE BROWSER]
  423. AUTO_TAPE       LD C,M_AUTO_TAPE
  424.                 LD HL,TXT_AUTOTAPE
  425.                 PUSH HL
  426.                 LD H,CMOS_BYTE_00
  427.                 JR SET_MENU1
  428.  
  429. ;для резидента HONEY COMANDER
  430.         IFDEF REZIDENT
  431. ;включение/выключение резидента
  432. REZID_SETUP     LD C,M_REZIDENT
  433.                 LD HL,TXT_REZIDENT
  434.                 JR SET_MENU
  435.  
  436. ;включение/выключения порчи резидента при запуске
  437. KILL_REZID      LD C,M_KILL_REZIDENT
  438.                 LD HL,TXT_KILLREZID
  439.                 PUSH HL
  440.                 LD H,CMOS_BYTE_03
  441.                 JR SET_MENU1
  442.         ENDIF;REZIDENT
  443.  
  444. ;[УСТАНОВКА ПЕРЕД ВЫВОДОМ МЕНЮ SETUP]
  445. SETUPM          LD IX,SETUPER
  446.                 LD H,CMOS_BYTE_01
  447.                 CALL READCMOS
  448.                 LD B,A
  449.                 AND M_SOUNDKEYS
  450.                 LD HL,SNDKEYS_STAT
  451.                 CALL SET_ONOFF
  452.                 LD A,B
  453.                 AND M_ACCESSSDG
  454.                 LD HL,ACCSSDG_STAT
  455.                 CALL SET_ONOFF
  456.                 LD H,CMOS_BYTE_00
  457.                 CALL READCMOS
  458.                 AND M_AUTO_TAPE
  459.                 LD HL,TXT_AUTOTAPE
  460.                 CALL SET_ONOFF
  461.                 LD H,HDD_TIMEOUT
  462.                 CALL READCMOS
  463.                 LD D,A
  464.                 AND 0X0F
  465.                 ADD A,'0'
  466.                 LD (TXT_HDDTIMEOUT),A
  467.                 LD A,D
  468.                 AND 0XF0
  469.                 RRCA
  470.                 RRCA
  471.                 RRCA
  472.                 RRCA
  473.                 ADD A,'0'
  474. ;               LD (TXT_SCRSAVDELAY),A
  475.                 RST8 _WINW
  476.                 JP _RULILKA
  477.  
  478. ;[ATM CP/M]
  479. ATM_CPM         EI
  480.                 HALT
  481.                 DI
  482.                 PEC_ON M_SHADOW_BF
  483.                 LD HL,CPM_PAGES
  484.                 LD DE,0X3F
  485. ATM_CPM1        LD BC,CONF_128
  486.                 OUT (C),D
  487.                 LD BC,LOW (WIN_A3)
  488. ATM_CPM2        OUTI
  489.                 LD A,B
  490.                 SUB E
  491.                 LD B,A
  492.                 JR NZ,ATM_CPM2
  493.                 LD A,D
  494.                 XOR 0X10
  495.                 LD D,A
  496.                 JR NZ,ATM_CPM1
  497.                 LD SP,0X8000
  498.                 LD BC,0X177
  499.                 LD A,6
  500.                 OUT (C),A
  501.                 PEC_OFF M_SHADOW_BF
  502.                 JP 0X000C
  503.  
  504. CPM_PAGES       DB 3!0X7F,2!0X7F,4!0X7F,0!0X7F
  505.                 DB 3!0X7F,2!0X7F,5!0X7F,ROM_ATMCPM
  506.  
  507. ;[УСТАНОВКА РАЗРЕШЕНИЯ/ЗАПРЕЩЕНИЯ ЭМУЛЯЦИИ ЛЕНТЫ]
  508. SET_EMU_TAPE    LD H,CMOS_BYTE_00
  509.                 CALL READCMOS
  510.                 AND M_EMUL_TAPE
  511.                 RET Z
  512.                 LD BC,BREAK_LOW_WR
  513.                 LD A,LOW (ADRBRK_EMUTAP)
  514.                 OUT (C),A
  515.                 LD B,HIGH (BREAK_HIGH_WR)
  516.                 LD A,HIGH (ADRBRK_EMUTAP)
  517.                 OUT (C),A
  518.                 PEC_ON M_BREAK_BF
  519.                 RET
  520.  
  521.                 include sdcardboot.a80
  522.  
  523. SONGLN          CALL START_SONGLN
  524.                 JP RESTART
  525.  
  526. START_SONGLN    DI
  527.                 PUSH IX
  528.                 PUSH IY
  529.                 LD A,0X11
  530.                 CALL SET_7FFD
  531.                 LD A,0X10
  532.                 CALL SET_EFF7
  533.                 LD HL,0X4000
  534.                 LD DE,0XE000
  535.                 LD BC,0X1B00
  536.                 LDIR
  537.                 LD HL,0XD000
  538.                 LD DE,0XD001
  539.                 LD BC,0X1000
  540.                 LD (HL),0
  541.                 LDIR
  542. SONGLN1         XOR A
  543.                 IN A,(0XFE)
  544.                 CPL
  545.                 AND 0X1F
  546.                 JR NZ,SONGLN1
  547.                 PEC_ON M_SHADOW_BF
  548.                 EVOPORT WIN_A0,ROM_RST82
  549.                 CALL UNP_SONGLN
  550.                 EVOPORT WIN_A0,ROM_BAS48|0X80
  551.                 PEC_OFF M_SHADOW_BF
  552.                 CALL 0XC000
  553.                 LD HL,0XE000
  554.                 LD DE,0X4000
  555.                 LD BC,0X1B00
  556.                 LDIR
  557.                 LD HL,0XC000
  558.                 LD DE,0XC001
  559.                 LD BC,0X3FFF
  560.                 LD (HL),0
  561.                 LDIR
  562.                 LD A,0X10
  563.                 CALL SET_7FFD
  564.                 XOR A
  565.                 CALL SET_EFF7
  566.                 POP IY
  567.                 POP IX
  568.                 RET
  569.