Subversion Repositories NedoOS

Rev

Rev 1009 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log

Rev 1009 Rev 1620
Line 15... Line 15...
15
        ld bc,UVSCROLL_HGT/64*4 ;4*4 ;на высоту экрана
15
        ld bc,UVSCROLL_HGT/64*4 ;4*4 ;на высоту экрана
16
        ldir
16
        ldir
17
 
17
 
18
        jp uvscroll_gencall
18
        jp uvscroll_gencall
19
 
19
 
20
       if 0
20
       if UVSCROLL_USETILES
21
uvscroll_preparetiles
21
uvscroll_preparetiles
22
;tile gfx
22
;tile gfx
23
        OS_NEWPAGE
23
        OS_NEWPAGE
24
        ld a,e
24
        ld a,e
25
        ld (pgtilegfx),a
25
        ld (pgtilegfx),a
26
        SETPG32KLOW
26
        SETPG8000
27
        OS_NEWPAGE
27
        OS_NEWPAGE
28
        ld a,e
28
        ld a,e
29
        ld (pgtilegfx2),a
29
        ld (pgtilegfx2),a
30
        SETPG32KHIGH
30
        SETPGC000
31
 
31
 
32
        ld de,tilebmpfilename
32
        ld de,tilebmpfilename
33
        call openstream_file
33
        call openstream_file
34
        call readbmphead_pal
34
        call readbmphead_pal
35
        call closestream_file
35
        call closestream_file
Line 77... Line 77...
77
uvscroll_preparetilemap
77
uvscroll_preparetilemap
78
;tilemap
78
;tilemap
79
        OS_NEWPAGE
79
        OS_NEWPAGE
80
        ld a,e
80
        ld a,e
81
        ld (pgmetatilemap),a
81
        ld (pgmetatilemap),a
82
        SETPG32KHIGH
82
        SETPGC000
83
 
83
 
84
        ld de,tilemapfilename
84
        ld de,tilemapfilename
85
        call openstream_file
85
        call openstream_file
86
        ld de,0xc000;0xe000
86
        ld de,0xc000;0xe000
87
        ld hl,0x4000;0x2000
87
        ld hl,0x4000;0x2000
Line 224... Line 224...
224
        push de
224
        push de
225
        push hl
225
        push hl
226
 
226
 
227
        push hl
227
        push hl
228
        ld a,(pgmetatilemap)
228
        ld a,(pgmetatilemap)
229
        SETPG32KHIGH
229
        SETPGC000
230
        ld hl,bgpush_bmpbuf;TILEMAP
230
        ld hl,bgpush_bmpbuf;TILEMAP
231
        push hl
231
        push hl
232
        ld b,UVSCROLL_WID/16
232
        ld b,UVSCROLL_WID/16
233
uvscroll_gettilemapline0
233
uvscroll_gettilemapline0
234
        ld a,(de)
234
        ld a,(de)
Line 274... Line 274...
274
        pop bc
274
        pop bc
275
        djnz uvscroll_showmetatilemap0
275
        djnz uvscroll_showmetatilemap0
276
        ret
276
        ret
277
        endif
277
        endif
278
 
278
 
-
 
279
       if UVSCROLL_USEBMP
279
uvscroll_preparebmp
280
uvscroll_preparebmp
280
;de=filename
281
;de=filename
281
        call openstream_file
282
        call openstream_file
282
 
283
 
283
        call readbmphead_pal
284
        call readbmphead_pal
Line 305... Line 306...
305
        dec bc
306
        dec bc
306
        ld a,b
307
        ld a,b
307
        or c
308
        or c
308
        jr nz,uvscroll_ldbmp0
309
        jr nz,uvscroll_ldbmp0
309
        call closestream_file
310
        call closestream_file
-
 
311
       endif
310
uvscroll_restorememmap
312
uvscroll_restorememmap
311
        call RestoreMemMap3
313
        call RestoreMemMap3
312
        jp setpgsmain40008000
314
        jp setpgsmain40008000
313
 
315
 
