Май 2019
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031  

Календарь Календарь

Последние темы
» Эмулятор радио 86рк
автор parsec Вчера в 18:44

» Эмулятор ИРИШИ для тех, кто не имеет её реальной
автор barsik Вчера в 18:38

» Новинки. Книги. Часть 1.
автор Viktor2312 Вт Май 21 2019, 16:21

» Программирование для ИРИШИ
автор barsik Пн Май 20 2019, 21:14

» Новинки. Книги. Часть 3.
автор Viktor2312 Пн Май 20 2019, 16:38

» Модуль контроллера графического дисплея (МКГД).
автор barsik Вс Май 19 2019, 13:40

» ATM Turbo 2+ v7.10
автор alemorf Сб Май 18 2019, 20:03

» Схемы и документация на отечественные ЭВМ и ПЭВМ и комплектующие
автор Viktor2312 Сб Май 18 2019, 18:10

» Куплю микросхемы КР1818ВГ93 и КМ1810ВТ3.
автор Savoj Чт Май 16 2019, 07:51

» Радио-86РК: Расширение ОЗУ
автор barsik Чт Май 16 2019, 01:26

» Клавиатура ИРИШИ
автор barsik Ср Май 15 2019, 16:57

» ИРИША и магнитофон
автор barsik Пн Май 13 2019, 04:23

» Новости криптовалют: статьи, заметки, разное...
автор Viktor2312 Сб Май 11 2019, 03:01

» Жалобы/пожелания по работе форума
автор Viktor2312 Сб Май 11 2019, 00:50

» Альтернативные КНГМД для ИРИШИ
автор barsik Пт Май 10 2019, 01:12

» Видеокарты (GPU). Статьи, заметки, очерки, разное...
автор Viktor2312 Чт Май 09 2019, 19:55

» Алгоритм SHA-256 и др., хеш (hash), хеширование, майнинг.
автор Viktor2312 Чт Май 09 2019, 01:30

» Обсуждение желаемых новодельных плат расширения и мелких усовершенствований базовых плат
автор barsik Ср Май 08 2019, 16:06

» Разное
автор Viktor2312 Вт Май 07 2019, 19:19

» Для новичков (криптовалюта).
автор Viktor2312 Вт Май 07 2019, 17:32

» Ассемблер для современных CPU Intel.
автор Viktor2312 Вт Май 07 2019, 17:12

» МКНГМД Вариант-3. Версия на К1818ВГ93
автор barsik Вт Май 07 2019, 15:15

» Обзор крипто проектов.
автор Viktor2312 Вт Май 07 2019, 12:57

» 7 Мая. День Радио!
автор Viktor2312 Вт Май 07 2019, 12:00

» "Радио-86РК". Статьи, заметки, очерки, разное...
автор barsik Сб Май 04 2019, 20:20

Самые активные пользователи за месяц
Viktor2312
ПО ТЕТРИС (TETRIS) Vote_lcapПО ТЕТРИС (TETRIS) Voting_barПО ТЕТРИС (TETRIS) Vote_rcap 
barsik
ПО ТЕТРИС (TETRIS) Vote_lcapПО ТЕТРИС (TETRIS) Voting_barПО ТЕТРИС (TETRIS) Vote_rcap 
alemorf
ПО ТЕТРИС (TETRIS) Vote_lcapПО ТЕТРИС (TETRIS) Voting_barПО ТЕТРИС (TETRIS) Vote_rcap 
demetrius2003
ПО ТЕТРИС (TETRIS) Vote_lcapПО ТЕТРИС (TETRIS) Voting_barПО ТЕТРИС (TETRIS) Vote_rcap 
a.oleg.a
ПО ТЕТРИС (TETRIS) Vote_lcapПО ТЕТРИС (TETRIS) Voting_barПО ТЕТРИС (TETRIS) Vote_rcap 
parsec
ПО ТЕТРИС (TETRIS) Vote_lcapПО ТЕТРИС (TETRIS) Voting_barПО ТЕТРИС (TETRIS) Vote_rcap 
Savoj
ПО ТЕТРИС (TETRIS) Vote_lcapПО ТЕТРИС (TETRIS) Voting_barПО ТЕТРИС (TETRIS) Vote_rcap 
VladimirS
ПО ТЕТРИС (TETRIS) Vote_lcapПО ТЕТРИС (TETRIS) Voting_barПО ТЕТРИС (TETRIS) Vote_rcap 

