File: lsp_SCPCD.s - Tab length: 1 2 4 8 - Lines: on off - No wrap: on off

0001: ; LSP sur Jaguar
0002: ; version 4 bytes reading at once
0003: ;
0004: ; OK - routine de replay Paula en I2S
0005: ; OK - routine de replay Paula en Timer 1
0006: ; OK - convertir player LSP en Timer 1
0007: ; OK - g�rer le changement de bpm dans le timer 1
0008: ; OK - init : signed 8 bits samples => unsigned 8 bits samples
0009: ; OK - LSP Init : longueur sample en bytes
0010: ; OK - mettre en place la console
0011: ; OK - basculer tout en 21:11 :
0012: ; OK - lire 4 octets par 4 octets de sample / attention � l'alignement du sample, lire les premiers octets en loadb et/ou loadw !
0013: ; - optimiser lecture lsp etc dans Timer 1
0014: 
0015: 
0016: ; - Timer 1 pour gestion LSP
0017: ; - I2S pour replay samples
0018: ;
0019: ; calcul bpm: FRQ=24/(60/bpm)= => 125 bpm=50hz
0020: ;
0021: ; samples Amiga = 8 bits signed PCM
0022: 
0023: ;CC (Carry Clear) = %00100
0024: ;CS (Carry Set)   = %01000
0025: ;EQ (Equal)       = %00010
0026: ;MI (Minus)       = %11000
0027: ;NE (Not Equal)   = %00001
0028: ;PL (Plus)        = %10100
0029: ;HI (Higher)      = %00101
0030: ;T (True)         = %00000
0031: 
0032:         include "jaguar.inc"
0033: 
0034: 
0035: CLEAR_BSS                       .equ                    1                                                                       ; 1=efface toute la BSS jusqu'a la fin de la ram utilis�e
0036: LSP_DSP_Audio_frequence                                 .equ                    45000                           ; real hardware needs lower sample frequencies than emulators
0037: nb_bits_virgule_offset                                  .equ                    10
0038: 
0039: display_infos_debug                             .equ                    1
0040: DSP_DEBUG                                               .equ                    0
0041: I2S_during_Timer1                               .equ                    0                                                                       ; 0= I2S waits while timer 1 / 1=IMASK cleared while Timer 1
0042: LSP_avancer_module                              .equ                    1                                                               ; 1=incremente position dans le module
0043: 
0044: channel_1               .equ            1
0045: channel_2               .equ            1
0046: channel_3               .equ            1
0047: channel_4               .equ            1
0048: 
0049: ; ----------------------------
0050: ; parametres affichage
0051: ;ob_liste_originale                     equ             (ENDRAM-$4000)                                                  ; address of list (shadow)
0052: ob_list_courante                        equ             ((ENDRAM-$4000)+$2000)                          ; address of read list
0053: nb_octets_par_ligne                     equ             320
0054: nb_lignes                                       equ             256
0055: 
0056: curseur_Y_min           .equ            8
0057: 
0058: 
0059: DSP_STACK_SIZE  equ     32      ; long words
0060: DSP_USP                 equ             (D_ENDRAM-(4*DSP_STACK_SIZE))
0061: DSP_ISP                 equ             (DSP_USP-(4*DSP_STACK_SIZE))
0062: 
0063: 
0064: ; DSP
0065: 
0066: 
0067: 
0068: .opt "~Oall"
0069: 
0070: .text
0071: 
0072: 
0073: 
0074:                         .68000
0075: 
0076: 
0077:         move.l          #INITSTACK, sp  
0078:         move.w          #%0000011011000111, VMODE                       ; 320x256
0079:         move.w          #$100,JOYSTICK
0080: 
0081: ; clear BSS
0082: 
0083:         .if                     CLEAR_BSS=1
0084: ; clear BSS
0085:         lea                     DEBUT_BSS,a0
0086:         lea                     FIN_RAM,a1
0087:         moveq           #0,d0
0088:        
0089: boucle_clean_BSS:
0090:         move.b          d0,(a0)+
0091:         cmp.l           a0,a1
0092:         bne.s           boucle_clean_BSS
0093: ; clear stack
0094:         lea                     INITSTACK-100,a0
0095:         lea                     INITSTACK,a1
0096:         moveq           #0,d0
0097:        
0098: boucle_clean_BSS2:
0099:         move.b          d0,(a0)+
0100:         cmp.l           a0,a1
0101:         bne.s           boucle_clean_BSS2
0102: 
0103: ; clear object list
0104:         lea                     ob_list_courante,a0
0105:         lea                     ENDRAM,a1
0106:         moveq           #0,d0
0107:        
0108: boucle_clean_BSS3:
0109:         move.b          d0,(a0)+
0110:         cmp.l           a0,a1
0111:         bne.s           boucle_clean_BSS3
0112:         .endif
0113: 
0114: ;check ntsc ou pal:
0115: 
0116:         moveq           #0,d0
0117:         move.w          JOYBUTS ,d0
0118: 
0119:         move.l          #26593900,frequence_Video_Clock                 ; PAL
0120:         move.l          #415530,frequence_Video_Clock_divisee
0121: 
0122:        
0123:         btst            #4,d0
0124:         beq.s           jesuisenpal
0125: jesuisenntsc:
0126:         move.l          #26590906,frequence_Video_Clock                 ; NTSC
0127:         move.l          #415483,frequence_Video_Clock_divisee
0128: jesuisenpal:
0129: 
0130: 
0131:         move.l  #0,D_CTRL
0132: ; copie du code DSP dans la RAM DSP
0133: 
0134:         lea             YM_DSP_debut,A0
0135:         lea             D_RAM,A1
0136:         move.l  #YM_DSP_fin-DSP_base_memoire,d0
0137:         lsr.l   #2,d0
0138:         sub.l   #1,D0
0139: boucle_copie_bloc_DSP:
0140:         move.l  (A0)+,(A1)+
0141:         dbf             D0,boucle_copie_bloc_DSP
0142: 
0143: ; init LSP
0144: 
0145:         lea             LSP_module_music_data,a0
0146:         lea             LSP_module_sound_bank,a1
0147:         jsr             LSP_PlayerInit
0148: 
0149: ;               Out :   a0: music BPM pointer (16bits).w
0150: ;                               d0: music len in tick count
0151: 
0152:     bsr     InitVideo                   ; Setup our video registers.
0153: 
0154:         jsr     copy_olist                      ; use Blitter to update active list from shadow
0155: 
0156:         move.l  #ob_list_courante,d0                                    ; set the object list pointer
0157:         swap    d0
0158:         move.l  d0,OLP
0159: 
0160:         lea             CLUT,a2
0161:         move.l  #255-2,d7
0162:         moveq   #0,d0
0163:        
0164: copie_couleurs:
0165:         move.w  d0,(a2)+
0166:         addq.l  #5,d0
0167:         dbf             d7,copie_couleurs
0168: 
0169:         lea             CLUT+2,a2
0170:         move.w  #$F00F,(a2)+
0171:        
0172:         move.l  #VBL,LEVEL0             ; Install 68K LEVEL0 handler
0173:         move.w  a_vde,d0                        ; Must be ODD
0174:         sub.w   #16,d0
0175:         ori.w   #1,d0
0176:         move.w  d0,VI
0177: 
0178:         move.w  #%01,INT1                       ; Enable video interrupts 11101
0179: 
0180: 
0181:         ;and.w   #%1111100011111111,sr                          ; 1111100011111111 => bits 8/9/10 = 0
0182:         and.w   #$f8ff,sr
0183: 
0184: ; CLS
0185:         moveq   #0,d0
0186:         bsr             print_caractere
0187: 
0188: ; init DSP
0189: 
0190:         lea             chaine_LSP,a0
0191:         bsr             print_string
0192: 
0193: 
0194: ; launch DSP
0195: 
0196:         move.l  #REGPAGE,D_FLAGS
0197:         move.l  #DSP_routine_init_DSP,D_PC
0198:         move.l  #DSPGO,D_CTRL
0199:         move.l  #0,vbl_counter
0200: 
0201: 
0202: ; calcul RAM DSP
0203:        
0204:         lea                     chaine_RAM_DSP,a0
0205:         bsr                     print_string
0206:         move.l          #D_ENDRAM,d0
0207:         sub.l           debut_ram_libre_DSP,d0
0208:         bsr                     print_nombre_4_chiffres
0209: ; ligne suivante
0210:         moveq           #10,d0
0211:         bsr                     print_caractere
0212: 
0213: 
0214: 
0215: ; on attend le DSP
0216:         moveq   #5,d7
0217: .boucle_attente:
0218:         move.l          vbl_counter,d0
0219: .waitVBL2:
0220:         move.l          vbl_counter,d1
0221:         cmp.l           d0,d1
0222:         beq             .waitVBL2
0223:         dbf             d7,.boucle_attente
0224: 
0225: 
0226:         move.w          #85,couleur_char
0227: 
0228: 
0229: 
0230: 
0231: ; replay frequency
0232:         lea                     chaine_replay_frequency,a0
0233:         bsr                     print_string
0234: 
0235:         move.l          DSP_frequence_de_replay_reelle_I2S,d0
0236:         bsr                     print_nombre_5_chiffres
0237: 
0238:         lea                     chaine_Hz_init_LSP,a0
0239:         bsr                     print_string
0240: 
0241:         move.w          #145,couleur_char
0242:        
0243:         lea                     chaine_playing_LSP,a0
0244:         bsr                     print_string
0245:        
0246:         move.w          #245,couleur_char
0247: 
0248:         lea                     chaine_entete_debug_module,a0
0249:         bsr                     print_string
0250: 
0251: 
0252: 
0253:         .if                     display_infos_debug=0
0254: titi:           bra             titi
0255:         .endif
0256: toto:
0257: 
0258: ; affiche les registres internes
0259:         move.l  LSP_DSP_PAULA_internal_location0,d0
0260:         .if             nb_bits_virgule_offset<9
0261:                 lsr.l   #nb_bits_virgule_offset,d0
0262:         .else
0263:                 lsr.l   #8,d0
0264:                 lsr.l   #nb_bits_virgule_offset-8,d0
0265:         .endif
0266:         bsr             print_nombre_hexa_8_chiffres
0267:         move.l  #' ',d0
0268:         bsr             print_caractere
0269:         move.l  LSP_DSP_PAULA_internal_increment0,d0
0270:         bsr             print_nombre_hexa_8_chiffres
0271:         move.l  #' ',d0
0272:         bsr             print_caractere
0273:         move.l  #0,d0
0274:         bsr             print_nombre_hexa_8_chiffres
0275:         move.l  #' ',d0
0276:         bsr             print_caractere
0277:         move.l  LSP_DSP_PAULA_internal_length0,d0
0278:         .if             nb_bits_virgule_offset<9
0279:                 lsr.l   #nb_bits_virgule_offset,d0
0280:         .else
0281:                 lsr.l   #8,d0
0282:                 lsr.l   #nb_bits_virgule_offset-8,d0
0283:         .endif
0284:         bsr             print_nombre_hexa_8_chiffres
0285: 
0286:         ; ligne suivant
0287:         moveq   #10,d0
0288:         bsr             print_caractere
0289: 
0290:         move.l  LSP_DSP_PAULA_internal_location1,d0
0291:         bsr             print_nombre_hexa_8_chiffres
0292:         move.l  #' ',d0
0293:         bsr             print_caractere
0294:         move.l  LSP_DSP_PAULA_internal_increment1,d0
0295:         bsr             print_nombre_hexa_8_chiffres
0296:         move.l  #' ',d0
0297:         bsr             print_caractere
0298:         move.l  #0,d0
0299:         bsr             print_nombre_hexa_8_chiffres
0300:         move.l  #' ',d0
0301:         bsr             print_caractere
0302:         move.l  LSP_DSP_PAULA_internal_length1,d0
0303:         bsr             print_nombre_hexa_8_chiffres
0304: 
0305: 
0306:         ; ligne suivant
0307:         moveq   #10,d0
0308:         bsr             print_caractere
0309: 
0310:         move.l  LSP_DSP_PAULA_internal_location2,d0
0311:         bsr             print_nombre_hexa_8_chiffres
0312:         move.l  #' ',d0
0313:         bsr             print_caractere
0314:         move.l  LSP_DSP_PAULA_internal_increment2,d0
0315:         bsr             print_nombre_hexa_8_chiffres
0316:         move.l  #' ',d0
0317:         bsr             print_caractere
0318:         move.l  #0,d0
0319:         bsr             print_nombre_hexa_8_chiffres
0320:         move.l  #' ',d0
0321:         bsr             print_caractere
0322:         move.l  LSP_DSP_PAULA_internal_length2,d0
0323:         bsr             print_nombre_hexa_8_chiffres
0324: 
0325: 
0326:         ; ligne suivant
0327:         moveq   #10,d0
0328:         bsr             print_caractere
0329: 
0330: 
0331: 
0332:         move.l  LSP_DSP_PAULA_internal_location3,d0
0333:         .if             nb_bits_virgule_offset<9
0334:                 lsr.l   #nb_bits_virgule_offset,d0
0335:         .else
0336:                 lsr.l   #8,d0
0337:                 lsr.l   #nb_bits_virgule_offset-8,d0
0338:         .endif
0339:         bsr             print_nombre_hexa_8_chiffres
0340:         move.l  #' ',d0
0341:         bsr             print_caractere
0342:         move.l  LSP_DSP_PAULA_internal_increment3,d0
0343:         bsr             print_nombre_hexa_8_chiffres
0344:         move.l  #' ',d0
0345:         bsr             print_caractere
0346:         move.l  #0,d0
0347:         bsr             print_nombre_hexa_8_chiffres
0348:         move.l  #' ',d0
0349:         bsr             print_caractere
0350:         move.l  LSP_DSP_PAULA_internal_length3,d0
0351:         .if             nb_bits_virgule_offset<9
0352:                 lsr.l   #nb_bits_virgule_offset,d0
0353:         .else
0354:                 lsr.l   #8,d0
0355:                 lsr.l   #nb_bits_virgule_offset-8,d0
0356:         .endif
0357:         bsr             print_nombre_hexa_8_chiffres
0358: 
0359: 
0360:         ; ligne suivant
0361:         moveq   #10,d0
0362:         bsr             print_caractere
0363: 
0364: ; saute une ligne
0365:         ; ligne suivant
0366:         moveq   #10,d0
0367:         bsr             print_caractere
0368: 
0369: 
0370:         lea                     chaine_entete_debug_module2,a0
0371:         bsr                     print_string
0372: 
0373: 
0374: ; affiche les registres externes
0375:         move.l  LSP_DSP_PAULA_AUD0L,d0
0376:         bsr             print_nombre_hexa_8_chiffres
0377:         move.l  #' ',d0
0378:         bsr             print_caractere
0379:         move.l  LSP_DSP_PAULA_AUD0LEN,d0
0380:         bsr             print_nombre_hexa_8_chiffres
0381:         move.l  #' ',d0
0382:         bsr             print_caractere
0383:         move.l  LSP_DSP_PAULA_AUD0PER,d0
0384:         bsr             print_nombre_hexa_8_chiffres
0385:         move.l  #' ',d0
0386:         bsr             print_caractere
0387:         move.l  LSP_DSP_PAULA_AUD0VOL,d0
0388:         bsr             print_nombre_hexa_8_chiffres
0389:         ; ligne suivant
0390:         moveq   #10,d0
0391:         bsr             print_caractere
0392: 
0393:         move.l  LSP_DSP_PAULA_AUD1L,d0
0394:         bsr             print_nombre_hexa_8_chiffres
0395:         move.l  #' ',d0
0396:         bsr             print_caractere
0397:         move.l  LSP_DSP_PAULA_AUD1LEN,d0
0398:         bsr             print_nombre_hexa_8_chiffres
0399:         move.l  #' ',d0
0400:         bsr             print_caractere
0401:         move.l  LSP_DSP_PAULA_AUD1PER,d0
0402:         bsr             print_nombre_hexa_8_chiffres
0403:         move.l  #' ',d0
0404:         bsr             print_caractere
0405:         move.l  LSP_DSP_PAULA_AUD1VOL,d0
0406:         bsr             print_nombre_hexa_8_chiffres
0407:         ; ligne suivant
0408:         moveq   #10,d0
0409:         bsr             print_caractere
0410: 
0411:         move.l  LSP_DSP_PAULA_AUD2L,d0
0412:         bsr             print_nombre_hexa_8_chiffres
0413:         move.l  #' ',d0
0414:         bsr             print_caractere
0415:         move.l  LSP_DSP_PAULA_AUD2LEN,d0
0416:         bsr             print_nombre_hexa_8_chiffres
0417:         move.l  #' ',d0
0418:         bsr             print_caractere
0419:         move.l  LSP_DSP_PAULA_AUD2PER,d0
0420:         bsr             print_nombre_hexa_8_chiffres
0421:         move.l  #' ',d0
0422:         bsr             print_caractere
0423:         move.l  LSP_DSP_PAULA_AUD2VOL,d0
0424:         bsr             print_nombre_hexa_8_chiffres
0425:         ; ligne suivant
0426:         moveq   #10,d0
0427:         bsr             print_caractere
0428: 
0429:         move.l  LSP_DSP_PAULA_AUD3L,d0
0430:         .if             nb_bits_virgule_offset<9
0431:                 lsr.l   #nb_bits_virgule_offset,d0
0432:         .else
0433:                 lsr.l   #8,d0
0434:                 lsr.l   #nb_bits_virgule_offset-8,d0
0435:         .endif
0436:         bsr             print_nombre_hexa_8_chiffres
0437:         move.l  #' ',d0
0438:         bsr             print_caractere
0439:         move.l  LSP_DSP_PAULA_AUD3LEN,d0
0440:         .if             nb_bits_virgule_offset<9
0441:                 lsr.l   #nb_bits_virgule_offset,d0
0442:         .else
0443:                 lsr.l   #8,d0
0444:                 lsr.l   #nb_bits_virgule_offset-8,d0
0445:         .endif
0446:         bsr             print_nombre_hexa_8_chiffres
0447:         move.l  #' ',d0
0448:         bsr             print_caractere
0449:         move.l  LSP_DSP_PAULA_AUD3PER,d0
0450:         bsr             print_nombre_hexa_8_chiffres
0451:         move.l  #' ',d0
0452:         bsr             print_caractere
0453:         move.l  LSP_DSP_PAULA_AUD3VOL,d0
0454:         bsr             print_nombre_hexa_8_chiffres
0455:         ; ligne suivant
0456:         moveq   #10,d0
0457:         bsr             print_caractere
0458:         ; ligne suivant
0459:         moveq   #10,d0
0460:         bsr             print_caractere
0461: 
0462: 
0463:         move.l  LSP_DSP_PAULA_AUD0DAT,d0
0464:         bsr             print_nombre_hexa_8_chiffres
0465:         move.l  #' ',d0
0466:         bsr             print_caractere
0467:         move.l  LSP_DSP_PAULA_AUD1DAT,d0
0468:         bsr             print_nombre_hexa_8_chiffres
0469:         move.l  #' ',d0
0470:         bsr             print_caractere
0471:         move.l  LSP_DSP_PAULA_AUD2DAT,d0
0472:         bsr             print_nombre_hexa_8_chiffres
0473:         move.l  #' ',d0
0474:         bsr             print_caractere
0475:         move.l  LSP_DSP_PAULA_AUD3DAT,d0
0476:         bsr             print_nombre_hexa_8_chiffres
0477:         move.l  #' ',d0
0478:         bsr             print_caractere
0479: 
0480:         .rept   11
0481:         ; retour a la ligne      au dessus
0482:         moveq   #8,d0
0483:         bsr             print_caractere
0484:         .endr
0485: 
0486: 
0487:         bra                     toto
0488: 
0489:         stop            #$2700
0490: 
0491: 
0492: ;-----------------------------------------------------------------------------------
0493: ;--------------------------
0494: ; VBL
0495: 
0496: VBL:
0497:                 movem.l d0-d7/a0-a6,-(a7)
0498:                                
0499:                                 .if             display_infos_debug=1
0500:                                 ;add.w          #1,BG                                   ; debug pour voir si vivant
0501:                                 .endif
0502: 
0503:                 jsr     copy_olist                      ; use Blitter to update active list from shadow
0504: 
0505:                 addq.l  #1,vbl_counter
0506: 
0507:                 move.w  #$101,INT1                      ; Signal we're done
0508:                                 move.w  #$0,INT2
0509: .exit:
0510:                 movem.l (a7)+,d0-d7/a0-a6
0511:                 rte
0512: 
0513: ; ---------------------------------------
0514: ; imprime une chaine termin�e par un z�ro
0515: ; a0=pointeur sur chaine
0516: print_string:
0517:         movem.l d0-d7/a0-a6,-(a7)      
0518: 
0519: print_string_boucle:
0520:         moveq   #0,d0
0521:         move.b  (a0)+,d0
0522:         cmp.w   #0,d0
0523:         bne.s   print_string_pas_fin_de_chaine
0524:         movem.l (a7)+,d0-d7/a0-a6
0525:         rts
0526: print_string_pas_fin_de_chaine:
0527:         bsr             print_caractere
0528:         bra.s   print_string_boucle
0529: 
0530: ; ---------------------------------------
0531: ; imprime un nombre HEXA de 2 chiffres
0532: print_nombre_hexa_2_chiffres:
0533:         movem.l d0-d7/a0-a6,-(a7)
0534:         lea             convert_hexa,a0
0535:         move.l          d0,d1
0536:         divu            #16,d0
0537:         and.l           #$F,d0                  ; limite a 0-15
0538:         move.l          d0,d2
0539:         mulu            #16,d2
0540:         sub.l           d2,d1
0541:         move.b          (a0,d0.w),d0
0542:         bsr                     print_caractere
0543:         move.l          d1,d0
0544:         and.l           #$F,d0                  ; limite a 0-15
0545:         move.b          (a0,d0.w),d0
0546:         bsr                     print_caractere
0547:         movem.l (a7)+,d0-d7/a0-a6
0548:         rts
0549:        
0550: convert_hexa:
0551:         dc.b            48,49,50,51,52,53,54,55,56,57
0552:         dc.b            65,66,67,68,69,70
0553:         even
0554:        
0555: ; ---------------------------------------
0556: ; imprime un nombre de 2 chiffres
0557: print_nombre_2_chiffres:
0558:         movem.l d0-d7/a0-a6,-(a7)
0559:         move.l          d0,d1
0560:         divu            #10,d0
0561:         and.l           #$FF,d0
0562:         move.l          d0,d2
0563:         mulu            #10,d2
0564:         sub.l           d2,d1
0565:         cmp.l           #0,d0
0566:         beq.s           .zap
0567:         add.l           #48,d0
0568:         bsr                     print_caractere
0569: .zap:
0570:         move.l          d1,d0
0571:         add.l           #48,d0
0572:         bsr                     print_caractere
0573:         movem.l (a7)+,d0-d7/a0-a6
0574:         rts
0575: 
0576: ; ---------------------------------------
0577: ; imprime un nombre de 3 chiffres
0578: print_nombre_3_chiffres:
0579:         movem.l d0-d7/a0-a6,-(a7)
0580:         move.l          d0,d1
0581: 
0582:         divu            #100,d0
0583:         and.l           #$FF,d0
0584:         move.l          d0,d2
0585:         mulu            #100,d2
0586:         sub.l           d2,d1
0587:         cmp.l           #0,d0
0588:         beq.s           .zap
0589:         add.l           #48,d0
0590:         bsr                     print_caractere
0591: .zap:
0592:         move.l          d1,d0  
0593:         divu            #10,d0
0594:         and.l           #$FF,d0
0595:         move.l          d0,d2
0596:         mulu            #10,d2
0597:         sub.l           d2,d1
0598:         add.l           #48,d0
0599:         bsr                     print_caractere
0600:        
0601:         move.l          d1,d0
0602:         add.l           #48,d0
0603:         bsr                     print_caractere
0604:         movem.l (a7)+,d0-d7/a0-a6
0605:         rts
0606: 
0607: 
0608: ; ---------------------------------------
0609: ; imprime un nombre de 2 chiffres , 00
0610: print_nombre_2_chiffres_force:
0611:         movem.l d0-d7/a0-a6,-(a7)
0612:         move.l          d0,d1
0613:         divu            #10,d0
0614:         and.l           #$FF,d0
0615:         move.l          d0,d2
0616:         mulu            #10,d2
0617:         sub.l           d2,d1
0618:         add.l           #48,d0
0619:         bsr                     print_caractere
0620:         move.l          d1,d0
0621:         add.l           #48,d0
0622:         bsr                     print_caractere
0623:         movem.l (a7)+,d0-d7/a0-a6
0624:         rts
0625: 
0626: ; ---------------------------------------
0627: ; imprime un nombre de 4 chiffres HEXA
0628: print_nombre_hexa_4_chiffres:
0629:         movem.l d0-d7/a0-a6,-(a7)
0630:         move.l          d0,d1
0631:         lea             convert_hexa,a0
0632: 
0633:         divu            #4096,d0
0634:         and.l           #$FF,d0
0635:         move.l          d0,d2
0636:         mulu            #4096,d2
0637:         sub.l           d2,d1
0638:         move.b          (a0,d0.w),d0
0639:         bsr                     print_caractere
0640: 
0641:         move.l          d1,d0
0642:         divu            #256,d0
0643:         and.l           #$FF,d0
0644:         move.l          d0,d2
0645:         mulu            #256,d2
0646:         sub.l           d2,d1
0647:         move.b          (a0,d0.w),d0
0648:         bsr                     print_caractere
0649: 
0650: 
0651:         move.l          d1,d0
0652:         divu            #16,d0
0653:         and.l           #$FF,d0
0654:         move.l          d0,d2
0655:         mulu            #16,d2
0656:         sub.l           d2,d1
0657:         move.b          (a0,d0.w),d0
0658:         bsr                     print_caractere
0659:         move.l          d1,d0
0660:         move.b          (a0,d0.w),d0
0661:         bsr                     print_caractere
0662:         movem.l (a7)+,d0-d7/a0-a6
0663:         rts
0664: 
0665: ; ---------------------------------------
0666: ; imprime un nombre de 6 chiffres HEXA ( pour les adresses memoire)
0667: print_nombre_hexa_6_chiffres:
0668:         movem.l d0-d7/a0-a6,-(a7)
0669:        
0670:         move.l          d0,d1
0671:         lea             convert_hexa,a0
0672: 
0673:         move.l          d1,d0
0674:         swap            d0
0675:         and.l           #$F0,d0
0676:         divu            #16,d0
0677:         and.l           #$F,d0
0678:         move.b          (a0,d0.w),d0
0679:         and.l           #$FF,d0
0680:         bsr                     print_caractere
0681: 
0682:         move.l          d1,d0
0683:         swap            d0
0684:         and.l           #$F,d0
0685:         move.b          (a0,d0.w),d0
0686:         and.l           #$FF,d0
0687:         bsr                     print_caractere
0688: 
0689:         and.l           #$FFFF,d1
0690:         move.l          d1,d0
0691:         divu            #4096,d0
0692:         and.l           #$FF,d0
0693:         move.l          d0,d2
0694:         mulu            #4096,d2
0695:         sub.l           d2,d1
0696:         move.b          (a0,d0.w),d0
0697:         bsr                     print_caractere
0698: 
0699:         move.l          d1,d0
0700:         divu            #256,d0
0701:         and.l           #$FF,d0
0702:         move.l          d0,d2
0703:         mulu            #256,d2
0704:         sub.l           d2,d1
0705:         move.b          (a0,d0.w),d0
0706:         bsr                     print_caractere
0707: 
0708: 
0709:         move.l          d1,d0
0710:         divu            #16,d0
0711:         and.l           #$FF,d0
0712:         move.l          d0,d2
0713:         mulu            #16,d2
0714:         sub.l           d2,d1
0715:         move.b          (a0,d0.w),d0
0716:         bsr                     print_caractere
0717:         move.l          d1,d0
0718:         move.b          (a0,d0.w),d0
0719:         bsr                     print_caractere
0720:         movem.l (a7)+,d0-d7/a0-a6
0721:         rts
0722: 
0723: ; ---------------------------------------
0724: ; imprime un nombre de 8 chiffres HEXA ( pour les adresses memoire et les donn�es en 16:16)
0725: print_nombre_hexa_8_chiffres:
0726:         movem.l d0-d7/a0-a6,-(a7)
0727:        
0728:         move.l          d0,d1
0729:         lea             convert_hexa,a0
0730: 
0731:         move.l          d1,d0
0732:         swap            d0
0733:         and.l           #$F000,d0
0734:         divu            #4096,d0
0735:         and.l           #$F,d0
0736:         move.b          (a0,d0.w),d0
0737:         and.l           #$FF,d0
0738:         bsr                     print_caractere
0739: 
0740: 
0741: 
0742:         move.l          d1,d0
0743:         swap            d0
0744:         and.l           #$F00,d0
0745:         divu            #256,d0
0746:         and.l           #$F,d0
0747:         move.b          (a0,d0.w),d0
0748:         and.l           #$FF,d0
0749:         bsr                     print_caractere
0750: 
0751: 
0752:         move.l          d1,d0
0753:         swap            d0
0754:         and.l           #$F0,d0
0755:         divu            #16,d0
0756:         and.l           #$F,d0
0757:         move.b          (a0,d0.w),d0
0758:         and.l           #$FF,d0
0759:         bsr                     print_caractere
0760: 
0761:         move.l          d1,d0
0762:         swap            d0
0763:         and.l           #$F,d0
0764:         move.b          (a0,d0.w),d0
0765:         and.l           #$FF,d0
0766:         bsr                     print_caractere
0767: 
0768:         and.l           #$FFFF,d1
0769:         move.l          d1,d0
0770:         divu            #4096,d0
0771:         and.l           #$FF,d0
0772:         move.l          d0,d2
0773:         mulu            #4096,d2
0774:         sub.l           d2,d1
0775:         move.b          (a0,d0.w),d0
0776:         bsr                     print_caractere
0777: 
0778:         move.l          d1,d0
0779:         divu            #256,d0
0780:         and.l           #$FF,d0
0781:         move.l          d0,d2
0782:         mulu            #256,d2
0783:         sub.l           d2,d1
0784:         move.b          (a0,d0.w),d0
0785:         bsr                     print_caractere
0786: 
0787: 
0788:         move.l          d1,d0
0789:         divu            #16,d0
0790:         and.l           #$FF,d0
0791:         move.l          d0,d2
0792:         mulu            #16,d2
0793:         sub.l           d2,d1
0794:         move.b          (a0,d0.w),d0
0795:         bsr                     print_caractere
0796:         move.l          d1,d0
0797:         move.b          (a0,d0.w),d0
0798:         bsr                     print_caractere
0799:         movem.l (a7)+,d0-d7/a0-a6
0800:         rts
0801: 
0802: 
0803: ; ---------------------------------------
0804: ; imprime un nombre de 4 chiffres
0805: print_nombre_4_chiffres:
0806:         movem.l d0-d7/a0-a6,-(a7)
0807:         move.l          d0,d1
0808: 
0809:         divu            #1000,d0
0810:         and.l           #$FF,d0
0811:         move.l          d0,d2
0812:         mulu            #1000,d2
0813:         sub.l           d2,d1
0814:         add.l           #48,d0
0815:         bsr                     print_caractere
0816: 
0817:         move.l          d1,d0
0818:         divu            #100,d0
0819:         and.l           #$FF,d0
0820:         move.l          d0,d2
0821:         mulu            #100,d2
0822:         sub.l           d2,d1
0823:         add.l           #48,d0
0824:         bsr                     print_caractere
0825: 
0826: 
0827:         move.l          d1,d0
0828:         divu            #10,d0
0829:         and.l           #$FF,d0
0830:         move.l          d0,d2
0831:         mulu            #10,d2
0832:         sub.l           d2,d1
0833:         add.l           #48,d0
0834:         bsr                     print_caractere
0835:         move.l          d1,d0
0836:         add.l           #48,d0
0837:         bsr                     print_caractere
0838:         movem.l (a7)+,d0-d7/a0-a6
0839:         rts
0840: 
0841: ; ---------------------------------------
0842: ; imprime un nombre de 5 chiffres
0843: print_nombre_5_chiffres:
0844:         movem.l d0-d7/a0-a6,-(a7)
0845:         move.l          d0,d1
0846: 
0847:         divu            #10000,d0
0848:         and.l           #$FF,d0
0849:         move.l          d0,d2
0850:         mulu            #10000,d2
0851:         sub.l           d2,d1
0852:         add.l           #48,d0
0853:         bsr                     print_caractere
0854: 
0855:         move.l          d1,d0
0856:         divu            #1000,d0
0857:         and.l           #$FF,d0
0858:         move.l          d0,d2
0859:         mulu            #1000,d2
0860:         sub.l           d2,d1
0861:         add.l           #48,d0
0862:         bsr                     print_caractere
0863: 
0864:         move.l          d1,d0
0865:         divu            #100,d0
0866:         and.l           #$FF,d0
0867:         move.l          d0,d2
0868:         mulu            #100,d2
0869:         sub.l           d2,d1
0870:         add.l           #48,d0
0871:         bsr                     print_caractere
0872: 
0873: 
0874:         move.l          d1,d0
0875:         divu            #10,d0
0876:         and.l           #$FF,d0
0877:         move.l          d0,d2
0878:         mulu            #10,d2
0879:         sub.l           d2,d1
0880:         add.l           #48,d0
0881:         bsr                     print_caractere
0882:         move.l          d1,d0
0883:         add.l           #48,d0
0884:         bsr                     print_caractere
0885:         movem.l (a7)+,d0-d7/a0-a6
0886:         rts
0887: 
0888: 
0889: ; -----------------------------
0890: ; copie un caractere a l ecran
0891: ; d0.w=caractere
0892: 
0893: print_caractere:
0894:         movem.l d0-d7/a0-a6,-(a7)
0895: 
0896: 
0897: 
0898:         cmp.b   #00,d0
0899:         bne.s   print_caractere_pas_CLS
0900:         move.l  #ecran1,A1_BASE                 ; = DEST
0901:         move.l  #$0,A1_PIXEL
0902:         move.l  #PIXEL16|XADDPHR|PITCH1,A1_FLAGS
0903:         move.l  #ecran1+320*100,A2_BASE                 ; = source
0904:         move.l  #$0,A2_PIXEL
0905:         move.l  #PIXEL16|XADDPHR|PITCH1,A2_FLAGS
0906:        
0907:         move.w  #$00,B_PATD
0908:        
0909: 
0910:         moveq   #0,d0
0911:         move.w  #nb_octets_par_ligne,d0
0912:         lsr.w   #1,d0
0913:         move.w  #nb_lignes,d1
0914:         mulu    d1,d0
0915:         swap    d0
0916:         move.w  #1,d0
0917:         swap    d0
0918:         ;move.w #65535,d0
0919:         move.l  d0,B_COUNT
0920:         move.l  #LFU_REPLACE|SRCEN|PATDSEL,B_CMD
0921: 
0922: 
0923:         movem.l (a7)+,d0-d7/a0-a6
0924:         rts
0925:        
0926: print_caractere_pas_CLS:
0927: 
0928:         cmp.b   #10,d0
0929:         bne.s   print_caractere_pas_retourchariot
0930:         move.w  #0,curseur_x
0931:         add.w   #8,curseur_y
0932:         movem.l (a7)+,d0-d7/a0-a6
0933:         rts
0934: 
0935: print_caractere_pas_retourchariot:
0936:         cmp.b   #09,d0
0937:         bne.s   print_caractere_pas_retourdebutligne
0938:         move.w  #0,curseur_x
0939:         movem.l (a7)+,d0-d7/a0-a6
0940:         rts
0941: 
0942: print_caractere_pas_retourdebutligne:
0943:         cmp.b   #08,d0
0944:         bne.s   print_caractere_pas_retourdebutligneaudessus
0945:         move.w  #0,curseur_x
0946:         sub.w   #8,curseur_y
0947:         movem.l (a7)+,d0-d7/a0-a6
0948:         rts
0949: 
0950: 
0951: print_caractere_pas_retourdebutligneaudessus:
0952: 
0953:         lea             ecran1,a1
0954:         moveq   #0,d1
0955:         move.w  curseur_x,d1
0956:         add.l   d1,a1
0957:         moveq   #0,d1
0958:         move.w  curseur_y,d1
0959:         mulu    #nb_octets_par_ligne,d1
0960:         add.l   d1,a1
0961: 
0962:         lsl.l   #3,d0           ; * 8
0963:         lea             fonte,a0
0964:         add.l   d0,a0
0965:        
0966:        
0967: ; copie 1 lettre
0968:         move.l  #8-1,d0
0969: copieC_ligne:
0970:         moveq   #8-1,d1
0971:         move.b  (a0)+,d2
0972: copieC_colonne:
0973:         moveq   #0,d4
0974:         btst    d1,d2
0975:         beq.s   pixel_a_zero
0976:         moveq   #0,d4
0977:         move.w  couleur_char,d4
0978: pixel_a_zero:
0979:         move.b  d4,(a1)+
0980:         dbf             d1,copieC_colonne
0981:         lea             nb_octets_par_ligne-8(a1),a1
0982:         dbf             d0,copieC_ligne
0983: 
0984:         move.w  curseur_x,d0
0985:         add.w   #8,d0
0986:         cmp.w   #320,d0
0987:         blt             curseur_pas_fin_de_ligne
0988:         moveq   #0,d0
0989:         add.w   #8,curseur_y
0990: curseur_pas_fin_de_ligne:
0991:         move.w  d0,curseur_x
0992: 
0993:         movem.l (a7)+,d0-d7/a0-a6
0994: 
0995:         rts
0996: 
0997: 
0998: ;----------------------------------
0999: ; recopie l'object list dans la courante
1000: 
1001: copy_olist:
1002:                                 move.l  #ob_list_courante,A1_BASE                       ; = DEST
1003:                                 move.l  #$0,A1_PIXEL
1004:                                 move.l  #PIXEL16|XADDPHR|PITCH1,A1_FLAGS
1005:                                 move.l  #ob_liste_originale,A2_BASE                     ; = source
1006:                                 move.l  #$0,A2_PIXEL
1007:                                 move.l  #PIXEL16|XADDPHR|PITCH1,A2_FLAGS
1008:                                 move.w  #1,d0
1009:                                 swap    d0
1010:                                 move.l  #fin_ob_liste_originale-ob_liste_originale,d1
1011:                                 move.w  d1,d0
1012:                                 move.l  d0,B_COUNT
1013:                                 move.l  #LFU_REPLACE|SRCEN,B_CMD
1014:                                 rts
1015: 
1016: 
1017:         .if                     1=0
1018: ; ---------------------------------------
1019: ; allocation de m�moire
1020: ; malloc de d0, retour avec  un pointeur dans d0
1021: ; ---------------------------------------
1022: 
1023: YM_malloc:
1024: 
1025:         movem.l         d1-d3/a0,-(sp)
1026: 
1027:         move.l          debut_ram_libre,d1
1028:         move.l          d1,a0
1029:         move.l          d1,d3
1030: ; arrondit multiple de 2
1031:     btst                #0,d0
1032:         beq.s           YM_malloc_pas_d_arrondi
1033:         addq.l          #1,d0
1034: YM_malloc_pas_d_arrondi:
1035:         add.l           d0,d1
1036:         move.l          d1,debut_ram_libre
1037:        
1038:         move.l          d0,d2
1039:         subq.l          #1,d2
1040:         moveq.l         #0,d0
1041: 
1042: YM_malloc_boucle_clean_ram:
1043:         move.b          d0,(a0)+
1044:         dbf                     d2,YM_malloc_boucle_clean_ram
1045:        
1046:         move.l          d3,d0
1047: 
1048:         movem.l         (sp)+,d1-d3/a0
1049:         rts
1050: 
1051: ; ---------------------------------------
1052: ; allocation de m�moire version RAM DSP
1053: ; malloc de d0, retour avec  un pointeur dans d0
1054: ; d0 => forc�ment un multiple de 4
1055: ; ---------------------------------------
1056: 
1057: YM_malloc_DSP:
1058: 
1059:         movem.l         d1-d3/a0,-(sp)
1060: 
1061:         move.l          debut_ram_libre_DSP,d1
1062:         move.l          d1,a0
1063:         move.l          d1,d3
1064:         add.l           d0,d1
1065:         move.l          d1,debut_ram_libre_DSP
1066:        
1067:         move.l          d0,d2
1068:         moveq.l         #0,d0
1069:         lsr.l           #2,d2           ; 4 octets par 4 octets
1070:         subq.l          #1,d2
1071: 
1072: YM_malloc_boucle_clean_ram_DSP:
1073:         move.l          d0,(a0)+
1074:         dbf                     d2,YM_malloc_boucle_clean_ram_DSP
1075:        
1076:         move.l          d3,d0
1077: 
1078:         movem.l         (sp)+,d1-d3/a0
1079:         rts
1080: 
1081: 
1082:         .endif
1083: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
1084: ;;
1085: ;; Procedure: InitVideo (same as in vidinit.s)
1086: ;;            Build values for hdb, hde, vdb, and vde and store them.
1087: ;;
1088: 
1089: InitVideo:
1090:                 movem.l d0-d6,-(sp)
1091: 
1092:                                
1093:                                 move.w  #-1,ntsc_flag
1094:                                 move.l  #50,_50ou60hertz
1095:        
1096:                                 move.w  CONFIG,d0                ; Also is joystick register
1097:                 andi.w  #VIDTYPE,d0              ; 0 = PAL, 1 = NTSC
1098:                 beq     .palvals
1099:                                 move.w  #1,ntsc_flag
1100:                                 move.l  #60,_50ou60hertz
1101:        
1102: 
1103: .ntscvals:              move.w  #NTSC_HMID,d2
1104:                 move.w  #NTSC_WIDTH,d0
1105: 
1106:                 move.w  #NTSC_VMID,d6
1107:                 move.w  #NTSC_HEIGHT,d4
1108:                                
1109:                 bra     calc_vals
1110: .palvals:
1111:                                 move.w #PAL_HMID,d2
1112:                                 move.w #PAL_WIDTH,d0
1113: 
1114:                                 move.w #PAL_VMID,d6                            
1115:                                 move.w #PAL_HEIGHT,d4
1116: 
1117:                                
1118: calc_vals:              
1119:                 move.w  d0,width
1120:                 move.w  d4,height
1121:                 move.w  d0,d1
1122:                 asr     #1,d1                   ; Width/2
1123:                 sub.w   d1,d2                   ; Mid - Width/2
1124:                 add.w   #4,d2                   ; (Mid - Width/2)+4
1125:                 sub.w   #1,d1                   ; Width/2 - 1
1126:                 ori.w   #$400,d1                ; (Width/2 - 1)|$400
1127:                 move.w  d1,a_hde
1128:                 move.w  d1,HDE
1129:                 move.w  d2,a_hdb
1130:                 move.w  d2,HDB1
1131:                 move.w  d2,HDB2
1132:                 move.w  d6,d5
1133:                 sub.w   d4,d5
1134:                 add.w   #16,d5
1135:                 move.w  d5,a_vdb
1136:                 add.w   d4,d6
1137:                 move.w  d6,a_vde
1138:                        
1139:                             move.w  a_vdb,VDB
1140:                                 move.w  a_vde,VDE    
1141:                                
1142:                                
1143:                                 move.l  #0,BORD1                ; Black border
1144:                 move.w  #0,BG                   ; Init line buffer to black
1145:                 movem.l (sp)+,d0-d6
1146:                 rts
1147: 
1148: ; ------------------------------------
1149: ;          LSP
1150: ; ------------------------------------
1151: 
1152: 
1153: ; ------------------------------------
1154: ; Init
1155: 
1156: LSP_PlayerInit:
1157: ; a0: music data (any mem)
1158: ; a1: sound bank data (chip mem)
1159: ; (a2: 16bit DMACON word address)
1160: 
1161: ;               Out:a0: music BPM pointer (16bits)
1162: ;                       d0: music len in tick count
1163: 
1164: 
1165:                         cmpi.l          #'LSP1',(a0)+
1166:                         bne                     .dataError
1167:                         move.l          (a0)+,d0                ; unique id
1168:                         cmp.l           (a1),d0                 ; check that sample bank is this one
1169:                         bne                     .dataError
1170: 
1171:                         lea                     LSPVars,a3
1172:                         cmpi.w          #$0105,(a0)+                    ; minimal major & minor version of latest compatible LSPConvert.exe              = V 1.05
1173:                         blt                     .dataError
1174: 
1175:                         moveq           #0,d6
1176:                         move.w          (a0)+,d6
1177:                         move.l          d6,m_currentBpm-LSPVars(a3)             ; default BPM
1178:                         move.l          d6,LSP_BPM_frequence_replay
1179:                         move.w          (a0)+,d6
1180:                         move.l          d6,m_escCodeRewind-LSPVars(a3)          ; tout en .L
1181:                         move.w          (a0)+,d6
1182:                         move.l          d6,m_escCodeSetBpm-LSPVars(a3)
1183:                         move.l          (a0)+,-(a7)
1184:                         ;move.l a2,m_dmaconPatch(a3)
1185:                         ;move.w #$8000,-1(a2)                   ; Be sure DMACon word is $8000 (note: a2 should be ODD address)
1186:                         moveq           #0,d0
1187:                         move.w          (a0)+,d0                                ; instrument count
1188:                         lea                     -12(a0),a2                              ; LSP data has -12 offset on instrument tab ( to win 2 cycles in fast player :) )
1189:                         move.l          a2,m_lspInstruments-LSPVars(a3) ; instrument tab addr ( minus 4 )
1190:                         subq.w          #1,d0
1191:                         move.l          a1,d1
1192: 
1193: .relocLoop:    
1194:                         ;bset.b         #0,3(a0)                                ; bit0 is relocation done flag
1195:                         ;bne.s          .relocated
1196:                        
1197:                         move.l          (a0),d6                                 ; pointeur sample
1198:                         add.l           d1,d6                                   ; passage de relatif en absolu
1199:                         ;lsl.l          #nb_bits_virgule_offset,d6
1200:                         move.l          d6,(a0)                                 ; pointeur sample
1201: 
1202:                        
1203:                         moveq           #0,d6
1204:                         move.w          4(a0),d6                                ; taille en words
1205:                         add.w           d6,d6
1206:                         move.w          d6,4(a0)                                ; taille en bytes
1207: 
1208:                         move.l          (a0),a4                                
1209:                         bsr.s           LSP_unsigne_sample              ; A4=sample location / d6=length
1210: 
1211: 
1212:                         move.l          6(a0),d6                                        ; pointeur sample repeat
1213:                         add.l           d1,d6                                   ; passage de relatif en absolu
1214:                         ;lsl.l          #nb_bits_virgule_offset,d6
1215:                         move.l          d6,6(a0)                                        ; pointeur sample repeat
1216:                        
1217:                         moveq           #0,d6
1218:                         move.w          10(a0),d6                               ; taille repeat en words
1219:                         add.w           d6,d6
1220:                         move.w          d6,10(a0)                               ; taille repeat en bytes
1221: 
1222: .relocated:    
1223:                         lea                     12(a0),a0
1224:                         dbf                     d0,.relocLoop
1225:                
1226:                         move.w          (a0)+,d0                                ; codes count (+2)
1227:                         move.l          a0,m_codeTableAddr-LSPVars(a3)  ; code table
1228:                         add.w           d0,d0
1229:                         add.w           d0,a0
1230:                         move.l          (a0)+,d0                                ; word stream size
1231:                         move.l          (a0)+,d1                                ; byte stream loop point
1232:                         move.l          (a0)+,d2                                ; word stream loop point
1233: 
1234:                         move.l          a0,m_wordStream-LSPVars(a3)
1235:                         lea                     0(a0,d0.l),a1                   ; byte stream
1236:                         move.l          a1,m_byteStream-LSPVars(a3)
1237:                         add.l           d2,a0
1238:                         add.l           d1,a1
1239:                         move.l          a0,m_wordStreamLoop-LSPVars(a3)
1240:                         move.l          a1,m_byteStreamLoop-LSPVars(a3)
1241:                         ;bset.b         #1,$bfe001                              ; disabling this fucking Low pass filter!!
1242:                         lea                     m_currentBpm-LSPVars(a3),a0
1243:                         move.l          (a7)+,d0                                ; music len in frame ticks
1244:                         rts
1245: 
1246: .dataError:     illegal
1247: 
1248: LSP_unsigne_sample:
1249: ; A4=sample location / d6=length
1250:         movem.l         d0/d6/a4,-(sp)
1251:         subq.l          #1,d6
1252:         cmp.l           #0,d6
1253:         blt.s           .quit
1254: .boucle:
1255:         move.b          (a4),d0                         ; -128 to 127
1256:         sub.b           #$80,d0
1257:         move.b          d0,(a4)+
1258:         dbf                     d6,.boucle
1259: 
1260: .quit:
1261:         movem.l         (sp)+,d0/d6/a4
1262:         rts
1263: 
1264:        
1265:        
1266:         .text
1267:        
1268: ;-------------------------------------
1269: ;
1270: ;     DSP
1271: ;
1272: ;-------------------------------------
1273: 
1274:         .phrase
1275: YM_DSP_debut:
1276: 
1277:         .dsp
1278:         .org    D_RAM
1279: DSP_base_memoire:
1280: 
1281: ; CPU interrupt
1282:         .rept   8
1283:                 nop
1284:         .endr
1285:                                                                                                                                                                                                                                                                                                                                         |-----------------------|-----------------------|--------------------------
1286:                                                                                                                                                                                                                                                                                                                                         |       Cycle1  (read regs)     |       Cycle2  (compute)       |       Cycle3 (writeback)
1287:                                                                                                                                                                                                                                                                                                                                         |-----------------------|-----------------------|--------------------------
1288: ; I2S interrupt
1289:         movei   #DSP_LSP_routine_interruption_I2S,r28                                           ; 6 octets                                                                                                                                                                      | Rword1                                |       -                                       |       -
1290:                                                                                                                                                                                                                                                                                                                                         | Rword2                                | word1                                 |       -
1291:         movei   #D_FLAGS,r30                                                                                    ; 6 octets                                                                                                                                                                              | Rword1                                |       -                                       | word2word1 > Wr28
1292:                                                                                                                                                                                                                                                                                                                                         | Rword2                                | word1                                 |       -
1293:         jump    (r28)                                                                                                   ; 2 octets                                                                                                                                                                              | Rr28                                  |       -                                       | word2word1 > Wr30
1294:         load    (r30),r29       ; read flags                                                            ; 2 octets = 16 octets                                                                                                                                                  | Rr30                                  | r28 > WPC                             |       -
1295:                                                                                                                                                                                                                                                                                                                                         |       -                                       | Read FLAGS                    |       -
1296:                                                                                                                                                                                                                                                                                                                                         |       (new instruction)       |       -                                       | Flags > Wr29
1297: ; Timer 1 interrupt
1298:         movei   #DSP_LSP_routine_interruption_Timer1,r12                                                ; 6 octets                                                                                                                                                              | Rword1                                |       -                                       |       -
1299:                                                                                                                                                                                                                                                                                                                                         | Rword2                                | word1                                 |       -
1300:         movei   #D_FLAGS,r16                                                                                    ; 6 octets                                                                                                                                                                              | Rword1                                |       -                                       | word2word1 > Wr12
1301:                                                                                                                                                                                                                                                                                                                                         | Rword2                                | word1                                 |       -
1302:         jump    (r12)                                                                                                   ; 2 octets                                                                                                                                                                              | Rr12                                  |       -                                       | word2word1 > Wr16
1303:         load    (r16),r13       ; read flags                                                            ; 2 octets = 16 octets                                                                                                                                                  | Rr16                                  | r12 > WPC                             |       -
1304:                                                                                                                                                                                                                                                                                                                                         |       -                                       | Read FLAGS                    |       -
1305:                                                                                                                                                                                                                                                                                                                                         |       (new instruction)       |       -                                       | Flags > Wr13
1306: ; Timer 2 interrupt    
1307:         movei   #DSP_LSP_routine_interruption_Timer2,r28                                                ; 6 octets                                                                                                                                                              | Rword1                                |       -                                       |       -
1308:                                                                                                                                                                                                                                                                                                                                         | Rword2                                | word1                                 |       -
1309:         movei   #D_FLAGS,r30                                                                                    ; 6 octets                                                                                                                                                                              | Rword1                                |       -                                       | word2&word1 > Wr28
1310:                                                                                                                                                                                                                                                                                                                                         | Rword2                                | word1                                 |       -
1311:         jump    (r28)                                                                                                   ; 2 octets                                                                                                                                                                              | Rflags        & Rr28          |       -                                       | word2&word1 > Wr30
1312:         load    (r30),r29       ; read flags                                                            ; 2 octets = 16 octets                                                                                                                                                  | Rr30                                  | r28 > WPC                             |       -
1313:                                                                                                                                                                                                                                                                                                                                         |       -                                       | Read FLAGS                    |       -
1314:                                                                                                                                                                                                                                                                                                                                         |       (new instruction)       |       -                                       | Flags > Wr29
1315: ; External 0 interrupt
1316:         .rept   8
1317:                 nop
1318:         .endr
1319: ; External 1 interrupt
1320:         .rept   8
1321:                 nop
1322:         .endr
1323: 
1324: 
1325: 
1326: 
1327: 
1328: 
1329: 
1330: 
1331: 
1332: 
1333: 
1334: 
1335: 
1336: ; -------------------------------
1337: ; DSP : routines en interruption
1338: ; -------------------------------
1339: ; utilis�s :    R29/R30/R31
1340: ;                               R18/R19/R20/R21 /R22/R23/R24/R25/R26/R27/R28
1341: 
1342: 
1343: ; I2S : replay sample
1344: ;       - version simple, lit un octet � chaque fois
1345: ;       - puis version plus compleque : lit 1 long, et utilise ses octets
1346: DSP_LSP_routine_interruption_I2S:
1347: 
1348:         .if             DSP_DEBUG
1349: ; change la couleur du fond
1350:         movei   #$777,R26                                                                                                                                                                                                                                                                                               | Rword1                                |       -                                       |       -
1351:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
1352:         movei   #BG,r27                                                                                                                                                                                                                                                                                                 | Rword1                                |       -                                       |       word2word1 > Wr26
1353:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
1354:         storew  r26,(r27)                                                                                                                                                                                                                                                                                               | Rr26  & Rr27                  |       -                                       |       word2word1 > Wr27
1355:         .endif
1356: 
1357: 
1358: ; version complexe avec stockage de 4 octets
1359: ; channel 3
1360:                 movei           #LSP_DSP_PAULA_internal_location3,R28                                           ; adresse sample actuelle, a virgule                                                                                            | Rword1                                |       -                                       |       -
1361:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
1362:                 movei           #LSP_DSP_PAULA_internal_increment3,R27                                                                                                                                                                                                                  | Rword1                                |       -                                       |       word2word1 > Wr28
1363:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
1364:                 load            (R28),R26                                                                               ; R26=current pointeur sample 16:16                                                                                                                             | Rr28                                  |       -                                       |       word2word1 > Wr27
1365:                 load            (R27),R27                                                                               ; R27=increment 16:16                                                                                                                                                   | Rr27                                  |       Mr28                            |       -
1366:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr27                            |       Wr26
1367:                 move            R26,R17                                                                                 ; R17 = pointeur sample a virgule avant increment                                                                                               | Rr26                                  |       -                                       |       Wr27
1368:                 movei           #LSP_DSP_PAULA_internal_length3,R25                             ; =FIN                                                                                                                                                                                  | Rword1                                |       -                                       |       Wr17
1369:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
1370:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       word2word1 > Wr25
1371:                 add                     R27,R26                                                                                 ; R26=adresse+increment , a virgule                                                                                                                             | Rr27  & Rr26                  |       -                                       |       -
1372:                 load            (R25),R23                                                                                                                                                                                                                                                                               | Rr25                                  |       Cr26                            |       -
1373:                 movei           #$FFFFFFFC,R22                                                                                                                                                                                                                                                                  | Rword1                                |       Mr25                            |       Wr26
1374:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr23
1375:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       word2word1 > Wr22
1376:                 cmp                     R23,R26                                                                                                                                                                                                                                                                                 | Rr23  & Rr26                  |       -                                       |       -
1377:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
1378:                 jr                      mi,DSP_LSP_routine_interruption_I2S_pas_fin_de_sample_channel3                                                                                                                                                                  | Rflags                                |       -                                       |       Wflags
1379:                 nop                                                                                                                                                                                                                                                                                                                     | -                                             |       ? > WPC                         |       -
1380: ; fin de sample => on recharge les infos des registres externes
1381:                 shlq            #32-nb_bits_virgule_offset,R26                                                                                                                                                                                                                                  | Rr26                                  |       -                                       |       -
1382:                 movei           #LSP_DSP_PAULA_AUD3LEN,R27                      ; fin, a virgule                                                                                                                                                                                        | Rword1                                |       Cr26                            |       -
1383:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr26
1384:                 shrq            #32-nb_bits_virgule_offset,R26          ; on ne garde que la virgule                                                                                                                                                            | Rr26                                  |       -                                       |       word2word1 > Wr27
1385:                 movei           #LSP_DSP_PAULA_AUD3L,R24                        ; sample location a virgule                                                                                                                                                                     | Rword1                                |       Cr26                            |       -
1386:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr26
1387:                 load            (R27),R27                                                                                                                                                                                                                                                                               | Rr27                                  |       -                                       |       word2word1 > Wr24
1388:                 load            (R24),R23                                                                                                                                                                                                                                                                               | Rr24                                  |       Mr27                            |       -
1389:                 store           R27,(R25)                                                       ; update internal sample end, a virgule                                                                                                                                         | Rr27  & Rr25                  |       Mr24                            |       Wr27
1390:                 or                      R23,R26                                                         ; on garde la virgule en cours                                                                                                                                                          | Rr23  & Rr26                  |       Mr25                            |       Wr23
1391:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr26                            |       MWrite
1392: DSP_LSP_routine_interruption_I2S_pas_fin_de_sample_channel3:
1393:                 store           R26,(R28)                                                       ; stocke internal sample pointeur, a virgule                                                                                                                            | Rr26  & Rr28                  |       -                                       |       Wr26
1394:                 shrq            #nb_bits_virgule_offset,R26                                                             ; nouveau pointeur adresse sample partie entiere                                                                                | Rr26                                  |       Mr28                            |       -
1395:                 shrq            #nb_bits_virgule_offset,R17                                                             ; ancien pointeur adresse sample partie entiere                                                                                 | Rr17                                  |       Cr26                            |       MWrite
1396:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr17                            |       Wr26
1397:                 move            R26,R25                                                         ; R25 = nouveau pointeur sample                                                                                                                                                         | Rr26                                  |       -                                       |       Wr17
1398:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       Wr25
1399:                 and                     R22,R17                                                         ; ancien pointeur sample modulo 4                                                                                                                                                       | Rr22  & Rr17                  |       -                                       |       -
1400:                 and                     R22,R26                                                         ; nouveau pointeur sample modulo 4                                                                                                                                                      | Rr22  & Rr26                  |       Cr17                            |       -
1401:                 movei           #LSP_DSP_PAULA_AUD3DAT,R28                      ; 4 octets actuels                                                                                                                                                                                      | Rword1                                |       Cr26                            |       Wr17
1402:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr26
1403:                 not                     R22                                                                     ; => %11                                                                                                                                                                                                        | Rr22                                  |       -                                       |       word2word1 > Wr28
1404:                 load            (R28),R21                                                       ; R21 = octets actuels en stock                                                                                                                                                         | Rr28                                  |       Cr22                            |       -
1405:                 and                     R22,R25                                                         ; R25 = position octet � lire                                                                                                                                                           | Rr22                                  |       Mr28                            |       Wr22
1406:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr25                            |       Wr21
1407:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       Wr25
1408:                 cmp                     R17,R26                                                                                                                                                                                                                                                                                 | Rr17  & Rr26                  |       -                                       |       -
1409:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
1410:                 jr                      eq,DSP_LSP_routine_interruption_I2S_pas_nouveau_long_word3                                                                                                                                                                              | Rflags                                |       -                                       |       Wflags
1411:                 nop                                                                                                                                                                                                                                                                                                                     | -                                             |       ? > WPC                         |       -
1412: ; il faut rafraichir R21
1413:                 load            (R26),R21                                                       ; lit 4 nouveaux octets de sample                                                                                                                                                       | Rr26                                  |       -                                       |       -
1414:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr26                            |       -
1415:                 store           R21,(R28)                                                       ; rafraichit le stockage des 4 octets                                                                                                                                           | Rr21  & Rr28                  |       -                                       |       Wr21
1416: 
1417: DSP_LSP_routine_interruption_I2S_pas_nouveau_long_word3:
1418:                 shlq            #3,R25                                  ; numero d'octet � lire * 8                                                                                                                                                                                             | Rr25                                  |       Mr28                            |       -
1419:                 movei           #LSP_DSP_PAULA_AUD3VOL,R23                                                                                                                                                                                                                                              | Rword1                                |       Cr25                            |       Mwrite
1420:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr25
1421:                 neg                     R25                                                                     ; -0 -8 -16 -24                                                                                                                                                                                         | Rr25                                  |       -                                       |       word2word1 > Wr23
1422:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr25                            |       -
1423: ; R25=numero d'octet � lire
1424:                 sh                      R25,R21                                                         ; shift les 4 octets en stock vers la gauche, pour positionner l'octet � lire en haut                                           | Rr25  & Rr21                  |       -                                       |       Wr25
1425:                 load            (R23),R23                                                       ; R23 = volume : 6 bits                                                                                                                                                                         | Rr23                                  |       Cr21                            |       -
1426:                 shrq            #24,R21                                                         ; descends l'octet � lire                                                                                                                                                                       | Rr21                                  |       Mr23                            |       Wr21
1427:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr21                            |       Wr23
1428:                 mult            R23,R21                                                         ; unsigned multiplication : unsigned sample * volume => 8bits + 6 bits = 14 bits                                                        | Rr23  & Rr21                  |       -                                       |       Wr21
1429: 
1430: ; R21=sample channel 3 on 14 bits
1431: 
1432: ; channel 2
1433:                 movei           #LSP_DSP_PAULA_internal_location2,R28                                           ; adresse sample actuelle, a virgule                                                                                            | Rword1                                |       Cr21                            |       -
1434:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr21
1435:                 movei           #LSP_DSP_PAULA_internal_increment2,R27                                                                                                                                                                                                                  | Rword1                                |       -                                       |       word2word1 > Wr28
1436:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
1437:                 load            (R28),R26                                                                               ; R26=current pointeur sample 16:16                                                                                                                             | Rr28                                  |       -                                       |       word2word1 > Wr27
1438:                 load            (R27),R27                                                                               ; R27=increment 16:16                                                                                                                                                   | Rr27                                  |       Mr28                            |       -
1439:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr27                            |       Wr26
1440:                 move            R26,R17                                                                                 ; R17 = pointeur sample a virgule avant increment                                                                                               | Rr26                                  |       -                                       |       Wr27
1441:                 movei           #LSP_DSP_PAULA_internal_length2,R25                             ; =FIN                                                                                                                                                                                  | Rword1                                |       -                                       |       Wr17
1442:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
1443:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       word2word1 > Wr25
1444:                 add                     R27,R26                                                                                 ; R26=adresse+increment , a virgule                                                                                                                             | Rr27  & Rr26                  |       -                                       |       -
1445:                 load            (R25),R23                                                                                                                                                                                                                                                                               | Rr25                                  |       Cr26                            |       -
1446:                 movei           #$FFFFFFFC,R22                                                                                                                                                                                                                                                                  | Rword1                                |       Mr25                            |       Wr26
1447:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr23
1448:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       word2word1 > Wr22
1449:                 cmp                     R23,R26                                                                                                                                                                                                                                                                                 | Rr23  & Rr26                  |       -                                       |       -
1450:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
1451:                 jr                      mi,DSP_LSP_routine_interruption_I2S_pas_fin_de_sample_channel2                                                                                                                                                                  | Rflags                                |       -                                       |       Wflags
1452:                 nop                                                                                                                                                                                                                                                                                                                     | -                                             |       ? > WPC                         |       -
1453: ; fin de sample => on recharge les infos des registres externes
1454:                 shlq            #32-nb_bits_virgule_offset,R26                                                                                                                                                                                                                                  | Rr26                                  |       -                                       |       -
1455:                 movei           #LSP_DSP_PAULA_AUD2LEN,R27                      ; fin, a virgule                                                                                                                                                                                        | Rword1                                |       Cr26                            |       -
1456:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr26
1457:                 shrq            #32-nb_bits_virgule_offset,R26          ; on ne garde que la virgule                                                                                                                                                            | Rr26                                  |       -                                       |       word2word1 > Wr27
1458:                 movei           #LSP_DSP_PAULA_AUD2L,R24                        ; sample location a virgule                                                                                                                                                                     | Rword1                                |       Cr26                            |       -
1459:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr26
1460:                 load            (R27),R27                                                                                                                                                                                                                                                                               | Rr27                                  |       -                                       |       word2word1 > Wr24
1461:                 load            (R24),R23                                                                                                                                                                                                                                                                               | Rr24                                  |       Mr27                            |       -
1462:                 store           R27,(R25)                                                       ; update internal sample end, a virgule                                                                                                                                         | Rr27                                  |       Mr24                            |       Wr27
1463:                 or                      R23,R26                                                         ; on garde la virgule en cours                                                                                                                                                          | Rr23  & Rr26                  |       Mr25                            |       Wr23
1464:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr26                            |       MWrite
1465: DSP_LSP_routine_interruption_I2S_pas_fin_de_sample_channel2:
1466:                 store           R26,(R28)                                                       ; stocke internal sample pointeur, a virgule                                                                                                                            | Rr26  & Rr28                  |       -                                       |       Wr26
1467:                 shrq            #nb_bits_virgule_offset,R26                                                             ; nouveau pointeur adresse sample partie entiere                                                                                | Rr26                                  |       Mr28                            |       -
1468:                 shrq            #nb_bits_virgule_offset,R17                                                             ; ancien pointeur adresse sample partie entiere                                                                                 | Rr17                                  |       Cr26                            |       MWrite
1469:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr17                            |       Wr26
1470:                 move            R26,R25                                                         ; R25 = nouveau pointeur sample                                                                                                                                                         | Rr26                                  |       -                                       |       Wr17
1471:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       Wr25
1472:                 and                     R22,R17                                                         ; ancien pointeur sample modulo 4                                                                                                                                                       | Rr22  & Rr17                  |       -                                       |       -
1473:                 and                     R22,R26                                                         ; nouveau pointeur sample modulo 4                                                                                                                                                      | Rr22  & Rr26                  |       Cr17                            |       -
1474:                 movei           #LSP_DSP_PAULA_AUD2DAT,R28                      ; 4 octets actuels                                                                                                                                                                                      | Rword1                                |       Cr26                            |       Wr17
1475:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr26
1476:                 not                     R22                                                                     ; => %11                                                                                                                                                                                                        | Rr22                                  |       -                                       |       word2word1 > Wr28
1477:                 load            (R28),R20                                                       ; R20 = octets actuels en stock                                                                                                                                                         | Rr28                                  |       Cr22                            |       -
1478:                 and                     R22,R25                                                         ; R25 = position octet � lire                                                                                                                                                           | Rr22  & Rr25                  |       Mr28                            |       Wr22
1479:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr25                            |       Wr20
1480:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       Wr25
1481:                 cmp                     R17,R26                                                                                                                                                                                                                                                                                 | Rr17  & Rr26                  |       -                                       |       -
1482:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
1483:                 jr                      eq,DSP_LSP_routine_interruption_I2S_pas_nouveau_long_word2                                                                                                                                                                              | Rflags                                |       -                                       |       Wflags
1484:                 nop                                                                                                                                                                                                                                                                                                                     | -                                             |       ? > WPC                         |       -
1485: ; il faut rafraichir R20
1486:                 load            (R26),R20                                                       ; lit 4 nouveaux octets de sample                                                                                                                                                       | Rr26                                  |       -                                       |       -
1487:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr26                            |       -
1488:                 store           R20,(R28)                                                       ; rafraichit le stockage des 4 octets                                                                                                                                           | Rr20  & Rr28                  |       -                                       |       Wr20
1489: 
1490: DSP_LSP_routine_interruption_I2S_pas_nouveau_long_word2:
1491:                 shlq            #3,R25                                  ; numero d'octet � lire * 8                                                                                                                                                                                             | Rr25                                  |       Mr28                            |       -
1492:                 movei           #LSP_DSP_PAULA_AUD2VOL,R23                                                                                                                                                                                                                                              | Rword1                                |       Cr25                            |       MWrite
1493:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr25
1494:                 neg                     R25                                                                     ; -0 -8 -16 -24                                                                                                                                                                                         | Rr25                                  |       -                                       |       word2word1 > Wr23
1495:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr25                            |       -
1496: ; R25=numero d'octet � lire
1497:                 sh                      R25,R20                                                         ; shift les 4 octets en stock vers la gauche, pour positionner l'octet � lire en haut                                           | Rr25  & Rr20                  |       -                                       |       Wr25
1498:                 load            (R23),R23                                                       ; R23 = volume : 6 bits                                                                                                                                                                         | Rr23                                  |       Cr20                            |       -
1499:                 shrq            #24,R20                                                         ; descends l'octet � lire                                                                                                                                                                       | Rr20                                  |       Mr23                            |       Wr20
1500:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr20                            |       Wr23
1501:                 mult            R23,R20                                                         ; unsigned multiplication : unsigned sample * volume => 8bits + 6 bits = 14 bits                                                        | Rr23  & Rr20                  |       -                                       |       Wr20
1502: 
1503: ; R20=sample channel 2 on 14 bits
1504: 
1505: ; channel 1
1506:                 movei           #LSP_DSP_PAULA_internal_location1,R28                                           ; adresse sample actuelle, a virgule                                                                                            | Rword1                                |       Cr20                            |       -
1507:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr20
1508:                 movei           #LSP_DSP_PAULA_internal_increment1,R27                                                                                                                                                                                                                  | Rword1                                |       -                                       |       word2word1 > Wr28
1509:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
1510:                 load            (R28),R26                                                                               ; R26=current pointeur sample 16:16                                                                                                                             | Rr28                                  |       -                                       |       word2word1 > Wr27
1511:                 load            (R27),R27                                                                               ; R27=increment 16:16                                                                                                                                                   | Rr27                                  |       Mr28                            |       -
1512:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr27                            |       Wr26
1513:                 move            R26,R17                                                                                 ; R17 = pointeur sample a virgule avant increment                                                                                               | Rr26                                  |       -                                       |       Wr27
1514:                 movei           #LSP_DSP_PAULA_internal_length1,R25                             ; =FIN                                                                                                                                                                                  | Rword1                                |       -                                       |       Wr17
1515:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
1516:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       word2word1 > Wr25
1517:                 add                     R27,R26                                                                                 ; R26=adresse+increment , a virgule                                                                                                                             | Rr27  & Rr26                  |       -                                       |       -
1518:                 load            (R25),R23                                                                                                                                                                                                                                                                               | Rr25                                  |       Cr26                            |       -
1519:                 movei           #$FFFFFFFC,R22                                                                                                                                                                                                                                                                  | Rword1                                |       Mr25                            |       Wr26
1520:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr23
1521:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       word2word1 > Wr22
1522:                 cmp                     R23,R26                                                                                                                                                                                                                                                                                 | Rr23  & Rr26                  |       -                                       |       -
1523:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
1524:                 jr                      mi,DSP_LSP_routine_interruption_I2S_pas_fin_de_sample_channel1                                                                                                                                                                  | Rflags                                |       -                                       |       Wflags
1525:                 nop                                                                                                                                                                                                                                                                                                                     | -                                             |       ? > WPC                         |       -
1526: ; fin de sample => on recharge les infos des registres externes
1527:                 shlq            #32-nb_bits_virgule_offset,R26                                                                                                                                                                                                                                  | Rr26                                  |       -                                       |       -
1528:                 movei           #LSP_DSP_PAULA_AUD1LEN,R27                      ; fin, a virgule                                                                                                                                                                                        | Rword1                                |       Cr26                            |       -
1529:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr26
1530:                 shrq            #32-nb_bits_virgule_offset,R26          ; on ne garde que la virgule                                                                                                                                                            | Rr26                                  |       -                                       |       word2word1 > Wr27
1531:                 movei           #LSP_DSP_PAULA_AUD1L,R24                        ; sample location a virgule                                                                                                                                                                     | Rword1                                |       Cr26                            |       -
1532:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr26
1533:                 load            (R27),R27                                                                                                                                                                                                                                                                               | Rr27                                  |       -                                       |       word2word1 > Wr24
1534:                 load            (R24),R23                                                                                                                                                                                                                                                                               | Rr24                                  |       Mr27                            |       -
1535:                 store           R27,(R25)                                                       ; update internal sample end, a virgule                                                                                                                                         | Rr27  & Rr25                  |       Mr23                            |       Wr27
1536:                 or                      R23,R26                                                         ; on garde la virgule en cours                                                                                                                                                          | Rr22  & Rr26                  |       Mr25                            |       Wr23
1537:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr26                            |       MWrite
1538:                
1539: DSP_LSP_routine_interruption_I2S_pas_fin_de_sample_channel1:
1540:                 store           R26,(R28)                                                       ; stocke internal sample pointeur, a virgule                                                                                                                            | Rr26  & Rr28                  |       -                                       |       Wr26
1541:                 shrq            #nb_bits_virgule_offset,R26                                                             ; nouveau pointeur adresse sample partie entiere                                                                                | Rr26                                  |       Mr28                            |       -
1542:                 shrq            #nb_bits_virgule_offset,R17                                                             ; ancien pointeur adresse sample partie entiere                                                                                 | Rr17                                  |       Cr26                            |       MWrite
1543:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr17                            |       Wr26
1544:                 move            R26,R25                                                         ; R25 = nouveau pointeur sample                                                                                                                                                         | Rr26                                  |       -                                       |       Wr17
1545:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       Wr25
1546:                 and                     R22,R17                                                         ; ancien pointeur sample modulo 4                                                                                                                                                       | Rr22  & Rr17                  |       -                                       |       -
1547:                 and                     R22,R26                                                         ; nouveau pointeur sample modulo 4                                                                                                                                                      | Rr22  & Rr26                  |       Cr17                            |       -
1548:                 movei           #LSP_DSP_PAULA_AUD1DAT,R28                      ; 4 octets actuels                                                                                                                                                                                      | Rword1                                |       Cr26                            |       Wr17
1549:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr26
1550:                 not                     R22                                                                     ; => %11                                                                                                                                                                                                        | Rr22                                  |       -                                       |       word2word1 > Wr28
1551:                 load            (R28),R19                                                       ; R19 = octets actuels en stock                                                                                                                                                         | Rr28                                  |       Cr22                            |       -
1552:                 and                     R22,R25                                                         ; R25 = position octet � lire                                                                                                                                                           | Rr22  & Rr25                  |       Mr28                            |       Wr22
1553:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr25                            |       Wr19
1554:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       Wr25
1555:                 cmp                     R17,R26                                                                                                                                                                                                                                                                                 | Rr17  & Rr26                  |       -                                       |       -
1556:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
1557:                 jr                      eq,DSP_LSP_routine_interruption_I2S_pas_nouveau_long_word1                                                                                                                                                                              | Rflags                                |       -                                       |       Wflags
1558:                 nop                                                                                                                                                                                                                                                                                                                     | -                                             |       ? > WPC                         |       -
1559: ; il faut rafraichir R19
1560:                 load            (R26),R19                                                       ; lit 4 nouveaux octets de sample                                                                                                                                                       | Rr26                                  |       -                                       |       -
1561:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr26                            |       -
1562:                 store           R19,(R28)                                                       ; rafraichit le stockage des 4 octets                                                                                                                                           | Rr19  & Rr28                  |       -                                       |       Wr19
1563: 
1564: DSP_LSP_routine_interruption_I2S_pas_nouveau_long_word1:
1565:                 shlq            #3,R25                                  ; numero d'octet � lire * 8                                                                                                                                                                                             | Rr25                                  |       Mr28                            |       -
1566:                 movei           #LSP_DSP_PAULA_AUD1VOL,R23                                                                                                                                                                                                                                              | Rword1                                |       Cr25                            |       Mwrite
1567:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr25
1568:                 neg                     R25                                                                     ; -0 -8 -16 -24                                                                                                                                                                                         | Rr25                                  |       -                                       |       word2word1 > Wr23
1569:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr25                            |       -
1570: ; R25=numero d'octet � lire
1571:                 sh                      R25,R19                                                         ; shift les 4 octets en stock vers la gauche, pour positionner l'octet � lire en haut                                           | Rr25  & Rr19                  |       -                                       |       Wr25
1572:                 load            (R23),R23                                                       ; R23 = volume : 6 bits                                                                                                                                                                         | Rr23                                  |       Cr19                            |       -
1573:                 shrq            #24,R19                                                         ; descends l'octet � lire                                                                                                                                                                       | Rr19                                  |       Mr23                            |       Wr19
1574:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr19                            |       Wr23
1575:                 mult            R23,R19                                                         ; unsigned multiplication : unsigned sample * volume => 8bits + 6 bits = 14 bits                                                        | Rr23  & Rr19                  |       -                                       |       Wr19
1576:                
1577: ; R19=sample channel 1 on 14 bits
1578: 
1579: ; channel 0
1580:                 movei           #LSP_DSP_PAULA_internal_location0,R28                                           ; adresse sample actuelle, a virgule                                                                                            | Rword1                                |       Cr19                            |       -
1581:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr19
1582:                 movei           #LSP_DSP_PAULA_internal_increment0,R27                                                                                                                                                                                                                  | Rword1                                |       -                                       |       word2word1 > Wr28
1583:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
1584:                 load            (R28),R26                                                                               ; R26=current pointeur sample 16:16                                                                                                                             | Rr28                                  |       -                                       |       word2word1 > Wr27
1585:                 load            (R27),R27                                                                               ; R27=increment 16:16                                                                                                                                                   | Rr27                                  |       Mr28                            |       -
1586:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr27                            |       Wr26
1587:                 move            R26,R17                                                                                 ; R17 = pointeur sample a virgule avant increment                                                                                               | Rr26                                  |       -                                       |       Wr27
1588:                 movei           #LSP_DSP_PAULA_internal_length0,R25                             ; =FIN                                                                                                                                                                                  | Rword1                                |       -                                       |       Wr17
1589:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
1590:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       word2word1 > Wr25
1591:                 add                     R27,R26                                                                                 ; R26=adresse+increment , a virgule                                                                                                                             | Rr27  & Rr26                  |       -                                       |       -
1592:                 load            (R25),R23                                                                                                                                                                                                                                                                               | Rr25                                  |       Cr26                            |       -
1593:                 movei           #$FFFFFFFC,R22                                                                                                                                                                                                                                                                  | Rword1                                |       Mr25                            |       Wr26
1594:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr23
1595:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       word2word1 > Wr22
1596:                 cmp                     R23,R26                                                                                                                                                                                                                                                                                 | Rr23  & Rr26                  |       -                                       |       -
1597:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
1598:                 jr                      mi,DSP_LSP_routine_interruption_I2S_pas_fin_de_sample_channel0                                                                                                                                                                  | Rflags                                |       -                                       |       Wflags
1599:                 nop                                                                                                                                                                                                                                                                                                                     | -                                             |       ? > WPC                         |       -
1600: ; fin de sample => on recharge les infos des registres externes
1601:                 shlq            #32-nb_bits_virgule_offset,R26                                                                                                                                                                                                                                  | Rr26                                  |       -                                       |       -
1602:                 movei           #LSP_DSP_PAULA_AUD0LEN,R27                      ; fin, a virgule                                                                                                                                                                                        | Rword1                                |       Cr26                            |       -
1603:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr26
1604:                 shrq            #32-nb_bits_virgule_offset,R26          ; on ne garde que la virgule                                                                                                                                                            | Rr26                                  |       -                                       |       word2word1 > Wr27
1605:                 movei           #LSP_DSP_PAULA_AUD0L,R24                        ; sample location a virgule                                                                                                                                                                     | Rword1                                |       Cr26                            |       -
1606:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr26
1607:                 load            (R27),R27                                                                                                                                                                                                                                                                               | Rr27                                  |       -                                       |       word2word1 > Wr24
1608:                 load            (R24),R23                                                                                                                                                                                                                                                                               | Rr24                                  |       Mr27                            |       -
1609:                 store           R27,(R25)                                                       ; update internal sample end, a virgule                                                                                                                                         | Rr27  & Rr25                  |       Mr24                            |       Wr27
1610:                 or                      R23,R26                                                         ; on garde la virgule en cours                                                                                                                                                          | Rr23  & Rr26                  |       Mr25                            |       Wr23
1611:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr26                            |       Mwrite
1612: DSP_LSP_routine_interruption_I2S_pas_fin_de_sample_channel0:
1613:                 store           R26,(R28)                                                       ; stocke internal sample pointeur, a virgule                                                                                                                            | Rr26  & Rr28                  |       -                                       |       Wr26
1614:                 shrq            #nb_bits_virgule_offset,R26                                                             ; nouveau pointeur adresse sample partie entiere                                                                                | Rr26                                  |       Mr28                            |       -
1615:                 shrq            #nb_bits_virgule_offset,R17                                                             ; ancien pointeur adresse sample partie entiere                                                                                 | Rr17                                  |       Cr26                            |       -
1616:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr17                            |       Wr26
1617:                 move            R26,R25                                                         ; R25 = nouveau pointeur sample                                                                                                                                                         | Rr26                                  |       -                                       |       Wr17
1618:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       Wr25
1619:                 and                     R22,R17                                                         ; ancien pointeur sample modulo 4                                                                                                                                                       | Rr22  & Rr17                  |       -                                       |       -
1620:                 and                     R22,R26                                                         ; nouveau pointeur sample modulo 4                                                                                                                                                      | Rr22  & Rr26                  |       Cr17                            |       -
1621:                 movei           #LSP_DSP_PAULA_AUD0DAT,R28                      ; 4 octets actuels                                                                                                                                                                                      | Rword1                                |       Cr26                            |       Wr17
1622:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr26
1623:                 not                     R22                                                                     ; => %11                                                                                                                                                                                                        | Rr22                                  |       -                                       |       word2word1 > Wr28
1624:                 load            (R28),R18                                                       ; R18 = octets actuels en stock channel 0                                                                                                                                       | Rr28                                  |       Cr22                            |       -
1625:                 and                     R22,R25                                                         ; R25 = position octet � lire                                                                                                                                                           | Rr22  & Rr25                  |       Mr28                            |       Wr22
1626:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr25                            |       Wr18
1627:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       Wr25
1628:                 cmp                     R17,R26                                                                                                                                                                                                                                                                                 | Rr17  & Rr26                  |       -                                       |       -
1629:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
1630:                 jr                      eq,DSP_LSP_routine_interruption_I2S_pas_nouveau_long_word0                                                                                                                                                                              | Rflags                                |       -                                       |       Wflags
1631:                 nop                                                                                                                                                                                                                                                                                                                     | -                                             |       ? > WPC                         |       -
1632: ; il faut rafraichir R18
1633:                 load            (R26),R18                                                       ; lit 4 nouveaux octets de sample                                                                                                                                                       | Rr26                                  |       -                                       |       -
1634:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr26                            |       -
1635:                 store           R18,(R28)                                                       ; rafraichit le stockage des 4 octets                                                                                                                                           | Rr18  & Rr28                  |       -                                       |       Wr18
1636: 
1637: DSP_LSP_routine_interruption_I2S_pas_nouveau_long_word0:
1638:                 shlq            #3,R25                                  ; numero d'octet � lire * 8                                                                                                                                                                                             | Rr25                                  |       Mr28                            |       -
1639:                 movei           #LSP_DSP_PAULA_AUD0VOL,R23                                                                                                                                                                                                                                              | Rword1                                |       Cr25                            |       MWrite
1640:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr25
1641:                 neg                     R25                                                                     ; -0 -8 -16 -24                                                                                                                                                                                         | Rr25                                  |       -                                       |       word2word1 > Wr23
1642:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr25                            |       -
1643: ; R25=numero d'octet � lire
1644:                 sh                      R25,R18                                                         ; shift les 4 octets en stock vers la gauche, pour positionner l'octet � lire en haut                                           | Rr25  & Rr18                  |       -                                       |       Wr25
1645:                 load            (R23),R23                                                       ; R23 = volume : 6 bits                                                                                                                                                                         | Rr23                                  |       Cr18                            |       -
1646:                 shrq            #24,R18                                                         ; descends l'octet � lire                                                                                                                                                                       | Rr18                                  |       Mr23                            |       Wr18
1647:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr18                            |       Wr23
1648:                 mult            R23,R18                                                         ; unsigned multiplication : unsigned sample * volume => 8bits + 6 bits = 14 bits                                                        | Rr23  & Rr18                  |       -                                       |       Wr18
1649:                
1650: ; R18=sample channel 0 on 14 bits
1651: 
1652: 
1653: 
1654: ; St�reo Amiga:
1655: ; les canaux 0 et 3 formant la voie st�r�o gauche et 1 et 2 la voie st�r�o droite
1656: ; R18=channel 0
1657: ; R19=channel 1
1658: ; R20=channel 2
1659: ; R21=channel 3
1660:                 .if                     channel_1=0
1661:                         moveq   #0,R18
1662:                 .endif
1663:                 .if                     channel_2=0
1664:                         moveq   #0,R19
1665:                 .endif
1666:                 .if                     channel_3=0
1667:                         moveq   #0,R20
1668:                 .endif
1669:                 .if                     channel_4=0
1670:                         moveq   #0,R21
1671:                 .endif
1672: 
1673:                 movei           #$8000,R26                                                                                                                                                                                                                                                                              | Rword1                                |       Cr18                            |       -
1674:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr18
1675:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       word2word1 > Wr26
1676:                 add                     R21,R18                         ; R18 = left 15 bits unsigned                                                                                                                                                                                           | Rr21  & Rr18                  |       -                                       |       -
1677:                 movei           #L_I2S,R27                                                                                                                                                                                                                                                                              | Rword1                                |       Cr18                            |       -
1678:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr18
1679:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       word2word1 > Wr27
1680:                 add                     R20,R19                         ; R19 = right 15 bits unsigned                                                                                                                                                                                          | Rr20  & Rr19                  |       -                                       |       -
1681:                 shlq            #1,R18                          ; 16 bits unsigned                                                                                                                                                                                                                      | Rr18                                  |       Cr19                            |       -
1682:                 shlq            #1,R19                                                                                                                                                                                                                                                                                  | Rr19                                  |       Cr18                            |       Wr19
1683:                 sub                     R26,R18                         ; 16 bits signed                                                                                                                                                                                                                        | Rr26  & Rr18                  |       Cr19                            |       Wr18
1684:                 movei           #L_I2S+4,R25                                                                                                                                                                                                                                                                    | Rword1                                |       Cr18                            |       Wr19
1685:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr18
1686:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       word2word1 > Wr25
1687:                 sub                     R26,R19                                                                                                                                                                                                                                                                                 | Rr26  & Rr19                  |       -                                       |       -
1688:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr19                            |       -
1689:                 store           R19,(R27)                       ; write right channel                                                                                                                                                                                                           | Rr19  & Rr27                  |       -                                       |       Wr19
1690:                 store           R18,(R25)                       ; write left channel                                                                                                                                                                                                            | Rr18  & Rr25                  |       Mr27                            |       -
1691: 
1692:                
1693: 
1694:         .if             DSP_DEBUG
1695: ; change la couleur du fond
1696:         movei   #$000,R26
1697:         movei   #BG,r27
1698:         storew  r26,(r27)
1699:         .endif
1700: 
1701: 
1702: ;------------------------------------  
1703: ; return from interrupt I2S
1704:         load    (r31),r28       ; return address                                                                                                                                                                                                                                                        | Rr31                                  |       Mr25                            |       MWrite
1705:         bset    #10,r29         ; clear latch 1 = I2S                                                                                                                                                                                                                                           | Rr29                                  |       Mr31                            |       MWrite
1706:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr29                            |       Wr28
1707:         ;bset   #11,r29         ; clear latch 1 = timer 1
1708:         ;bset   #12,r29         ; clear latch 1 = timer 2
1709:         bclr    #3,r29          ; clear IMASK                                                                                                                                                                                                                                                           | Rr29                                  |       -                                       |       Wr29
1710:         addq    #4,r31          ; pop from stack                                                                                                                                                                                                                                                        | Rr31                                  |       Cr29                            |       -
1711:         addqt   #2,r28          ; next instruction                                                                                                                                                                                                                                                      | Rr28                                  |       Cr31                            |       Wr29
1712:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr28                            |       Wr31
1713:         jump    t,(r28)         ; return                                                                                                                                                                                                                                                                        | Rr28                                  |       -                                       |       Wr28
1714:         store   r29,(r30)       ; restore flags                                                                                                                                                                                                                                                         | Rr29          & Rr30          |       ? > WPC                         |       -
1715: 
1716: 
1717: ;--------------------------------------------
1718: ; ---------------- Timer 1 ------------------
1719: ;--------------------------------------------
1720: ; autorise interruptions, pour timer I2S
1721: ;
1722: ; registres utilis�s :
1723: ;               R13/R16   /R31
1724: ;               R0/R1/R2/R3/R4/R5/R6/R7/R8/R9  R12/R14
1725: 
1726: 
1727: DSP_LSP_routine_interruption_Timer1:
1728:         .if             I2S_during_Timer1=1
1729:         bclr    #3,r13          ; clear IMASK
1730:         store   r13,(r16)       ; restore flags
1731:         .endif
1732: 
1733: ; gestion replay LSP
1734: 
1735:         movei           #LSPVars,R14                                                                                                                                                                                                                                                                            | Rword1                                |       -                                       |       -
1736:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
1737:         load            (R14),R0                                        ; R0 = byte stream                                                                                                                                                                                                              | Rr14                                  |       -                                       |       word2word1 > Wr14
1738:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr14                            |       -
1739: DSP_LSP_Timer1_process:
1740:         moveq           #0,R2                                                                                                                                                                                                                                                                                           | #0                                    |       -                                       |       Wr0
1741: DSP_LSP_Timer1_cloop:
1742: 
1743:         loadb           (R0),R6                                         ; R6 = byte code                                                                                                                                                                                                                | Rr0                                   |       -                                       |       Wr2
1744:         addq            #1,R0                                                                                                                                                                                                                                                                                           | Rr0                                   |       Mr0                                     |       -
1745:        
1746:         cmpq            #0,R6                                                                                                                                                                                                                                                                                           | Rr6                                   |       -                                       |       Wr6
1747:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
1748:         jr                      ne,DSP_LSP_Timer1_swCode                                                                                                                                                                                                                                                        | Rflags                                |       -                                       |       Wflags
1749:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
1750:         movei           #$0100,R3                                                                                                                                                                                                                                                                                       | Rword1                                |       -                                       |       -
1751:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
1752:         add                     R3,R2                                                                                                                                                                                                                                                                                           | Rr3   & Rr2                   |       -                                       |       word2word1 > Wr3
1753:         jr                      DSP_LSP_Timer1_cloop                                                                                                                                                                                                                                                            | -                                             |       Cr2                                     |       -
1754:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       WPC                                     |       -
1755: 
1756: DSP_LSP_Timer1_swCode:
1757:         add                     R2,R6                                                                                                                                                                                                                                                                                           | Rr2   & Rr6                   |       -                                       |       -
1758:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr6                                     |       -
1759:         move            R6,R2                                                                                                                                                                                                                                                                                           | Rr6                                   |       -                                       |       Wr6
1760: 
1761:         add                     R2,R2                                                                                                                                                                                                                                                                                           | Rr2                                   |       -                                       |       Wr2
1762:         load            (R14+2),R3                      ; R3=code table / m_codeTableAddr                                                                                                                                                                                               | Rr14                                  |       Cr2                                     |       -
1763:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr14+2                          |       Wr2
1764:                                                                                                                                                                                                                                                                                                                                         | -                                             |                       Mr14+2          |       -
1765:         add                     R2,R3                                                                                                                                                                                                                                                                                           | Rr2   & Rr3                   |       -                                       |       Wr3
1766:         movei           #DSP_LSP_Timer1_noInst,R12                                                                                                                                                                                                                                                      | Rword1                                |       Cr3                                     |       -
1767:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
1768:         loadw           (R3),R2                                                                 ; R2 = code                                                                                                                                                                                                     | Rr3                                   |       -                                       |       word2word1 > Wr12
1769:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr3                                     |       -
1770:         cmpq            #0,R2                                                                                                                                                                                                                                                                                           | Rr2                                   |       -                                       |       Wr2
1771:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
1772:         jump            eq,(R12)                                                                                                                                                                                                                                                                                        | Rflags        & Rr12          |       -                                       |       Wflags
1773:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
1774:         load            (R14+3),R4                      ; R4=escape code rewind / m_escCodeRewind                                                                                                                                                                               | Rr14                                  |       -                                       |       -
1775:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr14+3                          |       -
1776:         movei           #DSP_LSP_Timer1_r_rewind,R12                                                                                                                                                                                                                                            | Rword1                                |       -               Mr14+3          |       -
1777:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr4
1778:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       word2word1 > Wr12
1779:         cmp                     R4,R2                                                                                                                                                                                                                                                                                           | Rr4   & Rr2                   |       -                                       |       -
1780:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
1781:         jump            eq,(R12)                                                                                                                                                                                                                                                                                        | Rflags        & Rr12          |       -                                       |       Wflags
1782:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
1783:         load            (R14+4),R4                      ; R4=escape code set bpm / m_escCodeSetBpm                                                                                                                                                                              | Rr14                                  |       -                                       |       -
1784:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr14+4                          |       -
1785:         movei           #DSP_LSP_Timer1_r_chgbpm,R12                                                                                                                                                                                                                                            | Rword1                                |       -               Mr14+4          |       -
1786:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr4
1787:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       word2word1 > Wr12
1788:         cmp                     R4,R2                                                                                                                                                                                                                                                                                           | Rr4   & Rr2                   |       -                                       |       -
1789:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
1790:         jump            eq,(R12)                                                                                                                                                                                                                                                                                        | Rflags        & Rr12          |       -                                       |       Wflags
1791:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
1792: 
1793: ;--------------------------
1794: ; gestion des volumes
1795: ;--------------------------
1796: ; test volume canal 3
1797:         btst            #7,R2                                                                                                                                                                                                                                                                                           | Rr2                                   |       -                                       |       -
1798:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
1799:         jr                      eq,DSP_LSP_Timer1_noVd                                                                                                                                                                                                                                                          | Rflags                                |       -                                       |       Wflags
1800:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
1801:         loadb           (R0),R4                                                                                                                                                                                                                                                                                         | Rr0                                   |       -                                       |       -
1802:         movei           #LSP_DSP_PAULA_AUD3VOL,R5                                                                                                                                                                                                                                                       | Rword1                                |       Mr0                                     |       -
1803:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr4
1804:         addq            #1,R0                                                                                                                                                                                                                                                                                           | Rr0                                   |       -                                       |       word2word1 > Wr5
1805:         store           R4,(R5)                                                                                                                                                                                                                                                                                         | Rr4   & Rr5                   |       Cr0                                     |       -
1806: DSP_LSP_Timer1_noVd:
1807: ; test volume canal 2
1808:         btst            #6,R2                                                                                                                                                                                                                                                                                           | Rr2                                   |       Mr5                                     |       Wr0
1809:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       MWrite
1810:         jr                      eq,DSP_LSP_Timer1_noVc                                                                                                                                                                                                                                                          | Rflags                                |       -                                       |       Wflags
1811:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
1812:         loadb           (R0),R4                                                                                                                                                                                                                                                                                         | Rr0                                   |       -                                       |       -
1813:         movei           #LSP_DSP_PAULA_AUD2VOL,R5                                                                                                                                                                                                                                                       | Rword1                                |       Mr0                                     |       -
1814:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr4
1815:         addq            #1,R0                                                                                                                                                                                                                                                                                           | Rr0                                   |       -                                       |       word2word1 > Wr5
1816:         store           R4,(R5)                                                                                                                                                                                                                                                                                         | Rr4   & Rr5                   |       Cr0                                     |       -
1817: DSP_LSP_Timer1_noVc:
1818: ; test volume canal 1
1819:         btst            #5,R2                                                                                                                                                                                                                                                                                           | Rr2                                   |       Mr5                                     |       Wr0
1820:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       MWrite
1821:         jr                      eq,DSP_LSP_Timer1_noVb                                                                                                                                                                                                                                                          | Rflags                                |       -                                       |       Wflags
1822:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
1823:         loadb           (R0),R4                                                                                                                                                                                                                                                                                         | Rr0                                   |       -                                       |       -
1824:         movei           #LSP_DSP_PAULA_AUD1VOL,R5                                                                                                                                                                                                                                                       | Rword1                                |       Mr0                                     |       -
1825:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr4
1826:         addq            #1,R0                                                                                                                                                                                                                                                                                           | Rr0                                   |       -                                       |       word2word1 > Wr5
1827:         store           R4,(R5)                                                                                                                                                                                                                                                                                         | Rr4   & Rr5                   |       Cr0                                     |       -
1828: DSP_LSP_Timer1_noVb:
1829: ; test volume canal 0
1830:         btst            #4,R2                                                                                                                                                                                                                                                                                           | Rr2                                   |       Mr5                                     |       Wr0
1831:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       MWrite
1832:         jr                      eq,DSP_LSP_Timer1_noVa                                                                                                                                                                                                                                                          | Rflags                                |       -                                       |       Wflags
1833:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
1834:         loadb           (R0),R4                                                                                                                                                                                                                                                                                         | Rr0                                   |       -                                       |       -
1835:         movei           #LSP_DSP_PAULA_AUD0VOL,R5                                                                                                                                                                                                                                                       | Rword1                                |       Mr0                                     |       -
1836:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr4
1837:         addq            #1,R0                                                                                                                                                                                                                                                                                           | Rr0                                   |       -                                       |       word2word1 > Wr5
1838:         store           R4,(R5)                                                                                                                                                                                                                                                                                         | Rr4   & Rr5                   |       Cr0                                     |       -
1839: DSP_LSP_Timer1_noVa:
1840: 
1841:         .if                     LSP_avancer_module=1
1842:         store           R0,(R14)                                                                        ; store byte stream ptr                                                                                                                                                                 | Rr0   & Rr14                  |       Mr5                                     |       Wr0
1843:         .endif
1844:         addq            #4,R14                                                                  ; avance a word stream ptr                                                                                                                                                                      | Rr14                                  |       Mr14                            |       Mwrite
1845:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr14                            |       Mwrite
1846:         load            (R14),R0                                                                        ; R0 = word stream                                                                                                                                                                              | Rr14                                  |       -                                       |       Wr14
1847: 
1848: ;--------------------------
1849: ; gestion des notes
1850: ;--------------------------
1851: ; test period canal 3
1852:         btst            #3,R2                                                                                                                                                                                                                                                                                           | Rr2                                   |       Mr14                            |       -
1853:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       Wr0
1854:         jr                      eq,DSP_LSP_Timer1_noPd                                                                                                                                                                                                                                                          | Rflags                                |       -                                       |       Wflags
1855:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
1856:         loadw           (R0),R4                                                                                                                                                                                                                                                                                         | Rr0                                   |       -                                       |       -
1857:         movei           #LSP_DSP_PAULA_AUD3PER,R5                                                                                                                                                                                                                                                       | Rword1                                |       Mr0                                     |       -
1858:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr4
1859:         addq            #2,R0                                                                                                                                                                                                                                                                                           | Rr0                                   |       -                                       |       word2word1 > Wr5
1860:         store           R4,(R5)                                                                                                                                                                                                                                                                                         | Rr4   & Rr5                   |       Cr0                                     |       -
1861: DSP_LSP_Timer1_noPd:
1862: ; test period canal 2
1863:         btst            #2,R2                                                                                                                                                                                                                                                                                           | Rr2                                   |       Mr5                                     |       Wr0
1864:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       MWrite
1865:         jr                      eq,DSP_LSP_Timer1_noPc                                                                                                                                                                                                                                                          | Rflags                                |       -                                       |       Wflags
1866:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
1867:         loadw           (R0),R4                                                                                                                                                                                                                                                                                         | Rr0                                   |       -                                       |       -
1868:         movei           #LSP_DSP_PAULA_AUD2PER,R5                                                                                                                                                                                                                                                       | Rword1                                |       Mr0                                     |       -
1869:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr4
1870:         addq            #2,R0                                                                                                                                                                                                                                                                                           | Rr0                                   |       -                                       |       word2word1 > Wr5
1871:         store           R4,(R5)                                                                                                                                                                                                                                                                                         | Rr4   & Rr5                   |       Cr0                                     |       -
1872: DSP_LSP_Timer1_noPc:
1873: ; test period canal 1
1874:         btst            #1,R2                                                                                                                                                                                                                                                                                           | Rr2                                   |       Mr5                                     |       Wr0
1875:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       Mwrite
1876:         jr                      eq,DSP_LSP_Timer1_noPb                                                                                                                                                                                                                                                          | Rflags                                |       -                                       |       Wflags
1877:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
1878:         loadw           (R0),R4                                                                                                                                                                                                                                                                                         | Rr0                                   |       -                                       |       -
1879:         movei           #LSP_DSP_PAULA_AUD1PER,R5                                                                                                                                                                                                                                                       | Rword1                                |       Mr0                                     |       -
1880:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr4
1881:         addq            #2,R0                                                                                                                                                                                                                                                                                           | Rr0                                   |       -                                       |       word2word1 > Wr5
1882:         store           R4,(R5)                                                                                                                                                                                                                                                                                         | Rr4   & Rr5                   |       Cr0                                     |       -
1883: DSP_LSP_Timer1_noPb:
1884: ; test period canal 0
1885:         btst            #0,R2                                                                                                                                                                                                                                                                                           | Rr2                                   |       Mr5                                     |       Wr0
1886:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       MWrite
1887:         jr                      eq,DSP_LSP_Timer1_noPa                                                                                                                                                                                                                                                          | Rflags                                |       -                                       |       Wflags
1888:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
1889:         loadw           (R0),R4                                                                                                                                                                                                                                                                                         | Rr0                                   |       -                                       |       -
1890:         movei           #LSP_DSP_PAULA_AUD0PER,R5                                                                                                                                                                                                                                                       | Rword1                                |       Mr0                                     |       -
1891:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr4
1892:         addq            #2,R0                                                                                                                                                                                                                                                                                           | Rr0                                   |       -                                       |       word2word1 > Wr5
1893:         store           R4,(R5)                                                                                                                                                                                                                                                                                         | Rr4   & Rr5                   |       Cr0                                     |       -
1894: DSP_LSP_Timer1_noPa:
1895: 
1896: ; pas de test des 8 bits du haut en entier pour zapper la lecture des instruments
1897: ; tst.w d0                                                      ; d0.w, avec d0.b qui a avanc� ! / beq.s        .noInst
1898: 
1899:         load            (R14+4),R5              ; R5= instrument table  ( =+$10)  = a2   / m_lspInstruments-1 = 5-1                                                                                                                                     | Rr14                                  |       Mr5                                     |       Wr0
1900:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr14+4                          |       Mwrite
1901: 
1902: ;--------------------------
1903: ; gestion des instruments
1904: ;--------------------------
1905: ;--- test instrument voie 3
1906:         movei           #DSP_LSP_Timer1_setIns3,R12                                                                                                                                                                                                                                                     | Rword1                                |       -               Mr14+4          |       -
1907:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr5
1908:         btst            #15,R2                                                                                                                                                                                                                                                                                          | Rr2                                   |       -                                       |       word2word1 > Wr12
1909:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
1910:         jump            ne,(R12)                                                                                                                                                                                                                                                                                        | Rflags                                |       -                                       |       Wflags
1911:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
1912:        
1913:         movei           #DSP_LSP_Timer1_skip3,R12                                                                                                                                                                                                                                                       | Rword1                                |       -                                       |       -
1914:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
1915:         btst            #14,R2                                                                                                                                                                                                                                                                                          | Rr2                                   |       -                                       |       word2word1 > Wr12
1916:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
1917:         jump            eq,(R12)                                                                                                                                                                                                                                                                                        | Rflags                                |       -                                       |       Wflags
1918:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
1919: 
1920: ; repeat voie 3
1921:         movei           #LSP_DSP_repeat_pointeur3,R3                                                                                                                                                                                                                                            | Rword1                                |       -                                       |       -
1922:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
1923:         movei           #LSP_DSP_repeat_length3,R4                                                                                                                                                                                                                                                      | Rword1                                |       -                                       |       word2word1 > Wr3
1924:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
1925:         load            (R3),R3                                 ; pointeur sauvegard�, sur infos de repeats                                                                                                                                                                     | Rr3                                   |       -                                       |       word2word1 > Wr4
1926:         load            (R4),R4                                                                                                                                                                                                                                                                                         | Rr4                                   |       Mr3                                     |       -
1927:         movei           #LSP_DSP_PAULA_AUD3L,R7                                                                                                                                                                                                                                                         | Rword1                                |       Mr4                                     |       Wr3
1928:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr4
1929:         movei           #LSP_DSP_PAULA_AUD3LEN,R8                                                                                                                                                                                                                                                       | Rword1                                |       -                                       |       word2word1 > Wr7
1930:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
1931:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       word2word1 > Wr8
1932:         store           R3,(R7)                                                                                                                                                                                                                                                                                         | Rr3   & Rr7                   |       -                                       |       -
1933:         store           R4,(R8)                                 ; stocke le pointeur sample de repeat dans LSP_DSP_PAULA_AUD3L                                                                                                                          | Rr4   & Rr8                   |       Mr7                                     |       -
1934:         jump            (R12)                           ; jump en DSP_LSP_Timer1_skip3                                                                                                                                                                                                  | Rr12                                  |       Mr8                                     |       MWrite
1935:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       r12 > WPC                       |       MWrite
1936: 
1937: DSP_LSP_Timer1_setIns3:
1938:         loadw           (R0),R3                         ; offset de l'instrument par rapport au precedent                                                                                                                                                               | Rr0                                   |       -                                       |       -
1939:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr0                                     |       -
1940: ; addition en .w
1941:         btst            #15,R3                                                                                                                                                                                                                                                                                          | Rr3                                   |       -                                       |       Wr3
1942:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
1943:         jr                      eq,.positif3                                                                                                                                                                                                                                                                            | Rflags                                |       -                                       |       Wflags
1944:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
1945:         movei           #$FFFF0000,R7                                                                                                                                                                                                                                                                           | Rword1                                |       -                                       |       -
1946:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
1947:         or                      R7,R3                                                                                                                                                                                                                                                                                           | Rr7   & Rr3                   |       -                                       |       word2word1 > Wr7
1948:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr3                                     |       -
1949: .positif3:
1950:         add                     R3,R5                           ;R5=pointeur datas instruments                                                                                                                                                                                                  | Rr3   & Rr5                   |       -                                       |       -
1951:         addq            #2,R0                                                                                                                                                                                                                                                                                           | Rr0                                   |       Cr5                                     |       -
1952: 
1953: 
1954:         movei           #LSP_DSP_PAULA_AUD3L,R7                                                                                                                                                                                                                                                         | Rword1                                |       Cr0                                     |       Wr5
1955:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr0
1956:         loadw           (R5),R6                                                                                                                                                                                                                                                                                         | Rr5                                   |       -                                       |       word2word1 > Wr7
1957:         addq            #2,R5                                                                                                                                                                                                                                                                                           | Rr5                                   |       Mr5                                     |       -
1958:         shlq            #16,R6                                                                                                                                                                                                                                                                                          | Rr6                                   |       Cr5                                     |       Wr6
1959:         loadw           (R5),R8                                                                                                                                                                                                                                                                                         | Rr5                                   |       Cr6                                     |       Wr5
1960:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr5                                     |       Wr6
1961:         or                      R8,R6                                                                                                                                                                                                                                                                                           | Rr8   & Rr6                   |       -                                       |       Wr8
1962:         movei           #LSP_DSP_PAULA_AUD3LEN,R8                                                                                                                                                                                                                                                       | Rword1                                |       Cr6                                     |       -
1963:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr6
1964:         shlq            #nb_bits_virgule_offset,R6                                                                                                                                                                                                                                                      | Rr6                                   |       -                                       |       word2word1 > Wr8
1965:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr6                                     |       -
1966:         store           R6,(R7)                         ; stocke le pointeur sample a virgule dans LSP_DSP_PAULA_AUD3L                                                                                                                                  | Rr6   & Rr7                   |       -                                       |       Wr6
1967:         addq            #2,R5                                                                                                                                                                                                                                                                                           | Rr5                                   |       Mr7                                     |       -
1968:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr5                                     |       MWrite
1969:         loadw           (R5),R9                         ; .w = R9 = taille du sample                                                                                                                                                                                                    | Rr5                                   |       -                                       |       Wr5
1970:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr5                                     |       -
1971:         shlq            #nb_bits_virgule_offset,R9                              ; en 16:16                                                                                                                                                                                                      | Rr9                                   |       -                                       |       Wr9
1972:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9                                     |       -
1973:         add                     R6,R9                           ; taille devient fin du sample, a virgule                                                                                                                                                                               | Rr6   & Rr9                   |       -                                       |       Wr9
1974:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9                                     |       -
1975:         store           R9,(R8)                         ; stocke la nouvelle fin a virgule                                                                                                                                                                                              | Rr9   & Rr8                   |       -                                       |       Wr9
1976:         addq            #2,R5                           ; positionne sur pointeur de repeat                                                                                                                                                                                             | Rr5                                   |       Mr8                                     |       -
1977: ; repeat pointeur
1978:         movei           #LSP_DSP_repeat_pointeur3,R7                                                                                                                                                                                                                                            | Rword1                                |       Cr5                                     |       Mwrite
1979:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr5
1980:         loadw           (R5),R4                                                                                                                                                                                                                                                                                         | Rr5                                   |       -                                       |       word2word1 > Wr7
1981:         addq            #2,R5                                                                                                                                                                                                                                                                                           | Rr5                                   |       Mr5                                     |       -
1982:         shlq            #16,R4                                                                                                                                                                                                                                                                                          | Rr4                                   |       Cr5                                     |       Wr4
1983:         loadw           (R5),R8                                                                                                                                                                                                                                                                                         | Rr5                                   |       Cr4                                     |       Wr5
1984:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr5                                     |       Wr4
1985:         or                      R8,R4                                                                                                                                                                                                                                                                                           | Rr8   & Rr4                   |       -                                       |       Wr8
1986:         addq            #2,R5                                                                                                                                                                                                                                                                                           | Rr5                                   |       Cr4                                     |       -
1987:         shlq            #nb_bits_virgule_offset,R4                                                                                                                                                                                                                                                      | Rr4                                   |       Cr5                                     |       Wr4
1988:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4                                     |       Wr5
1989:         store           R4,(R7)                         ; pointeur sample repeat, a virgule                                                                                                                                                                                             | Rr4   & Rr7                   |       -                                       |       Wr4
1990: ; repeat length
1991:         movei           #LSP_DSP_repeat_length3,R7                                                                                                                                                                                                                                                      | Rword1                                |       Mr7                                     |       -
1992:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       MWrite
1993:         loadw           (R5),R8                         ; .w = R8 = taille du sample                                                                                                                                                                                                    | Rr5                                   |       -                                       |       word2word1 > Wr7
1994:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr5                                     |       -
1995:         shlq            #nb_bits_virgule_offset,R8                              ; en 16:16                                                                                                                                                                                                      | Rr8                                   |       -                                       |       Wr8
1996:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr8                                     |       -
1997:         add                     R4,R8                                                                                                                                                                                                                                                                                           | Rr4   & Rr8                   |       -                                       |       Wr8
1998:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr8                                     |       -
1999:         store           R8,(R7)                         ; stocke la nouvelle taille                                                                                                                                                                                                             | Rr8   & Rr7                   |       -                                       |       Wr8
2000:         subq            #4,R5                                                                                                                                                                                                                                                                                           | Rr5                                   |       Mr7                                     |       -
2001:        
2002: ; test le reset pour prise en compte immediate du changement de sample
2003:         movei           #DSP_LSP_Timer1_noreset3,R12                                                                                                                                                                                                                                            | Rword1                                |       Cr5                                     |       MWrite
2004:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr5
2005:         btst            #14,R2                                                                                                                                                                                                                                                                                          | Rr2                                   |       -                                       |       word2word1 > Wr12
2006:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
2007:         jump            eq,(R12)                                                                                                                                                                                                                                                                                        | Rflags        & Rr12          |       -                                       |       Wflags
2008:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
2009: ; reset a travers le dmacon, il faut rafraichir : LSP_DSP_PAULA_internal_location3 & LSP_DSP_PAULA_internal_length3 & LSP_DSP_PAULA_internal_offset3=0
2010:         movei           #LSP_DSP_PAULA_internal_location3,R7                                                                                                                                                                                                                            | Rword1                                |       -                                       |       -
2011:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2012:         movei           #LSP_DSP_PAULA_internal_length3,R8                                                                                                                                                                                                                                      | Rword1                                |       -                                       |       word2word1 > Wr7
2013:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2014:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       word2word1 > Wr8
2015:         store           R6,(R7)                         ; stocke le pointeur sample dans LSP_DSP_PAULA_internal_location3                                                                                                                               | Rr6   & Rr7                   |       -                                       |       -
2016:         store           R9,(R8)                         ; stocke la nouvelle taille en 16:16: dans LSP_DSP_PAULA_internal_length3                                                                                                               | Rr9   & Rr8                   |       Mr7                                     |       -
2017: ; remplace les 4 octets en stock
2018:         move            R6,R12                                                                                                                                                                                                                                                                                          | Rr6                                   |       Mr8                                     |       MWrite
2019:         shrq            #nb_bits_virgule_offset+2,R12   ; enleve la virgule  + 2 bits du bas                                                                                                                                                            | Rr12                                  |       -                                       |       Wr12    MWrite
2020:         movei           #LSP_DSP_PAULA_AUD3DAT,R8                                                                                                                                                                                                                                                       | Rword1                                |       Cr12                            |       -
2021:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr12
2022:         shlq            #2,R12                                                                                                                                                                                                                                                                                          | Rr12                                  |       -                                       |       word2word1 > Wr8
2023:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr12                            |       -
2024:         load            (R12),R7                                                                                                                                                                                                                                                                                        | Rr12                                  |       -                                       |       Wr12
2025:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr12                            |       -
2026:         store           R7,(R8)                                                                                                                                                                                                                                                                                         | Rr7   & Rr8                   |       -                                       |       Wr7
2027:        
2028: 
2029: DSP_LSP_Timer1_noreset3:
2030: DSP_LSP_Timer1_skip3:
2031: 
2032: ;--- test instrument voie 2
2033:         movei           #DSP_LSP_Timer1_setIns2,R12                                                                                                                                                                                                                                                     | Rword1                                |       Mr8                                     |       -
2034:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Mwrite
2035:         btst            #13,R2                                                                                                                                                                                                                                                                                          | Rr2                                   |       -                                       |       word2word1 > Wr12
2036:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
2037:         jump            ne,(R12)                                                                                                                                                                                                                                                                                        | Rflags        & Rr12          |       -                                       |       Wflags
2038:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
2039:        
2040:         movei           #DSP_LSP_Timer1_skip2,R12                                                                                                                                                                                                                                                       | Rword1                                |       -                                       |       -
2041:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2042:         btst            #12,R2                                                                                                                                                                                                                                                                                          | Rr2                                   |       -                                       |       word2word1 > Wr12
2043:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
2044:         jump            eq,(R12)                                                                                                                                                                                                                                                                                        | Rflags                                |       -                                       |       Wflags
2045:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
2046: 
2047: ; repeat voie 2
2048:         movei           #LSP_DSP_repeat_pointeur2,R3                                                                                                                                                                                                                                            | Rword1                                |       -                                       |       -
2049:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2050:         movei           #LSP_DSP_repeat_length2,R4                                                                                                                                                                                                                                                      | Rword1                                |       -                                       |       word2word1 > Wr3
2051:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2052:         load            (R3),R3                                 ; pointeur sauvegard�, sur infos de repeats                                                                                                                                                                     | Rr3                                   |       -                                       |       word2word1 > Wr4
2053:         load            (R4),R4                                                                                                                                                                                                                                                                                         | Rr4                                   |       Mr3                                     |       -
2054:         movei           #LSP_DSP_PAULA_AUD2L,R7                                                                                                                                                                                                                                                         | Rword1                                |       Mr4                                     |       Wr3
2055:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr4
2056:         movei           #LSP_DSP_PAULA_AUD2LEN,R8                                                                                                                                                                                                                                                       | Rword1                                |       -                                       |       word2word1 > Wr7
2057:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2058:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       word2word1 > Wr8
2059:         store           R3,(R7)                                                                                                                                                                                                                                                                                         | Rr3   & Rr7                   |       -                                       |       -
2060:         store           R4,(R8)                                 ; stocke le pointeur sample de repeat dans LSP_DSP_PAULA_AUD3L                                                                                                                          | Rr4   & Rr8                   |       Mr7                                     |       -
2061:         jump            (R12)                           ; jump en DSP_LSP_Timer1_skip3                                                                                                                                                                                                  | Rr12                                  |       Mr8                                     |       Mwrite
2062:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       WPC                                     |       Mwrite
2063: 
2064: DSP_LSP_Timer1_setIns2:
2065:         loadw           (R0),R3                         ; offset de l'instrument par rapport au precedent                                                                                                                                                               | Rr0                                   |       -                                       |       -
2066:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr0                                     |       -
2067: ; addition en .w
2068:         btst            #15,R3                                                                                                                                                                                                                                                                                          | Rr3                                   |       -                                       |       Wr3
2069:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
2070:         jr                      eq,.positif2                                                                                                                                                                                                                                                                            | Rflags                                |       -                                       |       Wflags
2071:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
2072:         movei           #$FFFF0000,R7                                                                                                                                                                                                                                                                           | Rword1                                |       -                                       |       -
2073:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2074:         or                      R7,R3                                                                                                                                                                                                                                                                                           | Rr7   & Rr3                   |       -                                       |       word2word1 > Wr7
2075:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr3                                     |       -
2076: .positif2:
2077:         add                     R3,R5                           ;R5=pointeur datas instruments                                                                                                                                                                                                  | Rr3   & Rr5                   |       -                                       |       Wr3
2078:         addq            #2,R0                                                                                                                                                                                                                                                                                           | Rr0                                   |       Cr5                                     |       -
2079: 
2080: 
2081:         movei           #LSP_DSP_PAULA_AUD2L,R7                                                                                                                                                                                                                                                         | Rword1                                |       Cr0                                     |       Wr5
2082:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr0
2083:         loadw           (R5),R6                                                                                                                                                                                                                                                                                         | Rr5                                   |       -                                       |       word2word1 > Wr7
2084:         addq            #2,R5                                                                                                                                                                                                                                                                                           | Rr5                                   |       Mr5                                     |       -
2085:         shlq            #16,R6                                                                                                                                                                                                                                                                                          | Rr6                                   |       Cr5                                     |       Wr6
2086:         loadw           (R5),R8                                                                                                                                                                                                                                                                                         | Rr5                                   |       Cr6                                     |       Wr5
2087:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr5                                     |       Wr6
2088:         or                      R8,R6                                                                                                                                                                                                                                                                                           | Rr8   & Rr6                   |       -                                       |       Wr8
2089:         movei           #LSP_DSP_PAULA_AUD2LEN,R8                                                                                                                                                                                                                                                       | Rword1                                |       Cr6                                     |       -
2090:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr6
2091:         shlq            #nb_bits_virgule_offset,R6                                                                                                                                                                                                                                                      | Rr6                                   |       -                                       |       word2word1 > Wr8
2092:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr6                                     |       -
2093:         store           R6,(R7)                         ; stocke le pointeur sample a virgule dans LSP_DSP_PAULA_AUD3L                                                                                                                                  | Rr6   & Rr7                   |       -                                       |       Wr6
2094:         addq            #2,R5                                                                                                                                                                                                                                                                                           | Rr5                                   |       Mr7                                     |       -
2095:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr5                                     |       Mwrite
2096:         loadw           (R5),R9                         ; .w = R9 = taille du sample                                                                                                                                                                                                    | Rr5                                   |       -                                       |       Wr5
2097:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr5                                     |       -
2098:         shlq            #nb_bits_virgule_offset,R9                              ; en 16:16                                                                                                                                                                                                      | Rr9                                   |       -                                       |       Wr9
2099:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9                                     |       -
2100:         add                     R6,R9                           ; taille devient fin du sample, a virgule                                                                                                                                                                               | Rr6   & Rr9                   |       -                                       |       Wr9
2101:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9                                     |       -
2102:         store           R9,(R8)                         ; stocke la nouvelle fin a virgule                                                                                                                                                                                              | Rr9   & Rr8                   |       -                                       |       Wr9
2103:         addq            #2,R5                           ; positionne sur pointeur de repeat                                                                                                                                                                                             | Rr5                                   |       Mr8                                     |       -
2104: ; repeat pointeur
2105:         movei           #LSP_DSP_repeat_pointeur2,R7                                                                                                                                                                                                                                            | Rword1                                |       Cr5                                     |       Mwrite
2106:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr5
2107:         loadw           (R5),R4                                                                                                                                                                                                                                                                                         | Rr5                                   |       -                                       |       word2word1 > Wr7
2108:         addq            #2,R5                                                                                                                                                                                                                                                                                           | Rr5                                   |       Mr5                                     |       -
2109:         shlq            #16,R4                                                                                                                                                                                                                                                                                          | Rr4                                   |       Cr5                                     |       Wr4
2110:         loadw           (R5),R8                                                                                                                                                                                                                                                                                         | Rr5                                   |       Cr4                                     |       Wr5
2111:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr5                                     |       Wr4
2112:         or                      R8,R4                                                                                                                                                                                                                                                                                           | Rr8   & Rr4                   |       -                                       |       Wr8
2113:         addq            #2,R5                                                                                                                                                                                                                                                                                           | Rr5                                   |       Cr4                                     |       -
2114:         shlq            #nb_bits_virgule_offset,R4                                                                                                                                                                                                                                                      | Rr4                                   |       Cr5                                     |       Wr4
2115:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4                                     |       Wr5
2116:         store           R4,(R7)                         ; pointeur sample repeat, a virgule                                                                                                                                                                                             | Rr4   & Rr7                   |       -                                       |       Wr4
2117: ; repeat length
2118:         movei           #LSP_DSP_repeat_length2,R7                                                                                                                                                                                                                                                      | Rword1                                |       Mr7                                     |       -
2119:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Mwrite
2120:         loadw           (R5),R8                         ; .w = R8 = taille du sample                                                                                                                                                                                                    | Rr5                                   |       -                                       |       word2word1 > Wr7
2121:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr5                                     |       -
2122:         shlq            #nb_bits_virgule_offset,R8                              ; en 16:16                                                                                                                                                                                                      | Rr8                                   |       -                                       |       Wr8
2123:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr8                                     |       -
2124:         add                     R4,R8                                                                                                                                                                                                                                                                                           | Rr4   & Rr8                   |       -                                       |       Wr8
2125:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr8                                     |       -
2126:         store           R8,(R7)                         ; stocke la nouvelle taille                                                                                                                                                                                                             | Rr8   & Rr7                   |       -                                       |       Wr8
2127:         subq            #4,R5                                                                                                                                                                                                                                                                                           | Rr5                                   |       Mr7                                     |       -
2128:        
2129: ; test le reset pour prise en compte immediate du changement de sample
2130:         movei           #DSP_LSP_Timer1_noreset2,R12                                                                                                                                                                                                                                            | Rword1                                |       Cr5                                     |       Mwrite
2131:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr5
2132:         btst            #12,R2                                                                                                                                                                                                                                                                                          | Rr2                                   |       -                                       |       word2word1 > Wr12
2133:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
2134:         jump            eq,(R12)                                                                                                                                                                                                                                                                                        | Rflags                                |       -                                       |       Wflags
2135:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
2136: ; reset a travers le dmacon, il faut rafraichir : LSP_DSP_PAULA_internal_location3 & LSP_DSP_PAULA_internal_length3 & LSP_DSP_PAULA_internal_offset3=0
2137:         movei           #LSP_DSP_PAULA_internal_location2,R7                                                                                                                                                                                                                            | Rword1                                |       -                                       |       -
2138:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2139:         movei           #LSP_DSP_PAULA_internal_length2,R8                                                                                                                                                                                                                                      | Rword1                                |       -                                       |       word2word1 > Wr7
2140:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2141:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       word2word1 > Wr8
2142:         store           R6,(R7)                         ; stocke le pointeur sample dans LSP_DSP_PAULA_internal_location3                                                                                                                               | Rr6   & Rr7                   |       -                                       |       -
2143:         store           R9,(R8)                         ; stocke la nouvelle taille en 16:16: dans LSP_DSP_PAULA_internal_length3                                                                                                               | Rr9   & Rr8                   |       Mr7                                     |       -
2144: ; remplace les 4 octets en stock
2145:         move            R6,R12                                                                                                                                                                                                                                                                                          | Rr6                                   |       Mr8                                     |       Mwrite
2146:         shrq            #nb_bits_virgule_offset+2,R12   ; enleve la virgule  + 2 bits du bas                                                                                                                                                            | Rr12                                  |       -                                       |       Wr12    Mwrite
2147:         movei           #LSP_DSP_PAULA_AUD2DAT,R8                                                                                                                                                                                                                                                       | Rword1                                |       Cr12                            |       -
2148:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr12
2149:         shlq            #2,R12                                                                                                                                                                                                                                                                                          | Rr12                                  |       -                                       |       word2word1 > Wr8
2150:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr12                            |       -
2151:         load            (R12),R7                                                                                                                                                                                                                                                                                        | Rr12                                  |       -                                       |       Wr12
2152:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr12                            |       -
2153:         store           R7,(R8)                                                                                                                                                                                                                                                                                         | Rr7   & Rr8                   |       -                                       |       Wr7
2154:        
2155: 
2156: DSP_LSP_Timer1_noreset2:
2157: DSP_LSP_Timer1_skip2:
2158:        
2159: ;--- test instrument voie 1
2160:         movei           #DSP_LSP_Timer1_setIns1,R12                                                                                                                                                                                                                                                     | Rword1                                |       Mr8                                     |       -
2161:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Mwrite
2162:         btst            #11,R2                                                                                                                                                                                                                                                                                          | Rr2                                   |       -                                       |       word2word1 > Wr12
2163:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
2164:         jump            ne,(R12)                                                                                                                                                                                                                                                                                        | Rflags        & Rr12          |       -                                       |       Wflags
2165:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
2166:        
2167:         movei           #DSP_LSP_Timer1_skip1,R12                                                                                                                                                                                                                                                       | Rword1                                |       -                                       |       -
2168:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2169:         btst            #10,R2                                                                                                                                                                                                                                                                                          | Rr2                                   |       -                                       |       word2word1 > Wr12
2170:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
2171:         jump            eq,(R12)                                                                                                                                                                                                                                                                                        | Rflags        & Rr12          |       -                                       |       Wflags
2172:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
2173: 
2174: ; repeat voie 1
2175:         movei           #LSP_DSP_repeat_pointeur1,R3                                                                                                                                                                                                                                            | Rword1                                |       -                                       |       -
2176:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2177:         movei           #LSP_DSP_repeat_length1,R4                                                                                                                                                                                                                                                      | Rword1                                |       -                                       |       word2word1 > Wr3
2178:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2179:         load            (R3),R3                                 ; pointeur sauvegard�, sur infos de repeats                                                                                                                                                                     | Rr3                                   |       -                                       |       word2word1 > Wr4
2180:         load            (R4),R4                                                                                                                                                                                                                                                                                         | Rr4                                   |       Mr3                                     |       -
2181:         movei           #LSP_DSP_PAULA_AUD1L,R7                                                                                                                                                                                                                                                         | Rword1                                |       Mr4                                     |       Wr3
2182:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr4
2183:         movei           #LSP_DSP_PAULA_AUD1LEN,R8                                                                                                                                                                                                                                                       | Rword1                                |       -                                       |       word2word1 > Wr7
2184:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2185:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       word2word1 > Wr8
2186:         store           R3,(R7)                                                                                                                                                                                                                                                                                         | Rr3   & Rr7                   |       -                                       |       -
2187:         store           R4,(R8)                                 ; stocke le pointeur sample de repeat dans LSP_DSP_PAULA_AUD3L                                                                                                                          | Rr4   & Rr8                   |       Mr7                                     |       -
2188:         jump            (R12)                           ; jump en DSP_LSP_Timer1_skip3                                                                                                                                                                                                  | Rr12                                  |       Mr8                                     |       Mwrite
2189:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       WPC                                     |       Mwrite
2190: 
2191: DSP_LSP_Timer1_setIns1:
2192:         loadw           (R0),R3                         ; offset de l'instrument par rapport au precedent                                                                                                                                                               | Rr0                                   |       -                                       |       -
2193:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr0                                     |       -
2194: ; addition en .w
2195:         btst            #15,R3                                                                                                                                                                                                                                                                                          | Rr3                                   |       -                                       |       Wr3
2196:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
2197:         jr                      eq,.positif1                                                                                                                                                                                                                                                                            | Rflags                                |       -                                       |       Wflags
2198:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
2199:         movei           #$FFFF0000,R7                                                                                                                                                                                                                                                                           | Rword1                                |       -                                       |       -
2200:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2201:         or                      R7,R3                                                                                                                                                                                                                                                                                           | Rr7   & Rr3                   |       -                                       |       word2word1 > Wr7
2202:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr3                                     |       -
2203: .positif1:
2204:         add                     R3,R5                           ;R5=pointeur datas instruments                                                                                                                                                                                                  | Rr3   & Rr5                   |       -                                       |       Wr3
2205:         addq            #2,R0                                                                                                                                                                                                                                                                                           | Rr0                                   |       Cr5                                     |       -
2206: 
2207: 
2208:         movei           #LSP_DSP_PAULA_AUD1L,R7                                                                                                                                                                                                                                                         | Rword1                                |       Cr0                                     |       Wr5
2209:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr0
2210:         loadw           (R5),R6                                                                                                                                                                                                                                                                                         | Rr5                                   |       -                                       |       word2word1 > Wr7
2211:         addq            #2,R5                                                                                                                                                                                                                                                                                           | Rr5                                   |       Mr5                                     |       -
2212:         shlq            #16,R6                                                                                                                                                                                                                                                                                          | Rr6                                   |       Cr5                                     |       Wr6
2213:         loadw           (R5),R8                                                                                                                                                                                                                                                                                         | Rr5                                   |       Cr6                                     |       Wr5
2214:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr5                                     |       Wr6
2215:         or                      R8,R6                                                                                                                                                                                                                                                                                           | Rr8   & Rr6                   |       -                                       |       Wr8
2216:         movei           #LSP_DSP_PAULA_AUD1LEN,R8                                                                                                                                                                                                                                                       | Rword1                                |       Cr6                                     |       -
2217:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr6
2218:         shlq            #nb_bits_virgule_offset,R6                                                                                                                                                                                                                                                      | Rr6                                   |       -                                       |       word2word1 > Wr8
2219:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr6                                     |       -
2220:         store           R6,(R7)                         ; stocke le pointeur sample a virgule dans LSP_DSP_PAULA_AUD3L                                                                                                                                  | Rr6   & Rr7                   |       -                                       |       Wr6
2221:         addq            #2,R5                                                                                                                                                                                                                                                                                           | Rr5                                   |       Mr7                                     |       -
2222:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr5                                     |       Mwrite
2223:         loadw           (R5),R9                         ; .w = R9 = taille du sample                                                                                                                                                                                                    | Rr5                                   |       -                                       |       Wr5
2224:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr5                                     |       -
2225:         shlq            #nb_bits_virgule_offset,R9                              ; en 16:16                                                                                                                                                                                                      | Rr9                                   |       -                                       |       Wr9
2226:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9                                     |       -
2227:         add                     R6,R9                           ; taille devient fin du sample, a virgule                                                                                                                                                                               | Rr6   & Rr9                   |       -                                       |       Wr9
2228:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9                                     |       -
2229:         store           R9,(R8)                         ; stocke la nouvelle fin a virgule                                                                                                                                                                                              | Rr9   & Rr8                   |       -                                       |       Wr9
2230:         addq            #2,R5                           ; positionne sur pointeur de repeat                                                                                                                                                                                             | Rr5                                   |       Mr8                                     |       -
2231: ; repeat pointeur
2232:         movei           #LSP_DSP_repeat_pointeur1,R7                                                                                                                                                                                                                                            | Rword1                                |       Cr5                                     |       Mwrite
2233:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr5
2234:         loadw           (R5),R4                                                                                                                                                                                                                                                                                         | Rr5                                   |       -                                       |       word2word1 > Wr7
2235:         addq            #2,R5                                                                                                                                                                                                                                                                                           | Rr5                                   |       Mr5                                     |       -
2236:         shlq            #16,R4                                                                                                                                                                                                                                                                                          | Rr4                                   |       Cr5                                     |       Wr4
2237:         loadw           (R5),R8                                                                                                                                                                                                                                                                                         | Rr5                                   |       Cr4                                     |       Wr5
2238:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr5                                     |       Wr4
2239:         or                      R8,R4                                                                                                                                                                                                                                                                                           | Rr8   & Rr4                   |       -                                       |       Wr8
2240:         addq            #2,R5                                                                                                                                                                                                                                                                                           | Rr5                                   |       Cr4                                     |       -
2241:         shlq            #nb_bits_virgule_offset,R4                                                                                                                                                                                                                                                      | Rr4                                   |       Cr5                                     |       Wr4
2242:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4                                     |       Wr5
2243:         store           R4,(R7)                         ; pointeur sample repeat, a virgule                                                                                                                                                                                             | Rr4   & Rr7                   |       -                                       |       Wr4
2244: ; repeat length
2245:         movei           #LSP_DSP_repeat_length1,R7                                                                                                                                                                                                                                                      | Rword1                                |       Mr7                                     |       -
2246:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Mwrite
2247:         loadw           (R5),R8                         ; .w = R8 = taille du sample                                                                                                                                                                                                    | Rr5                                   |       -                                       |       word2word1 > Wr7
2248:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr5                                     |       -
2249:         shlq            #nb_bits_virgule_offset,R8                              ; en 16:16                                                                                                                                                                                                      | Rr8                                   |       -                                       |       Wr8
2250:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr8                                     |       -
2251:         add                     R4,R8                                                                                                                                                                                                                                                                                           | Rr4   & Rr8                   |       -                                       |       Wr8
2252:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr8                                     |       -
2253:         store           R8,(R7)                         ; stocke la nouvelle taille                                                                                                                                                                                                             | Rr8   & Rr7                   |       -                                       |       Wr8
2254:         subq            #4,R5                                                                                                                                                                                                                                                                                           | Rr5                                   |       Mr7                                     |       -
2255:        
2256: ; test le reset pour prise en compte immediate du changement de sample
2257:         movei           #DSP_LSP_Timer1_noreset1,R12                                                                                                                                                                                                                                            | Rword1                                |       Cr5                                     |       Mwrite
2258:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr5
2259:         btst            #10,R2                                                                                                                                                                                                                                                                                          | Rr2                                   |       -                                       |       word2word1 > Wr12
2260:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
2261:         jump            eq,(R12)                                                                                                                                                                                                                                                                                        | Rflags                                |       -                                       |       Wflags
2262:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
2263: ; reset a travers le dmacon, il faut rafraichir : LSP_DSP_PAULA_internal_location3 & LSP_DSP_PAULA_internal_length3 & LSP_DSP_PAULA_internal_offset3=0
2264:         movei           #LSP_DSP_PAULA_internal_location1,R7                                                                                                                                                                                                                            | Rword1                                |       -                                       |       -
2265:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2266:         movei           #LSP_DSP_PAULA_internal_length1,R8                                                                                                                                                                                                                                      | Rword1                                |       -                                       |       word2word1 > Wr7
2267:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2268:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       word2word1 > Wr8
2269:         store           R6,(R7)                         ; stocke le pointeur sample dans LSP_DSP_PAULA_internal_location3                                                                                                                               | Rr6   & Rr7                   |       -                                       |       -
2270:         store           R9,(R8)                         ; stocke la nouvelle taille en 16:16: dans LSP_DSP_PAULA_internal_length3                                                                                                               | Rr9   & Rr8                   |       Mr7                                     |       -
2271: ; remplace les 4 octets en stock
2272:         move            R6,R12                                                                                                                                                                                                                                                                                          | Rr6                                   |       Mr8                                     |       Mwrite
2273:         shrq            #nb_bits_virgule_offset+2,R12   ; enleve la virgule  + 2 bits du bas                                                                                                                                                            | Rr12                                  |       -                                       |       Wr12    Mwrite
2274:         movei           #LSP_DSP_PAULA_AUD1DAT,R8                                                                                                                                                                                                                                                       | Rword1                                |       Cr12                            |       -
2275:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr12
2276:         shlq            #2,R12                                                                                                                                                                                                                                                                                          | Rr12                                  |       -                                       |       word2word1 > Wr8
2277:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr12                            |       -
2278:         load            (R12),R7                                                                                                                                                                                                                                                                                        | Rr12                                  |       -                                       |       Wr12
2279:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr12                            |       -
2280:         store           R7,(R8)                                                                                                                                                                                                                                                                                         | Rr7   & Rr8                   |       -                                       |       Wr7
2281:        
2282: 
2283: DSP_LSP_Timer1_noreset1:
2284: DSP_LSP_Timer1_skip1:
2285:        
2286: ;--- test instrument voie 0
2287:         movei           #DSP_LSP_Timer1_setIns0,R12                                                                                                                                                                                                                                                     | Rword1                                |       Mr8                                     |       -
2288:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Mwrite
2289:         btst            #9,R2                                                                                                                                                                                                                                                                                           | Rr2                                   |       -                                       |       word2word1 > Wr12
2290:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
2291:         jump            ne,(R12)                                                                                                                                                                                                                                                                                        | Rflags        & Rr12          |       -                                       |       Wflags
2292:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WP                          |       -
2293:        
2294:         movei           #DSP_LSP_Timer1_skip0,R12                                                                                                                                                                                                                                                       | Rword1                                |       -                                       |       -
2295:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2296:         btst            #8,R2                                                                                                                                                                                                                                                                                           | Rr2                                   |       -                                       |       word2word1 > Wr12
2297:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
2298:         jump            eq,(R12)                                                                                                                                                                                                                                                                                        | Rflags        & Rr12          |       -                                       |       Wflags
2299:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
2300: 
2301: ; repeat voie 0
2302:         movei           #LSP_DSP_repeat_pointeur0,R3                                                                                                                                                                                                                                            | Rword1                                |       -                                       |       -
2303:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2304:         movei           #LSP_DSP_repeat_length0,R4                                                                                                                                                                                                                                                      | Rword1                                |       -                                       |       word2word1 > Wr3
2305:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2306:         load            (R3),R3                                 ; pointeur sauvegard�, sur infos de repeats                                                                                                                                                                     | Rr3                                   |       -                                       |       word2word1 > Wr4
2307:         load            (R4),R4                                                                                                                                                                                                                                                                                         | Rr4                                   |       Mr3                                     |       -
2308:         movei           #LSP_DSP_PAULA_AUD0L,R7                                                                                                                                                                                                                                                         | Rword1                                |       Mr4                                     |       Wr3
2309:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr4
2310:         movei           #LSP_DSP_PAULA_AUD0LEN,R8                                                                                                                                                                                                                                                       | Rword1                                |       -                                       |       word2word1 > Wr7
2311:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2312:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       word2word1 > Wr8
2313:         store           R3,(R7)                                                                                                                                                                                                                                                                                         | Rr3   & Rr7                   |       -                                       |       -
2314:         store           R4,(R8)                                 ; stocke le pointeur sample de repeat dans LSP_DSP_PAULA_AUD3L                                                                                                                          | Rr4   & Rr8                   |       Mr7                                     |       -
2315:         jump            (R12)                           ; jump en DSP_LSP_Timer1_skip3                                                                                                                                                                                                  | Rr12                                  |       Mr8                                     |       Mwrite
2316:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       WPC                                     |       Mwrite
2317: 
2318: DSP_LSP_Timer1_setIns0:
2319:         loadw           (R0),R3                         ; offset de l'instrument par rapport au precedent                                                                                                                                                               | Rr0                                   |       -                                       |       -
2320:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr0                                     |       -
2321: ; addition en .w
2322:         btst            #15,R3                                                                                                                                                                                                                                                                                          | Rr3                                   |       -                                       |       Wr3
2323:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
2324:         jr                      eq,.positif0                                                                                                                                                                                                                                                                            | Rflags                                |       -                                       |       Wflags
2325:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
2326:         movei           #$FFFF0000,R7                                                                                                                                                                                                                                                                           | Rword1                                |       -                                       |       -
2327:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2328:         or                      R7,R3                                                                                                                                                                                                                                                                                           | Rr7   & Rr3                   |       -                                       |       word2word1 > Wr7
2329:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr3                                     |       -
2330: 
2331: .positif0:
2332:         add                     R3,R5                           ;R5=pointeur datas instruments                                                                                                                                                                                                  | Rr3   & Rr5                   |       -                                       |       Wr3
2333:         addq            #2,R0                                                                                                                                                                                                                                                                                           | Rr0                                   |       Cr5                                     |       -
2334: 
2335: 
2336:         movei           #LSP_DSP_PAULA_AUD0L,R7                                                                                                                                                                                                                                                         | Rword1                                |       Cr0                                     |       Wr5
2337:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr0
2338:         loadw           (R5),R6                                                                                                                                                                                                                                                                                         | Rr5                                   |       -                                       |       word2word1 > Wr7
2339:         addq            #2,R5                                                                                                                                                                                                                                                                                           | Rr5                                   |       Mr5                                     |       -
2340:         shlq            #16,R6                                                                                                                                                                                                                                                                                          | Rr6                                   |       Cr5                                     |       Wr6
2341:         loadw           (R5),R8                                                                                                                                                                                                                                                                                         | Rr5                                   |       Cr6                                     |       Wr5
2342:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr5                                     |       Wr6
2343:         or                      R8,R6                                                                                                                                                                                                                                                                                           | Rr8   & Rr6                   |       -                                       |       Wr8
2344:         movei           #LSP_DSP_PAULA_AUD0LEN,R8                                                                                                                                                                                                                                                       | Rword1                                |       Cr6                                     |       -
2345:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr6
2346:         shlq            #nb_bits_virgule_offset,R6                                                                                                                                                                                                                                                      | Rr6                                   |       -                                       |       word2word1 > Wr8
2347:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr6                                     |       -
2348:         store           R6,(R7)                         ; stocke le pointeur sample a virgule dans LSP_DSP_PAULA_AUD3L                                                                                                                                  | Rr6   & Rr7                   |       -                                       |       Wr6
2349:         addq            #2,R5                                                                                                                                                                                                                                                                                           | Rr5                                   |       Mr7                                     |       -
2350:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr5                                     |       Mwrite
2351:         loadw           (R5),R9                         ; .w = R9 = taille du sample                                                                                                                                                                                                    | Rr5                                   |       -                                       |       Wr5
2352:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr5                                     |       -
2353:         shlq            #nb_bits_virgule_offset,R9                              ; en 16:16                                                                                                                                                                                                      | Rr9                                   |       -                                       |       Wr9
2354:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9                                     |       -
2355:         add                     R6,R9                           ; taille devient fin du sample, a virgule                                                                                                                                                                               | Rr6   & Rr9                   |       -                                       |       Wr9
2356:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9                                     |       -
2357:         store           R9,(R8)                         ; stocke la nouvelle fin a virgule                                                                                                                                                                                              | Rr9   & Rr8                   |       -                                       |       Wr9
2358:         addq            #2,R5                           ; positionne sur pointeur de repeat                                                                                                                                                                                             | Rr5                                   |       Mr8                                     |       -
2359: ; repeat pointeur
2360:         movei           #LSP_DSP_repeat_pointeur0,R7                                                                                                                                                                                                                                            | Rword1                                |       Cr5                                     |       Mwrite
2361:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr5
2362:         loadw           (R5),R4                                                                                                                                                                                                                                                                                         | Rr5                                   |       -                                       |       word2word1 > Wr7
2363:         addq            #2,R5                                                                                                                                                                                                                                                                                           | Rr5                                   |       Mr5                                     |       -
2364:         shlq            #16,R4                                                                                                                                                                                                                                                                                          | Rr4                                   |       Cr5                                     |       Wr4
2365:         loadw           (R5),R8                                                                                                                                                                                                                                                                                         | Rr5                                   |       Cr4                                     |       Wr5
2366:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr5                                     |       Wr4
2367:         or                      R8,R4                                                                                                                                                                                                                                                                                           | Rr8   & Rr4                   |       -                                       |       Wr8
2368:         addq            #2,R5                                                                                                                                                                                                                                                                                           | Rr5                                   |       Cr4                                     |       -
2369:         shlq            #nb_bits_virgule_offset,R4                                                                                                                                                                                                                                                      | Rr4                                   |       Cr5                                     |       Wr4
2370:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4                                     |       Wr5
2371:         store           R4,(R7)                         ; pointeur sample repeat, a virgule                                                                                                                                                                                             | Rr4   & Rr7                   |       -                                       |       Wr4
2372: ; repeat length
2373:         movei           #LSP_DSP_repeat_length0,R7                                                                                                                                                                                                                                                      | Rword1                                |       Mr7                                     |       -
2374:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Mwrite
2375:         loadw           (R5),R8                         ; .w = R8 = taille du sample                                                                                                                                                                                                    | Rr5                                   |       -                                       |       word2word1 > Wr7
2376:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr5                                     |       -
2377:         shlq            #nb_bits_virgule_offset,R8                              ; en 16:16                                                                                                                                                                                                      | Rr8                                   |       -                                       |       Wr8
2378:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr8                                     |       -
2379:         add                     R4,R8                                                                                                                                                                                                                                                                                           | Rr4   & Rr8                   |       -                                       |       Wr8
2380:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr8                                     |       -
2381:         store           R8,(R7)                         ; stocke la nouvelle taille                                                                                                                                                                                                             | Rr8   & Rr7                   |       -                                       |       Wr8
2382:         subq            #4,R5                                                                                                                                                                                                                                                                                           | Rr5                                   |       Mr7                                     |       -
2383:        
2384: ; test le reset pour prise en compte immediate du changement de sample
2385:         movei           #DSP_LSP_Timer1_noreset0,R12                                                                                                                                                                                                                                            | Rword1                                |       Cr5                                     |       Mwrite
2386:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr5
2387:         btst            #8,R2                                                                                                                                                                                                                                                                                           | Rr2                                   |       -                                       |       word2word1 > Wr12
2388:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
2389:         jump            eq,(R12)                                                                                                                                                                                                                                                                                        | Rflags        & Rr12          |       -                                       |       Wflags
2390:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
2391: ; reset a travers le dmacon, il faut rafraichir : LSP_DSP_PAULA_internal_location3 & LSP_DSP_PAULA_internal_length3 & LSP_DSP_PAULA_internal_offset3=0
2392:         movei           #LSP_DSP_PAULA_internal_location0,R7                                                                                                                                                                                                                            | Rword1                                |       -                                       |       -
2393:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2394:         movei           #LSP_DSP_PAULA_internal_length0,R8                                                                                                                                                                                                                                      | Rword1                                |       -                                       |       word2word1 > Wr7
2395:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2396:                                                                                                                                                                                                                                                                                                                                         | -                                             |       -                                       |       word2word1 > Wr8
2397:         store           R6,(R7)                         ; stocke le pointeur sample dans LSP_DSP_PAULA_internal_location3                                                                                                                               | Rr6   & Rr7                   |       -                                       |       -
2398:         store           R9,(R8)                         ; stocke la nouvelle taille en 16:16: dans LSP_DSP_PAULA_internal_length3                                                                                                               | Rr9   & Rr8                   |       Mr7                                     |       -
2399: ; remplace les 4 octets en stock
2400:         move            R6,R12                                                                                                                                                                                                                                                                                          | Rr6                                   |       Mr8                                     |       Mwrite
2401:         shrq            #nb_bits_virgule_offset+2,R12   ; enleve la virgule  + 2 bits du bas                                                                                                                                                            | Rr12                                  |       -                                       |       Wr12    Mwrite
2402:         movei           #LSP_DSP_PAULA_AUD0DAT,R8                                                                                                                                                                                                                                                       | Rword1                                |       Cr12                            |       -
2403:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr12
2404:         shlq            #2,R12                                                                                                                                                                                                                                                                                          | Rr12                                  |       -                                       |       word2word1 > Wr8
2405:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr12                            |       -
2406:         load            (R12),R7                                                                                                                                                                                                                                                                                        | Rr12                                  |       -                                       |       Wr12
2407:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr12                            |       -
2408:         store           R7,(R8)                                                                                                                                                                                                                                                                                         | Rr7   & Rr8                   |       -                                       |       Wr7
2409:        
2410: 
2411: DSP_LSP_Timer1_noreset0:
2412: DSP_LSP_Timer1_skip0:
2413:        
2414:        
2415: 
2416: DSP_LSP_Timer1_noInst:
2417:         .if                     LSP_avancer_module=1
2418:         store           R0,(R14)                        ; store word stream (or byte stream if coming from early out)                                                                                                                                   | Rr0   & Rr14                  |       Mr8                                     |       -
2419:         .endif
2420: 
2421: 
2422: ; - fin de la conversion du player LSP
2423: 
2424: ; elements d'emulation Paula
2425: ; calcul des increments
2426: ; calcul de l'increment a partir de la note Amiga : (3546895 / note) / frequence I2S
2427: 
2428: ; conversion period => increment voie 0
2429:         movei           #DSP_frequence_de_replay_reelle_I2S,R0                                                                                                                                                                                                                          | Rword1                                |       Mr14                            |       Mwrite
2430:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Mwrite
2431:         movei           #LSP_DSP_PAULA_internal_increment0,R1                                                                                                                                                                                                                           | Rword1                                |       -                                       |       word2word1 > Wr0
2432:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2433:         movei           #LSP_DSP_PAULA_AUD0PER,R2                                                                                                                                                                                                                                                       | Rword1                                |       -                                       |       word2word1 > Wr1
2434:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2435:         load            (R0),R0                                                                                                                                                                                                                                                                                         | Rr0                                   |       -                                       |       word2word1 > Wr2
2436:         movei           #3546895,R3                                                                                                                                                                                                                                                                                     | Rword1                                |       Mr0                                     |       -
2437:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr0
2438:         load            (R2),R2                                                                                                                                                                                                                                                                                         | Rr2                                   |       -                                       |       word2word1 > Wr3
2439:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr2                                     |       -
2440:         cmpq            #0,R2                                                                                                                                                                                                                                                                                           | Rr2                                   |       -                                       |       Wr2
2441:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
2442:         jr                      ne,.1                                                                                                                                                                                                                                                                                           | Rflags                                |       -                                       |       Wflags
2443:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
2444:         moveq           #0,R4                                                                                                                                                                                                                                                                                           | #0                                    |       -                                       |       -
2445:         jr                      .2                                                                                                                                                                                                                                                                                                      | -                                             |       -                                       |       Wr4
2446:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       WPC                                     |       -
2447: .1:
2448:         move            R3,R4                                                                                                                                                                                                                                                                                           | Rr3                                   |       -                                       |       -
2449:         div                     R2,R4                   ; (3546895 / note)                                                                                                                                                                                                                                      | Rr2   & Rr4                   |       -                                       |       Wr4
2450:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-1                           |       -
2451:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-2                           |       -
2452:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-3                           |       -
2453:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-4                           |       -
2454:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-5                           |       -
2455:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-6                           |       -
2456:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-7                           |       -
2457:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-8                           |       -
2458:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-9                           |       -
2459:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-10                          |       -
2460:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-11                          |       -
2461:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-12                          |       -
2462:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-13                          |       -
2463:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-14                          |       -
2464:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-15                          |       -
2465:         or                      R4,R4                                                                                                                                                                                                                                                                                           | Rr4                                   |       -                                       |       Wr4
2466:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4                                     |       -
2467:         shlq            #nb_bits_virgule_offset,R4                                                                                                                                                                                                                                                      | Rr4                                   |       -                                       |       Wr4
2468:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4                                     |       -
2469:         div                     R0,R4                   ; (3546895 / note) / frequence I2S en 16:16                                                                                                                                                                                     | Rr0   & Rr4                   |       -                                       |       -
2470:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-1                           |       -
2471:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-2                           |       -
2472:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-3                           |       -
2473:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-4                           |       -
2474:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-5                           |       -
2475:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-6                           |       -
2476:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-7                           |       -
2477:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-8                           |       -
2478:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-9                           |       -
2479:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-10                          |       -
2480:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-11                          |       -
2481:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-12                          |       -
2482:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-13                          |       -
2483:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-14                          |       -
2484:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-15                          |       -
2485:         or                      R4,R4                                                                                                                                                                                                                                                                                           | Rr4                                   |       -                                       |       Wr4
2486:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4                                     |       -
2487: .2:
2488:         store           R4,(R1)                                                                                                                                                                                                                                                                                         | Rr4   & Rr1                   |       -                                       |       Wr4
2489: ; conversion period => increment voie 1
2490:         movei           #LSP_DSP_PAULA_AUD1PER,R2                                                                                                                                                                                                                                                       | Rword1                                |       Mr1                                     |       -
2491:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       MWrite
2492:         movei           #LSP_DSP_PAULA_internal_increment1,R1                                                                                                                                                                                                                           | Rword1                                |       -                                       |       word2word1 > Wr2
2493:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2494:         move            R3,R4                                                                                                                                                                                                                                                                                           | Rr3                                   |       -                                       |       word2word1 > Wr1
2495:         load            (R2),R2                                                                                                                                                                                                                                                                                         | Rr2                                   |       -                                       |       Wr4
2496:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr2                                     |       -
2497:         cmpq            #0,R2                                                                                                                                                                                                                                                                                           | Rr2                                   |       -                                       |       Wr2
2498:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
2499:         jr                      ne,.12                                                                                                                                                                                                                                                                                          | Rflags                                |       -                                       |       Wflags
2500:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
2501:         moveq           #0,R4                                                                                                                                                                                                                                                                                           | #0                                    |       -                                       |       -
2502:         jr                      .22                                                                                                                                                                                                                                                                                                     | -                                             |       -                                       |       Wr4
2503:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       WPC                                     |       -
2504: .12:
2505: 
2506:         div                     R2,R4                   ; (3546895 / note)                                                                                                                                                                                                                                      | Rr2   & Rr4                   |       -                                       |       -
2507:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-1                           |       -
2508:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-2                           |       -
2509:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-3                           |       -
2510:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-4                           |       -
2511:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-5                           |       -
2512:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-6                           |       -
2513:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-7                           |       -
2514:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-8                           |       -
2515:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-9                           |       -
2516:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-10                          |       -
2517:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-11                          |       -
2518:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-12                          |       -
2519:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-13                          |       -
2520:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-14                          |       -
2521:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-15                          |       -
2522:         or                      R4,R4                                                                                                                                                                                                                                                                                           | Rr4                                   |       -                                       |       Wr4
2523:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4                                     |       -
2524:         shlq            #nb_bits_virgule_offset,R4                                                                                                                                                                                                                                                      | Rr4                                   |       -                                       |       Wr4
2525:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4                                     |       -
2526:         div                     R0,R4                   ; (3546895 / note) / frequence I2S en 16:16                                                                                                                                                                                     | Rr0   & Rr4                   |       -                                       |       Wr4
2527:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-1                           |       -
2528:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-2                           |       -
2529:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-3                           |       -
2530:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-4                           |       -
2531:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-5                           |       -
2532:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-6                           |       -
2533:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-7                           |       -
2534:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-8                           |       -
2535:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-9                           |       -
2536:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-10                          |       -
2537:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-11                          |       -
2538:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-12                          |       -
2539:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-13                          |       -
2540:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-14                          |       -
2541:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-15                          |       -
2542:         or                      R4,R4                                                                                                                                                                                                                                                                                           | Rr4                                   |       -                                       |       Wr4
2543:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4                                     |       -
2544: .22:
2545:         store           R4,(R1)                                                                                                                                                                                                                                                                                         | Rr4   & Rr1                   |       -                                       |       Wr4
2546: 
2547: ; conversion period => increment voie 2
2548:         movei           #LSP_DSP_PAULA_AUD2PER,R2                                                                                                                                                                                                                                                       | Rword1                                |       Mr1                                     |       -
2549:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       MWrite
2550:         movei           #LSP_DSP_PAULA_internal_increment2,R1                                                                                                                                                                                                                           | Rword1                                |       -                                       |       word2word1 > Wr2
2551:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2552:         move            R3,R4                                                                                                                                                                                                                                                                                           | Rr3                                   |       -                                       |       word2word1 > Wr1
2553:         load            (R2),R2                                                                                                                                                                                                                                                                                         | Rr2                                   |       -                                       |       Wr4
2554:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr2                                     |       -
2555:         cmpq            #0,R2                                                                                                                                                                                                                                                                                           | Rr2                                   |       -                                       |       Wr2
2556:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
2557:         jr                      ne,.13                                                                                                                                                                                                                                                                                          | Rflags                                |       -                                       |       Wflags
2558:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
2559:         moveq           #0,R4                                                                                                                                                                                                                                                                                           | #0                                    |       -                                       |       -
2560:         jr                      .23                                                                                                                                                                                                                                                                                                     | -                                             |       -                                       |       Wr4
2561:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       WPC                                     |       -
2562: .13:
2563:         div                     R2,R4                   ; (3546895 / note)                                                                                                                                                                                                                                      | Rr2   & Rr4                   |       -                                       |       -
2564:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-1                           |       -
2565:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-2                           |       -
2566:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-3                           |       -
2567:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-4                           |       -
2568:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-5                           |       -
2569:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-6                           |       -
2570:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-7                           |       -
2571:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-8                           |       -
2572:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-9                           |       -
2573:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-10                          |       -
2574:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-11                          |       -
2575:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-12                          |       -
2576:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-13                          |       -
2577:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-14                          |       -
2578:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-15                          |       -
2579:         or                      R4,R4                                                                                                                                                                                                                                                                                           | Rr4                                   |       -                                       |       Wr4
2580:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4                                     |       -
2581:         shlq            #nb_bits_virgule_offset,R4                                                                                                                                                                                                                                                      | Rr4                                   |       -                                       |       Wr4
2582:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4                                     |       -
2583:         div                     R0,R4                   ; (3546895 / note) / frequence I2S en 16:16                                                                                                                                                                                     | Rr0   & Rr4                   |       -                                       |       Wr4
2584:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-1                           |       -
2585:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-2                           |       -
2586:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-3                           |       -
2587:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-4                           |       -
2588:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-5                           |       -
2589:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-6                           |       -
2590:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-7                           |       -
2591:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-8                           |       -
2592:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-9                           |       -
2593:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-10                          |       -
2594:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-11                          |       -
2595:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-12                          |       -
2596:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-13                          |       -
2597:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-14                          |       -
2598:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-15                          |       -
2599:         or                      R4,R4                                                                                                                                                                                                                                                                                           | Rr4                                   |       -                                       |       Wr4
2600:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4                                     |       -
2601: .23:
2602:         store           R4,(R1)                                                                                                                                                                                                                                                                                         | Rr4   & Rr1                   |       -                                       |       Wr4
2603: 
2604: ; conversion period => increment voie 3
2605:         movei           #LSP_DSP_PAULA_AUD3PER,R2                                                                                                                                                                                                                                                       | Rword1                                |       Mr1                                     |       -
2606:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Mwrite
2607:         movei           #LSP_DSP_PAULA_internal_increment3,R1                                                                                                                                                                                                                           | Rword1                                |       -                                       |       word2word1 > Wr2
2608:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2609:         move            R3,R4                                                                                                                                                                                                                                                                                           | Rr3                                   |       -                                       |       word2word1 > Wr1
2610:         load            (R2),R2                                                                                                                                                                                                                                                                                         | Rr2                                   |       -                                       |       Wr4
2611:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr2                                     |       -
2612:         cmpq            #0,R2                                                                                                                                                                                                                                                                                           | Rr2                                   |       -                                       |       Wr2
2613:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cflags                          |       -
2614:         jr                      ne,.14                                                                                                                                                                                                                                                                                          | Rflags                                |       -                                       |       Wflags
2615:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       ? > WPC                         |       -
2616:         moveq           #0,R4                                                                                                                                                                                                                                                                                           | #0                                    |       -                                       |       -
2617:         jr                      .24                                                                                                                                                                                                                                                                                                     | -                                             |       -                                       |       Wr4
2618:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       WPC                                     |       -
2619: .14:
2620:         div                     R2,R4                   ; (3546895 / note)                                                                                                                                                                                                                                      | Rr2   & Rr4                   |       -                                       |       -
2621:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-1                           |       -
2622:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-2                           |       -
2623:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-3                           |       -
2624:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-4                           |       -
2625:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-5                           |       -
2626:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-6                           |       -
2627:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-7                           |       -
2628:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-8                           |       -
2629:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-9                           |       -
2630:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-10                          |       -
2631:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-11                          |       -
2632:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-12                          |       -
2633:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-13                          |       -
2634:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-14                          |       -
2635:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-15                          |       -
2636:         or                      R4,R4                                                                                                                                                                                                                                                                                           | Rr4                                   |       -                                       |       Wr4
2637:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4                                     |       -
2638:         shlq            #nb_bits_virgule_offset,R4                                                                                                                                                                                                                                                      | Rr4                                   |       -                                       |       Wr4
2639:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4                                     |       -
2640:         div                     R0,R4                   ; (3546895 / note) / frequence I2S en 16:16                                                                                                                                                                                     | Rr0   & Rr4                   |       -                                       |       -
2641:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-1                           |       -
2642:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-2                           |       -
2643:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-3                           |       -
2644:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-4                           |       -
2645:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-5                           |       -
2646:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-6                           |       -
2647:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-7                           |       -
2648:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-8                           |       -
2649:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-9                           |       -
2650:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-10                          |       -
2651:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-11                          |       -
2652:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-12                          |       -
2653:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-13                          |       -
2654:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-14                          |       -
2655:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4-15                          |       -
2656:         or                      R4,R4                                                                                                                                                                                                                                                                                           | Rr4                                   |       -                                       |       Wr4
2657:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr4                                     |       -
2658: .24:
2659:         store           R4,(R1)                                                                                                                                                                                                                                                                                         | Rr4   & Rr1                   |       -                                       |       -
2660: 
2661: ;--------------------------------------------------
2662: 
2663:        
2664: ;------------------------------------  
2665: ; return from interrupt Timer 1
2666:         load    (r31),r12       ; return address                                                                                                                                                                                                                                                        | Rr31                                  |       Mr1                                     |       -
2667:         ;bset   #10,r13         ; clear latch 1 = I2S
2668:         bset    #11,r13         ; clear latch 1 = timer 1                                                                                                                                                                                                                                       | Rr13                                  |       Mr31                            |       MWrite
2669:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr13                            |       -
2670:         ;bset   #12,r13         ; clear latch 1 = timer 2
2671:         bclr    #3,r13          ; clear IMASK                                                                                                                                                                                                                                                           | Rr13                                  |       -                                       |       Wr13
2672:         addq    #4,r31          ; pop from stack                                                                                                                                                                                                                                                        | Rr31                                  |       Cr13                            |       -
2673:         addqt   #2,r12          ; next instruction                                                                                                                                                                                                                                                      | Rr12                                  |       Cr31                            |       Wr13
2674:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr12                            |       -
2675:         jump    t,(r12)         ; return                                                                                                                                                                                                                                                                        | Rr12                                  |       -                                       |       Wr12
2676:         store   r13,(r16)       ; restore flags                                                                                                                                                                                                                                                         | Rr13  & Rr16                  |       WPC                                     |       -
2677: 
2678: ;------------------------------------  
2679: ;rewind
2680: DSP_LSP_Timer1_r_rewind:
2681: ;       movei           #LSPVars,R14
2682: ;       load            (R14),R0                                        ; R0 = byte stream
2683:         load            (R14+8),R0                      ; bouclage : R0 = byte stream / m_byteStreamLoop = 8                                                                                                                                                    | Rr14                                  |       -                                       |       -
2684:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr14+8                          |       -
2685:         movei           #DSP_LSP_Timer1_process,R12                                                                                                                                                                                                                                                     | Rword1                                |                       Mr14+8          |       -
2686:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr0
2687:         load            (R14+9),R3                      ; m_wordStreamLoop=9                                                                                                                                                                                                                    | Rr14                                  |       -                                       |       word2word1 > Wr12
2688:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr14+9                          |       -
2689:         jump            (R12)                                                                                                                                                                                                                                                                                           | Rr12                                  |                       Mr14+9          |       -
2690:         store           R3,(R14+1)                              ; m_wordStream=1                                                                                                                                                                                                                        | Rr3   & Rr14                  |       -                                       |       -
2691:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr14+1  WPC                     |       -
2692: 
2693: ;------------------------------------  
2694: ; change bpm
2695: DSP_LSP_Timer1_r_chgbpm:
2696:         movei           #DSP_LSP_Timer1_process,R12                                                                                                                                                                                                                                                     | Rword1                                |       -                                       |       -
2697:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2698:         loadb           (R0),R11                                                                                                                                                                                                                                                                                        | Rr0                                   |       -                                       |       word2word1 > Wr12
2699:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr0                                     |       -
2700:         store           R11,(R14+7)             ; R3=nouveau bpm / m_currentBpm = 7                                                                                                                                                                                                     | Rr11  & Rr14                  |       -                                       |       Wr11
2701:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr14+7                          |       -
2702: ;application nouveau bpm dans Timer 1
2703:         movei   #60*256,R10                                                                                                                                                                                                                                                                                             | Rword1                                |                       Mr14+7          |       -
2704:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Mwrite
2705:         ;shlq   #8,R10                          ; 16 bits de virgule
2706:         div             R11,R10                         ; 60/bpm                                                                                                                                                                                                                                                        | Rr11  & Rr10                  |       -                                       |       Wr10
2707:         movei   #24*65536,R9                            ; 24=> 5 bits                                                                                                                                                                                                                           | Rword1                                |       Cr10-1                          |       -
2708:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       Cr10-2  word1           |       -
2709:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-3                          |       word2word1 > Wr9
2710:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-4                          |       -
2711:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-5                          |       -
2712:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-6                          |       -
2713:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-7                          |       -
2714:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-8                          |       -
2715:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-9                          |       -
2716:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-10                         |       -
2717:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-11                         |       -
2718:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-12                         |       -
2719:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-13                         |       -
2720:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-14                         |       -
2721:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-15                         |       -
2722:         or              R10,R10                                                                                                                                                                                                                                                                                                 | Rr10                                  |       -                                       |       Wr10
2723:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10                            |       -
2724:         ;shlq   #16,R9
2725:         div             R10,R9                          ; R9=                                                                                                                                                                                                                                                           | Rr10  & Rr9                   |       -                                       |       Wr10
2726:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-1                           |       -
2727:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-2                           |       -
2728:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-3                           |       -
2729:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-4                           |       -
2730:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-5                           |       -
2731:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-6                           |       -
2732:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-7                           |       -
2733:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-8                           |       -
2734:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-9                           |       -
2735:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-10                          |       -
2736:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-11                          |       -
2737:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-12                          |       -
2738:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-13                          |       -
2739:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-14                          |       -
2740:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-15                          |       -
2741:         or              R9,R9                                                                                                                                                                                                                                                                                                   | Rr9                                   |       -                                       |       Wr9
2742:                                                                                                                                                                                                                                                                                                                                         |-                                              |       Cr9                                     |       -
2743:         shrq    #8,R9                           ; R9=frequence replay                                                                                                                                                                                                                           | Rr9                                   |       -                                       |       Wr9
2744:         ;move   R9,R11  
2745: ; frequence du timer 1
2746:         movei   #182150,R10                             ; 26593900 / 146 = 182150                                                                                                                                                                                                               | Rword1                                |       Cr9                                     |       -
2747:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr9
2748:         div             R9,R10                                                                                                                                                                                                                                                                                                  | Rr9   & Rr10                  |       -                                       |       word2word1 > Wr10
2749:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-1                          |       -
2750:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-2                          |       -
2751:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-3                          |       -
2752:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-4                          |       -
2753:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-5                          |       -
2754:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-6                          |       -
2755:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-7                          |       -
2756:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-8                          |       -
2757:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-9                          |       -
2758:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-10                         |       -
2759:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-11                         |       -
2760:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-12                         |       -
2761:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-13                         |       -
2762:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-14                         |       -
2763:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-15                         |       -
2764:         or              R10,R10                                                                                                                                                                                                                                                                                                 | Rr10                                  |       -                                       |       Wr10
2765:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10                            |       -
2766:         move    R10,R13                                                                                                                                                                                                                                                                                                 | Rr10                                  |       -                                       |       Wr10
2767:         subq    #1,R13                                  ; -1 pour parametrage du timer 1                                                                                                                                                                                                | Rr13                                  |       -                                       |       Wr13
2768: ; 26593900 / 50 = 531�878 => 2 � 73 � 3643 => 146*3643
2769:         movei   #JPIT1,r10                              ; F10000                                                                                                                                                                                                                                                | Rword1                                |       Cr13                            |       -
2770:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr13
2771:         movei   #145*65536,r9                           ; Timer 1 Pre-scaler                                                                                                                                                                                                            | Rword1                                |       -                                       |       word2word1 > Wr10
2772:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2773:         ;shlq   #16,r12
2774:         or              R13,R9                                                                                                                                                                                                                                                                                                  | Rr13  & Rr9                   |       -                                       |       word2word1 > Wr9
2775:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9                                     |       -
2776:         store   r9,(r10)                                ; JPIT1 & JPIT2                                                                                                                                                                                                                                 | Rr9   & Rr10                  |       -                                       |       Wr9
2777:         jump            (R12)                                                                                                                                                                                                                                                                                           | Rr12                                  |       Mr10                            |       -
2778:         addq            #1,R0                                                                                                                                                                                                                                                                                           | Rr0                                   |       WPC                                     |       -
2779: 
2780: 
2781: 
2782: 
2783: ; ------------------- N/A ------------------
2784: DSP_LSP_routine_interruption_Timer2:
2785: ; ------------------- N/A ------------------
2786: 
2787: 
2788: 
2789: ; ------------- main DSP ------------------
2790: DSP_routine_init_DSP:
2791: ; assume run from bank 1
2792:         movei   #DSP_ISP+(DSP_STACK_SIZE*4),r31                 ; init isp                                                                                                                                                                                                              | Rword1                                |       -                                       |       -
2793:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2794:         moveq   #0,r1                                                                                                                                                                                                                                                                                                   | #0                                    |       -                                       |       -
2795:         moveta  r31,r31                                                                 ; ISP (bank 0)                                                                                                                                                                                                  | Rr31                                  |       -                                       |       Wr1
2796:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       -                                       |       Wr'31
2797:         movei   #DSP_USP+(DSP_STACK_SIZE*4),r31                 ; init usp                                                                                                                                                                                                              | Rword1                                |       -                                       |       -
2798:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2799: 
2800: ; calculs des frequences deplac� dans DSP
2801: ; sclk I2S
2802:         movei   #LSP_DSP_Audio_frequence,R0                                                                                                                                                                                                                                                             | Rword1                                |       -                                       |       word2word1 > Wr31
2803:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2804:         movei   #frequence_Video_Clock_divisee,R1                                                                                                                                                                                                                                               | Rword1                                |       -                                       |       word2word1 > Wr0
2805:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2806:         load    (R1),R1                                                                                                                                                                                                                                                                                                 | Rr1                                   |       -                                       |       word2word1 > Wr1
2807:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr1                                     |       -
2808:         shlq    #8,R1                                                                                                                                                                                                                                                                                                   | Rr1                                   |       -                                       |       Wr1
2809:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr1                                     |       -
2810:         div             R0,R1                                                                                                                                                                                                                                                                                                   | Rr0   & Rr1                   |       -                                       |       Wr1
2811:         movei   #128,R2                                                                                                                                                                                                                                                                                                 | Rword1                                |       Cr1-1                           |       -
2812:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       Cr1-2   word1           |       -
2813:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr1-3                           |       word2word1 > Wr2
2814:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr1-4                           |       -
2815:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr1-5                           |       -
2816:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr1-6                           |       -
2817:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr1-7                           |       -
2818:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr1-8                           |       -
2819:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr1-9                           |       -
2820:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr1-10                          |       -
2821:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr1-11                          |       -
2822:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr1-12                          |       -
2823:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr1-13                          |       -
2824:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr1-14                          |       -
2825:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr1-15                          |       -
2826:         add             R2,R1                   ; +128 = +0.5                                                                                                                                                                                                                                                   | Rr2   & Rr1                   |       -                                       |       Wr1
2827:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr1                                     |       -
2828:         shrq    #8,R1                                                                                                                                                                                                                                                                                                   | Rr1                                   |       -                                       |       Wr1
2829:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr1                                     |       -
2830:         subq    #1,R1                                                                                                                                                                                                                                                                                                   | Rr1                                   |       -                                       |       Wr1
2831:         movei   #DSP_parametre_de_frequence_I2S,r2                                                                                                                                                                                                                                              | Rword1                                |       Cr1                                     |       -
2832:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr1
2833:         store   R1,(R2)                                                                                                                                                                                                                                                                                                 | Rr1   & Rr2                   |       -                                       |       Wr2
2834: ;calcul inverse
2835:         addq    #1,R1                                                                                                                                                                                                                                                                                                   | Rr1                                   |       Mr2                                     |       -
2836:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr1                                     |       MWrite
2837:         add             R1,R1                   ; *2                                                                                                                                                                                                                                                                    | Rr1                                   |       -                                       |       Wr1
2838:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr1                                     |       -
2839:         add             R1,R1                   ; *2                                                                                                                                                                                                                                                                    | Rr1                                   |       -                                       |       Wr1
2840:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr1                                     |       -
2841:         shlq    #4,R1                   ; *16                                                                                                                                                                                                                                                                   | Rr1                                   |       -                                       |       Wr1
2842:         movei   #frequence_Video_Clock,R0                                                                                                                                                                                                                                                               | Rword1                                |       Cr1                                     |       -
2843:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr1
2844:         load    (R0),R0                                                                                                                                                                                                                                                                                                 | Rr0                                   |       -                                       |       word2word1 > Wr0
2845:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr0                                     |       -
2846:         div             R1,R0                                                                                                                                                                                                                                                                                                   | Rr1   & Rr0                   |       -                                       |       Wr0
2847:         movei   #DSP_frequence_de_replay_reelle_I2S,R2                                                                                                                                                                                                                                  | Rword1                                |       Cr0-1                           |       -
2848:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       Cr0-2           word1   |       -
2849:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr0-3                           |       word2word1 > Wr2
2850:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr0-4                           |       -
2851:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr0-5                           |       -
2852:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr0-6                           |       -
2853:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr0-7                           |       -
2854:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr0-8                           |       -
2855:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr0-9                           |       -
2856:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr0-10                          |       -
2857:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr0-11                          |       -
2858:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr0-12                          |       -
2859:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr0-13                          |       -
2860:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr0-14                          |       -
2861:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr0-15                          |       -
2862:         store   R0,(R2)                                                                                                                                                                                                                                                                                                 | Rr0   & Rr2                   |       -                                       |       Wr0
2863:        
2864: 
2865: ; init I2S
2866:         movei   #SCLK,r10                                                                                                                                                                                                                                                                                               | Rword1                                |       Mr2                                     |       -
2867:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       MWrite
2868:         movei   #SMODE,r11                                                                                                                                                                                                                                                                                              | Rword1                                |       -                                       |       word2word1 > Wr10
2869:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2870:         movei   #DSP_parametre_de_frequence_I2S,r12                                                                                                                                                                                                                                             | Rword1                                |       -                                       |       word2word1 > Wr11
2871:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2872:         movei   #%001101,r13                    ; SMODE bascule sur RISING                                                                                                                                                                                                              | Rword1                                |       -                                       |       word2word1 > Wr12
2873:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2874:         load    (r12),r12                               ; SCLK                                                                                                                                                                                                                                                  | Rr12                                  |       -                                       |       word2word1 > Wr13
2875:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Mr12                            |       -
2876:         store   r12,(r10)                                                                                                                                                                                                                                                                                               | Rr12  & Rr10                  |       -                                       |       Wr12
2877:         store   r13,(r11)                                                                                                                                                                                                                                                                                               | Rr13  & Rr11                  |       Mr10                            |       -
2878: 
2879: 
2880: ; init Timer 1
2881: ; frq = 24/(60/bpm)
2882:         movei   #LSP_BPM_frequence_replay,R11                                                                                                                                                                                                                                                   | Rword1                                |       Mr11                            |       MWrite
2883:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       MWrite
2884:         load    (R11),R11                                                                                                                                                                                                                                                                                               | Rr11                                  |       -                                       |       word2word1 > Wr11
2885:         movei   #60*256,R10                                                                                                                                                                                                                                                                                             | Rword1                                |       Mr11                            |       -
2886:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr11
2887:         ;shlq   #8,R10                          ; 16 bits de virgule
2888:         div             R11,R10                         ; 60/bpm                                                                                                                                                                                                                                                        | Rr11  & Rr10                  |       -                                       |       word2word1 > Wr10
2889:         movei   #24*65536,R9                            ; 24=> 5 bits                                                                                                                                                                                                                           | Rword1                                |       Cr10-1                          |       -
2890:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       Cr10-2          word1   |       -
2891:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-3                          |       word2word1 > Wr9
2892:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-4                          |       -
2893:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-5                          |       -
2894:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-6                          |       -
2895:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-7                          |       -
2896:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-8                          |       -
2897:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-9                          |       -
2898:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-10                         |       -
2899:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-11                         |       -
2900:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-12                         |       -
2901:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-13                         |       -
2902:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-14                         |       -
2903:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-15                         |       -
2904:         or              R10,R10                                                                                                                                                                                                                                                                                                 | Rr10                                  |       -                                       |       Wr10
2905:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10                            |       -
2906:         ;shlq   #16,R9
2907:         div             R10,R9                          ; R9=                                                                                                                                                                                                                                                           | Rr10  & Rr9                   |       -                                       |       Wr10
2908:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-1                           |       -
2909:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-2                           |       -
2910:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-3                           |       -
2911:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-4                           |       -
2912:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-5                           |       -
2913:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-6                           |       -
2914:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-7                           |       -
2915:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-8                           |       -
2916:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-9                           |       -
2917:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-10                          |       -
2918:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-11                          |       -
2919:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-12                          |       -
2920:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-13                          |       -
2921:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-14                          |       -
2922:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9-15                          |       -
2923:         or              R9,R9                                                                                                                                                                                                                                                                                                   | Rr9                                   |       -                                       |       Wr9
2924:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9                                     |       -
2925:         shrq    #8,R9                           ; R9=frequence replay                                                                                                                                                                                                                           | Rr9                                   |       -                                       |       Wr9
2926:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr9                                     |       -
2927:         move    R9,R11                                                                                                                                                                                                                                                                                                  | Rr9                                   |       -                                       |       Wr9
2928:        
2929: 
2930: ; frequence du timer 1
2931:         movei   #182150,R10                             ; 26593900 / 146 = 182150                                                                                                                                                                                                               | Rword1                                |       -                                       |       Wr11
2932:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2933:         div             R11,R10                                                                                                                                                                                                                                                                                                 | Rr11  & Rr10                  |       -                                       |       word2word1 > Wr10
2934:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-1                          |       -
2935:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-2                          |       -
2936:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-3                          |       -
2937:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-4                          |       -
2938:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-5                          |       -
2939:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-6                          |       -
2940:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-7                          |       -
2941:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-8                          |       -
2942:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-9                          |       -
2943:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-10                         |       -
2944:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-11                         |       -
2945:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-12                         |       -
2946:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-13                         |       -
2947:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-14                         |       -
2948:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10-15                         |       -
2949:         or              R10,R10                                                                                                                                                                                                                                                                                                 | Rr10                                  |       -                                       |       Wr10
2950:                                                                                                                                                                                                                                                                                                                                         | -                                             |       Cr10                            |       -
2951:         move    R10,R13                                                                                                                                                                                                                                                                                                 | Rr10                                  |       -                                       |       Wr10
2952:                
2953:         subq    #1,R13                                  ; -1 pour parametrage du timer 1                                                                                                                                                                                                | Rr13                                  |       -                                       |       Wr13
2954:        
2955:        
2956: 
2957: ; 26593900 / 50 = 531�878 => 2 � 73 � 3643 => 146*3643
2958:         movei   #JPIT1,r10                              ; F10000                                                                                                                                                                                                                                                | Rword1                                |       Cr13                            |       -
2959:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       Wr13
2960:         ;movei  #JPIT2,r11                              ; F10002
2961:         movei   #145*65536,r12                          ; Timer 1 Pre-scaler                                                                                                                                                                                                            | Rword1                                |       -                                       |       word2word1 > Wr10
2962:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2963:         ;shlq   #16,r12
2964:         or              R13,R12                                                                                                                                                                                                                                                                                                 | Rr13  & Rr12                  |       -                                       |       word2word1 > Wr12
2965:                                                                                                                                                                                                                                                                                                                                         |-                                              |       Cr12                            |       -
2966:         store   r12,(r10)                               ; JPIT1 & JPIT2                                                                                                                                                                                                                                 | Rr12  & Rr10                  |       -                                       |       Wr12
2967: 
2968: 
2969: ; init timer 2
2970: 
2971: ;       movei   #JPIT3,r10                              ; F10004
2972: ;       movei   #JPIT4,r11                              ; F10006
2973: 
2974: 
2975: 
2976: ; enable interrupts
2977:         movei   #D_FLAGS,r28                                                                                                                                                                                                                                                                                    | Rword1                                |       Mr10                            |       -
2978:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       MWrite
2979:        
2980:         movei   #D_I2SENA|D_TIM1ENA|REGPAGE,r29                 ; I2S+Timer 1                                                                                                                                                                                                   | Rword1                                |       -                                       |       word2word1 > Wr28
2981:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       -
2982:         ;movei  #D_I2SENA|REGPAGE,r29                                   ; I2S only
2983:        
2984:        
2985:         ;movei  #D_TIM1ENA|REGPAGE,r29                                  ; Timer 1 only
2986:         ;movei  #D_TIM2ENA|REGPAGE,r29                                  ; Timer 2 only
2987: 
2988:         store   r29,(r28)                                                                                                                                                                                                                                                                                               | Rr29  & Rr28                  |       -                                       |       word2word1 > Wr29
2989: 
2990: DSP_boucle_centrale:
2991:         movei   #DSP_boucle_centrale,R20                                                                                                                                                                                                                                                                | Rword1                                |       Mr28                            |       -
2992:                                                                                                                                                                                                                                                                                                                                         | Rword2                                |       word1                           |       MWrite
2993:         jump    (R20)                                                                                                                                                                                                                                                                                                   | Rr20                                  |       -                                       |       word2word1 > Wr20
2994:         nop                                                                                                                                                                                                                                                                                                                             | -                                             |       WPC                                     |       -
2995:        
2996:        
2997:         .phrase
2998: 
2999: DSP_frequence_de_replay_reelle_I2S:                                     dc.l                    0
3000: DSP_UN_sur_frequence_de_replay_reelle_I2S:                      dc.l                    0
3001: DSP_parametre_de_frequence_I2S:                                         dc.l                    0
3002: 
3003: ; variables Paula
3004: ; channel 0
3005: LSP_DSP_PAULA_AUD0L:                            dc.l                    silence<<nb_bits_virgule_offset                 ; Audio channel 0 location
3006: LSP_DSP_PAULA_AUD0LEN:                          dc.l                    (silence+4)<<nb_bits_virgule_offset                     ; en bytes !
3007: LSP_DSP_PAULA_AUD0PER:                          dc.l                    0                               ; period , a transformer en increment
3008: LSP_DSP_PAULA_AUD0VOL:                          dc.l                    0                               ; volume
3009: LSP_DSP_PAULA_AUD0DAT:                          dc.l                    0                               ; long word en cours d'utilisation / stock� / buffering
3010: LSP_DSP_PAULA_internal_location0:       dc.l                    silence<<nb_bits_virgule_offset                         ; internal register : location of the sample currently played
3011: LSP_DSP_PAULA_internal_increment0:      dc.l                    0                               ; internal register : increment linked to period 16:16
3012: LSP_DSP_PAULA_internal_length0:         dc.l                    (silence+4)<<nb_bits_virgule_offset                     ; internal register : length of the sample currently played
3013: LSP_DSP_repeat_pointeur0:                       dc.l                    silence<<nb_bits_virgule_offset
3014: LSP_DSP_repeat_length0:                         dc.l                    (silence+4)<<nb_bits_virgule_offset
3015: ; channel 1
3016: LSP_DSP_PAULA_AUD1L:                            dc.l                    silence<<nb_bits_virgule_offset                 ; Audio channel 0 location
3017: LSP_DSP_PAULA_AUD1LEN:                          dc.l                    (silence+4)<<nb_bits_virgule_offset                     ; en bytes !
3018: LSP_DSP_PAULA_AUD1PER:                          dc.l                    0                               ; period , a transformer en increment
3019: LSP_DSP_PAULA_AUD1VOL:                          dc.l                    0                               ; volume
3020: LSP_DSP_PAULA_AUD1DAT:                          dc.l                    0                               ; long word en cours d'utilisation / stock� / buffering
3021: LSP_DSP_PAULA_internal_location1:       dc.l                    silence<<nb_bits_virgule_offset                         ; internal register : location of the sample currently played
3022: LSP_DSP_PAULA_internal_increment1:      dc.l                    0                               ; internal register : increment linked to period 16:16
3023: LSP_DSP_PAULA_internal_length1:         dc.l                    (silence+4)<<nb_bits_virgule_offset                     ; internal register : length of the sample currently played
3024: LSP_DSP_repeat_pointeur1:                       dc.l                    silence<<nb_bits_virgule_offset
3025: LSP_DSP_repeat_length1:                         dc.l                    (silence+4)<<nb_bits_virgule_offset
3026: ; channel 2
3027: LSP_DSP_PAULA_AUD2L:                            dc.l                    silence<<nb_bits_virgule_offset                 ; Audio channel 0 location
3028: LSP_DSP_PAULA_AUD2LEN:                          dc.l                    (silence+4)<<nb_bits_virgule_offset                     ; en bytes !
3029: LSP_DSP_PAULA_AUD2PER:                          dc.l                    0                               ; period , a transformer en increment
3030: LSP_DSP_PAULA_AUD2VOL:                          dc.l                    0                               ; volume
3031: LSP_DSP_PAULA_AUD2DAT:                          dc.l                    0                               ; long word en cours d'utilisation / stock� / buffering
3032: LSP_DSP_PAULA_internal_location2:       dc.l                    silence<<nb_bits_virgule_offset                         ; internal register : location of the sample currently played
3033: LSP_DSP_PAULA_internal_increment2:      dc.l                    0                               ; internal register : increment linked to period 16:16
3034: LSP_DSP_PAULA_internal_length2:         dc.l                    (silence+4)<<nb_bits_virgule_offset                     ; internal register : length of the sample currently played
3035: LSP_DSP_repeat_pointeur2:                       dc.l                    silence<<nb_bits_virgule_offset
3036: LSP_DSP_repeat_length2:                         dc.l                    (silence+4)<<nb_bits_virgule_offset
3037: ; channel 3
3038: LSP_DSP_PAULA_AUD3L:                            dc.l                    silence<<nb_bits_virgule_offset                 ; Audio channel 0 location
3039: LSP_DSP_PAULA_AUD3LEN:                          dc.l                    (silence+4)<<nb_bits_virgule_offset                     ; en bytes !
3040: LSP_DSP_PAULA_AUD3PER:                          dc.l                    0                               ; period , a transformer en increment
3041: LSP_DSP_PAULA_AUD3VOL:                          dc.l                    0                               ; volume
3042: LSP_DSP_PAULA_AUD3DAT:                          dc.l                    0                               ; long word en cours d'utilisation / stock� / buffering
3043: LSP_DSP_PAULA_internal_location3:       dc.l                    silence<<nb_bits_virgule_offset                         ; internal register : location of the sample currently played
3044: LSP_DSP_PAULA_internal_increment3:      dc.l                    0                               ; internal register : increment linked to period 16:16
3045: LSP_DSP_PAULA_internal_length3:         dc.l                    (silence+4)<<nb_bits_virgule_offset                     ; internal register : length of the sample currently played
3046: LSP_DSP_repeat_pointeur3:                       dc.l                    silence<<nb_bits_virgule_offset
3047: LSP_DSP_repeat_length3:                         dc.l                    (silence+4)<<nb_bits_virgule_offset
3048: 
3049: 
3050: LSPVars:
3051: m_byteStream:           dc.l    0       ;  0 :  byte stream                                                     0
3052: m_wordStream:           dc.l    0       ;  4 :  word stream                                                     1
3053: m_codeTableAddr:        dc.l    0       ;  8 :  code table addr                                         2
3054: m_escCodeRewind:        dc.l    0       ; 12 :  rewind special escape code                      3
3055: m_escCodeSetBpm:        dc.l    0       ; 16 :  set BPM escape code                                     4
3056: m_lspInstruments:       dc.l    0       ; 20 :  LSP instruments table addr                      5
3057: m_relocDone:            dc.l    0       ; 24 :  reloc done flag                                         6
3058: m_currentBpm:           dc.l    0       ; 28 :  current BPM                                                     7
3059: m_byteStreamLoop:       dc.l    0       ; 32 :  byte stream loop point                          8
3060: m_wordStreamLoop:       dc.l    0       ; 36 :  word stream loop point                          9
3061: 
3062: 
3063: 
3064: LSP_BPM_frequence_replay:               dc.l                    25
3065: 
3066: EDZTMP1:                dc.l                    0
3067: 
3068: ;---------------------
3069: ; FIN DE LA RAM DSP
3070: YM_DSP_fin:
3071: ;---------------------
3072: 
3073: 
3074: SOUND_DRIVER_SIZE                       .equ                    YM_DSP_fin-DSP_base_memoire
3075:         .print  "--- Sound driver code size (DSP): ", /u SOUND_DRIVER_SIZE, " bytes / 8192 ---"
3076: 
3077: 
3078:         .68000
3079:                 .dphrase
3080: ob_liste_originale:                                      ; This is the label you will use to address this in 68K code
3081:         .objproc                                                           ; Engage the OP assembler
3082:                 .dphrase
3083: 
3084:         .org    ob_list_courante                         ; Tell the OP assembler where the list will execute
3085: ;
3086:         branch      VC < 0, .stahp                       ; Branch to the STOP object if VC < 0
3087:         branch      VC > 265, .stahp                     ; Branch to the STOP object if VC > 241
3088:                         ; bitmap data addr, xloc, yloc, dwidth, iwidth, iheight, bpp, pallete idx, flags, firstpix, pitch
3089:         bitmap      ecran1, 16, 26, nb_octets_par_ligne/8, nb_octets_par_ligne/8, 246-26,3
3090:                 ;bitmap         ecran1,16,24,40,40,255,3
3091:         jump        .haha
3092: .stahp:
3093:         stop
3094: .haha:
3095:         jump        .stahp
3096:                
3097:                 .68000
3098:                 .dphrase
3099: fin_ob_liste_originale:
3100: 
3101: 
3102:                         .data
3103:         .dphrase
3104: 
3105: stoplist:               dc.l    0,4
3106: 
3107: silence:                
3108:                 dc.b                    $0,$0,$0,$0
3109:                 dc.b                    $0,$0,$0,$0
3110:                 dc.b                    $0,$0,$0,$0
3111: 
3112: 
3113: debut_ram_libre_DSP:            dc.l                    YM_DSP_fin
3114: debut_ram_libre:                        dc.l                    FIN_RAM
3115:         even
3116: 
3117: fonte:  
3118:         .include        "fonte1plan.s"
3119:         even
3120: 
3121: couleur_char:                           dc.w            25
3122: curseur_x:                                      dc.w            0
3123: curseur_y:                                      dc.w            curseur_Y_min
3124:                 even
3125:                
3126: chaine_LSP:                                             dc.b    "LSP player for Jaguar",10,0
3127: chaine_playing_LSP:                             dc.b    "Now playing module",10,0
3128: chaine_BPM_init_LSP:                    dc.b    " bpm.",0
3129: chaine_Hz_init_LSP:                             dc.b    " Hz.",10,0
3130: chaine_replay_frequency:                dc.b    "Replay frequency : ",0
3131: chaine_RAM_DSP:                                 dc.b    "DSP RAM available while running : ",0
3132: chaine_entete_debug_module:             dc.b    "location incremen offset   length  ",10,0
3133: chaine_entete_debug_module2:    dc.b    "location length   period   volume",10,0
3134:                 even
3135: 
3136:         .phrase
3137: LSP_module_music_data:
3138:         .incbin                 "elysium.lsmusic"
3139:         ;.incbin                        "LSP/d.lsmusic"
3140:         ;.incbin                        "LSP/k.lsmusic"
3141:         ;.incbin                        "LSP/testsamples4v.lsmusic"
3142:         .phrase
3143: LSP_module_sound_bank:
3144:         .incbin                 "elysium.lsbank"
3145:         ;.incbin                        "LSP/d.lsbank"
3146:         ;.incbin                        "LSP/k.lsbank"
3147:         ;.incbin                        "LSP/testsamples4v.lsbank"
3148:         .phrase
3149: 
3150:         .bss
3151:         .phrase
3152: DEBUT_BSS:
3153: ;EDZ_compteur_reset_offset_entier_voie_A:                       ds.l    1
3154: 
3155:         .phrase
3156: frequence_Video_Clock:                                  ds.l                            1
3157: frequence_Video_Clock_divisee :                 ds.l                            1
3158: 
3159: 
3160: 
3161: _50ou60hertz:                   ds.l    1
3162: ntsc_flag:                              ds.w    1
3163: a_hdb:                          ds.w   1
3164: a_hde:                          ds.w   1
3165: a_vdb:                          ds.w   1
3166: a_vde:                          ds.w   1
3167: width:                          ds.w   1
3168: height:                         ds.w   1
3169: taille_liste_OP:                ds.l    1
3170: vbl_counter:                    ds.l    1
3171: 
3172:             .dphrase
3173: ecran1:                         ds.b            320*256                         ; 8 bitplanes
3174:         .phrase
3175: FIN_RAM:
3176: 
3177: 
3178: