?login_element?

Subversion Repositories NedoOS

Rev

Rev 358 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. ;******* ВСПОМОГАТЕЛЬНЫЕ ПОДПРОГРАММЫ ****** page6
  2.  
  3. TIMER   LD A,(TIC) ;таймер
  4.         CP 97
  5.         RET NZ
  6.         LD HL,TIC_UP
  7.         INC (HL)
  8.         LD A,(LEVEL)
  9.         ADD A,(HL)
  10.         CP 53 ;_____= время на апгрейд - Nlev
  11.         JR C,timU
  12.         LD (HL),0
  13.         CALL UP_TIM
  14. timU    LD HL,RESULT+5
  15.         CALL time
  16.         LD HL,LEVRES+5
  17.         ;
  18. time    ;HL-указ на младш. цифру 999:59
  19.         INC (HL)
  20.         LD A,(HL)
  21.         CP 10
  22.         RET C
  23.         LD (HL),0  ;
  24.         DEC HL
  25.         INC (HL)
  26.         LD A,(HL)
  27.         CP 6
  28.         RET C
  29.         LD (HL),0   ;
  30.         DEC HL
  31.         DEC HL
  32.         INC (HL)
  33.         LD A,(HL)
  34.         CP 10
  35.         RET C
  36.         LD (HL),0   ;;
  37.         DEC HL
  38.         INC (HL)
  39.         LD A,(HL)
  40.         CP 10
  41.         RET C
  42.         LD (HL),0  ;;
  43.         DEC HL
  44.         INC (HL)
  45.         RET
  46.  
  47. XY1st   ;первонач X0,Y0
  48.         LD HL,(HUMAN)
  49.         LD A,L
  50.         SUB 6
  51.         JR C,xys1
  52.         LD L,A
  53. xys1    LD A,H
  54.         SUB 6
  55.         JR C,xys2
  56.         LD H,A
  57. xys2    LD (X0),HL
  58.         RET
  59.  
  60. RNDcrr  LD A,R ;увеличение случайности
  61.         LD HL,RNB
  62.         XOR (HL)
  63.         LD (HL),A
  64.         RET
  65.  
  66. ;-------расчёт параметров после исследов
  67.  
  68. HvFrc   DEFB 3,4, 4,6, 5,8 ;воин/конник
  69. cBLADE  ;расчёт силы удара
  70.         LD A,(kBLADE)
  71.         EX AF,AF
  72.         LD A,(MASTER)
  73.         OR A
  74.         LD A,(hBLADE)
  75.         JR Z,cBB1
  76.         EX AF,AF
  77. cBB1    LD HL,HvFrc
  78.         PUSH HL
  79.         CALL WA
  80.         LD (FORCE+4),A
  81.         INC HL
  82.         LD A,(HL)
  83.         LD (FORCE+8),A
  84.         POP HL
  85.         EX AF,AF
  86.         CALL BA
  87.         LD (FORCE+13),A
  88.         INC HL
  89.         LD A,(HL)
  90.         LD (FORCE+17),A
  91.         RET
  92.  
  93. cSHILD  ;расчёт величина защиты
  94.         LD A,(kSHILD)
  95.         EX AF,AF
  96.         LD A,(MASTER)
  97.         OR A
  98.         LD A,(hSHILD)
  99.         JR Z,cSS1
  100.         EX AF,AF
  101. cSS1    LD HL,DEFENC+3
  102.         CALL cSS2
  103.         EX AF,AF
  104.         LD HL,DEFENC+12
  105. cSS2    LD (HL),A ;лу
  106.         INC HL
  107.         LD (HL),A ;во
  108.         INC HL
  109.         INC HL
  110.         INC HL
  111.         INC HL
  112.         LD (HL),A ;ко
  113.         RET
  114.  
  115. cTIC    ;расчёт TIC,TIC3 и параметров
  116.         LD HL,TIC3 ;трёхфазный счётчик 0-2
  117.         INC (HL)
  118.         LD A,(HL)
  119.         CP 3
  120.         JR C,ctt1
  121.         LD (HL),0
  122. ctt1    INC HL  ;TIC cчётчик 0-255
  123.         INC (HL)
  124.         LD A,(HL)
  125.         RRA
  126.         JR NC,cTT0
  127.         RRA
  128.         JR C,cHORSE
  129.         JR cBLADE
  130. cTT0    RRA
  131.         JR C,cSHILD
  132.         ;
  133. cARC    ;расчёт видимости/дальности стрельбы из лука
  134.         LD A,(kARC)
  135.         EX AF,AF
  136.         LD A,(MASTER)
  137.         OR A
  138.         LD A,(hARC)
  139.         JR Z,cAA1
  140.         EX AF,AF
  141. cAA1    LD HL,tARChu
  142.         CALL WA
  143.         LD (sRANGE+3),A
  144.         ADD A,2
  145.         LD (sSCAN+3),A
  146.         INC HL
  147.         LD A,(HL)
  148.         LD (BFORCE+0),A
  149.         EX AF,AF
  150.         LD HL,tARCkg
  151.         CALL WA
  152.         LD (sRANGE+12),A
  153.         ADD A,2
  154.         LD (sSCAN+12),A
  155.         INC HL
  156.         LD A,(HL)
  157.         LD (BFORCE+1),A
  158.         RET
  159.  
  160. tARChu  DEFB 2,3, 2,4, 2,5 ;дальность+2/сила
  161. tARCkg  DEFB 1,4, 1,6, 2,6
  162.  
  163.  
  164. HvThor  DEFB 2,2, 3,2, 3,3, 4,4 ;скорость лошади 0-3
  165.  
  166. cHORSE  ;расчёт скорости лошадей
  167.         LD A,(kHORSE)
  168.         EX AF,AF
  169.         LD A,(MASTER)
  170.         OR A
  171.         LD A,(hHORSE)
  172.         JR Z,cHH1
  173.         EX AF,AF
  174. cHH1    LD HL,HvThor
  175.         PUSH HL
  176.         CALL WA
  177.         LD (HvTHs+8),A
  178.         INC HL
  179.         LD A,(HL)
  180.         LD (HvTDs+8),A
  181.         POP HL
  182.         EX AF,AF
  183.         CALL WA
  184.         LD (HvTHs+17),A
  185.         INC HL
  186.         LD A,(HL)
  187.         LD (HvTDs+17),A
  188.         RET
  189.  
  190. dMAGIC  ;--изменение маны (ix+6) для 16и героев
  191.         LD HL,mag_TM
  192.         LD A,(HL)
  193.         DEC (HL)
  194.         OR A
  195.         JR NZ,dMG6
  196.         LD (HL),5 ;к-во блоков -1
  197. dMG6    ADD A,A
  198.         ADD A,A
  199.         ADD A,A
  200.         ADD A,A ;x16
  201.         CALL N_IX
  202.         LD DE,16
  203.         LD B,16 ;число героев в блоке
  204. dMG0    LD A,(IX+0)
  205.         OR A
  206.         JR Z,dMGe
  207.         LD A,(IX+4)
  208.         LD HL,HEALTH+1
  209.         CALL WA
  210.         OR A
  211.         JR Z,dMGe
  212.         CP #80
  213.         LD A,(IX+6)
  214.         JR C,dMG1
  215.         ;креатуры
  216.         OR A
  217.         JR Z,dMG2
  218.         DEC (IX+6) ;dec маны
  219.         JR dMGe
  220. dMG2    LD A,(IX+5)
  221.         SUB 6 ;dec здоровья
  222.         JR NC,dMG3
  223.         XOR A
  224. dMG3    LD (IX+5),A
  225.         JR dMGe
  226. dMG1    ;маги
  227.         CP MANA
  228.         JR NC,dMGe
  229.         INC (IX+6)
  230. dMGe    ADD IX,DE
  231.         DJNZ dMG0
  232.         RET
  233.  
  234. ;-----скука/повороты
  235. SPLIN   CALL RND
  236.         AND 127
  237.         CP 102
  238.         RET NC
  239.         CALL C,N_IX
  240.         LD A,(IX+8)
  241.         INC A
  242.         RET NZ
  243.         LD A,(IX+4)
  244.         CP 9
  245.         JR C,spli1
  246.         SUB 9
  247. spli1   CP 7
  248.         RET NC
  249.         LD A,R
  250.         RRCA
  251.         LD A,(IX+2)
  252.         JR C,spli2
  253.         INC A
  254.         JR spli3
  255. spli2   DEC A
  256. spli3   AND 7
  257.         LD (IX+2),A
  258.         RET
  259.  
  260. ;----воcст крестьян----
  261.  
  262. peonN   ;подсчёт пеонов
  263.         LD HL,0 ;(L/H - лес/золт)
  264.         CALL loop_K
  265. pen0    LD A,(IX+0)
  266.         OR A
  267.         JR Z,pen1
  268.         LD A,(IX+13)
  269.         CP 7
  270.         JR Z,penG
  271.         CP 6
  272.         JR NZ,pen1
  273.         INC L ;лес
  274.         JR pen1
  275. penG    INC H ;золото
  276. pen1    ADD IX,DE
  277.         DJNZ pen0
  278.         RET ;HL
  279.  
  280. REpeon  ;восст пеонов
  281.         LD A,(TIC)
  282.         AND %111111
  283.         CP %110101
  284.         RET NZ
  285.         CALL peonN
  286.         LD DE,(peon_W)
  287.         LD A,L
  288.         CP E
  289.         JR C,reoW
  290.         LD A,H
  291.         CP D
  292.         RET NC
  293.         LD C,7;золото
  294.         JR reo1
  295. reoW    LD C,6;лес
  296. reo1    ;поиск любой базы
  297.         PUSH BC
  298.         LD B,16
  299. reo2    CALL RND
  300.         AND #1F
  301.         ADD A,#28
  302.         CALL B_IX
  303.         LD A,(IX+0)
  304.         OR A
  305.         JR Z,reo3
  306.         LD A,(IX+2)
  307.         OR A
  308.         JR Z,reobz
  309.         CP 10
  310.         JR Z,reobz
  311. reo3    DJNZ reo2
  312.         POP BC
  313.         RET ;база не найдена
  314. reobz   ;произв крестьянина
  315.         CALL HL_IX0
  316.         CALL stayON
  317.         LD A,(MASTER)
  318.         OR A
  319.         LD A,9
  320.         JR Z,reo5
  321.         XOR A
  322. reo5    EX AF,AF
  323.         LD A,1
  324.         CALL NEWHER
  325.         POP BC
  326.         RET NZ ;mem?
  327.         LD (IX+13),C ;тип
  328.         ;затормозить сборы отряда
  329.         LD A,(pntDEL)
  330.         ADD A,20 ;delay
  331.         LD (pntDEL),A
  332.         RET
  333. ;*L+
  334. WMUSIC  EQU 60535
  335.         ds WMUSIC-$
  336.  
  337.         DISP DSCR ;???
  338.         DEFS 6,#C9
  339.         JP outSND
  340. ;*B ..\BOBOV\CROW_B1.MUS ;0!
  341. ;*B ..\BOBOV\CROW_B2.MUS ;1
  342. ;*B ..\BOBOV\CROW_A2.MUS ;2
  343. ;*B ..\BOBOV\CROW_3.MUS  ;3
  344. ;*B ..\BOBOV\CROW_4.MUS  ;4
  345. ;*B ..\BOBOV\CROW_5.MUS  ;5
  346. ;*B ..\BOBOV\OSEN.MUS    ;6
  347. ;*B ..\BOBOV\X_TXY.MUS   ;7
  348.  
  349. ;---------начальный опрос пользователя------
  350. ;---эти п/п будут удалены
  351.  
  352. ITX01   DEFB 1,10,109,10, 25,62,50,48,79,10, 56,51,64,48,10
  353.         DEFB 55,48,10, 59,78,52,53,57, 127 ;нов.люд
  354. ITX02   DEFB 2,10,109,10, 25,62,50,48,79,10, 56,51,64,48,10
  355.         DEFB 55,48,10, 58,67,61,51,62,50, 127 ;нов.кунг
  356. ITX04   DEFB 4,10,109,10, 14,53,64,61,67,66,74,65,79,10
  357.         DEFB 50,10, 30,82,91,102,26,83, 127 ;exit
  358. ITX03   DEFB 3,10,109,10, 14,62,65,65,66,48,61,62,50,56,66,74,10
  359.         DEFB 56,51,64,67, 127 ;load
  360.  
  361.         macro ATRRs _hl,_bc,_e
  362.         LD HL,_hl
  363.         LD BC,_bc
  364.         LD E,_e
  365.         CALL ATRRBR
  366.         ENDM
  367.  
  368. ATRRBR  PUSHs
  369.         INC H
  370.         INC L
  371.         LD E,#40
  372.         CALL ATRBAR
  373.         POPs
  374.         JP ATRBAR
  375.  
  376.  
  377. NO_NUM  LD BC,#7000
  378. nnU0    DEC BC
  379.         LD A,C
  380.         OR B
  381.         JR NZ,nnU0
  382.         ;
  383.         LD BC,#F7FE
  384.         IN A,(C)
  385.         CPL
  386.         AND %11111
  387.         JR NZ,NO_NUM
  388.         LD B,#EF
  389.         IN A,(C)
  390.         CPL
  391.         AND %11111
  392.         JR NZ,NO_NUM
  393.         RET
  394.  
  395. NUMBER  LD BC,#F7FE
  396.         IN A,(C)
  397.         CPL
  398.         AND %11111
  399.         JR NZ,nmr1
  400.         LD B,#EF
  401.         IN A,(C)
  402.         CPL
  403.         AND %11110
  404.         JR Z,NUMBER
  405.         ;6-9
  406.         LD E,A
  407.         LD A,9
  408.         RR E
  409.         RR E
  410.         RET C
  411.         DEC A
  412.         RR E
  413.         RET C
  414.         DEC A
  415.         RR E
  416.         RET C
  417.         DEC A
  418.         RET
  419.         ;
  420. nmr1    LD E,A
  421.         LD A,1
  422.         RR E
  423.         RET C
  424.         INC A
  425.         RR E
  426.         RET C
  427.         INC A
  428.         RR E
  429.         RET C
  430.         INC A
  431.         RR E
  432.         RET C
  433.         INC A
  434.         RET
  435.  
  436. INIprn  CALL INIpr1
  437.         INC D
  438.         RET
  439.  
  440. INIpr1  PUSH DE
  441.         CALL PRINTS
  442.         POP DE
  443.         INC D
  444.         RET
  445.  
  446. INImg1  CALL STS
  447.         LD DE,#703
  448.         LD BC,#1C0B
  449.         CALL MU_BOX
  450.         ATRRs #703,#0B1C,#71
  451.         LD DE,#905
  452.         PUSH DE
  453.         LD HL,ITX01
  454.         CALL INIprn
  455.         LD HL,ITX02
  456.         CALL INIprn
  457.         LD HL,ITX03
  458.         CALL INIprn
  459.         LD HL,ITX04
  460.         CALL INIprn
  461.         POP HL
  462.         RET
  463.  
  464. INImg2  PUSH AF
  465.         DEC A
  466.         ADD A,A
  467.         ADD A,H
  468.         LD H,A
  469.         LD BC,#118
  470.         LD E,#72
  471.         CALL ATRBAR
  472.         POP AF
  473.         RET
  474.  
  475. INI123  DI
  476.         LD SP,STACK;#403E
  477.         CALL MEM6
  478.         CALL invTAB
  479.         CALL outSND
  480.         CALL MEM7
  481.         CALL INImg1
  482. ipp0    CALL NUMBER ;(1-4)
  483.         CP 5
  484.         JR NC,ipp00 ;секретная комбинация
  485.         CALL INImg2
  486.         CP 3
  487.         JP Z,INIlod ;загрузка отгрузки
  488.         JR C,INInew ;новая игра (1/2)
  489.         ;exit
  490.         CALL NO_NUM
  491.         LD DE,#808
  492.         LD BC,#0C05
  493.         CALL MU_BOX
  494.         ATRRs #808,#050C,#72
  495.         LD DE,#A0A
  496.         LD HL,ITX4
  497.         CALL PRINTS
  498.  
  499.         if 1==1
  500. ;NedoOS
  501. quitnedoos
  502.         call swapimer
  503.         im 1
  504.         ei
  505.         GET_KEY ;вычитать кнопку Y
  506.         QUIT
  507.        
  508.         else
  509.        
  510.         EI
  511.         LD B,120
  512. EEE     HALT
  513.         DJNZ EEE
  514.         ;exit
  515.         DI
  516.         IM 0
  517.         LD HL,#4000
  518.         LD DE,#4001
  519.         LD (HL),#44
  520.         LD B,#20
  521.         LDIR
  522.         XOR A
  523.         LD BC,#7FFD
  524.         OUT (C),A
  525.         JP 0
  526.         endif
  527.  
  528. ITX4    DEFB  25,67,10,56,10, 55,64,79,47,127
  529. ipp00   CP 8
  530.         JR C,ipp0
  531.          ;jr $
  532.         JP NC,NoDoIt
  533.  
  534. ITX1z   DEFB  29,59,62,54,61,62,65,66,74,10, 56,51,64,75,43,127;diff
  535. ITX11   DEFB  1,10,109,10, 26,49,75,71,61,48,79, 127;norm
  536. ITX12   DEFB  2,10,109,10, 27,62,50,75,72,53,61,61,48,79,127;high
  537.  
  538. INInew  ;нов
  539.         DEC A
  540.         LD (MASTER),A
  541.         CALL NO_NUM
  542.         LD DE,#D08
  543.         LD BC,#1309
  544.         CALL MU_BOX
  545.         ATRRs #D08,#0913,#60
  546.         LD DE,#F0A
  547.         PUSH DE
  548.         LD HL,ITX1z
  549.         CALL INIprn
  550.         LD HL,ITX11
  551.         CALL INIprn
  552.         LD HL,ITX12
  553.         CALL INIprn
  554. ipp1    CALL NUMBER
  555.         CP 3
  556.         JR NC,ipp1
  557.         POP HL
  558.         PUSH AF
  559.         ADD A,A
  560.         ADD A,H
  561.         LD H,A
  562.         LD BC,#10F
  563.         LD E,#7B
  564.         CALL ATRBAR
  565.         POP AF
  566.         DEC A
  567.         LD (DIFFIC),A
  568.         CALL NO_NUM
  569.         JP LODnew
  570.  
  571. ITX3z   DEFB 31,58,48,54,56,66,53,10, 61,62,60,53,64,127
  572. ITX3x   DEFB 62,66,59,62,54,53,61,61,62,57,10, 56,51,64,75,43,10,127
  573.  
  574. ndi0    LD A,(LEVEL);1/2-(+/-Level);3-(on/off) убить всех;  6-выход
  575.         INC A
  576.         CP 10
  577.         LD L,0
  578.         JR C,ndi1
  579.         LD L,1
  580.         SUB 10
  581. ndi1    LD H,A
  582.         LD (NDIstr+2),HL
  583.         LD A,(MORTE)
  584.         LD (NDIstr+7),A
  585.         LD HL,NDIstr
  586.         LD DE,#0
  587.         CALL PRINTS
  588.         ;----изм парам
  589.         CALL NO_NUM
  590.         CALL NUMBER
  591.         CP 6
  592.         RET Z ;вых
  593.         LD HL,LEVEL
  594.         CP 2
  595.         JR Z,ndiLP
  596.         JR C,ndiLM
  597.         CP 3
  598.         JR NZ,ndi0
  599.         LD A,(MORTE)
  600.         XOR 86
  601.         LD (MORTE),A
  602.         JR ndi0
  603. ndiLM   LD A,(HL)
  604.         DEC (HL)
  605.         OR A
  606.         JR NZ,ndi0
  607.         LD (HL),16
  608.         JR ndi0
  609. ndiLP   LD A,(HL)
  610.         INC (HL)
  611.         CP 16
  612.         JR C,ndi0
  613.         LD (HL),0
  614.         JR ndi0
  615.  
  616. INIlod  ;загр. сост
  617.         CALL NO_NUM
  618.         LD DE,#F01   ;номер отгр
  619.         LD BC,#1606
  620.         CALL MU_BOX
  621.         ATRRs #F01,#0616,#68
  622.         LD DE,#1103
  623.         LD HL,ITX3z
  624.         CALL INIprn
  625.         DEC D
  626.         LD HL,ITX3x
  627.         CALL PRINTS
  628.         PUSH DE
  629.         LD A,%11000101
  630.         LD HL,ATR+596
  631.         LD (HL),A
  632.         PUSH HL
  633. ppi4    CALL NUMBER
  634.         CP 9
  635.         JR NC,ppi4
  636.         POP HL
  637.         LD (HL),#70
  638.         POP DE
  639.         PUSH AF
  640.         CALL PRINT
  641.         CALL NO_NUM
  642.        
  643.         if 1==0
  644.        
  645.         LD DE,#407  ;дисковод  отгр
  646.         LD BC,#1608
  647.         CALL MU_BOX
  648.         ATRRs #407,#0816,#69
  649.         LD DE,#609
  650.         LD HL,TXdsT1
  651.         CALL INIpr1
  652.         LD HL,TXdsT2
  653.         CALL INIpr1
  654.         LD HL,TXdsk2
  655.         CALL INIpr1
  656.         LD HL,TXdsk3
  657.         CALL PRINTS
  658.         PUSH DE
  659.         LD HL,ATR+314
  660.         LD (HL),#69+#80
  661.         PUSH HL
  662.         CALL A_or_B
  663.         LD (DISK_T),A
  664.         POP HL
  665.         LD (HL),#71
  666.         ADD A,12
  667.         POP DE
  668.         CALL PRINT
  669.        
  670.         endif
  671.        
  672.         CALL MEM6
  673.         POP AF
  674.         DEC A
  675.         JP LODgam
  676.  
  677.         if 1==0
  678.  
  679. TXdsT1  DEFB 14,65,66,48,50,74,66,53,10, 30,82,91,102,26,83, 127 ;вст.ТР-ДОС
  680. TXdsT2  DEFB 52,56,65,58,10, 65,10, 62,66,51,64,67,55,58,48,60,56, 127 ;д с отгр
  681.  
  682. A_or_B  ;возвр: 0/1 - A/B
  683.         NOP
  684.         LD BC,#7FFE
  685.         IN A,(C)
  686.         AND %10000
  687.         LD A,1
  688.         RET Z
  689.         LD B,#FD
  690.         IN A,(C)
  691.         AND %1
  692.         RET Z
  693.         JR NZ,A_or_B
  694.  
  695. TXdsk1  DEFB 14,65,66,48,50,74,66,53,10, 52,56,65,58,10, 2,127 ;insert d2
  696. TXdsk2  DEFB 56,10, 67,58,48,54,56,66,53,10, 56,60,79,127 ;и укажите имя
  697. TXdsk3  DEFB 52,56,65,58,62,50,62,52,48,10, 87,12,90,13,88,43,10,127 ;д-ва
  698.  
  699. INI_D2  CALL MEM7
  700.         CALL STS
  701.         LD DE,#105  ;дисковод c диском 2
  702.         LD BC,#1607
  703.         CALL MU_BOX
  704.         ATRRs #105,#0716,#7A
  705.         LD DE,#307
  706.         LD HL,TXdsk1
  707.         CALL INIpr1
  708.         LD HL,TXdsk2
  709.         CALL INIpr1
  710.         LD HL,TXdsk3
  711.         CALL PRINTS
  712.         PUSH DE
  713.         LD HL,ATR+184
  714.         LD (HL),#7A;+#80
  715.         PUSH HL
  716.         CALL A_or_B
  717.         LD (DISK_2),A
  718.         POP HL
  719.         LD (HL),#72
  720.         ADD A,12
  721.         POP DE
  722.         CALL PRINT
  723.         RET
  724.  
  725.         endif
  726.  
  727.         db " *    THIS IS A SOME OF TEXT.   "
  728.         db " *    GENS4 RULEZ FOREVER :-)   "
  729.         db " *    AMIGA - SUXX & MUSTDIE!   "
  730.         db " *    COMING SOON NEW LEVELS!   "
  731.         db " * WHY DON'T WE DO IT IN A ROAD?"
  732.         db " *    MY PHONE IS 812-1433303   "
  733.         db " * "
  734.  
  735. BF_256  DEFS 1024,#BF
  736. LOD1st  ;первичн загр
  737.  
  738.         if 1==0
  739.  
  740.         CALL selD_2
  741.         CALL TR000
  742.         LD DE,#09
  743.         LD B,1
  744.         LD HL,BF_256
  745.         PUSH HL
  746.         CALL D_READ ;загр. табл.ф-лов
  747.         POP HL
  748.         JR C,LOD1st
  749.         ;проверка метки диска D2,F1
  750.         LD A,(HL)
  751.         CP #D2
  752.         JR NZ,LOD1st
  753.         INC HL
  754.         LD A,(HL)
  755.         CP #F1
  756.         JR NZ,LOD1st
  757.         INC HL
  758.         ;перенос тб.ф-лов
  759.         LD DE,WX_LEN
  760.         LD BC,numFL
  761.         LDIR
  762.        
  763.         endif
  764.        
  765.         ;выбрать: князь или гризольда?
  766.         LD A,(MASTER) ;в зависимости от того, за кого играем
  767.         OR A
  768.         RET Z
  769.         CALL MEM6
  770.         LD HL,WGRIZ
  771.         LD DE,#DC00
  772.         LD BC,1024
  773.         LDIR
  774.         RET
  775.  
  776. INXbad  DEFB 26,72,56,49,58,48,10, 71,66,53,61,56,79,10, 56,90,56,59,56, 127
  777. INXba2  DEFB 62,66,51,64,67,55,58,48,10, 61,53,10, 61,48,57,52,53,61,48, 127
  778.  
  779. LODbad  DI
  780.         CALL MEM7
  781.         CALL STS
  782.         LD HL,WFONT
  783.         LD (FONT),HL
  784.         LD DE,#204  ;ошибка чтения
  785.         LD BC,#1706
  786.         CALL MU_BOX
  787.         ATRRs #204,#0617,#F2
  788.         LD DE,#406
  789.         LD HL,INXbad
  790.         CALL INIpr1
  791.         LD HL,INXba2
  792.         CALL PRINTS
  793.         ;
  794. lggB    LD BC,#7FFE
  795.         IN A,(C)
  796.         AND %1
  797.         JR NZ,lggB
  798.         ;
  799.         LD HL,ATR
  800.         LD DE,ATR+1
  801.         LD BC,767
  802.         LD A,%00110110
  803.         LD (HL),A
  804.         OUT (254),A
  805.         LDIR
  806.         CALL INImg1
  807.         LD A,3
  808.         CALL INImg2
  809.        
  810.         if 1==1
  811.         jp quitnedoos
  812.         else
  813.         JP INIlod
  814.         endif
  815.  
  816. invTAB  ;постр табл инв байтов для монстров 6:#C300
  817.         LD HL,#C300
  818.         XOR A
  819. itq0    PUSH AF
  820.         LD C,0
  821.         RRCA
  822.         RL C
  823.         RRCA
  824.         RL C
  825.         RRCA
  826.         RL C
  827.         RRCA
  828.         RL C
  829.         RRCA
  830.         RL C
  831.         RRCA
  832.         RL C
  833.         RRCA
  834.         RL C
  835.         RRCA
  836.         RL C
  837.         LD (HL),C
  838.         POP AF
  839.         INC HL
  840.         INC A
  841.         JR NZ,itq0
  842.         RET
  843.  
  844. NDIstr  DEFB 112,109,0,0,10,60,109,0,127
  845. NoDoIt
  846.         if 1==1
  847.         ;8-вход в режим отладки
  848.         CALL ndi0
  849.         JP INI123
  850.         else
  851.         ;86275-вход в режим отладки
  852.         LD A,44
  853.         CALL hexPRN
  854.         CALL hexDIG
  855.         LD H,A
  856.         PUSH HL
  857.         CALL hexDIG
  858.         POP HL
  859.         LD L,A
  860.         LD DE,ndi0-#6275
  861.         ADD HL,DE
  862.         CALL ndiS
  863.         JP INI123
  864. ndiS    JP (HL)
  865.         endif
  866.  
  867. hexDIG  CALL NO_NUM ;ввод #XX
  868.         CALL NUMBER
  869.         CALL hexPRN
  870.         ADD A,A
  871.         ADD A,A
  872.         ADD A,A
  873.         ADD A,A
  874.         PUSH AF
  875.         CALL NO_NUM
  876.         CALL NUMBER
  877.         CALL hexPRN
  878.         POP BC
  879.         ADD A,B
  880.         RET
  881.         ;
  882. hexPRN  PUSH AF
  883.         LD DE,#17
  884.         CALL PRINT
  885.         POP AF
  886.         RET
  887.  
  888. WGRIZ
  889.         incbin "data/wgrizold.dat"
  890. ;-------------------
  891.         ent ;ENDD
  892. ;----исполняются отседа
  893.  
  894. lggTRY  DEFB 50
  895.  
  896. LODgam  ;восст игры A=0-7
  897.  
  898.         if 1==1
  899.         add a,'1'
  900.         ld (savgamletter),a
  901.        
  902.         call swapimer
  903.         ;im 1
  904.        
  905.         ld de,savgamfilename
  906.         OS_OPENHANDLE
  907.         or a
  908.         jr nz,badbad
  909.         push bc
  910.         LD de,G_DATA ;отгрузка идёт с #7700
  911.         ld hl,0x4900 ;size
  912.         OS_READHANDLE
  913.         pop bc
  914.         OS_CLOSEHANDLE
  915.        
  916.         call swapimer
  917.         ;im 2
  918.        
  919.         CALL DECODE
  920. badbad
  921.         push af
  922.         CALL LDItmp
  923.         pop af
  924.         JP nz,LODbad ;ошибка загрузки/нет данных об игре
  925.        
  926.         else
  927.  
  928.         ADD A,A
  929.         ADD A,A
  930.         ADD A,A
  931.         ADD A,4 ;тр:4,12,20,28,36,44,52,60
  932.         LD D,A ;трек
  933.         LD A,5 ;к_во ретрай-попыток
  934.         LD (lggTRY),A
  935.         LD A,(DISK_T)
  936.         LD (tDRIVE),A
  937.         PUSH DE
  938.         CALL TR000
  939.         POP DE
  940.         LD HL,G_DATA
  941.         LD A,5
  942. lgg0    LD SP,#403E
  943.         PUSH AF
  944.         CP 1
  945.         LD B,16
  946.         JR NZ,lgg1
  947.         LD B,9
  948. lgg1    LD E,1
  949. lgg11t  PUSH DE
  950.         CALL POS
  951.         POP DE
  952. lgg11   PUSHs  ;чтение отгрузки
  953.         XOR A
  954.         LD (SIDE),A
  955.         LD B,1
  956.         PUSH DE
  957.         DI
  958.         CALL d_rea_
  959.         DI
  960.         POP DE
  961.         JR NC,SEC_ok
  962.           CALL TR000 ;обр. ошибки
  963.           POPs
  964.           LD A,(lggTRY)
  965.           DEC A
  966.           LD (lggTRY),A
  967.           OR A
  968.           JR NZ,lgg11t
  969.           POP AF
  970. badbad    CALL LDItmp
  971.           JP LODbad
  972. SEC_ok  POPs
  973.         INC E
  974.         INC H
  975.         DJNZ lgg11
  976.         INC D
  977.         POP AF
  978.         DEC A
  979.         JR NZ,lgg0
  980.         CALL DECODE
  981.         JR NZ,badbad;ошибка загрузки/нет данных об игре
  982. lgg_OK 
  983.         endif
  984.         CALL LDItmp
  985.         LD A,(DISK_T)
  986.         LD (SAVDSK),A
  987.         JP CONTgm  ;перейти к диску 2
  988.  
  989. LDItmp  ;загр временного кода
  990.         DI
  991.         ;
  992.         CALL outSND
  993.         ;
  994.         LD HL,WMUSIC
  995.         LD DE,DSCR
  996.         LD BC,#1800
  997.         LDIR
  998.         ;
  999.         DI
  1000.         LD A,2
  1001.         LD (V_FLAG),A
  1002.         RET
  1003.  
  1004. outSND  ;выруби AY
  1005.         LD B,16
  1006. oss0    PUSH BC
  1007.         LD A,B
  1008.         DEC A
  1009.         LD BC,#FFFD
  1010.         OUT (C),A
  1011.         LD B,#BF
  1012.         CP 7
  1013.         LD A,0
  1014.         JR NZ,oss7
  1015.         CPL
  1016. oss7    OUT (C),A
  1017.         POP BC
  1018.         DJNZ oss0
  1019.         RET
  1020.  
  1021. LDI123  CALL LDItmp
  1022.         CALL INI123 ;->>
  1023. ;???
  1024. ;относятся к загрузке игры
  1025. ;*L+
  1026.         DEFS #FE00-$,98
  1027.         ;старт #fe00
  1028.         DI
  1029.         LD HL,#4000
  1030.         LD DE,#8000
  1031. swp5_2  LD C,(HL) ;обмен страниц 5 и 2
  1032.         LD A,(DE)
  1033.         LD (HL),A
  1034.         LD A,C
  1035.         LD (DE),A
  1036.         INC HL
  1037.         INC DE
  1038.         LD A,D
  1039.         CP #C0
  1040.         JR C,swp5_2
  1041.         JP JP_ST ;на старт игры
  1042.