Поиск
 
 

Результаты :
 


Rechercher Расширенный поиск


ПО ТЕТРИС (TETRIS)

Перейти вниз

ПО ТЕТРИС (TETRIS) Empty ПО ТЕТРИС (TETRIS)

Сообщение  Viktor2312 в Пт Ноя 04 2016, 01:30

1
Есть такая игра и на ПЭВМ "Ириша" в том числе.


ПО ТЕТРИС (TETRIS) 0_15aa19_4263c3b6_L

При старте просит ввести скорость, с которой будут опускаться фигурки.


ПО ТЕТРИС (TETRIS) 0_15aa1a_c4d83088_L

Начало игры, 0 - максимальная, 9 - минимальная скорость.


ПО ТЕТРИС (TETRIS) 0_15aa1b_3c4af90e_L

Шесть строк были полностью заполнены.


Программа ТЕТРИС: Скачать


Последний раз редактировалось: Viktor2312 (Чт Ноя 17 2016, 14:01), всего редактировалось 1 раз(а)
Viktor2312
Viktor2312
Гуру+

Сообщения : 11568
Дата регистрации : 2012-08-10
Возраст : 40
Откуда : Пятигорск

Посмотреть профиль

Вернуться к началу Перейти вниз

ПО ТЕТРИС (TETRIS) Empty Коды игры ТЕТРИС из красной книги

Сообщение  barsik в Чт Ноя 17 2016, 13:20

2
Скачать игру ТЕТРИС Вы можете здесь:

http://irisha-files.perestoroniny.ru/new/actual/TETRIS$.IRD

Как хранить файлы работающие без DOS:

В отличие от CP/M-программ, программы для ИРИШИ работающие без ДОС могут иметь любой стартовый адрес. Поэтому при транспортировке файлов программ ИРИШИ требуется в отдельном файле хранить стартовый адрес программы и её реальную длину. Длину файла тоже требуется хранить, т.к в отличие от MS-DOS, в  CP/M длина файлов задаётся с кратностью 128 байтов. Ясно, что хранить саму программу ИРИШИ и текстовый файл с адресами загрузки программы и её длиной - неудобно. Желательно иметь один файл, в котором бы хранился и код программы и атрибуты.

Эту проблему для компьютера ОРИОН-128 в 1991 году решили за счёт введения дискетного формата ORD. При этом в начале каждого файла добавляется так называемая ORDOS-метка файла длиной в 16 байт, в которой содержится имя, адрес загрузки, длина и контрольная сумма.  Так как эта метка соответствует используемой в ОРИОНЕ системе ORDOS, то эти 16 байт заголовка и называются ORDOS-меткой. Хотя сама ORDOS как DOS - полная туфта и не представляет интереса, но формат дискетных ORD-файлов оказался удобным для транспортировки программ ОРИОНА.

Исходя из вышеизложенного, нет смысла изобретать новый формат для хранения программ ИРИШИ. Достаточно заимствовать то, что хорошо зарекомендовало себя ранее. Формат ORDOS метки в базовом варианте состоит из следующих полей:

8 байтов - имя
2 байта   - адрес загрузки и старта
2 байта   - длина
1 байт     - старший бит атрибут R/O
3 байта   - в ORDOS не используются

Первые 12 байт (с 0 по 11) стандартны для всех систем, т.е типов ORD-файлов. Оставшиеся 4 байта в разных системах используются по разному, в зависимости от конкретных задач.

Базовый тип ORD файла допускает имя только длиной в 8 символов, что не позволяет конвертировать CPM- или MSDOS-файлы, где имя файла имеет длину в 11 символов в ORD-формат без потери части имени файла. В то же время довольно часто стоит задача хранить дискетные ДОС-файлы в формате ORD.

Для решения этой проблемы для РК-ДОС версии 3.0 в 1996 году в формат ORD был введен тип или код расширения. Это число заносимое в байт метки со смещением (0DH), которое кодирует одно из стандартных расширений. Последние 2 байта метки обычно используются для хранения КС файла. Но для ДОС, где используется дата, эти байты хранят дату и время файла.

Байт со смещением 0CH, т.е байт ORDOS-атрибута нельзя использовать целиком (доступны только 7 бит). Поэтому этот байт используется как флаг длинного имени. Если этот байт равен 7EH (ASCII код '~'), это означает, что имя файла задано в длинном формате 11 символов и следующий байт содержит тип (или код расширения).

