Commit 46afb46e1f8038fb288428ece10369bee8f78656

Authored by David Shere
1 parent 171e196a90
Exists in master

Fixed the brain deadly terrible tile map system I was using to plain ASCII... MU…

…CH easier to maintain.

Showing 4 changed files with 104 additions and 2067 deletions Inline Diff

.arm 1 1 .arm
.align 2 2 .align
.data 3 3 .data
4 4
.global notesettings 5 5 .global notesettings
.global octave 6 6 .global octave
.global key 7 7 .global key
.global keystates 8 8 .global keystates
.global soundRegUsage 9 9 .global soundRegUsage
.global setupBit 10 10 .global setupBit
.global synthText 11 11 .global synthText
.global setupText 12 12 .global setupText
.global fontBMP 13 13 .global fontBMP
.global fontPAL 14 14 .global fontPAL
15 15
16 16
#include "../src/defines.h" 17 17 #include "../src/defines.h"
18 18
.ltorg 19 19 .ltorg
20 20
21
octave: 22 21 octave:
.word 4 @ current octave 23 22 .word 4 @ current octave
24 23
key: 25 24 key:
.word 0 @ 0=C 1=G 26 25 .word 0 @ 0=C 1=G
.word 0 @ 0=maj 1=min 27 26 .word 0 @ 0=maj 1=min
28 27
keystates: 29 28 keystates:
.word 0 @L 30 29 .word 0 @L
.word 0 @Left 31 30 .word 0 @Left
.word 0 @Down 32 31 .word 0 @Down
.word 0 @Right 33 32 .word 0 @Right
.word 0 @B 34 33 .word 0 @B
.word 0 @A 35 34 .word 0 @A
.word 0 @R 36 35 .word 0 @R
.word 0 @Select 37 36 .word 0 @Select
.word 0 @Start 38 37 .word 0 @Start
39 38
40 39
fontBMP: 41 40 fontBMP:
.incbin "../gfx/8x8font.img.bin" 42 41 .incbin "../gfx/8x8font.img.bin"
fontPAL: 43 42 fontPAL:
.incbin "../gfx/8x8font.pal.bin" 44 43 .incbin "../gfx/8x8font.pal.bin"
45 44
@@@@@ BE WARNED!!! COMMENTS ARE MOSTLY WAY WRONG FOR THE REST OF THIS FILE!!! @@@ 46 45 .align 1
synthText: @@ Map 1 47 46 synthText: @@ Map 1
@@ Row 1 48 47 .ascii "@@@@@@@ SynthGBA Play @@@@@@@@--"
.hword 64 @ @ 49 48 .ascii " --"
.hword 64 @ @ 50 49 .ascii " --"
.hword 64 @ @ 51 50 .ascii " --"
.hword 64 @ @ 52 51 .ascii " --"
.hword 64 @ @ 53 52 .ascii " --"
.hword 64 @ @ 54 53 .ascii " --"
.hword 64 @ @ 55 54 .ascii "Select + Start = maj <-> min --"
.hword 32 @ Space 56 55 .ascii " Select + L + R = Setup --"
.hword 83 @ S 57 56 .ascii "Select + <- or -> = Key Change--"
.hword 121 @ y 58 57 .ascii "Select + ^ or v = Octv Change --"
.hword 110 @ n 59 58 .ascii " --"
.hword 116 @ t 60 59 .ascii " --"
.hword 104 @ h 61 60 .ascii " --"
.hword 71 @ G 62 61 .ascii " --"
.hword 66 @ B 63 62 .ascii " --"
.hword 65 @ A 64 63 .ascii " --"
.hword 32 @ Space 65 64 .ascii " --"
.hword 80 @ P 66 65 .ascii " --"
.hword 108 @ l 67 66 .ascii " --"
.hword 97 @ a 68
.hword 121 @ y 69
.hword 32 @ Space 70
.hword 64 @ @ 71
.hword 64 @ @ 72
.hword 64 @ @ 73
.hword 64 @ @ 74
.hword 64 @ @ 75
.hword 64 @ @ 76
.hword 64 @ @ 77
.hword 64 @ @ 78
.hword 64 @ @ 79
.hword 64 @ @ 80
.hword 32 @ Space 81
.hword 32 @ Space 82
.hword 32 @ Space 83
.hword 32 @ Space 84
.hword 32 @ Space 85
.hword 32 @ Space 86
.hword 32 @ Space 87
.hword 32 @ Space 88
.hword 32 @ Space 89
.hword 32 @ Space 90
.hword 32 @ Space 91
.hword 32 @ Space 92
.hword 32 @ Space 93
.hword 32 @ Space 94
.hword 32 @ Space 95
.hword 32 @ Space 96
.hword 32 @ Space 97
.hword 32 @ Space 98
.hword 32 @ Space 99
.hword 32 @ Space 100
.hword 32 @ Space 101
.hword 32 @ Space 102
.hword 32 @ Space 103
.hword 32 @ Space 104
.hword 32 @ Space 105
.hword 32 @ Space 106
.hword 32 @ Space 107
.hword 32 @ Space 108
.hword 32 @ Space 109
.hword 32 @ Space 110
.hword 32 @ Space 111
.hword 32 @ Space 112
.hword 32 @ Space 113
.hword 32 @ Space 114
.hword 32 @ Space 115
.hword 32 @ Space 116
.hword 32 @ Space 117
.hword 32 @ Space 118
.hword 32 @ Space 119
.hword 32 @ Space 120
.hword 32 @ Space 121
.hword 32 @ Space 122
.hword 32 @ Space 123
.hword 32 @ Space 124
.hword 32 @ Space 125
.hword 32 @ Space 126
.hword 32 @ Space 127
.hword 32 @ Space 128
.hword 32 @ Space 129
.hword 32 @ Space 130
.hword 32 @ Space 131
.hword 32 @ Space 132
.hword 32 @ Space 133
.hword 32 @ Space 134
.hword 32 @ Space 135
.hword 32 @ Space 136
.hword 32 @ Space 137
.hword 32 @ Space 138
.hword 32 @ Space 139
.hword 32 @ Space 140
.hword 32 @ Space 141
.hword 32 @ Space 142
.hword 32 @ Space 143
.hword 32 @ Space 144
.hword 32 @ Space 145
.hword 32 @ Space 146
.hword 32 @ Space .hword 32 @ Space 147
.hword 32 @ Space 148
.hword 32 @ Space 149
.hword 32 @ Space 150
.hword 32 @ Space 151
.hword 32 @ Space 152
.hword 32 @ Space 153
.hword 32 @ Space 154
.hword 32 @ Space 155
.hword 32 @ Space 156
.hword 32 @ Space 157
.hword 32 @ Space 158
.hword 32 @ Space 159
.hword 32 @ Space 160
.hword 32 @ Space 161
.hword 32 @ Space 162
.hword 32 @ Space 163
.hword 32 @ Space 164
.hword 32 @ Space 165
.hword 32 @ Space 166
.hword 32 @ Space 167
.hword 32 @ Space 168
.hword 32 @ Space 169
.hword 32 @ Space 170
.hword 32 @ Space 171
.hword 32 @ Space 172
.hword 32 @ Space 173
.hword 32 @ Space 174
.hword 32 @ Space 175
.hword 32 @ Space 176
.hword 32 @ Space 177
.hword 32 @ Space 178
.hword 32 @ Space 179
.hword 32 @ Space 180
.hword 32 @ Space 181
.hword 32 @ Space 182
.hword 32 @ Space 183
.hword 32 @ Space 184
@@ Row 2 185
.hword 32 @ Space 186
.hword 32 @ Space 187
.hword 32 @ Space 188
.hword 32 @ Space 189
.hword 32 @ Space 190
.hword 32 @ Space 191
.hword 32 @ Space 192
.hword 32 @ Space 193
.hword 32 @ Space 194
.hword 32 @ Space 195
.hword 32 @ Space 196
.hword 32 @ Space 197
.hword 32 @ Space 198
.hword 32 @ Space 199
.hword 32 @ Space 200
.hword 32 @ Space 201
.hword 32 @ L 202
.hword 32 @ e 203
.hword 32 @ f 204
.hword 32 @ t 205
.hword 32 @ Space 206
.hword 32 @ = 207
.hword 32 @ Space 208
.hword 32 @ D 209
.hword 32 @ Space 210
.hword 32 @ Space 211
.hword 32 @ Space 212
.hword 32 @ Space 213
.hword 32 @ Space 214
.hword 32 @ Space 215
.hword 32 @ Space 216
.hword 32 @ Space 217
.hword 32 @ Space 218
.hword 32 @ Space 219
.hword 32 @ Space 220
.hword 32 @ Space 221
.hword 32 @ Space 222
.hword 32 @ Space 223
.hword 32 @ Space 224
.hword 32 @ Space 225
.hword 32 @ Space 226
.hword 32 @ Space 227
.hword 32 @ Space 228
.hword 32 @ Space 229
.hword 32 @ Space 230
.hword 32 @ Space 231
.hword 32 @ Space 232
.hword 32 @ Space 233
.hword 32 @ D 234
.hword 32 @ o 235
.hword 32 @ w 236
.hword 32 @ n 237
.hword 32 @ Space 238
.hword 32 @ = 239
.hword 32 @ Space 240
.hword 32 @ E 241
.hword 32 @ Space 242
.hword 32 @ Space 243
.hword 32 @ Space 244
.hword 32 @ Space 245
.hword 32 @ Space 246
.hword 32 @ Space 247
.hword 32 @ Space 248
.hword 32 @ Space 249
.hword 32 @ Space 250
.hword 32 @ Space 251
.hword 32 @ Space 252
.hword 32 @ Space 253
.hword 32 @ Space 254
.hword 32 @ Space 255
.hword 32 @ Space 256
.hword 32 @ Space 257
.hword 32 @ Space 258
.hword 32 @ Space 259
.hword 32 @ Space 260
.hword 32 @ Space 261
.hword 32 @ Space 262
.hword 32 @ Space 263
.hword 32 @ Space 264
.hword 32 @ R 265
.hword 32 @ i 266
.hword 32 @ g 267
.hword 32 @ h 268
.hword 32 @ t 269
.hword 32 @ Space 270
.hword 32 @ = 271
.hword 32 @ Space 272
.hword 32 @ F 273
.hword 32 @ Space 274
.hword 32 @ Space 275
.hword 32 @ Space 276
.hword 32 @ Space 277
.hword 32 @ Space 278
.hword 32 @ Space 279
.hword 32 @ Space 280
.hword 32 @ Space 281
.hword 32 @ Space 282
.hword 32 @ Space 283
.hword 32 @ Space 284
.hword 32 @ Space 285
.hword 32 @ Space 286
.hword 32 @ Space 287
.hword 32 @ Space 288
.hword 32 @ Space 289
.hword 32 @ Space 290
.hword 32 @ Space 291
.hword 32 @ Space 292
.hword 32 @ Space 293
.hword 32 @ Space 294
.hword 32 @ Space 295
.hword 32 @ Space 296
.hword 32 @ Space 297
.hword 32 @ Space 298
.hword 32 @ Space 299
.hword 32 @ U 300
.hword 32 @ p 301
.hword 32 @ Space 302
.hword 32 @ = 303
.hword 32 @ Space 304
.hword 32 @ G 305
.hword 32 @ Space 306
.hword 32 @ Space 307
.hword 32 @ Space 308
.hword 32 @ Space 309
.hword 32 @ Space 310
.hword 32 @ Space 311
.hword 32 @ Space 312
.hword 32 @ Space 313
.hword 32 @ Space 314
.hword 32 @ Space 315
.hword 32 @ Space 316
.hword 32 @ Space 317
.hword 32 @ Space 318
.hword 32 @ Space 319
.hword 32 @ Space 320
.hword 32 @ Space 321
.hword 32 @ Space 322
.hword 32 @ Space 323
.hword 32 @ Space 324
.hword 32 @ Space 325
.hword 32 @ Space 326
.hword 32 @ Space 327
.hword 32 @ Space 328
.hword 32 @ Space 329
.hword 32 @ Space 330
.hword 32 @ Space 331
.hword 32 @ Space 332
.hword 32 @ B 333
.hword 32 @ Space 334
.hword 32 @ = 335
.hword 32 @ Space 336
.hword 32 @ A 337
.hword 32 @ Space 338
.hword 32 @ Space 339
.hword 32 @ Space 340
.hword 32 @ Space 341
.hword 32 @ Space 342
.hword 32 @ Space 343
.hword 32 @ Space 344
.hword 32 @ Space 345
.hword 32 @ Space 346
.hword 32 @ Space 347
.hword 32 @ Space 348
.hword 32 @ Space 349
.hword 32 @ Space 350
.hword 32 @ Space 351
.hword 32 @ Space 352
.hword 32 @ Space 353
.hword 32 @ Space 354
.hword 32 @ Space 355
.hword 32 @ Space 356
.hword 32 @ Space 357
.hword 32 @ Space 358
.hword 32 @ Space 359
.hword 32 @ Space 360
.hword 32 @ Space 361
.hword 32 @ Space 362
.hword 32 @ Space 363
.hword 32 @ Space 364
.hword 32 @ Space 365
.hword 32 @ Space 366
.hword 32 @ Space 367
.hword 32 @ Space 368
.hword 32 @ Space 369
.hword 32 @ Space 370
.hword 32 @ Space 371
.hword 32 @ Space 372
373
.hword 83 @ S 374
.hword 101 @ e 375
.hword 108 @ l 376
.hword 101 @ e 377
.hword 99 @ c 378
.hword 116 @ t 379
.hword 32 @ Space 380
.hword 43 @ + 381
.hword 32 @ Space 382
.hword 65 @ A 383
.hword 32 @ Space 384
.hword 61 @ = 385
.hword 32 @ Space 386
.hword 109 @ m 387
.hword 97 @ a 388
.hword 106 @ j 389
.hword 32 @ Space 390
.hword 60 @ < 391
.hword 45 @ - 392
.hword 62 @ < 393
.hword 32 @ Space 394
.hword 109 @ m 395
.hword 105 @ i 396
.hword 110 @ n 397
.hword 32 @ Space 398
.hword 32 @ Space 399
.hword 32 @ Space 400
.hword 32 @ Space 401
.hword 32 @ Space 402
.hword 32 @ Space 403
.hword 32 @ Space 404
.hword 32 @ Space 405
.hword 32 @ Space 406
.hword 83 @ S 407
.hword 101 @ e 408
.hword 108 @ l 409
.hword 101 @ e 410
.hword 99 @ c 411
.hword 116 @ t 412
.hword 32 @ Space 413
.hword 43 @ + 414
.hword 32 @ Space 415
.hword 76 @ L 416
.hword 32 @ Space 417
.hword 43 @ + 418
.hword 32 @ Space 419
.hword 82 @ R 420
.hword 32 @ Space 421
.hword 61 @ = 422
.hword 32 @ Space 423
.hword 83 @ S 424
.hword 101 @ e 425
.hword 116 @ t 426
.hword 117 @ u 427
.hword 112 @ p 428
.hword 32 @ Space 429
.hword 32 @ Space 430
.hword 32 @ Space 431
.hword 32 @ Space 432
.hword 32 @ Space 433
.hword 32 @ Space 434
@@ Row 4 435
.hword 83 @ S 436
.hword 101 @ e 437
.hword 108 @ l 438
.hword 101 @ e 439
.hword 99 @ c 440
.hword 116 @ t 441
.hword 32 @ Space 442
.hword 43 @ + 443
.hword 32 @ Space 444
.hword 60 @ < 445
.hword 45 @ - 446
.hword 32 447
.hword 111 @ o 448
.hword 114 @ r 449
.hword 32 @ Space 450
.hword 45 @ - 451
.hword 62 @ Space 452
.hword 32 @ Space 453
.hword 61 @ = 454
.hword 32 @ Space 455
.hword 75 @ K 456
.hword 101 @ e 457
.hword 121 @ y 458
.hword 32 @ Space 459
.hword 67 @ C 460
.hword 104 @ h 461
.hword 97 @ a 462
.hword 110 @ n 463
.hword 103 @ g 464
.hword 101 @ e 465
.hword 32 @ Space 466
.hword 32 @ Space 467
.hword 32 @ Space 468
@@ Row 4 469
.hword 83 @ S 470
.hword 101 @ e 471
.hword 108 @ l 472
.hword 101 @ e 473
.hword 99 @ c 474
.hword 116 @ t 475
.hword 32 @ Space 476
.hword 43 @ + 477
.hword 32 @ Space 478
.hword 94 @ ^ 479
.hword 32 480
.hword 111 @ o 481
.hword 114 @ r 482
.hword 32 @ Space 483
.hword 118 @ v 484
.hword 32 @ Space 485
.hword 61 @ = 486
.hword 32 @ Space 487
.hword 79 @ O 488
.hword 99 @ c 489
.hword 116 @ t 490
.hword 32 @ Space 491
.hword 67 @ C 492
.hword 104 @ h 493
.hword 97 @ a 494
.hword 110 @ n 495
.hword 103 @ g 496
.hword 101 @ e 497
.hword 32 @ Space 498
.hword 32 @ Space 499
500
@@ Row 15 501
.hword 32 @ Space 502
.hword 32 @ Space 503
.hword 32 @ Space 504
.hword 32 @ Space 505
.hword 32 @ Space 506
.hword 32 @ Space 507
.hword 32 @ Space 508
.hword 32 @ Space 509
.hword 32 @ Space 510
.hword 32 @ Space 511
.hword 32 @ Space 512
.hword 32 @ Space 513
.hword 32 @ Space 514
.hword 32 @ Space 515
.hword 32 @ Space 516
.hword 32 @ Space 517
.hword 32 @ Space 518
.hword 32 @ Space 519
.hword 32 @ Space 520
.hword 32 @ Space 521
.hword 32 @ Space 522
.hword 32 @ Space 523
.hword 32 @ Space 524
.hword 32 @ Space 525
.hword 32 @ Space 526
.hword 32 @ Space 527
.hword 32 @ Space 528
.hword 32 @ Space 529
.hword 32 @ Space 530
.hword 32 @ Space 531
.hword 32 @ Space 532
.hword 32 @ Space 533
@@ Row 16 534
.hword 32 @ Space 535
.hword 32 @ Space 536
.hword 32 @ Space 537
.hword 32 @ Space 538
.hword 32 @ Space 539
.hword 32 @ Space 540
.hword 32 @ Space 541
.hword 32 @ Space 542
.hword 32 @ Space 543
.hword 32 @ Space 544
.hword 32 @ Space 545
.hword 32 @ Space 546
.hword 32 @ Space 547
.hword 32 @ Space 548
.hword 32 @ Space 549
.hword 32 @ Space 550
.hword 32 @ Space 551
.hword 32 @ Space 552
.hword 32 @ Space 553
.hword 32 @ Space 554
.hword 32 @ Space 555
.hword 32 @ Space 556
.hword 32 @ Space 557
.hword 32 @ Space 558
.hword 32 @ Space 559
.hword 32 @ Space 560
.hword 32 @ Space 561
.hword 32 @ Space 562
.hword 32 @ Space 563
.hword 32 @ Space 564
.hword 32 @ Space 565
.hword 32 @ Space 566
@@ Row 17 567
.hword 32 @ Space 568
.hword 32 @ Space 569
.hword 32 @ Space 570
.hword 32 @ Space 571
.hword 32 @ Space 572
.hword 32 @ Space 573
.hword 32 @ Space 574
.hword 32 @ Space 575
.hword 32 @ Space 576
.hword 32 @ Space 577
.hword 32 @ Space 578
.hword 32 @ Space 579
.hword 32 @ Space 580
.hword 32 @ Space 581
.hword 32 @ Space 582
.hword 32 @ Space 583
.hword 32 @ Space 584
.hword 32 @ Space 585
.hword 32 @ Space 586
.hword 32 @ Space 587
.hword 32 @ Space 588
.hword 32 @ Space 589
.hword 32 @ Space 590
.hword 32 @ Space 591
.hword 32 @ Space 592
.hword 32 @ Space 593
.hword 32 @ Space 594
.hword 32 @ Space 595
.hword 32 @ Space 596
.hword 32 @ Space 597
.hword 32 @ Space 598
.hword 32 @ Space 599
@@ Row 18 600
.hword 32 @ Space 601
.hword 32 @ Space 602
.hword 32 @ Space 603
.hword 32 @ Space 604
.hword 32 @ Space 605
.hword 32 @ Space 606
.hword 32 @ Space 607
.hword 32 @ Space 608
.hword 32 @ Space 609
.hword 32 @ Space 610
.hword 32 @ Space 611
.hword 32 @ Space 612
.hword 32 @ Space 613
.hword 32 @ Space 614
.hword 32 @ Space 615
.hword 32 @ Space 616
.hword 32 @ Space 617
.hword 32 @ Space 618
.hword 32 @ Space 619
.hword 32 @ Space 620
.hword 32 @ Space 621
.hword 32 @ Space 622
.hword 32 @ Space 623
.hword 32 @ Space 624
.hword 32 @ Space 625
.hword 32 @ Space 626
.hword 32 @ Space 627
.hword 32 @ Space 628
.hword 32 @ Space 629
.hword 32 @ Space 630
.hword 32 @ Space 631
.hword 32 @ Space 632
@@ Row 19 633
.hword 32 @ Space 634
.hword 32 @ Space 635
.hword 32 @ Space 636
.hword 32 @ Space 637
.hword 32 @ Space 638
.hword 32 @ Space 639
.hword 32 @ Space 640
.hword 32 @ Space 641
.hword 32 @ Space 642
.hword 32 @ Space 643
.hword 32 @ Space 644
.hword 32 @ Space 645
.hword 32 @ Space 646
.hword 32 @ Space 647
.hword 32 @ Space 648
.hword 32 @ Space 649
.hword 32 @ Space 650
.hword 32 @ Space 651
.hword 32 @ Space 652
.hword 32 @ Space 653
.hword 32 @ Space 654
.hword 32 @ Space 655
.hword 32 @ Space 656
.hword 32 @ Space 657
.hword 32 @ Space 658
.hword 32 @ Space 659
.hword 32 @ Space 660
.hword 32 @ Space 661
.hword 32 @ Space 662
.hword 32 @ Space 663
.hword 32 @ Space 664
.hword 32 @ Space 665
@@ Row 20 666
.hword 32 @ Space 667
.hword 32 @ Space 668
.hword 32 @ Space 669
.hword 32 @ Space 670
.hword 32 @ Space 671
.hword 32 @ Space 672
.hword 32 @ Space 673
.hword 32 @ Space 674
.hword 32 @ Space 675
.hword 32 @ Space 676
.hword 32 @ Space 677
.hword 32 @ Space 678
.hword 32 @ Space 679
.hword 32 @ Space 680
.hword 32 @ Space 681
.hword 32 @ Space 682
.hword 32 @ Space 683
.hword 32 @ Space 684
.hword 32 @ Space 685
.hword 32 @ Space 686
.hword 32 @ Space 687
.hword 32 @ Space 688
.hword 32 @ Space 689
.hword 32 @ Space 690
.hword 32 @ Space 691
.hword 32 @ Space 692
.hword 32 @ Space 693
.hword 32 @ Space 694
.hword 32 @ Space 695
.hword 32 @ Space 696
.hword 32 @ Space 697
.hword 32 @ Space 698
@@ Row 21 699
.hword 32 @ Space 700
.hword 32 @ Space 701
.hword 32 @ Space 702
.hword 32 @ Space 703
.hword 32 @ Space 704
.hword 32 @ Space 705
.hword 32 @ Space 706
.hword 32 @ Space 707
.hword 32 @ Space 708
.hword 32 @ Space 709
.hword 32 @ Space 710
.hword 32 @ Space 711
.hword 32 @ Space 712
.hword 32 @ Space 713
.hword 32 @ Space 714
.hword 32 @ Space 715
.hword 32 @ Space 716
.hword 32 @ Space 717
.hword 32 @ Space 718
.hword 32 @ Space 719
.hword 32 @ Space 720
.hword 32 @ Space 721
.hword 32 @ Space 722
.hword 32 @ Space 723
.hword 32 @ Space 724
.hword 32 @ Space 725
.hword 32 @ Space 726
.hword 32 @ Space 727
.hword 32 @ Space 728
.hword 32 @ Space 729
.hword 32 @ Space 730
.hword 32 @ Space 731
@@ Row 22 @@ LAST VISIBLE W/O SCROLLING 732
.hword 32 @ Space 733
.hword 32 @ Space 734
.hword 32 @ Space 735
.hword 32 @ Space 736
.hword 32 @ Space 737
.hword 32 @ Space 738
.hword 32 @ Space 739
.hword 32 @ Space 740
.hword 32 @ Space 741
.hword 32 @ Space 742
.hword 32 @ Space 743
.hword 32 @ Space 744
.hword 32 @ Space 745
.hword 32 @ Space 746
.hword 32 @ Space 747
.hword 32 @ Space 748
.hword 32 @ Space 749
.hword 32 @ Space 750
.hword 32 @ Space 751
.hword 32 @ Space 752
.hword 32 @ Space 753
.hword 32 @ Space 754
.hword 32 @ Space 755
.hword 32 @ Space 756
.hword 32 @ Space 757
.hword 32 @ Space 758
.hword 32 @ Space 759
.hword 32 @ Space 760
.hword 32 @ Space 761
.hword 32 @ Space 762
.hword 32 @ Space 763
.hword 32 @ Space 764
@@ Row 23 765
.hword 32 @ Space 766
.hword 32 @ Space 767
.hword 32 @ Space 768
.hword 32 @ Space 769
.hword 32 @ Space 770
.hword 32 @ Space 771
.hword 32 @ Space 772
.hword 32 @ Space 773
.hword 32 @ Space 774
.hword 32 @ Space 775
.hword 32 @ Space 776
.hword 32 @ Space 777
.hword 32 @ Space 778
.hword 32 @ Space 779
.hword 32 @ Space 780
.hword 32 @ Space 781
.hword 32 @ Space 782
.hword 32 @ Space 783
.hword 32 @ Space 784
.hword 32 @ Space 785
.hword 32 @ Space 786
.hword 32 @ Space 787
.hword 32 @ Space 788
.hword 32 @ Space 789
.hword 32 @ Space 790
.hword 32 @ Space 791
.hword 32 @ Space 792
.hword 32 @ Space 793
.hword 32 @ Space 794
.hword 32 @ Space 795
.hword 32 @ Space 796
.hword 32 @ Space 797
@@ Row 24 798
.hword 32 @ Space 799
.hword 32 @ Space 800
.hword 32 @ Space 801
.hword 32 @ Space 802
.hword 32 @ Space 803
.hword 32 @ Space 804
.hword 32 @ Space 805
.hword 32 @ Space 806
.hword 32 @ Space 807
.hword 32 @ Space 808
.hword 32 @ Space 809
.hword 32 @ Space 810
.hword 32 @ Space 811
.hword 32 @ Space 812
.hword 32 @ Space 813
.hword 32 @ Space 814
.hword 32 @ Space 815
.hword 32 @ Space 816
.hword 32 @ Space 817
.hword 32 @ Space 818
.hword 32 @ Space 819
.hword 32 @ Space 820
.hword 32 @ Space 821
.hword 32 @ Space 822
.hword 32 @ Space 823
.hword 32 @ Space 824
.hword 32 @ Space 825
.hword 32 @ Space 826
.hword 32 @ Space 827
.hword 32 @ Space 828
.hword 32 @ Space 829
.hword 32 @ Space 830
@@ Row 25 831
.hword 32 @ Space 832
.hword 32 @ Space 833
.hword 32 @ Space 834
.hword 32 @ Space 835
.hword 32 @ Space 836
.hword 32 @ Space 837
.hword 32 @ Space 838
.hword 32 @ Space 839
.hword 32 @ Space 840
.hword 32 @ Space 841
.hword 32 @ Space 842
.hword 32 @ Space 843
.hword 32 @ Space 844
.hword 32 @ Space 845
.hword 32 @ Space 846
.hword 32 @ Space 847
.hword 32 @ Space 848
.hword 32 @ Space 849
.hword 32 @ Space 850
.hword 32 @ Space 851
.hword 32 @ Space 852
.hword 32 @ Space 853
.hword 32 @ Space 854
.hword 32 @ Space 855
.hword 32 @ Space 856
.hword 32 @ Space 857
.hword 32 @ Space 858
.hword 32 @ Space 859
.hword 32 @ Space 860
.hword 32 @ Space 861
.hword 32 @ Space 862
.hword 32 @ Space 863
@@ Row 26 864
.hword 32 @ Space 865
.hword 32 @ Space 866
.hword 32 @ Space 867
.hword 32 @ Space 868
.hword 32 @ Space 869
.hword 32 @ Space 870
.hword 32 @ Space 871
.hword 32 @ Space 872
.hword 32 @ Space 873
.hword 32 @ Space 874
.hword 32 @ Space 875
.hword 32 @ Space 876
.hword 32 @ Space 877
.hword 32 @ Space 878
.hword 32 @ Space 879
.hword 32 @ Space 880
.hword 32 @ Space 881
.hword 32 @ Space 882
.hword 32 @ Space 883
.hword 32 @ Space 884
.hword 32 @ Space 885
.hword 32 @ Space 886
.hword 32 @ Space 887
.hword 32 @ Space 888
.hword 32 @ Space 889
.hword 32 @ Space 890
.hword 32 @ Space 891
.hword 32 @ Space 892
.hword 32 @ Space 893
.hword 32 @ Space 894
.hword 32 @ Space 895
.hword 32 @ Space 896
@@ Row 27 897
.hword 32 @ Space 898
.hword 32 @ Space 899
.hword 32 @ Space 900
.hword 32 @ Space 901
.hword 32 @ Space 902
.hword 32 @ Space 903
.hword 32 @ Space 904
.hword 32 @ Space 905
.hword 32 @ Space 906
.hword 32 @ Space 907
.hword 32 @ Space 908
.hword 32 @ Space 909
.hword 32 @ Space 910
.hword 32 @ Space 911
.hword 32 @ Space 912
.hword 32 @ Space 913
.hword 32 @ Space 914
.hword 32 @ Space 915
.hword 32 @ Space 916
.hword 32 @ Space 917
.hword 32 @ Space 918
.hword 32 @ Space 919
.hword 32 @ Space 920
.hword 32 @ Space 921
.hword 32 @ Space 922
.hword 32 @ Space 923
.hword 32 @ Space 924
.hword 32 @ Space 925
.hword 32 @ Space 926
.hword 32 @ Space 927
.hword 32 @ Space 928
.hword 32 @ Space 929
@@ Row 28 930
.hword 32 @ Space 931
.hword 32 @ Space 932
.hword 32 @ Space 933
.hword 32 @ Space 934
.hword 32 @ Space 935
.hword 32 @ Space 936
.hword 32 @ Space 937
.hword 32 @ Space 938
.hword 32 @ Space 939
.hword 32 @ Space 940
.hword 32 @ Space 941
.hword 32 @ Space 942
.hword 32 @ Space 943
.hword 32 @ Space 944
.hword 32 @ Space 945
.hword 32 @ Space 946
.hword 32 @ Space 947
.hword 32 @ Space 948
.hword 32 @ Space 949
.hword 32 @ Space 950
.hword 32 @ Space 951
.hword 32 @ Space 952
.hword 32 @ Space 953
.hword 32 @ Space 954
.hword 32 @ Space 955
.hword 32 @ Space 956
.hword 32 @ Space 957
.hword 32 @ Space 958
.hword 32 @ Space 959
.hword 32 @ Space 960
.hword 32 @ Space 961
.hword 32 @ Space 962
@@ Row 31 963
.hword 32 @ Space 964
.hword 32 @ Space 965
.hword 32 @ Space 966
.hword 32 @ Space 967
.hword 32 @ Space 968
.hword 32 @ Space 969
.hword 32 @ Space 970
.hword 32 @ Space 971
.hword 32 @ Space 972
.hword 32 @ Space 973
.hword 32 @ Space 974
.hword 32 @ Space 975
.hword 32 @ Space 976
.hword 32 @ Space 977
.hword 32 @ Space 978
.hword 32 @ Space 979
.hword 32 @ Space 980
.hword 32 @ Space 981
.hword 32 @ Space 982
.hword 32 @ Space 983
.hword 32 @ Space 984
.hword 32 @ Space 985
.hword 32 @ Space 986
.hword 32 @ Space 987
.hword 32 @ Space 988
.hword 32 @ Space 989
.hword 32 @ Space 990
.hword 32 @ Space 991
.hword 32 @ Space 992
.hword 32 @ Space 993
.hword 32 @ Space 994
.hword 32 @ Space 995
@@ Row 32 996
.hword 32 @ Space 997
.hword 32 @ Space 998
.hword 32 @ Space 999
.hword 32 @ Space 1000
.hword 32 @ Space 1001
.hword 32 @ Space 1002
.hword 32 @ Space 1003
.hword 32 @ Space 1004
.hword 32 @ Space 1005
.hword 32 @ Space 1006
.hword 32 @ Space 1007
.hword 32 @ Space 1008
.hword 32 @ Space 1009
.hword 32 @ Space 1010
.hword 32 @ Space 1011
.hword 32 @ Space 1012
.hword 32 @ Space 1013
.hword 32 @ Space 1014
.hword 32 @ Space 1015
.hword 32 @ Space 1016
.hword 32 @ Space 1017
.hword 32 @ Space 1018
.hword 32 @ Space 1019
.hword 32 @ Space 1020
.hword 32 @ Space 1021
.hword 32 @ Space 1022
.hword 32 @ Space 1023
.hword 32 @ Space 1024
.hword 32 @ Space 1025
.hword 32 @ Space 1026
.hword 32 @ Space 1027
.hword 32 @ Space 1028
@@ 1029
.hword 32 @ Space 1030
.hword 32 @ Space 1031
.hword 32 @ Space 1032
.hword 32 @ Space 1033
.hword 32 @ Space 1034
.hword 32 @ Space 1035
.hword 32 @ Space 1036
.hword 32 @ Space 1037
.hword 32 @ Space 1038
.hword 32 @ Space 1039
.hword 32 @ Space 1040
.hword 32 @ Space 1041
.hword 32 @ Space 1042
.hword 32 @ Space 1043
.hword 32 @ Space 1044
.hword 32 @ Space 1045
.hword 32 @ Space 1046
.hword 32 @ Space 1047
.hword 32 @ Space 1048
.hword 32 @ Space 1049
.hword 32 @ Space 1050
.hword 32 @ Space 1051
.hword 32 @ Space 1052
.hword 32 @ Space 1053
.hword 32 @ Space 1054
.hword 32 @ Space 1055
.hword 32 @ Space 1056
.hword 32 @ Space 1057
.hword 32 @ Space 1058
.hword 32 @ Space 1059
.hword 32 @ Space 1060
.hword 32 @ Space 1061
1062
notesettings: 1063 67 notesettings:
.hword 0b1111010011111111 @Note Settings 1 1064 68 .hword 0b1111010011111111 @Note Settings 1
.hword 0b1000000000000000 @Note Settings 2 1065 69 .hword 0b1000000000000000 @Note Settings 2
.hword 0 @ length flag 1066 70 .hword 0 @ length flag
1067 71
setupText: @ Map 0 1068 72 setupText: @ Map 0
@@ Row 1 1069 73 .ascii "@@@@@@@ SynthGBA Setup @@@@@@@--"
.hword 64 @ @ 1070 74 .ascii " --"
.hword 64 @ @ 1071 75 .ascii " --"
.hword 64 @ @ 1072 76 .ascii " --"
.hword 64 @ @ 1073 77 .ascii " IIIIMTTTDDLLLLLL --"
.hword 64 @ @ 1074 78 .ascii " --"
.hword 64 @ @ 1075 79 .ascii " 0b0000000000000000 --"
.hword 64 @ @ 1076 80 .ascii " ^ --"
.hword 32 @ Space 1077 81 .ascii " --"
.hword 83 @ S 1078 82 .ascii " L = Sound Length --"
.hword 121 @ y 1079 83 .ascii " D = Wave Duty Cycle --"
.hword 110 @ n 1080 84 .ascii " T = Envelope Step Time --"
.hword 116 @ t 1081 85 .ascii " M = Envelope Mode --"
.hword 104 @ h 1082 86 .ascii " I = Initial Envelope Value --"
.hword 71 @ G 1083 87 .ascii " --"
.hword 66 @ B 1084 88 .ascii " --"
.hword 65 @ A 1085 89 .ascii " Press Start to begin. --"
.hword 32 @ Space 1086 90 .ascii " --"
.hword 83 @ S 1087 91 .ascii " --"
.hword 101 @ e 1088 92 .ascii "L<= Press B to toggle len flag--"
.hword 116 @ t 1089
.hword 117 @ u 1090
.hword 112 @ p 1091
.hword 32 @ Space 1092
.hword 64 @ @ 1093
.hword 64 @ @ 1094
.hword 64 @ @ 1095
.hword 64 @ @ 1096
.hword 64 @ @ 1097
.hword 64 @ @ 1098
.hword 64 @ @ 1099
.hword 64 @ @ 1100
.hword 64 @ @ 1101
@@ Row 6 1102
.hword 32 @ Space 1103
.hword 32 @ Space 1104
.hword 32 @ Space 1105
.hword 32 @ Space 1106
.hword 32 @ Space 1107
.hword 32 @ Space 1108
.hword 32 @ Space 1109
.hword 32 @ Space 1110
.hword 32 @ Space 1111
.hword 32 @ Space 1112
.hword 32 @ Space 1113
.hword 32 @ Space 1114
.hword 32 @ Space 1115
.hword 32 @ Space 1116
.hword 32 @ Space 1117
.hword 32 @ Space 1118
.hword 32 @ Space 1119
.hword 32 @ Space 1120
.hword 32 @ Space 1121
.hword 32 @ Space 1122
.hword 32 @ Space 1123
.hword 32 @ Space 1124
.hword 32 @ Space 1125
.hword 32 @ Space 1126
.hword 32 @ Space 1127
.hword 32 @ Space 1128
.hword 32 @ Space 1129
.hword 32 @ Space 1130
.hword 32 @ Space 1131
.hword 32 @ Space 1132
.hword 32 @ Space 1133
.hword 32 @ Space 1134
@@ Row 7 1135
.hword 32 @ Space 1136
.hword 32 @ Space 1137
.hword 32 @ Space 1138
.hword 32 @ Space 1139
.hword 32 @ Space 1140
.hword 32 @ Space 1141
.hword 32 @ Space 1142
.hword 32 @ Space 1143
.hword 32 @ Space 1144
.hword 32 @ Space 1145
.hword 32 @ Space 1146
.hword 32 @ Space 1147
.hword 32 @ Space 1148
.hword 32 @ Space 1149
.hword 32 @ Space 1150
.hword 32 @ Space 1151
.hword 32 @ Space 1152
.hword 32 @ Space 1153
.hword 32 @ Space 1154
.hword 32 @ Space 1155
.hword 32 @ Space 1156
.hword 32 @ Space 1157
.hword 32 @ Space 1158
.hword 32 @ Space 1159
.hword 32 @ Space 1160
.hword 32 @ Space 1161
.hword 32 @ Space 1162
.hword 32 @ Space 1163
.hword 32 @ Space 1164
.hword 32 @ Space 1165
.hword 32 @ Space 1166
.hword 32 @ Space 1167
@@ Row 2 1168
.hword 32 @ Space 1169
.hword 32 @ Space 1170
.hword 32 @ Space 1171
.hword 32 @ Space 1172
.hword 32 @ Space 1173
.hword 32 @ Space 1174
.hword 32 @ Space 1175
.hword 32 @ Space 1176
.hword 32 @ Space 1177
.hword 32 @ Space 1178
.hword 32 @ Space 1179
.hword 32 @ Space 1180
.hword 32 @ Space 1181
.hword 32 @ Space 1182
.hword 32 @ Space 1183
.hword 32 @ Space 1184
.hword 32 @ Space 1185
.hword 32 @ Space 1186
.hword 32 @ Space 1187
.hword 32 @ Space 1188
.hword 32 @ Space 1189
.hword 32 @ Space 1190
.hword 32 @ Space 1191
.hword 32 @ Space 1192
.hword 32 @ Space 1193
.hword 32 @ Space 1194
.hword 32 @ Space 1195
.hword 32 @ Space 1196
.hword 32 @ Space 1197
.hword 32 @ Space 1198
.hword 32 @ Space 1199
.hword 32 @ Space 1200
@@ Row 3 1201
.hword 32 @ Space 1202
.hword 32 @ Space 1203
.hword 32 @ Space 1204
.hword 32 @ Space 1205
.hword 32 @ Space 1206
.hword 32 @ Space 1207
.hword 32 @ Space 1208
.hword 32 @ Space 1209
.hword 73 @ I 1210
.hword 73 @ I 1211
.hword 73 @ I 1212
.hword 73 @ I 1213
.hword 77 @ M 1214
.hword 84 @ T 1215
.hword 84 @ T 1216
.hword 84 @ T 1217
.hword 68 @ D 1218
.hword 68 @ D 1219
.hword 76 @ L 1220
.hword 76 @ L 1221
.hword 76 @ L 1222
.hword 76 @ L 1223
.hword 76 @ L 1224
.hword 76 @ L 1225
.hword 32 @ Space 1226
.hword 32 @ Space 1227
.hword 32 @ Space 1228
.hword 32 @ Space 1229
.hword 32 @ Space 1230
.hword 32 @ Space 1231
.hword 32 @ Space 1232
.hword 32 @ Space 1233
@@ Row 8 1234
.hword 32 @ Space 1235
.hword 32 @ Space 1236
.hword 32 @ Space 1237
.hword 32 @ Space 1238
.hword 32 @ Space 1239
.hword 32 @ Space 1240
.hword 32 @ Space 1241
.hword 32 @ Space 1242
.hword 32 @ Space 1243
.hword 32 @ Space 1244
.hword 32 @ Space 1245
.hword 32 @ Space 1246
.hword 32 @ Space 1247
.hword 32 @ Space 1248
.hword 32 @ Space 1249
.hword 32 @ Space 1250
.hword 32 @ Space 1251
.hword 32 @ Space 1252
.hword 32 @ Space 1253
.hword 32 @ Space 1254
.hword 32 @ Space 1255
.hword 32 @ Space 1256
.hword 32 @ Space 1257
.hword 32 @ Space 1258
.hword 32 @ Space 1259
.hword 32 @ Space 1260
.hword 32 @ Space 1261
.hword 32 @ Space 1262
.hword 32 @ Space 1263
.hword 32 @ Space 1264
.hword 32 @ Space 1265
.hword 32 @ Space 1266
@@ Row 4 1267
.hword 32 @ Space 1268
.hword 32 @ Space 1269
.hword 32 @ Space 1270
.hword 32 @ Space 1271
.hword 32 @ Space 1272
.hword 32 @ Space 1273
.hword 48 @ 0 1274
.hword 98 @ b 1275
.hword 48 @ 0 1276
.hword 48 @ 0 1277
.hword 48 @ 0 1278
.hword 48 @ 0 1279
.hword 48 @ 0 1280
.hword 48 @ 0 1281
.hword 48 @ 0 1282
.hword 48 @ 0 1283
.hword 48 @ 0 1284
.hword 48 @ 0 1285
.hword 48 @ 0 1286
.hword 48 @ 0 1287
.hword 48 @ 0 1288
.hword 48 @ 0 1289
.hword 48 @ 0 1290
.hword 48 @ 0 1291
.hword 32 @ Space 1292
.hword 32 @ Space 1293
.hword 32 @ Space 1294
.hword 32 @ Space 1295
.hword 32 @ Space 1296
.hword 32 @ Space 1297
.hword 32 @ Space 1298
.hword 32 @ Space 1299
@@ Row 9 1300
.hword 32 @ Space 1301
.hword 32 @ Space 1302
.hword 32 @ Space 1303
.hword 32 @ Space 1304
.hword 32 @ Space 1305
.hword 32 @ Space 1306
.hword 32 @ Space 1307
.hword 32 @ Space 1308
.hword 32 @ Space 1309
.hword 32 @ Space 1310
.hword 32 @ Space 1311
.hword 32 @ Space 1312
.hword 32 @ Space 1313
.hword 32 @ Space 1314
.hword 32 @ Space 1315
.hword 32 @ Space 1316
.hword 32 @ Space 1317
.hword 32 @ Space 1318
.hword 32 @ Space 1319
.hword 32 @ Space 1320
.hword 32 @ Space 1321
.hword 32 @ Space 1322
.hword 32 @ Space 1323
.hword 94 @ ^ 1324
.hword 32 @ Space 1325
.hword 32 @ Space 1326
.hword 32 @ Space 1327
.hword 32 @ Space 1328
.hword 32 @ Space 1329
.hword 32 @ Space 1330
.hword 32 @ Space 1331
.hword 32 @ Space 1332
@@ Row 10 1333
.hword 32 @ Space 1334
.hword 32 @ Space 1335
.hword 32 @ Space 1336
.hword 32 @ Space 1337
.hword 32 @ Space 1338
.hword 32 @ Space 1339
.hword 32 @ Space 1340
.hword 32 @ Space 1341
.hword 32 @ Space 1342
.hword 32 @ Space 1343
.hword 32 @ Space 1344
.hword 32 @ Space 1345
.hword 32 @ Space 1346
.hword 32 @ Space 1347
.hword 32 @ Space 1348
.hword 32 @ Space 1349
.hword 32 @ Space 1350
.hword 32 @ Space 1351
.hword 32 @ Space 1352
.hword 32 @ Space 1353
.hword 32 @ Space 1354
.hword 32 @ Space 1355
.hword 32 @ Space 1356
.hword 32 @ Space 1357
.hword 32 @ Space 1358
.hword 32 @ Space 1359
.hword 32 @ Space 1360
.hword 32 @ Space 1361
.hword 32 @ Space 1362
.hword 32 @ Space 1363
.hword 32 @ Space 1364
.hword 32 @ Space 1365
@@ Row 11 1366
.hword 32 @ Space 1367
.hword 32 @ Space 1368
.hword 76 @ L 1369
.hword 32 @ Space 1370
.hword 61 @ = 1371
.hword 32 @ Space 1372
.hword 83 @ S 1373
.hword 111 @ o 1374
.hword 117 @ u 1375
.hword 110 @ n 1376
.hword 100 @ d 1377
.hword 32 @ Space 1378
.hword 76 @ L 1379
.hword 101 @ e 1380
.hword 110 @ n 1381
.hword 103 @ g 1382
.hword 116 @ t 1383
.hword 104 @ h 1384
.hword 32 @ Space 1385
.hword 32 @ Space 1386
.hword 32 @ Space 1387
.hword 32 @ Space 1388
.hword 32 @ Space 1389
.hword 32 @ Space 1390
.hword 32 @ Space 1391
.hword 32 @ Space 1392
.hword 32 @ Space 1393
.hword 32 @ Space 1394
.hword 32 @ Space 1395
.hword 32 @ Space 1396
.hword 32 @ Space 1397
.hword 32 @ Space 1398
@@ Row 12 1399
.hword 32 @ Space 1400
.hword 32 @ Space 1401
.hword 68 @ D 1402
.hword 32 @ Space 1403
.hword 61 @ = 1404
.hword 32 @ Space 1405
.hword 87 @ W 1406
.hword 97 @ a 1407
.hword 118 @ v 1408
.hword 101 @ e 1409
.hword 32 @ Space 1410
.hword 68 @ D 1411
.hword 117 @ u 1412
.hword 116 @ t 1413
.hword 121 @ y 1414
.hword 32 @ Space 1415
.hword 67 @ C 1416
.hword 121 @ y 1417
.hword 99 @ c 1418
.hword 108 @ l 1419
.hword 101 @ e 1420
.hword 32 @ Space 1421
.hword 32 @ Space 1422
.hword 32 @ Space 1423
.hword 32 @ Space 1424
.hword 32 @ Space 1425
.hword 32 @ Space 1426
.hword 32 @ Space 1427
.hword 32 @ Space 1428
.hword 32 @ Space 1429
.hword 32 @ Space 1430
.hword 32 @ Space 1431
@@ Row 13 1432
.hword 32 @ Space 1433
.hword 32 @ Space 1434
.hword 84 @ T 1435
.hword 32 @ Space 1436
.hword 61 @ = 1437
.hword 32 @ Space 1438
.hword 69 @ E 1439
.hword 110 @ n 1440
.hword 118 @ v 1441
.hword 101 @ e 1442
.hword 108 @ l 1443
.hword 111 @ o 1444
.hword 112 @ p 1445
.hword 101 @ e 1446
.hword 32 @ Space 1447
.hword 83 @ S 1448
.hword 116 @ t 1449
.hword 101 @ e 1450
.hword 112 @ p 1451
.hword 32 @ Space 1452
.hword 84 @ T 1453
.hword 105 @ i 1454
.hword 109 @ m 1455
.hword 101 @ e 1456
.hword 32 @ Space 1457
.hword 32 @ Space 1458
.hword 32 @ Space 1459
.hword 32 @ Space 1460
.hword 32 @ Space 1461
.hword 32 @ Space 1462
.hword 32 @ Space 1463
.hword 32 @ Space 1464
@@ Row 15 1465
.hword 32 @ Space 1466
.hword 32 @ Space 1467
.hword 77 @ M 1468
.hword 32 @ Space 1469
.hword 61 @ = 1470
.hword 32 @ Space 1471
.hword 69 @ E 1472
.hword 110 @ n 1473
.hword 118 @ v 1474
.hword 101 @ e 1475
.hword 108 @ l 1476
.hword 111 @ o 1477
.hword 112 @ p 1478
.hword 101 @ e 1479
.hword 32 @ Space 1480
.hword 77 @ M 1481
.hword 111 @ o 1482
.hword 100 @ d 1483
.hword 101 @ e 1484
.hword 32 @ Space 1485
.hword 32 @ Space 1486
.hword 32 @ Space 1487
.hword 32 @ Space 1488
.hword 32 @ Space 1489
.hword 32 @ Space 1490
.hword 32 @ Space 1491
.hword 32 @ Space 1492
.hword 32 @ Space 1493
.hword 32 @ Space 1494
.hword 32 @ Space 1495
.hword 32 @ Space 1496
.hword 32 @ Space 1497
@@ Row 16 1498
.hword 32 @ Space 1499
.hword 32 @ Space 1500
.hword 73 @ I 1501
.hword 32 @ Space 1502
.hword 61 @ = 1503
.hword 32 @ Space 1504
.hword 73 @ I 1505
.hword 110 @ n 1506
.hword 105 @ i 1507
.hword 116 @ t 1508
.hword 105 @ i 1509
.hword 97 @ a 1510
.hword 108 @ l 1511
.hword 32 @ Space 1512
.hword 69 @ E 1513
.hword 110 @ n 1514
.hword 118 @ v 1515
.hword 101 @ e 1516
.hword 108 @ l 1517
.hword 111 @ o 1518
.hword 112 @ p 1519
.hword 101 @ e 1520
.hword 32 @ Space 1521
.hword 86 @ V 1522
.hword 97 @ a 1523
.hword 108 @ l 1524
.hword 117 @ u 1525
.hword 101 @ e 1526
.hword 32 @ Space 1527
.hword 32 @ Space 1528
.hword 32 @ Space 1529
.hword 32 @ Space 1530
@@ Row 17 1531
.hword 32 @ Space 1532
.hword 32 @ Space 1533
.hword 32 @ Space 1534
.hword 32 @ Space 1535
.hword 32 @ Space 1536
.hword 32 @ Space 1537
.hword 32 @ Space 1538
.hword 32 @ Space 1539
.hword 32 @ Space 1540
.hword 32 @ Space 1541
.hword 32 @ Space 1542
.hword 32 @ Space 1543
.hword 32 @ Space 1544
.hword 32 @ Space 1545
.hword 32 @ Space 1546
.hword 32 @ Space 1547
.hword 32 @ Space 1548
.hword 32 @ Space 1549
.hword 32 @ Space 1550
.hword 32 @ Space 1551
.hword 32 @ Space 1552
.hword 32 @ Space 1553
.hword 32 @ Space 1554
.hword 32 @ Space 1555
.hword 32 @ Space 1556
.hword 32 @ Space 1557
.hword 32 @ Space 1558
.hword 32 @ Space 1559
.hword 32 @ Space 1560
.hword 32 @ Space 1561
.hword 32 @ Space 1562
.hword 32 @ Space 1563
@@ Row 18 1564
.hword 32 @ Space 1565
.hword 32 @ Space 1566
.hword 32 @ Space 1567
.hword 32 @ Space 1568
.hword 32 @ Space 1569
.hword 32 @ Space 1570
.hword 32 @ Space 1571
.hword 32 @ Space 1572
.hword 32 @ Space 1573
.hword 32 @ Space 1574
.hword 32 @ Space 1575
.hword 32 @ Space 1576
.hword 32 @ Space 1577
.hword 32 @ Space 1578
.hword 32 @ Space 1579
.hword 32 @ Space 1580
.hword 32 @ Space 1581
.hword 32 @ Space 1582
.hword 32 @ Space 1583
.hword 32 @ Space 1584
.hword 32 @ Space 1585
.hword 32 @ Space 1586
.hword 32 @ Space 1587
.hword 32 @ Space 1588
.hword 32 @ Space 1589
.hword 32 @ Space 1590
.hword 32 @ Space 1591
.hword 32 @ Space 1592
.hword 32 @ Space 1593
.hword 32 @ Space 1594
.hword 32 @ Space 1595
.hword 32 @ Space 1596
@@ Row 19 1597
.hword 32 @ Space 1598
.hword 32 @ Space 1599
.hword 32 @ Space 1600
.hword 32 @ Space 1601
.hword 80 1602
.hword 114 1603
.hword 101 1604
.hword 115 1605
.hword 115 1606
.hword 32 @space 1607
.hword 83 1608
.hword 116 1609
.hword 97 1610
.hword 114 1611
.hword 116 1612
.hword 32 @space 1613
.hword 116 1614
.hword 111 1615
.hword 32 @ Space 1616
.hword 98 1617
.hword 101 1618
.hword 103 1619
.hword 105 1620
.hword 110 1621
.hword 46 1622
.hword 32 @ Space 1623
.hword 32 @ Space 1624
.hword 32 @ Space 1625
.hword 32 @ Space 1626
.hword 32 @ Space 1627
.hword 32 @ Space 1628
.hword 32 @ Space 1629
@@ Row 20 1630
.hword 32 @ Space 1631
.hword 32 @ Space 1632
.hword 32 @ Space 1633
.hword 32 @ Space 1634
.hword 32 @ Space 1635
.hword 32 @ Space 1636
.hword 32 @ Space 1637
.hword 32 @ Space 1638
.hword 32 @ Space 1639
.hword 32 @ Space 1640
.hword 32 @ Space 1641
.hword 32 @ Space 1642
.hword 32 @ Space 1643
.hword 32 @ Space 1644
.hword 32 @ Space 1645
.hword 32 @ Space 1646
.hword 32 @ Space 1647
.hword 32 @ Space 1648
.hword 32 @ Space 1649
.hword 32 @ Space 1650
.hword 32 @ Space 1651
.hword 32 @ Space 1652
.hword 32 @ Space 1653
.hword 32 @ Space 1654
.hword 32 @ Space 1655
.hword 32 @ Space 1656
.hword 32 @ Space 1657
.hword 32 @ Space 1658
.hword 32 @ Space 1659
.hword 32 @ Space 1660
.hword 32 @ Space 1661
.hword 32 @ Space 1662
@@ Row 21 1663
.hword 32 @ Space 1664
.hword 32 @ Space 1665
.hword 32 @ Space 1666
.hword 32 @ Space 1667
.hword 32 @ Space 1668
.hword 32 @ Space 1669
.hword 32 @ Space 1670
.hword 32 @ Space 1671
.hword 32 @ Space 1672
.hword 32 @ Space 1673
.hword 32 @ Space 1674
.hword 32 @ Space 1675
.hword 32 @ Space 1676
.hword 32 @ Space 1677
.hword 32 @ Space 1678
.hword 32 @ Space 1679
.hword 32 @ Space 1680
.hword 32 @ Space 1681
.hword 32 @ Space 1682
.hword 32 @ Space 1683
.hword 32 @ Space 1684
.hword 32 @ Space 1685
.hword 32 @ Space 1686
.hword 32 @ Space 1687
.hword 32 @ Space 1688
.hword 32 @ Space 1689
.hword 32 @ Space 1690
.hword 32 @ Space 1691
.hword 32 @ Space 1692
.hword 32 @ Space 1693
.hword 32 @ Space 1694
.hword 32 @ Space 1695
@@ Row 22 @@ LAST VISIBLE W/O SCROLLING 1696
.hword 32 @ Space 1697
.hword 60 @ Space 1698
.hword 61 @ Space 1699
.hword 32 @ Space 1700
.hword 80 @ P 1701
.hword 114 @ r 1702
.hword 101 @ e 1703
.hword 115 @ s 1704
.hword 115 @ s 1705
.hword 32 @ Space 1706
.hword 66 @ B 1707
.hword 32 @ Space 1708
.hword 116 @ t 1709
.hword 111 @ o 1710
.hword 32 @ Space 1711
.hword 116 @ t 1712
.hword 111 @ o 1713
.hword 103 @ g 1714
.hword 103 @ g 1715
.hword 108 @ l 1716
.hword 101 @ e 1717
.hword 32 @ Space 1718
.hword 108 @ l 1719
.hword 101 @ e 1720
.hword 110 @ n 1721
.hword 32 @ Space 1722
.hword 102 @ f 1723
.hword 108 @ l 1724
.hword 103 @ g 1725
@@ Row 23 1726
.hword 32 @ Space 1727
.hword 32 @ Space 1728
.hword 32 @ Space 1729
.hword 32 @ Space 1730
.hword 32 @ Space 1731
.hword 32 @ Space 1732
.hword 32 @ Space 1733
.hword 32 @ Space 1734
.hword 32 @ Space 1735
.hword 32 @ Space 1736
.hword 32 @ Space 1737
.hword 32 @ Space 1738
.hword 32 @ Space 1739
.hword 32 @ Space 1740
.hword 32 @ Space 1741
.hword 32 @ Space 1742
.hword 32 @ Space 1743
.hword 32 @ Space 1744
.hword 32 @ Space 1745
.hword 32 @ Space 1746
.hword 32 @ Space 1747
.hword 32 @ Space 1748
.hword 32 @ Space 1749
.hword 32 @ Space 1750
.hword 32 @ Space 1751
.hword 32 @ Space 1752
.hword 32 @ Space 1753
.hword 32 @ Space 1754
.hword 32 @ Space 1755
.hword 32 @ Space 1756
.hword 32 @ Space 1757
.hword 32 @ Space 1758
@@ Row 24 1759
.hword 32 @ Space 1760
.hword 32 @ Space 1761
.hword 32 @ Space 1762
.hword 32 @ Space 1763
.hword 32 @ Space 1764
.hword 32 @ Space 1765
.hword 32 @ Space 1766
.hword 32 @ Space 1767
.hword 32 @ Space 1768
.hword 32 @ Space 1769
.hword 32 @ Space 1770
.hword 32 @ Space 1771
.hword 32 @ Space 1772
.hword 32 @ Space 1773
.hword 32 @ Space 1774
.hword 32 @ Space 1775
.hword 32 @ Space 1776
.hword 32 @ Space 1777
.hword 32 @ Space 1778
.hword 32 @ Space 1779
.hword 32 @ Space 1780
.hword 32 @ Space 1781
.hword 32 @ Space 1782
.hword 32 @ Space 1783
.hword 32 @ Space 1784
.hword 32 @ Space 1785
.hword 32 @ Space 1786
.hword 32 @ Space 1787
.hword 32 @ Space 1788
.hword 32 @ Space 1789
.hword 32 @ Space 1790
.hword 32 @ Space 1791
@@ Row 25 1792
.hword 32 @ Space 1793
.hword 32 @ Space 1794
.hword 32 @ Space 1795
.hword 32 @ Space 1796
.hword 32 @ Space 1797
.hword 32 @ Space 1798
.hword 32 @ Space 1799
.hword 32 @ Space 1800
.hword 32 @ Space 1801
.hword 32 @ Space 1802
.hword 32 @ Space 1803
.hword 32 @ Space 1804
.hword 32 @ Space 1805
.hword 32 @ Space 1806
.hword 32 @ Space 1807
.hword 32 @ Space 1808
.hword 32 @ Space 1809
.hword 32 @ Space 1810
.hword 32 @ Space 1811
.hword 32 @ Space 1812
.hword 32 @ Space 1813
.hword 32 @ Space 1814
.hword 32 @ Space 1815
.hword 32 @ Space 1816
.hword 32 @ Space 1817
.hword 32 @ Space 1818
.hword 32 @ Space 1819
.hword 32 @ Space 1820
.hword 32 @ Space 1821
.hword 32 @ Space 1822
.hword 32 @ Space 1823
.hword 32 @ Space 1824
@@ Row 26 1825
.hword 32 @ Space 1826
.hword 32 @ Space 1827
.hword 32 @ Space 1828
.hword 32 @ Space 1829
.hword 32 @ Space 1830
.hword 32 @ Space 1831
.hword 32 @ Space 1832
.hword 32 @ Space 1833
.hword 32 @ Space 1834
.hword 32 @ Space 1835
.hword 32 @ Space 1836
.hword 32 @ Space 1837
.hword 32 @ Space 1838
.hword 32 @ Space 1839
.hword 32 @ Space 1840
.hword 32 @ Space 1841
.hword 32 @ Space 1842
.hword 32 @ Space 1843
.hword 32 @ Space 1844
.hword 32 @ Space 1845
.hword 32 @ Space 1846
.hword 32 @ Space 1847
.hword 32 @ Space 1848
.hword 32 @ Space 1849
.hword 32 @ Space 1850
.hword 32 @ Space 1851
.hword 32 @ Space 1852
.hword 32 @ Space 1853
.hword 32 @ Space 1854
.hword 32 @ Space 1855
.hword 32 @ Space 1856
.hword 32 @ Space 1857
@@ Row 27 1858
.hword 32 @ Space 1859
.hword 32 @ Space 1860
.hword 32 @ Space 1861
.hword 32 @ Space 1862
.hword 32 @ Space 1863
.hword 32 @ Space 1864
.hword 32 @ Space 1865
.hword 32 @ Space 1866
.hword 32 @ Space 1867
.hword 32 @ Space 1868
.hword 32 @ Space 1869
.hword 32 @ Space 1870
.hword 32 @ Space 1871
.hword 32 @ Space 1872
.hword 32 @ Space 1873
.hword 32 @ Space 1874
.hword 32 @ Space 1875
.hword 32 @ Space 1876
.hword 32 @ Space 1877
.hword 32 @ Space 1878
.hword 32 @ Space 1879
.hword 32 @ Space 1880
.hword 32 @ Space 1881
.hword 32 @ Space 1882
.hword 32 @ Space 1883
.hword 32 @ Space 1884
.hword 32 @ Space 1885
.hword 32 @ Space 1886
.hword 32 @ Space 1887
.hword 32 @ Space 1888
.hword 32 @ Space 1889
.hword 32 @ Space 1890
@@ Row 28 1891
.hword 32 @ Space 1892
.hword 32 @ Space 1893
.hword 32 @ Space 1894
.hword 32 @ Space 1895
.hword 32 @ Space 1896
.hword 32 @ Space 1897
.hword 32 @ Space 1898
.hword 32 @ Space 1899
.hword 32 @ Space 1900
.hword 32 @ Space 1901
.hword 32 @ Space 1902
.hword 32 @ Space 1903
.hword 32 @ Space 1904
.hword 32 @ Space 1905
.hword 32 @ Space 1906
.hword 32 @ Space 1907
.hword 32 @ Space 1908
.hword 32 @ Space 1909
.hword 32 @ Space 1910
.hword 32 @ Space 1911
.hword 32 @ Space 1912
.hword 32 @ Space 1913
.hword 32 @ Space 1914
.hword 32 @ Space 1915
.hword 32 @ Space 1916
.hword 32 @ Space 1917
.hword 32 @ Space 1918
.hword 32 @ Space 1919
.hword 32 @ Space 1920
.hword 32 @ Space 1921
.hword 32 @ Space 1922
.hword 32 @ Space 1923
@@ Row 29 1924
.hword 32 @ Space 1925
.hword 32 @ Space 1926
.hword 32 @ Space 1927
.hword 32 @ Space 1928
.hword 32 @ Space 1929
.hword 32 @ Space 1930
.hword 32 @ Space 1931
.hword 32 @ Space 1932
.hword 32 @ Space 1933
.hword 32 @ Space 1934
.hword 32 @ Space 1935
.hword 32 @ Space 1936
.hword 32 @ Space 1937
.hword 32 @ Space 1938
.hword 32 @ Space 1939
.hword 32 @ Space 1940
.hword 32 @ Space 1941
.hword 32 @ Space 1942
.hword 32 @ Space 1943
.hword 32 @ Space 1944
.hword 32 @ Space 1945
.hword 32 @ Space 1946
.hword 32 @ Space 1947
.hword 32 @ Space 1948
.hword 32 @ Space 1949
.hword 32 @ Space 1950
.hword 32 @ Space 1951
.hword 32 @ Space 1952
.hword 32 @ Space 1953
.hword 32 @ Space 1954
.hword 32 @ Space 1955
.hword 32 @ Space 1956
@@ Row 30 1957
.hword 32 @ Space 1958
.hword 32 @ Space 1959
.hword 32 @ Space 1960
.hword 32 @ Space 1961
.hword 32 @ Space 1962
.hword 32 @ Space 1963
.hword 32 @ Space 1964
.hword 32 @ Space 1965
.hword 32 @ Space 1966
.hword 32 @ Space 1967
.hword 32 @ Space 1968
.hword 32 @ Space 1969
.hword 32 @ Space 1970
.hword 32 @ Space 1971
.hword 32 @ Space 1972
.hword 32 @ Space 1973
.hword 32 @ Space 1974
.hword 32 @ Space 1975
.hword 32 @ Space 1976
.hword 32 @ Space 1977
.hword 32 @ Space 1978
.hword 32 @ Space 1979
.hword 32 @ Space 1980
.hword 32 @ Space 1981
.hword 32 @ Space 1982
.hword 32 @ Space 1983
.hword 32 @ Space 1984
.hword 32 @ Space 1985
.hword 32 @ Space 1986
.hword 32 @ Space 1987
.hword 32 @ Space 1988
.hword 32 @ Space 1989
@@ Row 31 1990
.hword 32 @ Space 1991
.hword 32 @ Space 1992
.hword 32 @ Space 1993
.hword 32 @ Space 1994
.hword 32 @ Space 1995
.hword 32 @ Space 1996
.hword 32 @ Space 1997
.hword 32 @ Space 1998
.hword 32 @ Space 1999
.hword 32 @ Space 2000
.hword 32 @ Space 2001
.hword 32 @ Space 2002
.hword 32 @ Space 2003
.hword 32 @ Space 2004
.hword 32 @ Space 2005
.hword 32 @ Space 2006
.hword 32 @ Space 2007
.hword 32 @ Space 2008
.hword 32 @ Space 2009
.hword 32 @ Space 2010
.hword 32 @ Space 2011
.hword 32 @ Space 2012
.hword 32 @ Space 2013
.hword 32 @ Space 2014
.hword 32 @ Space 2015
.hword 32 @ Space 2016
.hword 32 @ Space 2017
.hword 32 @ Space 2018
.hword 32 @ Space 2019
.hword 32 @ Space 2020
.hword 32 @ Space 2021
.hword 32 @ Space 2022
@@ 2023
.hword 32 @ Space 2024
.hword 32 @ Space 2025
.hword 32 @ Space 2026
.hword 32 @ Space 2027
.hword 32 @ Space 2028
.hword 32 @ Space 2029
.hword 32 @ Space 2030
.hword 32 @ Space 2031
.hword 32 @ Space 2032
.hword 32 @ Space 2033
.hword 32 @ Space 2034
.hword 32 @ Space 2035
.hword 32 @ Space 2036
.hword 32 @ Space 2037
.hword 32 @ Space 2038
.hword 32 @ Space 2039
.hword 32 @ Space 2040
.hword 32 @ Space 2041
.hword 32 @ Space 2042
.hword 32 @ Space 2043
.hword 32 @ Space 2044
.hword 32 @ Space 2045
.hword 32 @ Space 2046
.hword 32 @ Space 2047
.hword 32 @ Space 2048
.hword 32 @ Space 2049
.hword 32 @ Space 2050
.hword 32 @ Space 2051
.hword 32 @ Space 2052
.hword 32 @ Space 2053
.hword 32 @ Space 2054
.hword 32 @ Space 2055
2056 93
setupBit: 2057 94 setupBit:
.hword 0b0000000000000001 @ Don't change unless you want the cursor to be offset wrong 2058 95 .hword 0b0000000000000001 @ Don't change unless you want the cursor to be offset wrong
soundRegUsage: 2059 96 soundRegUsage:
.hword 0 2060 97 .hword 0
@ vim: syntax=armasm 2061 98 @ vim: syntax=armasm
2062 99
#include "defines.h" 1 1 #include "defines.h"
.arm 2 2 .arm
.align 3 3 .align
.text 4 4 .text
.global showText 5 5 .global showText
.global updateSetup 6 6 .global updateSetup
7 7
@@ 8 8 @@
@ r11 = map flag 9 9 @ r11 = map flag
@@ 10 10 @@
showText: 11 11 showText:
push {r0-r10,r12,lr} 12 12 push {r0-r10,r12,lr}
13 13
@ Wait for VBlank before we continue 14 14 @ Wait for VBlank before we continue
swi 0x50000 15 15 swi 0x50000
16 16
mov r0, #PAL_RAM 17 17 mov r0, #PAL_RAM
ldr r1, =fontPAL 18 18 ldr r1, =fontPAL
mov r2, #1 19 19 mov r2, #1
@ Load the palette 20 20 @ Load the palette
fontPALLoop: 21 21 fontPALLoop:
ldmia r1!, { r3,r4,r5,r6,r7,r8,r9,r10 } 22 22 ldmia r1!, { r3,r4,r5,r6,r7,r8,r9,r10 }
stmia r0!, { r3,r4,r5,r6,r7,r8,r9,r10 } 23 23 stmia r0!, { r3,r4,r5,r6,r7,r8,r9,r10 }
subs r2, r2, #1 24 24 subs r2, r2, #1
bne fontPALLoop 25 25 bne fontPALLoop
ldr r0, =VRAM 26 26 ldr r0, =VRAM
ldr r1, =fontBMP 27 27 ldr r1, =fontBMP
mov r2, #0x82 28 28 mov r2, #0x82
@ Load the bitmap 29 29 @ Load the bitmap
fontBMPLoop: 30 30 fontBMPLoop:
ldmia r1!, { r3,r4,r5,r6,r7,r8,r9,r10 } 31 31 ldmia r1!, { r3,r4,r5,r6,r7,r8,r9,r10 }
stmia r0!, { r3,r4,r5,r6,r7,r8,r9,r10 } 32 32 stmia r0!, { r3,r4,r5,r6,r7,r8,r9,r10 }
subs r2, r2, #1 33 33 subs r2, r2, #1
bne fontBMPLoop 34 34 bne fontBMPLoop
35 35
@ prepare to load tile map into VRAM 36 36 @ prepare to load tile map into VRAM
textLoad: 37 37 textLoad:
ldr r0, =BG2CNT 38 38 ldr r0, =BG2CNT
ldr r1, =0b000001000000000000 39 39 ldr r1, =0b000001000000000000
strh r1, [r0] 40 40 strh r1, [r0]
textMap: 41 41 textMap:
@ Load the appropriate screen into the Background 2 map 42 42 @ Load the appropriate screen into the Background 2 map
ldr r0, =0x06008000 @ BG2 Map Location 43 43 ldr r0, =0x06008000 @ BG2 Map Location
@ zero means setup, anything else is the synth 44 44 @ zero means setup, anything else is the synth
cmp r11, #0 45 45 cmp r11, #0
ldreq r1, =setupText 46 46 ldreq r1, =setupText
ldrne r1, =synthText 47 47 ldrne r1, =synthText
mov r12, #1024 48 48 mov r12, #1024
@ Load the tile map into VRAM 49 49 @ Load the tile map into VRAM
textMapLoop: 50 50 textMapLoop:
ldrh r3, [r1],#2 51 51 ldrb r3, [r1],#1
strh r3, [r0],#2 52 52 strh r3, [r0],#2
subs r12, r12,#1 53 53 subs r12, r12,#1
bne textMapLoop 54 54 bne textMapLoop
pop {r0-r10,r12,lr} 55 55 pop {r0-r10,r12,lr}
bx lr 56 56 bx lr
57 57
binaryLocate: @ returns address of b in r5 58 58 binaryLocate: @ returns address of b in r5
push {r0-r4,r6-r12,lr} 59 59 push {r0-r4,r6-r12,lr}
ldr r5, =setupText @ Load setup bg map 60 60 ldr r5, =setupText @ Load setup bg map
binaryLocateLoop: 61 61 binaryLocateLoop:
ldrh r0,[r5],#2 62 62 ldrb r0,[r5],#1
cmp r0,#98 63 63 cmp r0,#98
bne binaryLocateLoop 64 64 bne binaryLocateLoop
sub r5, r5, #2 65 65 sub r5, r5, #1
pop {r0-r4,r6-r12,lr} 66 66 pop {r0-r4,r6-r12,lr}
bx lr 67 67 bx lr
68 68
updateSetup: @ updates the bg map to show the correct bits on the screen 69 69 updateSetup: @ updates the bg map to show the correct bits on the screen
push {r0-r12,lr} 70 70 push {r0-r12,lr}
ldr r0, =notesettings 71 71 ldr r0, =notesettings
ldrh r2,[r0] 72 72 ldrh r2,[r0]
eor r1, r1, r1 73 73 eor r1, r1, r1
bl binaryLocate 74 74 bl binaryLocate
add r5, r5, #32 @ r5 is bit 0, sub 2 to move down a bit 75 75 add r5, r5, #16 @ r5 is bit 0, sub 2 to move down a bit
updateLoop: 76 76 updateLoop:
77 77
and r3, r2, #1 @ get bit to test 78 78 and r3, r2, #1 @ get bit to test
mov r2, r2, ROR #1 @ move r2 to next bit we will need 79 79 mov r2, r2, ROR #1 @ move r2 to next bit we will need
tst r3, #1 80 80 tst r3, #1
movne r4, #49 @ 49 is the code for "1" 81 81 movne r4, #49 @ 49 is the code for "1"
moveq r4, #48 @ 48 is the code for "0" 82 82 moveq r4, #48 @ 48 is the code for "0"
strh r4, [r5] @ update the bg map 83 83 strb r4, [r5] @ update the bg map
84 84
sub r5, r5, #2 @ next entry to update 85 85 sub r5, r5, #1 @ next entry to update
add r1, #1 86 86 add r1, #1
cmp r1, #16 87 87 cmp r1, #16
88 88
bne updateLoop 89 89 bne updateLoop
90 90
bl displayLengthFlag 91 91 bl displayLengthFlag
.arm 1 1 .arm
.align 2 2 .align
.text 3 3 .text
4 4
.global keyCheckSetup 5 5 .global keyCheckSetup
.global displayLengthFlag 6 6 .global displayLengthFlag
7 7
#include "defines.h" 8 8 #include "defines.h"
9 9
cursorLocate: @ returns address of ^ in r5 10 10 cursorLocate: @ returns address of ^ in r5
push {r0-r4,r6-r12,lr} 11 11 push {r0-r4,r6-r12,lr}
ldr r5, =setupText @ Load setup bg map 12 12 ldr r5, =setupText @ Load setup bg map
cursorLocateLoop: 13 13 cursorLocateLoop:
ldrh r0,[r5],#2 14 14 ldrb r0,[r5],#1
cmp r0,#94 15 15 cmp r0,#94
bne cursorLocateLoop 16 16 bne cursorLocateLoop
sub r5, r5, #2 17 17 sub r5, r5, #1
pop {r0-r4,r6-r12,lr} 18 18 pop {r0-r4,r6-r12,lr}
bx lr 19 19 bx lr
20 20
cursorJump: 21 21 cursorJump:
push {r0-r12} 22 22 push {r0-r12}
23 23
mov r0,#32 24 24 mov r0,#14
strh r0,[r5] @ erase cursor 25 25 strb r0,[r5] @ erase cursor
26 26
cmp r4,#4 27 27 cmp r4,#4
addeq r5,r5,#30 @redraw in proper place 28 28 addeq r5,r5,#15 @redraw in proper place
moveq r2,#0x0001 29 29 moveq r2,#0x0001
subne r5,r5,#30 30 30 subne r5,r5,#15
movne r2,#0x8000 31 31 movne r2,#0x8000
mov r0,#94 32 32 mov r0,#94
strh r0,[r5] 33 33 strb r0,[r5]
strh r2,[r1] 34 34 strh r2,[r1]
35 35
36 36
pop {r0-r12} 37 37 pop {r0-r12}
b cursorMoveExit 38 38 b cursorMoveExit
39 39
cursorMove: 40 40 cursorMove:
push {r0-r12,lr} 41 41 push {r0-r12,lr}
42 42
bl keySet @ marks key as down 43 43 bl keySet @ marks key as down
cmp r7, #1 44 44 cmp r7, #1
beq cursorMoveExit @ branch if down keeping cursor in place if key is held 45 45 beq cursorMoveExit @ branch if down keeping cursor in place if key is held
46 46
@@@ Do cursor processes to move if tests are passed 47 47 @@@ Do cursor processes to move if tests are passed
bl cursorLocate @ returns cursor address in r5 48 48 bl cursorLocate @ returns cursor address in r5
49 49
ldr r1, =setupBit @ Load setupBit so se can keep track of what bit we're editing 50 50 ldr r1, =setupBit @ Load setupBit so se can keep track of what bit we're editing
ldrh r2, [r1] @ | and make sure we aren't exceeding bounds 51 51 ldrh r2, [r1] @ | and make sure we aren't exceeding bounds
cmp r4, #4 @ | 52 52 cmp r4, #4 @ |
cmpeq r2, #0x8000 @ | 53 53 cmpeq r2, #0x8000 @ |
beq cursorJump @ | 54 54 beq cursorJump @ |
cmp r4, #12 @ | 55 55 cmp r4, #12 @ |
cmpeq r2, #0x0001 @ | 56 56 cmpeq r2, #0x0001 @ |
beq cursorJump @ / 57 57 beq cursorJump @ /
58 58
mov r0, #32 @ erase current location of ^ 59 59 mov r0, #16 @ erase current location of ^
strh r0, [r5] @ / 60 60 strb r0, [r5] @ /
cmp r4, #4 @ Draw new position of ^ and keep track of current bit 61 61 cmp r4, #4 @ Draw new position of ^ and keep track of current bit
subeq r5, r5, #2 @ | 62 62 subeq r5, r5, #1 @ |
moveq r2, r2, LSL #1 @ | 63 63 moveq r2, r2, LSL #1 @ |
addne r5, r5, #2 @ | 64 64 addne r5, r5, #1 @ |
movne r2, r2, LSR #1 @ | 65 65 movne r2, r2, LSR #1 @ |
mov r0, #94 @ | 66 66 mov r0, #94 @ |
strh r0, [r5] @ | 67 67 strb r0, [r5] @ |
strh r2, [r1] @ / 68 68 strh r2, [r1] @ /
69 69
70 70
cursorMoveExit: 71 71 cursorMoveExit:
pop {r0-r12,lr} 72 72 pop {r0-r12,lr}
bx lr 73 73 bx lr
74 74
75 75
flipBit: @ changes a 1 to a 0 and a 0 to a 1 76 76 flipBit: @ changes a 1 to a 0 and a 0 to a 1
push {r0-r12,lr} 77 77 push {r0-r12,lr}
78 78
bl keySet @ marks key as down 79 79 bl keySet @ marks key as down
cmp r7, #1 80 80 cmp r7, #1
beq flipBitExit @ branch if down keeping cursor in place if key is held 81 81 beq flipBitExit @ branch if down keeping cursor in place if key is held
82 82
83 83
ldr r0, =setupBit 84 84 ldr r0, =setupBit
ldrh r0, [r0] 85 85 ldrh r0, [r0]
ldr r1, =notesettings 86 86 ldr r1, =notesettings
ldrh r2, [r1] 87 87 ldrh r2, [r1]
88 88
eor r2, r2, r0 @ isolate the bit to flip 89 89 eor r2, r2, r0 @ isolate the bit to flip
strh r2, [r1] @ store it 90 90 strh r2, [r1] @ store it
flipBitExit: 91 91 flipBitExit:
pop {r0-r12,lr} 92 92 pop {r0-r12,lr}
bx lr 93 93 bx lr
94 94
keyClear: 95 95 keyClear:
push {r0-r12,lr} 96 96 push {r0-r12,lr}
ldr r6,=keystates 97 97 ldr r6,=keystates
mov r0,#0 98 98 mov r0,#0
str r0,[r6,r4] 99 99 str r0,[r6,r4]
pop {r0-r12,lr} 100 100 pop {r0-r12,lr}
bx lr 101 101 bx lr
102 102
keySet: @ marks key as down 103 103 keySet: @ marks key as down
push {r0-r6,r8-r12,lr} 104 104 push {r0-r6,r8-r12,lr}
ldr r6,=keystates 105 105 ldr r6,=keystates
ldr r0,[r6,r4] @@ set key used flag 106 106 ldr r0,[r6,r4] @@ set key used flag
cmp r0,#1 107 107 cmp r0,#1
moveq r7,#1 108 108 moveq r7,#1
mov r0,#1 109 109 mov r0,#1
str r0,[r6,r4] 110 110 str r0,[r6,r4]
pop {r0-r6,r8-r12,lr} 111 111 pop {r0-r6,r8-r12,lr}
bx lr 112 112 bx lr
113 113
@@@@@@@@ 114 114 @@@@@@@@
@ 115 115 @
@ r4=offset for keystates and notes 116 116 @ r4=offset for keystates and notes
@ 117 117 @
@@@@@@@@ 118 118 @@@@@@@@
keyCheckSetup: @ Load keycheck routine and also call respective handlers 119 119 keyCheckSetup: @ Load keycheck routine and also call respective handlers
push {r0-r12,lr} @ Save link reg 120 120 push {r0-r12,lr} @ Save link reg
ldr r0, =KEYINPUT 121 121 ldr r0, =KEYINPUT
ldrh r1, [r0] 122 122 ldrh r1, [r0]
123 123
@@@ Change Settings / Move Cursor 124 124 @@@ Change Settings / Move Cursor
mov r4, #4 @ keystates offset for key 125 125 mov r4, #4 @ keystates offset for key
ands r0, r1, #0b100000 @ AND key left 126 126 ands r0, r1, #0b100000 @ AND key left
blne keyClear 127 127 blne keyClear
bleq cursorMove 128 128 bleq cursorMove
129 129
mov r4, #12 @ keystates offset for key 130 130 mov r4, #12 @ keystates offset for key
ands r0, r1, #0b10000 @ AND key right 131 131 ands r0, r1, #0b10000 @ AND key right
blne keyClear 132 132 blne keyClear
bleq cursorMove 133 133 bleq cursorMove
134 134
mov r4, #24 @ keystates offset for key 135 135 mov r4, #24 @ keystates offset for key
ands r0, r1, #0b1 @ AND key A 136 136 ands r0, r1, #0b1 @ AND key A
blne keyClear 137 137 blne keyClear
bleq flipBit 138 138 bleq flipBit
139 139
@@@ Start 140 140 @@@ Start
mov r4, #36 141 141 mov r4, #36
ands r0, r1, #0b1000 @ key start 142 142 ands r0, r1, #0b1000 @ key start
blne keyClear 143 143 blne keyClear
bleq keySet 144 144 bleq keySet
beq synth 145 145 beq synth
146 146
@@@ Length Flag 147 147 @@@ Length Flag
mov r4, #20 148 148 mov r4, #20
ands r0, r1, #0b10 @ AND key select 149 149 ands r0, r1, #0b10 @ AND key select
blne keyClear 150 150 blne keyClear
bleq flipLengthFlag 151 151 bleq flipLengthFlag
152 152
153 153
pop {r0-r12,lr} @ Recover link reg 154 154 pop {r0-r12,lr} @ Recover link reg
bx lr 155 155 bx lr
156 156
flipLengthFlag: 157 157 flipLengthFlag:
push {r0-r12,lr} 158 158 push {r0-r12,lr}
bleq keySet 159 159 bleq keySet
cmp r7,#1 160 160 cmp r7,#1
beq flipLengthFlagExit 161 161 beq flipLengthFlagExit
162 162
ldr r0,=notesettings @ Toggle bit 163 163 ldr r0,=notesettings @ Toggle bit
ldrh r1,[r0,#4] 164 164 ldrh r1,[r0,#4]
cmp r1,#0 165 165 cmp r1,#0
moveq r3,#1 166 166 moveq r3,#1
movne r3,#0 167 167 movne r3,#0
strh r3,[r0,#4] 168 168 strh r3,[r0,#4]
169 169
ldr r0,=REG_SOUND1CNT_X 170 170 ldr r0,=REG_SOUND1CNT_X
ldr r2,=REG_SOUND2CNT_H 171 171 ldr r2,=REG_SOUND2CNT_H
ldrh r1,[r0] 172 172 ldrh r1,[r0]
orreq r1,r1,#0b100000000000000 173 173 orreq r1,r1,#0b100000000000000
eorne r1,r1,#0b100000000000000 174 174 eorne r1,r1,#0b100000000000000
strh r1,[r0] 175 175 strh r1,[r0]
#include "defines.h" 1 1 #include "defines.h"
.arm 2 2 .arm
.align 3 3 .align
.text 4 4 .text
5 5
.global keyCheckSynth 6 6 .global keyCheckSynth
.global displayData 7 7 .global displayData
8 8
notePlay: 9 9 notePlay:
push {r0-r12,lr} 10 10 push {r0-r12,lr}
ldr r0,[r6,r4] @@ set key used flag 11 11 ldr r0,[r6,r4] @@ set key used flag
cmp r0,#1 12 12 cmp r0,#1
beq notePlayExit 13 13 beq notePlayExit
mov r0,#1 14 14 mov r0,#1
str r0,[r6,r4] 15 15 str r0,[r6,r4]
ldr r7,=soundRegUsage @@ holds info about what sound registers are used 16 16 ldr r7,=soundRegUsage @@ holds info about what sound registers are used
ldrh r0,[r7] 17 17 ldrh r0,[r7]
eors r0, r0, #1 18 18 eors r0, r0, #1
strh r0,[r7] 19 19 strh r0,[r7]
ldrh r5, [r5, r4] @ Load Note 20 20 ldrh r5, [r5, r4] @ Load Note
21 21
ldreq r1,=REG_SOUND1CNT_H 22 22 ldreq r1,=REG_SOUND1CNT_H
ldrne r1,=REG_SOUND2CNT_L 23 23 ldrne r1,=REG_SOUND2CNT_L
ldr r2,=notesettings 24 24 ldr r2,=notesettings
ldrh r3,[r2] 25 25 ldrh r3,[r2]
strh r3,[r1] 26 26 strh r3,[r1]
ldreq r1,=REG_SOUND1CNT_X 27 27 ldreq r1,=REG_SOUND1CNT_X
ldrne r1,=REG_SOUND2CNT_H 28 28 ldrne r1,=REG_SOUND2CNT_H
ldrh r3, [r2,#2] @ get note settings 29 29 ldrh r3, [r2,#2] @ get note settings
mov r0, r5 30 30 mov r0, r5
orr r0, r3, r5 31 31 orr r0, r3, r5
ldrh r3,[r2,#4] 32 32 ldrh r3,[r2,#4]
cmp r3,#0 33 33 cmp r3,#0
orrne r0,r0,#0b100000000000000 34 34 orrne r0,r0,#0b100000000000000
str r0,[r1] 35 35 str r0,[r1]
36 36
notePlayExit: 37 37 notePlayExit:
pop {r0-r12,lr} 38 38 pop {r0-r12,lr}
bx lr 39 39 bx lr
40 40
41 41
keyClear: 42 42 keyClear:
push {r0-r12,lr} 43 43 push {r0-r12,lr}
mov r0,#0 44 44 mov r0,#0
str r0,[r6,r4] 45 45 str r0,[r6,r4]
pop {r0-r12,lr} 46 46 pop {r0-r12,lr}
bx lr 47 47 bx lr
48 48
@@@@@@@@ 49 49 @@@@@@@@
@ 50 50 @
@ r4=offset for keystates and notes 51 51 @ r4=offset for keystates and notes
@ 52 52 @
@@@@@@@@ 53 53 @@@@@@@@
keyCheckSynth: @ Load keycheck routine and also call respective handlers 54 54 keyCheckSynth: @ Load keycheck routine and also call respective handlers
push {r0-r12,lr} @ Save link reg 55 55 push {r0-r12,lr} @ Save link reg
ldr r0, =KEYINPUT 56 56 ldr r0, =KEYINPUT
ldr r1, [r0] 57 57 ldr r1, [r0]
58 58
ldr r6,=keystates 59 59 ldr r6,=keystates
bl getScale 60 60 bl getScale
61 61
@@@ setup 62 62 @@@ setup
ands r0,r1,#0b100 63 63 ands r0,r1,#0b100
beq settingChange 64 64 beq settingChange
65 65
@@@ Play Notes 66 66 @@@ Play Notes
mov r4, #0 @ keystates offset for key 67 67 mov r4, #0 @ keystates offset for key
ands r0, r1, #0b1000000000 @ AND key L 68 68 ands r0, r1, #0b1000000000 @ AND key L
blne keyClear 69 69 blne keyClear
bleq notePlay 70 70 bleq notePlay
mov r4, #4 @ keystates offset for key 71 71 mov r4, #4 @ keystates offset for key
ands r0, r1, #0b100000 @ AND key left 72 72 ands r0, r1, #0b100000 @ AND key left
blne keyClear 73 73 blne keyClear
bleq notePlay 74 74 bleq notePlay
mov r4, #8 @ keystates offset for key 75 75 mov r4, #8 @ keystates offset for key
ands r0, r1, #0b10000000 @ AND key down 76 76 ands r0, r1, #0b10000000 @ AND key down
blne keyClear 77 77 blne keyClear
bleq notePlay 78 78 bleq notePlay
mov r4, #12 @ keystates offset for key 79 79 mov r4, #12 @ keystates offset for key
ands r0, r1, #0b10000 @ AND key right 80 80 ands r0, r1, #0b10000 @ AND key right
blne keyClear 81 81 blne keyClear
bleq notePlay 82 82 bleq notePlay
mov r4, #16 @ keystates offset for key 83 83 mov r4, #16 @ keystates offset for key
ands r0, r1, #0b1000000 @ AND key up 84 84 ands r0, r1, #0b1000000 @ AND key up
blne keyClear 85 85 blne keyClear
bleq notePlay 86 86 bleq notePlay
mov r4, #20 @ keystates offset for key 87 87 mov r4, #20 @ keystates offset for key
ands r0, r1, #0b10 @ AND key B 88 88 ands r0, r1, #0b10 @ AND key B
blne keyClear 89 89 blne keyClear
bleq notePlay 90 90 bleq notePlay
mov r4, #24 @ keystates offset for key 91 91 mov r4, #24 @ keystates offset for key
ands r0, r1, #0b1 @ AND key A 92 92 ands r0, r1, #0b1 @ AND key A
blne keyClear 93 93 blne keyClear
bleq notePlay 94 94 bleq notePlay
mov r4, #28 @ keystates offset for key 95 95 mov r4, #28 @ keystates offset for key
ands r0, r1, #0b100000000 @ AND key R 96 96 ands r0, r1, #0b100000000 @ AND key R
blne keyClear 97 97 blne keyClear
bleq notePlay 98 98 bleq notePlay
pop {r0-r12,lr} @ Recover link reg 99 99 pop {r0-r12,lr} @ Recover link reg
bx lr 100 100 bx lr
101 101
@@ While Select is held settings can be changed 102 102 @@ While Select is held settings can be changed
settingChange: 103 103 settingChange:
ldr r0,=0b1100000100 104 104 ldr r0,=0b1100000100
ands r0,r1,r0 @ A+B+start+select = Reset 105 105 ands r0,r1,r0 @ L+R+Select = Setup Menu
swieq 0x00000 106 106 swieq 0x00000
107 107
mov r4, #36 108 108 mov r4, #36
ands r0, r1, #0b1 @ A = toggle Major/Minor 109 109 ands r0, r1, #0b1000 @ A = toggle Major/Minor
blne keyClear 110 110 blne keyClear
bleq toggleMajMin 111 111 bleq toggleMajMin
112 112
mov r4, #16 113 113 mov r4, #16
ands r0, r1, #0b1000000 @ AND key up 114 114 ands r0, r1, #0b1000000 @ AND key up
blne keyClear 115 115 blne keyClear
bleq octaveUp 116 116 bleq octaveUp
mov r4, #8 117 117 mov r4, #8
ands r0, r1, #0b10000000 @ AND key down 118 118 ands r0, r1, #0b10000000 @ AND key down
blne keyClear 119 119 blne keyClear
bleq octaveDown 120 120 bleq octaveDown
mov r4, #12 121 121 mov r4, #12
ands r0, r1, #0b10000 @ AND key right 122 122 ands r0, r1, #0b10000 @ AND key right
blne keyClear 123 123 blne keyClear
bleq musicalkeyUp 124 124 bleq musicalkeyUp
mov r4, #4 125 125 mov r4, #4
ands r0, r1, #0b100000 @ AND key left 126 126 ands r0, r1, #0b100000 @ AND key left
blne keyClear 127 127 blne keyClear
bleq musicalkeyDown 128 128 bleq musicalkeyDown
pop {r0-r12,lr} @ Recover link reg 129 129 pop {r0-r12,lr} @ Recover link reg
bx lr 130 130 bx lr
131 131
toggleMajMin: @ toggle major minor flag 132 132 toggleMajMin: @ toggle major minor flag
push {r0-r12,lr} 133 133 push {r0-r12,lr}
ldr r0,[r6,r4] @ Checks if held 134 134 ldr r0,[r6,r4] @ Checks if held
cmp r0,#1 135 135 cmp r0,#1
bxeq lr 136 136 bxeq lr
mov r0,#1 137 137 mov r0,#1
str r0,[r6,r4] 138 138 str r0,[r6,r4]
ldr r0,=key 139 139 ldr r0,=key
ldr r1,[r0,#4] 140 140 ldr r1,[r0,#4]
cmp r1,#0 141 141 cmp r1,#0
moveq r1,#1 142 142 moveq r1,#1
movne r1,#0 143 143 movne r1,#0
str r1,[r0,#4] 144 144 str r1,[r0,#4]
pop {r0-r12,lr} 145 145 pop {r0-r12,lr}
146 146
getScale: 147 147 getScale:
push {r0-r4,r6-r12,lr} 148 148 push {r0-r4,r6-r12,lr}
ldr r0,=key @ load address of key variable 149 149 ldr r0,=key @ load address of key variable
ldr r0,[r0,#4] @ load maj/min flag 150 150 ldr r0,[r0,#4] @ load maj/min flag
cmp r0,#0 @ 0 = major 151 151 cmp r0,#0 @ 0 = major
beq getMajScale @ branch to getMajScale if == 152 152 beq getMajScale @ branch to getMajScale if ==
bne getMinScale @ branch to getMinSvale otherwise 153 153 bne getMinScale @ branch to getMinSvale otherwise
154 154
getMajScale: 155 155 getMajScale:
ldr r0, =key 156 156 ldr r0, =key
ldr r1, [r0] 157 157 ldr r1, [r0]
cmp r1, #0 @ if r1 = 0 get Cmaj 158 158 cmp r1, #0 @ if r1 = 0 get Cmaj
bleq getCmaj 159 159 bleq getCmaj
cmp r1, #1 @ if r1 = 1 get Gmaj 160 160 cmp r1, #1 @ if r1 = 1 get Gmaj
bleq getGmaj 161 161 bleq getGmaj
cmp r1, #2 @ Dmaj 162 162 cmp r1, #2 @ Dmaj
bleq getDmaj 163 163 bleq getDmaj
cmp r1, #3 @ Amaj 164 164 cmp r1, #3 @ Amaj
bleq getAmaj 165 165 bleq getAmaj
cmp r1, #4 @ Emaj 166 166 cmp r1, #4 @ Emaj
bleq getEmaj 167 167 bleq getEmaj
cmp r1, #5 @ Bmaj 168 168 cmp r1, #5 @ Bmaj
bleq getBmaj 169 169 bleq getBmaj
cmp r1, #6 @ F#maj 170 170 cmp r1, #6 @ F#maj
bleq getFsharpmaj 171 171 bleq getFsharpmaj
cmp r1, #7 @ C#maj 172 172 cmp r1, #7 @ C#maj
bleq getCsharpmaj 173 173 bleq getCsharpmaj
cmp r1, #8 @ Fmaj 174 174 cmp r1, #8 @ Fmaj
bleq getFmaj 175 175 bleq getFmaj
cmp r1, #9 @ Bflatmaj 176 176 cmp r1, #9 @ Bflatmaj
bleq getBflatmaj 177 177 bleq getBflatmaj
cmp r1, #10 @ Eflatmaj 178 178 cmp r1, #10 @ Eflatmaj
bleq getEflatmaj 179 179 bleq getEflatmaj
cmp r1, #11 @ Aflatmaj 180 180 cmp r1, #11 @ Aflatmaj
bleq getAflatmaj 181 181 bleq getAflatmaj
cmp r1, #12 @ Dflatmaj 182 182 cmp r1, #12 @ Dflatmaj
bleq getDflatmaj 183 183 bleq getDflatmaj
cmp r1, #13 @ Gflatmaj 184 184 cmp r1, #13 @ Gflatmaj
bleq getGflatmaj 185 185 bleq getGflatmaj
cmp r1, #14 @ Cflatmaj 186 186 cmp r1, #14 @ Cflatmaj
bleq getCflatmaj 187 187 bleq getCflatmaj
pop {r0-r4,r6-r12,lr} 188 188 pop {r0-r4,r6-r12,lr}
bx lr 189 189 bx lr
190 190
getMinScale: 191 191 getMinScale:
ldr r0, =key 192 192 ldr r0, =key
ldr r1, [r0] 193 193 ldr r1, [r0]
cmp r1, #0 @ if r1 = 0 get Amin 194 194 cmp r1, #0 @ if r1 = 0 get Amin
bleq getAmin 195 195 bleq getAmin
cmp r1, #1 @ if r1 = 1 get Emin 196 196 cmp r1, #1 @ if r1 = 1 get Emin
bleq getEmin 197 197 bleq getEmin
cmp r1, #2 @ Bmin 198 198 cmp r1, #2 @ Bmin
bleq getBmin 199 199 bleq getBmin
cmp r1, #3 @ F#min 200 200 cmp r1, #3 @ F#min
bleq getFsharpmin 201 201 bleq getFsharpmin
cmp r1, #4 @ C#min 202 202 cmp r1, #4 @ C#min
bleq getCsharpmin 203 203 bleq getCsharpmin
cmp r1, #5 @ G#min 204 204 cmp r1, #5 @ G#min
bleq getGsharpmin 205 205 bleq getGsharpmin
cmp r1, #6 @ D#min 206 206 cmp r1, #6 @ D#min
bleq getDsharpmin 207 207 bleq getDsharpmin
cmp r1, #7 @ A#min 208 208 cmp r1, #7 @ A#min
bleq getAsharpmin 209 209 bleq getAsharpmin
cmp r1, #8 @ Dmin 210 210 cmp r1, #8 @ Dmin
bleq getDmin 211 211 bleq getDmin
cmp r1, #9 @ Gmin 212 212 cmp r1, #9 @ Gmin
bleq getGmin 213 213 bleq getGmin
cmp r1, #10 @ Cmin 214 214 cmp r1, #10 @ Cmin
bleq getCmin 215 215 bleq getCmin
cmp r1, #11 @ Fmin 216 216 cmp r1, #11 @ Fmin
bleq getFmin 217 217 bleq getFmin
cmp r1, #12 @ Bbmin 218 218 cmp r1, #12 @ Bbmin
bleq getBflatmin 219 219 bleq getBflatmin
cmp r1, #13 @ Eflatmin 220 220 cmp r1, #13 @ Eflatmin
bleq getEflatmin 221 221 bleq getEflatmin
cmp r1, #14 @ Abmin 222 222 cmp r1, #14 @ Abmin
bleq getAflatmin 223 223 bleq getAflatmin
pop {r0-r4,r6-r12,lr} 224 224 pop {r0-r4,r6-r12,lr}
bx lr 225 225 bx lr
226 226
@@ Major Scale Loads 227 227 @@ Major Scale Loads
getCmaj: 228 228 getCmaj:
push {r0-r4,r6-r12,lr} 229 229 push {r0-r4,r6-r12,lr}
ldr r0, =octave 230 230 ldr r0, =octave
ldr r1, [r0] 231 231 ldr r1, [r0]
cmp r1, #2 232 232 cmp r1, #2
ldreq r5, =notesOct2_Cmaj 233 233 ldreq r5, =notesOct2_Cmaj
cmp r1, #3 234 234 cmp r1, #3
ldreq r5, =notesOct3_Cmaj 235 235 ldreq r5, =notesOct3_Cmaj
cmp r1, #4 236 236 cmp r1, #4
ldreq r5, =notesOct4_Cmaj 237 237 ldreq r5, =notesOct4_Cmaj
cmp r1, #5 238 238 cmp r1, #5
ldreq r5, =notesOct5_Cmaj 239 239 ldreq r5, =notesOct5_Cmaj
cmp r1, #6 240 240 cmp r1, #6
ldreq r5, =notesOct6_Cmaj 241 241 ldreq r5, =notesOct6_Cmaj
pop {r0-r4,r6-r12,lr} 242 242 pop {r0-r4,r6-r12,lr}
bx lr 243 243 bx lr
getGmaj: 244 244 getGmaj:
push {r0-r4,r6-r12,lr} 245 245 push {r0-r4,r6-r12,lr}
ldr r0, =octave 246 246 ldr r0, =octave
ldr r1, [r0] 247 247 ldr r1, [r0]
cmp r1, #2 248 248 cmp r1, #2
ldreq r5, =notesOct2_Gmaj 249 249 ldreq r5, =notesOct2_Gmaj
cmp r1, #3 250 250 cmp r1, #3
ldreq r5, =notesOct3_Gmaj 251 251 ldreq r5, =notesOct3_Gmaj
cmp r1, #4 252 252 cmp r1, #4
ldreq r5, =notesOct4_Gmaj 253 253 ldreq r5, =notesOct4_Gmaj
cmp r1, #5 254 254 cmp r1, #5
ldreq r5, =notesOct5_Gmaj 255 255 ldreq r5, =notesOct5_Gmaj
cmp r1, #6 256 256 cmp r1, #6
ldreq r5, =notesOct6_Gmaj 257 257 ldreq r5, =notesOct6_Gmaj
pop {r0-r4,r6-r12,lr} 258 258 pop {r0-r4,r6-r12,lr}
bx lr 259 259 bx lr
getDmaj: 260 260 getDmaj:
push {r0-r4,r6-r12,lr} 261 261 push {r0-r4,r6-r12,lr}
ldr r0, =octave 262 262 ldr r0, =octave
ldr r1, [r0] 263 263 ldr r1, [r0]
cmp r1, #2 264 264 cmp r1, #2
ldreq r5, =notesOct2_Dmaj 265 265 ldreq r5, =notesOct2_Dmaj
cmp r1, #3 266 266 cmp r1, #3
ldreq r5, =notesOct3_Dmaj 267 267 ldreq r5, =notesOct3_Dmaj
cmp r1, #4 268 268 cmp r1, #4
ldreq r5, =notesOct4_Dmaj 269 269 ldreq r5, =notesOct4_Dmaj
cmp r1, #5 270 270 cmp r1, #5
ldreq r5, =notesOct5_Dmaj 271 271 ldreq r5, =notesOct5_Dmaj
cmp r1, #6 272 272 cmp r1, #6
ldreq r5, =notesOct6_Dmaj 273 273 ldreq r5, =notesOct6_Dmaj
pop {r0-r4,r6-r12,lr} 274 274 pop {r0-r4,r6-r12,lr}
bx lr 275 275 bx lr
getAmaj: 276 276 getAmaj:
push {r0-r4,r6-r12,lr} 277 277 push {r0-r4,r6-r12,lr}
ldr r0, =octave 278 278 ldr r0, =octave
ldr r1, [r0] 279 279 ldr r1, [r0]
cmp r1, #2 280 280 cmp r1, #2
ldreq r5, =notesOct2_Amaj 281 281 ldreq r5, =notesOct2_Amaj
cmp r1, #3 282 282 cmp r1, #3
ldreq r5, =notesOct3_Amaj 283 283 ldreq r5, =notesOct3_Amaj
cmp r1, #4 284 284 cmp r1, #4
ldreq r5, =notesOct4_Amaj 285 285 ldreq r5, =notesOct4_Amaj
cmp r1, #5 286 286 cmp r1, #5
ldreq r5, =notesOct5_Amaj 287 287 ldreq r5, =notesOct5_Amaj
cmp r1, #6 288 288 cmp r1, #6
ldreq r5, =notesOct6_Amaj 289 289 ldreq r5, =notesOct6_Amaj
pop {r0-r4,r6-r12,lr} 290 290 pop {r0-r4,r6-r12,lr}
bx lr 291 291 bx lr
getEmaj: 292 292 getEmaj:
push {r0-r4,r6-r12,lr} 293 293 push {r0-r4,r6-r12,lr}
ldr r0, =octave 294 294 ldr r0, =octave
ldr r1, [r0] 295 295 ldr r1, [r0]
cmp r1, #2 296 296 cmp r1, #2
ldreq r5, =notesOct2_Emaj 297 297 ldreq r5, =notesOct2_Emaj
cmp r1, #3 298 298 cmp r1, #3
ldreq r5, =notesOct3_Emaj 299 299 ldreq r5, =notesOct3_Emaj
cmp r1, #4 300 300 cmp r1, #4
ldreq r5, =notesOct4_Emaj 301 301 ldreq r5, =notesOct4_Emaj
cmp r1, #5 302 302 cmp r1, #5
ldreq r5, =notesOct5_Emaj 303 303 ldreq r5, =notesOct5_Emaj
cmp r1, #6 304 304 cmp r1, #6
ldreq r5, =notesOct6_Emaj 305 305 ldreq r5, =notesOct6_Emaj
pop {r0-r4,r6-r12,lr} 306 306 pop {r0-r4,r6-r12,lr}
bx lr 307 307 bx lr
getBmaj: 308 308 getBmaj:
push {r0-r4,r6-r12,lr} 309 309 push {r0-r4,r6-r12,lr}
ldr r0, =octave 310 310 ldr r0, =octave
ldr r1, [r0] 311 311 ldr r1, [r0]
cmp r1, #2 312 312 cmp r1, #2
ldreq r5, =notesOct2_Bmaj 313 313 ldreq r5, =notesOct2_Bmaj
cmp r1, #3 314 314 cmp r1, #3
ldreq r5, =notesOct3_Bmaj 315 315 ldreq r5, =notesOct3_Bmaj
cmp r1, #4 316 316 cmp r1, #4
ldreq r5, =notesOct4_Bmaj 317 317 ldreq r5, =notesOct4_Bmaj
cmp r1, #5 318 318 cmp r1, #5
ldreq r5, =notesOct5_Bmaj 319 319 ldreq r5, =notesOct5_Bmaj
cmp r1, #6 320 320 cmp r1, #6
ldreq r5, =notesOct6_Bmaj 321 321 ldreq r5, =notesOct6_Bmaj
pop {r0-r4,r6-r12,lr} 322 322 pop {r0-r4,r6-r12,lr}
bx lr 323 323 bx lr
getFsharpmaj: 324 324 getFsharpmaj:
push {r0-r4,r6-r12,lr} 325 325 push {r0-r4,r6-r12,lr}
ldr r0, =octave 326 326 ldr r0, =octave
ldr r1, [r0] 327 327 ldr r1, [r0]
cmp r1, #2 328 328 cmp r1, #2
ldreq r5, =notesOct2_Fsharpmaj 329 329 ldreq r5, =notesOct2_Fsharpmaj
cmp r1, #3 330 330 cmp r1, #3
ldreq r5, =notesOct3_Fsharpmaj 331 331 ldreq r5, =notesOct3_Fsharpmaj
cmp r1, #4 332 332 cmp r1, #4
ldreq r5, =notesOct4_Fsharpmaj 333 333 ldreq r5, =notesOct4_Fsharpmaj
cmp r1, #5 334 334 cmp r1, #5
ldreq r5, =notesOct5_Fsharpmaj 335 335 ldreq r5, =notesOct5_Fsharpmaj
cmp r1, #6 336 336 cmp r1, #6
ldreq r5, =notesOct6_Fsharpmaj 337 337 ldreq r5, =notesOct6_Fsharpmaj
pop {r0-r4,r6-r12,lr} 338 338 pop {r0-r4,r6-r12,lr}
bx lr 339 339 bx lr
getCsharpmaj: 340 340 getCsharpmaj:
push {r0-r4,r6-r12,lr} 341 341 push {r0-r4,r6-r12,lr}
ldr r0, =octave 342 342 ldr r0, =octave
ldr r1, [r0] 343 343 ldr r1, [r0]
cmp r1, #2 344 344 cmp r1, #2
ldreq r5, =notesOct2_Csharpmaj 345 345 ldreq r5, =notesOct2_Csharpmaj
cmp r1, #3 346 346 cmp r1, #3
ldreq r5, =notesOct3_Csharpmaj 347 347 ldreq r5, =notesOct3_Csharpmaj
cmp r1, #4 348 348 cmp r1, #4
ldreq r5, =notesOct4_Csharpmaj 349 349 ldreq r5, =notesOct4_Csharpmaj
cmp r1, #5 350 350 cmp r1, #5
ldreq r5, =notesOct5_Csharpmaj 351 351 ldreq r5, =notesOct5_Csharpmaj
cmp r1, #6 352 352 cmp r1, #6
ldreq r5, =notesOct6_Csharpmaj 353 353 ldreq r5, =notesOct6_Csharpmaj
pop {r0-r4,r6-r12,lr} 354 354 pop {r0-r4,r6-r12,lr}
bx lr 355 355 bx lr
getFmaj: 356 356 getFmaj:
push {r0-r4,r6-r12,lr} 357 357 push {r0-r4,r6-r12,lr}
ldr r0, =octave 358 358 ldr r0, =octave
ldr r1, [r0] 359 359 ldr r1, [r0]
cmp r1, #2 360 360 cmp r1, #2
ldreq r5, =notesOct2_Fmaj 361 361 ldreq r5, =notesOct2_Fmaj
cmp r1, #3 362 362 cmp r1, #3
ldreq r5, =notesOct3_Fmaj 363 363 ldreq r5, =notesOct3_Fmaj
cmp r1, #4 364 364 cmp r1, #4
ldreq r5, =notesOct4_Fmaj 365 365 ldreq r5, =notesOct4_Fmaj
cmp r1, #5 366 366 cmp r1, #5
ldreq r5, =notesOct5_Fmaj 367 367 ldreq r5, =notesOct5_Fmaj
cmp r1, #6 368 368 cmp r1, #6
ldreq r5, =notesOct6_Fmaj 369 369 ldreq r5, =notesOct6_Fmaj
pop {r0-r4,r6-r12,lr} 370 370 pop {r0-r4,r6-r12,lr}
bx lr 371 371 bx lr
getBflatmaj: 372 372 getBflatmaj:
push {r0-r4,r6-r12,lr} 373 373 push {r0-r4,r6-r12,lr}
ldr r0, =octave 374 374 ldr r0, =octave
ldr r1, [r0] 375 375 ldr r1, [r0]
cmp r1, #2 376 376 cmp r1, #2
ldreq r5, =notesOct2_Bflatmaj 377 377 ldreq r5, =notesOct2_Bflatmaj
cmp r1, #3 378 378 cmp r1, #3
ldreq r5, =notesOct3_Bflatmaj 379 379 ldreq r5, =notesOct3_Bflatmaj
cmp r1, #4 380 380 cmp r1, #4
ldreq r5, =notesOct4_Bflatmaj 381 381 ldreq r5, =notesOct4_Bflatmaj
cmp r1, #5 382 382 cmp r1, #5
ldreq r5, =notesOct5_Bflatmaj 383 383 ldreq r5, =notesOct5_Bflatmaj
cmp r1, #6 384 384 cmp r1, #6
ldreq r5, =notesOct6_Bflatmaj 385 385 ldreq r5, =notesOct6_Bflatmaj
pop {r0-r4,r6-r12,lr} 386 386 pop {r0-r4,r6-r12,lr}
bx lr 387 387 bx lr
getEflatmaj: 388 388 getEflatmaj:
push {r0-r4,r6-r12,lr} 389 389 push {r0-r4,r6-r12,lr}
ldr r0, =octave 390 390 ldr r0, =octave
ldr r1, [r0] 391 391 ldr r1, [r0]
cmp r1, #2 392 392 cmp r1, #2
ldreq r5, =notesOct2_Eflatmaj 393 393 ldreq r5, =notesOct2_Eflatmaj
cmp r1, #3 394 394 cmp r1, #3
ldreq r5, =notesOct3_Eflatmaj 395 395 ldreq r5, =notesOct3_Eflatmaj
cmp r1, #4 396 396 cmp r1, #4
ldreq r5, =notesOct4_Eflatmaj 397 397 ldreq r5, =notesOct4_Eflatmaj
cmp r1, #5 398 398 cmp r1, #5
ldreq r5, =notesOct5_Eflatmaj 399 399 ldreq r5, =notesOct5_Eflatmaj
cmp r1, #6 400 400 cmp r1, #6
ldreq r5, =notesOct6_Eflatmaj 401 401 ldreq r5, =notesOct6_Eflatmaj
pop {r0-r4,r6-r12,lr} 402 402 pop {r0-r4,r6-r12,lr}
bx lr 403 403 bx lr
getAflatmaj: 404 404 getAflatmaj:
push {r0-r4,r6-r12,lr} 405 405 push {r0-r4,r6-r12,lr}
ldr r0, =octave 406 406 ldr r0, =octave
ldr r1, [r0] 407 407 ldr r1, [r0]
cmp r1, #2 408 408 cmp r1, #2
ldreq r5, =notesOct2_Aflatmaj 409 409 ldreq r5, =notesOct2_Aflatmaj
cmp r1, #3 410 410 cmp r1, #3
ldreq r5, =notesOct3_Aflatmaj 411 411 ldreq r5, =notesOct3_Aflatmaj
cmp r1, #4 412 412 cmp r1, #4
ldreq r5, =notesOct4_Aflatmaj 413 413 ldreq r5, =notesOct4_Aflatmaj
cmp r1, #5 414 414 cmp r1, #5
ldreq r5, =notesOct5_Aflatmaj 415 415 ldreq r5, =notesOct5_Aflatmaj
cmp r1, #6 416 416 cmp r1, #6
ldreq r5, =notesOct6_Aflatmaj 417 417 ldreq r5, =notesOct6_Aflatmaj
pop {r0-r4,r6-r12,lr} 418 418 pop {r0-r4,r6-r12,lr}
bx lr 419 419 bx lr
getDflatmaj: 420 420 getDflatmaj:
push {r0-r4,r6-r12,lr} 421 421 push {r0-r4,r6-r12,lr}
ldr r0, =octave 422 422 ldr r0, =octave
ldr r1, [r0] 423 423 ldr r1, [r0]
cmp r1, #2 424 424 cmp r1, #2
ldreq r5, =notesOct2_Dflatmaj 425 425 ldreq r5, =notesOct2_Dflatmaj
cmp r1, #3 426 426 cmp r1, #3
ldreq r5, =notesOct3_Dflatmaj 427 427 ldreq r5, =notesOct3_Dflatmaj
cmp r1, #4 428 428 cmp r1, #4
ldreq r5, =notesOct4_Dflatmaj 429 429 ldreq r5, =notesOct4_Dflatmaj
cmp r1, #5 430 430 cmp r1, #5
ldreq r5, =notesOct5_Dflatmaj 431 431 ldreq r5, =notesOct5_Dflatmaj
cmp r1, #6 432 432 cmp r1, #6
ldreq r5, =notesOct6_Dflatmaj 433 433 ldreq r5, =notesOct6_Dflatmaj
pop {r0-r4,r6-r12,lr} 434 434 pop {r0-r4,r6-r12,lr}
bx lr 435 435 bx lr
getGflatmaj: 436 436 getGflatmaj:
push {r0-r4,r6-r12,lr} 437 437 push {r0-r4,r6-r12,lr}
ldr r0, =octave 438 438 ldr r0, =octave
ldr r1, [r0] 439 439 ldr r1, [r0]
cmp r1, #2 440 440 cmp r1, #2
ldreq r5, =notesOct2_Gflatmaj 441 441 ldreq r5, =notesOct2_Gflatmaj
cmp r1, #3 442 442 cmp r1, #3
ldreq r5, =notesOct3_Gflatmaj 443 443 ldreq r5, =notesOct3_Gflatmaj
cmp r1, #4 444 444 cmp r1, #4
ldreq r5, =notesOct4_Gflatmaj 445 445 ldreq r5, =notesOct4_Gflatmaj
cmp r1, #5 446 446 cmp r1, #5
ldreq r5, =notesOct5_Gflatmaj 447 447 ldreq r5, =notesOct5_Gflatmaj
cmp r1, #6 448 448 cmp r1, #6
ldreq r5, =notesOct6_Gflatmaj 449 449 ldreq r5, =notesOct6_Gflatmaj
pop {r0-r4,r6-r12,lr} 450 450 pop {r0-r4,r6-r12,lr}
bx lr 451 451 bx lr
getCflatmaj: 452 452 getCflatmaj:
push {r0-r4,r6-r12,lr} 453 453 push {r0-r4,r6-r12,lr}
ldr r0, =octave 454 454 ldr r0, =octave
ldr r1, [r0] 455 455 ldr r1, [r0]
cmp r1, #2 456 456 cmp r1, #2
ldreq r5, =notesOct2_Cflatmaj 457 457 ldreq r5, =notesOct2_Cflatmaj
cmp r1, #3 458 458 cmp r1, #3
ldreq r5, =notesOct3_Cflatmaj 459 459 ldreq r5, =notesOct3_Cflatmaj
cmp r1, #4 460 460 cmp r1, #4
ldreq r5, =notesOct4_Cflatmaj 461 461 ldreq r5, =notesOct4_Cflatmaj
cmp r1, #5 462 462 cmp r1, #5
ldreq r5, =notesOct5_Cflatmaj 463 463 ldreq r5, =notesOct5_Cflatmaj
cmp r1, #6 464 464 cmp r1, #6
ldreq r5, =notesOct6_Cflatmaj 465 465 ldreq r5, =notesOct6_Cflatmaj
pop {r0-r4,r6-r12,lr} 466 466 pop {r0-r4,r6-r12,lr}
bx lr 467 467 bx lr
@@ Minor Scale Loads 468 468 @@ Minor Scale Loads
getAmin: 469 469 getAmin:
push {r0-r4,r6-r12,lr} 470 470 push {r0-r4,r6-r12,lr}
ldr r0, =octave 471 471 ldr r0, =octave
ldr r1, [r0] 472 472 ldr r1, [r0]
cmp r1, #2 473 473 cmp r1, #2
ldreq r5, =notesOct2_Amin 474 474 ldreq r5, =notesOct2_Amin
cmp r1, #3 475 475 cmp r1, #3
ldreq r5, =notesOct3_Amin 476 476 ldreq r5, =notesOct3_Amin
cmp r1, #4 477 477 cmp r1, #4
ldreq r5, =notesOct4_Amin 478 478 ldreq r5, =notesOct4_Amin
cmp r1, #5 479 479 cmp r1, #5
ldreq r5, =notesOct5_Amin 480 480 ldreq r5, =notesOct5_Amin
cmp r1, #6 481 481 cmp r1, #6
ldreq r5, =notesOct6_Amin 482 482 ldreq r5, =notesOct6_Amin
pop {r0-r4,r6-r12,lr} 483 483 pop {r0-r4,r6-r12,lr}
bx lr 484 484 bx lr
getEmin: 485 485 getEmin:
push {r0-r4,r6-r12,lr} 486 486 push {r0-r4,r6-r12,lr}
ldr r0, =octave 487 487 ldr r0, =octave
ldr r1, [r0] 488 488 ldr r1, [r0]
cmp r1, #2 489 489 cmp r1, #2
ldreq r5, =notesOct2_Emin 490 490 ldreq r5, =notesOct2_Emin
cmp r1, #3 491 491 cmp r1, #3
ldreq r5, =notesOct3_Emin 492 492 ldreq r5, =notesOct3_Emin
cmp r1, #4 493 493 cmp r1, #4
ldreq r5, =notesOct4_Emin 494 494 ldreq r5, =notesOct4_Emin
cmp r1, #5 495 495 cmp r1, #5
ldreq r5, =notesOct5_Emin 496 496 ldreq r5, =notesOct5_Emin
cmp r1, #6 497 497 cmp r1, #6
ldreq r5, =notesOct6_Emin 498 498 ldreq r5, =notesOct6_Emin
pop {r0-r4,r6-r12,lr} 499 499 pop {r0-r4,r6-r12,lr}
bx lr 500 500 bx lr
getBmin: 501 501 getBmin:
push {r0-r4,r6-r12,lr} 502 502 push {r0-r4,r6-r12,lr}
ldr r0, =octave 503 503 ldr r0, =octave
ldr r1, [r0] 504 504 ldr r1, [r0]
cmp r1, #2 505 505 cmp r1, #2
ldreq r5, =notesOct2_Bmin 506 506 ldreq r5, =notesOct2_Bmin
cmp r1, #3 507 507 cmp r1, #3
ldreq r5, =notesOct3_Bmin 508 508 ldreq r5, =notesOct3_Bmin
cmp r1, #4 509 509 cmp r1, #4
ldreq r5, =notesOct4_Bmin 510 510 ldreq r5, =notesOct4_Bmin
cmp r1, #5 511 511 cmp r1, #5
ldreq r5, =notesOct5_Bmin 512 512 ldreq r5, =notesOct5_Bmin
cmp r1, #6 513 513 cmp r1, #6
ldreq r5, =notesOct6_Bmin 514 514 ldreq r5, =notesOct6_Bmin
pop {r0-r4,r6-r12,lr} 515 515 pop {r0-r4,r6-r12,lr}
bx lr 516 516 bx lr
getFsharpmin: 517 517 getFsharpmin:
push {r0-r4,r6-r12,lr} 518 518 push {r0-r4,r6-r12,lr}
ldr r0, =octave 519 519 ldr r0, =octave
ldr r1, [r0] 520 520 ldr r1, [r0]
cmp r1, #2 521 521 cmp r1, #2
ldreq r5, =notesOct2_Fsharpmin 522 522 ldreq r5, =notesOct2_Fsharpmin
cmp r1, #3 523 523 cmp r1, #3
ldreq r5, =notesOct3_Fsharpmin 524 524 ldreq r5, =notesOct3_Fsharpmin
cmp r1, #4 525 525 cmp r1, #4
ldreq r5, =notesOct4_Fsharpmin 526 526 ldreq r5, =notesOct4_Fsharpmin
cmp r1, #5 527 527 cmp r1, #5
ldreq r5, =notesOct5_Fsharpmin 528 528 ldreq r5, =notesOct5_Fsharpmin
cmp r1, #6 529 529 cmp r1, #6
ldreq r5, =notesOct6_Fsharpmin 530 530 ldreq r5, =notesOct6_Fsharpmin
pop {r0-r4,r6-r12,lr} 531 531 pop {r0-r4,r6-r12,lr}
bx lr 532 532 bx lr
getCsharpmin: 533 533 getCsharpmin:
push {r0-r4,r6-r12,lr} 534 534 push {r0-r4,r6-r12,lr}
ldr r0, =octave 535 535 ldr r0, =octave
ldr r1, [r0] 536 536 ldr r1, [r0]
cmp r1, #2 537 537 cmp r1, #2
ldreq r5, =notesOct2_Csharpmin 538 538 ldreq r5, =notesOct2_Csharpmin
cmp r1, #3 539 539 cmp r1, #3
ldreq r5, =notesOct3_Csharpmin 540 540 ldreq r5, =notesOct3_Csharpmin
cmp r1, #4 541 541 cmp r1, #4
ldreq r5, =notesOct4_Csharpmin 542 542 ldreq r5, =notesOct4_Csharpmin
cmp r1, #5 543 543 cmp r1, #5
ldreq r5, =notesOct5_Csharpmin 544 544 ldreq r5, =notesOct5_Csharpmin
cmp r1, #6 545 545 cmp r1, #6
ldreq r5, =notesOct6_Csharpmin 546 546 ldreq r5, =notesOct6_Csharpmin
pop {r0-r4,r6-r12,lr} 547 547 pop {r0-r4,r6-r12,lr}
bx lr 548 548 bx lr
getGsharpmin: 549 549 getGsharpmin:
push {r0-r4,r6-r12,lr} 550 550 push {r0-r4,r6-r12,lr}
ldr r0, =octave 551 551 ldr r0, =octave
ldr r1, [r0] 552 552 ldr r1, [r0]
cmp r1, #2 553 553 cmp r1, #2
ldreq r5, =notesOct2_Gsharpmin 554 554 ldreq r5, =notesOct2_Gsharpmin
cmp r1, #3 555 555 cmp r1, #3
ldreq r5, =notesOct3_Gsharpmin 556 556 ldreq r5, =notesOct3_Gsharpmin
cmp r1, #4 557 557 cmp r1, #4
ldreq r5, =notesOct4_Gsharpmin 558 558 ldreq r5, =notesOct4_Gsharpmin
cmp r1, #5 559 559 cmp r1, #5
ldreq r5, =notesOct5_Gsharpmin 560 560 ldreq r5, =notesOct5_Gsharpmin
cmp r1, #6 561 561 cmp r1, #6
ldreq r5, =notesOct6_Gsharpmin 562 562 ldreq r5, =notesOct6_Gsharpmin
pop {r0-r4,r6-r12,lr} 563 563 pop {r0-r4,r6-r12,lr}
bx lr 564 564 bx lr
getDsharpmin: 565 565 getDsharpmin:
push {r0-r4,r6-r12,lr} 566 566 push {r0-r4,r6-r12,lr}
ldr r0, =octave 567 567 ldr r0, =octave
ldr r1, [r0] 568 568 ldr r1, [r0]
cmp r1, #2 569 569 cmp r1, #2
ldreq r5, =notesOct2_Dsharpmin 570 570 ldreq r5, =notesOct2_Dsharpmin
cmp r1, #3 571 571 cmp r1, #3
ldreq r5, =notesOct3_Dsharpmin 572 572 ldreq r5, =notesOct3_Dsharpmin
cmp r1, #4 573 573 cmp r1, #4
ldreq r5, =notesOct4_Dsharpmin 574 574 ldreq r5, =notesOct4_Dsharpmin
cmp r1, #5 575 575 cmp r1, #5
ldreq r5, =notesOct5_Dsharpmin 576 576 ldreq r5, =notesOct5_Dsharpmin
cmp r1, #6 577 577 cmp r1, #6
ldreq r5, =notesOct6_Dsharpmin 578 578 ldreq r5, =notesOct6_Dsharpmin
pop {r0-r4,r6-r12,lr} 579 579 pop {r0-r4,r6-r12,lr}
bx lr 580 580 bx lr
getAsharpmin: 581 581 getAsharpmin:
push {r0-r4,r6-r12,lr} 582 582 push {r0-r4,r6-r12,lr}
ldr r0, =octave 583 583 ldr r0, =octave
ldr r1, [r0] 584 584 ldr r1, [r0]
cmp r1, #2 585 585 cmp r1, #2
ldreq r5, =notesOct2_Asharpmin 586 586 ldreq r5, =notesOct2_Asharpmin
cmp r1, #3 587 587 cmp r1, #3
ldreq r5, =notesOct3_Asharpmin 588 588 ldreq r5, =notesOct3_Asharpmin
cmp r1, #4 589 589 cmp r1, #4
ldreq r5, =notesOct4_Asharpmin 590 590 ldreq r5, =notesOct4_Asharpmin
cmp r1, #5 591 591 cmp r1, #5
ldreq r5, =notesOct5_Asharpmin 592 592 ldreq r5, =notesOct5_Asharpmin
cmp r1, #6 593 593 cmp r1, #6
ldreq r5, =notesOct6_Asharpmin 594 594 ldreq r5, =notesOct6_Asharpmin
pop {r0-r4,r6-r12,lr} 595 595 pop {r0-r4,r6-r12,lr}
bx lr 596 596 bx lr
getDmin: 597 597 getDmin:
push {r0-r4,r6-r12,lr} 598 598 push {r0-r4,r6-r12,lr}
ldr r0, =octave 599 599 ldr r0, =octave
ldr r1, [r0] 600 600 ldr r1, [r0]
cmp r1, #2 601 601 cmp r1, #2
ldreq r5, =notesOct2_Dmin 602 602 ldreq r5, =notesOct2_Dmin
cmp r1, #3 603 603 cmp r1, #3
ldreq r5, =notesOct3_Dmin 604 604 ldreq r5, =notesOct3_Dmin
cmp r1, #4 605 605 cmp r1, #4
ldreq r5, =notesOct4_Dmin 606 606 ldreq r5, =notesOct4_Dmin
cmp r1, #5 607 607 cmp r1, #5
ldreq r5, =notesOct5_Dmin 608 608 ldreq r5, =notesOct5_Dmin
cmp r1, #6 609 609 cmp r1, #6
ldreq r5, =notesOct6_Dmin 610 610 ldreq r5, =notesOct6_Dmin
pop {r0-r4,r6-r12,lr} 611 611 pop {r0-r4,r6-r12,lr}
bx lr 612 612 bx lr
getGmin: 613 613 getGmin:
push {r0-r4,r6-r12,lr} 614 614 push {r0-r4,r6-r12,lr}
ldr r0, =octave 615 615 ldr r0, =octave
ldr r1, [r0] 616 616 ldr r1, [r0]
cmp r1, #2 617 617 cmp r1, #2
ldreq r5, =notesOct2_Gmin 618 618 ldreq r5, =notesOct2_Gmin
cmp r1, #3 619 619 cmp r1, #3
ldreq r5, =notesOct3_Gmin 620 620 ldreq r5, =notesOct3_Gmin
cmp r1, #4 621 621 cmp r1, #4
ldreq r5, =notesOct4_Gmin 622 622 ldreq r5, =notesOct4_Gmin
cmp r1, #5 623 623 cmp r1, #5
ldreq r5, =notesOct5_Gmin 624 624 ldreq r5, =notesOct5_Gmin
cmp r1, #6 625 625 cmp r1, #6
ldreq r5, =notesOct6_Gmin 626 626 ldreq r5, =notesOct6_Gmin
pop {r0-r4,r6-r12,lr} 627 627 pop {r0-r4,r6-r12,lr}
bx lr 628 628 bx lr
getCmin: 629 629 getCmin:
push {r0-r4,r6-r12,lr} 630 630 push {r0-r4,r6-r12,lr}
ldr r0, =octave 631 631 ldr r0, =octave
ldr r1, [r0] 632 632 ldr r1, [r0]
cmp r1, #2 633 633 cmp r1, #2
ldreq r5, =notesOct2_Cmin 634 634 ldreq r5, =notesOct2_Cmin
cmp r1, #3 635 635 cmp r1, #3
ldreq r5, =notesOct3_Cmin 636 636 ldreq r5, =notesOct3_Cmin
cmp r1, #4 637 637 cmp r1, #4
ldreq r5, =notesOct4_Cmin 638 638 ldreq r5, =notesOct4_Cmin
cmp r1, #5 639 639 cmp r1, #5
ldreq r5, =notesOct5_Cmin 640 640 ldreq r5, =notesOct5_Cmin
cmp r1, #6 641 641 cmp r1, #6
ldreq r5, =notesOct6_Cmin 642 642 ldreq r5, =notesOct6_Cmin
pop {r0-r4,r6-r12,lr} 643 643 pop {r0-r4,r6-r12,lr}
bx lr 644 644 bx lr
getFmin: 645 645 getFmin:
push {r0-r4,r6-r12,lr} 646 646 push {r0-r4,r6-r12,lr}
ldr r0, =octave 647 647 ldr r0, =octave
ldr r1, [r0] 648 648 ldr r1, [r0]
cmp r1, #2 649 649 cmp r1, #2
ldreq r5, =notesOct2_Fmin 650 650 ldreq r5, =notesOct2_Fmin
cmp r1, #3 651 651 cmp r1, #3
ldreq r5, =notesOct3_Fmin 652 652 ldreq r5, =notesOct3_Fmin
cmp r1, #4 653 653 cmp r1, #4
ldreq r5, =notesOct4_Fmin 654 654 ldreq r5, =notesOct4_Fmin
cmp r1, #5 655 655 cmp r1, #5
ldreq r5, =notesOct5_Fmin 656 656 ldreq r5, =notesOct5_Fmin
cmp r1, #6 657 657 cmp r1, #6
ldreq r5, =notesOct6_Fmin 658 658 ldreq r5, =notesOct6_Fmin
pop {r0-r4,r6-r12,lr} 659 659 pop {r0-r4,r6-r12,lr}
bx lr 660 660 bx lr
getBflatmin: 661 661 getBflatmin:
push {r0-r4,r6-r12,lr} 662 662 push {r0-r4,r6-r12,lr}
ldr r0, =octave 663 663 ldr r0, =octave
ldr r1, [r0] 664 664 ldr r1, [r0]
cmp r1, #2 665 665 cmp r1, #2
ldreq r5, =notesOct2_Bflatmin 666 666 ldreq r5, =notesOct2_Bflatmin
cmp r1, #3 667 667 cmp r1, #3
ldreq r5, =notesOct3_Bflatmin 668 668 ldreq r5, =notesOct3_Bflatmin
cmp r1, #4 669 669 cmp r1, #4
ldreq r5, =notesOct4_Bflatmin 670 670 ldreq r5, =notesOct4_Bflatmin
cmp r1, #5 671 671 cmp r1, #5
ldreq r5, =notesOct5_Bflatmin 672 672 ldreq r5, =notesOct5_Bflatmin
cmp r1, #6 673 673 cmp r1, #6
ldreq r5, =notesOct6_Bflatmin 674 674 ldreq r5, =notesOct6_Bflatmin
pop {r0-r4,r6-r12,lr} 675 675 pop {r0-r4,r6-r12,lr}
bx lr 676 676 bx lr
getEflatmin: 677 677 getEflatmin:
push {r0-r4,r6-r12,lr} 678 678 push {r0-r4,r6-r12,lr}
ldr r0, =octave 679 679 ldr r0, =octave
ldr r1, [r0] 680 680 ldr r1, [r0]
cmp r1, #2 681 681 cmp r1, #2
ldreq r5, =notesOct2_Eflatmin 682 682 ldreq r5, =notesOct2_Eflatmin
cmp r1, #3 683 683 cmp r1, #3
ldreq r5, =notesOct3_Eflatmin 684 684 ldreq r5, =notesOct3_Eflatmin
cmp r1, #4 685 685 cmp r1, #4
ldreq r5, =notesOct4_Eflatmin 686 686 ldreq r5, =notesOct4_Eflatmin
cmp r1, #5 687 687 cmp r1, #5
ldreq r5, =notesOct5_Eflatmin 688 688 ldreq r5, =notesOct5_Eflatmin
cmp r1, #6 689 689 cmp r1, #6
ldreq r5, =notesOct6_Eflatmin 690 690 ldreq r5, =notesOct6_Eflatmin
pop {r0-r4,r6-r12,lr} 691 691 pop {r0-r4,r6-r12,lr}
bx lr 692 692 bx lr
getAflatmin: 693 693 getAflatmin:
push {r0-r4,r6-r12,lr} 694 694 push {r0-r4,r6-r12,lr}
ldr r0, =octave 695 695 ldr r0, =octave
ldr r1, [r0] 696 696 ldr r1, [r0]
cmp r1, #2 697 697 cmp r1, #2
ldreq r5, =notesOct2_Aflatmin 698 698 ldreq r5, =notesOct2_Aflatmin
cmp r1, #3 699 699 cmp r1, #3
ldreq r5, =notesOct3_Aflatmin 700 700 ldreq r5, =notesOct3_Aflatmin
cmp r1, #4 701 701 cmp r1, #4
ldreq r5, =notesOct4_Aflatmin 702 702 ldreq r5, =notesOct4_Aflatmin
cmp r1, #5 703 703 cmp r1, #5
ldreq r5, =notesOct5_Aflatmin 704 704 ldreq r5, =notesOct5_Aflatmin
cmp r1, #6 705 705 cmp r1, #6
ldreq r5, =notesOct6_Aflatmin 706 706 ldreq r5, =notesOct6_Aflatmin
pop {r0-r4,r6-r12,lr} 707 707 pop {r0-r4,r6-r12,lr}
bx lr 708 708 bx lr
709 709
octaveUp: 710 710 octaveUp:
push {r0-r12,lr} 711 711 push {r0-r12,lr}
ldr r0,[r6,r4] @ Checks if held 712 712 ldr r0,[r6,r4] @ Checks if held
cmp r0,#1 713 713 cmp r0,#1
bxeq lr 714 714 bxeq lr
mov r0,#1 715 715 mov r0,#1
str r0,[r6,r4] 716 716 str r0,[r6,r4]
ldr r0, =octave 717 717 ldr r0, =octave
ldr r1, [r0] 718 718 ldr r1, [r0]
cmp r1, #6 @ if it's already at the highest... 719 719 cmp r1, #6 @ if it's already at the highest...
moveq r1, #3 @ go to lowest 720 720 moveq r1, #3 @ go to lowest
addne r1, r1, #1 721 721 addne r1, r1, #1
str r1,[r0] 722 722 str r1,[r0]
mov r9,r1 723 723 mov r9,r1
bl saveSettings @ save to sram 724 724 bl saveSettings @ save to sram
pop {r0-r12,lr} 725 725 pop {r0-r12,lr}
bx lr 726 726 bx lr
octaveDown: 727 727 octaveDown:
push {r0-r12,lr} 728 728 push {r0-r12,lr}
ldr r0,[r6,r4] @ Checks if held 729 729 ldr r0,[r6,r4] @ Checks if held
cmp r0,#1 730 730 cmp r0,#1
bxeq lr 731 731 bxeq lr
mov r0,#1 732 732 mov r0,#1
str r0,[r6,r4] 733 733 str r0,[r6,r4]
ldr r0, =octave 734 734 ldr r0, =octave
ldr r1, [r0] 735 735 ldr r1, [r0]
cmp r1, #3 @ if it's already at the lowest... 736 736 cmp r1, #3 @ if it's already at the lowest...
moveq r1, #6 @ go to highest 737 737 moveq r1, #6 @ go to highest
subne r1, r1, #1 738 738 subne r1, r1, #1
str r1,[r0] 739 739 str r1,[r0]
mov r9,r1 740 740 mov r9,r1
bl saveSettings @ save to sram 741 741 bl saveSettings @ save to sram
pop {r0-r12,lr} 742 742 pop {r0-r12,lr}
bx lr 743 743 bx lr
musicalkeyUp: 744 744 musicalkeyUp:
push {r0-r12,lr} 745 745 push {r0-r12,lr}
ldr r0,[r6,r4] @ Checks if held. 746 746 ldr r0,[r6,r4] @ Checks if held.
cmp r0,#1 747 747 cmp r0,#1
bxeq lr 748 748 bxeq lr
mov r0,#1 749 749 mov r0,#1
str r0,[r6,r4] 750 750 str r0,[r6,r4]
ldr r0, =key 751 751 ldr r0, =key
ldr r1, [r0] 752 752 ldr r1, [r0]
cmp r1, #14 @ if it's already at the highest... 753 753 cmp r1, #14 @ if it's already at the highest...
moveq r1, #0 @ go to lowest 754 754 moveq r1, #0 @ go to lowest
addne r1, r1, #1 755 755 addne r1, r1, #1
str r1,[r0] 756 756 str r1,[r0]
mov r9,r1 757 757 mov r9,r1
bl saveSettings @save to sram 758 758 bl saveSettings @save to sram
pop {r0-r12,lr} 759 759 pop {r0-r12,lr}
bx lr 760 760 bx lr
musicalkeyDown: 761 761 musicalkeyDown:
push {r0-r12,lr} 762 762 push {r0-r12,lr}
ldr r0,[r6,r4] @ Checks if held. 763 763 ldr r0,[r6,r4] @ Checks if held.
cmp r0,#1 764 764 cmp r0,#1
bxeq lr 765 765 bxeq lr
mov r0,#1 766 766 mov r0,#1
str r0,[r6,r4] 767 767 str r0,[r6,r4]
ldr r0, =key 768 768 ldr r0, =key
ldr r1, [r0] 769 769 ldr r1, [r0]
cmp r1, #0 @ if it's already at the lowest... 770 770 cmp r1, #0 @ if it's already at the lowest...
moveq r1, #14 @ go to highest 771 771 moveq r1, #14 @ go to highest
subne r1, r1, #1 772 772 subne r1, r1, #1
str r1,[r0] 773 773 str r1,[r0]
mov r9,r1 774 774 mov r9,r1
bl saveSettings @save to sram 775 775 bl saveSettings @save to sram
pop {r0-r12,lr} 776 776 pop {r0-r12,lr}
bx lr 777 777 bx lr
778 778
displayData: @ edit synthText to show Key and Oct 779 779 displayData: @ edit synthText to show Key and Oct
push {r0-r12,lr} 780 780 push {r0-r12,lr}
781 781
ldr r0,=key @ get address of key 782 782 ldr r0,=key @ get address of key
ldr r0,[r0,#4] @ load maj/min flag 783 783 ldr r0,[r0,#4] @ load maj/min flag
cmp r0,#0 @ is it major? 784 784 cmp r0,#0 @ is it major?
bleq displayKeyMaj @if it is show the key's base note 785 785 bleq displayKeyMaj @if it is show the key's base note
cmp r0,#1 786 786 cmp r0,#1
bleq displayKeyMin @ else show the minor version 787 787 bleq displayKeyMin @ else show the minor version
788 788
ldr r4,=synthText 789 789 ldr r4,=synthText
790 790
add r6,r6,#2 @ inc location 791 791 add r6,r6,#1 @ inc location
ldr r0,=octave @ get address of octave 792 792 ldr r0,=octave @ get address of octave
ldrh r0,[r0] @ load octave's content 793 793 ldrh r0,[r0] @ load octave's content
add r0,r0,#48 @ add 0's tile number 794 794 add r0,r0,#48 @ add 0's tile number
strh r0,[r4,r6] @ store it 795 795 strb r0,[r4,r6] @ store it
@@ if key is major display maj 796 796 @@ if key is major display maj
ldr r0,=key 797 797 ldr r0,=key
ldr r0,[r0,#4] 798 798 ldr r0,[r0,#4]
cmp r0,#0 799 799 cmp r0,#0
blne displayMin @ display minor 800 800 blne displayMin @ display minor
bleq displayMaj @ display major 801 801 bleq displayMaj @ display major
802 802
pop {r0-r12,lr} 803 803 pop {r0-r12,lr}
bx lr 804 804 bx lr
805 805
displayMaj: @ display "maj" r4 must be address of synthText r6 must be current map index 806 806 displayMaj: @ display "maj" r4 must be address of synthText r6 must be current map index
push {r0-r5,r7-r12,lr} 807 807 push {r0-r5,r7-r12,lr}
add r6,r6,#2 @ load location to place tile 808 808 add r6,r6,#1 @ load location to place tile
ldrh r0,=109 @ load index for 'm' 809 809 ldrh r0,=109 @ load index for 'm'
strh r0,[r4,r6] @ change tile map 810 810 strb r0,[r4,r6] @ change tile map
add r6,r6,#2 811 811 add r6,r6,#1
ldrh r0,=97 @ load index for 'a' 812 812 ldrh r0,=97 @ load index for 'a'
strh r0,[r4,r6] @ change tile map 813 813 strb r0,[r4,r6] @ change tile map
add r6,r6,#2 814 814 add r6,r6,#1
ldrh r0,=106 @ load index for 'j' 815 815 ldrh r0,=106 @ load index for 'j'
strh r0,[r4,r6] @ change tile map 816 816 strb r0,[r4,r6] @ change tile map
pop {r0-r5,r7-r12,lr} 817 817 pop {r0-r5,r7-r12,lr}
bx lr 818 818 bx lr
819 819
displayMin: @ same as displayMaj 820 820 displayMin: @ same as displayMaj but for minor scales
push {r0-r5,r7-r12,lr} 821 821 push {r0-r5,r7-r12,lr}
add r6,r6,#2 @ load location to place tile 822 822 add r6,r6,#1 @ load location to place tile
ldrh r0,=109 @ load index for 'm' 823 823 ldrh r0,=109 @ load index for 'm'
strh r0,[r4,r6] @ change tile map 824 824 strb r0,[r4,r6] @ change tile map
add r6,r6,#2 @ inc location 825 825 add r6,r6,#1 @ inc location
ldrh r0,=105 @ load index for 'i' 826 826 ldrh r0,=105 @ load index for 'i'
strh r0,[r4,r6] @ change tile map 827 827 strb r0,[r4,r6] @ change tile map
add r6,r6,#2 @ inc location 828 828 add r6,r6,#1 @ inc location
ldrh r0,=110 @ load index for 'n' 829 829 ldrh r0,=110 @ load index for 'n'
strh r0,[r4,r6] @ change tile map 830 830 strb r0,[r4,r6] @ change tile map
pop {r0-r5,r7-r12,lr} 831 831 pop {r0-r5,r7-r12,lr}
bx lr 832 832 bx lr
833 833
displayKeyMaj: 834 834 displayKeyMaj:
push {r0-r5,r7-r12,lr} 835 835 push {r0-r5,r7-r12,lr}
ldr r4,=synthText 836 836 ldr r4,=synthText
ldr r0,=key 837 837 ldr r0,=key
ldr r0,[r0] 838 838 ldr r0,[r0]
cmp r0,#0 839 839 cmp r0,#0
ldreqh r0,=67 @ C 840 840 ldreqh r0,=67 @ C
@@ Sharp Key Sigs Major @@ 841 841 @@ Sharp Key Sigs Major @@
cmp r0,#1 842 842 cmp r0,#1
ldreqh r0,=71 @ G 843 843 ldreqh r0,=71 @ G
cmp r0,#2 844 844 cmp r0,#2
ldreqh r0,=68 @ Dmaj 845 845 ldreqh r0,=68 @ Dmaj
cmp r0,#3 846 846 cmp r0,#3
ldreqh r0,=65 @ Amaj 847 847 ldreqh r0,=65 @ Amaj
cmp r0,#4 848 848 cmp r0,#4
ldreqh r0,=69 @ Emaj 849 849 ldreqh r0,=69 @ Emaj
cmp r0,#5 850 850 cmp r0,#5
ldreqh r0,=66 @ Bmaj 851 851 ldreqh r0,=66 @ Bmaj
cmp r0,#6 852 852 cmp r0,#6
ldreqh r0,=70 @ F#maj 853 853 ldreqh r0,=70 @ F#maj
moveq r3,#1 @ sharp flag 854 854 moveq r3,#1 @ sharp flag
cmp r0,#7 855 855 cmp r0,#7
ldreqh r0,=67 @ C#maj 856 856 ldreqh r0,=67 @ C#maj
moveq r3,#1 @ sharp flag 857 857 moveq r3,#1 @ sharp flag
@@ Flat Key Sigs Major @@ 858 858 @@ Flat Key Sigs Major @@
cmp r0,#8 859 859 cmp r0,#8
ldreqh r0,=70 @ Fmaj 860 860 ldreqh r0,=70 @ Fmaj
cmp r0,#9 861 861 cmp r0,#9
ldreqh r0,=66 @ Bbmaj 862 862 ldreqh r0,=66 @ Bbmaj
moveq r3,#2 @ flat flag 863 863 moveq r3,#2 @ flat flag
cmp r0,#10 864 864 cmp r0,#10
ldreqh r0,=69 @ Ebmaj 865 865 ldreqh r0,=69 @ Ebmaj
moveq r3,#2 @ flat flag 866 866 moveq r3,#2 @ flat flag
cmp r0,#11 867 867 cmp r0,#11
ldreqh r0,=65 @ Abmaj 868 868 ldreqh r0,=65 @ Abmaj
moveq r3,#2 @ flat flag 869 869 moveq r3,#2 @ flat flag
cmp r0,#12 870 870 cmp r0,#12
ldreqh r0,=68 @ Dbmaj 871 871 ldreqh r0,=68 @ Dbmaj
moveq r3,#2 @ flat flag 872 872 moveq r3,#2 @ flat flag
cmp r0,#13 873 873 cmp r0,#13
ldreqh r0,=71 @ Gbmaj 874 874 ldreqh r0,=71 @ Gbmaj
moveq r3,#2 @ flat flag 875 875 moveq r3,#2 @ flat flag
cmp r0,#14 876 876 cmp r0,#14
ldreqh r0,=67 @ Cbmaj 877 877 ldreqh r0,=67 @ Cbmaj
moveq r3,#2 @ flat flag 878 878 moveq r3,#2 @ flat flag
879 879
ldr r6,=1216 @ Store the tile id 880 880 ldr r6,=608 @ Store the tile id
strh r0,[r4,r6] 881 881 strb r0,[r4,r6]
882 882
add r6,r6,#2 883 883 add r6,r6,#1
ldrh r0,=32 884 884 ldrb r0,=32
strh r0,[r4,r6] 885 885 strb r0,[r4,r6]
@@ Display # or b if sharp or flat 886 886 @@ Display # or b if sharp or flat
cmp r3,#1 887 887 cmp r3,#1
ldreqh r0,=128 @@ sharp sign 888 888 ldreqb r0,=128 @@ sharp sign
streqh r0,[r4,r6] 889 889 streqb r0,[r4,r6]
cmp r3,#2 890 890 cmp r3,#2
ldreqh r0,=129 @@ flat sign 891 891 ldreqb r0,=129 @@ flat sign
streqh r0,[r4,r6] 892 892 streqb r0,[r4,r6]
pop {r0-r5,r7-r12,lr} 893 893 pop {r0-r5,r7-r12,lr}
bx lr 894 894 bx lr
895 895
displayKeyMin: 896 896 displayKeyMin:
push {r0-r5,r7-r12,lr} 897 897 push {r0-r5,r7-r12,lr}
ldr r4,=synthText 898 898 ldr r4,=synthText
ldr r0,=key 899 899 ldr r0,=key
ldr r0,[r0] 900 900 ldr r0,[r0]
cmp r0,#0 901 901 cmp r0,#0
ldreqh r0,=65 @ A 902 902 ldreqh r0,=65 @ A
@@ Sharp Key Sigs Major @@ 903 903 @@ Sharp Key Sigs Major @@
cmp r0,#1 904 904 cmp r0,#1
ldreqh r0,=69 @ E 905 905 ldreqh r0,=69 @ E
cmp r0,#2 906 906 cmp r0,#2
ldreqh r0,=66 @ B 907 907 ldreqh r0,=66 @ B
cmp r0,#3 908 908 cmp r0,#3
ldreqh r0,=70 @ F# 909 909 ldreqh r0,=70 @ F#
moveq r3,#1 @ sharp flag 910 910 moveq r3,#1 @ sharp flag
cmp r0,#4 911 911 cmp r0,#4
ldreqh r0,=67 @ C# 912 912 ldreqh r0,=67 @ C#
moveq r3,#1 @ sharp flag 913 913 moveq r3,#1 @ sharp flag
cmp r0,#5 914 914 cmp r0,#5
ldreqh r0,=71 @ G# 915 915 ldreqh r0,=71 @ G#
moveq r3,#1 @ sharp flag 916 916 moveq r3,#1 @ sharp flag
cmp r0,#6 917 917 cmp r0,#6
ldreqh r0,=68 @ D# 918 918 ldreqh r0,=68 @ D#
moveq r3,#1 @ sharp flag 919 919 moveq r3,#1 @ sharp flag
cmp r0,#7 920 920 cmp r0,#7
ldreqh r0,=65 @ A# 921 921 ldreqh r0,=65 @ A#
moveq r3,#1 @ sharp flag 922 922 moveq r3,#1 @ sharp flag
@@ Flat Key Sigs Major @@ 923 923 @@ Flat Key Sigs Major @@
cmp r0,#8 924 924 cmp r0,#8
ldreqh r0,=68 @ D 925 925 ldreqh r0,=68 @ D
cmp r0,#9 926 926 cmp r0,#9
ldreqh r0,=71 @ G 927 927 ldreqh r0,=71 @ G
cmp r0,#10 928 928 cmp r0,#10
ldreqh r0,=67 @ C 929 929 ldreqh r0,=67 @ C
cmp r0,#11 930 930 cmp r0,#11
ldreqh r0,=70 @ F 931 931 ldreqh r0,=70 @ F
cmp r0,#12 932 932 cmp r0,#12
ldreqh r0,=66 @ Bb 933 933 ldreqh r0,=66 @ Bb
moveq r3,#2 @ flat flag 934 934 moveq r3,#2 @ flat flag
cmp r0,#13 935 935 cmp r0,#13
ldreqh r0,=69 @ Eb 936 936 ldreqh r0,=69 @ Eb
moveq r3,#2 @ flat flag 937 937 moveq r3,#2 @ flat flag
cmp r0,#14 938 938 cmp r0,#14
ldreqh r0,=65 @ Ab 939 939 ldreqh r0,=65 @ Ab
moveq r3,#2 @ flat flag 940 940 moveq r3,#2 @ flat flag
941 941
ldr r6,=1216 @ Store the tile id 942 942 ldr r6,=608 @ Store the tile id
strh r0,[r4,r6] 943 943 strb r0,[r4,r6]
944 944
add r6,r6,#2 945 945 add r6,r6,#1
ldrh r0,=32 946 946 ldrb r0,=32
strh r0,[r4,r6] 947 947 strb r0,[r4,r6]
@@ Display # or b if sharp or flat 948 948 @@ Display # or b if sharp or flat
cmp r3,#1 949 949 cmp r3,#1
ldreqh r0,=128 @@ sharp sign 950 950 ldreqb r0,=128 @@ sharp sign
streqh r0,[r4,r6] 951 951 streqb r0,[r4,r6]
cmp r3,#2 952 952 cmp r3,#2
ldreqh r0,=129 @@ flat sign 953 953 ldreqb r0,=129 @@ flat sign
streqh r0,[r4,r6] 954 954 streqb r0,[r4,r6]
pop {r0-r5,r7-r12,lr} 955 955 pop {r0-r5,r7-r12,lr}
bx lr 956 956 bx lr
957 957
@ vim: syntax=armasm 958 958 @ vim: syntax=armasm
959 959