User Tag List

Страница 62 из 102 ПерваяПервая ... 585960616263646566 ... ПоследняяПоследняя
Показано с 611 по 620 из 1013

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

  1. #611

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

    По умолчанию

    МОНИТОР-1 С архива.

    Скрытый текст

    ; МОНИТОР-1 (уже с исправлениями для DIR_R из РАДИО 08.1990)

    .Z80
    aseg
    ORG 100H

    STACK EQU 0F3C9H

    J_F821 EQU 0F3C9H
    V_F821 EQU 0F3CAH
    J_COUT EQU 0F3CCH ; вход в векторизованный CONOUT
    V_COUT EQU 0F3CDH

    PPAKBD EQU 0F400H
    DOPPPA EQU 0F500H


    HISCRN EQU 0F3CFH ; нач.адрес экрана
    WIDTH EQU 0F3D0H ; ширина экрана в байтах
    AFONT EQU 0F3D1H ; адрес фонта
    INVERS EQU 0F3D3H ; признак инверсии символов
    POSX EQU 0F3D4H ; N столбца курсора (в М2 это 0F3D6H)
    POSY EQU 0F3D5H ; N строки курсора (в М2 это 0F3D7H)

    ERRMG EQU 0F3D8H ; адрес вылета по TAPE LOAD ERR
    CSV EQU 0F3DAH ; конст. SAVE
    CLD EQU 0F3DBH ; конст. LOAD
    INVMG EQU 0F3DCH ; флаг инверсии мг
    OSTAT EQU 0F3DDH ; рабочая в П/П WRSYM
    ; ESC EQU 0F3DEH ; обработка ESC-КОДОВ
    TMPSP EQU 0F3DFH ; рабочая
    RAMTOP EQU 0F3E3H ; !! в М2 это так же (но в некоторых М3 иначе)
    RUSLAT EQU 0F3E5H ; =0-ЛАТ, #0-РУС.
    REPEAT EQU 0F3E6H ; для автоповтора
    ASTART EQU 0F3EEH ; адр. массива в п/п LDMAS
    COMBUF EQU 0F3F0H

    ; ──────────────────────────────────────────────

    .phase 0F800H

    JP START
    JP CONIN
    JP LDBYTE ; A=8/FF. Если A=FF, то с поиском с/байта
    CONOUT: JP J_COUT
    JP SVBYTE
    JP SCOUTA
    JP STATUS
    JP HEX_A
    JP MSSG
    JP XF81B
    JP RDCURS
    JP J_F821
    JP DIR_I
    JP DIR_O
    JP CH_SUM
    JP RASPAK
    JP RDTOP
    JP WRTOP
    JP RRAM
    JP WRAM
    JP WRCURS

    RET ; в M2 и М3 это BEEP
    NOP
    NOP ; зачем терять 2 байта?

    ; ──────────────────────────────────────────────

    START: LD SP, STACK

    XOR A
    LD (0F800H), A
    LD (0F900H), A
    LD (0FA00H), A

    LD (INVERS), A
    LD (PPAKBD+2), A

    LD A, 0C3H
    LD (J_COUT), A
    LD (J_F821), A

    CALL INIT

    LD HL, 6040H ; Константы чтения и записи
    LD (CSV), HL

    LD HL, TITR
    CALL MSSG

    @WARMST:

    if @WARMST ne 0F86CH
    if1
    .printx ' WARMST address shifted !'
    endif
    endif
    LD SP, STACK
    LD A, 8AH
    LD (PPAKBD+3), A

    LD HL, PROMPT
    CALL MSSG

    LD (RUSLAT), A ; A=0

    LD HL, ERROR
    LD (ERRMG), HL

    LD HL, @WARMST ; 0F86CH
    PUSH HL

    CALL DIRMON
    CALL CR
    CALL LD_PRM ; первый параметр в HL, второй в DE

    LD A, (COMBUF) ; АДРЕС КОМ.СТРОКИ

    CP 'M'
    JP Z, DIR_M
    CP 'D'
    JP Z, DIR_D
    CP 'I'
    JP Z, DIR_I
    CP 'O'
    JP Z, DIR_O
    CP 'R'
    JP Z, DIR_R
    CP 'Z'
    JP Z, 0BFFDH
    CP 'C'
    JP Z, DIR_C
    CP 'G'
    JP NZ, ERROR
    JP (HL)

    ; ──────────────────────────────────────────────

    INIT: LD HL, 0F000H
    LD (AFONT), HL

    CALL RASPAK

    LD HL, 30C0H
    LD (HISCRN), HL

    LD HL, COUT_C
    LD (V_COUT), HL

    LD HL, @RET
    LD (V_F821), HL

    LD HL, 0BFFFH
    LD (RAMTOP), HL
    @RET: RET

    ; ──────────────────────────────────────────────

    DIRMON: LD DE, COMBUF ; ввод команды
    CMDLOO: CALL CONIN
    CP '.'
    JP Z, ERROR
    CP 7FH
    JP Z, GETCM3
    CP 18H
    JP Z, GETCM5
    CP 8
    JP NZ, GETCM4
    LD A, low COMBUF ; 0F0H
    CP E
    JP Z, CMDLOO
    GETCM1: LD A, 8
    GETCM2: DEC DE
    GETCM3: CALL SCOUTA
    JP CMDLOO

    ; ──────────────────────────────────────────────

    GETCM4: LD (DE), A
    GETCM5: CALL SCOUTA
    CP 13
    RET Z
    INC DE
    LD A, E
    CP 0FFH
    JP NZ, CMDLOO
    JP GETCM1

    ; ──────────────────────────────────────────────

    LD_PRM: LD DE, COMBUF+1
    CALL PRM_HL
    LD (ASTART), HL
    RET C
    CALL PRM_HL
    EX DE, HL
    LD HL, (ASTART)
    RET

    ; ──────────────────────────────────────────────

    PRM_HL: LD HL, 0
    LD B, L
    LD C, L
    AF92F: ADD HL, BC
    LD A, (DE)
    INC DE
    CP 13
    JP Z, AF960
    CP ','
    RET Z
    SUB 30H ; '0'
    JP M, ERROR
    CP 10
    JP M, AF950
    CP 11H
    JP M, ERROR
    CP 17H
    JP P, ERROR
    SUB 7
    AF950: LD C, A
    ADD HL, HL
    ADD HL, HL
    ADD HL, HL
    ADD HL, HL
    JP NC, AF92F
    ERROR: LD A, '?'
    CALL SCOUTA
    JP @WARMST

    ; ──────────────────────────────────────────────

    AF960: LD DE, 0
    SCF
    RET

    ; ──────────────────────────────────────────────
    @hexA: LD A, (HL)
    HEX_A: PUSH AF ; это очень неэффективный HEX_A
    RRCA ; без PUSH/POP BC он даёт 1СH байтов
    RRCA ; а хороший алгоритм даёт
    RRCA ; всего 14H байтов
    RRCA
    CALL NIBBLE
    POP AF
    NIBBLE: AND 0FH
    CP 0AH
    JP M, NBL1
    ADD A, 7
    NBL1: ADD A, 30H
    PUSH BC
    LD C, A
    CALL CONOUT
    POP BC
    RET

    ; ─────────────────────────────────────────────────

    MSSG: LD A, (HL)
    AND A
    RET Z
    PUSH BC ; дурь... заменяется на CALL SCOUTA
    LD C, A
    CALL CONOUT
    POP BC
    INC HL
    JP MSSG

    ; ─────────────────────────────────────────────────

    CH_SUM: LD BC, 0
    AF991: LD A, C
    ADD A, (HL)
    LD C, A
    PUSH AF
    CALL CMPDH
    JP Z, POP_AF
    POP AF
    LD A, B
    ADC A, (HL)
    LD B, A
    INC HL
    JP AF991

    ; ─────────────────────────────────────────────────

    CRHEX@: CALL CR
    CALL SPACE
    HEXHL@: LD A, H
    CALL HEX_A
    LD A, L
    CALL HEX_A
    SPACE: LD A, 20H
    JP SCOUTA

    ; ─────────────────────────────────────────────────

    CMPDH: LD A, H
    CP D
    RET NZ
    LD A, L
    CP E
    RET

    ; ─────────────────────────────────────────────────

    RDCURS: LD HL, (POSX)
    LD A, L
    RRCA
    RRCA
    LD L, A
    RET

    ; ─────────────────────────────────────────────────

    WRCURS: LD A, L
    RLCA
    RLCA
    LD L, A
    LD (POSX), HL
    RET

    ; ─────────────────────────────────────────────────

    WRTOP: LD (RAMTOP), HL
    RDTOP: LD HL, (RAMTOP)
    RET

    ; ─────────────────────────────────────────────────

    RASPAK: LD HL, PFONT
    LD DE, 0F000H
    RSPLOO: LD C, 7
    XOR A
    LD (DE), A
    INC DE
    RASP_2: LD A, (HL)
    RLCA
    RLCA
    RLCA
    AND 7
    LD B, A
    RASP_3: LD A, (HL)
    AND 1FH
    LD (DE), A
    INC DE
    DEC C
    DEC B
    JP P, RASP_3
    INC HL
    LD A, H
    AND A
    RET Z
    LD A, C
    AND A
    JP NZ, RASP_2
    JP RSPLOO

    ; ──────────────────────────────────────────────

    RRAM: LD (0F900H), A
    LD C, (HL)
    RDB_1: XOR A
    LD (0F900H), A
    RET

    ; ─────────────────────────────────────────────────

    WRAM: LD (0F900H), A
    LD (HL), C
    JP RDB_1

    ; ──────────────────────────────────────────────

    ; < NO PROGRAMM PATH TO HERE > ; вход LDBS забить, это ненужный кусок ПЗУ РК86

    LDBS: LD A, 8 ; Флаг, что не нужен поиск с/байта E6

    LDBYTE: PUSH BC ; если A=FF, то с поиском с/байта
    PUSH DE
    PUSH HL
    LD C, 0
    LD D, A
    LD A, (PPAKBD+2)
    RRCA
    RRCA
    RRCA
    RRCA
    AND 1
    LD E, A
    AFA1D: LD A, C
    AND 7FH
    RLCA
    LD C, A
    LD B, 0
    AFA24: DEC B
    JP NZ, AFA2C
    TM_OUT: LD HL, (ERRMG)
    JP (HL)

    ; ──────────────────────────────────────────────

    AFA2C: LD A, (PPAKBD+2)
    RRCA
    RRCA
    RRCA
    RRCA
    AND 1
    CP E
    JP Z, AFA24
    OR C
    LD C, A
    CALL TM_LD
    LD A, (PPAKBD+2)
    RRCA
    RRCA
    RRCA
    RRCA
    AND 1
    LD E, A
    LD A, D
    OR A
    JP P, AFA66
    LD A, C
    CP 0E6H
    JP NZ, AFA5A
    XOR A
    LD (INVMG), A
    JP AFA64

    ; ──────────────────────────────────────────────

    AFA5A: CP 19H ; инвертированный с/байт E6
    JP NZ, AFA1D
    LD A, 0FFH
    LD (INVMG), A
    AFA64: LD D, 9
    AFA66: DEC D
    JP NZ, AFA1D
    LD A, (INVMG)
    XOR C
    POPREG: POP HL
    POP DE
    POP BC
    RET

    ; ─────────────────────────────────────────────────

    SV_HL: LD C, H ; вывод на ленту адреса из HL
    CALL SVBYTE
    LD C, L
    SVBYTE: PUSH AF
    PUSH DE
    PUSH BC
    LD D, 8
    AFA7C: LD A, C
    RLCA
    LD C, A
    LD A, 1
    XOR C
    LD (PPAKBD+2), A
    CALL TM_SV
    XOR A
    XOR C
    LD (PPAKBD+2), A
    CALL TM_SV
    DEC D
    JP NZ, AFA7C
    POP BC
    POP DE
    POP_AF: POP AF
    RET

    ; ──────────────────────────────────────────────

    TM_SV: LD A, (CSV)
    JP TMA

    TM_LD: LD A, (CLD)
    TMA: DEC A
    JP NZ, TMA
    RET

    ; ──────────────────────────────────────────────

    NEXT_M: INC HL
    DIR_M: CALL CRHEX@
    CALL @hexA
    CALL SPACE
    CALL DIRMON
    LD DE, COMBUF ; адрес ком.строки
    LD A, (DE)
    CP 13
    JP Z, NEXT_M
    PUSH HL
    CALL PRM_HL
    EX DE, HL
    POP HL
    LD (HL), E
    JP NEXT_M

    ; ──────────────────────────────────────────────

    DIR_D: LD B, E
    AFAC7: CALL CRHEX@
    AFACA: CALL SPACE
    LD A, B
    AND A
    JP Z, AFAD9
    CALL RRAM
    LD A, C
    JP AFADA

    ; ──────────────────────────────────────────────

    AFAD9: LD A, (HL)
    AFADA: CALL HEX_A
    INC HL
    LD A, L
    AND 0FH
    JP NZ, AFACA
    LD A, L
    AND A
    JP NZ, AFAC7
    CALL DIRMON
    JP AFAC7

    ; ──────────────────────────────────────────────

    DIR_I: LD A, 0FFH
    CALL LDHL_2 ; читаем 2 байта (НА) с поиском с/байта
    EX DE, HL
    CALL LDHLBS ; читаем 2 байта (КА) без с/байта
    EX DE, HL
    PUSH HL
    L53: CALL LDBYTE
    LD (HL), A
    CALL CMPDH
    INC HL
    JP NZ, L53
    LD A, 0FFH
    CALL LDHL_2
    LD B, H
    LD C, L
    POP HL
    CALL HEXHL@
    EX DE, HL
    CALL HEXHL@
    EX DE, HL
    PUSH BC
    CALL CH_SUM
    POP DE
    LD H, B
    LD L, C
    CALL HEXHL@
    CALL CMPDH
    RET Z
    JP TM_OUT

    ; ──────────────────────────────────────────────

    LDHLBS: LD A, 8 ; читает 2 байта (без поиска с/байта)
    LDHL_2: CALL LDBYTE
    LD H, A
    CALL LDBYTE
    LD L, A
    RET

    ; ──────────────────────────────────────────────

    DIR_O: PUSH HL
    CALL CH_SUM
    POP HL
    PUSH BC
    PUSH HL
    LD BC, 0
    AFB3B: CALL SVBYTE
    DEC B
    JP NZ, AFB3B
    LD C, 0E6H
    CALL SVBYTE
    CALL SV_HL
    EX DE, HL
    CALL SV_HL
    EX DE, HL
    POP HL
    AFB50: LD C, (HL)
    CALL SVBYTE
    CALL CMPDH
    INC HL
    JP NZ, AFB50
    LD HL, 0
    CALL SV_HL
    LD C, 0E6H
    CALL SVBYTE
    POP HL
    CALL SV_HL
    JP HEXHL@

    ; ──────────────────────────────────────────────

    DIR_C: LD C, L
    LD A, 6
    LD (0F800H), A
    LD A, 1
    LD (0F900H), A
    LD HL, INVERS
    LD D, (HL)
    LD (HL), C
    CALL L93
    LD (HL), D
    XOR A
    LD (0F900H), A
    RET

    ; ──────────────────────────────────────────────

    STATUS: XOR A
    LD (PPAKBD+0H), A
    LD A, (PPAKBD+1)
    XOR 0FFH
    RET Z
    LD A, 0FFH
    RET

    ; ──────────────────────────────────────────────

    DIR_R: LD DE, 0B800H ; загрузка ORDOS из ROM-диска
    LD H, E
    LD L, E
    LD A, 90H
    LD (DOPPPA+3), A
    DIRRLO: LD (DOPPPA+1), HL
    LD A, (DOPPPA)
    LD (DE), A
    INC DE
    INC HL
    LD A, H
    CP 8
    JP NZ, DIRRLO
    JP 0BFFDH

    ; ──────────────────────────────────────────────

    CONIN: PUSH BC
    PUSH DE
    PUSH HL
    CALL XF81B
    CP 0FFH
    JP NZ, AFBBD
    LD (REPEAT), A
    AFBBD: LD D, 0
    AFBBF: INC DE
    DEC E
    INC E
    CALL Z, AFDF2
    CALL XF81B
    INC A
    JP Z, AFBBF
    PUSH AF
    LD A, D
    RRCA
    CALL NC, AFDF2
    POP AF
    DEC A
    JP P, AFBED
    LD HL, RUSLAT
    LD A, (HL)
    CPL
    LD (HL), A
    LD (PPAKBD+2), A
    AFBE0: CALL XF81B
    INC A
    JP NZ, AFBE0
    CALL AFDF2
    JP AFBBD

    ; ──────────────────────────────────────────────

    AFBED: LD E, A
    LD D, 14H
    LD HL, REPEAT
    CP (HL)
    JP Z, AFC02
    AFBF7: DEC D
    JP Z, AFC02
    CALL XF81B
    CP E
    JP Z, AFBF7
    AFC02: CALL CLIK
    LD (HL), E
    CALL AFDF2
    LD A, E
    JP POPREG

    ; ──────────────────────────────────────────────

    XF81B: PUSH BC
    PUSH DE
    PUSH HL

    LD HL, POPREG
    PUSH HL

    LD B, 0
    LD D, 9
    LD C, 0FEH
    AFC1A: LD A, C
    LD (PPAKBD), A
    RLCA
    LD C, A
    LD A, (PPAKBD+1)
    CP 0FFH
    JP Z, AFC33
    LD E, A
    CALL PAUSE
    LD A, (PPAKBD+1)
    CP E
    JP Z, INK5
    AFC33: LD A, B
    ADD A, 8
    LD B, A
    DEC D
    JP NZ, AFC1A
    LD A, (PPAKBD+2)
    AND 80H
    LD A, 0FEH
    RET Z
    INC A
    RET

    ; ──────────────────────────────────────────────

    ; ЧТО-ТО ЕСТЬ

    INK3: INC B
    INK5: RRA
    JP C, INK3
    LD A, B
    AND 3FH
    CP 10H
    JP C, INK6
    CP 3FH
    LD B, A
    LD A, 20H
    RET Z
    LD A, (PPAKBD+2)
    LD C, A
    AND 40H
    JP NZ, AFC65
    LD A, B
    AND 1FH
    RET

    ; ──────────────────────────────────────────────

    AFC65: LD A, (RUSLAT)
    AND A ; OR A
    JP NZ, AFCA6
    LD A, C
    AND 20H
    LD A, B
    JP Z, AFC80
    CP 1CH
    JP M, AFC85
    CP 20H
    JP M, AFC87
    JP AFC85

    ; ──────────────────────────────────────────────

    AFC80: CP 1CH
    JP C, AFC87
    AFC85: ADD A, 10H
    AFC87: ADD A, 10H
    POP HL
    JP POPREG

    ; ──────────────────────────────────────────────

    INK6: LD HL, TABK1
    LD C, A
    LD B, 0
    ADD HL, BC
    LD A, (HL)
    RET

    ; ──────────────────────────────────────────────

    TABK1: defb 0CH,1FH,1BH,0,1,2,3,4
    defb 9,10,13,7FH,8,19H,18H,1AH

    ; ──────────────────────────────────────────────

    AFCA6: LD A, C
    AND 20H
    LD A, B
    JP Z, AFC80
    CP 1CH
    JP M, AFC85
    CP 20H
    JP M, AFC87
    ADD A, 40H
    RET

    ; ──────────────────────────────────────────────

    PAUSE: LD HL, 0B00H
    PAUS_1: DEC HL
    LD A, H
    OR L
    JP NZ, PAUS_1
    RET

    ; ──────────────────────────────────────────────

    CR: LD A, 13
    CALL SCOUTA
    LD A, 10
    SCOUTA: PUSH BC
    LD C, A
    JP JJJ_01 ; намного лучше defb 06H

    ; ──────────────────────────────────────────────

    COUT_C: PUSH BC
    JJJ_01: PUSH DE
    PUSH HL
    PUSH AF
    LD A, C
    CP 7FH
    JP NZ, L81
    LD A, (INVERS)
    CPL
    LD (INVERS), A
    JP POPALL

    ; ──────────────────────────────────────────────

    L81: LD H, 20H
    SUB H
    JP C, L83
    LD L, A ; ПЕЧАТАЕМЫЙ СИМВОЛ
    ADD HL, HL
    ADD HL, HL
    ADD HL, HL
    EX DE, HL
    LD HL, (AFONT)
    ADD HL, DE
    EX DE, HL
    CALL MASKA
    EX DE, HL
    LD A, 16H
    L87: PUSH AF
    PUSH HL
    LD A, (INVERS)
    XOR (HL)
    AND 3FH
    LD L, A
    LD A, (OSTAT)
    DEC A
    LD H, 0
    L86: ADD HL, HL
    ADD HL, HL
    INC A
    JP NZ, L86
    EX DE, HL
    LD A, B
    XOR (HL)
    AND (HL)
    OR D
    LD (HL), A
    INC H
    LD A, C
    XOR (HL)
    AND (HL)
    OR E
    LD (HL), A
    DEC H
    INC L
    EX DE, HL
    POP HL
    INC HL
    POP AF
    SUB 3
    JP P, L87
    LD HL, ZERO
    CP 0F8H
    JP NZ, L87
    L83: LD HL, (POSX)
    CALL L89
    ADD HL, BC
    LD A, H
    CP 25
    JP C, L8A
    JP NZ, L8B
    INC D
    LD H, D
    JP Z, L8A

    ; SCREEN ROLL

    PUSH HL

    LD HL, 0
    ADD HL, SP
    LD (TMPSP), HL

    LD A, (WIDTH)
    LD B, A
    LD A, (HISCRN)
    LD H, A
    LD L, 10
    LD SP, HL
    LD L, 0
    AFD58: LD C, 3CH
    AFD5A: POP DE
    LD (HL), E
    INC L
    LD (HL), D
    INC L
    POP DE
    LD (HL), E
    INC L
    LD (HL), D
    INC L
    DEC C
    JP NZ, AFD5A
    LD A, (INVERS)
    AFD6B: INC SP
    LD (HL), A
    INC L
    JP NZ, AFD6B
    INC H
    DEC B
    JP NZ, AFD58
    LD HL, (TMPSP)
    LD SP, HL
    POP HL
    L8B: LD H, 24
    L8A: LD (POSX), HL
    POPALL: POP AF
    JP POPREG

    ; ──────────────────────────────────────────────

    L89: defb 01H ; LD BC, 100H
    ZERO: DW 100H
    LD D, C
    INC A
    CALL Z, L93
    JP Z, L94
    CP 0EBH
    RET Z
    DEC D
    ADD A, 5
    RET Z
    INC D
    LD B, 0FFH
    INC A
    RET Z
    LD C, 0FCH
    CP 0EFH
    RET Z
    LD BC, 0
    CP 0F0H
    JP NZ, L95
    LD A, L
    AND 0E0H
    ADD A, 20H
    LD L, A
    RET

    ; ──────────────────────────────────────────────

    L95: LD C, 4
    INC A
    RET Z
    CP 0EFH
    JP Z, CLIK
    ADD A, 0BH
    JP Z, L96
    INC A
    RET NZ
    L94: LD H, D
    L96: LD L, D
    LD B, D
    LD C, D
    RET

    ; ──────────────────────────────────────────────

    MASKA: LD HL, (POSX)
    LD A, L
    RRCA
    LD L, A
    RRCA
    ADD A, L
    LD B, A
    LD L, H
    LD A, (HISCRN)
    LD H, A
    LD A, B
    DEC H
    L97: INC H
    SUB 4
    JP NC, L97
    LD (OSTAT), A
    PUSH HL
    LD HL, 0FCH
    L99: ADD HL, HL
    ADD HL, HL
    INC A
    JP NZ, L99
    LD B, H
    LD C, L
    POP HL
    LD A, L ; MULT10:
    RLCA
    RLCA
    RLCA
    ADD A, L
    ADD A, L
    LD L, A
    RET

    ; ──────────────────────────────────────────────

    AFDF2: CALL MASKA
    ADD A, 9
    LD L, A
    LD A, B
    XOR (HL)
    LD (HL), A
    INC H
    LD A, C
    XOR (HL)
    LD (HL), A
    RET

    ; ──────────────────────────────────────────────

    L93: PUSH AF
    PUSH HL
    LD A, (HISCRN)
    LD H, A
    LD A, (WIDTH)
    ADD A, H
    LD C, A
    LD L, 0
    LD A, (INVERS)
    LD B, A
    AFE11: LD (HL), B
    INC HL
    LD A, H
    CP C
    JP NZ, AFE11
    POP HL
    POP AF
    RET

    ; ──────────────────────────────────────────────

    CLIK: LD BC, 4014H
    CLK_1: LD A, B
    CLK_2: EI
    DEC A
    JP NZ, CLK_2
    LD A, B
    CLK_3: DI
    DEC A
    JP NZ, CLK_3
    DEC C
    JP NZ, CLK_1
    LD B, C
    RET

    ; ──────────────────────────────────────────────

    TITR: defb 1FH,' orion-128.2',0
    PROMPT: defb 13,10,10,' =>',7,0

    ; ──────────────────────────────────────────────

    defb 53H,56H

    PFONT: defb 0C0H, 84H, 0, 4, 4AH, 60H, 2AH, 1FH
    defb 0AH, 1FH, 2AH, 4, 0FH, 14H, 0EH, 5
    defb 1EH, 4, 18H, 19H, 2, 4, 8, 13H
    defb 3, 4, 2AH, 0CH, 15H, 12H, 0DH, 26H
    defb 2, 4, 40H, 2, 4, 48H, 4, 2
    defb 8, 4, 42H, 4, 8, 0, 4, 15H
    defb 0EH, 15H, 4, 0, 0, 24H, 1FH, 24H
    defb 0, 40H, 2CH, 4, 8, 40H, 1FH, 40H
    defb 80H, 2CH, 0, 1, 2, 4, 8, 10H
    defb 0, 0EH, 11H, 13H, 15H, 19H, 11H, 0EH
    defb 4, 0CH, 64H, 0EH, 0EH, 11H, 1, 6
    defb 8, 10H, 1FH, 1FH, 1, 2, 6, 1
    defb 11H, 0EH, 2, 6, 0AH, 12H, 1FH, 22H
    defb 1FH, 10H, 1EH, 21H, 11H, 0EH, 7, 8
    defb 10H, 1EH, 31H, 0EH, 1FH, 1, 2, 4
    defb 48H, 0EH, 31H, 0EH, 31H, 0EH, 0EH, 31H
    defb 0FH, 1, 2, 1CH, 0, 2CH, 20H, 2CH
    defb 2CH, 0, 2CH, 4, 8, 2, 4, 8
    defb 10H, 8, 4, 2, 20H, 1FH, 0, 1FH
    defb 20H, 8, 4, 2, 1, 2, 4, 8
    defb 0EH, 11H, 1, 2, 4, 0, 4, 0EH
    defb 11H, 13H, 15H, 17H, 10H, 0EH, 4, 0AH
    defb 31H, 1FH, 31H, 1EH, 31H, 1EH, 31H, 1EH
    defb 0EH, 11H, 50H, 11H, 0EH, 1EH, 89H, 1EH
    defb 1FH, 30H, 1EH, 30H, 1FH, 1FH, 30H, 1EH
    defb 50H, 0EH, 11H, 30H, 13H, 11H, 0FH, 51H
    defb 1FH, 51H, 0EH, 84H, 0EH, 61H, 31H, 0EH
    defb 11H, 12H, 14H, 18H, 14H, 12H, 11H, 90H
    defb 11H, 1FH, 11H, 1BH, 35H, 51H, 31H, 19H
    defb 15H, 13H, 31H, 0EH, 91H, 0EH, 1EH, 31H
    defb 1EH, 50H, 0EH, 51H, 15H, 12H, 0DH, 1EH
    defb 31H, 1EH, 14H, 12H, 11H, 0EH, 11H, 10H
    defb 0EH, 1, 11H, 0EH, 1FH, 0A4H, 0B1H, 0EH
    defb 51H, 2AH, 24H, 51H, 55H, 0AH, 31H, 0AH
    defb 4, 0AH, 31H, 31H, 0AH, 64H, 1FH, 1
    defb 2, 0EH, 8, 10H, 1FH, 0EH, 88H, 0EH
    defb 0, 10H, 8, 4, 2, 1, 0, 0EH
    defb 82H, 0EH, 0EH, 11H, 80H, 0A0H, 1FH, 12H
    defb 35H, 1DH, 35H, 12H, 4, 0AH, 31H, 1FH
    defb 31H, 1FH, 30H, 1EH, 31H, 1EH, 92H, 1FH
    defb 1, 6, 6AH, 1FH, 11H, 1FH, 30H, 1EH
    defb 30H, 1FH, 4, 1FH, 35H, 1FH, 24H, 1FH
    defb 11H, 90H, 31H, 0AH, 4, 0AH, 31H, 31H
    defb 13H, 15H, 19H, 31H, 15H, 11H, 13H, 15H
    defb 19H, 31H, 11H, 12H, 14H, 18H, 14H, 12H
    defb 11H, 7, 89H, 19H, 11H, 1BH, 35H, 51H
    defb 51H, 1FH, 51H, 0EH, 91H, 0EH, 1FH, 0B1H
    defb 0FH, 31H, 0FH, 5, 9, 11H, 1EH, 31H
    defb 1EH, 50H, 0EH, 11H, 50H, 11H, 0EH, 1FH
    defb 0A4H, 51H, 0AH, 4, 8, 10H, 11H, 35H
    defb 0EH, 35H, 11H, 1EH, 31H, 1EH, 31H, 1EH
    defb 50H, 1EH, 31H, 1EH, 51H, 19H, 35H, 19H
    defb 0EH, 11H, 1, 6, 1, 11H, 0EH, 11H
    defb 95H, 1FH, 0EH, 11H, 1, 7, 1, 11H
    defb 0EH, 95H, 1FH, 1, 51H, 1FH, 41H, 0DFH

    .dephase

    end
    [свернуть]
    Последний раз редактировалось denis74; 06.04.2019 в 09:14.

  2. #612

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    denis74, уберите дамп под спойлер - теги [SP OILER] [/SP OILER] (без пробела)
    Лучше сделать и жалеть, чем не сделать и жалеть.

    Некоторые из моих поделок тут: https://github.com/serge-404

  3. #613

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

    По умолчанию

    Цитата Сообщение от OrionExt Посмотреть сообщение
    Порвал жевот



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

    Тут как бы авторы не частые гости, и реагируют на наш оффтоп, не всегда адекватно (дедушки).
    Зря смеётесь, почти все авторское давно лежит в этих ваших энтюрьнетах (и распространялось из рук в руки на небезызвестном "диске от CHRV").
    С уважением, Александр.
    Scorpion ZS-256 Turbo+ GMX-2048
    SID-Blaster/ZX
    Музей ретрокомпьютеров в Минске!
    Здесь ничего нет => http://byteman.by
    И здесь тоже --->>> http://bytespace.by

  4. #614

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

    По умолчанию

    Denn, "поддержка" и у меня есть, ну как, могу записать и прочитать сектор/сектора. Но на жёстком диске с ЛБА - таки возникают проблемы, или с чтением, или с записью, или и с тем, и другим. В принципе, мне жёсткий диск то и нужен, чтобы уйти от магнитофона, который, впрочем, неплохо работает, но искать муторно)

    А полноценную ОС ставить - не знаю, у меня 3.5 прикладные программы, и их надо просто хранить.

    Про команды EI/DI усвоил, гляну и выкошу)

  5. #615

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

    По умолчанию

    Electricman, в чём именно проблемы с чтение/записью через LBA-адресацию?

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

    Electricman, с помощью ОС удобно и 1,5 программы запускать

    Да и аппетит, как известно, приходит во время еды. Жёсткий диск это несомненно удобная штука, магнитофоны своё отслужили.
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  6. #616

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

    По умолчанию

    Дак, выше написал - с жёстким диском, который поддерживает ЛБА - происходит чтение с ошибкой, последние 8 байт рандомные, а в теле массива где-то выпадают эти самые байты, смещая конец. Проверено попытками записи-чтения монитора.

    Мои программы рвут всё, в случае ошибки, хотя так то подумать, но это нужен будет другой контроллер винта, а я таки ленив, и всё делаю медленно) Мне просто надо хранить инфу, и не более

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

  8. #617

    Регистрация
    02.03.2015
    Адрес
    г. Санкт-Петербург
    Сообщений
    835
    Спасибо Благодарностей отдано 
    426
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    65 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Извините за оффтопик, но не могли бы подсказать - где взять средства разработки программ для Орион, 86РК на платформе 580ИК80. Может есть тема, посвященная разработке?

  9. #618

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

    По умолчанию

    Electricman, а что за КНЖМД используется?

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

    Цитата Сообщение от Копейкин Посмотреть сообщение
    Извините за оффтопик, но не могли бы подсказать - где взять средства разработки программ для Орион, 86РК на платформе 580ИК80. Может есть тема, посвященная разработке?
    Имеется в виду для писи?
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

  10. #619

    Регистрация
    02.03.2015
    Адрес
    г. Санкт-Петербург
    Сообщений
    835
    Спасибо Благодарностей отдано 
    426
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    65 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Да, для писи.

  11. #620

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

    По умолчанию

    Цитата Сообщение от Копейкин Посмотреть сообщение
    Да, для писи.
    Думаю, таковых попросту нет в природе. Как и результатов такой деятельности.

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

    Цитата Сообщение от Electricman Посмотреть сообщение
    ...происходит чтение с ошибкой, последние 8 байт рандомные, а в теле массива где-то выпадают эти самые байты, смещая конец.
    Затрудняюсь представить такое. Работа с IDE в меру проста и в достаточной степени грамотна, чтобы не было таких казусов - либо не работает вообще, либо работает правильно.
    Невозможно передать неполный сектор, равно как и что-либо там сместить в данных. Возможно, имеет место какая-то хитрая неисправность внутри накопителя, но это уже совсем другая история.


    Цитата Сообщение от Electricman Посмотреть сообщение
    ...я таки ленив, и всё делаю медленно) Мне просто надо хранить инфу, и не более
    Без ОС хранение инфы на НЖМД вряд ли можно назвать простым.

    П.С. можно прошить ОС с поддержкой НЖМД в ром-диск, и решить сразу все вопросы
    Критиковать - значит объяснять автору, что он делает не так, как делал бы я, если бы умел

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

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

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

Эту тему просматривают: 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

Ваши права

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