Чтобы не вводить новые сущности привожу номера стандартных расширений использованные в RK-DOS.

'___' - 0
'COM' - 1
'SYS' - 2
'BAT' - 3
'ORD' - 4
'DAT' - 5
'OVR' - 6
'ASM' - 7
'Z80' - 8
'TXT' - 9
'DOC' - 0A
'ALT' - 0B
'KO8' - 0C
'KO7' - 0D
'PRN' - 0E
'ALT' - 0F
'KO8' - 10
'KO7' - 11
'AS ' - 12
'TX ' - 13
'K8 ' - 14
'K7 ' - 15
'AL ' - 16

ORDOS не допускает размеры файлов не кратные параграфу, т.е 10H. Что приводит к невозможности указать размер файла с точностью до байта. Для ИРИШИ нет и, естественно, никогда не будет ORDOS, поэтому это ограничение снимается. Контрольные суммы должны считаться по общепринятому древнему алгоритму F82A. а не по приведённому в красной книге на странице 108 алгоритму (который вообще от балды).

В ORDOS ОРИОНА исполняемые файлы имеют суффикс $. Для ИРИШИ это не обязательно, если использован длинный формат имени (в 11 байт). Чтобы отличать файлы ИРИШИ от файлов ОРИОНА для дискетных файлов удобнее использовать расширение не ORD, а IRD.


Последний раз редактировалось: barsik (Пн Мар 25 2019, 09:48), всего редактировалось 1 раз(а)
barsik
barsik
Мастер+

Сообщения : 458
Дата регистрации : 2016-11-10
Откуда : С-Петербург

Посмотреть профиль

Вернуться к началу Перейти вниз

ПО ТЕТРИС (TETRIS) Empty Re: ПО ТЕТРИС (TETRIS)

Сообщение  Viktor2312 в Сб Янв 21 2017, 11:44

3
резерв.
Viktor2312
Viktor2312
Гуру+

Сообщения : 11568
Дата регистрации : 2012-08-10
Возраст : 40
Откуда : Пятигорск

Посмотреть профиль

Вернуться к началу Перейти вниз

ПО ТЕТРИС (TETRIS) Empty .

Сообщение  barsik в Пн Мар 25 2019, 11:26

4
Если кто-то хочет изучить, вот исходник этой игры. Отличия от оригинала только в двух байтах (кодах клавиш, чтобы было удобнее в эмуляторе EMU). Если надо, то можно изменить коды обратно (см. п/п-мму A4103). Вообще в этой версии тетриса паршивый игровой аспект и отличия логики от общепринятой. Думаю, что на Паскале можно написать легче и лучше.

исходник игры тетрис:

; Дизассемблированный тетрис из красной книги

        .z80
        aseg
        ORG     100H
       
RSTAT   EQU     0058H
RCONIN  EQU     005BH
CONOUT  EQU     2000H

CURLOW  EQU     0FF40H
CURHIG  EQU     0FF41H
INVERS  EQU     0FF42H
YFF45   EQU     0FF45H
POS_X   EQU     0FF46H
POS_Y   EQU     0FF47H
WIN_LE  EQU     0FF48H
WIN_UP  EQU     0FF49H
WIN_RI  EQU     0FF4AH
WIN_DN  EQU     0FF4BH
ESCFLG  EQU     0FF4EH

YFF55   EQU     0FF55H
YFF5D   EQU     0FF5DH

KBD     EQU     4

PA      EQU     10H
PB      EQU     11H
PC      EQU     12H
PU      EQU     13H

; ----------------------------------------------

        .phase  4000H
       
        LD      SP,6000H
       
        XOR     A
        OUT     (PC),A          ; ставим карту 0
       
        LD      C,0CH
        CALL    COUT_C          ; очистка экрана
       
        LD      HL,0
        LD      DE,0FFFFH       ; это похоже генератор случ.числа
A4011:  ADD     A,(HL)
        DEC     DE
       
        PUSH    AF
        LD      A,D
        OR      A
        JP      Z,A401E
        POP     AF

        INC     HL
        JP      A4011
       
; ------------------------------------------

A401E:  POP     AF
        LD      HL,4000H
        ADD     A,L
        LD      L,A
        LD      (W_451B),HL
        AND     0FH
        LD      (L4504),A
        JP      A4335
       
