Накипело. Считай новый юзер-кодер

Programs, sources, embedded, demomaking, whatsoever related to subj :)

Postby acidrain » 13 Sep 2014, 19:27

Вернувшись на спек и реально забыв все, как делается и кодится на спеке, стал писать прогу, планы были грандиозные, но!
То ли я совсем туту (хотя на другом железе (авт) я то делаю и все работает), толи что то не так я делаю портах.

Я пока пытаюсь включить атм экран 320*200*16
страницами щелкать научился, а вот с экраном результат один
https://yadi.sk/i/J5dUURFwbRioD

Сам код не стоит оценивать по грамотности/гомнокоду, скорее 2е чем первое
мне важен сам принцип, а не вылизывание пока что.
https://yadi.sk/i/7DLXJ2CObRiqX

И вообще, мне уже помогали опытные люди, даже их процедуры вкл экрана дают ту же самую картинку ))
acidrain
 
Posts: 89
Joined: 19 Oct 2010, 14:40
Group: Registered users

Postby DimkaM » 14 Sep 2014, 16:08

Как вариант:
#F7F7– для окна #C000..#FFFF.
Запись в данный порт меняет страницу в каком либо окне текущей (активной)
карты памяти. При этом неактивная карта памяти остаётся неизменной. Какая
карта памяти активна, задаёт бит 4 порта #7FFD.
Внимание! При записи в этот порт остаётся неизменным режим подмены младших
бит номера страницы ОЗУ (бит «dos7ffd» порта #xFF7)
.
Однако, запись в #x7F7
безусловно включает ОЗУ в окне (очищает бит «ramnrom» порта #xFF7)
Пример здесь: http://forum.nedopc.com/viewtopic.php?p=24525#p24525
т.е. тебе сначала надо настроить окно с000-ффф:
ld a,#7f
LD BC,#FFF7
out (c),a
потом спокойно щёлкать пагами. Если ненастраивать и при этом включен 128к(бит «dos7ffd») режым, то ОЙ


Щас ещё попробую повтыкать в твой код
N>"Идите нахуй" со своей политикой...
DimkaM
 
Posts: 1010
Joined: 24 Mar 2010, 12:42
Location: г.Щёлково М.О.
Group: Registered users

Postby DimkaM » 14 Sep 2014, 16:16

Ещё момент, у тебя:
ORG #6000

и при этом, скорее всего, включена 5 пага в очко 4000-7ффф.
потом ты включаешь 5 пагу в с000-фффф и пишыш туда чёта.
То есть ты можешь затереть код который щас исполняется
N>"Идите нахуй" со своей политикой...
DimkaM
 
Posts: 1010
Joined: 24 Mar 2010, 12:42
Location: г.Щёлково М.О.
Group: Registered users

Postby DimkaM » 14 Sep 2014, 16:42

ага, проверил в эмуле, у тебя страницы не щёлкаются.
Сделай в начале проги:
DimkaM wrote:т.е. тебе сначала надо настроить окно с000-ффф:
ld a,#7f
LD BC,#FFF7
out (c),a

и ORG смени на всякий пожарный. твой код себя вроде не затирает, но может.
и стек хз где у тебя.
Code: Select all
...
      ORG 0x8000

        DI
        ld sp,#c000
        XOR     A               ;SHADOW PORTS _FALSE_
        CALL    SHADOW
        LD      BC,VIDEO
        OUT     (C),A

        LD      A,TRUE
        CALL    SHADOW
        LD      A,#8            ;TURBO + 320*200*16 SCREEN
        LD      BC,VIDSHAD
        OUT     (C),A

      ld a,#7f
      LD BC,#FFF7
      out (c),a

        LD      BC,40*200       ;CLEARS SCREEN
        LD      HL,#C000
        LD      DE,#2000
LP1
        LD      A,~1
        CALL    PAGECH3
...

так вроде чёта пишет в экран, но чёта не пойму чего пишет, стирает всё сначала, потом столбики рисует.

экспериментируй в унриле http://forum.nedopc.com/viewtopic.php?p=25530#p25530
N>"Идите нахуй" со своей политикой...
DimkaM
 
Posts: 1010
Joined: 24 Mar 2010, 12:42
Location: г.Щёлково М.О.
Group: Registered users

Postby DimkaM » 14 Sep 2014, 17:03

DimkaM wrote:и ORG смени на всякий пожарный. твой код себя вроде не затирает, но может.

а нет, стек вроде затирается чтоли непойму.
вощем. ORG на 8000 поставь
N>"Идите нахуй" со своей политикой...
DimkaM
 
Posts: 1010
Joined: 24 Mar 2010, 12:42
Location: г.Щёлково М.О.
Group: Registered users

Postby DimkaM » 14 Sep 2014, 17:13

Ещё ты включаешь прерывания, а в 4000-7ффф 5 пага, а бейсик-обработчик прерываний туда чтото пишет и может срать в экран
как вариант включить озу в нулевое очко и вписать в 0х38 EI RET
N>"Идите нахуй" со своей политикой...
DimkaM
 
Posts: 1010
Joined: 24 Mar 2010, 12:42
Location: г.Щёлково М.О.
Group: Registered users

Postby acidrain » 14 Sep 2014, 20:07

Спасибо, Дим, буду пробовать. Мне уже было не удобно тебе писать с такими вопросами)))
acidrain
 
Posts: 89
Joined: 19 Oct 2010, 14:40
Group: Registered users

Postby acidrain » 14 Sep 2014, 20:44

Возникает вопрос, чего он не работает на полной карте памяти, те порт ф7ф7. Та я еще не пробовал, чуть позже. Ну и насколько я понимаю, страницу 1 и 5 я вкл в адресное пространство с000. Она никак не должна быть по адресу 4000. Стэк ниже 6000, адрес с 6000 свободен. Дебагил стсом.
acidrain
 
Posts: 89
Joined: 19 Oct 2010, 14:40
Group: Registered users

Postby acidrain » 14 Sep 2014, 21:02

Может тут что то с портом 7ффд сделать надо, экран какой нить 1 или 0 выбрать...
acidrain
 
Posts: 89
Joined: 19 Oct 2010, 14:40
Group: Registered users

Postby DimkaM » 14 Sep 2014, 21:38

У тебя 5 пага подключена с 4000 изначально, ерс ее тута подключил. Потом ты ее с С000 подключаешь, то есть она и там и там одновременно.

А так да, если хочешь грузится с 6000, то включай второй экран и юзай соответственно другие страницы.
N>"Идите нахуй" со своей политикой...
DimkaM
 
Posts: 1010
Joined: 24 Mar 2010, 12:42
Location: г.Щёлково М.О.
Group: Registered users

Next

Return to Coding

Who is online

Users browsing this forum: No registered users and 5 guests