Subversion Repositories pentevo

Rev

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

  1.  
  2. ;LAST UPDATE: 15.01.2014 savelij
  3.  
  4. ;ИНФА ДЛЯ СОЗДАНИЯ 9 СЕКТОРА НОВОГО ДИСКА
  5. DSKINFO         DB 0                    ;+0XE1-НОМЕР ПЕРВОГО СВОБОДНОГО СЕКТОРА
  6.                 DB 1                    ;+0XE2-НОМЕР ПЕРВОГО СВОБОДНОГО ТРЕКА
  7.                 DB 0X16                 ;+0XE3-ТИП ДИСКЕТЫ
  8.                 DB 0                    ;+0XE4-КОЛИЧЕСТВО ФАЙЛОВ НА ДИСКЕТЕ
  9. SECFREE         DW 2544                 ;+0XE5-КОЛИЧЕСТВО СВОБОДНЫХ СЕКТОРОВ
  10.                 DB 0X10                 ;+0XE7-ИДЕНТИФИКАЦИОННЫЙ КОД TRDOS
  11.                 DW 0                    ;+0XE8-2 БАЙТА 0
  12.                 DUPL 9," "              ;+0XEA-9 БАЙТ 0X20
  13.                 DB 0                    ;+0XF3-1 БАЙТ 0
  14.                 DB 0                    ;+0XF4-КОЛИЧЕСТВО УДАЛЕННЫХ ФАЙЛОВ
  15.                 DB "RAMDISKO"           ;+0XF5-ИМЯ ДИСКЕТЫ
  16. DSK_END
  17.  
  18. DISK_NONE       PUSH HL
  19.                 PUSH BC
  20.                 LD A,PAGE_RAMDISK
  21.                 LD BC,WIN_P1
  22.                 OUT (C),A
  23.                 LD HL,0X7FFF
  24.                 LD A,(HL)
  25.                 DEC H
  26.                 CP "R"
  27.                 JR NZ,DISK_NONE1
  28.                 LD A,(HL)
  29.                 CP "D"
  30. DISK_NONE1      EX AF,AF'
  31.                 LD A,0XFA
  32.                 OUT (C),A
  33.                 EX AF,AF'
  34.                 POP BC
  35.                 POP HL
  36.                 RET
  37.  
  38. SET_RWPORT0     PUSH BC
  39.                 PUSH AF
  40.                 LD BC,CMOSD_SET_ADR
  41.                 LD A,VIRT_REAL_DRIVE
  42.                 OUT (C),A
  43.                 LD B,HIGH (CMOSD_RD_WR)
  44.                 IN A,(C)
  45.                 AND 0X0F
  46.                 LD C,A
  47.                 IN A,(RW_PORT0)
  48.                 AND 0XF0
  49.                 OR C
  50.                 OUT (RW_PORT0),A
  51.                 POP AF
  52.                 POP BC
  53.                 RET
  54.  
  55. DOS2RST8        EX (SP),HL                      ;HL
  56.                 PUSH AF                         ;AF
  57.                 PUSH BC                         ;BC
  58.                 LD A,R
  59.                 JP PE,DOS2RST8_01
  60.                 LD A,R
  61. DOS2RST8_01     DI
  62.                 PUSH AF                         ;RF
  63.                 PUSH HL                         ;ADR_RET
  64.                 PUSH DE                         ;DE
  65.                 IN A,(PEVO_CONF)
  66.                 LD L,A
  67.                 OR 1
  68.                 OUT (PEVO_CONF),A
  69.                 LD BC,RD_1WINA0
  70.                 IN A,(C)
  71.                 AND 0X3E
  72.                 LD BC,RD_1WINA0
  73.                 IN H,(C)
  74.                 RES 0,H
  75.                 LD B,HIGH (RD_DOS7FFD)
  76.                 IN E,(C)
  77.                 RES 4,E
  78.                 DEC B
  79.                 IN D,(C)
  80.                 LD BC,WIN_A0
  81.                 OUT (C),A
  82.                 LD B,HIGH (WIN_P0)
  83.                 XOR A
  84.                 JP ADR_SEL_ROM
  85.  
  86. EDOS2RST8       LD BC,DOS_NOEMUL
  87.                 LD A,(BC)
  88.                 AND 0X3E
  89.                 CP E
  90.                 JR Z,EDOS2RST02
  91.                 INC BC
  92. EDOS2RST02      LD A,(BC)
  93.                 LD BC,WIN_A0
  94.                 CALL WR_BYTE_RET
  95.                 LD A,L
  96.                 OUT (PEVO_CONF),A
  97.                 POP DE
  98.                 POP HL
  99.                 POP AF
  100.                 JP PO,EDOS2RST01
  101.                 EI
  102. EDOS2RST01      POP BC
  103.                 POP AF
  104.                 EX (SP),HL
  105.                 RET
  106.  
  107. CMP_SPECSYM     LD HL,(TRD_5CD9)
  108.                 LD A,(HL)
  109.                 CP "."
  110.                 JP NZ,FIND_KEYWORD
  111.                 POP HL
  112.                 RET
  113.  
  114. ;ABCDEFGHIJKLMNOPQRSTUVWXYZ
  115. EXTEND_COM     
  116.                 DB 2,"CD"
  117.                 DW CD
  118.                 DB 7,"CLRCMOS"
  119.                 DW CLRCMOS
  120.                 DB 3,"DIR"
  121.                 DW DIR
  122.                 DB 5,"DRIVE"
  123.                 DW DRIVE
  124.                 DB 4,"HELP"
  125.                 DW HELP
  126.                 DB 5,"MOUNT"
  127.                 DW MOUNT
  128.                 DB 6,"UMOUNT"
  129.                 DW UMOUNT
  130.                 DB 3,"VER"
  131.                 DW PRT_VERS
  132.                 DB 4,"VIRT"
  133.                 DW SET_VIRT
  134.                 DB 0
  135.  
  136. END_EXT_COM     INC DE
  137.                 LD A,(DE)
  138.                 CP ":"
  139.                 DEC DE
  140.                 JP NZ,SINTAX_ERROR
  141.                 LD A,(DE)
  142.                 AND 0DFH
  143.                 SUB "A"
  144.                 JP C,SINTAX_ERROR
  145.                 CP 4
  146.                 JR NC,SELFATDRV
  147.                 LD (TRD_5CF6),A                 ; ДИСКОВОД ДЛЯ ВРЕМЕННОЙ ОПЕРАЦИИ
  148.                 LD (TRD_5D19),A                 ; ДИСКОВОД ПО УМОЛЧАНИЮ
  149.                 LD B,A
  150.                 LD A,(TRD_5D16)                 ; КОПИЯ СИСТЕМНОГО РЕГИСТРА (ПОРТ #FF)
  151.                 AND 7CH
  152.                 OR B
  153.                 LD (TRD_5D16),A                 ; КОПИЯ СИСТЕМНОГО РЕГИСТРА (ПОРТ #FF)
  154.                 RST 0X30
  155.                 DB WOUTFF
  156.                 JP ERR_OK
  157.  
  158. SELFATDRV       SUB 4
  159.                 PUSH AF
  160.                 RST 8
  161.                 DB _COM_DEV
  162.                 DB _DEVFIND
  163.                 RST 8
  164.                 DB _COM_DEV
  165.                 DB _KOL_VOL
  166.                 POP AF
  167.                 CP E
  168.                 JP NC,SINTAX_ERROR
  169.                 RST 8
  170.                 DB _COM_DEV
  171.                 DB _SET_VOL
  172.                 JP ERR_OK
  173.  
  174. COM_DOT         CALL EXIT_IF_SINTAX
  175.                 LD HL,EXTEND_COM
  176. NEXT_CMP_COM    LD A,1
  177.                 LD (TRD_5CEF),A
  178.                 LD DE,(TRD_5D11)
  179.                 INC DE
  180.                 LD A,(HL)
  181.                 INC HL
  182.                 AND A
  183.                 JP Z,END_EXT_COM
  184.                 LD B,A
  185. LOC_C34         LD A,(DE)
  186.                 AND 0DFH
  187.                 CP (HL)
  188.                 JR NZ,PROPUSK
  189.                 INC DE
  190.                 INC HL
  191.                 DJNZ LOC_C34
  192.                 LD A,(DE)
  193.                 CP 0DH
  194.                 JR Z,NO_PARAM
  195.                 CP " "
  196.                 JR Z,GET_PARAM
  197.                 JR LOC_C58
  198.  
  199. PROPUSK         INC HL
  200.                 DJNZ PROPUSK
  201. LOC_C58         INC HL
  202.                 INC HL
  203.                 JR NEXT_CMP_COM
  204.  
  205. GET_PARAM       INC DE
  206. NO_PARAM        LD A,(HL)
  207.                 INC HL
  208.                 LD H,(HL)
  209.                 LD L,A
  210.                 PUSH HL
  211.                 LD HL,END_COMAND
  212.                 EX (SP),HL
  213.                 JP (HL)
  214.  
  215. ;ВЫВОД ИМЕНИ ВИРТУАЛЬНОГО ДИСКА ЕСЛИ НЕ УКАЗАНО ИМЯ ДЛЯ ИЗМЕНЕНИЯ
  216. PRT_NUM_VIRT    LD HL,TXT4VIRTDRV
  217.                 LD B,ETXT4VIRTDRV-TXT4VIRTDRV-1
  218.                 CALL PRT_B_HL_
  219.                 LD A," "
  220.                 RST 0X10
  221.                 LD H,VIRT_REAL_DRIVE
  222.                 CALL READCMOS
  223.                 AND 3
  224.                 ADD A,"A"
  225.                 RST 0X10
  226.                 LD A,0X0D
  227.                 RST 0X10
  228.                 RET
  229.  
  230. ;УСТАНОВКА ВИРТУАЛЬНОГО ДИСКА
  231. SET_VIRT        LD A,(DE)
  232.                 CP 0X0D
  233.                 JR Z,PRT_NUM_VIRT
  234.                 LD C,A
  235.                 INC DE
  236.                 LD A,(DE)
  237.                 CP ":"
  238.                 JP NZ,SINTAX_ERROR
  239.                 LD A,C
  240.                 CALL NUMDSK2BYTE                ;ПОЛУЧИЛИ НОВЫЙ НОМЕР ДИСКОВОДА УКАЗАННЫЙ В КОМАНДНОЙ СТРОКЕ
  241.                 LD D,A                          ;СОХРАНИЛИ ВРЕМЕННО СДВИНУТЫЙ НОВЫЙ НОМЕР ВИРТУАЛЬНОГО ДИСКОВОДА
  242.                 IN A,(RW_PORT0)
  243.                 AND %11111100
  244.                 OR D
  245.                 OUT (RW_PORT0),A
  246.                 LD H,VIRT_REAL_DRIVE
  247.                 CALL READCMOS
  248.                 AND %11111100                   ;СБРОС СТАРОГО НОМЕРА ВИРТУАЛЬНОГО ДИСКОВОДА
  249.                 OR D                            ;ДОБАВИЛИ НОВЫЙ НОМЕР ВИРТУАЛЬНОГО ДИСКОВОДА
  250.                 LD L,A
  251.                 RST 8
  252.                 DB _CMOS_RW
  253.                 DB _WRITE_CMOS
  254.                 RET
  255.  
  256. ;ПЕЧАТЬ ВЕРСИИ ДОСА И ДАТЫ КОМПИЛЯЦИИ
  257. PRT_VERS        LD HL,0X3FF8
  258.                 LD B,6
  259.                 CALL PRT_B_HL_
  260.                 LD A," "
  261.                 RST 0X10
  262.                 LD C,(HL)
  263.                 INC HL
  264.                 LD B,(HL)
  265.                 PUSH BC
  266.                 LD HL,ZASTAVKA_VER
  267.                 LD B,9
  268.                 CALL PRT_B_HL_
  269.                 LD A," "
  270.                 RST 0X10
  271.                 POP BC
  272.                 LD A,C
  273.                 AND 0X1F                        ;НУЖНЫ 5 БИТ-ЧИСЛО МЕСЯЦА
  274.                 CALL A2TXT                      ;КОНВЕРСИЯ И УКЛАДКА ДАТЫ
  275.                 SRL B
  276.                 RR C                            ;СДВИНУЛИ ДЛЯ ЦЕЛОСТНОСТИ НОМЕРА МЕСЯЦА
  277.                 LD A,"."
  278.                 RST 0X10
  279.                 LD A,C                          ;ВЗЯЛИ БИТЫ МЕСЯЦА
  280.                 RRCA
  281.                 RRCA
  282.                 RRCA
  283.                 RRCA                            ;СДВИНУЛИ В МЛАДШИЕ БИТЫ
  284.                 AND 0X0F                        ;НАМ НУЖНЫ ТОЛЬКО 4 БИТА МЕСЯЦА
  285.                 CALL A2TXT                      ;КОНВЕРСИЯ И УКЛАДКА МЕСЯЦА
  286.                 LD A,"."
  287.                 RST 0X10
  288.                 LD A,B                          ;ВЗЯЛИ НОМЕР ГОДА
  289.                 AND 0X3F                        ;НУЖНЫ ТОЛЬКО 6 БИТ
  290.                 CALL A2TXT                      ;КОНВЕРСИЯ И УКЛАДКА ГОДА
  291.                 BIT 6,B                         ;ЕСЛИ БИТ 6 (СДВИНУТЫЙ БИТ 7) УСТАНОВЛЕН
  292.                 RET Z
  293.                 LD HL,TXT_BETA
  294.                 RST 0X18
  295.                 LD A,0X0D
  296.                 RST 0X10
  297.                 RET
  298.  
  299. ;ПЕЧАТЬ B=КОЛИЧЕСТВО СИМВОЛОВ ИЗ HL=АДРЕС ТЕКСТА ДЛЯ ВЫВОДА
  300. PRT_B_HL_       LD A,(HL)
  301.                 INC HL
  302.                 RST 0X10
  303.                 DJNZ PRT_B_HL_
  304.                 RET
  305.  
  306. TXT_BETA        DC " beta"
  307.  
  308. ;ПЕРЕВОД "A" В ДЕСЯТИЧКУ И В ТЕКСТ
  309. A2TXT           LD L,A
  310.                 LD H,0
  311.                 LD DE,10
  312.                 XOR A
  313.                 DEC A
  314.                 INC A
  315.                 SBC HL,DE
  316.                 JR NC,$-3
  317.                 ADD HL,DE
  318.                 ADD A,"0"
  319.                 RST 0X10
  320.                 LD A,L
  321.                 ADD A,"0"
  322.                 RST 0X10
  323.                 RET
  324.  
  325. DRIVES          DC "Drives: "
  326. EDRIVES
  327.  
  328. DRIVE           RST 8
  329.                 DB _COM_DEV
  330.                 DB _DEVFIND
  331.                 JP C,FAT_NOT_FOUND
  332.                 RST 8
  333.                 DB _COM_DEV
  334.                 DB _KOL_VOL
  335.                 LD A,"D"
  336.                 ADD A,E
  337.                 PUSH AF
  338.                 LD HL,DRIVES
  339.                 RST 0X18
  340.                 LD A,"E"
  341.                 RST 0X10
  342.                 LD A,"-"
  343.                 RST 0X10
  344.                 POP AF
  345.                 RST 0X10
  346.                 RET
  347.  
  348. TXT_DIR         DC "<DIR> "
  349. TXT_FATERR      DC "FAT not found"
  350.  
  351. DIR             LD B,0
  352.                 LD A,(DE)
  353.                 INC DE
  354.                 CP "/"
  355.                 JR NZ,DIR06
  356.                 LD A,(DE)
  357.                 AND 0XDF
  358.                 CP "L"
  359.                 JR NZ,DIR06
  360.                 LD B,A
  361. DIR06           RST 8
  362.                 DB _COM_DEV
  363.                 DB _DEVFIND
  364.                 JR NC,DIR061
  365. FAT_NOT_FOUND   CALL OPEN_CHAN_0
  366.                 LD HL,TXT_FATERR                ;НИ ОДНОГО РАЗДЕЛА НЕ НАЙДЕНО
  367.                 RST 0X18
  368.                 RET
  369.  
  370. DIR061          PUSH IX
  371.                 LD IXL,B
  372.                 CALL CLEAR_SCREEN
  373.                 CALL OPEN_CHAN_2
  374.                 LD A,2
  375.                 RST 8
  376.                 DB _COM_FAT
  377.                 DB _POS_FILES
  378. DIR05           LD E,0X17
  379. DIR01           PUSH DE
  380.                 PUSH BC
  381.                 LD HL,TRD_5D25
  382.                 RST 8
  383.                 DB _COM_FAT
  384.                 DB _READ_DIR
  385.                 LD DE,0X0B
  386.                 ADD HL,DE
  387.                 LD A,(HL)
  388.                 SBC HL,DE
  389.                 AND 0X10
  390.                 JR Z,DIR04
  391.                 PUSH HL
  392.                 LD HL,TXT_DIR
  393.                 RST 0X18
  394.                 POP HL
  395. DIR04           LD A,IXL
  396.                 AND A
  397.                 JR Z,DIR08
  398.                 PUSH HL
  399.                 RST 8
  400.                 DB _COM_FAT
  401.                 DB _GET_LONGNAME
  402.                 POP HL
  403. DIR03           LD A,(HL)
  404.                 AND A
  405.                 JR Z,DIR02
  406.                 INC HL
  407.                 RST 0X10
  408.                 JR DIR03
  409.  
  410. DIR08           LD B,8
  411. DIR081          LD A,(HL)
  412.                 CP " "
  413.                 JR Z,DIR082
  414.                 RST 0X10
  415.                 INC HL
  416.                 DJNZ DIR081
  417. DIR082          LD A,B
  418.                 AND A
  419.                 JR Z,DIR085
  420. DIR086          LD A,(HL)
  421.                 CP " "
  422.                 JR NZ,DIR085
  423.                 INC HL
  424.                 DJNZ DIR086
  425. DIR085          LD A,(HL)
  426.                 CP " "
  427.                 JR Z,DIR084
  428.                 LD A,"."
  429.                 RST 0X10
  430. DIR084          LD B,3
  431. DIR083          LD A,(HL)
  432.                 CP " "
  433.                 JR Z,DIR02
  434.                 RST 0X10
  435.                 INC HL
  436.                 DJNZ DIR083
  437. DIR02           LD A,0X0D
  438.                 RST 0X10
  439.                 LD A,4
  440.                 LD B,1
  441.                 RST 8
  442.                 DB _COM_FAT
  443.                 DB _POS_FILES
  444.                 POP HL
  445.                 AND A
  446.                 SBC HL,BC
  447.                 POP DE
  448.                 JR Z,DIR07
  449.                 DEC E
  450.                 JR NZ,DIR01
  451.                 JR DIR05
  452.  
  453. DIR07           POP IX
  454.                 RET
  455.  
  456. CD              PUSH DE
  457.                 RST 8
  458.                 DB _COM_DEV
  459.                 DB _DEVFIND
  460.                 POP HL
  461.                 RST 8
  462.                 DB _COM_FAT
  463.                 DB _FIND_NAME
  464.                 JP C,SINTAX_ERROR
  465.                 RST 8
  466.                 DB _COM_FAT
  467.                 DB _ENTER_DIR
  468.                 RET
  469.  
  470. NOMER_DRV       RST 8
  471.                 DB _COM_DEV
  472.                 DB _DEVFIND
  473.                 CCF
  474.                 RET NC                          ;НИ ОДНОГО РАЗДЕЛА НЕ НАЙДЕНО
  475.                 RST 8
  476.                 DB _COM_DEV
  477.                 DB _KOL_VOL
  478.                 CALL CREATE_BUF
  479.                 LD HL,TRD_5D25
  480.                 RST 8
  481.                 DB _COM_FAT
  482.                 DB _GET_PATH
  483.                 CALL PRINT2ZERO
  484.                 CALL DEL_BUF
  485.                 SCF
  486.                 RET
  487.  
  488. MOUNT           PUSH DE
  489.                 RST 8
  490.                 DB _COM_DEV
  491.                 DB _DEVFIND
  492.                 EX DE,HL
  493.                 POP HL
  494.                 JP C,FAT_NOT_FOUND
  495.                 PUSH HL
  496.                 RST 8
  497.                 DB _COM_FAT
  498.                 DB _FIND_NAME
  499.                 JP C,SINTAX_ERROR
  500.                 POP DE
  501.                 LD B,0X0C
  502. MOUNT02         LD A,(DE)
  503.                 CP "!"
  504.                 JR C,MOUNT01
  505.                 INC DE
  506.                 DJNZ MOUNT02
  507. MOUNT01         LD A,(DE)
  508.                 CP 0X0D
  509.                 JP Z,SINTAX_ERROR
  510.                 CP " "
  511.                 JP NZ,SINTAX_ERROR
  512.                 INC DE
  513.                 LD A,(DE)
  514.                 CP "A"
  515.                 JP C,SINTAX_ERROR
  516.                 AND 0XDF
  517.                 CP "E"
  518.                 JP NC,SINTAX_ERROR
  519.                 SUB "A"
  520.                 LD C,A
  521.                 INC DE
  522.                 LD A,(DE)
  523.                 CP ":"
  524.                 JP NZ,SINTAX_ERROR
  525.                 LD A,C
  526.                 RST 8
  527.                 DB _MOUNTER
  528.                 DB _OPEN_MOUNT
  529.                 RET
  530.  
  531. WR_RD_SEC_M     PUSH IX
  532.                 LD (TEMP_SP),SP
  533.                 LD HL,(DOS_STEK)
  534.                 LD DE,SAVED_RAM
  535.                 LD BC,0X10
  536.                 LDIR
  537.                 LD SP,HL
  538.                 IN A,(RW_PORT1)                 ;ВЗЯЛИ НОМЕР ТРЕКА
  539.                 ADD A,A                         ;СТОРОН 2
  540.                 LD D,A
  541.                 LD A,(WR_FF)
  542.                 AND 0X10                        ;ПРОВЕРКА КАКАЯ СТОРОНА ДИСКА
  543.                 JR NZ,WRRDSECM1
  544.                 INC D                           ;ДЛЯ СТОРОНЫ 1
  545. WRRDSECM1       IN A,(RW_PORT2)                 ;ВЗЯЛИ НОМЕР СЕКТОРА
  546.                 LD E,A                          ;D-ТРЕК, E-СЕКТОР
  547.                 LD HL,(REG_L)                   ;HL=АДРЕС ЧТЕНИЯ/ЗАПИСИ
  548.                 LD A,(WR_FF)
  549.                 AND 3
  550.                 LD C,A                          ;НОМЕР ДИСКОВОДА
  551.                 LD A,IXL
  552.                 AND A                           ;BIT 7=0-ЧТЕНИЕ
  553.                 JR Z,WRRDSECM2
  554.                 LD A,0X80                       ;BIT 7=1-ЗАПИСЬ
  555. WRRDSECM2       OR C
  556.                 LD IXL,A                        ;A=НОМЕР ДИСКОВОДА+БИТ ЧТЕНИЯ/ЗАПИСИ
  557.                 LD A,(TEK_ROMPAGE)
  558.                 AND 0X3E
  559.                 LD IXH,A
  560.                 LD BC,WIN_A0
  561.                 OUT (C),A
  562.                 LD A,IXL
  563.                 RST 8
  564.                 DB _MOUNTER
  565.                 DB _RDWR_MOUNT
  566.                 LD BC,WIN_A0
  567.                 LD A,IXH
  568.                 OUT (C),A
  569.                 LD B,HIGH (WIN_P0)
  570.                 LD A,PAGE_EVODOS
  571.                 OUT (C),A
  572.                 LD (REG_L),HL                   ;ОБНОВИЛИ АДРЕС ЧТЕНИЯ/ЗАПИСИ
  573.                 LD HL,SAVED_RAM
  574.                 LD DE,(DOS_STEK)
  575.                 LD BC,0X10
  576.                 LDIR
  577.                 LD SP,(TEMP_SP)
  578.                 POP IX
  579.                 RET
  580.  
  581. UMOUNT          LD A,(DE)
  582.                 INC DE
  583.                 AND 0XDF
  584.                 LD B,A
  585.                 LD A,(DE)
  586.                 INC DE
  587.                 CP ":"
  588.                 JP NZ,SINTAX_ERROR
  589.                 LD A,B
  590.                 CP "A"
  591.                 JP C,SINTAX_ERROR
  592.                 CP "E"
  593.                 JP NC,SINTAX_ERROR
  594.                 SUB "A"
  595.                 RST 8
  596.                 DB _MOUNTER
  597.                 DB _CLOSEMOUNT
  598.                 RET
  599.  
  600. CLRCMOS         RST 8
  601.                 DB _CMOS_RW
  602.                 DB _CLEAR_CMOS
  603.                 RET
  604.  
  605. HELP            CALL CLEAR_SCREEN
  606.                 CALL OPEN_CHAN_2
  607.                 LD HL,EXTEND_COM
  608. HELP4           LD C,3
  609. HELP2           LD A,(HL)
  610.                 AND A
  611.                 RET Z
  612.                 INC HL
  613.                 LD B,A
  614.                 PUSH BC
  615.                 LD A,"."
  616.                 RST 0X10
  617. HELP1           LD A,(HL)
  618.                 INC HL
  619.                 RST 0X10
  620.                 DJNZ HELP1
  621.                 INC HL
  622.                 INC HL
  623.                 POP BC
  624.                 LD A,9
  625.                 SUB B
  626.                 LD B,A
  627. HELP3           LD A," "
  628.                 RST 0X10
  629.                 DJNZ HELP3
  630.                 DEC C
  631.                 JR NZ,HELP2
  632.                 LD A,0X0D
  633.                 RST 0X10
  634.                 JR HELP4
  635.  
  636. BUGFIX_3EBF     PUSH AF
  637.                 PUSH HL
  638.                 CALL GET_TIME_HEAD
  639.                 LD B,A
  640.                 POP HL
  641.                 POP AF
  642.                 JP HEAD_POSITION
  643.