; ------------------------------------------

A402F:  CALL    A44BE

        XOR     A
        LD      (RESULT),A
       
        LD      HL,TMODE
        CALL    MSSG
       
        LD      A,(YFF45)
        OR      40H
        LD      (YFF45),A
       
        LD      A,25
        LD      (WIN_DN),A
       
        CALL    A404F
        JP      A40E0

; ------------------------------------------

A404F:  LD      A,3AH
        LD      (YFF55),A
       
        LD      HL,0
        CALL    POS_HL
       
        LD      C,'|'
        CALL    COUT_C
       
        LD      HL,VEKRAN
A4062:  LD      A,3AH
        LD      (YFF55),A
        INC     HL
        LD      C,(HL)
        LD      A,3CH
        CP      (HL)
        JP      Z,A408E
       
        LD      A,5EH
        CP      (HL)
        JP      Z,A4088
        LD      A,0CAH
        CP      (HL)
        JP      NZ,A4080
       
        LD      A,38H
        LD      (YFF55),A

A4080:  PUSH    HL
        CALL    COUT_C
        POP     HL
       
        JP      A4062

; ------------------------------------------

A4088:  LD      A,38H
        LD      (YFF55),A
        RET
               
; ------------------------------------------

A408E:  PUSH    HL
       
        LD      C,'|'
        CALL    COUT_C
       
        LD      HL,(POS)
        INC     L
        LD      (POS),HL
       
        LD      HL,TPOSIT
        CALL    MSSG
       
        LD      C,'|'
        CALL    COUT_C
       
        POP     HL
       
        INC     HL
        JP      A4062

; ------------------------------------------

PR_RES: PUSH    HL              ; вывод результата
        PUSH    DE
        PUSH    BC
        PUSH    AF
       
        LD      HL,YFF45
        LD      A,80H
        OR      (HL)
        LD      (HL),A
       
        PUSH    HL

        LD      HL,P_1229               ; L=12 C=29
        CALL    MSSG

        LD      A,(RESULT)
       
        PUSH    AF                      ; вывод BCD-числа
        AND     0F0H
        RRCA    
        RRCA    
        RRCA    
        RRCA    
        OR      30H
        LD      C,A
        CALL    COUT_C
       
        POP     AF
        AND     0FH
        OR      30H
        LD      C,A
        CALL    COUT_C
       
        POP     HL
       
        LD      A,7FH
        AND     (HL)
        LD      (HL),A
       
        POP     AF
        POP     BC
        POP     DE
        POP     HL
        RET    

; ------------------------------------------

A40E0:  CALL    A4287
A40E3:  LD      HL,(W_4519)
        CALL    A4103
        CALL    A430C
        LD      A,(L44FF)
        OR      A
        JP      Z,A40E3
        XOR     A
        LD      (L4501),A
        CALL    A4224
       
        defb    21H
TORM2:  DW      457H

        LD      (W_4519),HL
        JP      A40E0

; ------------------------------------------

A4103:  PUSH    HL
        CALL    RSTAT
        CALL    C,RCONIN
        CP      'J'
        JP      Z,A4151
        CP      'U'             ; 'L'
        JP      Z,A41AD
        CP      'C'             ; 'K'
        JP      Z,A412E
        CP      20H
        JP      NZ,A4126
        POP     HL
       
        LD      HL,10H
        LD      (W_4519),HL
       
        PUSH    HL
A4126:  POP     HL
        DEC     HL
        LD      A,H
        OR      L
        JP      NZ,A4103
        RET    

; ------------------------------------------

A412E:  LD      A,(L4504)
        CP      3
        JP      C,A4126
        INC     A
        CP      11
        JP      NZ,A413E
        LD      A,3
A413E:  CP      19
        JP      NZ,A4145
        LD      A,11
A4145:  LD      (L4504),A
        CALL    A42E0
        CALL    A4299
        JP      A4126

; ------------------------------------------

A4151:  LD      HL,L450E
        LD      A,(L4501)
        OR      A
        JP      Z,A4126
        DEC     A
        LD      (L4501),A

A415F:  LD      A,(HL)
        INC     HL
        LD      C,(HL)
        INC     HL
        PUSH    HL
        CALL    A438F
        LD      A,(HL)
        CP      0CAH
        JP      Z,A417C
        CP      3EH
        JP      Z,A417C
        POP     HL
        LD      A,(HL)
        CP      0FFH            ; конец образа фигурки ?
        JP      Z,A4190
        JP      A415F

