PROTRACKER372 JP MKPT37 H

From MSX MUSIC WIKI
Revision as of 02:02, 16 February 2020 by Kumokosi (talk | contribs) (Created page with "mkpt37 C��9Т�Уp� ORG #FF32,2 IF0 {4>4+{$}}-#BF43 make DISPLAY "please wait,compile&save ENDIF alasm=0;1 fixtoENV=1 hidearr=1 ts=1 pttfc=0...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

mkpt37 C��9Т�Уp� ORG #FF32,2

       IF0 {4>4+{$}}-#BF43

make DISPLAY "please wait,compile&save

       ENDIF 

alasm=0;1 fixtoENV=1 hidearr=1 ts=1 pttfc=0;#55 PATS=48 SMPX=0;4 SMPY=2;5 SMPH=19;по WBUFTOP=#FFxx INPAGE опр-ет edsmp! skipABC=1;иначе в PLAYER стрелка исчезает cl12345=1 bemol=1 tab=1 ply=0;компиляция с плейером cmpilmnu=0|ply frqrosh=1 mkvol=1 process=1;1 portres=1 goodpak=1 about=1;1 tstPT=0 savset=0 set=1;1 opcompl=0 ead=#5965 ;место inv для прозр.ENV SMPATR=SMPY<5+#5820+SMPX SMPBOT=SMPH<5+SMPATR

      IFN pttfc
       ORG #C000,pttfc

tfcinclude

       INCLUDE "pttfc",#85

tfmmuz

       INCBIN "tat*.t"
      ENDIF 
       ORG #5CDD,0
       DB "PT3.72  B"
       INCLUDE "B:m2hr*",#C0
       ORG #5BFB

ink1 DB #30 pap1 NOP ink2 DB #38 pap2 NOP bord NOP IMVEC=#8000 ;todo #BE00 TXTBUF=23698 OOOO=23698 BUF=#6F60;#480+18zeros l5b00=#6000;#5B00 глючит(Risk);CAT низя;длины треков при compile

                            ;не более 128 треков(нет проверки!)

CATfilt=BUF-#500 ;,#500 todo pg4/pg7 CATdos=BUF-#480 ;,#900 BUFEND=BUF+#4A0 SPRAR=BUFEND TVOL=#BE00

many
EDORbf=#7100;(64)
1
bf240=#7180;EDPOSssQ BUF(#240)

FONT=#7400;%512(лежит на 256 выше) FNTDEC=#7800;(512) FNTNOTE=FNTDEC+512;(256) TSMPSZ=#7B00;SMPLP,END(64) TPOSS=#7C00

10

TPATSZ=TPOSS+256;=0..63 TORNSZ=#7DD0;ORNLP,END(32)

2
убить?
ARBUF=#7D80
2(GO,AtoPAT)
убить?
TPATS=#7E00;pg,E,D
5
убить?
TLINES=#7F00;L/2*18(128)
2+1
убить
TORNS=#7FD0;(32).TORNS=.TORNSZ

FrTab=#BF00

       INCLUDE "PTcon*",#C7

modC=mod

       ORG #6100

begin

3тут+4(STPAT0,COPYU,CMpores,TransPP)

AtoPAT

HL,A на выходе не важны
C надо сохранять для COPYU

AtoPnsJ JR AtoPns2

       CPL 
       ADD A,PATS;48

AtoPns2 LD L,A

       ADD A,A
       ADD A,L
       LD L,A
       LD H,'TPATS
       LD A,(HL)
       CALL OUTME
       INC L
       LD E,(HL)
       INC L
       LD D,(HL)
       RET 

SWPAYPP

       LD BC,#FFFD
      IFN pttfc
       RES 2,A
      ENDIF 
       OUT (C),A

sWPSNGPP

       LD HL,ayblock
      ;LD DE,ayblock2
       LD B,szayblock4

SWPAY0

       DUP 4
       LD A,(HL)
       INC H
       LD E,(HL)
       LD (HL),A
       DEC H
       LD (HL),E
       INC L
       EDUP 
       DJNZ SWPAY0
       LD HL,AtoPnsJ
       LD A,(HL)
       XOR 24!46
       LD (HL),A
       RET 

SWPSONG

       CALL sWPSNGPP
       RRA 
       AND 1
       ADD A,"1"
       LD DE,#1D0B
       CALL PRADD
      LD A,(pat1)
      CPL 
      ADD A,PATS;48
      CALL iPATq
      LD A,(pat2)
      CPL 
      ADD A,PATS;48
      CALL iPAT2q
       LD HL,TPATSZ
       LD DE,TPATSZ+PATS-1
       LD B,PATS/2

SWPSNGL LD A,(DE)

       LD C,(HL)
       LD (HL),A
       LD A,C
       LD (DE),A
       INC L
       DEC E
       DJNZ SWPSNGL
       LD A,(EPAT)
       LD L,A
       LD A,(HL)
       LD (PATLEN),A
    ;LD A,(PATLEN)
     CALL IPATLQ
       JP PRPATUU

CHKTS

       LD A,(ts48)
       LD HL,tson
       CP 33 ;32=не TS
       SBC A,A ;#FF=не TS
       CP (HL)
       RET NZ

ONOFFTS

       LD HL,#486B
       LD C,3
       CALL INVSYMS
       LD HL,tson
       LD A,(HL)
       CPL 
       LD (HL),A
      OR A
      LD A,32
      JZ $+4
      LD A,48;PATS
       LD (ts48),A
       RET 

ALLCHAN

       LD HL,#4853
       LD C,4
       CALL INVSYMS
       LD HL,chnall
       LD A,(HL)
       CPL 
       LD (HL),A
       RET 
10

GETnADR

       LD A,B
      CALL AtoPAT
       LD A,C
       ADD A,A
       LD L,A
       LD H,'TLINES
       LD A,(HL)
       INC L
       LD H,(HL)
       LD L,A
       ADD HL,DE
       RET 
2(PT2PATS,PT3PATS)

PATfrBUF

       PUSH AF,HL
       LD L,A,H,'TPATSZ
       DEC D
       LD (HL),D
       CALL aPATBUF
       POP HL,AF
       RET 
2(CLPATS,clPAT)

CLPAT

       CALL KILLBUF
      LD HL,97
      LD (BUF+3),HL
      LD (BUF+8),HL
      LD (BUF+13),HL

aPATBUF CALL AtoPAT

       LD HL,BUF
       JR bUFLDIR
2(COPYU,CMPP)

PATtoBUF

       CALL AtoPAT
       LD HL,BUF
       EXD 

bUFLDIR LD BC,#480

       LDIR 
       JP OUT7
3(CLPAT,PT2PATS,PT3PATS)

KILLBUF

       PUSH HL
       LD HL,BUF
       LD DE,BUF+1
       LD (HL),0
       LD BC,#47F
       LDIR 
       POP HL
       RET 
2

GETnPAT

       LD A,(POS)

GETnPAA LOOP=$+1 LENG=LOOP+1

       LD DE,#100
       INC A
       CP D
       JNC $+3
       LD E,A
       LD D,'TPOSS
       LD A,(DE),(nPAT),A
       RET 
2(INCPOSU,ROLL)

ROLnxPO

      CALL GETnPAT ;(DE)->A->(nPAT)
       LD (EPAT),A
      LD B,E
       LD E,A
       INC D ;TPATSZ
       LD A,(DE),(PATLEN),A
      INC A
      LD C,A
      LD A,B,(POS),A
       RET 
2(UPRnxPO,PRPAT)

ROLprPO

      ;LD A,(POS)
       LD DE,(LENG)
       DEC A
       CP E
       JC $+4
       LD A,E
       DEC A
       LD E,A
       LD D,'TPOSS
      EXA 
      ;LD (POS),A
       LD A,(DE)
       LD E,A
       INC D
       RET 

HLORN ORN=$+1

       LD A,1
6

HLOR3 ADD A,A

       ADD A,TORNS
       LD L,A
1
CLORN (убить)

_orn LD H,'TORNS

       PUSH AF
       LD A,(HL)
       INC L
       LD H,(HL),L,A
       POP AF
       RET 

FILLENS

       LD DE,TPATSZ+1
       LD BC,PATS-1
       LD H,D,L,B
       LD (HL),A
       LDIR 
       RET 

DE2ATTR

       LD A,E
       RRCA 
       RRCA 
       RRCA 

DA2ATTR LD H,A

       AND #E0
       OR D
       LD L,A,A,H
       AND 3
       OR 88
       LD H,A
       RET 

DE2SCR

       LD A,E
       AND 24
       OR 64
       LD H,A
       LD A,E
       AND 7
       RRA 
       RRA 
       RRA 
       RRA 
       ADD A,D
       LD L,A
       RET 

DHL

       INC H
       LD A,H
       AND 7
       RET NZ
       LD A,L
       ADD A,32
       LD L,A
       RET C
       LD A,H
       SUB 8
       LD H,A

ret RET DDE

       INC D
       LD A,D
       AND 7
       RET NZ
       LD A,E
       ADD A,32
       LD E,A
       RET C
       LD A,D
       SUB 8
       LD D,A
       RET 

SHOLK

       NOP 
       LD HL,shlkR
       LD DE,#202
       CALL SHLK0
       LD DE,#406
       CALL SHLK0
       LD DE,#30B

SHLK0 LD BC,-3

       OUT (C),E
       LD B,#BF
       OUTI 
       INC E
       DEC D
       JNZ SHLK0
       RET 

WINDUM

       LD HL,DUMMY

WINDOW

       CALL WINmema
       LD (useadr),DE
       LD (optadr),HL
       DEC HL
       LD A,(HL),(options),A
       PUSH BC
       POP IX
       LD A,#B7,(DOWNM),A
      CALL OUT4
       LD D,(IX),E,(IX+1)
       CALL DE2ATTR
       LD (WINATR),HL
      PUSH HL
       CALL DE2SCR
       LD (WINTOP),HL
      PUSH HL
       CALL WINMEM
       LD A,(IX),C,A
       ADD A,A,A,A,A,A
       LD (TSTXMIN),A,A,C
       INC A
       ADD A,A
       DEC A
       LD (ADDX),A,A,(IX+1)
       INC A
       LD (ADDY),A
       DEC A
       ADD A,A,A,A,A,A
       LD (TSTYMIN),A,A,(IX+2)
       ADD A,A
       DEC A
       LD (PRMRGT),A
       INC A
       ADD A,A,A,A
       LD (TSTXMAX),A
      POP HL ;WINTOP
       LD A,(IX+3)
       PUSH AF
       ADD A,A,A,A,A,A
       LD (TSTYMAX),A
       POP AF
       SUB (IX+1)
       ADD A,A,A,A,A,A
       LD (RMKHGT),A
       DEC (IX+2)
       LD B,0

WIN0 EXA

       PUSH HL
       LD (HL),B,D,H,E,L
       INC E
       LD A,(IX+2)
       SUB (IX)
       LD (WINWID),A,C,A
       LDIR 
       POP HL
       CALL DHL
       EXA 
       DEC A
       JNZ WIN0
      POP HL ;WINATR
       LD A,(IX+4)
       EXA 
       LD A,(IX+3)
       SUB (IX+1)
       LD B,0

WIN1 EXA

       PUSH HL
       LD (HL),A,D,H,E,L
       INC E

WINWID=$+1

       LD C,0
       LDIR 
       POP HL
       LD C,32
       ADD HL,BC
       EXA 
       DEC A
       JNZ WIN1
       LD A,(IX+2)
       INC (IX+2)
       SUB (IX)
       LD C,A,B,0
       PUSH BC
       LD HL,(WINTOP)
       CALL FILM1,DHL

RMKHGT=$+1

       LD D,0
       DEC D
       LD B,D,C,1
       CALL VERLIN
       LD B,D,HL,(WINTOP)
       DEC B
       CALL DHL
       LD C,#80
       CALL VERLIN
       POP BC

FILM1 LD D,H,E,L,(HL),-1

       INC DE
       LDIR 
       RET 

VERLIN LD (HL),C

       CALL DHL
       DJNZ $-4
       RET 
2

WINmema

       LD A,(options),(Oldopt),A
       PUSH HL
       LD HL,(optadr),(Oldoad),HL
       LD HL,(useadr),(Olduse),HL
       POP HL
       RET 

WINMEM WBUFTOP=$+1

       LD HL,winbuf
      PUSH HL

Oldopt=$+1

       LD (HL),0
       INC HL

Oldoad=$+1

       LD DE,0
       CALL WMEMPP

Olduse=$+1

       LD DE,0
       CALL WMEMPP

ADDY=$+1 ADDX=$+2

       LD DE,0
       CALL WMEMPP
       LD A,(PRMRGT)
       LD (HL),A
       INC HL

WINATR=$+1

       LD DE,0
       CALL WMEMPP
       LD A,(IX+2)
       SUB (IX)
       INC A
       LD (HL),A,C,A
       INC HL
       LD A,(IX+3)
       SUB (IX+1)
       INC A
       LD (HL),A
       INC HL
       PUSH AF
       LD B,0
       EXD 

WMEM0 PUSH BC,HL

       LDIR 
       POP HL
       LD C,32
       ADD HL,BC
       POP BC
       DEC A
       JNZ WMEM0
       POP AF
       DEC C
       ADD A,A,A,A,A,A
       EXD 

WINTOP=$+1

       LD DE,0
       CALL WMEMPP
       EXD 

WMEM1 EXA

       PUSH HL,BC
       LDIR 
       POP BC,HL
       CALL DHL
       EXA 
       DEC A
       JNZ WMEM1
       EXD 
      POP DE

WMEMPP LD (HL),E

       INC HL
       LD (HL),D
       INC HL
       LD (WBUFTOP),HL
       RET 

CLOSWIN

      CALL OUT4
       LD HL,(WBUFTOP)
       DEC HL
       LD A,(HL)
       DEC HL
       LD L,(HL),H,A
      OR L
      RET Z
       LD (WBUFTOP),HL
       PUSH BC
       LD DE,options
       LDI 
       LD DE,optadr
       LDI 
       LDI 
       LD DE,useadr
       LDI 
       LDI 
       LD DE,ADDY
       LDI 
       LDI 
       LD DE,PRMRGT
       LDI 
       LD E,(HL)
       INC HL
       LD D,(HL)
       INC HL
       LD C,(HL)
       INC HL
       LD A,(HL)
       INC HL
       PUSH AF
       LD B,0

CLOS0 PUSH BC,DE

       LDIR 
       EXD 
       POP HL
       LD C,32
       ADD HL,BC
       EXD 
       POP BC
       DEC A
       JNZ CLOS0
       POP AF
       DEC A
       ADD A,A,A,A,A,A
       DEC C
       LD E,(HL)
       INC HL
       LD D,(HL)
       INC HL

CLOS1 EXA

       PUSH DE,BC
       LDIR 
       POP BC,DE
       CALL DDE
       EXA 
       DEC A
       JNZ CLOS1
      LD A,"0",(PR1dot),A
      CALL MHEXFNT
      LD A,".",(PR1dot),A
       LD A,pg7;(filladr+1),A
       CALL MHEXFNTpg
       POP BC
      CALL TSTFIRH
      JC $-3
      RET 
6

WAITNOK

      CALL HALTER
       CALL ANYKEY
       CPL 
       AND 31
       JNZ WAITNOK
       RET 

LDKSAPP

      LD A,32
      LD (ts48),A
       CALL CLORNSM
       CALL BIGso
       CALL OUT3
      LD BC,(#5CE8),HL,#BFFF,D,L,E,L
      ADD HL,BC
      LDDR 
      INC DE
      EXD 
       LD DE,la000,A,(HL)
       PUSH AF
       INC HL

KSAPP0 LD A,(HL) KSAPP1 INC HL

       LD B,0
       SRL A
       JC KSAPPb0
       RRA 
       JC KSAPPb1
       RRA 
       LD C,A
       JC $+5
       LD B,A,C,(HL)
       INC HL
       LD A,(HL)
       INC HL

KSAPP2 LD (DE),A

       PUSH HL
       LD A,(HL)
       EXA 
       LD H,D,L,E
       INC DE
       JR KSAPP2G

KSAPPb1 SRL A

       LD C,(HL)
       JNC KSAPPn2
       LD C,A
       INC C
       LDIR 
       JR KSAPP0

KSAPPb0 SRL A

       JC KSAPP01
       AND 7
       LD B,A
       DEC HL
       RLD 
       RRA 
       LD C,A
       LD A,B

KSAPPn2 LD B,A

       INC HL,HL
       LD A,(HL)
       EXA 
       PUSH HL
       DEC HL
       LD A,E
       SUB (HL)
       LD L,A
       LD A,D
       SBC A,B
       LD B,0
       LD H,A
       INC BC

KSAPP2G INC BC,BC

       LDIR 
       POP HL
       EXA 
       JR KSAPP1

KSAPP01

       SRL A
       DEC A
       LD C,B
       DEC BC
       JC KSAPP2
       POP AF
       LD (DE),A
       LD HL,labc0
       LD DE,TPATSZ
       LD B,31

KSAlens LD A,(HL)

       DEC A
       LD (DE),A
       INC HL,DE
       DJNZ KSAlens
       CALL STSMP
       LD HL,labdf
       LD A,(HL),(LOOP),A
       INC L
       LD DE,TTITLE
       LD C,25
       LDIR 
       LD A,E,(STtit),A
       LD A,7,(STtitZ),A
       XOR A
       CALL STORN
       LD A,1,(FRQn),A
       CALL OUT3
       LD HL,labf9
       LD DE,labc1
       LD B,96
       LDIR 
       JR LDSTPGO

BIGso

       LD A,33
       LD HL,TSMPSZ+3
       LD DE,TSMPSZ+4
       LD (HL),A
       DEC A
       CALL BIGsoQ
       LD HL,TORNSZ+3
       LD DE,TORNSZ+4
       LD (HL),A
       XOR A

BIGsoQ DEC L

       LD (HL),A
       LD BC,30
       LDIR 
       RET 

LDSTPP

      LD A,32
      LD (ts48),A
       CALL CLORNSM
       CALL BIGso
       INC A
       LD (FRQn),A
       LD A,(labc0)
       DEC A
      ;LD C,PATS-1
      ;LD DE,TPATSZ+1
      ;LD H,D,L,B
      ;LD (HL),A
      ;LDIR
      CALL FILLENS
       LD (PATLEN),A
       CALL STSMP
       LD A,TTITLE,(STtit),A
       LD A,31,(STtitZ),A
       LD A,'LOOP
       CALL STORN
       CALL OUT3

LDSTPGO LD A,(labbf),(TEMPO),A

       LD A,(la99e)
       INC A
       LD (LENG),A
       LD HL,la79e
       LD DE,TPOSS
      LD A,E

LDSTpos DEC (HL)

       LDI 
       INC HL
       DEC A
       JNZ LDSTpos
       LD HL,labc1
       LD DE,la000
       PUSH DE
       LD B,#5F
       LDIR 
       POP HL

STPAT0 PUSH AF

       CALL OUT3
       POP AF
       PUSH AF
       LD DE,EDORbf
       LD BC,#240
       LDIR 
       PUSH HL
      CALL AtoPAT
       LD HL,EDORbf
       PUSH DE
       POP IX
       LD B,64

STPAT1 PUSH BC

      INC DE,DE,DE
       PUSH IX
       LD (IX),C
       LD (IX+1),C
       LD (IX+2),C
       LD B,3

STPAT2 PUSH BC,DE

       XOR A
       LD (DE),A
       INC DE
       LD (DE),A
       INC DE
       INC DE
       LD (DE),A
       INC DE
       LD (DE),A
      EXD 
      EX (SP),HL
      EXD 
       CALL STPAPP
       POP DE
      INC DE
       POP BC
       DJNZ STPAT2
       POP IX
       LD C,18
       ADD IX,BC
       POP BC
       DJNZ STPAT1
       POP HL,AF
       INC A
       AND 31
       JNZ STPAT0

STloop=$+2

       LD (LOOP),A
       LD (POS),A

STtit=$+1

       LD HL,TTITLE

STtitZ=$+1

       LD BC,31
       CALL STtitQ
       LD HL,TAUTHOR
       LD C,31

STtitQ LD D,H

       LD E,L
       INC E
       LD (HL),32
       LDIR 
       RET 

STSMP CALL OUT4

       LD HL,la000
       LD DE,_c000+256
       LD A,15

STSMP0 PUSH AF

       PUSH HL
       PUSH DE
       CALL STSMPP
       LD A,(IX+#60)
       LD H,(IX+#61)
       OR A
       JZ STSMPQ
       DEC A
       INC H
       LD L,A
       ADD A,H
       LD H,A
       LD A,D
       SUB 'SMPS
       EXD 
       ADD A,A
       LD L,A
       LD H,'TSMPSZ
       LD (HL),E
       INC L
       LD (HL),D

STSMPQ POP DE

       POP HL
       INC D
       LD BC,#82
       ADD HL,BC
       POP AF
       DEC A
       JNZ STSMP0
       RET 

STSMPP PUSH HL

       POP IX
       LD (STSMbse),HL
       EXD 
       LD B,32

STSMPP0 LD A,64

       SUB B
       ADD A,A
       LD (STSMix1),A
       INC A
       LD (STSMix2),A
       PUSH IX

STSMbse=$+2

       LD IX,0

STSMix1=$+2

       LD E,(IX)

STSMix2=$+2

       LD D,(IX+1)
       POP IX
       BIT 4,D
       RES 4,D
       EXD 
       CALL Z,NEGHL
       EXD 
       LD (HL),E
       INC L
       LD (HL),D
       INC L
       LD A,(IX+#20),E,A
       AND 31
       RL E
       JNC $+4
       LD A,#40
       RL E
       RLA 
       RRCA 

ksaON=$+1

       LD D,0
       DEC D
       INC D
       JZ $+8
       RL E
       JC $+4
       OR #20
       LD (HL),A
       INC L
       LD A,(IX),(HL),A
       INC L
       INC IX
       DJNZ STSMPP0
       INC L,L
       LD (HL),96
       EXD 
       RET 

STORN LD (STloop),A

       LD A,(ksaON)
       LD HL,la9bf
       LD DE,ORNS+64
       OR A
       JNZ KSAORN
       LD A,15

STORN0 LD BC,32

       LDIR 
       EXD 
       LD C,32
       ADD HL,BC
       EXD 
       DEC A
       JNZ STORN0
       RET 

KSAORN LD A,1 KSAORN0 PUSH AF

       LD BC,TORNSZ
       ADD A,A,A,C
       LD C,A
       LD A,(HL),(BC),A
       INC C
       INC HL
       LD A,(HL)
       INC A
       LD (BC),A
       INC HL
       LD BC,30
       LDIR 
       EXD 
       LD C,34
       ADD HL,BC
       EXD 
       POP AF
       INC A
       AND 15
       JNZ KSAORN0
       RET 

STPAPP LD A,(HL)

       CP #10
       JC STEt
       CP #F0
       JNC STres
       AND 7
       ADD A,A,A,A
       LD B,A
       ADD A,A,A,B
       LD B,A
       LD A,(HL)
       LD C,8
       CP #78
       JNC STnot
       DEC C
       CP #70
       JNC STnot
       DEC C
       CP #68
       JNC STnot
       DEC C
       CP #60
       JNC STnot
       DEC C
       CP #50
       JNC STnot
       DEC C
       CP #48
       JNC STnot
       DEC C
       CP #40
       JNC STnot
       DEC C
       CP #38
       JNC STnot
       DEC C
       CP #30
       JNC STnot
       LD C,11
       CP #20
       JNC STnot
       DEC C
       CP #18
       JNC $+3
       DEC C

STnot LD A,C

       ADD A,B
       INC A
       JR STPAPQ

STres LD A,97

       JR $+3

STEt XOR A STPAPQ LD (DE),A

       INC DE,DE,DE
       INC HL
       LD A,(HL),(DE),A
       INC DE,HL
       AND #F
       JZ STEold
       CP #F
       JZ STorn
       LD C,A
       LD A,(ksaON)
       OR A
       JZ STnKSA
       LD A,C
       CP 3
       JC STglis

STnKSA LD A,(HL),(IX+1),A

       INC HL
       RET 

STEold LD A,(ksaON)

       OR A
       LD A,(HL)
       INC HL
       RET Z
       AND #F0
       JR STgliQ

STorn LD A,(HL)

       INC HL

STand=$+1

       AND -1
       JR STgliQ

STglis LD C,A

       DEC DE
       LD A,(DE)
       AND #F0
       LD (DE),A
       LD A,C
       LD C,1
       DEC A
       JNZ $+3
       INC C
       LD A,(HL)
       OR A
       JP P,$+6
       NEG 
       INC C
       DEC DE
       LD (DE),A
       DEC DE
       INC HL
       LD A,C
       AND 1
       ADD A,17

STgliQ RRCA

       RRCA 
       RRCA 
       RRCA 
       LD (DE),A
       RET 
      IF0 ply
       DS #15C ;???
      ELSE 

TRELOC INCBIN "REL3*

      ENDIF 

FREE=CATfilt-$

       DISPLAY /T,FREE

PRESSED

      IF0 ply
       DS #900
      ELSE 
       ORG $,pg7
       DISP #C000
       DUP #90
       DW {$}
       DW {$}
       DW {$}
       DW {$}
       DW {$}
       DW {$}
       DW {$}
       DW {$}
       EDUP 
       ENT 
       ORG $,pg6
      ENDIF 

ENDPRES

       DS FONT+256-$;BUF+#480 пустое место для ssQ
       INCBIN "F7400
FNTDEC
       INCBIN "DIGITS
       ORG $-72
       DS 72
FNTNOTE+512
       DISPLAY "bufs ",$,"..7FXX=",#7F7D-$
       DS #7F81-$

sprar DW #BF,#401F,#600F,#7007,#7803,#6007,#401F,#BF GO

       DISPLAY /T,GO
       LD SP,#6000
       LD (IY+1),#CC
      LD HL,#108
      LD (#5C09),HL
       LD HL,Tfonscr,DE,0
       CALL PRMENU,PRFONSCR
       LD HL,FONATRS,DE,#5800,B,3
       LDIR 
       LD H,'wassin
       CALL INPAGE
       CALL OUT7
       LD HL,PRESSED,DE,#C000,B,A
       LDIR 
       LD HL,SPRAR,A,127

MKAR0 LD IX,sprar

       RLCA 
       LD B,8

MKAR1 LD C,(IX)

       INC IX
       LD D,(IX)
       INC IX
       LD E,0
       PUSH AF

MKAR2 SRL D

       RR E
       SCF 
       RR C
       RRA 
       JC MKAR2
       LD (HL),C
       INC L
       LD (HL),D
       INC L
       LD (HL),A
       INC L
       LD (HL),E
       POP AF
       INC L
       DJNZ MKAR1
       JNZ MKAR0
       LD H,#FE,(HL),#5E
       CALL SETIM
       DEC (HL)
       LD HL,#C9AF,(#5E5D),HL,(#5D5E),HL
       IM 2
       HALT 
       IM 1
       JNZ NOMOUSE
       DEC A
       LD BC,#FADF
       IN C,(C),A,(#DF)
       LD (OLDY+1),A,B,A,A,-5
       IN A,(#DF)
       LD (OLDX+1),A
       CP B
       JNZ NOMOUQ
       CP C
       JNZ NOMOUQ

NOMOUSE LD A,62,(MOUSF),A,(MOUSF2),A

       LD HL,LEFT,(CALLER+1),HL

NOMOUQ ;LD HL,(#5CF4),(SETsec),HL

       CALL MHEXFNT
       LD HL,#5D3B
       LD DE,ink1
       LD B,3
       JR saG

sa LD A,(HL)

       AND #38
       LD (DE),A
       INC DE
       INC HL

saG LD A,(HL)

       RLA 
       RLA 
       RLA 
       AND #38
       LD (DE),A
       INC DE
       DJNZ sa
       LD C,(HL)
       RL C
       SBC A,A
       AND 31
       LD (joy),A
       RL C
       SBC A,A
       LD (poion),A
       RL C
       SBC A,A
       AND 201
       LD (SHOLK),A
        RL C
        SBC A,A
        LD (playon),A
      ;LD A,(HL),(poion),A
       CALL SETCOLS ;EI
       LD A,pg7
       CALL MHEXFNTpg
       LD HL,TSMPSZ+1,DE,TSMPSZ+2,C,62
       LD (HL),L;1
       DEC L
       PUSH HL
       LD (HL),B
       LDIR 
       POP HL
       LD DE,TORNSZ,C,E;32
       LDIR 
      ;LD DE,TPATSZ+1,H,D,L,B,(HL),63
      ;LD C,PATS-1
      ;LDIR
      LD A,63
      CALL FILLENS
       CALL CLPOS
       LD IX,TPATS
       LD A,pg6;#10
       LD HL,42-PATS*#480
       LD BC,3,DE,#480
       JR MpA0

MpatADS LD H,#C1 MpA0 LD (IX),A,(IX+1),L,(IX+2),H

       ADD IX,BC,HL,DE
       JNC MpA0
       INC A
       CP #12
       JNZ $+3
       INC A
       CP #15
       JNZ MpatADS
       LD HL,TLINES,D,L,E,L,C,18,A,65

MTLIN LD (HL),E

       INC L
       LD (HL),D
       INC L
       EXD 
       ADD HL,BC
       EXD 
       DEC A
       JNZ MTLIN
       LD DE,ORNS,HL,TORNS,C,64,A,16

MTORN LD (HL),E

       INC L
       LD (HL),D
       INC L
       EXD 
       ADD HL,BC
       EXD 
       DEC A
       JNZ MTORN
       INC A
       LD (#5C0A),A
       CALL CLORNSM
       CALL COPYFRQ
       CALL CLPATS
       CALL MKSCROL
      IFN alasm
      CALL LOADASM
      ENDIF 
       LD HL,IMVEC,(HL),IMER
       LD (IY+48),8
       CALL SETIM
       DISPLAY $,">#8100
       IM 2
       EI 
       LD HL,NLOOP
       PUSH HL
       JP EDPAT

SETIM

       LD BC,256,D,H,E,B,A,H
       LDIR 
       LD I,A
       RET 
       DB 1

DUMMY DS 4;MENUCOORDS shlkR DB 0,9,0,0,0,#10,0,1,0 MHEXFNT

       LD A,pg4

MHEXFNTpg

       CALL OUTME
       XOR A
       LD DE,#F801,H,D,L,A,(HL),A,BC,#7FF
       PUSH HL
       LDIR 
       POP DE

HFNT0 PUSH AF,AF

       RRCA 
       RRCA 
       RRCA 
       RRCA 
       LD C,#F0
       PUSH DE
       CALL PR1
       POP DE,AF
       LD C,#F
       CALL PR1
       INC DE,DE
       POP AF
       INC A
       JNZ HFNT0
       RET 

PR1

       AND #F
       ADD A,#90
       DAA 
       ADC A,#40
       DAA 

poion=$+1

       LD B,0;при старте 0
       INC B
       DEC B
       JZ PR1np
       CP "0
       JNZ $+4

PR1dot=$+1

       LD A,".

PR1np ADD A,A,A,A

       LD L,A
      ADC A,'FONT/2
       SUB L
       LD H,A
       ADD HL,HL
       LD B,6
       EXD 

PR10 LD A,(DE)

       AND C
       OR (HL)
       LD (HL),A
       INC E,L
       DJNZ PR10
       EXD 
       RET 

OCT

       DB 4

SNGST

       DW #C000
       DISPLAY $,"<=",#8181
       DS #8181-$

IMER

       PUSH HL,DE,BC,AF
       RST 56
       CALL MANAGE
       POP AF,BC,DE,HL
       RET 

SNGLEN

       DW 0

TEDCURX

NO CROSS sec!
       DISPLAY "TEDCURX=",$
       DB 6,7,8,9,12,13
       DB 16,20,21,22,23,26,27,28,29
       DB 32,36,37,38,39,42,43,44,45
       DB 48,52,53,54,55,58,59,60,61

TPROTR DB "ProTracker 3.7 compilation of " TTITLE

NO CROSS sec!
       DISPLAY "TTITLE=",$
       DS 33,32
       DB "by "

TAUTHOR DS 33,32 ts48=$-1

AUTO1 DB "---- AUTO2 DB "���� LINESon DS 9,#7F NLOOP

       LD (IY+48),8
      CALL RESHALT
       LD HL,NLOOP
       PUSH HL
       JZ NLOONK
       CP "W
       JP Z,EDSONG
       SUB 13
       JP Z,PLSONG
       DEC A
       JP Z,EDPAT

NLOONK CALL JPITEM DOWNMER LD A,#6F,(DOWNM),A

       RET 

FIRE

NZ=y
     ;CALL 8026
     ;JNC fIREcs
       LD A,#7F
       IN A,(-2)
       RRA 

fIREOK DEC A

      JNC FIREYES

fIREcs LD A,#FA MOUSF IN A,(#DF)

       RRA 
      JNC FIREYES
       RRA 
       JC fIREKJ
       LD A,(ITEM)
       CP DIVNO+1
       JZ fIREOK

fIREKJ CALL KEMPJOY

       AND 16
       RET Z

FIREYES

      IFN hidearr
      LD A,(ARROWt)
      DEC A
      RET Z   ;Z=нет
       LD A,0 ;NZ=да
       LD (ARROWt),A
      ENDIF 
       RET 

CANCEL

       LD A,#BF
       IN A,(-2)
       RRA 
       RET NC

CANCEL2 LD A,#FA MOUSF2 IN A,(#DF)

       RRA 
       RRA 
       RET 

CLPOS

      IF0 cl12345
       LD DE,TPOSS+1
       LD BC,255
       LD H,D,L,B
       LD (HL),L
       LDIR 
       RET 
      ELSE 
       LD HL,TPOSS
      LD BC,PATS*255+255
      LD (HL),L
      INC L
      DJNZ $-2
       LD D,H,E,L
       INC E
       LD (HL),B
       LDIR 
       RET 
      ENDIF 

MOVD0A0

       LD (movd0a0),A
       CALL OUT7
       LD HL,la000,(LDADR),HL
       LD DE,ld000,BC,#2000
       LDIR 

OUT3 LD A,pg3

       JR OUTME

OUT7 LD A,pg7

       JR OUTME

OUT6 LD A,pg6

       JR OUTME

OUT4 LD A,pg4 OUTME

       LD (pg),A
       PUSH BC
       LD BC,FD
       OUT (C),A
       POP BC
       RET 

PRADDPP

       PUSH HL
       LD HL,(ADDY)
       ADD HL,DE
       EXD 
       POP HL
       RET 

PRTXADDBUF

       LD HL,TXTBUF

PRTXADD CALL PRADDPP PRTXT LD A,(HL)

       INC HL
       CALL PR4X8
       INC D
       DJNZ PRTXT
       RET 

PRMEMO LD HL,T____ PRMENU

       CALL PRADDPP

PRMNU0 LD A,(HL)

       CP 6
       JNZ PRMNUN6
       INC HL
       LD D,(HL)
       INC HL
       LD E,(HL)
       INC HL
       CALL PRADDPP
       LD A,(HL)

PRMNUN6 PUSH AF

       CALL PR4X8
       INC HL
       LD A,D
       INC A

PRMRGT=$+1

       CP 62
       JNZ $+6
       LD A,(ADDX)
       INC E
       LD D,A
       POP AF
       RLA 
       JNC PRMNU0
       RET 

RESHALT

       RES 5,(IY+1)

HALTER

      CALL ARROW

HALTnAR options=$+1

       LD DE,mains
       LD BC,(ARXY)

optadr=$+1

       LD HL,MENUCOO

OPTER0 INC D

       LD A,B
       CP (HL)
       INC HL
       JP C,OPTI3
       LD A,C
       CP (HL)
       JP C,OPTI3
       INC HL
       LD A,B
       CP (HL)
       INC HL
       JP NC,OPTI1
       LD A,C
       CP (HL)
       JP NC,OPTI1
       LD A,D
       DEC HL,HL,HL
       LD (ITEMADR),HL
       JR OPTQ

OPTI3 INC HL,HL OPTI1 INC HL

       DEC E
       JP NZ,OPTER0
       LD A,-1

OPTQ LD (ITEM),A ITEM=$+1

       LD A,-1
       INC A
       CALL NZ,OP_INV
       HALT 
      CALL RE

fillpat=$+1

       LD A,#68

filladr=$+1

       LD HL,0

fillN=$+1

       LD C,1
       CALL FILLPP
     LD A,7,(#5810),A,(#5890),A,(#58B0),A
     LD (filladr+1),A
      CALL OUT6
       XOR A

NOPKA=$+1

       CP 0 ;fire
       CALL GETAYER

BIT5

       BIT 5,(IY+1)
       LD A,(23560)
       RET 

RE

       PUSH AF,BC,DE,HL

ARSCR=$+1

       LD DE,0,HL,ARBUF,BC,#8FF

RE0 LDI

       LDI 
       DEC DE,DE
       CALL DDE
       DJNZ RE0
       POP HL,DE,BC,AF
       RET 

ARROW ARXY=$+1 ARX=$+2

       LD HL,#7707
      IFN hidearr
      LD BC,0
       LD ($-2),HL
       XOR A
       SBC HL,BC
       ADD HL,BC
       JNZ ARROWsT
      LD (ARSCR+1),A

ARROWt=$+1

       LD A,0
       DEC A
       RET Z

ARROWsT

      LD (ARROWt),A
      ENDIF 
       LD C,H,A,L
       CALL 8880
       LD (ARSCR),HL
       EXD 
       RRCA 
       RRCA 
       RRCA 
       LD L,A,H,'SPRAR,BC,ARBUF

ARR0 DUP 2

       LD A,(DE),(BC),A
       AND (HL)
       INC L
       OR (HL)
       INC L
       LD (DE),A
       INC C,E
      EDUP 
       ORG $-1
       DEC E
       CALL DDE
       LD A,L
       AND 31
       JNZ ARR0
       RET 

RIGHT LD A,#DF

       IN A,(-2)
       RRA 
       CALL C,KEMPJOY
       RRA 
       RET NC
       LD A,(ARX)
      INC C
       ADD A,B

RIGHTU JNC $+4

       LD A,-9
       CP -8
       JNC $-4

L14 LD (ARX),A

       RET 

MOUSER PUSH BC,HL

       LD HL,(ARXY)
       LD A,-5
       IN A,(#DF)

OLDX LD E,0,(OLDX+1),A

       SUB E
       JP P,MPX
       ADD A,H
       CCF 
       CALL LEFTU
       JR MXQ

MPX ADD A,H

       CALL RIGHTU

MXQ LD A,-1

       IN A,(#DF)

OLDY LD E,0,(OLDY+1),A

       SUB E
       NEG 
       JP P,MPY
       ADD A,L
       JC $+3
       XOR A
       SUB L

MPY ADD A,L

       LD (ARXY),A
       POP HL,BC

LEFT LD A,#DF

       IN A,(-2)
       RRA 
       RRA 
       CALL C,KEMPJOY
       AND 2
       LD A,(ARX)
      JZ $+4
      INC C
       SUB B

LEFTU JNC $+3

       XOR A
       JR L14

UP LD A,#FB

       IN A,(-2)
       RRA 
       CALL C,KEMPJOY
       AND 8
       RET Z
       LD A,(HL)
       SUB B
       JC $+6
       CP 4
       JNC $+4
       LD A,4

L27 LD (HL),A

       INC C
       RET 

DOWN LD A,#FE

       IN A,(-2)
       RRA 
       CALL C,KEMPJOY
       AND 4
       RET Z
       LD A,#EF
       IN A,(-2)
       CPL 
       AND 31
       RET NZ ;cs+0..6
       LD A,#F7
       IN A,(-2)
       CPL 
       AND 31
       RET NZ ;cs+1..5
      LD A,#7F
      IN A,(-2)
      AND 2
      RET Z ;Ext
       LD A,(HL)
       ADD A,B
       JR L27

MANAGE

       XOR A
       LD (NOPKA),A
       CALL FIRE
       LD A,9,B,1
       JZ L2

L3 LD A,1

       DEC A
       JNZ L6
       CPL 
       LD (NOPKA),A

TIMER LD A,9

       DEC A
       JNZ $+3
       INC A
       LD B,A

L2 LD (TIMER+1),A

       LD A,B

L6 LD (L3+1),A SPEED LD BC,#101 CALLER CALL MOUSER

       CALL RIGHT
       LD HL,ARXY
       CALL UP
       CALL DOWN

DOWNM=$+1

       LD A,#6F
       CP (HL)
       CALL C,L27
       LD A,1
       DEC C
       JZ L9
       LD A,1
       RLCA 
       LD ($-2),A
       RET NC
       LD A,(SPEED+2)
       INC A
       CP 7
       RET Z

L9 LD (SPEED+2),A

       RET 
5

KEMPJOY

       XOR A
       IN A,(31)

joy=$+1

       AND 0
       RET 
1

OP_INV ITEMADR=$+1

       LD HL,0
       LD B,(HL),D,B
       INC HL
       LD C,(HL)
       INC HL
       LD A,(HL)
       CP -1
       JNZ $+3
       DEC B
       SUB B
       RRA 
       RRA 
       RRA 
       PUSH AF
       SRL D,D,D
       LD A,C
       RLCA 
       RLCA 
       CALL DA2ATTR
       POP AF
       LD (fillN),A
       LD C,A
       LD A,(HL),(fillpat),A
       RRCA 
       LD B,A
       RRCA 
       RRCA 
       XOR B
       AND #E0
       XOR B
       RRA 
       SRL A
       LD (filladr),HL

FILLPP

       LD (HL),A,D,H,E,L
       INC E
       DEC C
       RET Z
       LD B,0
       LDIR 
       RET 

CURPRTXADD

       PUSH DE
       CALL PRTXADDBUF
       POP DE
       CALL PRADDPP
       LD HL,(TXTLEN),A,(TXTX)
       CP L
       RET Z
       ADD A,D
       LD D,A
       LD A,"_

PR4X8

       PUSH HL,DE,BC,AF
       SRL D
       LD C,15
       JC $+4
       LD C,#F0
       CALL DE2SCR
       POP AF
       ADD A,A
       ADD A,A
       LD E,A
      ADC A,'FONT/2
       SUB E
       SLA E
       RLA 
       LD D,A
      DUP 6
       INC H
       LD A,(DE)
       XOR (HL)
       AND C
       XOR (HL)
       LD (HL),A
       INC E
      EDUP 
       ORG $-1
       POP BC,DE,HL
       RET 

SSA

       LD BC,(CURY)
       CALL GETnADR,XPP2
       LD A,C
      ADD A,A,A,A,A,C,A,-2
       ADD A,L
       LD L,A
      JNC $+3
      INC H
      LD A,(HL)
       INC HL,HL
       RLA 
       LD DE,AUTO1
      CALL puthB
      OR A
       LD BC,AUTOSu
       PUSH BC

puthB INC HL

       LD A,(HL)
       RRA 
       RRA 
       RRA 
       RRA 
       AND 31
      CALL puth
       LD A,(HL)
       AND 15

puth ADD A,"0

       CP ":
       JC $+4
       ADD A,"A"-":
       LD (DE),A
       INC DE
       RET 

NotOct

       CALL 8026
       LD A,(OCT)
       SBC A,8
       ADC A,7
       LD C,A
       LD A,D
       SUB 13
       JC nOssnot
       INC A
       LD D,A
       INC C
       DEC C
       JZ $+3
       DEC C

nOssnot LD A,C

       ADD A,A,A,C
       ADD A,A,A,A,A,D
       LD D,A
       RET 

EDSMP

       XOR A
       LD (volA),A
       LD (volC),A
       CALL OUT4
       LD A,(smp)
       ADD A,'SMPS
       LD H,A,BC,256,L,C
       LD (ESMPadr),HL
       LD DE,EDORbf
       LDIR 
       LD BC,mEDSMP
       CALL WINDUM
       XOR A
       LD (EsTOP),A
       LD HL,tSMPKEY
       LD DE,#900+SMPH
       CALL PRMENU
       CALL PROCORN
       CALL PRSMP
       LD A,(smp)
       ADD A,A
       LD L,A,H,'TSMPSZ
       LD A,(HL),(EsLOOP),A,B,A
       INC L
       LD A,(HL)
       SUB B
       LD (EsLEN),A
      PUSH HL
       XOR A
       LD (EsMflag),A,(EsLIN),A
       CALL GsMRK56

EDSMP0

      CALL RESHALT
       CALL EsCHMRK
       CALL EsPRMRK ;долго
       CALL EDSMCUR
       CALL EDSMPKY
       LD A,(smp),(piaSMP),A

EsORN=$+1

       LD A,0,(piaORN),A
       LD HL,TORNSZ
       ADD A,A,A,L
       LD L,A,A,(HL),(piOLOOP),A
       INC L
       LD A,(HL),(piOEND),A
       LD BC,(EsLOOP),A,C,(piSLOOP),A
       ADD A,B
       LD (piSEND),A
       CALL OUT4
       LD HL,EDORbf

ESMPadr=$+1

       LD DE,0
       LD BC,256
       LDIR 
       CALL PIANO
       CALL TSTFIRE
       JNC EDSMP0
      CALL DOWNMER
      POP HL

SMPQU

       LD DE,(EsLOOP)
       LD A,D,B,E
       JP ORNQ

EDTXT

       LD (TXTSCR),DE,(TXTLEN),A

EDTXw  ;LD A,#7F

       CALL ANYKEY
       RRA 
       JNC EDTXw
       PUSH HL
       LD DE,TXTBUF,(CURADR),DE,BC,32
       LDIR 
       XOR A
       LD (TXTX),A

TXTSCR=$+1 EDTX0 LD DE,0 TXTLEN=$+1

       LD B,0
      PUSH BC,DE
      CALL CURPRTXADD
       CALL RESHALT
       JZ $-3
      POP DE,BC
      CALL PRTXADDBUF
       LD A,(23560)
       CP 6
       JNZ EDTXn6
       LD HL,#5C6A,A,8
       XOR (HL)
       LD (HL),A

EDsholk CALL SHOLK

       JR EDTX0

EDTXn6 CP 13

       JZ EDTXQ
       CP 12
       JZ EDTXdel
       CP 8
       JZ EDTXdel
       CP 9
       JZ EDTXrgt
       CP 32
       JC EDTX0

EDTXrgt LD B,A

       RLA 
       JC EDTX0

TXTX=$+1

       LD C,0,A,(TXTLEN)
       INC C
       CP C
       JC EDTX0
       LD A,C,(TXTX),A

CURADR=$+1

       LD HL,TXTBUF
       LD A,B
       CP 9
       JZ $+3
       LD (HL),B
       INC HL
       LD (CURADR),HL
       LD A,(TXTLEN),C,A,A,(TXTX)
       SUB C
       JNZ EDsholk

EDTXQIF=$+1

       CP 0
       JZ EDsholk
       LD A,(TXTLEN),B,A,DE,(TXTSCR)
       CALL PRTXADDBUF

EDTXQ LD HL,TXTBUF

       POP DE
       LD BC,(TXTLEN),B,0
       LDIR 
       LD A,8,(#5C6A),A
       RET 

EDTXdel

       LD HL,TXTX,B,(HL)
       DEC B
       JP M,EDTX0
       LD (HL),B,HL,(CURADR)
       DEC HL
       CP 8
       JZ $+4
       LD (HL),32
       LD (CURADR),HL
       JR EDsholk
     IFN alasm

LOADASM

       LD A,#51
       LD HL,NAMASM1
       LD DE,#C000
       CALL LOADNAM
       LD A,#57
       LD HL,NAMASM2
       LD DE,#C000
       CALL LOADNAM
       LD A,#57
       LD HL,NAMSTS
       LD DE,#DB00
       CALL LOADNAM
       LD A,#D6
       LD HL,NAMASM4
       LD DE,#C000

LOADNAM

      PUSH DE
       CALL LDOUTA
       LD C,19
       CALL #3D13 ;copy desc
       LD C,#A
       CALL #3D13
       LD A,C
       INC C
      POP HL
       RET Z
      PUSH HL
       LD C,8
       CALL #3D13 ;load file desc
      POP HL;#C000
       LD C,#E
       LD A,3
       JP #3D13 ;load file

NAMASM1

       DB "alasm_64C"

NAMASM2

       DB "olasm_64C"

NAMSTS

       DB "sts7    C"

NAMASM4

       DB "playFAS4H"

RESALM

      DISP #5B80
       DI 
       IM 1
       LD H,#40
       LD A,#52
       CALL RESM2PG
       LD A,#54
       CALL RESM2PG
       LD D,#80
       LD A,#10
       CALL RESPG2M
       LD H,#80
       LD A,#55
       CALL RESM2PG
       LD A,#51
       CALL RESOUTA
       CALL #C000
      POP AF ;в аласме зачем-то лишний PUSH
       LD D,#80
       LD A,#55
       CALL RESPG2M
       LD H,#80
       LD A,#10
       CALL RESM2PG
       LD D,#80
       LD A,#54
       CALL RESPG2M
       LD D,#40
       LD A,#52
      ;CALL RESPG2M ;RET не туда
      LD H,#C0
      CALL RESOUTA
      LD BC,#4000,L,C,E,C
      LDIR 
       LD HL,IMVEC,(HL),IMER
       CALL SETIM
       IM 2
       EI 
       RET 

RESM2PG

       LD D,#C0

RESL40 CALL RESOUTA

       LD BC,#4000,L,C,E,C
       LDIR 
       RET 

RESPG2M

       LD H,#C0
       JR RESL40

RESOUTA

       LD BC,#7FFD
       OUT (C),A
       RET 
      ENT 

LDOUTA

       LD BC,#7FFD
       OUT (C),A
       RET 
      ENDIF 
       INCLUDE "pt3*",#44
       INCLUDE "pt5*",#86
       INCLUDE "pt6*",#84
       INCLUDE "ptmsg*",#87
       DISPLAY "FREE2=",plaer-$
       IF0 plaer-$<1&1
       DS plaer-$
       ENDIF 

ss ORG #5D3B

       DB 6
       DB 7
       DB %01010000;bord,bits
D7=joy 0/1F
D6=poion 0/FF
D5=SHOLK 0/C9
D4=playon 0/FF
curite DB 2;NU
       ORG END
       DB 1 ;FRQn
       ORG #5BFA
       CALL 3435
       JP nenado
       JZ EDTXrgt
       CP 32
       JC EDTX0

EDTXrgt LD B,A

       RLA 
       JC EDTX0

TXTX=$+1

       LD C,0,A,(TXTLEN)
       INC C
       CP C
       JC EDTX0
       LD A,C,(TXTX),A