home *** CD-ROM | disk | FTP | other *** search
/ Commodore Disk User Volume 4 #3 / Commodore_Disk_User_Vol.4_3_1991_-.d64 / doodaa (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  5KB  |  134 lines

  1. 0 l=l+1:ifl=1thenload"multiplexor",8,1
  2. 1 fort=0to179:poke1024+t,peek(7090+t):next
  3. 10 sys49316
  4. 20 poke53280,0:poke53281,15
  5. 30 poke53248+27,255
  6. 31 poke53248+28,255:poke53248+37,4:poke53248+38,6
  7. 40 c=20:fort=0to31:poke50240+t,1:poke50272+t,255:next
  8. 50 ford=0to3:c=87:fort=0to7:poke50176+k,c:c=c+24:poke50208+k,62+d*50:k=k+1
  9. 60 nextt,d
  10. 65 fort=0to31:poke50304+t,0:next
  11. 70 sys49920
  12. 71 goto20010
  13. 90 fort=0to31:d=d+.1:poke50208+t,peek(50208+t)+sin(d)*10:next:sys49920:return
  14. 100 print"[147] the control register is very difficult to follow so watch carefully"
  15. 101 d=0:gosub90:y=9:x=2:gosub102:goto190
  16. 102 print" the control register is very difficult to follow so watch carefully"
  17. 110 print"the control register is a mixture of"
  18. 120 print"msb,sprite data priority,multicolor-"
  19. 130 print"selection,sprite expand x and y and is  set out as follows:"
  20. 140 print" [176][192][178][192][178][192][178][192][178][192][178][192][178][192][178][192][174]                       [221] [221] [221] [221] [221] [221] [221] [221] [221]"
  21. 150 print" [173][192][177][192][177][192][177][192][177][192][177][192][177][192][177][192][189]"
  22. 170 print"  1 6 3 1 8 4 2 1                         2 4 2 6"
  23. 180 print"  8"
  24. 181 poke1024+y*40+x,160
  25. 182 return
  26. 190 print"if bit 128 is set to one this means thatthe sprite will appear in the";
  27. 200 print" msb area"
  28. 220 y$="":printy$;"press space to continue";:gosub50000
  29. 230 goto260
  30. 240 fort=15to24:printleft$(y$,t);"                                        ";:next
  31. 245 print"";
  32. 250 return
  33. 260 gosub240:x=x+2:gosub102
  34. 270 print"if bit 64 is set then the sprite will beexpanded in the x direction"
  35. 280 gosub50000
  36. 290 gosub240:x=x+2:gosub102
  37. 300 print"if bit 32 is set then the sprite will beexpanded in the y direction"
  38. 310 gosub50000:gosub240:x=x+2:gosub102
  39. 320 print"if bit 16 is set then the sprite will bebehind the screen data"
  40. 330 gosub50000:gosub240:x=x+2:gosub102
  41. 340 print"if bit 8 is set then the sprite will bein multicolour mode"
  42. 350 gosub50000:gosub240:x=x+2:gosub102
  43. 360 print"if bit 4 is set then the sprite will beset to on"
  44. 365 gosub50000:gosub240:x=x+2:gosub102
  45. 366 print"bit 2 is not used"
  46. 367 gosub50000:gosub240:x=x+2:gosub102
  47. 368 print"bit 1 is not used"
  48. 369 gosub50000:print"[147]"
  49. 370 return
  50. 400 print"these registers are the raster positions";:gosub90
  51. 410 print"for the next block of eight sprites"
  52. 420 print"if $c0a0 or 49312 was poked with a      $40 or 64"
  53. 430 print" then the actual raster position would"
  54. 440 print"be $30 or 48 because i have to subtract $10 or 16 so i can display";
  55. 450 print" the data"
  56. 460 print" this can be done with all four         registers"
  57. 470 gosub50000:print"[147]"
  58. 480 return
  59. 20010 print"[147][151]                                        ";
  60. 20020 print"[152]                                        ";
  61. 20030 print"[155]                                        ";
  62. 20040 print"[146]   the operating instructions for the   ";
  63. 20041 print"amazing multiplexor written by  balhazar";
  64. 20050 print"[155]                                        ";
  65. 20060 print"[152]                                  @     ";
  66. 20070 print"[151]                                        ";
  67. 20080 print"[144]                                        ";
  68. 20160 print" to use this multiplexor is very simple"
  69. 20170 print"it is like useing an expanded video chip";
  70. 20180 print"but a few rules must be followed"
  71. 20190 print"1...no more than eight (8) sprites must be in the same horizontal ";
  72. 20200 print"strip or they will flicker!"
  73. 20210 print"2...the irq at $0314 and $0315 must not be changed"
  74. 20220 print"        press any key to continue       ";
  75. 20221 fort=0to63:poke255*64+t,216:next
  76. 20230 gosub50000
  77. 20240 print""
  78. 20241 print"do you want decimal or hex numbers?(d/h)"
  79. 20242 get a$:ifa$="d"then30000
  80. 20243 ifa$<>"h"then20242
  81. 20250 print"[151]the locations to used by the multiplexor"
  82. 20260 print" $c000-$cfff  are used by the program"
  83. 20270 print" $c400-$c41f  are the 'x' positions of                each sprite"
  84. 20280 print" $c420-$c43f  are the 'y' positions of                each sprite"
  85. 20290 print" $c440-$c45f  are the colours for each                sprite"
  86. 20300 print" $c460-$c47f  are the whats for each                  sprite"
  87. 20310 print"              (simalar to $07f8-$07ff)"
  88. 20320 print" $c480-$c49f  is the control register"
  89. 20340 print" to update the sprites sys $c300"
  90. 20350 print" this plots their new positions into     memory"
  91. 20351 print" to start the multiplexor sys$c0a4"
  92. 20360 goto40000
  93. 30000 :
  94. 30250 print"[151]the locations to used by the multiplexor"
  95. 30260 print" 49152-53247  are used by the program"
  96. 30270 print" 50176-50207  are the 'x' positions of                each sprite"
  97. 30280 print" 50208-50239  are the 'y' positions of                each sprite"
  98. 30290 print" 50240-50303  are the colours for each                sprite"
  99. 30300 print" 50272-50303  are the whats for each                  sprite"
  100. 30310 print"              (simalar to 2040-2047)"
  101. 30320 print" 50304-50335  is the control register"
  102. 30340 print" to update the sprites sys 49920"
  103. 30350 print" this plots their new positions into     memory"
  104. 30360 print" to start the multiplexor sys 49316"
  105. 40000 print"        press any key to continue       ";
  106. 40010 gosub50000:gosub100
  107. 40011 print" $c0a0-$c0a3 or 49312-49315  a nought   means miss out that line"
  108. 40012 gosub400
  109. 40013 print" numbers can be directly poked into the  $c000 or 49152 onwards area"
  110. 40014 print" eg. poke 49152,90  (xpos)
  111. 40015 [153]" eg. poke 49174,90  (ypos)
  112. 40016 print" would print a sprite 90 down and 90    across if $c0a0-$c0a3 are set"
  113. 40018 print"        press any key to continue       ";
  114. 40019 gosub50000
  115. 40020 print"[147]the name for the routine is             'multiplexor'"
  116. 40021 print"this is for the routine you have bought"
  117. 40022 print"load it in using load"+chr$(34)+"multiplexor"+chr$(34)+",8,1"
  118. 40028 print"        press any key to continue       ";
  119. 40029 gosub50000
  120. 40100 print" press any key to load the menu"
  121. 40120 gosub50000
  122. 40130 poke53248+21,0
  123. 40131 poke53280,2
  124. 40132 open15,8,15,"i0:":close15:goto40133
  125. 40133 rem
  126. 40134 s$="menu":load"rtu",8,1
  127. 50000 reada:ifa=-1thenrestore:goto50000
  128. 50005 ford=0to51:next
  129. 50010 poke53248+28,a:geta$:ifa$=""then50000
  130. 50020 return
  131. 50030 data 255,1,2,4,8,16,32,64,128,3,6,12,24,48,96,192,96,48,24,12,6,3,128
  132. 50040 data 64,32,16,8,4,2,1,255,0,255,0,255,0,255,0,255,0,-1
  133. 60000 rem
  134.