; ------------------------------------------

A417C:  LD      HL,L4501
        INC     (HL)
        LD      HL,L4505
        LD      DE,L450E
        LD      BC,L450E
        CALL    A42D4
        POP     HL
        JP      A4126

; ------------------------------------------

A4190:  LD      HL,L4501
        INC     (HL)
        CALL    A42E0
        LD      HL,L4501
        DEC     (HL)
        CALL    A42E8
        LD      HL,L450E
        LD      BC,L4505
        LD      DE,L4505
        CALL    A42D4
        JP      A4126

; ------------------------------------------

A41AD:  LD      HL,L450E
        LD      A,(L4501)
        CP      19
        JP      Z,A4126
        INC     A
        LD      (L4501),A
A41BC:  LD      A,(HL)
        INC     HL
        LD      C,(HL)
        INC     HL
        PUSH    HL
        CALL    A438F
        LD      A,(HL)
        CP      0CAH
        JP      Z,A41D9
        CP      3CH
        JP      Z,A41D9
        POP     HL
        LD      A,(HL)
        CP      0FFH            ; конец образа фигурки ?
        JP      Z,A41ED
        JP      A41BC

; ------------------------------------------

A41D9:  LD      HL,L4501
        DEC     (HL)
       
        LD      HL,L4505
        LD      DE,L450E
        LD      BC,L450E
        CALL    A42D4
        POP     HL
        JP      A4126

; ------------------------------------------

A41ED:  LD      HL,L4501
        DEC     (HL)
        CALL    A42E0
        LD      HL,L4501
        INC     (HL)
        CALL    A42E8
       
        LD      HL,L450E
        LD      BC,L4505
        LD      DE,L4505
        CALL    A42D4
        JP      A4126

; ------------------------------------------

A420A:  LD      A,(L4504)
        LD      HL,(W_451B)
        ADD     A,(HL)
        INC     HL
        ADD     A,(HL)
        INC     HL
        LD      (W_451B),HL
        AND     1FH
        CP      13H
        JP      C,A4220
        SUB     0DH
A4220:  LD      (L4504),A
        RET    

; ------------------------------------------

A4224:  XOR     A
        LD      C,0             ; лучше:  LD C,A
A4227:  CALL    A4233
        INC     C
        LD      A,25
        CP      C
        RET     Z
        XOR     A
        JP      A4227

; ------------------------------------------

A4233:  CALL    A438F
        LD      E,A
        LD      A,(HL)
        CP      '.'
        RET     Z
        LD      A,E
        INC     A
        CP      20
        JP      Z,A4246
        JP      A4233

; ------------------------------------------

        RET    

; ------------------------------------------

A4246:  LD      A,(RESULT)
        ADD     A,1
        DAA    
        LD      (RESULT),A
       
        CALL    PR_RES          ; вывод результата
       
        PUSH    BC
        DEC     C
A4254:  XOR     A
        CALL    A438F
       
        LD      DE,22
        EX      DE,HL
        ADD     HL,DE
       
        LD      B,22
A425F:  LD      A,(DE)
        LD      (HL),A
        INC     HL
        INC     DE
        DEC     B
        JP      NZ,A425F
       
        DEC     C
        JP      NZ,A4254
       
        CALL    A404F
       
        LD      C,7
        CALL    COUT_C                  ; BEEP

        LD      DE,0FF80H               ; -128
        LD      HL,(TORM1)
        ADD     HL,DE
        LD      A,H
        OR      A
        JP      Z,A4285                 ; если достигнута максим.скорость

        LD      (TORM1),HL              ; повышение уровня игры
        LD      (TORM2),HL

A4285:  POP     BC
        RET    

; ------------------------------------------

A4287:  defb    21H
TORM1:  DW      457H
        LD      (W_4519),HL
       
        XOR     A
        LD      (L4502),A
        LD      A,8
        LD      (L4501),A
        CALL    A420A
A4299:  LD      A,(L4504)
        LD      L,A
        LD      H,0
        LD      E,L
        LD      D,H
        ADD     HL,HL           ; *2
        ADD     HL,HL           ; *4    
        ADD     HL,HL           ; *8
        ADD     HL,DE           ; *9
        LD      DE,TABLE
        ADD     HL,DE
       
        LD      DE,L450E
        LD      BC,L4505
