Subversion Repositories NedoOS

Rev

Rev 591 | Rev 765 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download

  1.         DEVICE ZXSPECTRUM128
  2.         include "../../_sdk/sys_h.asm"
  3.  
  4. atm=1
  5.  
  6. TEXBMP=1
  7. NTEXPGS=5
  8. NSPRPGS=2;1
  9.  
  10. SPOIL6BSTACK=0x4000
  11. STACK=SPOIL6BSTACK-6
  12. INTSTACK=0x3e80
  13. ;scrbase=0x8000
  14.  
  15. addhlbc=1 ;ьюцэю scrhgt=200 ш т юфэющ ёЄЁрэшЎх
  16. customscales=0;1
  17.  
  18. IMPOSSIBLECOLOR=0x01 ;(╫+┴)
  19.  
  20. muz=0x8000
  21.  
  22.         org PROGSTART
  23. begin
  24.         ld sp,STACK
  25.         OS_HIDEFROMPARENT
  26.  
  27.         ld e,0
  28.         OS_SETGFX ;e=0:EGA, e=2:MC, e=3:6912, e=6:text ;+SET FOCUS ;e=-1: disable gfx (out: e=old gfxmode)
  29.         ld e,0 ;color byte
  30.         OS_CLS
  31.         ld e,1
  32.         OS_SETSCREEN
  33.         ld e,0 ;color byte
  34.         OS_CLS
  35.                
  36.                 ld de,res_path
  37.                 OS_CHDIR
  38.  
  39.         OS_GETMAINPAGES
  40. ;dehl=эюьхЁр ёЄЁрэшЎ т 0000,4000,8000,c000
  41.         ld a,l
  42.         LD (pgscalersnum),A
  43.         ld a,h
  44.         ;push af;LD (pg8000),A
  45.         ld (pgmuznum),a
  46.  
  47.         ;OS_GETSCREENPAGES
  48. ;de=ёЄЁрэшЎ√ 0-ую ¤ъЁрэр (d=ёЄрЁ°р ), hl=ёЄЁрэшЎ√ 1-ую ¤ъЁрэр (h=ёЄрЁ°р )
  49.         ;ld a,l
  50.         ;ld (setpgs_scr_low),a
  51.         ;xor e
  52.         ;ld (setpgs_scr_xor),a
  53.         ;ld a,d
  54.         ;xor e
  55.         ;ld (setpgs_scr_high_xor_low),a
  56.  
  57.         ;OS_NEWPAGE
  58.         ;ld a,e
  59.         ;ld (pgmuznum),a
  60.         ;SETPG32KLOW
  61.         ld hl,wasmuz
  62.         ld de,muz
  63.         ld bc,wasmuz_sz
  64.         ldir
  65.         call muz
  66.        
  67.         ;pop af ;LD a,(pg8000)
  68.         ;SETPG32KLOW
  69.  
  70.         OS_NEWPAGE
  71.         ld a,e
  72.         ld (pgmapnum),a
  73.  
  74.         if TEXBMP
  75.         ld de,texfilename
  76.         call openfile_skipbmpheader
  77. ;b=handle
  78.         ld hl,ttexpgs+NTEXPGS-1
  79.         ld c,NTEXPGS
  80. gettexpgs0
  81.         push bc
  82.         push hl
  83.         call ldpgrecodebmp
  84.        
  85.         push de
  86.        
  87. ;2. яЁюїюфшь яю hl яЁрт√щ тхЁїэшщ ЄЁхєуюы№эшъ ЄхъёЄєЁ√, р яю de - ыхт√щ эшцэшщ, ьхэ хь шї ьхёЄрьш
  88.         ld hl,0x4000
  89. gettexpgsrot0
  90.         push hl    
  91.         ld b,64
  92. gettexpgsrot1
  93.         push bc
  94.         push hl
  95.         ld d,h
  96.         ld e,l
  97. gettexpgsrot2
  98.         ld c,(hl)
  99.         ld a,(de)
  100.         ld (hl),a
  101.         ld a,c
  102.         ld (de),a
  103.         inc l
  104.         inc d
  105.         djnz gettexpgsrot2
  106.         pop hl
  107.         inc l
  108.         inc h
  109.         pop bc
  110.         djnz gettexpgsrot1
  111.         pop hl
  112.         ld a,l
  113.         add a,64
  114.         ld l,a
  115.         jr nz,gettexpgsrot0
  116.        
  117.         pop de
  118.         pop hl
  119.         ld (hl),e
  120.         dec hl
  121.         pop bc
  122.         dec c
  123.         jr nz,gettexpgs0
  124.  
  125.         OS_CLOSEHANDLE
  126.  
  127.         ld de,sprfilename
  128.         call openfile_skipbmpheader
  129. ;b=handle
  130.         ld hl,ttexpgs+NTEXPGS+NSPRPGS-1
  131.         ld c,NSPRPGS
  132. getsprpgs0
  133.         push bc
  134.         push hl
  135.         call ldpgrecodebmp        
  136.         pop hl
  137.         ld (hl),e
  138.         dec hl
  139.         pop bc
  140.         dec c
  141.         jr nz,getsprpgs0
  142.  
  143.         OS_CLOSEHANDLE
  144.  
  145.         else
  146.        
  147.         ld hl,ttexpgs
  148.         ld b,5
  149. getttexpgs0
  150.         push bc
  151.         push hl
  152.         OS_NEWPAGE
  153.        
  154.         push de
  155.         ld a,e
  156.         SETPG16K
  157.         ld de,texfilename
  158.         OS_OPENHANDLE
  159.         push bc
  160.         ld de,0x4000 ;addr
  161.         ld hl,0x4000 ;size
  162.         OS_READHANDLE
  163.         pop bc
  164.         OS_CLOSEHANDLE
  165.        
  166.         ld hl,texfilenamenum
  167.         inc (hl)
  168.         pop de
  169.        
  170.         pop hl
  171.         ld (hl),e
  172.         inc hl
  173.         pop bc
  174.         djnz getttexpgs0
  175.  
  176.         endif
  177.  
  178.  
  179.         LD HL,tID
  180. REtID0  LD A,(HL)
  181.         add a,ttexpgs&0xff
  182.         ld e,a
  183.         adc a,ttexpgs/256
  184.         sub e
  185.         ld d,a
  186.         ld a,(de)
  187. ;basepggfx=$+1
  188. ;        ADD A,0
  189.         LD (HL),A
  190.         INC L
  191.         INC L
  192.         jr NZ,REtID0
  193.  
  194.         ld ix,tscales
  195.         ld hl,tscales_rev
  196.         ld b,64
  197. revscale0
  198.         push bc
  199.         push hl
  200.         ld c,(ix)
  201.         inc ix
  202.         ld b,(ix)
  203.         inc ix
  204.         ld de,256
  205. ;фхыхэшх
  206. ;DE=+-7.8;BC=+7.8
  207. ;DE=DE/BC=+-8.7/2
  208.     ;BC ёюїЁрэ хЄё !!!
  209.         call MONDIV
  210.         pop hl
  211.         sla e
  212.         rl d
  213.         ld (hl),e
  214.         inc hl
  215.         ld (hl),d
  216.         inc hl
  217.         pop bc
  218.         djnz revscale0
  219.  
  220.         ;YIELD ;шэрўх эх єёЄрэютшЄё  тшфхюЁхцшь ш ярышЄЁр?
  221.  
  222.         if 1==0 ;эхы№ч  яЁш шэЄхЁяюы Ўшш
  223.         ld hl,tlogd2sca
  224. retlogd2sca0
  225.         sla (hl)
  226.         sla (hl)
  227.         inc l
  228.         jr nz,retlogd2sca0
  229.         endif
  230.  
  231.         call genscalers
  232.  
  233.         call swapimer
  234.  
  235.         call TEXCODEGO
  236.        
  237.         call swapimer
  238.        
  239.         call shutay        
  240.         QUIT
  241.  
  242.         if 1==0
  243. setpgsscr40008000_current
  244.         call getuser_scr_low_cur
  245.         SETPG16K
  246.         call getuser_scr_high_cur
  247.         SETPG32KLOW
  248.         ret
  249.  
  250. setpgsscr40008000
  251.         call getuser_scr_low
  252.         SETPG16K
  253.         call getuser_scr_high
  254.         SETPG32KLOW
  255.         ret
  256.  
  257. setpgscrlow4000
  258.         call getuser_scr_low
  259.         SETPG16K
  260.         ret
  261.  
  262. setpgscrhigh4000
  263.         call getuser_scr_high
  264.         SETPG16K
  265.         ret
  266.         endif
  267.  
  268. getuser_scr_low
  269. getuser_scr_low_patch=$+1
  270. getuser_scr_low_patchN=0xff&(user_scr0_low^user_scr1_low)
  271.         ld a,(user_scr1_low) ;ok
  272.         ret
  273.  
  274. getuser_scr_high
  275. getuser_scr_high_patch=$+1
  276. getuser_scr_high_patchN=0xff&(user_scr0_high^user_scr1_high)
  277.         ld a,(user_scr1_high) ;ok
  278.         ret
  279.  
  280. getuser_scr_low_cur
  281. getuser_scr_low_cur_patch=$+1
  282. getuser_scr_low_cur_patchN=0xff&(user_scr0_low^user_scr1_low)
  283.         ld a,(user_scr0_low) ;ok
  284.         ret
  285.  
  286. getuser_scr_high_cur
  287. getuser_scr_high_cur_patch=$+1
  288. getuser_scr_high_cur_patchN=0xff&(user_scr0_high^user_scr1_high)
  289.         ld a,(user_scr0_high) ;ok
  290.         ret
  291.  
  292. changescrpg_current
  293. ;        ld a,(setpgs_scr_low)
  294. ;setpgs_scr_scrxor=$+1
  295. ;        xor 0
  296. ;        ld (setpgs_scr_low),a
  297.         ld hl,getuser_scr_low_patch
  298.         ld a,(hl)
  299.         xor getuser_scr_low_patchN
  300.         ld (hl),a
  301.         ld hl,getuser_scr_high_patch
  302.         ld a,(hl)
  303.         xor getuser_scr_high_patchN
  304.         ld (hl),a
  305.         ld hl,getuser_scr_low_cur_patch
  306.         ld a,(hl)
  307.         xor getuser_scr_low_cur_patchN
  308.         ld (hl),a
  309.         ld hl,getuser_scr_high_cur_patch
  310.         ld a,(hl)
  311.         xor getuser_scr_high_cur_patchN
  312.         ld (hl),a
  313.  
  314.         ld a,1
  315. curscrnum=$+1
  316.         xor 0
  317.         ld ($-1),a
  318.          ;add a,a
  319.          ;add a,a
  320.          ;add a,a
  321.          ;ld (imer_curscreen_value),a
  322.         ret
  323.        
  324. changescrpg
  325.         ;jr $
  326.         call changescrpg_current
  327.         ;ld (curscrnum_physical),a
  328.         ld e,a
  329.         OS_SETSCREEN
  330.         ret
  331.  
  332. openfile_skipbmpheader
  333.         OS_OPENHANDLE
  334.         push bc
  335.         ld de,bmpbuf;0x4000 ;addr
  336.         ld hl,14+2;0x0076 ;size
  337.         OS_READHANDLE ;b=handle
  338.         pop bc
  339.         push bc
  340.         ld de,bmpbuf;0x4000 ;addr
  341.         ld hl,(bmpbuf+14)
  342.         dec hl
  343.         dec hl
  344.         OS_READHANDLE ;b=handle
  345.         pop bc
  346.         push bc
  347.         ld de,bmpbuf;0x4000 ;addr
  348.         ld hl,4*16;0x0076 ;size
  349.         OS_READHANDLE ;b=handle
  350.         pop bc
  351.         ret
  352.  
  353. ldpgrecodebmp
  354.         push bc
  355.         OS_NEWPAGE
  356.         ld a,e
  357.         SETPG16K
  358.         pop bc ;b=handle
  359.         push de
  360.        
  361.         ld de,0x4000 ;addr
  362.         ld hl,0x4000 ;size
  363.         OS_READHANDLE
  364.  
  365.         ld hl,0x4000
  366.         ld d,trecolor/256
  367. gettexpgsrecode0
  368.         ld e,(hl)
  369.         ld a,(de)
  370.         ld (hl),a
  371.         inc hl
  372.         bit 7,h
  373.         jr z,gettexpgsrecode0
  374.  
  375. ;яютхЁэєЄ№ ЄхъёЄєЁ√ эр 90 уЁрфєёют (фы  ёЄхэ, р фы  ёяЁрщЄют яЁюёЄю яхЁхтхЁэєЄ№?)
  376. ;1. яхЁхтюЁюЄ ЄхъёЄєЁ
  377.         ld hl,0x4000
  378.         ld de,0x4000+0x3f00
  379.         ld b,32
  380. gettexpgsturn0
  381. gettexpgsturn1
  382.         ld c,(hl)
  383.         ld a,(de)
  384.         ld (hl),a
  385.         ld a,c
  386.         ld (de),a
  387.         inc l
  388.         inc e
  389.         jr nz,gettexpgsturn1
  390.         inc h
  391.         dec d
  392.         djnz gettexpgsturn0
  393.        
  394.         pop de ;e=pg
  395.         ret
  396.  
  397. shutay
  398.         ld de,0xe00
  399. shutay0
  400.         dec d
  401.         ld bc,0xfffd
  402.         out (c),d
  403.         ld b,0xbf
  404.         out (c),e
  405.         jr nz,shutay0
  406.         ret
  407.        
  408. texfilename
  409.         if TEXBMP
  410.         db "wolftex.bmp",0
  411.         else
  412.         db "wolftex.0",0
  413. texfilenamenum=$-2
  414.         endif
  415. sprfilename
  416.         db "wolfspr.bmp",0
  417.  
  418.         align 256
  419. ttexpgs
  420.         ds NTEXPGS+NSPRPGS
  421.  
  422. setpgmap4000
  423. pgmapnum=$+1
  424.         ld a,0
  425.         SETPG16K
  426.         ret
  427.  
  428. swapimer
  429.         di
  430.          ld hl,(0x0026) ;ok
  431.          ld (on_int_0026),hl
  432.         ld de,0x0038
  433.         ld hl,oldimer
  434.         ld bc,3
  435. swapimer0
  436.         ld a,(de)
  437.         ldi ;[oldimer] -> [0x0038]
  438.         dec hl
  439.         ld (hl),a ;[0x0038] -> [oldimer]
  440.         inc hl
  441.         jp pe,swapimer0
  442.         ei
  443.         ret
  444. oldimer
  445.         jp on_int ;чрьхэшЄё  эр ъюф шч 0x0038
  446.         jp 0x0038+3
  447.  
  448. on_int
  449. ;restore stack with de
  450.         ld (on_int_hl),hl
  451.         ld (on_int_sp),sp
  452.         pop hl
  453.         ld (on_int_sp2),sp
  454.         ld (on_int_jp),hl
  455.         ld sp,INTSTACK
  456.         push af
  457.         push bc
  458.         push de
  459.  
  460. ;imer_curscreen_value=$+1
  461. ;         ld a,0
  462. ;         ld bc,0x7ffd
  463. ;         out (c),a
  464.  
  465.         ex de,hl;ld hl,0
  466. on_int_sp=$+1
  467.         ld (0),hl ;тюёёЄрэютшыш чряюЁюЄ√щ ёЄхъ
  468.  
  469. on_int_0026=$+1
  470.         ld hl,0
  471.         ld (0x0026),hl ;тюёёЄрэютшыш чряюЁюЄ√щ ёЄхъ 0x0028 (=40)
  472.  
  473.         push ix
  474.         push iy
  475.         ex af,af'
  476.        exx
  477.        push af
  478.        push bc
  479.        push de
  480.        push hl
  481.        ld a,(curscrnum)
  482.        ld e,a
  483.        OS_SETSCREEN ;т√ч√трхь чфхё№, р эх т Ёрэфюьэюь ьхёЄх, шэрўх фрцх ё юфэющ чрфрўхщ ьюцхь яюыєўшЄ№ эхяЁхфёърчєхьє■ чрфхЁцъє, ъюЄюЁє■ эх ЇшъёшЁєхЄ эр° ЄрщьхЁ? ё эхёъюы№ъшьш чрфрўрьш эрфю єўшЄ√трЄ№ ш ёшёЄхьэ√щ - TODO
  484.        
  485.        if atm
  486.        
  487. curpalette=$+1
  488.        ld de,wolfpal
  489.        OS_SETPAL
  490.        
  491.        ld a,(curpg32klow) ;ok
  492.        push af
  493. pgmuznum=$+1
  494.        ld a,0
  495.        SETPG32KLOW
  496.        call muz+6
  497.        ;TODO music + sound effects in OS_SETMUSIC
  498.        pop af
  499.        SETPG32KLOW
  500.        
  501.        call oldimer ;ei
  502.        
  503.        GET_KEY
  504.        or a
  505.        jr z,$+5
  506.        ld (curkey),a
  507.        
  508.        else
  509. curpg=$+1
  510.        ld a,0
  511.        setpgafast
  512.        endif
  513.        
  514.        pop hl
  515.        pop de
  516.        pop bc
  517.        pop af
  518.        exx
  519.        ex af,af'
  520.         pop iy
  521.         pop ix
  522.        
  523.         ld hl,(timer)
  524.         inc hl
  525.         ld (timer),hl
  526.  
  527.         pop de
  528.         pop bc
  529.         pop af
  530.        
  531. on_int_hl=$+1
  532.         ld hl,0
  533. on_int_sp2=$+1
  534.         ld sp,0
  535.         ;ei
  536. on_int_jp=$+1
  537.         jp 0
  538.  
  539. wolfpal
  540.         dw 0xffff,0x0c0c,0x3f3f,0xdede,0xfefe,0xdfdf,0x4c4c,0xaeae
  541.         dw 0xbdbd,0xfdfd,0xbfbf,0xeded,0x8d8d,0x7d7d,0xecec,0x1f1f
  542.  
  543.         include "WATM2.asm"
  544.  
  545. scale2ytop
  546. ;bc=scale
  547. ;out: de=Y, lx=y
  548.         XOR A
  549.         LD L,A
  550.         ld H,A
  551.         SBC HL,BC ;-scale = -0x40..-0x410
  552.         ADD HL,HL
  553.         ADD HL,HL
  554.         ADD HL,HL
  555.         ADD HL,HL
  556.         ADD HL,HL ;*32 = -0x800..-0x8200
  557.         EXD
  558.         LD LX,E
  559.         LD a,D
  560.         LD D,-1
  561.         ADD A,Ycenter ;0x64
  562.         LD E,A
  563.         ret nc ;jr NC,$+3
  564.         INC D
  565.         ret
  566.  
  567. YtoADDR
  568.        PUSH HL
  569.         LD H,D
  570.         ld L,E
  571.         ADD HL,HL
  572.         ADD HL,HL
  573.         ADD HL,DE ;*5
  574.         ADD HL,HL
  575.         ADD HL,HL
  576.         ADD HL,HL ;*40
  577.         LD DE,scrbase
  578.         ADD HL,DE
  579. ;genX=$+1
  580. ;        LD DE,0
  581. ;        ADD HL,DE
  582.         EXD
  583.        POP HL
  584.         RET
  585.         ;align 256;DS .(-$)
  586. tscales
  587.        IF customscales == 0
  588.         INCBIN "scalesw3" ;ёэрўрыр ьхыъшх
  589.        ELSE
  590.         DS 8,5,0
  591.         DS 7,6,0
  592.         DS 6,7,0
  593.         DS 5,8,0
  594.         DS 4,9,0
  595.         DS 3,10,0
  596.         DS 2,11,0
  597.         DS 1,12,0
  598.         DS 1,13,0
  599.         DS 1,14,0
  600.         DS 1,15,0
  601.         DS 1,16,0
  602.         DS 1,17,0
  603.         DS 1,18,0
  604.         DS 1,19,0
  605.         DS 1,20,0
  606.         DS 1,21,0
  607.         DS 1,22,0
  608.         DS 1,23,0
  609.         DS 1,24,0
  610.         DS 1,25,0
  611.         DS 1,26,0
  612.         DS 1,27,0
  613.         DS 1,28,0
  614.         DS 1,29,0
  615.         DS 1,30,0
  616.         DS 1,31,0
  617.         DS 1,32,0
  618.         DS 1,33,0
  619.         DS 1,34,0
  620.         DS 1,35,0
  621.         DS 1,36,0
  622.         DS 1,38,0
  623.         DS 1,40,0
  624.         DS 1,42,0
  625.         DS 1,44,0
  626.         DISPLAY $-tscales,"=#80"
  627.        ENDIF
  628. tscales_rev
  629.         ds 128
  630.  
  631. tsprites
  632. ;pg,xmid,xleft-1,xright-1
  633.         macro TSPRITES pg,xleft,wid
  634. xright=xleft+wid
  635. xmid=(xleft+xright)/2
  636.         db NTEXPGS+pg
  637.         db xmid/2
  638.         db xleft/2
  639.         db xright/2
  640.         endm
  641. ;TODO эрфю яЁртшы№эю ЎхэЄЁютрЄ№
  642.         ;TSPRITES 0,0,0 ;ID 0 not used
  643.         TSPRITES 0,0,44 ;ID 1
  644.         TSPRITES 0,44,42
  645.         TSPRITES 0,86,36
  646.         TSPRITES 0,122,56
  647.         TSPRITES 0,178,40
  648.         TSPRITES 0,218,48
  649.         TSPRITES 0,266,36
  650.         TSPRITES 0,302,56
  651.         TSPRITES 0,358,38
  652.         TSPRITES 0,396,50 ;10
  653.         TSPRITES 0,448,24
  654.         TSPRITES 1,472,26
  655.  
  656. MONSTAB
  657. ;ZOMBIEMAN stay
  658.         db 1
  659.         db 2
  660.         db 1
  661.         db 2
  662.         db 1
  663.         db 2
  664.         db 0,0
  665. ;ZOMBIEMAN go1
  666.         db 3
  667.         db 4
  668.         db 5
  669.         db 6
  670.         db 3
  671.         db 4
  672.         db 0,0
  673. ;ZOMBIEMAN go2
  674.         db 7
  675.         db 8
  676.         db 9
  677.         db 10
  678.         db 7
  679.         db 8
  680.         db 0,0
  681. ;AMMO
  682.         db 12 ;G
  683.         db 12 ;R
  684.         db 12 ;MEGAHEALTH
  685.         db 12 ;RL
  686.         db 12 ;AMMO
  687.         db 12
  688.         db 0,0
  689. ;STOLB
  690.         db 11
  691.         db 11
  692.         db 11
  693.         db 11
  694.         db 11
  695.         db 11
  696.         db 11
  697.         db 11
  698.  
  699.         if 1==0
  700.         DS ((-$)&7)&0xff
  701. MONSTRS
  702. ;Xx,Yy,TYPEphase,TIMEenergy
  703.         DW #0F80,#AF80,#000,-1;ENEMY
  704.         DW #2680,#A080,#000,64
  705.         DW #0380,#BA80,#000,64
  706.         DW #0780,#B780,#000,64
  707.  
  708.         DW #0F80,#B080,#002,64
  709.         DW #1380,#A080,#000,64
  710.         DW #1380,#AA80,#000,64
  711.         DW #1380,#B280,#000,64
  712.         DW #1380,#B380,#000,64
  713.         DW #1280,#B580,#002,64
  714.         DW #1480,#AB80,#000,64
  715.         DW #1480,#AE80,#002,64
  716.  
  717.         DW #1480,#B080,#002,64
  718.         DW #1480,#B380,#000,64
  719.         DW #1580,#A180,#002,80
  720.         DW #1680,#AD80,#002,90
  721.         DW #1680,#B180,#002,100
  722.         DW #2180,#AD80,#002,10
  723.         DW #2380,#A080,#000,50
  724.         DW #2380,#A580,#002,50
  725.  
  726.         DW #2680,#A480,#003,50
  727.         DW #2680,#B280,#004,50
  728.         DW #2780,#A880,#005,50
  729.         DW #2780,#B180,#003,64
  730.  
  731.         DW #2780,#A380,#100,150
  732.         DW #2080,#A580,#101,100
  733.         DW #2280,#A580,#102,100
  734.         DW #2580,#A080,#103,20
  735.         DW #2080,#A080,#104,40
  736.  
  737.         DW #1380,#A2C0,#200,0
  738.         DW #1380,#A440,#200,0
  739.         DW #1280,#A2C0,#200,0
  740.         DW #1280,#A440,#200,0
  741.         DW #1180,#A2C0,#200,0
  742.         DW #1180,#A440,#200,0
  743.         DW #1080,#A2C0,#200,0
  744.         DW #1080,#A440,#200,0
  745.         DW #0F80,#A2C0,#200,0
  746.         DW #0F80,#A440,#200,0
  747.         DW #0E80,#A2C0,#200,0
  748.         DW #0E80,#A440,#200,0
  749.         DW #0D80,#A2C0,#200,0
  750.         DW #0D80,#A440,#200,0
  751.         DW -1
  752. eNDMONS
  753.         endif
  754.  
  755. level
  756.         DB "W"
  757. gfxnr   DB "0"
  758. muznr   DB "A"
  759. pol     DB #E7
  760. potolok DB #F3
  761. color   DB 7
  762. levname DS 23
  763.         DB 0
  764. monstrs DB 0
  765. prizes  DW 0 ;$$$/10
  766. EXITx   DB 23
  767. EXITy   DB 15+0xA0
  768. yx      DW 0x8080
  769. YX      DW 0xBA08
  770. angle   DW 64
  771. endlev
  772.  
  773.         DS ((-$)&7)&0xff
  774. MONSTRS
  775. ;Xx,Yy,TYPEphase,TIMEenergy
  776.         ;DW -1
  777.  
  778. ;ёхщўрё TYPE ъюфшЁєхЄё  Єръ (ўЄю тшфэю т ЁхфръЄюЁх: ўЄю т TYPE):
  779. ;31: тїюф
  780. ;29: т√їюф
  781. ;32..63: goods (58..63: gold 5,10,20,50,100,200)
  782. ;1..28: monsters
  783.  
  784. ;        ds 64
  785. ;INTSTACK
  786.  
  787.         align 256
  788. trecolor
  789. ;%00003210 => %.3...210
  790.         dup 256
  791. _3=$&8
  792. _210=$&7
  793. _3L=($>>4)&8
  794. _210L=($>>4)&7
  795.         db (_3L*0x08) + (_210L*0x01) + (_3*0x10) + (_210*0x08)
  796.         edup
  797.  
  798. bmpbuf
  799.  
  800.         display "free before stack=",0x3e00-$
  801.  
  802.         ds 0x8000-$
  803.  
  804.        IF atm
  805.         ;ORG #C000;,pgscalers
  806.         ;ds 0xc000-$
  807.         ;INCBIN "scalers"
  808. wasmuz
  809.         incbin "DOOM-MUS" ;TODO load
  810. wasmuz_sz=$-wasmuz
  811.  
  812.         include "genscale.asm"
  813.  
  814.         display "WASMAP=",$
  815. WASMAP
  816.         INCBIN "mapatm.E" ;TODO load
  817. szMAP=$-WASMAP
  818.  
  819. res_path
  820.         defb "wolf3d",0
  821.      
  822.  
  823.        else ;~atm
  824. WASMAP
  825.         INCBIN "map48.E"
  826. szMAP=$-WASMAP
  827.         ;ORG #C000,pgscale
  828.         ds 0xc000-$
  829.       IF 1
  830.         INCBIN "48kblock" ;with 48K textures
  831.       ELSE
  832.        IF scale64
  833.        IF scale64 == 3
  834.         INCBIN "tscale3"
  835.        ELSE
  836.         INCBIN "tscale2"
  837.        ENDIF
  838.        ELSE
  839.         INCBIN "tscale"
  840.        ENDIF
  841.       ENDIF
  842.        ENDIF
  843. end
  844.  
  845.         ;display "End=",end
  846.         ;display "Free after end=",/d,#c000-end
  847.         ;display "Size ",/d,end-begin," bytes"
  848.        
  849.         savebin "wolf3d.com",begin,end-begin
  850.        
  851.         ;LABELSLIST "..\us\user.l"
  852.