314
uvscroll_setscroll
316
uvscroll_setscroll
315
;hl=y
317
;hl=y
316
;de=x
318
;de=x
317
        srl d
319
        srl d
318
        rr e
320
        rr e
319
       ld bc,200-1
321
       ld bc,SCRHGT-1;200-1
320
       add hl,bc
322
       add hl,bc
321
        ld a,h
323
        ld a,h
322
        cpl
324
        cpl
323
        and 1
325
        and 1
324
        ld h,a
326
        ld h,a
Line 342... Line 344...
342
        ld a,e
344
        ld a,e
343
        call uvscroll_scroll_x
345
        call uvscroll_scroll_x
344
        pop af
346
        pop af
345
        jp uvscroll_scroll_y
347
        jp uvscroll_scroll_y
346
 
348
 
347
       if 0
349
       if UVSCROLL_USETILES
348
uvscroll_scrolltiles
350
uvscroll_scrolltiles
349
;scroll by metatile
351
;scroll by metatile
350
;hx=delta y (>0: go up)
352
;hx=delta y (>0: go up)
351
;lx=delta x (>0: go left)
353
;lx=delta x (>0: go left)
352
        call uvscroll_scrolltilemap ;делаем этот ldir/lddr только один раз для двух координат
354
        call uvscroll_scrolltilemap ;делаем этот ldir/lddr только один раз для двух координат
Line 827... Line 829...
827
         ;bit 7,h
829
         ;bit 7,h
828
         ;jr z,$+5
830
         ;jr z,$+5
829
         ;ld hl,0 ;сбивает фазу относительно allscroll!
831
         ;ld hl,0 ;сбивает фазу относительно allscroll!
830
        jr uvscroll_scroll_y_q
832
        jr uvscroll_scroll_y_q
831
 
833
 
832
       if 0
834
       if UVSCROLL_USETILES
833
;процедура скроллинга буфера tilemap (содержит номера тайлов в видимой части карты, снизу вверх, справа налево)
835
;процедура скроллинга буфера tilemap (содержит номера тайлов в видимой части карты, снизу вверх, справа налево)
834
uvscroll_scrolltilemap
836
uvscroll_scrolltilemap
835
;hx=delta y (>0: go up)
837
;hx=delta y (>0: go up)
836
;lx=delta x (>0: go left)
838
;lx=delta x (>0: go left)
837
;скроллим ровно вдвое больше!!!
839
;скроллим ровно вдвое больше!!!
Line 990... Line 992...
990
;заполнение одной двойной строки TILEMAP из карты
992
;заполнение одной двойной строки TILEMAP из карты
991
;de=tilemap+
993
;de=tilemap+
992
;hl=metatilemap+
994
;hl=metatilemap+
993
pgmetatilemap=$+1
995
pgmetatilemap=$+1
994
        ld a,0
996
        ld a,0
995
        SETPG32KHIGH
997
        SETPGC000
996
        push de
998
        push de
997
        ld bc,TILEMAPWID/2
999
        ld bc,TILEMAPWID/2
998
uvscroll_filltilemap_line0
1000
uvscroll_filltilemap_line0
999
        ld a,(hl)
1001
        ld a,(hl)
1000
        ld (de),a
1002
        ld (de),a
Line 1009... Line 1011...
1009
uvscroll_filltilemap_column
1011
uvscroll_filltilemap_column
1010
;заполнение одного двойного столбца TILEMAP из карты
1012
;заполнение одного двойного столбца TILEMAP из карты
1011
;de=tilemap+
1013
;de=tilemap+
1012
;hl=metatilemap+
1014
;hl=metatilemap+
1013
        ld a,(pgmetatilemap)
1015
        ld a,(pgmetatilemap)
1014
        SETPG32KHIGH
1016
        SETPGC000
1015
        push de ;tilemap+
1017
        push de ;tilemap+
1016
        ld de,METATILEMAPWID
1018
        ld de,METATILEMAPWID
1017
        exx
1019
        exx
1018
        pop hl ;tilemap+
1020
        pop hl ;tilemap+
1019
        ld de,TILEMAPWID-1
1021
        ld de,TILEMAPWID-1