A42AF:  LD      A,(HL)
        LD      (DE),A
        LD      (BC),A
        CP      0FFH            ; конец образа фигурки ?
        JP      Z,A42C6
       
        INC     DE
        INC     BC
        INC     HL
        LD      A,(L4502)
        ADD     A,(HL)
        LD      (DE),A
        LD      (BC),A
        INC     DE
        INC     BC
        INC     HL
        JP      A42AF

; ------------------------------------------

A42C6:  CALL    A42E8
        XOR     A
        LD      (L44FF),A
        RET    

; ------------------------------------------

        LD      DE,L450E
        LD      BC,L4505
A42D4:  LD      A,(HL)
        LD      (DE),A
        LD      (BC),A
        CP      0FFH            ; конец образа фигурки ?
        RET     Z
        INC     HL
        INC     DE
        INC     BC
        JP      A42D4

; ------------------------------------------

A42E0:  LD      HL,L4505
        LD      E,'.'
        JP      A42ED

; ------------------------------------------

A42E8:  LD      HL,L450E
        LD      E,4AH
A42ED:  PUSH    DE
A42EE:  LD      A,(HL)
        CP      0FFH            ; конец образа фигурки ?
        JP      Z,POPDE
        INC     HL
        LD      C,(HL)
        INC     HL
        LD      (W_4517),HL
        CALL    A438F
        POP     DE
        PUSH    DE
        LD      (HL),E
        LD      B,E
        CALL    A43B1
        LD      HL,(W_4517)
        JP      A42EE
       
; ------------------------------------------

POPDE:  POP     DE
        RET
       
; ------------------------------------------

A430C:  LD      HL,L450E
A430F:  LD      A,(HL)
        INC     HL
        LD      C,(HL)
        INC     C
        LD      (HL),C
        INC     HL
        PUSH    HL
        CALL    A438F
        LD      A,(HL)
        CP      0CAH
        JP      Z,A432E
        CP      '^'
        JP      Z,A432E
        POP     HL
        LD      A,(HL)
        CP      0FFH            ; конец образа фигурки ?
        JP      Z,A4378
        JP      A430F

; ------------------------------------------

A432E:  LD      A,(L4502)
        OR      A
        JP      NZ,A435D
A4335:
        LD      HL,PROMPT
        CALL    MSSG

A433B:  CALL    RCONIN
        CP      '0'
        JP      C,A433B
        CP      '0'+10
        JP      NC,A433B
       
        ADD     A,2
        AND     0FH
        LD      H,A
        LD      L,0
        LD      (TORM1),HL
        LD      (TORM2),HL

        LD      A,3BH
        LD      (YFF5D),A       ; это больше нигде не используется
       
        JP      A402F

; ------------------------------------------

A435D:  LD      E,0CAH
        LD      HL,L4505
        CALL    A42ED
        LD      HL,L4505
        LD      DE,L450E
        LD      BC,L450E
        CALL    A42D4
        POP     HL
        LD      A,1
        LD      (L44FF),A
        RET    

; ------------------------------------------

A4378:  CALL    A42E0
        CALL    A42E8
        LD      HL,L450E
        LD      BC,L4505
        LD      DE,L4505
        CALL    A42D4
        LD      HL,L4502
        INC     (HL)
        RET    

; ------------------------------------------

A438F:  PUSH    AF
        PUSH    BC
       
        LD      H,0
        LD      L,C
        ADD     HL,HL           ; *2
        LD      D,H
        LD      E,L
        ADD     HL,HL           ; *4
        LD      B,H
        LD      C,L
        ADD     HL,HL           ; *8
        ADD     HL,HL           ; *16
        ADD     HL,BC           ; *20
        ADD     HL,DE           ; *22
        LD      C,A
        LD      A,(L4501)
        ADD     A,C
        INC     A
        ADD     A,L
        LD      L,A
        LD      A,0
        ADC     A,H
        LD      H,A
        LD      DE,VEKRAN
        ADD     HL,DE
       
        POP     BC
        POP     AF
        RET    

; ------------------------------------------

A43B1:  PUSH    AF

        PUSH    BC
        INC     A
        ADD     A,0
        LD      L,A
        LD      A,(L4501)
        ADD     A,L
        LD      H,A
        LD      A,C
        ADD     A,0
        LD      L,A
        CALL    POS_HL
        POP     BC
       
        PUSH    BC
        LD      C,B
        CALL    COUT_C
        POP     BC
       
        POP     AF
        RET    

; ------------------------------------------

POS_HL: LD      DE,2020H
        ADD     HL,DE
        LD      (POS),HL
       
        LD      HL,TPOSIT
MSSG:
        LD      C,(HL)
        XOR     A
        OR      C
        RET     Z
       
        PUSH    HL
        CALL    COUT_C
        POP     HL
       
        INC     HL
        JP      MSSG

; ------------------------------------------

PROMPT: defb    1BH,59H,32,32,14
        defb    'wWEDITE SKOROSTX OT 0 DO 9 :',15,0
       
TMODE:  defb    1BH,61H,0CH,1BH,49H,1BH,4DH,0

P_1229: defb    1BH,59H,32+0CH,32+1DH,0

; ------------------------------------------

TABLE:  defb    0,0,1,0,2,0,3,0,0FFH    ; таблица фигурок
        defb    0,0,0,1,0,2,0,3,0FFH
        defb    0,0,0,1,1,0,1,1,0FFH
        defb    0,0,0,1,0,2,1,2,0FFH
        defb    0,2,1,0,1,1,1,2,0FFH
        defb    0,1,0,2,1,0,1,1,0FFH
        defb    0,0,0,1,1,1,1,2,0FFH
        defb    0,0,0,1,0,2,1,0,0FFH
        defb    0,0,1,0,1,1,1,2,0FFH
        defb    0,0,0,1,0,2,1,1,0FFH
        defb    0,1,1,0,1,1,1,2,0FFH
        defb    0,1,1,1,2,1,2,0,0FFH
        defb    0,0,0,1,1,1,2,1,0FFH
        defb    0,0,1,0,2,0,1,1,0FFH
        defb    1,0,0,1,1,1,2,1,0FFH
        defb    0,0,0,1,1,0,2,0,0FFH
        defb    0,0,1,0,2,0,2,1,0FFH
        defb    0,1,1,1,1,0,2,0,0FFH
        defb    0,0,1,0,1,1,2,1,0FFH

; ------------------------------------------

A44BE:  LD      HL,VEKRAN       ; рисуем символьный стакан на 0451EH
        LD      C,25
A44C3:  PUSH    BC
        CALL    STAK1L
        POP     BC
        DEC     C
        JP      NZ,A44C3
       
        LD      B,22            ; рисуем дно стакана
A44CE:  LD      (HL),'^'
        INC     HL
        DEC     B
        JP      NZ,A44CE
       
        LD      (HL),2AH        ; '*'  ???
        INC     HL
        LD      (HL),2EH        ; '.'
        RET    

; ------------------------------------------

STAK1L: LD      (HL),'>'        ; рисуем одну строку виртуального стакана
        INC     HL
        LD      B,20            ; ширина виртуального стакана
A44E0:  LD      (HL),'.'
        INC     HL
        DEC     B
        JP      NZ,A44E0
        LD      (HL),'<'
        INC     HL
        RET    

; ------------------------------------------

COUT_C: LD      A,(RESULT)
        CP      10
        JP      NC,COUT1
        LD      A,C
        AND     7FH
        LD      C,A
COUT1:  JP      CONOUT

; ------------------------------------------

TPOSIT: defb    1BH,59H
POS:    defb    0,0,0

L44FF:  defb    0,0
L4501:  defb    0
L4502:  defb    0,0
L4504:  defb    0                       ; возможно номер фигуры в таблице

L4505:  defb    0,0,0,0,0,0,0,0,0
L450E:  defb    0,0,0,0,0,0,0,0,0

W_4517: DW      0000
W_4519: DW      0000                    ; позиция фигурки на экране
W_451B: DW      0000

RESULT: defb    0               ; хранится в BCD-виде

VEKRAN:                         ; виртуальный экран (это адрес 451E)
        rept    130             ; 25 строк с шагом 22
        defb    0
        endm
       
        .dephase
       
        END



_________________
***
barsik
barsik
Мастер+

Сообщения : 458
Дата регистрации : 2016-11-10
Откуда : С-Петербург

Посмотреть профиль

Вернуться к началу Перейти вниз

ПО ТЕТРИС (TETRIS) Empty Re: ПО ТЕТРИС (TETRIS)

Сообщение  Спонсируемый контент

5

Спонсируемый контент


Вернуться к началу Перейти вниз

Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения