|
@@ -26,31 +26,31 @@
|
26
|
26
|
|
27
|
27
|
section .data
|
28
|
28
|
|
29
|
|
- op_ptrs:
|
30
|
|
- dq OP.t
|
31
|
|
- dq OP.put
|
32
|
|
- dq OP.drop
|
33
|
|
- dq OP.mul
|
34
|
|
- dq OP.div
|
35
|
|
- dq OP.add
|
36
|
|
- dq OP.sub
|
37
|
|
- dq OP.mod
|
38
|
|
- dq 0 ; syntax error
|
39
|
|
- dq OP.lshift
|
40
|
|
- dq OP.rshift
|
41
|
|
- dq OP.and
|
42
|
|
- dq OP.or
|
43
|
|
- dq OP.xor
|
44
|
|
- dq OP.not
|
45
|
|
- dq OP.dup
|
46
|
|
- dq OP.pick
|
47
|
|
- dq OP.swap
|
48
|
|
- dq OP.lt
|
49
|
|
- dq OP.gt
|
50
|
|
- dq OP.eq
|
51
|
|
-
|
52
|
|
-
|
53
|
|
- audiospec_wanted:
|
|
29
|
+ op_ptrs: ; pointers on OP functions
|
|
30
|
+ dq OP.t ; a
|
|
31
|
+ dq OP.put ; b
|
|
32
|
+ dq OP.drop ; c
|
|
33
|
+ dq OP.mul ; d
|
|
34
|
+ dq OP.div ; e
|
|
35
|
+ dq OP.add ; f
|
|
36
|
+ dq OP.sub ; g
|
|
37
|
+ dq OP.mod ; h
|
|
38
|
+ dq 0 ; i : syntax error
|
|
39
|
+ dq OP.lshift ; j
|
|
40
|
+ dq OP.rshift ; k
|
|
41
|
+ dq OP.and ; l
|
|
42
|
+ dq OP.or ; m
|
|
43
|
+ dq OP.xor ; n
|
|
44
|
+ dq OP.not ; o
|
|
45
|
+ dq OP.dup ; p
|
|
46
|
+ dq OP.pick ; q
|
|
47
|
+ dq OP.swap ; r
|
|
48
|
+ dq OP.lt ; s
|
|
49
|
+ dq OP.gt ; t
|
|
50
|
+ dq OP.eq ; u
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+ audiospec_wanted: ; SDL_audio configuration
|
54
|
54
|
dd 8000 ; freq
|
55
|
55
|
dw AUDIO_U8 ; format
|
56
|
56
|
db 1 ; channels
|
|
@@ -62,6 +62,7 @@ section .data
|
62
|
62
|
dq 0 ; userdata
|
63
|
63
|
|
64
|
64
|
|
|
65
|
+ ; text messages
|
65
|
66
|
def_str usage, "Usage : "
|
66
|
67
|
def_str opts, {" FILE.glitch",0xA}
|
67
|
68
|
def_str openerr, {'Error opening file : "', 0xA}
|
|
@@ -70,16 +71,6 @@ section .data
|
70
|
71
|
def_str nl_error, {"Character \n is not the last one", 0xA}
|
71
|
72
|
def_str badop_error, {"Bad OP", 0xA}
|
72
|
73
|
|
73
|
|
- ;
|
74
|
|
- ; Old stuff for first oscillator
|
75
|
|
- ;
|
76
|
|
- val: db 0
|
77
|
|
- dir: db 0
|
78
|
|
-
|
79
|
|
- dot: db "."
|
80
|
|
- nl: db 0xA
|
81
|
|
-
|
82
|
|
-
|
83
|
74
|
section .bss
|
84
|
75
|
|
85
|
76
|
; glitch name (1st line) : len 16 + \0
|
|
@@ -97,7 +88,7 @@ section .bss
|
97
|
88
|
; audiospec returned from SDL
|
98
|
89
|
audiospec_recv: resb 32
|
99
|
90
|
; Event receveid from SDL
|
100
|
|
- ;event: resb 24
|
|
91
|
+ event: resb 24
|
101
|
92
|
|
102
|
93
|
section .text
|
103
|
94
|
global _start
|
|
@@ -365,12 +356,27 @@ audio_start:
|
365
|
356
|
xor rdi, rdi
|
366
|
357
|
call SDL_PauseAudio
|
367
|
358
|
|
|
359
|
+ ;0x00010001
|
|
360
|
+ ;0x00020001
|
|
361
|
+ ;0x00020101
|
|
362
|
+ ;0x00010101
|
368
|
363
|
;mov rdi, 15000
|
369
|
364
|
;call SDL_Delay
|
370
|
365
|
|
371
|
|
- xor rdi, rdi
|
|
366
|
+ ;xor rdi, rdi
|
|
367
|
+loop_event:
|
|
368
|
+ mov rdi, event
|
372
|
369
|
call SDL_WaitEvent
|
373
|
370
|
|
|
371
|
+dbg:
|
|
372
|
+ xor rdi, rdi
|
|
373
|
+ mov edi, [event]
|
|
374
|
+ mov rsi, 1
|
|
375
|
+ cmp edi, 0
|
|
376
|
+ jl exit ; SIGINT
|
|
377
|
+ cmp edi, 0x00010001 ; SDL_QUIT PRESS ?
|
|
378
|
+ je exit
|
|
379
|
+ jmp loop_event
|
374
|
380
|
|
375
|
381
|
exit:
|
376
|
382
|
call SDL_Quit
|