Advertisement
glokyfull

maxdot12 source of hypnodot and beamdot

Mar 2nd, 2018
900
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.  
  3. ;
  4. ;  maxdot.s
  5. ;
  6. ;
  7. ;
  8.  
  9. COLFOND equ $0
  10. COLPIX  equ $777
  11. COLCOLFOND  equ COLFOND*$10000+COLFOND
  12. COLCOLPIX   equ COLPIX*$10000+COLPIX
  13. TYPE2PLAN   equ 1
  14. TYPE4PLAN   equ 2
  15. typedot equ TYPE2PLAN
  16. enablesound equ 1
  17. weirdos equ 0 1   = 0 = tunnel hyperespace
  18.  
  19. SUBXCTE equ 200
  20. SUBYCTE equ 120
  21.  
  22.     ifeq typedot-TYPE2PLAN
  23. nbdot   equ 7008+48-enablesound*540         ; 6516 point
  24. taillecheatcode equ (nbdot*54-65536-65536-64000+54*4+6)
  25.     endc
  26.     ifeq typedot-TYPE4PLAN
  27. nbdot   equ 8208-enablesound*30*12
  28. taillecheatcode equ (nbdot*52-65536-65536-64000+54*4+6)
  29.     endc
  30. ;nbdot  equ  8244+12 7008+960   ; doit etre multiple de 12
  31.  
  32. pcstart:
  33.  
  34.  
  35.  
  36.     clr.l -(sp)
  37.     move.w #$20,-(sp)
  38.     trap #1
  39.     addq.l #6,sp
  40.  
  41.     lea xxx-640,a0
  42.     moveq #2,d2
  43. .loop0
  44.     moveq #0,d0
  45.     move.w #320-1,d1
  46. .loop
  47.     move.w d0,(a0)+
  48.     addq.w #1,d0
  49.     dbf d1,.loop
  50.     dbf d2,.loop0
  51.    
  52.     ;jsr preparePrimetable
  53.    
  54.    
  55.     ;jsr initmemall
  56.     jsr calculpositionsX
  57.     ifeq typedot-TYPE2PLAN
  58.     jsr reserve_screen
  59.     jsr createClearcode
  60.     jsr makecreate1
  61.     jsr codegencreate1
  62.     endc
  63.     ifeq typedot-TYPE4PLAN
  64.     jsr reserve_screen
  65.     jsr mkclearcode4plan
  66.     jsr makecreate2
  67.     jsr codegencreate1
  68.     endc
  69.     ;jsr createclearcode
  70.     ;jsr calculpositionsX
  71.     ;jsr codegencreate2
  72.     jsr preparesinusfory
  73.    
  74.     lea lutmul160-400*2,a0
  75.     move.w #160,d0
  76.     moveq #2,d3
  77. .loop1
  78.     moveq #0,d1
  79.     move.w #199,d2
  80. .loop2  move d1,(a0)+
  81.         move d1,(a0)+
  82.         add d0,d1
  83.         dbf d2,.loop2
  84.     dbf d3,.loop1
  85.    
  86.    
  87.     clr.w poslisteY
  88.     move.w #nbdot/12,d7
  89. .1  move.w d7,-(sp)
  90.     jsr calcsinusy
  91.     move.w (sp)+,d7
  92.     dbf d7,.1
  93. ;   illegal             ; not yet finished !
  94.  
  95.     ;dc.w $a00a
  96.     jsr _disable_mouse
  97.     ;clr.w poslisteY
  98.     move.b $ffff8260.w,systeme+36
  99.  
  100. ;   moveq #0,d0
  101. ;   ;moveq.w #12-1,d7
  102. ;   move.l screen1,a0
  103. ;   addq.l #4,a0
  104. ;   jsr clearcode+4
  105.    
  106. ;   move.l screen7,a0
  107. ;   addq.l #4,a0
  108. ;   moveq.w #12-1,d7
  109. ;   jsr clearcode+4
  110.  
  111.  
  112.     move.w #0,-(sp)
  113.     move.l $44e.w,d0
  114.     move.l d0,-(sp)
  115.     move.l d0,-(sp)
  116.     move.w #5,-(sp)     ;setscren
  117.     trap #14
  118.     lea 12(sp),sp
  119.    
  120.     move.w #$25,-(sp)
  121.     trap #14
  122.     addq.l #2,sp
  123.    
  124.     ifne enablesound
  125.         ;moveq #0,d0
  126.         jsr sound
  127.     endc
  128.    
  129.     lea systeme,a0
  130.     movem.l $ffff8240.w,d0-d7
  131.     movem.l d0-d7,(a0)
  132.     ifeq typedot-TYPE2PLAN
  133.     jsr spreadpicturebatch
  134.     endc
  135.     lea systeme,a0
  136.    
  137.     move.l $466.w,d0
  138. .wait   cmp.l $466,d0
  139.     beq.s .wait
  140.    
  141.    
  142.  
  143.     move.w #$2700,sr
  144.     move.l $70.w,32(a0)
  145.     move.l #itvbl,$70.w
  146.     move.w #$2300,sr
  147.    
  148.     jmp bigmainloop12vbl
  149.  
  150.    
  151. towerofpixset:
  152.     or.b d5,0(a0)           ; d5 = 128
  153.     or.b d4,0(a0)           ; d4 = 64  
  154.     or.b d3,0(a0)           ; d3 = 32
  155.     bset.b d1,0(a0)         ; d1 = 4 2^4=16
  156.     or.b d2,0(a0)           ; d2 = 8
  157.     or.b d1,0(a0)           ; d1 = 4
  158.     bset.b d0,0(a0)         ; d0 = 1 2^1=2
  159.     or.b d0,0(a0)           ; d0 = 1
  160.    
  161.     or.b d5,1(a0)           ; d5 = 128
  162.     or.b d4,1(a0)           ; d4 = 64  
  163.     or.b d3,1(a0)           ; d3 = 32
  164.     bset.b d1,1(a0)         ; d1 = 4 2^4=16
  165.     or.b d2,1(a0)           ; d2 = 8
  166.     or.b d1,1(a0)           ; d1 = 4
  167.     bset.b d0,1(a0)         ; d0 = 1 2^1=2
  168.     or.b d0,1(a0)           ; d0 = 1
  169.  
  170. ;listvalueReg:      ;dc.b 1,4,8,32,64,128
  171. ;   moveq #1,d0
  172. ;   moveq #4,d1
  173. ;   moveq #8,d2
  174. ;   moveq #32,d3
  175. ;   moveq #64,d4
  176. ;   moveq #-128,d5
  177. ;   move.l #96000,d7
  178. ;   move.l screen2,d6   base 64k
  179. ;   rts
  180.  
  181. ;copiefondon12screen
  182. ;   move.l screen2,a0
  183. ;   pea .suite
  184. ;.rt    addq #4,a0
  185. ;  
  186. ;   lea -32000(a0),a1
  187. ;   lea 32000(a0),a2
  188. ;   lea 32000(a2),a3
  189. ;   lea 32000(a3),a4
  190. ;   lea 32000(a4),a5
  191. ;   move.w #3999,d0
  192. ;   lea picture2plan,a6
  193. ;.loop
  194. ;   move.l (a6)+,d1
  195. ;   move.l d1,(a0)+
  196. ;   move.l d1,(a1)+
  197. ;   move.l d1,(a2)+
  198. ;   move.l d1,(a3)+
  199. ;   move.l d1,(a4)+
  200. ;   move.l d1,(a5)+
  201. ;   addq.l #2,a0
  202. ;   addq.l #2,a1
  203. ;   addq.l #2,a2
  204. ;   addq.l #2,a3
  205. ;   addq.l #2,a4
  206. ;   addq.l #2,a5
  207. ;   dbf d0,.loop
  208. ;   rts
  209. ;.suite
  210. ;   move.l screen3,a0
  211. ;   jmp .rt
  212.  
  213.     ifeq typedot-TYPE2PLAN 
  214. createClearcode:
  215.     move.w #$2140,d0        move.l d0,dep(a0) opcode
  216.     move.w #2000-1,d1
  217.     lea clearcode,a0
  218.     move.l #$41e83e80,(a0)+     ; lea 16000(a0),a0
  219.     moveq #0,d2
  220. .loop
  221.     move.w d0,(a0)+
  222.     move.w d2,(a0)+
  223.     addq.w #8,d2
  224.     dbf d1,.loop
  225.     move.l #$51CFE0BA,(a0)+     ; dbf d7,codeclear
  226.     move.w #$4e75,(a0)+
  227.     rts
  228.     endc
  229.     ifeq typedot-TYPE4PLAN
  230. mkclearcode4plan
  231. ;   add.l #32000*3,a0
  232. ;   moveq #0,d0
  233. ;   moveq #0,d1
  234. ;   moveq #0,d2
  235. ;   moveq.l #$0,d3
  236. ;   moveq.l #$0,d4
  237. ;   moveq #0,d5
  238. ;   moveq #0,d6
  239. ;   moveq #0,d7
  240. ;   move.l d0,a1
  241. ;   move.l d0,a2
  242. ;   move.l d0,a3
  243. ;   move.l d0,a4
  244. ;   move.l d0,a5
  245. ;   move.l d0,a6
  246. ;   rept 1714 1714
  247. ;   movem.l d0-d7/a1-a6,-(a0)
  248. ;   endr
  249. ;   movem.l d0-d3,-(a0)
  250.    
  251.     lea codeeff4plan,a0
  252.     move.l #$d1fc0001,(a0)+
  253.     move.w #$7700,(a0)+
  254.  
  255.     move.w #$7000,d0
  256.     move.w #$200,d1
  257.     moveq #7,d2
  258. .loop
  259.     move.w d0,(a0)+
  260.     add d1,d0
  261.     dbf d2,.loop
  262.     move.w #$2240,d0
  263.     moveq #5,d2
  264. .loop2
  265.     move.w d0,(a0)+
  266.     add d1,d0
  267.     dbf d2,.loop2
  268.  
  269.     move.w #1714-1,d2
  270.     move.l #$48e0ff7e,d0
  271. .loop3  move.l d0,(a0)+
  272.     dbf d2,.loop3
  273.     swap d0
  274.     move.w d0,(a0)+
  275.     move.w #$F000,(a0)+
  276.     move.w #$4e75,(a0)+
  277.     rts
  278.     endc
  279. ;reserve_screens:
  280. ;   move.l #65536*13+32768,d0
  281. ;   jsr getMem
  282. ;   ; the second screen must be multiple of 64k
  283. ;   ; the second+6 screen must be multiple of 64k
  284. ;   ; casse tete, provisoirement je reserve bcp plus de memoire
  285. ;   add.l #32000+65536,d0
  286. ;   clr.w d0
  287. ;   move.l d0,screen2
  288. ;   add.l #96000,d0
  289. ;   move.l d0,screen3
  290. ;
  291.  
  292. ;   reserve 6 premier screen
  293.     ifeq typedot-TYPE2PLAN
  294. reserve_screen
  295.     ;move.l #65536+32000*6+32000,d0
  296.     ;jsr getMem
  297.     lea bufferscreens,a0
  298.     move.l a0,d0
  299.         move.l d0,d1
  300.     add.l #65536+32000,d0
  301.     clr.w d0
  302.         move.l d0,d2
  303.     sub.l #32000,d2         ; zone memoire de d1 a d2
  304.     move.l d0,screen2       ; screen2.H dans d6 au sein du code genere pour les 6 premiers ecrans
  305.     move.l d2,screen1
  306.     add.l #32000,d0
  307.     move.l d0,screen3
  308.     add.l #32000,d0
  309.     move.l d0,screen4
  310.     add.l #32000,d0
  311.     move.l d0,screen5
  312.     add.l #32000,d0
  313.     move.l d0,screen6
  314.     move.l d0,d3
  315.         add.l #32000,d3     d3 start adresse zone memoire a la fin
  316.         move.l d3,d4
  317.         sub.l d1,d4         ; d4 = taille totale
  318.         move.l #65536+32000*6+32000,d5  ; taille alloué
  319.         sub.l d4,d5         ; d5 = taille zone memoire de fin
  320.    
  321.     move.l d1,bank1
  322.     sub.l d1,d2
  323.     move.l d2,taillebank1
  324.     move.l d3,bank2
  325.     move.l d5,taillebank2
  326.    
  327.     move.l #bufferscreens+65536+32000*6+32000,d0
  328.     ;jsr getMem
  329.     ;move.l a0,d0
  330.         move.l d0,d1
  331.     add.l #65536+32000,d0
  332.     clr.w d0
  333.         move.l d0,d2
  334.     sub.l #32000,d2     ; zone memoire de d1 a d2
  335.     move.l d2,screen7
  336.         move.l d1,bank3
  337.         sub.l d1,d2
  338.         move.l d2,taillebank3
  339.     move.l d0,screen8       ; screen8.h dans d6 au sein du code genere pour les 6 ecrans suivant
  340.     add.l #32000,d0
  341.     move.l d0,screen9
  342.     add.l #32000,d0
  343.     move.l d0,screen10
  344.     add.l #32000,d0
  345.     move.l d0,screen11
  346.     add.l #32000,d0
  347.     move.l d0,screen12
  348.         move.l d0,d3
  349.         add.l #32000,d3
  350.         move.l d3,d4
  351.         sub.l d1,d4     ; d4 = taille totale
  352.     move.l #65536+32000*6+32000,d5
  353.     sub.l d4,d5
  354.     move.l d3,bank4
  355.     move.l d5,taillebank4
  356.    
  357.     rts
  358.     endc
  359.     ifeq typedot-TYPE4PLAN
  360. reserve_screen
  361.     ;move.l #65536+32000*6+32000,d0
  362.     ;jsr getMem
  363.     lea bufferscreens,a0
  364.     move.l a0,d0
  365.         move.l d0,d1
  366.     add.l #65536+32000,d0
  367.     clr.w d0
  368.         move.l d0,d2
  369.     sub.l #32000,d2         ; zone memoire de d1 a d2
  370.     move.l d0,screen2       ; screen2.H dans d6 au sein du code genere pour les 6 premiers ecrans
  371.     move.l d2,screen1
  372.     add.l #32000,d0
  373.     move.l d0,screen3
  374. ;   add.l #32000,d0
  375. ;   move.l d0,screen4
  376. ;   add.l #32000,d0
  377. ;   move.l d0,screen5
  378. ;   add.l #32000,d0
  379. ;   move.l d0,screen6
  380.     move.l d0,d3
  381.         add.l #32000,d3     d3 start adresse zone memoire a la fin
  382.         move.l d3,d4
  383.         sub.l d1,d4         ; d4 = taille totale
  384.         move.l #65536+32000*3+32000,d5  ; taille alloué
  385.         sub.l d4,d5         ; d5 = taille zone memoire de fin
  386.    
  387.     move.l d1,bank1
  388.     sub.l d1,d2
  389.     move.l d2,taillebank1
  390.     move.l d3,bank2
  391.     move.l d5,taillebank2
  392.    
  393.     move.l #bufferscreens+65536+32000*3+32000,d0
  394.     ;jsr getMem
  395.     move.l #bufferscreens+65536+32000*3+32000,d0
  396.     ;move.l a0,d0
  397.         move.l d0,d1
  398.     add.l #65536+32000,d0
  399.     clr.w d0
  400.         move.l d0,d2
  401.     sub.l #32000,d2     ; zone memoire de d1 a d2
  402.     move.l d2,screen4
  403.         move.l d1,bank3
  404.         sub.l d1,d2
  405.         move.l d2,taillebank3
  406.     move.l d0,screen5       ; screen8.h dans d6 au sein du code genere pour les 6 ecrans suivant
  407.     add.l #32000,d0
  408.     move.l d0,screen6
  409. ;   add.l #32000,d0;
  410. ;   move.l d0,screen10
  411. ;   add.l #32000,d0
  412. ;   move.l d0,screen11
  413. ;   add.l #32000,d0
  414. ;   move.l d0,screen12
  415.         move.l d0,d3
  416.         add.l #32000,d3
  417.         move.l d3,d4
  418.         sub.l d1,d4     ; d4 = taille totale
  419.     move.l #65536+32000*3+32000,d5
  420.     sub.l d4,d5
  421.     move.l d3,bank4
  422.     move.l d5,taillebank4
  423.    
  424.     rts
  425.     endc
  426. shrinka0
  427.     ; de a0 a a0 + 50, virer tout les nop
  428.     movem.l d0/d1/d2/a1,-(sp)
  429.     move.w #$4e71,d1
  430.     move.l a0,a1
  431.     move.w #25,d2
  432. .loop:
  433.     move.w (a0)+,d0
  434.     cmp.w d1,d0     ; d0 = nop ?
  435.     beq.s .1       
  436.     move d0,(a1)+
  437. .1  dbf d2,.loop
  438.    
  439.     move.l a1,-(sp)
  440.     cmp.l a1,a0
  441.     beq.s .2        ; branchement si cas ou aucun nop de trouvé
  442. .3  move.w #$4e71,(a1)+
  443.     cmp.l a1,a0
  444.     bne.s .3
  445. .2 
  446.     move.l (sp)+,a0
  447.     movem.l (sp)+,d0/d1/d2/a1
  448.     rts
  449.    
  450.     ifeq 1
  451. shrinka0bis
  452.     ; de a0 a a0 + 50, virer tout les nop
  453.     movem.l d0/d1/d2/a1,-(sp)
  454.     move.w #$4e71,d1
  455.     move.l a0,a1
  456.     move.w #25,d2
  457. .loop:
  458.     move.w (a0)+,d0
  459.     cmp.w d1,d0     ; d0 = nop ?
  460.     beq.s .1       
  461.     move d0,(a1)+
  462. .1  dbf d2,.loop
  463.    
  464.     move.l a1,-(sp)
  465.     cmp.l a1,a0
  466.     beq.s .2        ; branchement si cas ou aucun nop de trouvé
  467. .3  move.w #$4e71,(a1)+
  468.     cmp.l a1,a0
  469.     bne.s .3
  470. .2 
  471.     move.l (sp)+,a0
  472.     movem.l (sp)+,d0/d1/d2/a1
  473.     rts
  474.     endc
  475. fillnopa0
  476.     move.w #$4e71,d2
  477.     move.w #25*12-1,d0          ; nombre de nop a determiner
  478. .1  move.w d2,(a0)+
  479.     dbf d0,.1
  480.     lea -25*12*2(a0),a0
  481.     rts
  482.     ifeq typedot-TYPE4PLAN
  483. makecreate2
  484.     lea data2,a0
  485.     bra automodifaralonge
  486.     endc
  487. makecreate1
  488.     ifeq typedot-TYPE2PLAN
  489.     lea data1,a0
  490.     endc
  491. automodifaralonge:
  492.     move.l (a0)+,d0
  493.     lea PLEASE1,a1
  494.     lea PLEASE2,a2
  495.     lea PLEASE3,a3
  496.     move.l d0,(a1)+
  497.     move.l d0,(a2)+
  498.     move.l d0,(a3)+
  499.     move.w (a0)+,d0
  500.     move.w d0,(a1)+
  501.     move.w d0,(a2)+
  502.     move.w d0,(a3)+
  503.     lea PLEASE4,a1
  504.     lea PLEASE5,a2
  505.     lea PLEASE6,a3
  506.     move.l (a0)+,d0
  507.     move.l d0,(a1)+
  508.     move.l d0,(a2)+
  509.     move.l d0,(a3)+
  510.     move.w (a0)+,d0
  511.     move.w d0,(a1)+
  512.     move.w d0,(a2)+
  513.     move.w d0,(a3)+
  514.     move.l (a0)+,d0
  515.     move.l d0,PLEASE7
  516.     move.l (a0)+,d0
  517.     move.l d0,PLEASE8
  518.     move.l (a0)+,PLEASE9
  519.     rts
  520.     ifeq typedot-TYPE2PLAN
  521. data1
  522.     lea listeoffset2plan,a5     PLEASE1 a 3
  523.     move.w #$d1c7,24(a0)    PLEASE4 a 6
  524.     divu #54,d0             PLEASE7
  525.     lea 50(a0),a0
  526.     dc.l paramvbl
  527.     endc
  528.     ifeq typedot-TYPE4PLAN
  529. data2
  530.     lea listeoffset4plan,a5
  531.     nop
  532.     nop
  533.     nop
  534.     divu #52,d0
  535.     lea 50-2(a0),a0
  536.     dc.l paramvbl2
  537.     endc
  538.        
  539. codegencreate1
  540.    
  541.     ifgt taillecheatcode
  542.     move.l #bigcheatcode,bank5              ; normalement bank5
  543.     move.l #(nbdot*54-65536-65536-64000)+54*4+6,bank5+4 ; et bank5+4
  544.     endc
  545.     sf.b rtsfinish
  546.     lea towerofpixset,a1
  547.     lea listeX,a2           ; listeX polycrome wohohohoa listeX pour les hommes (balavoine)
  548.    
  549.     ;move.w #7008-24-12,cpt
  550.     move.w #nbdot-12-12,cpt
  551.    
  552.     ; gestion 12 premier points
  553.     ;
  554. * * * * x1
  555.  
  556. * * * x1 x2
  557.  
  558. * * x1 x2 x3
  559.  
  560. * x1 x2 x3 x4  dans le cas ou y'a 5 truc ici y'a 12
  561.     moveq #12-1,d3
  562.     lea cheatcodedebut,a0
  563.     bsr fillnopa0
  564.     moveq #$F,d5     
  565. .bcldebut0:
  566.     move.l #$3c192046,(a0)+
  567.     move.l a2,a4
  568.     move.w #11,d2
  569.     sub.w d3,d2     ; au debut = 0 = un tour de boucle = x1 seulement
  570. PLEASE1 equ *
  571.     nop
  572.     nop
  573.     nop lea .listeoffset,a5     ***** listeoffset4plan
  574.     add.w d3,a5
  575.     add.w d3,a5     ; au debut listeoffset+22 =dernier ecran
  576.  
  577.     pea .suite2
  578.    
  579. .bcldebut1:
  580.     move.w (a2)+,d0         ; x1
  581.     move.w d0,d1
  582.     and.w d5,d1
  583.     sub d1,d0
  584.     add d1,d1
  585.     add d1,d1
  586.     move.l (a1,d1.w),d1     ; instruction bset correspondant a x mod 16
  587.     ;lsr #4,d0
  588.     ;lsl #3,d0
  589.     ;and.b #$F0,d0
  590.     lsr #1,d0           ; int (x/16)*8
  591.     add.w d0,d1
  592.     add.w (a5)+,d1
  593.     move.w 24-2(a5),d4
  594.     move.l d1,(a0,d4)       ; cg
  595.     dbf d2,.bcldebut1
  596.     rts
  597.    
  598. .suite2
  599. PLEASE4 equ *
  600.     move.w #$d1c7,24(a0)        ; D1C7 = add.l d7,a0  ; d7 = 96000 ***** nop nop nop pour create2
  601.     bsr shrinka0
  602.     move.l a4,a2
  603.     dbf d3,.bcldebut0
  604.     move.w #$4e75,(a0)+
  605.     addq #2,a2
  606. .autoto1:
  607.     move.l bank1,a0
  608.     move.l taillebank1,d0
  609.     subq.l #6,d0                ; pour metre le jmp adresse a la fin
  610. PLEASE7 equ *
  611.     divu #54,d0 **** divu52 pour create2
  612.     ext.l d0
  613.    
  614.     sub.w d0,cpt
  615.     bpl.s .itsok
  616.     ; sinon arg kefaire ca doit finir par un rts
  617.     add.w d0,cpt
  618.     move.w cpt,d0
  619.     move.w #0,cpt
  620.     st.b rtsfinish
  621. .itsok
  622.     moveq #0,d3
  623.     move.w d0,d3
  624.     subq #1,d3
  625.  
  626. .bcl0
  627.     move.l #$3c192046,(a0)+     <-  2 opcode :  
  628.                                 ; move.w (a1)+,d6
  629.                                 ; move.l d6,a0
  630.     lea 2(a2),a4
  631.  
  632.     moveq #11,d2
  633. PLEASE2 equ *
  634.     NOP
  635.     NOP
  636.     NOP
  637.     ;lea .listeoffset,a5        ; ***listeoffset4plan pour create2
  638.     bsr .bcldebut1
  639.  
  640. PLEASE5 equ *
  641.     move.w #$d1c7,24(a0)    *** nop nop nop pour create2    ; D1C7 = add.l d7,a0  ; d7 = 96000
  642. PLEASE8 equ *
  643.     lea 50(a0),a0           *** 50-2 pour create2
  644.    
  645.     move.l a4,a2
  646.     dbf d3,.bcl0
  647.     tst.b rtsfinish
  648.     beq.w .1
  649.  
  650. ************************************************** 12 derniers points
  651. ;PLEASE equ *
  652.     move.w #$4ef9,(a0)+
  653.     move.l #cheatcodefin,d3
  654.     move.l d3,(a0)
  655.     move.l d3,a0
  656.  
  657.     moveq #11,d3
  658.     ;lea cheatcodefin,a0
  659.     bsr fillnopa0
  660.  
  661.  
  662. .bcldebut2:
  663.     move.l #$3c192046,(a0)+
  664.     lea 2(a2),a4
  665.     move.w d3,d2
  666.     ;sub.w d3,d2        ; au debut = 11 dot a la fin 1 seulement
  667. PLEASE3 equ *
  668.     nop lea .listeoffset,a5    **** listeoffset4plan
  669.     nop
  670.     nop
  671.     bsr .bcldebut1
  672. PLEASE6 equ *
  673.     move.w #$d1c7,24(a0)    **** nop nop nop    ; D1C7 = add.l d7,a0  ; d7 = 96000
  674.     bsr shrinka0            *** shrinka0bis
  675.     move.l a4,a2
  676.     dbf d3,.bcldebut2
  677.  
  678. *************************************************
  679.     move.w #$4e75,(a0)+
  680.     rts
  681. .1
  682.     move.w #$4ef9,(a0)+ jmp opcode
  683. .autoto2
  684.     move.l bank2,(a0)
  685.     move.l (a0),a0
  686.     addq.l #8,.autoto2+2
  687.     addq.l #8,.autoto1+2
  688.     addq.l #8,.autoto1+8
  689.     bra.w .autoto1
  690.    
  691. listeoffset2plan    dc.w -32000,0,32000,-32000,0,32000,-32000+2,2,32002,-32000+2,2,32002
  692.         dc.w 0,4,8,26,30,34,12,16,20,38,42,46
  693.                    
  694. listeoffset4plan
  695.     dc.w -32000,0,32000,-32000+2,2,32002,-32000+4,4,32000+4,-32000+6,6,32000+6
  696.     dc.w 0,4,8,12,16,20,24,28,32,36,40,44
  697. ;                   x1 0        -32000
  698. ;                   x2 4        0
  699. ;                   x3 8        32000  
  700. ;                   x7 12       -32000+2
  701. ;                   x8 16       2
  702. ;                   x9 20       32000+2
  703. ;                   + 2 (add.l d7,a0)
  704. ;                   x4 26       -32000
  705. ;                   x5 30       0
  706. ;                   x6 34       32000
  707. ;                   x10 38      -32000+2
  708. ;                   x11 42      2
  709. ;                   x12 46      32000+2
  710. ; 3 nop + 12*4 nop + 2 nop = 53 nop pour 12 point = 4,41666 nop
  711. ;
  712.  
  713. listeoffset1plan    dc.w -32000,0,32000,-32000,0,32000
  714.                     dc.w 0,4,8,14,18,22
  715. ;       x1 0 -32000
  716. ;       x2 4 0
  717. ;       x3 8 32000
  718. ;   add d7,a0
  719. ;;      x4 14 -32000
  720. ;       x5 18 0
  721. ;       x6 22 32000
  722. ; total (6*4+5)/6 nop= 4+5/6 = 4,8333333 nop avec effacement 12000 nop:=5793 point soit environ 5000 point c la zone
  723. ; avec le blitter 7000 point
  724.  
  725. *codegencreate2
  726. *  
  727. *   ifgt taillecheatcode
  728. *   move.l #bigcheatcode,bank5              ; normalement bank5
  729. *   move.l #(nbdot*54-65536-65536-64000)+54*4+6,bank5+4 ; et bank5+4
  730. *   endc
  731. *   sf.b rtsfinish
  732. *   lea towerofpixset,a1
  733. *   lea listeX,a2           ; listeX polycrome wohohohoa listeX pour les hommes (balavoine)
  734. *  
  735. *   ;move.w #7008-24-12,cpt
  736. *   move.w #nbdot-12-12-12,cpt 
  737. *  
  738. *   ; gestion 12 premier points
  739. *   ;
  740. ** * * * x1
  741. *
  742. ** * * x1 x2
  743. *
  744. ** * x1 x2 x3
  745. *
  746. ** x1 x2 x3 x4  dans le cas ou y'a 5 truc ici y'a 12
  747. *   moveq #12-1,d3
  748. *   lea cheatcodedebut,a0
  749. *   bsr fillnopa0
  750. *   moveq #$F,d5     
  751. *.bcldebut0:
  752. *   move.l #$3c192046,(a0)+
  753. *   move.l a2,a4
  754. *   move.w #11,d2
  755. *   sub.w d3,d2     ; au debut = 0 = un tour de boucle = x1 seulement
  756. *   lea listeoffset4plan,a5
  757. *   add.w d3,a5
  758. *   add.w d3,a5     ; au debut listeoffset+22 =dernier ecran
  759. *
  760. *   pea .suite2
  761. *  
  762. *.bcldebut1:
  763. *   move.w (a2)+,d0         ; x1
  764. *   move.w d0,d1
  765. *   and.w d5,d1
  766. *   sub d1,d0
  767. *   add d1,d1
  768. *   add d1,d1
  769. *   move.l (a1,d1.w),d1     ; instruction bset correspondant a x mod 16
  770. *   ;lsr #4,d0
  771. *   ;lsl #3,d0
  772. *   ;and.b #$F0,d0
  773. *   lsr #1,d0           ; int (x/16)*8
  774. *   add.w d0,d1
  775. *   add.w (a5)+,d1
  776. *   move.w 24-2(a5),d4
  777. *   move.l d1,(a0,d4)       ; cg
  778. *   dbf d2,.bcldebut1
  779. *   rts
  780. *  
  781. *.suite2
  782. *   ;move.w #$d1c7,24(a0)       ; D1C7 = add.l d7,a0  ; d7 = 96000
  783. *   bsr shrinka0bis
  784. *   move.l a4,a2
  785. *   dbf d3,.bcldebut0
  786. *   move.w #$4e75,(a0)+
  787. *   addq #2,a2
  788. *.autoto1:
  789. *   move.l bank1,a0
  790. *   move.l taillebank1,d0
  791. *   subq.l #6,d0                ; pour metre le jmp adresse a la fin
  792. *   divu #52,d0
  793. *   ext.l d0
  794. *  
  795. *   sub.w d0,cpt
  796. *   bpl.s .itsok
  797. *   ; sinon arg kefaire ca doit finir par un rts
  798. *   add.w d0,cpt
  799. *   move.w cpt,d0
  800. *   move.w #0,cpt
  801. *   st.b rtsfinish
  802. *.itsok
  803. *   moveq #0,d3
  804. *   move.w d0,d3
  805. *   subq #1,d3
  806. *
  807. *.bcl0
  808. *   move.l #$3c192046,(a0)+     <-  2 opcode :  
  809. *                               ; move.w (a1)+,d6
  810. *                               ; move.l d6,a0
  811. *   lea 2(a2),a4
  812. *
  813. *   moveq #11,d2
  814. *   lea listeoffset4plan,a5
  815. *   bsr .bcldebut1
  816. *  
  817. *   ;move.w #$d1c7,24(a0)       ; D1C7 = add.l d7,a0  ; d7 = 96000
  818. *   lea 50-2(a0),a0
  819. *  
  820. *   move.l a4,a2
  821. *   dbf d3,.bcl0
  822. *   tst.b rtsfinish
  823. *   beq.w .1
  824. *
  825. *************************************************** 12 derniers points
  826. *;PLEASE2   equ *
  827. *   move.w #$4ef9,(a0)+
  828. *   move.l #cheatcodefin,d3
  829. *   move.l d3,(a0)
  830. *   move.l d3,a0
  831. *
  832. *   moveq #11-1,d3
  833. *   ;lea cheatcodefin,a0
  834. *   bsr fillnopa0
  835. *
  836. *
  837. *.bcldebut2:
  838. *   move.l #$3c192046,(a0)+
  839. *   lea 2(a2),a4
  840. *   move.w d3,d2
  841. *   ;sub.w d3,d2        ; au debut = 11 dot a la fin 1 seulement
  842. *   lea listeoffset4plan,a5
  843. *
  844. *   bsr .bcldebut1
  845. *   ;move.w #$d1c7,24(a0)       ; D1C7 = add.l d7,a0  ; d7 = 96000
  846. *   bsr shrinka0bis
  847. *   move.l a4,a2
  848. *   dbf d3,.bcldebut2
  849. *
  850. **************************************************
  851. *   move.w #$4e75,(a0)+
  852. *   rts
  853. *.1
  854. *   move.w #$4ef9,(a0)+ jmp opcode
  855. *.autoto2
  856. *   move.l bank2,(a0)
  857. *   move.l (a0),a0
  858. *   addq.l #8,.autoto2+2
  859. *   addq.l #8,.autoto1+2
  860. *   addq.l #8,.autoto1+8
  861. *   bra.w .autoto1
  862. *
  863. *
  864.    
  865. *datasequence:
  866. *       lea datasequencetodolist,a6
  867. *       move.l (a6),a0  ; ecran effacement
  868.        
  869. parametreX  ;dc.w 0,220,40,180,550,60,450,200       ; les 8 valeur de sinus au depart
  870.         dc.w 30,0,400,10,1200,1060,0,700
  871.             dc.w 1*2,2*2,1*2,(512-3)*2          ; les 4 valeur ajouter au depart des sinus de 512 elements
  872.             dc.w (2)*7,1540*2-16*2,1540*2-(5*2),3*2 ; les 4 vlaeur ajouter au depart des sinus de 1540 elements
  873.  
  874.  
  875. scaletable:
  876.         moveq #0,d2
  877.         move.w (a0)+,d2     ; 0..65536 = (0.5+0.5*sinus(angle)) = [0..1[
  878.         mulu.w d1,d2
  879.         swap d2
  880.         move.w d2,(a1)+
  881.         dbf d0,scaletable
  882.         rts
  883. temp    dc.w 0,0,0,0,0,0,0,0
  884.  
  885. calculpositionsX
  886.    
  887.         lea sinus512,a0
  888.         lea sinus1,a1
  889.         move.w #512-1,d0
  890.         move.l #16*30,d1
  891.         bsr scaletable
  892.         lea sinus1540,a0
  893.         lea sinus2,a1
  894.         move.w #1540-1,d0
  895.         move.l #16*50,d1
  896.         bsr scaletable
  897.         lea sinus1,a0           512 valeurs
  898.         lea sinus2,a1           1540 valeurs
  899.         lea parametreX,a2
  900.         lea temp,a3
  901.         lea listeX,a4           ; le resultat
  902.         ;lea tabtemp+3000*2,a6
  903.         moveq #7,d7     ; 8 sinus
  904. .2b     move.w (a2)+,(a3)+
  905.         dbf d7,.2b
  906.         lea -16(a3),a3  ; a3 = temp
  907.         move.w #nbdot-1,d7
  908. do7000     
  909.         moveq #3,d0
  910. .3      move (a2)+,d1   ; pas
  911.         move.w (a3),d2  ; position
  912.         add d1,d2
  913.         cmp.w #512*2,d2
  914.         blt.s .glok
  915.         sub.w #512*2,d2
  916. .glok       move.w d2,(a3)+
  917.         dbf d0,.3
  918.        
  919.         moveq #3,d0
  920. .4      move (a2)+,d1   ; pas
  921.         move.w (a3),d2  ; position
  922.         add d1,d2
  923.         cmp.w #1540*2,d2
  924.         blt.s .glok2
  925.         sub.w #1540*2,d2
  926. .glok2      move.w d2,(a3)+
  927.         dbf d0,.4
  928.         lea -16(a3),a3
  929.         lea -16(a2),a2
  930.    
  931.         moveq #0,d4
  932.  
  933.  
  934.         moveq #3,d0
  935.         moveq #0,d2
  936.  
  937. .5      moveq #0,d1
  938.    
  939.         move.w (a3)+,d1
  940.         moveq #0,d4
  941.         move (a0,d1.w),d4       ; sinus1 d1
  942.         add.l d4,d2
  943.         dbf d0,.5
  944.  
  945.         moveq #3,d0
  946.  
  947. .6      moveq #0,d1
  948.         move.w (a3)+,d1
  949.         moveq #0,d4
  950.         move (a1,d1.w),d4
  951.         add.l d4,d2
  952.         dbf d0,.6
  953.         ;add (a6)+,d2
  954.  
  955.  
  956.         lsr.l #3,d2
  957.         sub.w #SUBXCTE,d2
  958.         asl #1,d2
  959.         lea xxx,a5
  960.         move.w (a5,d2.w),d2
  961. break
  962.         move.w d2,(a4)+             ; calcul du x final
  963.         lea -16(a3),a3
  964.         dbf d7,do7000
  965.         rts
  966.    
  967. preparesinusfory
  968.         lea sinus512,a0
  969.         lea sinus1,a1
  970.         move.w #512-1,d0
  971.         move.l #20*16,d1
  972.         bsr scaletable  ;andlsl
  973.        
  974.         lea sinus1540,a0
  975.         lea sinus2,a1
  976.         move.w #1540-1,d0
  977.         move.l #30*16,d1
  978.         bsr scaletable  ;andlsl
  979.    
  980.         lea parametreY,a6
  981.         lea ramresultat,a2     
  982.         lea reftable1,a1
  983.        
  984.         moveq #3,d7
  985. .bcl1   lea sinus1,a0
  986.         move.w #512,d2
  987.         move (a6)+,d0       ; pas interne
  988.         move.w #12,d1       ; nombre de copie de valeur
  989.         jsr createSpecialSin1540
  990.         lea 512*4(a1),a1
  991.         dbf d7,.bcl1
  992.  
  993.         moveq #3,d7
  994. .bcl2   lea sinus2,a0
  995.         move.w #1540,d2
  996.         move (a6)+,d0
  997.         move.w #12,d1
  998.         jsr createSpecialSin1540
  999.         lea 1540*4(a1),a1
  1000.         dbf d7,.bcl2
  1001.         rts
  1002.    
  1003. calcsinusy:
  1004.        
  1005.         sub.w #12*2,poslisteY
  1006.         move.w poslisteY,d0
  1007.         tst d0
  1008.         bpl.s .1
  1009.         move.w #nbdot*2-24,d0
  1010.         move.w d0,poslisteY
  1011. .1
  1012.  
  1013. ;       move.w postabtemp,d7
  1014. ;       sub.w #2*12,d7
  1015. ;       tst.w d7   
  1016. ;       bge.s .zig 
  1017. ;       add.w #8209*2,d7
  1018. ;.zig   move.w d7,postabtemp
  1019.  
  1020.  
  1021. ;       move.w postabtemp,d7
  1022. ;       add.w #2*120,d7
  1023. ;       cmp.w #8209*2,d7   
  1024. ;       blt.s .zig 
  1025. ;       sub.w #8209*2,d7
  1026. ;.zig       move.w d7,postabtemp
  1027.        
  1028.        
  1029.  
  1030.  
  1031.         lea parametreY+8*2,a6
  1032.         lea listeY,a0
  1033.         add.w poslisteY,a0
  1034.         lea reftable1,a1
  1035.         ;moveq #2,d7
  1036. .piconbierre
  1037.         moveq #0,d0
  1038.         move.w (a6)+,d0
  1039.         move.l (a1,d0.l),a2
  1040.         move.l (a2)+,d6
  1041.         move.l (a2)+,d5
  1042.         move.l (a2)+,d4
  1043.         move.l (a2)+,d3
  1044.         move.l (a2)+,d2
  1045.         move.l (a2)+,d1
  1046.         lea 512*4(a1),a1
  1047. .bcl1
  1048.         move.w (a6)+,d0
  1049.         move.l (a1,d0.l),a2
  1050.         add.l (a2)+,d6
  1051.         add.l (a2)+,d5
  1052.         add.l (a2)+,d4
  1053.         add.l (a2)+,d3
  1054.         add.l (a2)+,d2
  1055.         add.l (a2)+,d1
  1056.  
  1057.         lea 512*4(a1),a1
  1058.         move.w (a6)+,d0
  1059.         move.l (a1,d0.l),a2
  1060.         add.l (a2)+,d6
  1061.         add.l (a2)+,d5
  1062.         add.l (a2)+,d4
  1063.         add.l (a2)+,d3
  1064.         add.l (a2)+,d2
  1065.         add.l (a2)+,d1
  1066.  
  1067.         lea 512*4(a1),a1
  1068.         move.w (a6)+,d0
  1069.         move.l (a1,d0.l),a2
  1070.         add.l (a2)+,d6
  1071.         add.l (a2)+,d5
  1072.         add.l (a2)+,d4
  1073.         add.l (a2)+,d3
  1074.         add.l (a2)+,d2
  1075.         add.l (a2)+,d1
  1076.  
  1077.         lea 512*4(a1),a1
  1078.         ;dbf d7,.bcl1
  1079.         ;moveq #3,d7
  1080. .bcl2  
  1081.         move (a6)+,d0
  1082.         move.l (a1,d0.l),a2
  1083.         add.l (a2)+,d6
  1084.         add.l (a2)+,d5
  1085.         add.l (a2)+,d4
  1086.         add.l (a2)+,d3
  1087.         add.l (a2)+,d2
  1088.         add.l (a2)+,d1
  1089.         lea 1540*4(a1),a1
  1090.         move (a6)+,d0
  1091.         move.l (a1,d0.l),a2
  1092.         add.l (a2)+,d6
  1093.         add.l (a2)+,d5
  1094.         add.l (a2)+,d4
  1095.         add.l (a2)+,d3
  1096.         add.l (a2)+,d2
  1097.         add.l (a2)+,d1
  1098.         lea 1540*4(a1),a1
  1099.         move (a6)+,d0
  1100.         move.l (a1,d0.l),a2
  1101.         add.l (a2)+,d6
  1102.         add.l (a2)+,d5
  1103.         add.l (a2)+,d4
  1104.         add.l (a2)+,d3
  1105.         add.l (a2)+,d2
  1106.         add.l (a2)+,d1
  1107.  
  1108.         lea 1540*4(a1),a1
  1109.         move (a6)+,d0
  1110.         move.l (a1,d0.l),a2
  1111.         add.l (a2)+,d6
  1112.         add.l (a2)+,d5
  1113.         add.l (a2)+,d4
  1114.         add.l (a2)+,d3
  1115.         add.l (a2)+,d2
  1116.         add.l (a2)+,d1
  1117.         ;lea 1540*4(a1),a1
  1118.         ;dbf d7,.bcl2
  1119.  
  1120.         ;lea tabtemp,a2
  1121.         ;add.w postabtemp,a2
  1122.         ;add.l (a2)+,d6
  1123.         ;add.l (a2)+,d5
  1124.         ;add.l (a2)+,d4
  1125.         ;add.l (a2)+,d3
  1126.         ;add.l (a2)+,d2
  1127.         ;add.l (a2)+,d1
  1128.        
  1129.        
  1130.        
  1131.         move.l #%11111111111111100011111111111110,d7
  1132.         lea lutmul160-SUBYCTE*2,a1
  1133.         lsr.l #1,d1
  1134.         lsr.l #1,d2
  1135.         lsr.l #1,d3
  1136.         lsr.l #1,d4
  1137.         lsr.l #1,d5
  1138.         lsr.l #1,d6
  1139.         and.l d7,d1
  1140.         and.l d7,d2
  1141.         and.l d7,d3
  1142.         and.l d7,d4
  1143.         and.l d7,d5
  1144.         and.l d7,d6
  1145.         move.w (a1,d1.w),d1
  1146.         move.w (a1,d2.w),d2
  1147.         move.w (a1,d3.w),d3
  1148.         move.w (a1,d4.w),d4
  1149.         move.w (a1,d5.w),d5
  1150.         move.w (a1,d6.w),d6
  1151.         swap d1
  1152.         swap d2
  1153.         swap d3
  1154.         swap d4
  1155.         swap d5
  1156.         swap d6
  1157.         ;lsr #4,d1
  1158.         ;lsr #4,d2
  1159.         ;lsr #4,d3
  1160.         ;lsr #4,d4
  1161.         ;lsr #4,d5
  1162.         ;lsr #4,d6
  1163.         move.w (a1,d1.w),d1
  1164.         move.w (a1,d2.w),d2
  1165.         move.w (a1,d3.w),d3
  1166.         move.w (a1,d4.w),d4
  1167.         move.w (a1,d5.w),d5
  1168.         move.w (a1,d6.w),d6
  1169.         movem.l d1-d6,(a0)
  1170.         movem.l d1-d6,nbdot*2(a0)       ; doit etre un multiple de 12*2  7008 point*2
  1171.        
  1172.         lea -16(a6),a5      ; a5 = positions a metre a jour
  1173.                        
  1174.         ;moveq #3,d7
  1175.         move.w #511*4,d7                        ; a6 = ajout a faire a position
  1176. .loop  
  1177.         movem.w (a6)+,d0-d6
  1178.         add (a5)+,d0
  1179.         and.w d7,d0
  1180.         add (a5)+,d1
  1181.         and.w d7,d1
  1182.         add (a5)+,d2
  1183.         and.w d7,d2
  1184.         add (a5)+,d3
  1185.         and.w d7,d3
  1186.         move.w #1540*4,d7
  1187. .loop2 
  1188.         add (a5)+,d4
  1189.         cmp.w d7,d4
  1190.         blt.s .toto
  1191.         sub.w d7,d4
  1192. .toto
  1193.         add (a5)+,d5
  1194.         cmp.w d7,d5
  1195.         blt.s .toto2
  1196.         sub.w d7,d5
  1197. .toto2
  1198.         add (a5)+,d6
  1199.         cmp.w d7,d6
  1200.         blt.s .toto3
  1201.         sub.w d7,d6
  1202. .toto3  movem.w d0-d6,-2*7(a5)
  1203.    
  1204.         move.w (a6)+,d0
  1205.         add (a5),d0
  1206.         cmp.w d7,d0
  1207.         blt.s .toto4
  1208.         sub.w d7,d0
  1209. .toto4      move.w d0,(a5)+
  1210.         rts
  1211.        
  1212. ;postabtemp dc.w 0
  1213.        
  1214. createSpecialSin1540
  1215. ; a0 = table sinus de n element
  1216. ; a1 = reftablesinus
  1217. ; a2 = buffer resultat
  1218. ; d0 = pas interne
  1219. ; d1 = nombre de copie de valeur
  1220. ; d2 = nombre n d'element de la table sinus
  1221. ; retour = d1 : nombre de memoire occupé sur buffer resultat
  1222.  
  1223.     movem.l d0-d7/a0/a1/a3-a6,-(sp)
  1224.     move.w d2,d3
  1225.     lea bufferFlag1540,a3
  1226.     subq #1,d3
  1227. .clrflag
  1228.     clr.b (a3)+
  1229.     dbra d3,.clrflag
  1230.  
  1231.     move.w d2,.auto1+2
  1232.     move.w d2,.auto2+2
  1233.     move.w d2,.auto3+2
  1234.     move.w d2,.auto4+2
  1235.     move.w d2,.auto5+2
  1236.     move.w d2,.auto6+2
  1237.  
  1238.     move.w d2,d3    ; 512 ou 1024
  1239.     subq #1,d3      ; 511  ou 1023 pour le and de l'angle
  1240.  
  1241.     lea bufferFlag1540,a3
  1242.     subq #1,d2      ; 511 ou 1023 iteration
  1243.     moveq #0,d4     ; angle
  1244. .loop
  1245.     tst.b (a3,d4)   ; flag a 1 ?
  1246.     bne.s .flagA1
  1247. .flagA0
  1248.     move.w d4,d5
  1249.     add d5,d5
  1250.     move.w (a0,d5),(a2)
  1251.     add d5,d5
  1252.     move.l a2,(a1,d5)           ; a2 referencer en reftable+angle*4
  1253.     addq.l #2,a2
  1254.     st (a3,d4)      positione flag(angle) a 1
  1255.     add d0,d4       ; pas interne
  1256.     ;and d2,d4      ; mod 512 ou 1022
  1257. .auto1
  1258.     cmp.w #1540,d4
  1259.     blt.s .1
  1260. .auto2
  1261.     sub.w #1540,d4
  1262. .1
  1263.  
  1264.     bra.s .loop
  1265. .flagA1 ; copier d1 fois les valeurs suivante
  1266.     move.w d4,d5        ; angle courant copier sur d5
  1267.     move.w d1,d7
  1268.     subq #1,d7
  1269. .cpy
  1270.     move.w d5,d6
  1271.     add d6,d6
  1272.     move.w (a0,d6),(a2)+
  1273.     add d0,d5
  1274. .auto3
  1275.     cmp.w #1540,d5
  1276.     blt.s .2
  1277. .auto4
  1278.     sub.w #1540,d5
  1279. .2
  1280.     ;and d2,d5
  1281.     dbf d7,.cpy
  1282.    
  1283.     ;sub d0,d4
  1284.     addq #1,d4
  1285. .auto5
  1286.     cmp.w #1540,d4
  1287.     blt.s .3
  1288. .auto6
  1289.     sub.w #1540,d4
  1290. .3
  1291.     ;and d2,d4
  1292.     tst.b (a3,d4)
  1293.     ;bne.s .fin
  1294.     beq.s .flagA0
  1295. .fin
  1296.     movem.l (sp)+,d0-d7/a0/a1/a3-a6
  1297.     rts
  1298. spreadpicturebatch
  1299.     lea picturebatch,a1
  1300.     ;movem.l (a1),d0-d7
  1301.     ;movem.l d0-d7,$ffff8240.w
  1302.  
  1303.     ;lea picturebatch-32,a1
  1304.  
  1305.  
  1306.     move.l screen1,a2
  1307.     move.l screen7,a0
  1308.     addq.l #4,a0
  1309.     addq.l #4,a2
  1310.     moveq #5,d7
  1311. .loop0
  1312.     move.w d7,-(sp)
  1313.     ;lea 66(a1),a1
  1314.     move #399,d7
  1315.     ;move.l a0,-(sp)
  1316.     ;move.l a2,-(sp)
  1317. .loop
  1318.     movem.l (a1)+,d0-d6/a3-a5
  1319.     move.l d0,(a2)
  1320.     move.l d0,(a0)
  1321.     move.l d1,8(a2)
  1322.     move.l d1,8(a0)
  1323.     move.l d2,16(a2)
  1324.     move.l d2,16(a0)
  1325.     move.l d3,24(a2)
  1326.     move.l d3,24(a0)
  1327.     move.l d4,32(a2)
  1328.     move.l d4,32(a0)
  1329.     move.l d5,40(a2)
  1330.     move.l d5,40(a0)
  1331.     move.l d6,48(a2)
  1332.     move.l d6,48(a0)
  1333.     move.l a3,56(a2)
  1334.     move.l a3,56(a0)
  1335.     move.l a4,64(a2)
  1336.     move.l a4,64(a0)
  1337.     move.l a5,72(a2)
  1338.     move.l a5,72(a0)
  1339.     lea 80(a0),a0
  1340.     lea 80(a2),a2
  1341.  
  1342.     dbf d7,.loop
  1343.     ;move.l (sp)+,a2
  1344.     ;move.l (sp)+,a0
  1345.     ;lea 32000(a0),a0
  1346.     ;lea 32000(a2),a2
  1347.     move.w (sp)+,d7
  1348.     dbf d7,.loop0
  1349. ; now s'occuper de la palette
  1350.  
  1351.     rts
  1352.    
  1353. bigmainloop12vbl
  1354.  
  1355.         ifeq typedot-TYPE4PLAN
  1356.         move.l screen1,a0
  1357.         jsr codeeff4plan
  1358.         endc
  1359.         ifeq typedot-TYPE2PLAN
  1360.         moveq #0,d0
  1361.         move.l screen1,a0
  1362.         moveq.w #11,d7
  1363.         jsr clearcode+4
  1364.         endc
  1365.        
  1366.         lea cheatcodedebut,a0
  1367.         lea listeY,a1
  1368.         add.w poslisteY,a1
  1369.         moveq #1,d0
  1370.         moveq #4,d1
  1371.         moveq #8,d2
  1372.         moveq #32,d3
  1373.         moveq #64,d4
  1374.         move.w #128,d5
  1375.         move.l screen2,d6   base 64k
  1376.         move.l #96000,d7
  1377.         jsr (a0)        ; affichage de 12 point*7008 sur 6 ecran et 2 plan
  1378.         move.l bank1,a0
  1379.         jsr (a0)
  1380.        
  1381.         jsr calcsinusy     
  1382.  
  1383.         move.w every12vbl,d0
  1384. .1      move.w every12vbl,d1
  1385.         cmp.w d0,d1
  1386.         beq.s .1
  1387.        
  1388.         ;move.w d1,-(sp)
  1389.  
  1390.  
  1391.         ifeq typedot-TYPE4PLAN
  1392.         move.l screen4,a0
  1393.         jsr codeeff4plan
  1394.         endc
  1395.         ifeq typedot-TYPE2PLAN
  1396.         moveq #0,d0
  1397.         move.l screen7,a0
  1398.         moveq #11,d7
  1399.         jsr clearcode+4
  1400.         endc
  1401.         ;move.l screen7,a0
  1402.         ;jsr clearcode4plan
  1403.        
  1404.         lea cheatcodedebut,a0
  1405.         lea listeY,a1
  1406.         add.w poslisteY,a1
  1407.         moveq #1,d0
  1408.         moveq #4,d1
  1409.         moveq #8,d2
  1410.         moveq #32,d3
  1411.         moveq #64,d4
  1412.         move.w #128,d5
  1413.         ifeq typedot-TYPE2PLAN
  1414.         move.l screen8,d6
  1415.         endc
  1416.         ifeq typedot-TYPE4PLAN
  1417.         move.l screen5,d6
  1418.         endc
  1419.         move.l #96000,d7
  1420.         jsr (a0)
  1421.         move.l bank1,a0
  1422.         jsr (a0)
  1423.        
  1424.         jsr calcsinusy
  1425.  
  1426.         move.w every12vbl,d0
  1427. .2      move.w every12vbl,d1
  1428.         cmp.w d0,d1
  1429.         beq.s .2
  1430.        
  1431.         cmp.b #$b9,$fffffc02.w
  1432.         beq.s .fin
  1433.         jmp bigmainloop12vbl
  1434. .fin
  1435.        
  1436.         lea systeme,a0
  1437.         movem.l (a0)+,d0-d7
  1438.         movem.l d0-d7,$ffff8240.w
  1439.         move.w #$2700,sr
  1440.         move.l (a0),d0
  1441.         move.l d0,$70.w
  1442.         move.w #$2300,sr
  1443.  
  1444.     moveq #0,d1
  1445.     move.b systeme+36,d1
  1446.     move.w d1,-(sp)
  1447.     move.l $44e.w,d0
  1448.     move.l d0,-(sp)
  1449.     move.l d0,-(sp)
  1450.     move.w #5,-(sp)     ;setscren
  1451.     trap #14
  1452.     lea 12(sp),sp
  1453.  
  1454.     ifne enablesound
  1455.         jsr sound+4
  1456.        
  1457.         lea    $ffff8800.w,a0
  1458.        move.l    #$08000000,(a0)        ; 08 amplitude chanel A,00 dummy,00 volume,00 dummy
  1459.        move.l    #$09000000,(a0)        ; 09 amplitude chanel B
  1460.        move.l    #$0a000000,(a0)        ; 10 amplitude chanel C
  1461.         ; merci evil
  1462.        
  1463.     endc
  1464.  
  1465.     ;dc.w $a009
  1466.     jsr _enable_mouse
  1467.     ;and.b #8,$fffffc02.w
  1468.    
  1469.    
  1470.         clr.w -(sp)
  1471.         trap #1
  1472.        
  1473.  
  1474. compteurVBLMOD12    dc.w 0
  1475.  
  1476. itvbl:  movem.l d0-d7/a0-a6,-(sp)
  1477.         addq.l #1,$466.w
  1478.  
  1479.         ifne enablesound
  1480.             jsr sound+8
  1481.         endc
  1482.  
  1483.         move.w compteurVBLMOD12,d0
  1484.         lsl #3,d0       ; *8
  1485.         ext.l d0
  1486. PLEASE9 equ *+2
  1487.         lea $12345678,a2    ; paramvbl2
  1488.         add d0,a2
  1489.        
  1490.         move.l (a2)+,a0
  1491.         move.l (a0),d2
  1492.         lsr.w #8,d2
  1493.         move.l d2,$ffff8200.w
  1494.        
  1495.         move.l (a2)+,a6 ; adresse code changement de palette
  1496.         jmp (a6)
  1497. suitevbl:
  1498.         move.w compteurVBLMOD12,d0          ; en fait c'est mod 24
  1499.         tst d0
  1500.         bne.s .1
  1501.         addq.w #1,every12vbl
  1502. .1
  1503.         cmp.w #12,d0
  1504.         bne.s .2
  1505.         addq.w #1,every12vbl
  1506. .2
  1507.         addq.w #1,d0
  1508.         cmp.w #24,d0
  1509.         blt.s .3
  1510.         clr.w d0
  1511. .3      move.w d0,compteurVBLMOD12
  1512.        
  1513.         movem.l (sp)+,d0-d7/a0-a6
  1514.         rte
  1515.        
  1516. ;paramvbl   ds.l 12*2*2
  1517.    
  1518.     ifeq typedot-TYPE2PLAN
  1519. codepalchangeplan1
  1520.     movem.w palfond,d0-d3/d4-d7
  1521. ; d0 = fond 00
  1522. ; d1 = fond 01
  1523. ; d2= fond 10
  1524. ; d3 = fond 11
  1525. ; d4 = couleur point
  1526. ; plan 0 selectionné, le plan 1 = couleur du fond
  1527.     ;jmp suitevbl
  1528.     lea $ffff8240.w,a0
  1529.     move.w d0,(a0)+         00 00
  1530.     move.w d4,(a0)+             10 00
  1531.     move.w d0,(a0)+         01 00
  1532.     move.w d4,(a0)+         11 00
  1533.     move.w d1,(a0)+             00 10  
  1534.     move.w d5,(a0)+         10 10
  1535.     move.w d1,(a0)+         01 10
  1536.     move.w d5,(a0)+         11 10
  1537.     move.w d2,(a0)+         00 01
  1538.     move.w d6,(a0)+         10 01
  1539.     move.w d2,(a0)+         01 01
  1540.     move.w d6,(a0)+         11 01
  1541.     move.w d3,(a0)+         00 11
  1542.     move.w d7,(a0)+         10 11
  1543.     move.w d3,(a0)+         01 11
  1544.     move.w d7,(a0)+         11 11
  1545.     jmp suitevbl
  1546.    
  1547. codepalchangeplan2
  1548.     ;jmp suitevbl
  1549.     movem.w palfond,d0-d7
  1550. ; d0 = fond 00
  1551. ; d1 = fond 01
  1552. ; d2= fond 10
  1553. ; d3 = fond 11
  1554. ; d4 = couleur point fond 00 d5 fond 01 etc
  1555. ; plan 1 selectionné, le plan 1 = couleur du fond
  1556.     lea $ffff8240.w,a0
  1557.     move.w d0,(a0)+         00 00
  1558.     move.w d0,(a0)+         10 00
  1559.     move.w d4,(a0)+         01 00  
  1560.     move.w d4,(a0)+         11 00
  1561.     move.w d1,(a0)+         00 10  
  1562.     move.w d1,(a0)+         10 10
  1563.     move.w D5,(a0)+         01 10
  1564.     move.w d5,(a0)+         11 10
  1565.     move.w d2,(a0)+         00 01
  1566.     move.w d2,(a0)+         10 01
  1567.     move.w d6,(a0)+         01 01
  1568.     move.w d6,(a0)+         11 01
  1569.     move.w d3,(a0)+         00 11
  1570.     move.w d3,(a0)+         10 11
  1571.     move.w d7,(a0)+         01 11
  1572.     move.w d7,(a0)+         11 11
  1573.     jmp suitevbl
  1574.  
  1575.     endc
  1576.     ifeq typedot-TYPE4PLAN
  1577. codechange1
  1578.     ;move.w #COLFOND,d0
  1579.     move.l #COLFOND*$10000+COLPIX,d1
  1580.     lea $ffff8240.w,a0
  1581.     move.l d1,(a0)+
  1582.     move.l d1,(a0)+
  1583.     move.l d1,(a0)+
  1584.     move.l d1,(a0)+
  1585.     move.l d1,(a0)+
  1586.     move.l d1,(a0)+
  1587.     move.l d1,(a0)+
  1588.     move.l d1,(a0)+
  1589.     jmp suitevbl
  1590. codechange2
  1591.     move.l #COLCOLFOND,d0
  1592.     move.l #COLCOLPIX,d1
  1593.     lea $ffff8240.w,a0
  1594.     move.l d0,(a0)+
  1595.     move.l d1,(a0)+
  1596.     move.l d0,(a0)+
  1597.     move.l d1,(a0)+
  1598.     move.l d0,(a0)+
  1599.     move.l d1,(a0)+
  1600.     move.l d0,(a0)+
  1601.     move.l d1,(a0)+
  1602.     jmp suitevbl
  1603. codechange3
  1604.     move.l #COLCOLFOND,d0
  1605.     move.l #COLCOLPIX,d1
  1606.     lea $ffff8240.w,a0
  1607.     move.l d0,(a0)+
  1608.     move.l d0,(a0)+
  1609.     move.l d1,(a0)+
  1610.     move.l d1,(a0)+
  1611.     move.l d0,(a0)+
  1612.     move.l d0,(a0)+
  1613.     move.l d1,(a0)+
  1614.     move.l d1,(a0)+
  1615.     jmp suitevbl
  1616. codechange4
  1617.     move.l #COLCOLFOND,d0
  1618.     move.l #COLCOLPIX,d1
  1619.     lea $ffff8240.w,a0
  1620.     move.l d0,(a0)+
  1621.     move.l d0,(a0)+
  1622.     move.l d0,(a0)+
  1623.     move.l d0,(a0)+
  1624.     move.l d1,(a0)+
  1625.     move.l d1,(a0)+
  1626.     move.l d1,(a0)+
  1627.     move.l d1,(a0)+
  1628.     jmp suitevbl
  1629.    
  1630.     endc
  1631. ;-----------------------------------------------------------------------------
  1632. _disable_mouse:
  1633. ;-----------------------------------------------------------------------------
  1634.     btst        #1,$FFFFFC00.W
  1635.     beq.s       _disable_mouse
  1636.     move.b      #$12,$FFFFFC02.W
  1637.     rts
  1638.  
  1639. ;-----------------------------------------------------------------------------
  1640. _enable_mouse:
  1641. ;-----------------------------------------------------------------------------
  1642.     btst        #1,$FFFFFC00.W
  1643.     beq.s       _enable_mouse
  1644.     move.b      #$8,$FFFFFC02.W
  1645.     rts
  1646.  
  1647. ;preparePrimetable
  1648. ;   lea tab8209,a0
  1649. ;   lea tabtemp,a1
  1650. ;   move.w #8208,d0
  1651. ;   move.w #50*16/3,d1
  1652. ;   jsr scaletable
  1653. ;  
  1654. ;  
  1655. ;  
  1656. ;   lea tabtemp,a0
  1657. ;   move.w #8208,d7
  1658. ;   move.w #17*2,d0
  1659. ;   move.w #23*2,d1
  1660. ;   move.w #2*2,d2
  1661. ;   moveq #0,d3
  1662. ;   moveq #0,d4
  1663. ;   moveq #0,d5
  1664. ;   lea 8209*2(a0),a1
  1665. ;boucle
  1666. ;   move.w (a0,d3),d6
  1667. ;   add (a0,d4),d6
  1668. ;   add (a0,d5),d6
  1669. ;  
  1670. ;   add d0,d3
  1671. ;   cmp.w #8209*2,d3
  1672. ;   blt.s .1
  1673. ;   sub.w #8209*2,d3
  1674. ;
  1675. ;.1 add d1,d4
  1676. ;   cmp.w #8209*2,d4
  1677. ;   blt.s .2
  1678. ;   sub.w #8209*2,d4
  1679. ;
  1680. ;.2 add d2,d5
  1681. ;   cmp.w #8209*2,d5
  1682. ;   blt.s .3
  1683. ;   sub.w #8209*2,d5
  1684. ;.3
  1685. ;   ;lsr #2,d6
  1686. ;   move.w d6,(a1)+
  1687. ;   dbf d7,boucle
  1688. ;   lea tabtemp,a0
  1689. ;   lea tabtemp+8209*2,a1
  1690. ;   move.w #8208,d0
  1691. ;.cpy
  1692. ;   move (a1)+,(a0)+
  1693. ;   dbf d0,.cpy
  1694. ;  
  1695. ;   moveq #11,d3
  1696. ;   lea tabtemp,a0
  1697. ;   lea tabtemp+8209*4,a1
  1698. ;.cpy2
  1699. ;   move (a0)+,(a1)+
  1700. ;   dbf d3,.cpy2
  1701. ;   rts
  1702. ;  
  1703. palfond:    ;dc.w 0,$246,$124,$235  ; PALETTE PICTURES 
  1704.         ;   dc.w $777,$746,$724,$735  COULEUR PIXEL TRANSPARENCE (TOUT IDEM= PAS DE TRANSPARENCE)
  1705.         ifeq weirdos        ; cas hyperspace
  1706.         dc.w $001,$333,$013,$024        ; couleur bleu
  1707.         dC.w $555,$777,$666,$777
  1708.        
  1709.    
  1710.         endc
  1711.         ifne weirdos        ; cas spiral onde
  1712.             dc.w 0,$530,$210,$420     ; palette pictures maron
  1713.             DC.W $706,$777,$755,$637  ;  palette couleur transparences     
  1714.         endc
  1715.     DATA
  1716.  
  1717. picturebatch
  1718.             ifne weirdos
  1719.             incbin 'E:\1B.2PL'      raw picture animation 320x200 2 plan
  1720.             incbin 'E:\2B.2PL'
  1721.             incbin 'E:\3B.2PL'
  1722.             incbin 'E:\4B.2PL'
  1723.             incbin 'E:\5B.2PL'
  1724.             incbin 'E:\6B.2PL'
  1725.             endc
  1726.             ifeq weirdos            ; si weirdos=0, hyperespace
  1727.             incbin 'E:\1C.2PL'
  1728.             incbin 'E:\2C.2PL'
  1729.             incbin 'E:\3C.2PL'
  1730.             incbin 'E:\4C.2PL'
  1731.             incbin 'E:\5C.2PL'
  1732.             incbin 'E:\6C.2PL'
  1733.            
  1734.             endc
  1735.     ifeq typedot-TYPE2PLAN
  1736. paramvbl
  1737.             dc.l screen8,codepalchangeplan1         ; depart sur screen7, screen8 est la vbl suivante
  1738.             dc.l screen9,codepalchangeplan1
  1739.             dc.l screen10,codepalchangeplan1
  1740.             dc.l screen11,codepalchangeplan1
  1741.             dc.l screen12,codepalchangeplan1
  1742.             dc.l screen7,codepalchangeplan1
  1743.             dc.l screen8,codepalchangeplan2
  1744.             dc.l screen9,codepalchangeplan2
  1745.             dc.l screen10,codepalchangeplan2
  1746.             dc.l screen11,codepalchangeplan2
  1747.             dc.l screen12,codepalchangeplan2
  1748.             dc.l screen1,codepalchangeplan2
  1749.            
  1750.             dc.l screen2,codepalchangeplan1
  1751.             dc.l screen3,codepalchangeplan1
  1752.             dc.l screen4,codepalchangeplan1
  1753.             dc.l screen5,codepalchangeplan1
  1754.             dc.l screen6,codepalchangeplan1
  1755.             dc.l screen1,codepalchangeplan1
  1756.             dc.l screen2,codepalchangeplan2
  1757.             dc.l screen3,codepalchangeplan2
  1758.             dc.l screen4,codepalchangeplan2
  1759.             dc.l screen5,codepalchangeplan2
  1760.             dc.l screen6,codepalchangeplan2
  1761.             dc.l screen7,codepalchangeplan2
  1762.        
  1763.         ;   dc.l screen7,codepalchangeplan2
  1764.     endc
  1765.     ifeq typedot-TYPE4PLAN 
  1766. paramvbl2       dc.l screen5,codechange1
  1767.             dc.l screen6,codechange1
  1768.             dc.l screen4,codechange1
  1769.            
  1770.             dc.l screen5,codechange2
  1771.             dc.l screen6,codechange2
  1772.             dc.l screen4,codechange2
  1773.  
  1774.             dc.l screen5,codechange3
  1775.             dc.l screen6,codechange3
  1776.             dc.l screen4,codechange3
  1777.  
  1778.             dc.l screen5,codechange4
  1779.             dc.l screen6,codechange4
  1780.             dc.l screen1,codechange4
  1781.  
  1782.             dc.l screen2,codechange1
  1783.             dc.l screen3,codechange1
  1784.             dc.l screen1,codechange1
  1785.  
  1786.             dc.l screen2,codechange2
  1787.             dc.l screen3,codechange2
  1788.             dc.l screen1,codechange2
  1789.  
  1790.             dc.l screen2,codechange3
  1791.             dc.l screen3,codechange3
  1792.             dc.l screen1,codechange3
  1793.  
  1794.             dc.l screen2,codechange4
  1795.             dc.l screen3,codechange4
  1796.             dc.l screen4,codechange4
  1797.         endc
  1798.        
  1799. parametreY  dc.w 1,7,512-4,6,1540-12,3,5,1540-1
  1800.             ;dc.w 11,2,3,40,5,6,7,8
  1801.             dc.w 100,20,100,0,300,700,0,1200            ; position dans reftable (*4)
  1802.             dc.w 1*4*12,(7)*4*12,512*4-4*4*12,6*4*12,(1540*4-12*4*12),3*4*12,5*4*12,1540*4-1*4*12
  1803.            
  1804. sinus512        incbin 'SIN512.GLK'    
  1805. sinus1540       incbin 'SIN1540.GLK'           
  1806. ;tab8209            incbin 'SIN8209.GLK'
  1807. sound       incbin 'PYM_BEST.SND'
  1808.         even
  1809.  
  1810.     BSS
  1811. systeme ds.l 8
  1812.         ds.l 1      ; oldvbl
  1813.         ds.b 1      ; 8260.w
  1814.         ds.b 1
  1815. ;compteurvblMOD12   ds.w 1
  1816.             ds.w 200*2
  1817. lutmul160   ds.w 200*2
  1818.             ds.w 200*2
  1819.            
  1820.             ds.w 320
  1821. xxx         ds.w 320
  1822.             ds.w 320
  1823.            
  1824. every12vbl  ds.w 1
  1825.  
  1826. poslisteY   ds.w 1
  1827. bank1   ds.l 1
  1828. taillebank1 ds.l 1
  1829. bank2   ds.l 1
  1830. taillebank2 ds.l 1
  1831. bank3   ds.l 1
  1832. taillebank3 ds.l 1
  1833. bank4   ds.l 1
  1834. taillebank4 ds.l 1
  1835. bank5   ds.l 1
  1836.         ds.l 1
  1837.  
  1838. cheatcodedebut  ds.b 54*12      ; valeur a determiner
  1839. cheatcodefin    ds.w 54*11
  1840.         ds.b 54         ; fillnop fill 54*12
  1841.     ifgt taillecheatcode
  1842. bigcheatcode    ds.b taillecheatcode    ; normalement ca tombe juste pour 7008 dot
  1843.         ;ds.b taillecheatcode
  1844.         ;ds.b taillecheatcode
  1845.         ;ds.b taillecheatcode
  1846.         ;ds.b taillecheatcode
  1847. ;bigcheatdebug  ds.b 20
  1848.     endc
  1849. cpt         ds.w 1
  1850. rtsfinish   ds.w 1
  1851. screen1     ds.l 1
  1852. screen2     ds.l 1      ; this one is on 64k page
  1853. screen3     ds.l 1
  1854. screen4     ds.l 1
  1855. screen5     ds.l 1
  1856. screen6     ds.l 1
  1857. screen7     ds.l 1
  1858. screen8     ds.l 1      ; this one is on 64k page
  1859. screen9     ds.l 1
  1860. screen10    ds.l 1
  1861. screen11    ds.l 1
  1862. screen12    ds.l 1
  1863. sinus1      ds.w 512
  1864. sinus2      ds.w 1540
  1865. ;tabtemp    ds.w 8209*2+12
  1866. reftable1       ds.l 512
  1867.             ds.l 512
  1868.             ds.l 512
  1869.             ds.l 512
  1870.             ds.l 1540
  1871.             ds.l 1540
  1872.             ds.l 1540
  1873.             ds.l 1540
  1874. valuereftab ds.w 8
  1875. ramresultat ds.w 40000      ; pas plus de 50k ???
  1876.         ifeq typedot-TYPE2PLAN
  1877. clearcode:  ds.w 2000*2+2+2+1
  1878.         ds.w 200
  1879.         endc
  1880. listeY  ds.w nbdot  ; en fait 2x7000 mais comme on utilise la listeX que pour faire le code genere au depart, y'a plus besoin de listeX
  1881.         ;ds.w 24
  1882. listeX  ds.w nbdot
  1883.         ds.w 24         ; a enlever peut etre plus tard
  1884.        
  1885.         ; peut etre mis a la place de sinus1 et sinus 2 qui sont plus utilisé apres
  1886. bufferFlag1540  ds.b 1540
  1887.         ifeq typedot-TYPE4PLAN
  1888. codeeff4plan
  1889.         ds.w 17+1+2*1714+2
  1890.         endc
  1891.     ifeq typedot-TYPE2PLAN
  1892. bufferscreens ds.b (65536+32000*6)*2+32000
  1893.     endc
  1894.     ifeq typedot-TYPE4PLAN
  1895. bufferscreens ds.b (65536+32000*3)*2+32000
  1896.     endc
  1897. ;picture2plan   ds.l 4000
  1898. ;   TEXT
  1899. ;   include 'MYMEM.S'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement