Page 1 of 14

Ёбаный спермакулятор

PostPosted: 17 Feb 2013, 18:10
by lvd
Ебический сабж, падла блядская, при загрузке SNAпшота из анрыла, нахуй, включает режим пентаговна (ноувейт), а после ресета молча возвертается в +3 режим. Если ручками после загрузки выбрать +3, он ресетится, ёбаная тарантайка. Что делать? Снапшоты умею делать токо в анрыле, как этому блядству сказать, чтоб не переключался???

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

Re: Ёбаный спермакулятор

PostPosted: 17 Feb 2013, 22:26
by нолька
дык вроде внутри снапшота прописывается модель памяти (пентагон, атм, +2 +3 ...) отсюда и такая борода. сабж по идее не при чем

Re: Ёбаный спермакулятор

PostPosted: 17 Feb 2013, 23:23
by DimkaM
нолька wrote:внутри снапшота прописывается модель памяти

Не замечал такого, тока 48к и 128к вроде можно узнать из снапа

Re: Ёбаный спермакулятор

PostPosted: 17 Feb 2013, 23:26
by g0blinish
http://zxmodules.de/fileformats/snaformat.html

Документация пиздит гойворит по-другому.

Re: Ёбаный спермакулятор

PostPosted: 17 Feb 2013, 23:28
by DimkaM
lvd wrote: при загрузке SNAпшота из анрыла, нахуй, включает режим пентаговна
будем считать что оно криво поломанная :D . Ибо изначально считается что сабж покруче унрила. Если я за чёта заплатил деньги, то по дефолту я буду пиарить оное. Или я мудаг что заплатил бабло за гавно?!

Re: Ёбаный спермакулятор

PostPosted: 17 Feb 2013, 23:50
by DimkaM
Точно нету там инфы. Наковырял у себя исходник запуска снапов. Есть там и косяки, регистр R не востанавливается(нолька говорил как, но я чёта забил) и надобы восстановление FF-странички, ибо тама у савелия эмуляторы тыр-досов.
Code: Select all
startsna
.file=MEM_FREE
   call get_fno.name
   F_OPEN .file,hl,FA_OPEN_EXISTING|FA_READ
   CHK_ERR_RET
   ;грузим заголовок SNA
   ld hl,.lsna.NUM   ;тут вернётся кол-во
   push hl             ;прочитанных байт
   ld hl,27            ;заголовок 27 байт
   push hl
   ld bc,.lsna:ld de,.file
   F_READ              ;читаем
   pop bc,bc              ;снимем не нужное
   ld d,5^0xff          ;будем грузить в пятую стр.
   call .load4x4
   ld d,2^0xff              ;и во вторую тоже
   call .load4x4
   ld d,0^0xff              ;а вот тут хер знает в какую
   call .load4x4        ;попробуем в нулевую
   ld hl,.lsna.NUM   ;тут вернётся кол-во
   push hl             ;прочитанных байт
   ld hl,4:push hl     ;заголовок 4 байта
   ld bc,.lsna.RPC  ;сюда грузим второй заголовок sna
   ld de,.file
   F_READ              ;читаем
   pop bc,bc           ;снимаем
   ld hl,(.lsna.NUM)   ;кол-во прочитанных байт
   ld a,h              ;проверим на ноль
   or l
   jr nz,.l6           ;если не, то образ 128кб
   ld a,#10            ;7ффд для 48к
   ld (.lsna.P7FFD),a
   xor a
   ld (.lsna.B3),a        ;сохраняем
   ld (.st_sp+1),sp       ;сохранение рс
   ld sp,(.lsna.RSP)
   pop hl:ld (.lsna.RPC),hl
   ld (.lsna.RSP),sp
.st_sp ld sp,0
   jr .sna_l7           ;обходим загрузку 128к
.l6
   ld a,(.lsna.P7FFD)  ;смотрим 7ффд
   and %111            ;отсекаем лишнее
   xor 0xff
   ld (.lsna.B3),a        ;сохраняем
   cp 0xff        ;смотрим нужно ли загр.
   jr z,.sna_l5   ;нулевую стр.
   ld bc,mem.b2   ;тваю мать, промахнулись
   xor 0xff       ;нада перекинуть в нужную
   out (c),a           ;и загр. нулевую
   ld hl,0xc000
   ld bc,0x4000
   ld de,0x8000
   ldir
   ld d,0xff
   call .load4x4
