User Tag List

Страница 61 из 102 ПерваяПервая ... 575859606162636465 ... ПоследняяПоследняя
Показано с 601 по 610 из 1013

Тема: Орион-128: Сборка и настройка компьютера

  1. #601

    Регистрация
    12.09.2017
    Адрес
    г. Москва
    Сообщений
    185
    Спасибо Благодарностей отдано 
    19
    Спасибо Благодарностей получено 
    30
    Поблагодарили
    18 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Stampmaker Посмотреть сообщение
    denis74, ко мне эта схема перекочевала из ж.Радио за 1992 год, №2,стр.31
    я убрал всё лишнее, что мне не нужно, и оставил только согласователь.

    скачать можно здесь:
    http://radiolub.ru/page/zhurnal-radio-1992-2-3
    Там так и написано - "подбором резисторов R19-R21 получают необходимую контрастность изображения и соотношение цветов" т.е. методом тыка в зависимости от модели телека потому что не было стандартного SCART разъёма.Это ладно ,решаемо,но почему по 680ом в базу идёт с яркостного и цветового каналов? непонятно...

    - - - Добавлено - - -

    Цитата Сообщение от HardWareMan Посмотреть сообщение
    Кто так сказал?
    Линейна ли данная цветовая модель RGB ? Думаю что да. То есть очень хотелось бы в это верить ,иначе расчёты усложнятся.

  2. #601
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #602

    Регистрация
    30.05.2017
    Адрес
    г. Алматы, Казахстан
    Сообщений
    908
    Спасибо Благодарностей отдано 
    63
    Спасибо Благодарностей получено 
    275
    Поблагодарили
    148 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Cornelius Посмотреть сообщение
    В режиме удвоения строк фишка 8/12/16 тоже работает?
    о чем это ?

  4. #603

    Регистрация
    28.11.2018
    Адрес
    г. Москва
    Сообщений
    105
    Спасибо Благодарностей отдано 
    30
    Спасибо Благодарностей получено 
    13
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не у кого случаем не завалялось образа жесткого диска для Ориона с СР/М и каким-нибудь софтом на пробу? Хочу проверить контроллер HDD.

  5. #604

    Регистрация
    01.12.2016
    Адрес
    г. Ноябрьск
    Сообщений
    191
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    18
    Поблагодарили
    15 сообщений
    Mentioned
    0 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Образ HDD
    В архиве образ дискеты и образ HDD, содержащие релиз Altair-DOS с поддержкой IDE-устройств. Грузится с дисковода при помощи мониторов-3, содержащих загрузчик с дисковода. Грузится с IDE при помощи мониторов-3 M35ZRKH.BIN, M35ZMSH.BIN, находящихся в архиве.

  6. #605

    Регистрация
    22.02.2015
    Адрес
    г. Петрозаводск
    Сообщений
    159
    Спасибо Благодарностей отдано 
    1
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    8 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Давно не появлялся, форум видоизменился) Ну да ладно, вопрос не об этом.

    Кто подскажет, где в родном, первом мониторе расположены команды EI и DI? Таки портят жизнь при попытке подружить орион с контроллером прерываний. Попытки дизассемблировать провалились.)

    Ну и таки ещё вопрос, может кто поможет - прикрутил винт к ориону, довольно древний, посему с CHS адресацией. Работает железобетонно, но мне естественно такая адресация не нравится. Попытки прикрутить жёсткий диск с LBA дают один и тот же эффект - при записи и последующем чтении стандартно 8 байт сбиваются, соответственно смысл в таком хранении информации отпадает. Где копнуть?

  7. #606

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Electricman Посмотреть сообщение
    Кто подскажет, где в родном, первом мониторе расположены команды EI и DI? Таки портят жизнь при попытке подружить орион с контроллером прерываний. Попытки дизассемблировать провалились.)
    Эти команды используются подпрограммой генерации звука, обычно вызывается по адресу F83Fh, но насчёт М1 не уверен, надо смотреть.
    Можно "зайти" и через п/п вывода символа F809h, но там придётся "разматывать" вывод кода 07h...


    Цитата Сообщение от Electricman Посмотреть сообщение
    Попытки прикрутить жёсткий диск с LBA дают один и тот же эффект - при записи и последующем чтении стандартно 8 байт сбиваются, соответственно смысл в таком хранении информации отпадает. Где копнуть?
    Поддержка LBA-адресации в крайних версиях DSDOS, например. Работает без проблем.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  8. #607

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Electricman Посмотреть сообщение
    Кто подскажет, где в родном, первом мониторе расположены команды EI и DI?
    Подпрограмма генерации звука вызывается по адресу FE1Bh.

    Конкретно в ней команда EI находится по адресу FE1Fh, а команда DI по адресу FE25h.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  9. #608

    Регистрация
    04.05.2006
    Адрес
    St.-Petersburg
    Сообщений
    2,234
    Спасибо Благодарностей отдано 
    490
    Спасибо Благодарностей получено 
    989
    Поблагодарили
    641 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    Arrow МОНИТОР-1

    Цитата Сообщение от Electricman Посмотреть сообщение
    Попытки дизассемблировать провалились.)
    В качестве развлечения "расковырял" сегодня в течении рабочего дня:

    Код:
    ; МОНИТОР-1 для ПРК "ОРИОН-128.2"
    ; Disassembler v2.1 (DSDOS)
    ; 05.04.2019 by Denn /SPb/
    
    STACK:EQU 0F3C9h ; вершина стэка
    
    C_DSCR:EQU 30C0h ; параметры окна экрана
    C_TAPE:EQU 6040h ; константы чтения/записи МГ
    
    RD_BOOT:EQU 0B800h ; а/н загрузчика ROM-диска
    GO_BOOT:EQU 0BFFDh ; адрес старта загрузчика
    
    RamTOP:EQU 0BFFFh ; верхняя граница ОЗУ пользователя
    
    B_FONTS:EQU 0F000h ; а/н знакогенератора
    
    
    ; Порт клавиатуры (ВВ55)
    
    PT_KB_A:EQU 0F400h ; выход на матрицу
    PT_KB_B:EQU 0F401h ; вход от матрицы
    PT_KB_C:EQU 0F402h ; упр. клавиши, с/д и МГ
    PT_KB_CFG:EQU 0F403h ; настройка порта
    
    
    ; Порт ROM-диска (ВВ55)
    
    PT_RD_DAT:EQU 0F500h ; данные
    PT_RD_ADR:EQU 0F501h ; адрес
    PT_RD_CFG:EQU 0F503h ; настройка порта
    
    
    ; Порты видео и ОЗУ
    
    PT_MODE:EQU 0F800h ; порт видеорежима
    PT_BANK:EQU 0F900h ; порт банков ОЗУ
    PT_SCRN:EQU 0FA00h ; порт экранов
    
    M_ExUSR:EQU 0F3CAh ; вектор п/п F821h
    M_ExPRC:EQU 0F3CDh ; вектор п/п F809h
    
    
    ; Системные переменные
    
    M_BSCR:EQU 0F3CFh ; ст.байт а/н экрана
    M_WSCR:EQU 0F3D0h ; ширина экрана
    
    M_BFNTS:EQU 0F3D1h ; а/н знакогенератора
    M_INVRS:EQU 0F3D3h ; 00-прямой, FF-инверсный
    M_START:EQU 0F3D8h ; адрес запуска
    M_cSvMG:EQU 0F3DAh ; константа записи на МГ
    M_cLdMG:EQU 0F3DBh ; константа чтения с МГ
    
    M_LdbMG:EQU 0F3DCh ; переменная п/п LdByteMG
    M_PosXY:EQU 0F3D4h ; позиция курсора
    M_MdPRC:EQU 0F3DDh ; переменная п/п MonPRC
    M_SfSTK:EQU 0F3DFh ; сохр-е стека (MonPRC)
    
    M_RTOP:EQU 0F3E3h ; адрес верхней границы ОЗУ
    M_RuLa:EQU 0F3E5h ; 00h-LAT, FFh-РУС
    M_AUTO:EQU 0F3E6h ; автоповтор клавиатуры
    M_ADDR:EQU 0F3EEh ; сохр-е адреса (CMDL)
    
    B_CMDL:EQU 0F3F0h ; а/н командной строки
    B_CMDP:EQU 0F3F1h ; параметры в командной строке
    
    ExUSR:EQU 0F3C9h ; адрес п/п MonUSR
    ExPRC:EQU 0F3CCh ; адрес п/п MonPRC
    
    
    ORG 0F800h
    
    ; керналь переходов на стандартные п/п монитора
    MF800:JMP RESET
    MF803:JMP MonKEY
    MF806:JMP LdByteMG
    MF809:JMP ExPRC
    MF80C:JMP SvByteMG
    MF80F:JMP MonPRA
    MF812:JMP MonTST
    MF815:JMP MonPRH
    MF818:JMP MonMSG
    MF81B:JMP MonSCN
    MF81E:JMP MonASK
    MF821:JMP ExUSR
    MF824:JMP CMD_I
    MF827:JMP CMD_O
    MF82A:JMP MonSUM
    MF82D:JMP MonUZG
    MF830:JMP GetTOP
    MF833:JMP SetTOP
    MF836:JMP LdBYTE
    MF839:JMP SvBYTE
    MF83C:JMP MonCUR
    MF83F:RET
    
    DW 0
    
    
    RESET:
    ; "Холодный" сброс ПРК [F800h]
      LXI SP,STACK
      XRA A
      STA PT_MODE
      STA PT_BANK
      STA PT_SCRN
      STA M_INVRS
      STA PT_KB_C
      MVI A,0C3h
      STA ExPRC
      STA ExUSR
      CALL SetVARS
    ; инициализация констант чтения/записи
      LXI H,C_TAPE
      SHLD M_cSvMG
      LXI H,T_MAIN
      CALL MonMSG
    
    HotSTART:
    ; "Горячий" сброс ПРК [F86Ch]
      LXI SP,STACK
    ; настройка порта клавиатуры
      MVI A,8Ah
      STA PT_KB_CFG
    ; вывод промпта
      LXI H,T_PRMPT
      CALL MonMSG
      STA M_RuLa
      LXI H,PrERROR
      SHLD M_START
    ; адрес возврата (HotSTART)
      LXI H,HotSTART
      PUSH H
      CALL INPUT
      CALL PrENTER
      CALL GetPARAM
    ; меню команд монитора
      LDA B_CMDL
      CPI 'M'
      JZ CMD_M
      CPI 'D'
      JZ CMD_D
      CPI 'I'
      JZ CMD_I
      CPI 'O'
      JZ CMD_O
      CPI 'R'
      JZ CMD_R
      CPI 'Z'
      JZ GO_BOOT
      CPI 'C'
      JZ CMD_C
      CPI 'G'
      JNZ PrERROR
      PCHL
    
    
    SetVARS:
    ; распаковка знакогенератора
      LXI H,B_FONTS
      SHLD M_BFNTS
      CALL MonUZG
    ; инициализация окна рабочего экрана
      LXI H,C_DSCR
      SHLD M_BSCR
    ; инициализация векторов п/п F809 и F821
      LXI H,MonPRC
      SHLD M_ExPRC
      LXI H,MonUSR
      SHLD M_ExUSR
    ; инициализация верхней границы ОЗУ польз.
      LXI H,RamTOP
      SHLD M_RTOP
    
    MonUSR:
      RET
    
    
    INPUT:
    ; Ввод данных в командную строку
      LXI D,B_CMDL
    
    INPUT1:
      CALL MonKEY
      CPI '.'
      JZ PrERROR
      CPI 7Fh ; [ЗБ]
      JZ INPUT3
      CPI 18h ; []
      JZ INPUT5
      CPI 08h ; []
      JNZ INPUT4
      MVI A,0F0h
      CMP E
      JZ INPUT1
    
    INPUT2:
      MVI A,8
      DCX D
    
    INPUT3:
      CALL MonPRA
      JMP INPUT1
    
    INPUT4:
      STAX D
    
    INPUT5:
      CALL MonPRA
      CPI 0Dh ; [Enter]
      RZ
      INX D
      MOV A,E
      CPI 0FFh
      JNZ INPUT1
      JMP INPUT2
    
    
    GetPARAM:
    ; Взятие параметров из командной строки
      LXI D,B_CMDP
      CALL GetADDR
      SHLD M_ADDR
      RC
      CALL GetADDR
      XCHG
      LHLD M_ADDR
      RET
    
    GetADDR:
    ; Взятие адреса из командной строки
      LXI H,0
      MOV B,L
      MOV C,L
    
    GetADDR1:
      DAD B
      LDAX D
      INX D
      CPI 0Dh ; [Enter]
      JZ GetADDR3
      CPI ','
      RZ
      SUI '0'
      JM PrERROR
      CPI 10
      JM GetADDR2
      CPI 11h
      JM PrERROR
      CPI 17h
      JP PrERROR
      SUI 7
    
    GetADDR2:
      MOV C,A
      DAD H
      DAD H
      DAD H
      DAD H
      JNC GetADDR1
    
    PrERROR:
    ; обработка ошибки в параметрах
      MVI A,'?'
      CALL MonPRA
      JMP HotSTART
    
    GetADDR3:
      LXI D,0
      STC
      RET
    
    
    PR[M]:
      MOV A,M
    
    MonPRH:
    ; Вывод [A] в HEX-виде
      PUSH PSW
      RRC
      RRC
      RRC
      RRC
      CALL MonPRH1
      POP PSW
    
    MonPRH1:
      ANI 0Fh
      CPI 10
      JM $+5
      ADI 7
    
    ;$+5
      ADI '0'
      PUSH B
      MOV C,A
      CALL MF809 ; MonPRC
      POP B
      RET
    
    
    MonMSG:
    ; Вывод сообщения [HL]
      MOV A,M
      ANA A
      RZ
      PUSH B
      MOV C,A
      CALL MF809 ; MonPRC
      POP B
      INX H
      JMP MonMSG
    
    
    MonSUM:
    ; Подсчет контрольной суммы
      LXI B,0
    
    MonSUM1:
      MOV A,C
      ADD M
      MOV C,A
      PUSH PSW
      CALL TSTHD
      JZ PswRET
      POP PSW
      MOV A,B
      ADC M
      MOV B,A
      INX H
      JMP MonSUM1
    
    PrEntHL:
      CALL PrENTER
      CALL PR_SPC
    
    PR[HL]:
      MOV A,H
      CALL MonPRH
      MOV A,L
      CALL MonPRH
    
    PR_SPC:
      MVI A,' '
      JMP MonPRA
    
    
    TSTHD:
      MOV A,H
      CMP D
      RNZ
      MOV A,L
      CMP E
      RET
    
    
    MonASK:
    ; Запрос позиции курсора
      LHLD M_PosXY
      MOV A,L
      RRC
      RRC
      MOV L,A
      RET
    
    
    MonCUR:
    ; Установка позиции курсора [HL]
      MOV A,L
      RLC
      RLC
      MOV L,A
      SHLD M_PosXY
      RET
    
    
    SetTOP:
    ; Установка верхней границы ОЗУ пользователя
      SHLD M_RTOP
    
    GetTOP:
    ; Запрос верхней границы ОЗУ пользователя
      LHLD M_RTOP
      RET
    
    
    MonUZG:
    ; Распаковка знакогенератора в F000h
      LXI H,B_CFNTS
      LXI D,B_FONTS
    
    MonUZG1:
      MVI C,7
      XRA A
      STAX D
      INX D
    
    MonUZG2:
      MOV A,M
      RLC
      RLC
      RLC
      ANI 7
      MOV B,A
    
    MonUZG3:
      MOV A,M
      ANI 1Fh ; 0001 1111
      STAX D
      INX D
      DCR C
      DCR B
      JP MonUZG3
      INX H
      MOV A,H
      ANA A
      RZ
      MOV A,C
      ANA A
      JNZ MonUZG2
      JMP MonUZG1
    
    
    LdBYTE:
    ; Чтение байта из доп. страницы ОЗУ
      STA PT_BANK
      MOV C,M
    
    SetBANK0:
      XRA A
      STA PT_BANK
      RET
    
    SvBYTE:
    ; Запись байта в доп. страницу ОЗУ
      STA PT_BANK
      MOV M,C
      JMP SetBANK0
    
    
    LdNxtByte:
    ; Загрузка байта с магнитофона
    ; без поиска синхробайта
      MVI A,8
    
    LdByteMG:
    ; Загрузка байта с магнитофона
    ; I: [A]=FFh - с поиском синх/байта, 08h-без
      PUSH B
      PUSH D
      PUSH H
      MVI C,0
      MOV D,A
      LDA PT_KB_C
      RRC
      RRC
      RRC
      RRC
      ANI 1
      MOV E,A
    
    LdByteMG1:
      MOV A,C
      ANI 7Fh ; 0111 1111
      RLC
      MOV C,A
      MVI B,0
    
    LdByteMG2:
      DCR B
      JNZ LdByteMG3
    
    GoSTART:
      LHLD M_START
      PCHL
    
    LdByteMG3:
      LDA PT_KB_C
      RRC
      RRC
      RRC
      RRC
      ANI 1
      CMP E
      JZ LdByteMG2
      ORA C
      MOV C,A
      CALL WaitLdMG
      LDA PT_KB_C
      RRC
      RRC
      RRC
      RRC
      ANI 1
      MOV E,A
      MOV A,D
      ORA A
      JP LdByteMG6
      MOV A,C
      CPI 0E6h
      JNZ LdByteMG4
      XRA A
      STA M_LdbMG
      JMP LdByteMG5
    
    LdByteMG4:
      CPI 19h
      JNZ LdByteMG1
      MVI A,0FFh
      STA M_LdbMG
    
    LdByteMG5:
      MVI D,9
    
    LdByteMG6:
      DCR D
      JNZ LdByteMG1
      LDA M_LdbMG
      XRA C
    
    AllRET:
      POP H
      POP D
      POP B
      RET
    
    
    SvWordMG:
    ; Запись слова на магнитофон
    ; I: [HL] - слово
      MOV C,H
      CALL SvByteMG
      MOV C,L
    
    SvByteMG:
    ; Запись байта на магнитофон
    ; I: [C] - байт
      PUSH PSW
      PUSH D
      PUSH B
      MVI D,8
    
    SvByteMG1:
      MOV A,C
      RLC
      MOV C,A
      MVI A,1
      XRA C
      STA PT_KB_C
      CALL WaitSvMG
      XRA A
      XRA C
      STA PT_KB_C
      CALL WaitSvMG
      DCR D
      JNZ SvByteMG1
      POP B
      POP D
    
    PswRET:
      POP PSW
      RET
    
    
    WaitSvMG:
    ; задержка импульса записи на МГ
      LDA M_cSvMG
      JMP WAIT_A
    
    WaitLdMG:
    ; задержка импульса чтения с МГ
      LDA M_cLdMG
    
    WAIT_A:
      DCR A
      JNZ WAIT_A
      RET
    
    
    CMD_M0:
      INX H
    
    CMD_M:
    ; Модификация ячеек ОЗУ
      CALL PrEntHL
      CALL PR[M]
      CALL PR_SPC
      CALL INPUT
      LXI D,B_CMDL
      LDAX D
      CPI 0Dh ; [Enter]
      JZ CMD_M0
      PUSH H
      CALL GetADDR
      XCHG
      POP H
      MOV M,E
      JMP CMD_M0
    
    
    CMD_D:
    ; Вывод дампа ОЗУ
      MOV B,E
    
    CMD_D1:
      CALL PrEntHL
    
    CMD_D2:
      CALL PR_SPC
      MOV A,B
      ANA A
      JZ CMD_D3
      CALL LdBYTE
      MOV A,C
      JMP CMD_D4
    
    CMD_D3:
      MOV A,M
    
    CMD_D4:
      CALL MonPRH
      INX H
      MOV A,L
      ANI 0Fh
      JNZ CMD_D2
      MOV A,L
      ANA A
      JNZ CMD_D1
      CALL INPUT
      JMP CMD_D1
    
    
    CMD_I:
    ; Загрузка файла с магнитофона
      MVI A,0FFh
      CALL LdWordMG
      XCHG
      CALL LdNxtWordMG
      XCHG
      PUSH H
    
    CMD_I1:
      CALL LdNxtByte
      MOV M,A
      CALL TSTHD
      INX H
      JNZ CMD_I1
      MVI A,0FFh
      CALL LdWordMG
      MOV B,H
      MOV C,L
      POP H
      CALL PR[HL]
      XCHG
      CALL PR[HL]
      XCHG
      PUSH B
      CALL MonSUM
      POP D
      MOV H,B
      MOV L,C
      CALL PR[HL]
      CALL TSTHD
      RZ
      JMP GoSTART
    
    
    LdNxtWordMG:
      MVI A,8
    
    LdWordMG:
    ; Чтение слова с МГ
      CALL LdByteMG
      MOV H,A
      CALL LdNxtByte
      MOV L,A
      RET
    
    
    CMD_O:
    ; Запись файла на магнитофон
    ; I: [HL]-а/н, [DE]-а/к массива
      PUSH H
      CALL MonSUM
      POP H
      PUSH B
      PUSH H
      LXI B,0
    
    CMD_O1:
      CALL SvByteMG
      DCR B
      JNZ CMD_O1
      MVI C,0E6h
      CALL SvByteMG
      CALL SvWordMG
      XCHG
      CALL SvWordMG
      XCHG
      POP H
    
    CMD_O2:
      MOV C,M
      CALL SvByteMG
      CALL TSTHD
      INX H
      JNZ CMD_O2
      LXI H,0
      CALL SvWordMG
      MVI C,0E6h
      CALL SvByteMG
      POP H
      CALL SvWordMG
      JMP PR[HL]
    
    
    CMD_C:
    ; Окраска экрана
      MOV C,L
      MVI A,6
      STA PT_MODE
      MVI A,1
      STA PT_BANK
      LXI H,M_INVRS
      MOV D,M
      MOV M,C
      CALL MFE00
      MOV M,D
      XRA A
      STA PT_BANK
      RET
    
    
    MonTST:
    ; Тест состояния клавиатуры
    ; O: [A]=00h-не нажата, FFh-нажата клавиша
      XRA A
      STA PT_KB_A
      LDA PT_KB_B
      XRI 0FFh
      RZ
      MVI A,0FFh
      RET
    
    
    CMD_R:
    ; Запуск загрузчика из ROM-диска
      LXI D,RD_BOOT
      MOV H,E
      MOV L,E
      MVI A,90h
      STA PT_RD_CFG
    
    CMD_R1:
      SHLD PT_RD_ADR
      LDA PT_RD_DAT
      STAX D
      INX D
      INX H
      MOV A,H
      CPI 8
      JNZ CMD_R1
      JMP GO_BOOT
    
    
    MonKEY:
    ; Ввод символа с клавиатуры
      PUSH B
      PUSH D
      PUSH H
      CALL MonSCN
      CPI 0FFh
      JNZ MonKEY1
      STA M_AUTO
    
    MonKEY1:
      MVI D,0
    
    MonKEY2:
      INX D
      DCR E
      INR E
      CZ PrCURS
      CALL MonSCN
      INR A
      JZ MonKEY2
      PUSH PSW
      MOV A,D
      RRC
      CNC PrCURS
      POP PSW
      DCR A
      JP MonKEY4
    ; инверсия с/д РУС/LAT
      LXI H,M_RuLa
      MOV A,M
      CMA
      MOV M,A
      STA PT_KB_C
    
    MonKEY3:
      CALL MonSCN
      INR A
      JNZ MonKEY3
      CALL PrCURS
      JMP MonKEY1
    
    MonKEY4:
      MOV E,A
      MVI D,14h
      LXI H,M_AUTO
      CMP M
      JZ MonKEY6
    
    MonKEY5:
      DCR D
      JZ MonKEY6
      CALL MonSCN
      CMP E
      JZ MonKEY5
    
    MonKEY6:
      CALL SOUND
      MOV M,E
      CALL PrCURS
      MOV A,E
      JMP AllRET
    
    
    MonSCN:
    ; Сканирование клавиатуры
      PUSH B
      PUSH D
      PUSH H
      LXI H,AllRET
      PUSH H
      MVI B,0
      MVI D,9
      MVI C,0FEh
    
    MonSCN1:
      MOV A,C
      STA PT_KB_A
      RLC
      MOV C,A
      LDA PT_KB_B
      CPI 0FFh
      JZ MonSCN2
      MOV E,A
      CALL MonSCN11
      LDA PT_KB_B
      CMP E
      JZ MonSCN4
    
    MonSCN2:
      MOV A,B
      ADI 8
      MOV B,A
      DCR D
      JNZ MonSCN1
      LDA PT_KB_C
      ANI 80h
      MVI A,0FEh
      RZ
      INR A
      RET
    
    MonSCN3:
      INR B
    
    MonSCN4:
      RAR
      JC MonSCN3
      MOV A,B
      ANI 3Fh
      CPI 10h
      JC MonSCN9
      CPI 3Fh
      MOV B,A
      MVI A,' '
      RZ
      LDA PT_KB_C
      MOV C,A
      ANI 40h
      JNZ MonSCN5
      MOV A,B
      ANI 1Fh
      RET
    
    MonSCN5:
      LDA M_RuLa
      ANA A
      JNZ MonSCN10
      MOV A,C
      ANI 20h
      MOV A,B
      JZ MonSCN6
      CPI 1Ch
      JM MonSCN7
      CPI 20h
      JM MonSCN8
      JMP MonSCN7
    
    MonSCN6:
      CPI 1Ch
      JC MonSCN8
    
    MonSCN7:
      ADI 10h
    
    MonSCN8:
      ADI 10h
      POP H
      JMP AllRET
    
    MonSCN9:
      LXI H,B_CtrKEYS
      MOV C,A
      MVI B,0
      DAD B
      MOV A,M
      RET
    
    
    B_CtrKEYS:
      DB 0Ch ; [Home]
      DB 1Fh ; [СТР]
      DB 1Bh ; [AP2]
      DB 00h ; [F1]
      DB 01h ; [F2]
      DB 02h ; [F3]
      DB 03h ; [F4]
      DB 04h ; [F5]
      DB 09h ; [Tab]
      DB 0Ah ; [ПС]
      DB 0Dh ; [ВК]
      DB 7Fh ; [ЗБ]
      DB 08h ; [<-]
      DB 19h ; [Up]
      DB 18h ; [->]
      DB 1Ah ; [Down]
    
    MonSCN10:
      MOV A,C
      ANI 20h
      MOV A,B
      JZ MonSCN6
      CPI 1Ch
      JM MonSCN7
      CPI 20h
      JM MonSCN8
      ADI 40h
      RET
    
    MonSCN11:
      LXI H,0B00h
    
    MonSCN12:
      DCX H
      MOV A,H
      ORA L
      JNZ MonSCN12
      RET
    
    PrENTER:
      MVI A,0Dh
      CALL MonPRA
      MVI A,0Ah
    
    MonPRA:
      PUSH B
      MOV C,A
      JMP MonPRC1
    
    
    MonPRC:
    ; Вывод символа [C]
      PUSH B
    
    MonPRC1:
      PUSH D
      PUSH H
      PUSH PSW
      MOV A,C
      CPI 7Fh
      JNZ MonPRC2
    ; инверсия вывода
      LDA M_INVRS
      CMA
      STA M_INVRS
      JMP ALLRET
    
    MonPRC2:
      MVI H,20h
      SUB H
      JC MonPRC4
    ; вычисление начала образа символа в ZG
      MOV L,A
      DAD H
      DAD H
      DAD H
      XCHG
      LHLD M_BFNTS
      DAD D
      XCHG
      CALL MonPRC14
      XCHG
      MVI A,16h
    
    MonPRC3:
      PUSH PSW
      PUSH H
      LDA M_INVRS
      XRA M
      ANI 3Fh ; 0011 1111
      MOV L,A
      LDA M_MdPRC
      DCR A
      MVI H,0
    
    ;$-3
      DAD H
      DAD H
      INR A
      JNZ $-3
      XCHG
      MOV A,B
      XRA M
      ANA M
      ORA D
      MOV M,A
      INR H
      MOV A,C
      XRA M
      ANA M
      ORA E
      MOV M,A
      DCR H
      INR L
      XCHG
      POP H
      INX H
      POP PSW
      SUI 3
      JP MonPRC3
      LXI H,0FD85h ; %%
      CPI 0F8h
      JNZ MonPRC3
    
    MonPRC4:
    ; код меньше 20h
      LHLD M_PosXY
      CALL MonPRC10
      DAD B
      MOV A,H
      CPI 19h
      JC MonPRC9
      JNZ MonPRC8
      INR D
      MOV H,D
      JZ MonPRC9
      PUSH H
      LXI H,0
      DAD SP
      SHLD M_SfSTK
      LDA M_WSCR
      MOV B,A
      LDA M_BSCR
      MOV H,A
      MVI L,0Ah
      SPHL
      MVI L,0
    
    MonPRC5:
      MVI C,3Ch
    
    MonPRC6:
      POP D
      MOV M,E
      INR L
      MOV M,D
      INR L
      POP D
      MOV M,E
      INR L
      MOV M,D
      INR L
      DCR C
      JNZ MonPRC6
      LDA M_INVRS
    
    MonPRC7:
      INX SP
      MOV M,A
      INR L
      JNZ MonPRC7
      INR H
      DCR B
      JNZ MonPRC5
      LHLD M_SfSTK
      SPHL
      POP H
    
    MonPRC8:
      MVI H,18h
    
    MonPRC9:
      SHLD M_PosXY
    
    ALLRET:
      POP PSW
      JMP AllRET
    
    MonPRC10:
      LXI B,0100h
      MOV D,C
      INR A
      CZ MFE00
      JZ MonPRC12
      CPI 0EBh
      RZ
      DCR D
      ADI 5
      RZ
      INR D
      MVI B,0FFh
      INR A
      RZ
      MVI C,0FCh
      CPI 0EFh
      RZ
      LXI B,0
      CPI 0F0h
      JNZ MonPRC11
      MOV A,L
      ANI 0E0h
      ADI 20h
      MOV L,A
      RET
    
    MonPRC11:
      MVI C,4
      INR A
      RZ
      CPI 0EFh
      JZ SOUND
      ADI 0Bh
      JZ MonPRC13
      INR A
      RNZ
    
    MonPRC12:
      MOV H,D
    
    MonPRC13:
      MOV L,D
      MOV B,D
      MOV C,D
      RET
    
    MonPRC14:
      LHLD M_PosXY
      MOV A,L
      RRC
      MOV L,A
      RRC
      ADD L
      MOV B,A
      MOV L,H
      LDA M_BSCR
      MOV H,A
      MOV A,B
      DCR H
    
    MonPRC15:
      INR H
      SUI 4
      JNC MonPRC15
      STA M_MdPRC
      PUSH H
      LXI H,00FCh
    
    MonPRC16:
      DAD H
      DAD H
      INR A
      JNZ MonPRC16
      MOV B,H
      MOV C,L
      POP H
      MOV A,L
      RLC
      RLC
      RLC
      ADD L
      ADD L
      MOV L,A
      RET
    
    
    PrCURS:
    ; Вывод (инверсия) курсора
      CALL MonPRC14
      ADI 9
      MOV L,A
      MOV A,B
      XRA M
      MOV M,A
      INR H
      MOV A,C
      XRA M
      MOV M,A
      RET
    
    
    MFE00:
      PUSH PSW
      PUSH H
      LDA M_BSCR
      MOV H,A
      LDA M_WSCR
      ADD H
      MOV C,A
      MVI L,0
      LDA M_INVRS
      MOV B,A
    
    ;$-4
      MOV M,B
      INX H
      MOV A,H
      CMP C
      JNZ $-4
      POP H
      POP PSW
      RET
    
    
    SOUND:
    ; Звук через EI/DI [MFE1Bh]
      LXI B,4014h
    
    SndLOOP:
      MOV A,B
    
    ;$-2
      EI
      DCR A
      JNZ $-2
      MOV A,B
    
    ;$-2
      DI
      DCR A
      JNZ $-2
      DCR C
      JNZ SndLOOP
      MOV B,C
      RET
    
    
    T_MAIN:
    ; Текст приглашения монитора [MFE30h]
    DB 31,' orion-128.2',0
    
    T_PRMPT:DB 13,10,10,' =>',7,0
    
    DB 53H
    DB 56H
    
    B_CFNTS:
    ; Упакованный знакогенратор [MFE48h]
    DATA M1.CFT ; здесь вставка бинарника
    
    END

    Описание п/п Монитор-1 тут
    Последний раз редактировалось Denn; 05.04.2019 в 17:57.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

    Этот пользователь поблагодарил Denn за это полезное сообщение:

    cy6(16.09.2023)

  10. #609

    Регистрация
    11.01.2006
    Адрес
    Брест/Минск
    Сообщений
    8,398
    Записей в дневнике
    4
    Спасибо Благодарностей отдано 
    188
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    60 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Мне кажется, или есть авторские исходники Монитора-1?
    С уважением, Александр.
    Scorpion ZS-256 Turbo+ GMX-2048
    SID-Blaster/ZX
    Музей ретрокомпьютеров в Минске!
    Здесь ничего нет => http://byteman.by
    И здесь тоже --->>> http://bytespace.by

  11. #610

    Регистрация
    16.12.2008
    Адрес
    Kharkov, Ukraina
    Сообщений
    2,221
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    21
    Поблагодарили
    18 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BYTEMAN Посмотреть сообщение
    Мне кажется, или есть авторские исходники Монитора-1?
    Порвал жевот



    - - - Добавлено - - -

    Тут как бы авторы не частые гости, и реагируют на наш оффтоп, не всегда адекватно (дедушки).
    Электроника КР-02, MSX YIS-503IIR, Орион-128, Ленинград-2, Pentagon-128k, MSX2 YIS-503IIIR, MSX-EXT, ...

Страница 61 из 102 ПерваяПервая ... 575859606162636465 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Сборка Денди
    от poisk в разделе Nintendo
    Ответов: 75
    Последнее: 07.11.2013, 10:39
  2. Настройка АТМ 2
    от Retrograd в разделе ATM
    Ответов: 44
    Последнее: 28.02.2009, 12:44
  3. настройка PowerPC и 3d на амиге
    от easy_john в разделе Amiga
    Ответов: 4
    Последнее: 10.01.2009, 15:19
  4. Ответов: 15
    Последнее: 03.06.2007, 00:39
  5. Настройка не работает
    от Vladimir Kladov в разделе Форум
    Ответов: 2
    Последнее: 28.02.2006, 21:43

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •