?login_element?

Subversion Repositories NedoOS

Rev

Rev 555 | Blame | Compare with Previous | Last modification | View Log | Download

  1.         DEVICE ZXSPECTRUM128
  2.         include "../../_sdk/sys_h.asm"
  3.  
  4. emptyattr=7
  5. FIGBUF_sz=100
  6. scrx=4
  7. scrbase=0x4000+scrx
  8. bgcolor=13
  9. bgcolorbyte=%11101101 ;color13
  10.        
  11.         org PROGSTART
  12. begin
  13.         ld sp,0x4000
  14.         OS_HIDEFROMPARENT
  15.  
  16.         ld e,0 ;EGA
  17.         OS_SETGFX ;e=0:EGA, e=2:MC, e=3:6912, e=6:text ;+SET FOCUS ;e=-1: disable gfx (out: e=old gfxmode)
  18.         ;ld e,0
  19.         ;OS_CLS
  20.  
  21.         ;OS_GETSCREENPAGES
  22. ;de=страницы 0-го экрана (d=старшая), hl=страницы 1-го экрана (h=старшая)
  23.         ;ld a,e
  24.         ;SETPG16K
  25.         ;ld a,d
  26.         ;SETPG32KLOW
  27.  
  28.         ld de,pal
  29.         OS_SETPAL
  30.        
  31.         if 1==0
  32.         ld de,block44
  33.         ld hl,0x4000
  34.         ld bc,0x2010
  35.         call primgega_pixsz
  36.  
  37.         ld bc,0x0100
  38.         ld hl,0x0408
  39.         ld a,%11101101 ;color13
  40. ;a=color byte
  41. ;b=y/8
  42. ;c=x/8
  43. ;h=hgt/8
  44. ;l=wid/8
  45.         call CLW    
  46.         endif
  47.  
  48.         ;ld a,r
  49.         ;add a,3
  50.         ;jr nc,$-2
  51.         ;ld (curlevel),a
  52.  
  53.         ld de,filename
  54.         OS_OPENHANDLE
  55.         or a
  56.         jr nz,noloadini
  57.         push bc
  58.         ld de,SAVEDATA
  59.         ld hl,SAVEDATAsz
  60.         OS_READHANDLE
  61.         pop bc
  62.         OS_CLOSEHANDLE
  63.         jr loadiniq
  64. noloadini
  65.         xor a
  66.         ld (level),a
  67.  
  68.         ;jr loadiniq
  69. restart
  70.         ld a,(level)
  71.         or a
  72.         LD HL,FIG9
  73.         jr z,gameinit_hl
  74.         dec a
  75.         LD HL,FIG10
  76.         jr z,gameinit_hl
  77.         LD HL,FIG11
  78. gameinit_hl
  79.         ;ld (curfield),hl
  80.         ;ld hl,(curfield)
  81.         ld a,(hl)
  82.         inc hl
  83.         ld (cur_nfigures),a
  84.         ld a,(hl)
  85.         inc hl
  86.         ld (curtopmargin),a
  87.         ld a,(hl)
  88.         inc hl
  89.         ld (curbottommargin),a
  90.         ld a,(hl)
  91.         inc hl
  92.         ld (curleftmargin),a
  93.         ld a,(hl)
  94.         inc hl
  95.         ld (currightmargin),a
  96.         ld c,(hl)
  97.         inc hl
  98.         ld b,(hl)
  99.         inc hl
  100.         ld (curtopleft),bc
  101.         ld b,(hl)
  102.         inc hl
  103.         ld c,(hl)
  104.         inc hl
  105.         ld (curtarget),bc
  106.         LD A,(HL)
  107.         ADD A,A
  108.         INC A
  109.         ADD A,A
  110.         INC HL
  111.         ld d,a
  112.         ld a,(HL)
  113.         ADD A,A
  114.         INC A
  115.         ADD A,A
  116.         ld e,a
  117.          ld (curmainboxsizes),de
  118.         INC HL
  119.         CALL COPBUF ;тоже рисует
  120. loadiniq
  121.         ;call setpgs_scr
  122.         ;call cls
  123.         ;call drawfield
  124.         call redraw
  125.        
  126. gameloop
  127.        
  128.         ;call prscore
  129.         ld hl,(FIGBUF)
  130.         ld de,(curtarget)
  131.         or a
  132.         sbc hl,de
  133.         jr z,newlevel
  134.  
  135.         call setpgs_scr
  136.  
  137.         YIELD ;call delay
  138.  
  139.         GET_KEY
  140.          cp key_esc
  141.          jr z,quit
  142.          cp key_redraw
  143.          push af
  144.          call z,redraw
  145.          pop af
  146.         cp 'r'
  147.         jr z,restart
  148.         cp 'a'
  149.         jr c,$+4
  150.         sub 0x20
  151.         ;LD (STARTA_boxname),A
  152.         CP 'A'
  153.         JR C,$+4
  154.         SUB 'A'-':'
  155.         SUB '1'
  156.         JR C,gameloop
  157.         ld hl,cur_nfigures
  158.         CP (hl);10
  159.         JR NC,gameloop
  160.          LD (STARTA_boxname),A
  161.         PUSH AF
  162.         CALL MOVFIG
  163.         POP AF
  164.         PUSH AF
  165.         CALL MOVFIG
  166.         POP AF
  167.         PUSH AF
  168.         CALL MOVFIG
  169.         POP AF
  170.         CALL MOVFIG
  171.         jr gameloop
  172. newlevel
  173.         ld a,(level)
  174.         inc a
  175.         cp 3
  176.         jr nz,$+3
  177.         xor a
  178.         ld (level),a
  179.         jp restart
  180.  
  181. setpgs_scr
  182.         ld a,(user_scr0_low) ;ok
  183.         SETPG16K
  184.         ld a,(user_scr0_high) ;ok
  185.         SETPG32KLOW
  186.         ret
  187.                
  188. quit
  189.         ld de,filename
  190.         OS_CREATEHANDLE
  191.         push bc
  192.         ld de,SAVEDATA
  193.         ld hl,SAVEDATAsz
  194.         OS_WRITEHANDLE
  195.         pop bc
  196.         OS_CLOSEHANDLE
  197.         QUIT
  198.  
  199. redraw
  200.         call setpgs_scr
  201.         call cls
  202.         jp drawfield
  203.  
  204. MOVFIG
  205. ;a=fig
  206.         push af
  207.         YIELD
  208.         pop af
  209.         LD HL,FIGBUF-4
  210. FNDFIG  INC HL
  211.         INC HL
  212.         INC HL
  213.         INC HL
  214.         SUB 1
  215.         JR NC,FNDFIG
  216.         LD B,(HL)
  217.         INC HL
  218.         LD C,(HL)
  219.         INC HL
  220.         LD D,(HL)
  221.         INC HL
  222.         LD E,(HL)
  223.         DEC HL
  224.         DEC HL
  225.         XOR A
  226.         DEC B
  227.         CALL MAYIGO
  228.         JR NZ,NOUP
  229.         CALL TOLIETO
  230.         JR NZ,ICANGO
  231.         INC A
  232. NOUP    INC B
  233.         INC B
  234.         CALL MAYIGO
  235.         JR NZ,NODN
  236.         CALL TOLIETO
  237.         JR NZ,ICANGO
  238.         OR 2
  239. NODN    DEC B
  240.         DEC C
  241.         CALL MAYIGO
  242.         JR NZ,NOLT
  243.         CALL TOLIETO
  244.         JR NZ,ICANGO
  245.         OR 4
  246. NOLT    INC C
  247.         INC C
  248.         CALL MAYIGO
  249.         JR NZ,NORT
  250. ICANGO  PUSH BC
  251.         PUSH DE
  252.         PUSH HL
  253.         LD HL,FIGBUF
  254.         LD DE,FIGBUF2
  255.         LD BC,FIGBUF_sz;100
  256.         LDIR
  257.         POP HL
  258.         POP DE
  259.         POP BC
  260.         PUSH DE
  261.         PUSH BC
  262.         LD A,(HL)
  263.         LD (HL),C
  264.         DEC HL
  265.         LD C,(HL)
  266.         LD (HL),B
  267.         LD B,C
  268.         LD C,A
  269.         EX DE,HL
  270.          ld a,bgcolorbyte
  271.         CALL CLW
  272.         POP BC
  273.         POP HL
  274. STARTA_boxname=$+1
  275.         LD A,"A"
  276.         jp BOX
  277. NORT    LD C,(HL)
  278.         DEC HL
  279.         LD B,(HL)
  280.         INC HL
  281.         DEC B
  282.         RRA
  283.         JR C,ICANGO
  284.         INC B
  285.         INC B
  286.         RRA
  287.         JR C,ICANGO
  288.         DEC B
  289.         DEC C
  290.         RRA
  291.         JR C,ICANGO
  292.         RET
  293.  
  294. TOLIETO
  295.         PUSH BC
  296.         LD (TOLIETO_A),A
  297.         PUSH DE
  298.         DEC HL
  299.         LD A,(HL)
  300.         LD (HL),B
  301.         INC HL
  302.         LD B,(HL)
  303.         LD (HL),C
  304.         INC HL
  305.         LD C,A
  306.         LD A,(HL)
  307.         LD (HL),D
  308.         INC HL
  309.         LD D,(HL)
  310.         LD (HL),E
  311.         LD E,A
  312.         PUSH BC
  313.         PUSH DE
  314.         PUSH HL
  315.         LD HL,FIGBUF
  316.         LD DE,FIGBUF2
  317.         LD B,FIGBUF_sz;100
  318. TOLI0   LD A,(DE)
  319.         INC DE
  320.         CP (HL)
  321.         INC HL
  322.         JR NZ,$+4
  323.         DJNZ TOLI0
  324.         POP HL
  325.         POP DE
  326.         POP BC
  327.         LD (HL),D
  328.         DEC HL
  329.         LD (HL),E
  330.         DEC HL
  331.         LD (HL),B
  332.         DEC HL
  333.         LD (HL),C
  334.         INC HL
  335.         POP DE
  336. TOLIETO_A=$+1
  337.         LD A,0
  338.         POP BC
  339.         RET
  340.  
  341. drawfield
  342.         ld bc,(curtopleft)
  343.         ld hl,(curmainboxsizes)
  344.         ;XOR A
  345.         ;CALL BOX
  346.         ld a,bgcolorbyte
  347.         call CLW
  348.         ld hl,FIGBUF
  349.         xor a ;LD A,"1"
  350. drawfield0
  351.         BIT 7,(HL)
  352.          ret nz
  353.         ld b,(hl)
  354.         inc hl
  355.         ld c,(hl)
  356.         inc hl
  357.         ld d,(hl)
  358.         inc hl
  359.         ld e,(hl)
  360.         inc hl
  361.         PUSH HL
  362.         EX DE,HL
  363.         CALL BOX
  364.         POP HL
  365.         INC A
  366.         ;CP ":"
  367.         ;JR NZ,$+4
  368.         ;LD A,"A"
  369.         JR drawfield0
  370.        
  371. COPBUF
  372.         LD DE,FIGBUF
  373.         ld bc,(curtopleft)
  374. COPBUF0
  375.         BIT 7,(HL)
  376.         LD A,(HL)
  377.          LD (DE),A
  378.          ret nz
  379.         INC HL
  380.         ADD A,A
  381.         ADD A,A
  382.         ADD A,B
  383.         INC A
  384.         LD (DE),A
  385.         INC DE
  386.         LD A,(HL)
  387.         INC HL
  388.         ADD A,A
  389.         ADD A,A
  390.         ADD A,C
  391.         INC A
  392.         LD (DE),A
  393.         INC DE
  394.         LD A,(HL)
  395.         INC HL
  396.         ADD A,A
  397.         ADD A,A
  398.         LD (DE),A
  399.         INC DE
  400.         LD A,(HL)
  401.         INC HL
  402.         ADD A,A
  403.         ADD A,A
  404.         LD (DE),A
  405.         INC DE
  406.         JR COPBUF0
  407.  
  408.         if 1==0
  409. EXBCHL
  410. ;b=y/8
  411. ;c=x/8
  412. ;h=hgt/8
  413. ;l=wid/8
  414.         LD A,B ;y/8
  415.         AND 24
  416.         ADD A,64
  417.         LD E,H ;hgt/8
  418.         LD H,A
  419.         LD A,B ;y/8
  420.         RRCA
  421.         RRCA
  422.         RRCA
  423.          LD B,A ;???
  424.         AND #E0
  425.         OR C ;x/8
  426.         LD C,L ;wid/8
  427.         LD L,A
  428.         LD A,E ;hgt/8
  429.         ADD A,A
  430.         ADD A,A
  431.         ADD A,A
  432.         LD B,A ;hgt
  433. ;hl=scr
  434. ;b=hgt
  435. ;c=wid/8
  436.         RET
  437.         endif
  438.  
  439. BOX
  440. ;a=boxnum (kept)
  441. ;b=y/8
  442. ;c=x/8
  443. ;h=hgt/8
  444. ;l=wid/8
  445.         ld (BOX_num),a
  446.         call coords_to_scr
  447. ;hl=scr
  448. ;b=hgt
  449. ;c=wid/2
  450.         ld a,b
  451.         cp 4*8
  452.         ld a,c
  453.         jr z,BOXy4
  454. BOXy8
  455.         cp 4*4
  456.         ld de,block48
  457.         jr z,BOXok
  458.         ld de,block88
  459.         jr BOXok
  460. BOXy4
  461.         cp 4*4
  462.         ld de,block44
  463.         jr z,BOXok
  464.         ld de,block84
  465. BOXok
  466.         push hl
  467.         call primgega_pixsz
  468.         pop hl
  469.         ld de,40*8 + 1
  470.         add hl,de
  471.         push hl
  472. BOX_num=$+1
  473.         ld hl,0
  474.         add hl,hl
  475.         add hl,hl
  476.         add hl,hl
  477.         add hl,hl
  478.         add hl,hl
  479.         ld bc,digit1
  480.         add hl,bc
  481.         ex de,hl
  482.         pop hl
  483.         ld bc,0x0804
  484.         call primgega_pixsz
  485.         ld a,(BOX_num)
  486.         RET
  487.  
  488. MAYIGO  PUSH BC
  489.         PUSH DE
  490.         PUSH HL
  491.         LD (MAYGO_A),A
  492.         LD A,B
  493.         push hl
  494.         ld hl,curtopmargin
  495.         CP (hl);4
  496.         pop hl
  497.         JR C,MAYGON
  498.         ADD A,D
  499.         push hl
  500.         ld hl,curbottommargin
  501.         CP (hl);21
  502.         pop hl
  503.         JR NC,MAYGON
  504.         LD A,C
  505.         push hl
  506.         ld hl,curleftmargin
  507.         CP (hl);6
  508.         pop hl
  509.         JR C,MAYGON
  510.         ADD A,E
  511.         push hl
  512.         ld hl,currightmargin
  513.         CP (hl);27 ;31 for 11
  514.         pop hl
  515.         JR NC,MAYGON
  516.         DEC HL
  517.         PUSH HL
  518.         POP IX
  519.         LD HL,FIGBUF
  520. MAYGO0  BIT 7,(HL)
  521.         JR NZ,MAYGOQ
  522.         LD A,H
  523.         CP HX
  524.         LD A,LX
  525.         JR NZ,$+5
  526.         CP L
  527.         JR Z,MAYGOK
  528.         LD A,(HL)
  529.         INC HL
  530.         INC HL
  531.         SUB B
  532.         JR C,MAYGOX
  533.         CP D
  534.         JR NC,MAYGOK+2
  535.         JR MAYGOXQ
  536. MAYGOX  DEC A
  537.         ADD A,(HL)
  538.         JR NC,MAYGOK+2
  539. MAYGOXQ DEC HL
  540.         LD A,(HL)
  541.         INC HL
  542.         INC HL
  543.         SUB C
  544.         JR C,MAYGOY
  545.         CP E
  546.         JR NC,MAYGOK+3
  547.         JR MAYGON
  548. MAYGOY  DEC A
  549.         ADD A,(HL)
  550.         JR NC,MAYGOK+3
  551.         JR MAYGON
  552. MAYGOK  INC HL
  553.         INC HL
  554.         INC HL
  555.         INC HL
  556.         JR MAYGO0
  557. MAYGOQ  XOR A
  558.         JR $+3
  559. MAYGON  OR H
  560.         POP HL
  561.         POP DE
  562. MAYGO_A=$+1
  563.         LD A,0
  564.         POP BC
  565.         RET
  566.  
  567. DOWNHL  INC H
  568.         LD A,H
  569.         AND 7
  570.         RET NZ
  571.         LD A,L
  572.         ADD A,32
  573.         LD L,A
  574.         RET C
  575.         LD A,H
  576.         ADD A,-8
  577.         LD H,A
  578.         RET
  579.  
  580. FIG9
  581.         db 9
  582.         db 4,21,6,27 ;top,bottom,left,right margin
  583.         dw 0x0305 ;topleft
  584.         dw 0x0305 + 0x0101 + 0x000c;0x0804 ;target for first box
  585.         dw #504 ;main box
  586.         ;xy,wh
  587.         dw 2,#202
  588.         dw 0,#102
  589.         dw #100,#102
  590.         dw #200,#101
  591.         dw #201,#101
  592.         dw #300,#102
  593.         dw #400,#102
  594.         dw #302,#201
  595.         dw #303,#201
  596.         dw 255
  597. FIG10
  598.         db 10
  599.         db 4,21,6,27 ;top,bottom,left,right margin
  600.         dw 0x0305 ;topleft
  601.         dw 0x0305 + 0x0101 + 0x040c ;target for first box
  602.         dw #504 ;main box
  603.         ;xy,wh
  604.         dw 1,#202
  605.         dw 0,#201
  606.         dw #200,#201
  607.         dw 3,#201
  608.         dw #203,#201
  609.         dw #400,#101
  610.         dw #301,#101
  611.         dw #302,#101
  612.         dw #403,#101
  613.         dw #201,#102
  614.         dw 255
  615. FIG11
  616.         db 11
  617.         db 4,21,6,31 ;top,bottom,left,right margin
  618.         dw 0x0305 ;topleft
  619.         dw 0x0305 + 0x0101 + 0x0010 ;target for first box
  620.         dw #604 ;main box
  621.         ;xy,wh
  622.         dw 2,#202
  623.         dw 0,#102
  624.         dw #100,#102
  625.         dw #200,#101
  626.         dw #300,#101
  627.         dw #400,#102
  628.         dw #500,#102
  629.         dw #402,#201
  630.         dw #403,#201
  631.         dw #302,#102
  632.         dw #202,#102
  633.         dw 255
  634.  
  635. cls
  636.         ld e,0;0xc9;9
  637.         OS_CLS
  638.         if 1==0
  639.         ld hl,#4000
  640.         ld de,#4001
  641.         ld bc,#17ff
  642.         ld (hl),0;#ff
  643.         ldir
  644.         ld hl,#5800
  645.         ld de,#5801
  646.         ld (hl),emptyattr
  647.         ld bc,767
  648.         ldir
  649.         endif
  650.         ret
  651.        
  652.      
  653. prtext
  654. ;bc=координаты
  655. ;hl=text
  656.         ld a,emptyattr
  657.         ld (curattr),a
  658.         ld a,(hl)
  659.         or a
  660.         ret z
  661.         call prcharxy
  662.         inc hl
  663.         inc c
  664.         jr prtext
  665.  
  666. prscore
  667.         ld hl,(curscore)
  668.         ld de,#4000
  669. prnum
  670.         ld bc,1000
  671.         call prdig
  672.         ld bc,100
  673.         call prdig
  674.         ld bc,10
  675.         call prdig
  676.         ld bc,1
  677. prdig
  678.         ld a,'0'-1
  679. prdig0
  680.         inc a
  681.         or a
  682.         sbc hl,bc
  683.         jr nc,prdig0
  684.         add hl,bc
  685.         ;push hl
  686.         ;call prchar
  687.         ;pop hl
  688.         ;ret
  689.        
  690. prchar
  691. ;a=code
  692. ;de=screen
  693.         push de
  694.         push hl
  695.         call prcharin
  696.         pop hl
  697.         pop de
  698.         inc e
  699.         ret
  700.        
  701. calcscraddr
  702. ;de=#4000 + (y&#18)+((y*32)&#ff+x)
  703.         ld a,b ;y
  704.         and #18
  705.         add a,#40
  706.         ld d,a
  707.         ld a,b ;y
  708.         add a,a ;*2
  709.         add a,a ;*4
  710.         add a,a ;*8
  711.         add a,a ;*16
  712.         add a,a ;*32
  713.         add a,c ;x
  714.         ld e,a
  715.         ret
  716.        
  717. calcattraddr
  718.         call calcscraddr
  719.         ;call calcattraddr_fromscr
  720. calcattraddr_fromscr
  721. ;de=#5800 + (y&#18)/8+((y*32)&#ff+x)
  722.         ld a,d
  723.         ;sub #40
  724.         rra
  725.         rra
  726.         rra
  727.         and 3
  728.         add a,#58
  729.         ld d,a ;de=attraddr
  730.         ret
  731.  
  732. prcharxy
  733. ;a=code
  734. ;bc=yx
  735.         push bc
  736.         push de
  737.         push hl
  738.         push af
  739.         call calcscraddr
  740.         pop af
  741.         push de
  742.         call prcharin
  743.         pop de
  744.         call calcattraddr_fromscr
  745. curattr=$+1
  746.         ld a,0
  747.         ld (de),a
  748.         pop hl
  749.         pop de
  750.         pop bc
  751.         ret
  752.        
  753. prcharin
  754.         ld l,a
  755.         ld h,0
  756.         add hl,hl
  757.         add hl,hl
  758.         add hl,hl
  759.         ld bc,font-256;#3c00
  760.         add hl,bc
  761.         ld b,8
  762. prchar0
  763.         ld a,(hl) ;font
  764.         ld (de),a ;scr
  765.         inc hl
  766.         inc d ;+256
  767.         djnz prchar0
  768.         ret
  769.  
  770. coords_to_scr
  771. ;b=y/8
  772. ;c=x/8
  773. ;h=hgt/8
  774. ;l=wid/8
  775.         ex de,hl
  776.         ld h,0
  777.         ld a,b ;y/8
  778.         add a,a
  779.         add a,a
  780.         add a,a
  781.         ld l,a
  782.         ld a,c ;x/8
  783.         ld b,h
  784.         ld c,l
  785.         add hl,hl
  786.         add hl,hl
  787.         add hl,bc
  788.         add hl,hl
  789.         add hl,hl
  790.         add hl,hl ;y*40
  791.         ld bc,scrbase
  792.         add a,c
  793.         ld c,a
  794.         add hl,bc
  795.         ld a,d ;hgt/8
  796.         add a,a
  797.         add a,a
  798.         add a,a
  799.         ld b,a
  800.         ld a,e ;wid/8
  801.         add a,a
  802.         add a,a
  803.         ld c,a
  804. ;hl=scr
  805. ;b=hgt
  806. ;c=wid/2
  807.         ret
  808.  
  809. CLW    
  810. ;a=color byte
  811. ;b=y/8
  812. ;c=x/8
  813. ;h=hgt/8
  814. ;l=wid/8
  815.         ld (CLW_color),a
  816.         call coords_to_scr
  817. ;hl=scr
  818. ;b=hgt
  819. ;c=wid/2
  820. clw0
  821.         push bc
  822.         push hl
  823.         ld de,40
  824. CLW_color=$+1
  825.         ld a,0
  826. clwcolumn0
  827.         ld (hl),a
  828.         add hl,de
  829.         djnz clwcolumn0
  830.         pop hl
  831.         ld a,0x9f;0xa0
  832.         cp h
  833.         ld bc,0x4000
  834.         adc hl,bc
  835.         jp pe,clw0q ;в половине случаев
  836. ;8000->с000 (надо 6000) или a000->e001 (надо 4001)
  837.          inc a
  838.         xor h
  839.         ld h,a
  840. clw0q
  841.         pop bc
  842.         dec c
  843.         jr nz,clw0
  844.         RET
  845.  
  846. primgega_pixsz
  847. ;b=hgt,c=wid
  848. ;de=gfx
  849. ;hl=scr
  850. primgega0
  851.         push bc
  852.         ld hx,b
  853.         push hl
  854.         ld bc,40
  855. primgegacolumn0
  856.         ld a,(de)
  857.         inc de
  858.         ld (hl),a
  859.         add hl,bc
  860.         dec hx
  861.         jr nz,primgegacolumn0
  862.         pop hl
  863.         ld a,0x9f;0xa0
  864.         cp h
  865.         ld bc,0x4000
  866.         adc hl,bc
  867.         jp pe,primgegacolumn0q ;в половине случаев
  868. ;8000->с000 (надо 6000) или a000->e001 (надо 4001)
  869.          inc a
  870.         xor h
  871.         ld h,a
  872. primgegacolumn0q
  873.         pop bc
  874.         dec c
  875.         jr nz,primgega0
  876.         ret
  877.  
  878. ;text
  879. ;        db "Hello world!",0
  880. endtext
  881.         db "Game over!",0
  882. curxy
  883.         dw 0
  884. oldcurxy
  885.         dw 0
  886.    
  887. curscore
  888.         dw 0
  889. font
  890.         incbin "zx.fnt"
  891.  
  892. filename
  893.         db "loyd.ini",0
  894.  
  895.         include "loydgfx.ast"
  896.        
  897. SAVEDATA
  898. level
  899.         db 0
  900. cur_nfigures
  901.         db 9
  902. curtopmargin
  903.         db 4
  904. curbottommargin
  905.         db 21
  906. curleftmargin
  907.         db 6
  908. currightmargin
  909.         db 27 ;31 for 11
  910. curtopleft
  911.         dw 0
  912. curtarget
  913.         dw 0
  914. curmainboxsizes
  915.         dw 0
  916. FIGBUF
  917.         DEFS FIGBUF_sz;100
  918. FIGBUF2
  919.         DEFS FIGBUF_sz;100
  920. SAVEDATAsz=$-SAVEDATA
  921.  
  922. end
  923.  
  924.         ;display "End=",end
  925.         ;display "Free after end=",/d,#c000-end
  926.         ;display "Size ",/d,end-begin," bytes"
  927.        
  928.         savebin "loyd.com",begin,end-begin
  929.        
  930.         ;LABELSLIST "..\us\user.l"
  931.