Subversion Repositories pentevo

Rev

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

  1.  
  2. ;LAST UPDATE: 13.12.2013 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.                 LD HL,TXT_BETA
  293.                 RST 0X18
  294.                 LD A,0X0D
  295.                 RST 0X10
  296.                 RET
  297.  
  298. ;ПЕЧАТЬ B=КОЛИЧЕСТВО СИМВОЛОВ ИЗ HL=АДРЕС ТЕКСТА ДЛЯ ВЫВОДА
  299. PRT_B_HL_       LD A,(HL)
  300.                 INC HL
  301.                 RST 0X10
  302.                 DJNZ PRT_B_HL_
  303.                 RET
  304.  
  305. TXT_BETA        DC " beta"
  306.  
  307. ;ПЕРЕВОД "A" В ДЕСЯТИЧКУ И В ТЕКСТ
  308. A2TXT           LD L,A
  309.                 LD H,0
  310.                 LD DE,10
  311.                 XOR A
  312.                 DEC A
  313.                 INC A
  314.                 SBC HL,DE
  315.                 JR NC,$-3
  316.                 ADD HL,DE
  317.                 ADD A,"0"
  318.                 RST 0X10
  319.                 LD A,L
  320.                 ADD A,"0"
  321.                 RST 0X10
  322.                 RET
  323.  
  324. DRIVES          DC "Drives: "
  325. EDRIVES
  326.  
  327. DRIVE           RST 8
  328.                 DB _COM_DEV
  329.                 DB _DEVFIND
  330.                 RST 8
  331.                 DB _COM_DEV
  332.                 DB _KOL_VOL
  333.                 LD A,"D"
  334.                 ADD A,E
  335.                 PUSH AF
  336.                 LD HL,DRIVES
  337.                 RST 0X18
  338.                 LD A,"E"
  339.                 RST 0X10
  340.                 LD A,"-"
  341.                 RST 0X10
  342.                 POP AF
  343.                 RST 0X10
  344.                 RET
  345.  
  346. TXT_DIR         DC "<DIR> "
  347.  
  348. DIR             LD B,0
  349.                 LD A,(DE)
  350.                 INC DE
  351.                 CP "/"
  352.                 JR NZ,DIR06
  353.                 LD A,(DE)
  354.                 AND 0XDF
  355.                 CP "L"
  356.                 JR NZ,DIR06
  357.                 LD B,A
  358. DIR06           RST 8
  359.                 DB _COM_DEV
  360.                 DB _DEVFIND
  361.                 PUSH IX
  362.                 LD IXL,B
  363.                 CALL CLEAR_SCREEN
  364.                 CALL OPEN_CHAN_2
  365.                 LD A,2
  366.                 RST 8
  367.                 DB _COM_FAT
  368.                 DB _POS_FILES
  369. DIR05           LD E,0X17
  370. DIR01           PUSH DE
  371.                 PUSH BC
  372.                 LD HL,TRD_5D25
  373.                 RST 8
  374.                 DB _COM_FAT
  375.                 DB _READ_DIR
  376.                 LD DE,0X0B
  377.                 ADD HL,DE
  378.                 LD A,(HL)
  379.                 SBC HL,DE
  380.                 AND 0X10
  381.                 JR Z,DIR04
  382.                 PUSH HL
  383.                 LD HL,TXT_DIR
  384.                 RST 0X18
  385.                 POP HL
  386. DIR04           LD A,IXL
  387.                 AND A
  388.                 JR Z,DIR08
  389.                 PUSH HL
  390.                 RST 8
  391.                 DB _COM_FAT
  392.                 DB _GET_LONGNAME
  393.                 POP HL
  394. DIR03           LD A,(HL)
  395.                 AND A
  396.                 JR Z,DIR02
  397.                 INC HL
  398.                 RST 0X10
  399.                 JR DIR03
  400.  
  401. DIR08           LD B,8
  402. DIR081          LD A,(HL)
  403.                 CP " "
  404.                 JR Z,DIR082
  405.                 RST 0X10
  406.                 INC HL
  407.                 DJNZ DIR081
  408. DIR082          LD A,B
  409.                 AND A
  410.                 JR Z,DIR085
  411. DIR086          LD A,(HL)
  412.                 CP " "
  413.                 JR NZ,DIR085
  414.                 INC HL
  415.                 DJNZ DIR086
  416. DIR085          LD A,(HL)
  417.                 CP " "
  418.                 JR Z,DIR084
  419.                 LD A,"."
  420.                 RST 0X10
  421. DIR084          LD B,3
  422. DIR083          LD A,(HL)
  423.                 CP " "
  424.                 JR Z,DIR02
  425.                 RST 0X10
  426.                 INC HL
  427.                 DJNZ DIR083
  428. DIR02           LD A,0X0D
  429.                 RST 0X10
  430.                 LD A,4
  431.                 LD B,1
  432.                 RST 8
  433.                 DB _COM_FAT
  434.                 DB _POS_FILES
  435.                 POP HL
  436.                 AND A
  437.                 SBC HL,BC
  438.                 POP DE
  439.                 JR Z,DIR07
  440.                 DEC E
  441.                 JR NZ,DIR01
  442.                 JR DIR05
  443.  
  444. DIR07           POP IX
  445.                 RET
  446.  
  447. CD              PUSH DE
  448.                 RST 8
  449.                 DB _COM_DEV
  450.                 DB _DEVFIND
  451.                 POP HL
  452.                 RST 8
  453.                 DB _COM_FAT
  454.                 DB _FIND_NAME
  455.                 JP C,SINTAX_ERROR
  456.                 RST 8
  457.                 DB _COM_FAT
  458.                 DB _ENTER_DIR
  459.                 RET
  460.  
  461. NOMER_DRV       RST 8
  462.                 DB _COM_DEV
  463.                 DB _DEVFIND
  464.                 RST 8
  465.                 DB _COM_DEV
  466.                 DB _KOL_VOL
  467.                 CALL CREATE_BUF
  468.                 LD HL,TRD_5D25
  469.                 RST 8
  470.                 DB _COM_FAT
  471.                 DB _GET_PATH
  472.                 CALL PRINT2ZERO
  473.                 CALL DEL_BUF
  474.                 SCF
  475.                 RET
  476.  
  477. MOUNT           PUSH DE
  478.                 RST 8
  479.                 DB _COM_DEV
  480.                 DB _DEVFIND
  481.                 EX DE,HL
  482.                 POP HL
  483.                 PUSH HL
  484.                 RST 8
  485.                 DB _COM_FAT
  486.                 DB _FIND_NAME
  487.                 JP C,SINTAX_ERROR
  488.                 POP DE
  489.                 LD B,0X0C
  490. MOUNT02         LD A,(DE)
  491.                 CP "!"
  492.                 JR C,MOUNT01
  493.                 INC DE
  494.                 DJNZ MOUNT02
  495. MOUNT01         LD A,(DE)
  496.                 CP 0X0D
  497.                 JP Z,SINTAX_ERROR
  498.                 CP " "
  499.                 JP NZ,SINTAX_ERROR
  500.                 INC DE
  501.                 LD A,(DE)
  502.                 CP "A"
  503.                 JP C,SINTAX_ERROR
  504.                 AND 0XDF
  505.                 CP "E"
  506.                 JP NC,SINTAX_ERROR
  507.                 SUB "A"
  508.                 LD C,A
  509.                 INC DE
  510.                 LD A,(DE)
  511.                 CP ":"
  512.                 JP NZ,SINTAX_ERROR
  513.                 LD A,C
  514.                 RST 8
  515.                 DB _MOUNTER
  516.                 DB _OPEN_MOUNT
  517.                 RET
  518.  
  519. WR_RD_SEC_M     PUSH IX
  520.                 LD (TEMP_SP),SP
  521.                 LD HL,(DOS_STEK)
  522.                 LD DE,SAVED_RAM
  523.                 LD BC,0X10
  524.                 LDIR
  525.                 LD SP,HL
  526.                 IN A,(RW_PORT1)                 ;ВЗЯЛИ НОМЕР ТРЕКА
  527.                 ADD A,A                         ;СТОРОН 2
  528.                 LD D,A
  529.                 LD A,(WR_FF)
  530.                 AND 0X10                        ;ПРОВЕРКА КАКАЯ СТОРОНА ДИСКА
  531.                 JR NZ,WRRDSECM1
  532.                 INC D                           ;ДЛЯ СТОРОНЫ 1
  533. WRRDSECM1       IN A,(RW_PORT2)                 ;ВЗЯЛИ НОМЕР СЕКТОРА
  534.                 LD E,A                          ;D-ТРЕК, E-СЕКТОР
  535.                 LD HL,(REG_L)                   ;HL=АДРЕС ЧТЕНИЯ/ЗАПИСИ
  536.                 LD A,(WR_FF)
  537.                 AND 3
  538.                 LD C,A                          ;НОМЕР ДИСКОВОДА
  539.                 LD A,IXL
  540.                 AND A                           ;BIT 7=0-ЧТЕНИЕ
  541.                 JR Z,WRRDSECM2
  542.                 LD A,0X80                       ;BIT 7=1-ЗАПИСЬ
  543. WRRDSECM2       OR C
  544.                 LD IXL,A                        ;A=НОМЕР ДИСКОВОДА+БИТ ЧТЕНИЯ/ЗАПИСИ
  545.                 LD A,(TEK_ROMPAGE)
  546.                 AND 0X3E
  547.                 LD IXH,A
  548.                 LD BC,WIN_A0
  549.                 OUT (C),A
  550.                 LD A,IXL
  551.                 RST 8
  552.                 DB _MOUNTER
  553.                 DB _RDWR_MOUNT
  554.                 LD BC,WIN_A0
  555.                 LD A,IXH
  556.                 OUT (C),A
  557.                 LD B,HIGH (WIN_P0)
  558.                 LD A,PAGE_EVODOS
  559.                 OUT (C),A
  560.                 LD (REG_L),HL                   ;ОБНОВИЛИ АДРЕС ЧТЕНИЯ/ЗАПИСИ
  561.                 LD HL,SAVED_RAM
  562.                 LD DE,(DOS_STEK)
  563.                 LD BC,0X10
  564.                 LDIR
  565.                 LD SP,(TEMP_SP)
  566.                 POP IX
  567.                 RET
  568.  
  569. UMOUNT          LD A,(DE)
  570.                 INC DE
  571.                 AND 0XDF
  572.                 LD B,A
  573.                 LD A,(DE)
  574.                 INC DE
  575.                 CP ":"
  576.                 JP NZ,SINTAX_ERROR
  577.                 LD A,B
  578.                 CP "A"
  579.                 JP C,SINTAX_ERROR
  580.                 CP "E"
  581.                 JP NC,SINTAX_ERROR
  582.                 SUB "A"
  583.                 RST 8
  584.                 DB _MOUNTER
  585.                 DB _CLOSEMOUNT
  586.                 RET
  587.  
  588. CLRCMOS         RST 8
  589.                 DB _CMOS_RW
  590.                 DB _CLEAR_CMOS
  591.                 RET
  592.  
  593. HELP            CALL CLEAR_SCREEN
  594.                 CALL OPEN_CHAN_2
  595.                 LD HL,EXTEND_COM
  596. HELP4           LD C,3
  597. HELP2           LD A,(HL)
  598.                 AND A
  599.                 RET Z
  600.                 INC HL
  601.                 LD B,A
  602.                 PUSH BC
  603.                 LD A,"."
  604.                 RST 0X10
  605. HELP1           LD A,(HL)
  606.                 INC HL
  607.                 RST 0X10
  608.                 DJNZ HELP1
  609.                 INC HL
  610.                 INC HL
  611.                 POP BC
  612.                 LD A,9
  613.                 SUB B
  614.                 LD B,A
  615. HELP3           LD A," "
  616.                 RST 0X10
  617.                 DJNZ HELP3
  618.                 DEC C
  619.                 JR NZ,HELP2
  620.                 LD A,0X0D
  621.                 RST 0X10
  622.                 JR HELP4
  623.  
  624. BUGFIX_3EBF     PUSH AF
  625.                 PUSH HL
  626.                 CALL GET_TIME_HEAD
  627.                 LD B,A
  628.                 POP HL
  629.                 POP AF
  630.                 JP HEAD_POSITION
  631.