Line 1044... Line 1046...
1044
        inc hl
1046
        inc hl
1045
        inc hl
1047
        inc hl
1046
        inc hl
1048
        inc hl
1047
        inc hl
1049
        inc hl
1048
        ld a,(hl) ;gfx pages
1050
        ld a,(hl) ;gfx pages
1049
        SETPG32KLOW
1051
        SETPG8000
1050
        exx
1052
        exx
1051
        ld hx,uvscroll_pushbase/256-1
1053
        ld hx,uvscroll_pushbase/256-1
1052
        jp uvscroll_pushbase;(ix)
1054
        jp uvscroll_pushbase;(ix)
1053
 
1055
 
1054
uvscroll_nextgfxpg
1056
uvscroll_nextgfxpg
Line 1059... Line 1061...
1059
        inc hl
1061
        inc hl
1060
        inc hl
1062
        inc hl
1061
        inc hl
1063
        inc hl
1062
        inc hl
1064
        inc hl
1063
        ld a,(hl) ;gfx pages
1065
        ld a,(hl) ;gfx pages
1064
        SETPG32KLOW
1066
        SETPG8000
1065
        exx
1067
        exx
1066
        ld hx,uvscroll_pushbase/256
1068
        ld hx,uvscroll_pushbase/256
1067
        jp (ix)
1069
        jp (ix)
1068
 
1070
 
1069
;делаем push для одного слоя
1071
;делаем push для одного слоя
1070
;в каждых 256 байтах такой код:
1072
;в каждых 256 байтах такой код:
1071
;ld bc:push bc *UVSCROLL_NPUSHES ;de=0!!!
1073
;ld bc:push bc *UVSCROLL_NPUSHES ;de=0!!!
1072
uvscroll_genpush
1074
uvscroll_genpush
1073
       push ix
1075
       push ix
1074
        call genpush_newpage ;заказывает страницу, заносит в tpushpgs, a=pg
1076
        call genpush_newpage ;заказывает страницу, заносит в tpushpgs, a=pg
1075
        SETPG32KLOW
1077
        SETPG8000
1076
        ld hl,uvscroll_pushbase
1078
        ld hl,uvscroll_pushbase
1077
        ld bc,UVSCROLL_HGT
1079
        ld bc,UVSCROLL_HGT
1078
uvscroll_genpush0
1080
uvscroll_genpush0
1079
        push bc
1081
        push bc
1080
        ld a,h
1082
        ld a,h
Line 1129... Line 1131...
1129
         push bc
1131
         push bc
1130
uvscroll_nnnext_last_sp=$+1
1132
uvscroll_nnnext_last_sp=$+1
1131
        ld sp,0 ;надо две копии для рисования 0..39 или 1..40 столбцов (sp+1) *2 копии для +0/0x2000 - копии можно разместить в тех же страницах, но с другими L адресами
1133
        ld sp,0 ;надо две копии для рисования 0..39 или 1..40 столбцов (sp+1) *2 копии для +0/0x2000 - копии можно разместить в тех же страницах, но с другими L адресами
1132
uvscroll_nnnext_last_pg=$+1
1134
uvscroll_nnnext_last_pg=$+1
1133
        ld a,0 ;следующая страница вызывалки
1135
        ld a,0 ;следующая страница вызывалки
1134
        SETPG32KHIGH ;сама себя заменяет!!!
1136
        SETPGC000 ;сама себя заменяет!!!
1135
        inc hx ;адрес следующего ldpush
1137
        inc hx ;адрес следующего ldpush
1136
        ld h,uvscroll_callbase/256+1 ;адрес следующего nnnext_i
1138
        ld h,uvscroll_callbase/256+1 ;адрес следующего nnnext_i
1137
        jp (ix)
1139
        jp (ix)
1138
uvscroll_nnnext_last_sz=$-uvscroll_nnnext_last
1140
uvscroll_nnnext_last_sz=$-uvscroll_nnnext_last
1139
 
1141
 
Line 1147... Line 1149...
1147
;edup
1149
;edup
1148
 
1150
 
1149
uvscroll_gencall
1151
uvscroll_gencall
1150
        ld ix,tcallpgs
1152
        ld ix,tcallpgs
1151
        call uvscroll_gencall_newpage ;заказывает страницу, заносит в tpushpgs, a=pg
1153
        call uvscroll_gencall_newpage ;заказывает страницу, заносит в tpushpgs, a=pg
1152
        SETPG32KHIGH
1154
        SETPGC000
1153
        ;ld l,0x00
1155
        ;ld l,0x00
1154
        call uvscroll_gencall_startpage
1156
        call uvscroll_gencall_startpage
1155
        ld de,UVSCROLL_SCRSTART+(UVSCROLL_SCRWID/8)        
1157
        ld de,UVSCROLL_SCRSTART+(UVSCROLL_SCRWID/8)        
1156
        ld b,UVSCROLL_SCRHGT;-1
1158
        ld b,UVSCROLL_SCRHGT;-1
1157
uvscroll_gencall0
1159
uvscroll_gencall0
Line 1177... Line 1179...
1177
        ld l,0xc0
1179
        ld l,0xc0
1178
        call uvscroll_gencall_pgend
1180
        call uvscroll_gencall_pgend
1179
        pop de
1181
        pop de
1180
 
1182
 
1181
        pop af
1183
        pop af
1182
        SETPG32KHIGH
1184
        SETPGC000
1183
        call uvscroll_gencall_startpage
1185
        call uvscroll_gencall_startpage
1184
        jr uvscroll_gencall_nonewpgq
1186
        jr uvscroll_gencall_nonewpgq
1185
uvscroll_gencall_nonewpg
1187
uvscroll_gencall_nonewpg
1186
        push de
1188
        push de
1187
        push hl
1189
        push hl
Line 1220... Line 1222...
1220
        jr nz,uvscroll_gencall_end0
1222
        jr nz,uvscroll_gencall_end0
1221
       
1223
       
1222
;в последней странице (ix-1) не хватает блока pgend
1224
;в последней странице (ix-1) не хватает блока pgend
1223
;скопируем его из предыдущей страницы
1225
;скопируем его из предыдущей страницы
1224
        ld a,(ix-2)
1226
        ld a,(ix-2)
1225
        SETPG32KHIGH
1227
        SETPGC000
1226
        ld hl,uvscroll_callbase+0x3f00
1228
        ld hl,uvscroll_callbase+0x3f00
1227
        ld de,bgpush_bmpbuf
1229
        ld de,bgpush_bmpbuf
1228
        ld bc,256
1230
        ld bc,256
1229
        push bc
1231
        push bc
1230
        push de
1232
        push de
1231
        push hl
1233
        push hl
1232
        ldir
1234
        ldir
1233
        ld a,(ix-1)
1235
        ld a,(ix-1)
1234
        SETPG32KHIGH
1236
        SETPGC000
1235
        pop de
1237
        pop de
1236
        pop hl
1238
        pop hl
1237
        pop bc
1239
        pop bc
1238
        ldir
1240
        ldir
1239
        ret
1241
        ret
Line 1362... Line 1364...
1362
        ld l,a
1364
        ld l,a
1363
        adc a,h
1365
        adc a,h
1364
        sub l
1366
        sub l
1365
        ld h,a
1367
        ld h,a
1366
        ld a,(hl)
1368
        ld a,(hl)
1367
        SETPG32KHIGH
1369
        SETPGC000
1368
        exx ;hl'=список страниц графики =f((x2scroll+layer)&3 + ((yscroll/64)*4))
1370
        exx ;hl'=список страниц графики =f((x2scroll+layer)&3 + ((yscroll/64)*4))
1369
         ld a,e ;yscroll (corrected для зацикливания)
1371
         ld a,e ;yscroll (corrected для зацикливания)
1370
        or 0xc0
1372
        or 0xc0
1371
        ld h,a
1373
        ld h,a
1372
        add a,UVSCROLL_SCRHGT
1374
        add a,UVSCROLL_SCRHGT
Line 1390... Line 1392...
1390
        inc hl
1392
        inc hl
1391
        inc hl
1393
        inc hl
1392
        inc hl
1394
        inc hl
1393
        inc hl
1395
        inc hl
1394
        ld a,(hl)
1396
        ld a,(hl)
1395
        SETPG32KHIGH
1397
        SETPGC000
1396
        exx
1398
        exx
1397
        ld h,0xc0
1399
        ld h,0xc0
1398
        ld a,e
1400
        ld a,e
1399
        add a,h
1401
        add a,h
1400
        jr nc,uvscroll_patcher0q ;a=-64..-1 = Npatchinlastpg-0x40
1402
        jr nc,uvscroll_patcher0q ;a=-64..-1 = Npatchinlastpg-0x40
Line 1445... Line 1447...
1445
        ld l,a
1447
        ld l,a
1446
        adc a,h
1448
        adc a,h
1447
        sub l
1449
        sub l
1448
        ld h,a
1450
        ld h,a
1449
        ld a,(hl) ;gfx pages
1451
        ld a,(hl) ;gfx pages
1450
        SETPG32KLOW
1452
        SETPG8000
1451
      ld a,(tcallpgs)
1453
      ld a,(tcallpgs)
1452
      SETPG32KHIGH
1454
      SETPGC000
1453
        exx
1455
        exx
1454
        ld a,e ;yscroll (corrected для зацикливания)
1456
        ld a,e ;yscroll (corrected для зацикливания)
1455
        and 63
1457
        and 63
1456
        add a,0x80
1458
        add a,0x80
1457
        ld hx,a
1459
        ld hx,a
Line 1540... Line 1542...
1540
        ld l,a
1542
        ld l,a
1541
        adc a,h
1543
        adc a,h
1542
        sub l
1544
        sub l
1543
        ld h,a
1545
        ld h,a
1544
        ld a,(hl)
1546
        ld a,(hl)
1545
        SETPG32KHIGH
1547
        SETPGC000
1546
        exx ;hl'=список страниц графики =f((x2scroll+layer)&3 + ((yscroll/64)*4))
1548
        exx ;hl'=список страниц графики =f((x2scroll+layer)&3 + ((yscroll/64)*4))
1547
         ld a,e ;yscroll (corrected для зацикливания)
1549
         ld a,e ;yscroll (corrected для зацикливания)
1548
        or 0xc0
1550
        or 0xc0
1549
        ld h,a
1551
        ld h,a
1550
;конец (крайнее правое положение L при вызове, т.е. x2scroll=0) = 256-(UVSCROLL_SCRNPUSHES*4)
1552
;конец (крайнее правое положение L при вызове, т.е. x2scroll=0) = 256-(UVSCROLL_SCRNPUSHES*4)
Line 1575... Line 1577...
1575
        inc hl
1577
        inc hl
1576
        inc hl
1578
        inc hl
1577
        inc hl
1579
        inc hl
1578
        inc hl
1580
        inc hl
1579
        ld a,(hl)
1581
        ld a,(hl)
1580
        SETPG32KHIGH
1582
        SETPGC000
1581
        exx
1583
        exx
1582
        ld d,0xc0;h,0xc0
1584
        ld d,0xc0;h,0xc0
1583
        ld a,lx
1585
        ld a,lx
1584
        add a,d;h
1586
        add a,d;h
1585
        jr nc,uvscroll_columndrawer0q ;a=-64..-1 = Nlinesinlastpg-0x40
1587
        jr nc,uvscroll_columndrawer0q ;a=-64..-1 = Nlinesinlastpg-0x40
Line 1596... Line 1598...
1596
        ;ld bc,UVSCROLL_LINESTEP
1598
        ;ld bc,UVSCROLL_LINESTEP
1597
uvscroll_columndrawer_patch1=$+1
1599
uvscroll_columndrawer_patch1=$+1
1598
        jp uvscroll_columndrawer
1600
        jp uvscroll_columndrawer
1599
        endif
1601
        endif
1600
 
1602
 
1601
       if 0
1603
       if UVSCROLL_USETILES
1602
        macro DRAWTILELAYERDOWN
1604
        macro DRAWTILELAYERDOWN
1603
        dup 7
1605
        dup 7
1604
        ld a,(bc)
1606
        ld a,(bc)
1605
        ld (de),a
1607
        ld (de),a
1606
        inc b
1608
        inc b
Line 1676... Line 1678...
1676
;hl=tilemap+
1678
;hl=tilemap+
1677
;de=ldpush+ (4000,8000)
1679
;de=ldpush+ (4000,8000)
1678
;^^^делать SETPG один раз для горизонтальной линии тайлов и 1 раз за 8 тайлов для вертикальной линии тайлов (8 тайлов не может вылететь за вторую страницу, т.к. мы рисуем всегда с ровного X/8=x/64)
1680
;^^^делать SETPG один раз для горизонтальной линии тайлов и 1 раз за 8 тайлов для вертикальной линии тайлов (8 тайлов не может вылететь за вторую страницу, т.к. мы рисуем всегда с ровного X/8=x/64)
1679
;выводить линию тайлов: сначала весь первый слой, потом весь второй и т.д.
1681
;выводить линию тайлов: сначала весь первый слой, потом весь второй и т.д.
1680
        ld a,(pgtilegfx) ;TODO по зоне
1682
        ld a,(pgtilegfx) ;TODO по зоне
1681
        SETPG32KHIGH
1683
        SETPGC000
1682
        ld a,(ix)
1684
        ld a,(ix)
1683
        SETPG16K
1685
        SETPG4000
1684
        ld a,(ix+4)
1686
        ld a,(ix+4)
1685
        SETPG32KLOW
1687
        SETPG8000
1686
drawtiles_hor_block_tilegfx=$+1
1688
drawtiles_hor_block_tilegfx=$+1
1687
        ld b,TILEGFX/256 ;+0x08, если Y=y/8 нечётное
1689
        ld b,TILEGFX/256 ;+0x08, если Y=y/8 нечётное
1688
         push bc
1690
         push bc
1689
        push de
1691
        push de
1690
        push hl
1692
        push hl
1691
        call drawtiles_hor_layer
1693
        call drawtiles_hor_layer
1692
        pop hl
1694
        pop hl
1693
        pop de
1695
        pop de
1694
        ld a,(ix+1)
1696
        ld a,(ix+1)
1695
        SETPG16K
1697
        SETPG4000
1696
        ld a,(ix+5)
1698
        ld a,(ix+5)
1697
        SETPG32KLOW
1699
        SETPG8000
1698
         pop bc
1700
         pop bc
1699
         push bc
1701
         push bc
1700
         set 5,b
1702
         set 5,b
1701
        push de
1703
        push de
1702
        push hl
1704
        push hl
1703
        call drawtiles_hor_layer
1705
        call drawtiles_hor_layer
1704
        pop hl
1706
        pop hl
1705
        pop de
1707
        pop de
1706
        ld a,(pgtilegfx2) ;TODO по зоне
1708
        ld a,(pgtilegfx2) ;TODO по зоне
1707
        SETPG32KHIGH
1709
        SETPGC000
1708
        ld a,(ix+2)
1710
        ld a,(ix+2)
1709
        SETPG16K
1711
        SETPG4000
1710
        ld a,(ix+6)
1712
        ld a,(ix+6)
1711
        SETPG32KLOW
1713
        SETPG8000
1712
         pop bc
1714
         pop bc
1713
         push bc
1715
         push bc
1714
        push de
1716
        push de
1715
        push hl
1717
        push hl
1716
        call drawtiles_hor_layer
1718
        call drawtiles_hor_layer
1717
        pop hl
1719
        pop hl
1718
        pop de
1720
        pop de
1719
        ld a,(ix+3)
1721
        ld a,(ix+3)
1720
        SETPG16K
1722
        SETPG4000
1721
        ld a,(ix+7)
1723
        ld a,(ix+7)
1722
        SETPG32KLOW
1724
        SETPG8000
1723
         pop bc
1725
         pop bc
1724
         set 5,b
1726
         set 5,b
1725
drawtiles_hor_layer
1727
drawtiles_hor_layer
1726
;8 tiles = 1489 (не считая call-ret)
1728
;8 tiles = 1489 (не считая call-ret)
1727
;*4 слоя*(6+4, считая вертикальные) блоков по 8 = 59560 > 10% от отрисовки при скролле на 8 пикс за фрейм
1729
;*4 слоя*(6+4, считая вертикальные) блоков по 8 = 59560 > 10% от отрисовки при скролле на 8 пикс за фрейм
Line 1833... Line 1835...
1833
;iy=tilemap+
1835
;iy=tilemap+
1834
;de=ldpush+ (4000,8000)
1836
;de=ldpush+ (4000,8000)
1835
;^^^делать SETPG один раз для горизонтальной линии тайлов и 1 раз за 8 тайлов для вертикальной линии тайлов (8 тайлов не может вылететь за вторую страницу, т.к. мы рисуем всегда с ровного X/8=x/64)
1837
;^^^делать SETPG один раз для горизонтальной линии тайлов и 1 раз за 8 тайлов для вертикальной линии тайлов (8 тайлов не может вылететь за вторую страницу, т.к. мы рисуем всегда с ровного X/8=x/64)
1836
;выводить линию тайлов: сначала весь первый слой, потом весь второй и т.д.
1838
;выводить линию тайлов: сначала весь первый слой, потом весь второй и т.д.
1837
        ld a,(pgtilegfx) ;TODO по зоне
1839
        ld a,(pgtilegfx) ;TODO по зоне
1838
        SETPG32KHIGH
1840
        SETPGC000
1839
        ld a,(ix)
1841
        ld a,(ix)
1840
        SETPG16K
1842
        SETPG4000
1841
        ld a,(ix+4)
1843
        ld a,(ix+4)
1842
        SETPG32KLOW
1844
        SETPG8000
1843
drawtiles_ver_block_tilegfx=$+1
1845
drawtiles_ver_block_tilegfx=$+1
1844
        ld h,TILEGFX/256 ;+0x10, если X=x/8 нечётное
1846
        ld h,TILEGFX/256 ;+0x10, если X=x/8 нечётное
1845
        ld l,d
1847
        ld l,d
1846
        call drawtiles_ver_layer
1848
        call drawtiles_ver_layer
1847
        dec hy
1849
        dec hy
1848
        ld a,(ix+1)
1850
        ld a,(ix+1)
1849
        SETPG16K
1851
        SETPG4000
1850
        ld a,(ix+5)
1852
        ld a,(ix+5)
1851
        SETPG32KLOW
1853
        SETPG8000
1852
         set 5,h
1854
         set 5,h
1853
        ld d,l
1855
        ld d,l
1854
        call drawtiles_ver_layer
1856
        call drawtiles_ver_layer
1855
        dec hy
1857
        dec hy
1856
        ld a,(pgtilegfx2) ;TODO по зоне
1858
        ld a,(pgtilegfx2) ;TODO по зоне
1857
        SETPG32KHIGH
1859
        SETPGC000
1858
        ld a,(ix+2)
1860
        ld a,(ix+2)
1859
        SETPG16K
1861
        SETPG4000
1860
        ld a,(ix+6)
1862
        ld a,(ix+6)
1861
        SETPG32KLOW
1863
        SETPG8000
1862
         res 5,h
1864
         res 5,h
1863
        ld d,l
1865
        ld d,l
1864
        call drawtiles_ver_layer
1866
        call drawtiles_ver_layer
1865
        dec hy
1867
        dec hy
1866
        ld a,(ix+3)
1868
        ld a,(ix+3)
1867
        SETPG16K
1869
        SETPG4000
1868
        ld a,(ix+7)
1870
        ld a,(ix+7)
1869
        SETPG32KLOW
1871
        SETPG8000
1870
         set 5,h
1872
         set 5,h
1871
        ld d,l
1873
        ld d,l
1872
drawtiles_ver_layer
1874
drawtiles_ver_layer
1873
;
1875
;
1874
;c000: metatile gfx
1876
;c000: metatile gfx