.sna_l5
   ld a,(.lsna.B3)
   ld d,1^0xff
   cp d
   call nz,.load4x4
   ld a,(.lsna.B3)
   ld d,3^0xff
   cp d
   call nz,.load4x4
   ld a,(.lsna.B3)
   ld d,4^0xff
   cp d
   call nz,.load4x4
   ld a,(.lsna.B3)
   ld d,6^0xff
   cp d
   call nz,.load4x4
   ld a,(.lsna.B3)
   ld d,7^0xff
   cp d
   call nz,.load4x4
.sna_l7
   F_CLOSE .file
   ld bc,mem.b1:ld a,0:out (c),a
   ld de,0x4066+.toFFpage-.rst66
   ld hl,.toFFpage
   ld bc,.endFFpage-.toFFpage
   ldir
   ei:halt
   jp 0x4066+.toFFpage-.rst66

.toFFpage
   ld a,(.lsna.SIM):im 0
   or a:jr z,.ff_ei
   im 1:dec a:jr z,.ff_ei
   im 2
.ff_ei
   ld a,(.lsna.IFF2):and 4:jr nz,.ff_nmi
   di
.ff_nmi
   ld bc,0x3ff7
   ld a,0x83
   out (c),a
   ld a,8:out (0xbf),a
   xor a:out (0xbf),a
   halt
.rst66
   disp 0x66
   ld a,1:out (0xbf),a
   ld bc,0x7ff7   ;настраиваем памяТь
   ld a,0x7a:out (c),a
   ld b,0xbf:ld a,0x7d:out (c),a
   ld b,0xff:ld a,0xff:out (c),a
   ld bc,0xff77:ld a,0x03:out (c),a ;видеомод
   xor a:out (0xbf),a
   ld a,(.lsnap+LSNA.P7FFD)
   ld bc,0x7ffd:out (c),a
   ld sp,(.lsnap+LSNA.RSP)
   ld hl,(.lsnap+LSNA.RPC):push hl
   ld (.lsnap+LSNA.RSP),sp
   ld sp,.lsnap+LSNA.AHL ;забираем регистры
   pop hl,de,bc,af
   exx:exa
   pop hl,de,bc,iy,ix
   ld a,(.lsnap+LSNA.RI):ld i,a
   ld a,(.lsnap+LSNA.BORD):out (0xfe),a ;бордер
   ld sp,.lsnap+LSNA.RAF:pop af
   ld sp,(.lsnap+LSNA.RSP)
   out (0xbe),a
   retn
.lsnap
   ent
.lsna   LSNA
.endFFpage

.load4x4
   ld bc,mem.b3
   out (c),d                    ;установим нужную стр
   ld hl,.lsna.NUM            ;тут вернётся кол-во
   push hl
   ld hl,0x4000
   push hl                      ;кол-во байт #4000
   ld bc,0xc000               ;грузим с этого адреса
   ld de,.file
   F_READ                       ;читаем
   pop bc,bc                    ;снимем не нужное
   ret

Кстати вопросик, ненадоли тут нопов напихать?
Code: Select all
ld a,1:out (0xbf),a
   ld bc,0x7ff7   ;настраиваем памяТь

Re: Ёбаный спермакулятор

PostPosted: 18 Feb 2013, 00:36
by нолька
в .z80 значит есть, я попутал

Re: Ёбаный спермакулятор

PostPosted: 18 Feb 2013, 02:31
by lvd
DimkaM wrote:Ибо изначально считается что сабж покруче унрила.

Щито? ЭТО уёбище с таким мудацким отлачегом -- и покруче?
DimkaM wrote: Или я мудаг что заплатил бабло за гавно?!

Походу да :)

Re: Ёбаный спермакулятор

PostPosted: 18 Feb 2013, 02:44
by g0blinish
lvd wrote:Щито? ЭТО уёбище с таким мудацким отлачегом -- и покруче?

Да ладно, иногда отладчик неплох тащемта.

Re: Ёбаный спермакулятор

PostPosted: 18 Feb 2013, 03:41
by deathsoft
lvd wrote:Ебический сабж, падла блядская, при загрузке SNAпшота

Нахуя ты этот кал юзаешь, когда есть унриал?