ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/Frodo4/Src/ROlib.s
Revision: 1.1
Committed: 2003-07-01T17:14:04Z (20 years, 9 months ago) by cebix
Branch: MAIN
Log Message:
imported files

File Contents

# User Rev Content
1 cebix 1.1 ;*
2     ;* ROlib.h
3     ;*
4     ;* Assembler interface to RISC OS
5     ;* (C) 1997 Andreas Dehmel
6     ;*
7     ;* Frodo (C) 1994-1997,2002 Christian Bauer
8     ;*
9     ;* This program is free software; you can redistribute it and/or modify
10     ;* it under the terms of the GNU General Public License as published by
11     ;* the Free Software Foundation; either version 2 of the License, or
12     ;* (at your option) any later version.
13     ;*
14     ;* This program is distributed in the hope that it will be useful,
15     ;* but WITHOUT ANY WARRANTY; without even the implied warranty of
16     ;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17     ;* GNU General Public License for more details.
18     ;*
19     ;* You should have received a copy of the GNU General Public License
20     ;* along with this program; if not, write to the Free Software
21     ;* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22    
23    
24     a1 rn 0
25     a2 rn 1
26     a3 rn 2
27     a4 rn 3
28     v1 rn 4
29     v2 rn 5
30     v3 rn 6
31     v4 rn 7
32     v5 rn 8
33     v6 rn 9
34     sl rn 10
35     fp rn 11
36     ip rn 12
37     sp rn 13
38     lr rn 14
39     pc rn 15
40    
41    
42     idfn (C) 1997 by Andreas Dehmel
43    
44     ; ************ WIMP STUFF ****************
45    
46     AREA CODE, READONLY
47     align 4
48     export |Wimp_Initialise|
49     = "Wimp_Initialise"
50     align 4
51    
52     |Wimp_Initialise|:
53     swi 0x600c0 ;XWimp_Initialise
54     movvs a1,#0 ;return 0 if error
55     movvc a1,a2
56     movs pc,lr
57    
58    
59     AREA CODE, READONLY
60     align 4
61     export |Wimp_CloseDown|
62     = "Wimp_CloseDown"
63     align 4
64    
65     |Wimp_CloseDown|
66     swi 0x600dd ;XWimp_CloseDown
67     movvc a1,#0 ;return pointer to error block
68     movs pc,lr
69    
70    
71     AREA CODE, READONLY
72     align 4
73     export |Wimp_CreateWindow|
74     = "Wimp_CreateWindow"
75     align 4
76    
77     |Wimp_CreateWindow|:
78     mov a2,a1
79     swi 0x600c1
80     movvs a1,#0
81     movs pc,lr
82    
83    
84     AREA CODE, READONLY
85     align 4
86     export |Wimp_CreateIcon|
87     = "Wimp_CreateIcon"
88     align 4
89    
90     |Wimp_CreateIcon|:
91     swi 0x600c2
92     movvs a1,#0
93     movs pc,lr
94    
95    
96     AREA CODE, READONLY
97     align 4
98     export |Wimp_DeleteWindow|
99     = "Wimp_DeleteWindow"
100     align 4
101    
102     |Wimp_DeleteWindow|:
103     mov a2,a1
104     swi 0x600c3
105     movvc a1,#0
106     movs pc,lr
107    
108    
109     AREA CODE, READONLY
110     align 4
111     export |Wimp_DeleteIcon|
112     = "Wimp_DeleteIcon"
113     align 4
114    
115     |Wimp_DeleteIcon|:
116     mov a2,a1
117     swi 0x600c4
118     movvc a1,#0
119     movs pc,lr
120    
121    
122     AREA CODE, READONLY
123     align 4
124     export |Wimp_OpenWindow|
125     = "Wimp_OpenWindow"
126     align 4
127    
128     |Wimp_OpenWindow|:
129     mov a2,a1
130     swi 0x600c5
131     movvc a1,#0
132     movs pc,lr
133    
134    
135     AREA CODE, READONLY
136     align 4
137     export |Wimp_CloseWindow|
138     = "Wimp_CloseWindow"
139     align 4
140    
141     |Wimp_CloseWindow|:
142     mov a2,a1
143     swi 0x600c6
144     movvc a1,#0
145     movs pc,lr
146    
147    
148     AREA CODE, READONLY
149     align 4
150     export |Wimp_Poll|
151     = "Wimp_Poll"
152     align 4
153    
154     |Wimp_Poll|:
155     mov a4,a3
156     swi 0x600c7
157     mvnvs a1,#0 ;return -1 if error
158     movs pc,lr
159    
160    
161     AREA CODE, READONLY
162     align 4
163     export |Wimp_RedrawWindow|
164     = "Wimp_RedrawWindow"
165     align 4
166    
167     |Wimp_RedrawWindow|:
168     mov a2,a1
169     swi 0x600c8
170     movvs a1,#0
171     movs pc,lr
172    
173    
174     AREA CODE, READONLY
175     align 4
176     export |Wimp_UpdateWindow|
177     = "Wimp_UpdateWindow"
178     align 4
179    
180     |Wimp_UpdateWindow|
181     mov a2,a1
182     swi 0x600c9
183     movvs a1,#0
184     movs pc,lr
185    
186    
187     AREA CODE, READONLY
188     align 4
189     export |Wimp_GetRectangle|
190     = "Wimp_GetRectangle"
191     align 4
192    
193     |Wimp_GetRectangle|:
194     mov a2,a1
195     swi 0x600ca
196     movvs a1,#0
197     movs pc,lr
198    
199    
200     AREA CODE, READONLY
201     align 4
202     export |Wimp_GetWindowState|
203     = "Wimp_GetWindowState"
204     align 4
205    
206     |Wimp_GetWindowState|:
207     mov a2,a1
208     swi 0x600cb
209     movvc a1,#0
210     movs pc,lr
211    
212    
213     AREA CODE, READONLY
214     align 4
215     export |Wimp_GetWindowInfo|
216     = "Wimp_GetWindowInfo"
217     align 4
218    
219     |Wimp_GetWindowInfo|:
220     mov a2,a1
221     swi 0x600cc
222     movvc a1,#0
223     movs pc,lr
224    
225    
226     AREA CODE, READONLY
227     align 4
228     export |Wimp_SetIconState|
229     = "Wimp_SetIconState"
230     align 4
231    
232     |Wimp_SetIconState|:
233     mov a2,a1
234     swi 0x600cd
235     movvc a1,#0
236     movs pc,lr
237    
238    
239     AREA CODE, READONLY
240     align 4
241     export |Wimp_GetIconState|
242     = "Wimp_GetIconState"
243     align 4
244    
245     |Wimp_GetIconState|:
246     mov a2,a1
247     swi 0x600ce
248     movvc a1,#0
249     movs pc,lr
250    
251    
252     AREA CODE, READONLY
253     align 4
254     export |Wimp_GetPointerInfo|
255     = "Wimp_GetPointerInfo"
256     align 4
257    
258     |Wimp_GetPointerInfo|:
259     mov a2,a1
260     swi 0x600cf
261     movvc a1,#0
262     movs pc,lr
263    
264    
265     AREA CODE, READONLY
266     align 4
267     export |Wimp_DragBox|
268     = "Wimp_DragBox"
269     align 4
270    
271     |Wimp_DragBox|:
272     mov a2,a1
273     swi 0x600d0
274     movvc a1,#0
275     movs pc,lr
276    
277    
278     AREA CODE, READONLY
279     align 4
280     export |Wimp_ForceRedraw|
281     = "Wimp_ForceRedraw"
282     align 4
283    
284     |Wimp_ForceRedraw|:
285     stmdb sp!,{v1}
286     ldr v1,[sp,#4]
287     swi 0x600d1
288     movvc a1,#0
289     ldmia sp!,{v1}
290     movs pc,lr
291    
292    
293     AREA CODE, READONLY
294     align 4
295     export |Wimp_SetCaretPosition|
296     = "Wimp_SetCaretPosition"
297     align 4
298    
299     |Wimp_SetCaretPosition|:
300     stmdb sp!,{v1,v2}
301     add v1,sp,#8
302     ldmia v1,{v1,v2}
303     swi 0x600d2
304     movvc a1,#0
305     ldmia sp!,{v1,v2}
306     movs pc,lr
307    
308    
309     AREA CODE, READONLY
310     align 4
311     export |Wimp_GetCaretPosition|
312     = "Wimp_GetCaretPosition"
313     align 4
314    
315     |Wimp_GetCaretPosition|:
316     mov a2,a1
317     swi 0x600d3
318     movvc a1,#0
319     movs pc,lr
320    
321    
322     AREA CODE, READONLY
323     align 4
324     export |Wimp_CreateMenu|
325     = "Wimp_CreateMenu"
326     align 4
327    
328     |Wimp_CreateMenu|:
329     mov a4,a3
330     mov a3,a2
331     mov a2,a1
332     swi 0x600d4
333     movvc a1,#0
334     movs pc,lr
335    
336    
337     AREA CODE, READONLY
338     align 4
339     export |Wimp_SetExtent|
340     = "Wimp_SetExtent"
341     align 4
342    
343     |Wimp_SetExtent|:
344     swi 0x600d7
345     movvc a1,#0
346     movs pc,lr
347    
348    
349     AREA CODE, READONLY
350     align 4
351     export |Wimp_OpenTemplate|
352     = "Wimp_OpenTemplate"
353     align 4
354    
355     |Wimp_OpenTemplate|:
356     mov a2,a1
357     swi 0x600d9
358     movvc a1,#0
359     movs pc,lr
360    
361    
362     AREA CODE, READONLY
363     align 4
364     export |Wimp_CloseTemplate|
365     = "Wimp_CloseTemplate"
366     align 4
367    
368     |Wimp_CloseTemplate|:
369     swi 0x600da
370     movvc a1,#0
371     movs pc,lr
372    
373    
374     AREA CODE, READONLY
375     align 4
376     export |Wimp_LoadTemplate|
377     = "Wimp_LoadTemplate"
378     align 4
379    
380     |Wimp_LoadTemplate|:
381     stmdb sp!,{a1,a2,v1-v4,lr} ;7 registers
382     mov v1,a4 ;Fonts
383     mov a4,a3 ;IndirectLimit
384     ldr a3,[a2] ;*Indirect
385     ldr a2,[a1] ;*Template
386     add v2,sp,#28
387     ldmia v2,{v2,v4}
388     ldr v3,[v4] ;Position
389     swi 0x600db
390     addvs sp,sp,#8
391     bvs |WLTexit|
392     str v3,[v4] ;store Position
393     ldmia sp!,{v1,v2}
394     str a2,[v1]
395     str a3,[v2]
396     mov a1,#0
397     |WLTexit|:
398     ldmia sp!,{v1-v4,pc}^
399    
400    
401     AREA CODE, READONLY
402     align 4
403     export |Wimp_ProcessKey|
404     = "Wimp_ProcessKey"
405     align 4
406    
407     |Wimp_ProcessKey|:
408     swi 0x600dc
409     movvc a1,#0
410     movs pc,lr
411    
412    
413     AREA CODE, READONLY
414     align 4
415     export |Wimp_StartTask|
416     = "Wimp_StartTask"
417     align 4
418    
419     |Wimp_StartTask|:
420     swi 0x600de
421     movs pc,lr
422    
423    
424     AREA CODE, READONLY
425     align 4
426     export |Wimp_ReportError|
427     = "Wimp_ReportError"
428     align 4
429    
430     |Wimp_ReportError|:
431     swi 0x600df
432     movvs a1,#0
433     movvc a1,a2
434     movs pc,lr
435    
436    
437     AREA CODE, READONLY
438     align 4
439     export |Wimp_GetWindowOutline|
440     = "Wimp_GetWindowOutline"
441     align 4
442    
443     |Wimp_GetWindowOutline|:
444     mov a2,a1
445     swi 0x600e0
446     movvc a1,#0
447     movs pc,lr
448    
449    
450     AREA CODE, READONLY
451     align 4
452     export |Wimp_PollIdle|
453     = "Wimp_PollIdle"
454     align 4
455    
456     |Wimp_PollIdle|:
457     swi 0x600e1
458     movs pc,lr
459    
460    
461     AREA CODE, READONLY
462     align 4
463     export |Wimp_PlotIcon|
464     = "Wimp_PlotIcon"
465     align 4
466    
467     |Wimp_PlotIcon|:
468     mov a2,a1
469     swi 0x600e2
470     movvc a1,#0
471     movs pc,lr
472    
473    
474     AREA CODE, READONLY
475     align 4
476     export |Wimp_SendMessage|
477     = "Wimp_SendMessage"
478     align 4
479    
480     |Wimp_SendMessage|:
481     swi 0x600e7
482     movvc a1,#0
483     movs pc,lr
484    
485    
486     AREA CODE, READONLY
487     align 4
488     export |Wimp_CreateSubMenu|
489     = "Wimp_CreateSubMenu"
490     align 4
491    
492     |Wimp_CreateSubMenu|:
493     mov a4,a3
494     mov a3,a2
495     mov a2,a1
496     swi 0x600e8
497     movvc a1,#0
498     movs pc,lr
499    
500    
501     AREA CODE, READONLY
502     align 4
503     export |Wimp_SpriteOp|
504     = "Wimp_SpriteOp"
505     align 4
506    
507     |Wimp_SpriteOp|:
508     stmdb sp!,{v1-v4,lr}
509     add v1,sp,#20
510     ldmia v1,{v1-v4}
511     swi 0x600e9
512     movvc a1,#0
513     ldmia sp!,{v1-v4,pc}^
514    
515    
516     AREA CODE, READONLY
517     align 4
518     export |Wimp_BaseOfSprites|
519     = "Wimp_BaseOfSprites"
520     align 4
521    
522     |Wimp_BaseOfSprites|:
523     mov a3,a1
524     mov a4,a2
525     swi 0x600ea
526     strvc a1,[a3]
527     strvc a2,[a4]
528     movvc a1,#0
529     movs pc,lr
530    
531    
532     AREA CODE, READONLY
533     align 4
534     export |Wimp_CommandWindow|
535     = "Wimp_CommandWindow"
536     align 4
537    
538     |Wimp_CommandWindow|:
539     swi 0x600ef
540     movvc a1,#0
541     movs pc,lr
542    
543    
544     AREA CODE, READONLY
545     align 4
546     export |Wimp_TransferBlock|
547     = "Wimp_TransferBlock"
548     align 4
549    
550     |Wimp_TransferBlock|:
551     str v1,[sp,#-4]!
552     ldr v1,[sp,#4]
553     swi 0x600f1
554     ldr v1,[sp],#4
555     movvc a1,#0
556     movs pc,lr
557    
558    
559     AREA CODE, READONLY
560     align 4
561     export |Wimp_SpriteInfo|
562     = "Wimp_SpriteInfo"
563     align 4
564    
565     |Wimp_SpriteInfo|:
566     stmdb sp!,{v1-v6,lr}
567     mov v4,a2
568     mov v5,a3
569     mov v6,a4
570     mov a3,a1
571     mov a1,#40
572     movvc a1,#0
573     swi 0x600e9 ;Wimp_SpriteOp
574     str a4,[v4]
575     str v1,[v5]
576     str v3,[v6]
577     ldmia sp!,{v1-v6,pc}^
578    
579    
580     AREA CODE, READONLY
581     align 4
582     export |DragASprite_Start|
583     = "DragASprite_Start"
584     align 4
585    
586     |DragASprite_Start|:
587     swi 0x62400
588     movvc a1,#0
589     movs pc,lr
590    
591    
592     AREA CODE, READONLY
593     align 4
594     export |DragASprite_Stop|
595     = "DragASprite_Stop"
596     align 4
597    
598     |DragASprite_Stop|:
599     swi 0x62401
600     movvc a1,#0
601     movs pc,lr
602    
603    
604     AREA CODE, READONLY
605     align 4
606     export |ColourTrans_SelectTable|
607     = "ColourTrans_SelectTable"
608     align 4
609    
610     |ColourTrans_SelectTable|:
611     stmdb sp!,{v1-v4,lr}
612     add v1,sp,#20
613     ldmia v1,{v1-v4}
614     ldr v1,[v1]
615     swi 0x60740
616     addvs sp,sp,#4
617     bvs |CTSTexit|
618     mov a1,v1
619     ldr v1,[sp],#4
620     str a1,[v1]
621     mov a1,#0
622     |CTSTexit|:
623     ldmia sp!,{v2-v4,pc}^
624    
625    
626     AREA CODE, READONLY
627     align 4
628     export |ColourTrans_SetFontColours|
629     = "ColourTrans_SetFontColours"
630     align 4
631    
632     |ColourTrans_SetFontColours|:
633     swi 0x6074f
634     movvc a1,#0
635     movs pc,lr
636    
637    
638     AREA CODE, READONLY
639     align 4
640     export |ColourTrans_SetColour|
641     = "ColourTrans_SetColour"
642     align 4
643    
644     |ColourTrans_SetColour|:
645     str v1,[sp,#-4]!
646     mov v1,a3
647     mov a4,a2
648     swi 0x6075e
649     movvc a1,#0
650     ldr v1,[sp],#4
651     movs pc,lr
652    
653    
654     AREA CODE, READONLY
655     align 4
656     export |ColourTrans_SetGCOL|
657     = "ColourTrans_SetGCOL"
658     align 4
659    
660     |ColourTrans_SetGCOL|:
661     str v1,[sp,#-4]!
662     mov v1,a3
663     mov a4,a2
664     swi 0x60743
665     movvc a1,#0
666     ldr v1,[sp],#4
667     movs pc,lr
668    
669    
670    
671    
672    
673     ; ************* OS STUFF ***************
674    
675     AREA CODE, READONLY
676     align 4
677     export |OS_ReadModeVariable|
678     = "OS_ReadModeVariable"
679     align 4
680    
681     |OS_ReadModeVariable|:
682     swi 0x20035
683     mvncs a1,#0
684     movcc a1,a3
685     movs pc,lr
686    
687    
688     AREA CODE, READONLY
689     align 4
690     export |OS_ReadDynamicArea|
691     = "OS_ReadDynamicArea"
692     align 4
693    
694     |OS_ReadDynamicArea|:
695     swi 0x2005c
696     movvs a1,#0
697     movs pc,lr
698    
699    
700     AREA CODE, READONLY
701     align 4
702     export |ModeColourNumber|
703     = "ModeColourNumber"
704     align 4
705    
706     |ModeColourNumber|:
707     swi 0x60744 ;XColourTrans_ReturnColourNumber
708     mvnvs a1,#0
709     movs pc,lr
710    
711    
712     AREA CODE, READONLY
713     align 4
714     export |ScanKeys|
715     = "ScanKeys"
716     align 4
717    
718     |ScanKeys|:
719     mov a2,a1
720     mov a1,#121
721     swi 0x20006 ;XOS_Byte 121
722     mov a1,a2
723     movs pc,lr
724    
725    
726     AREA CODE, READONLY
727     align 4
728     export |ReadKeyboardStatus|
729     = "ReadKeyboardStatus"
730     align 4
731    
732     |ReadKeyboardStatus|:
733     mov a1,#202
734     mov a2,#0
735     mov a3,#255
736     swi 0x20006
737     mov a1,a2
738     movs pc,lr
739    
740    
741     AREA CODE, READONLY
742     align 4
743     export |ReadDragType|
744     = "ReadDragType"
745     align 4
746    
747     |ReadDragType|:
748     mov a1,#161
749     mov a2,#28
750     swi 0x20006
751     and a1,a3,#2
752     movs pc,lr
753    
754    
755     AREA CODE, READONLY
756     align 4
757     export |SetMousePointer|
758     = "SetMousePointer"
759     align 4
760    
761     |SetMousePointer|:
762     mov a2,a1
763     mov a1,#106
764     swi 0x20006
765     mov a1,a2
766     movs pc,lr
767    
768    
769     AREA CODE, READONLY ;sprite ops (I have 52, 53 and 56 in mind)
770     align 4
771     export |OS_SpriteOp|
772     = "OS_SpriteOp"
773     align 4
774    
775     |OS_SpriteOp|:
776     stmdb sp!,{v1-v4,lr}
777     add v1,sp,#20
778     ldmia v1,{v1-v4}
779     swi 0x2002e
780     movvc a1,#0
781     ldmia sp!,{v1-v4,pc}^
782    
783    
784     AREA CODE, READONLY
785     align 4
786     export |OS_Plot|
787     = "OS_Plot"
788     align 4
789    
790     |OS_Plot|:
791     swi 0x20045
792     movs pc,lr
793    
794    
795     AREA CODE, READONLY
796     align 4
797     export |MouseBoundingBox|
798     = "MouseBoundingBox"
799     align 4
800    
801     |MouseBoundingBox|:
802     mov a2,a1
803     mov a1,#21
804     swi 0x20007 ;OS_Word21,1
805     movvc a1,#0
806     movs pc,lr
807    
808    
809     AREA CODE, READONLY
810     align 4
811     export |OS_ReadMonotonicTime|
812     = "OS_ReadMonotonicTime"
813     align 4
814    
815     |OS_ReadMonotonicTime|:
816     swi 0x20042
817     movs pc,lr
818    
819    
820     AREA CODE, READONLY
821     align 4
822     export |OS_ReadC|
823     = "OS_ReadC"
824     align 4
825    
826     |OS_ReadC|:
827     mov a2,a1
828     swi 0x20004
829     strccb a1,[a2]
830     movcc a1,#0
831     movs pc,lr
832    
833    
834     AREA CODE, READONLY
835     align 4
836     export |OS_ReadLine|
837     = "OS_ReadLine"
838     align 4
839    
840     |OS_ReadLine|:
841     stmdb sp!,{a1,v1,v2}
842     stmdb sp!,{a1-a3}
843     mov a1,#200
844     mov a2,#1
845     mvn a3,#1
846     swi 0x20006
847     mov v2,a2
848     ldmia sp!,{a1-a3}
849     ldr v1,[sp,#8]
850     swi 0x2000e
851     mov v1,a2
852     mov a1,#200
853     mov a2,v2
854     mvn a3,#0
855     swi 0x20006
856     mov a2,v1
857     ldmia sp!,{a4,v1,v2}
858     bic a4,a4,#0xc0000000
859     mov a1,#10
860     strb a1,[a4,a2] ;make compatible with fgets (terminated by 10, not 13)
861     mov a1,a2
862     rsbcs a1,a1,#0
863     movs pc,lr
864    
865    
866     AREA CODE, READONLY
867     align 4
868     export |OS_ReadEscapeState|
869     = "OS_ReadEscapeState"
870     align 4
871    
872     |OS_ReadEscapeState|:
873     swi 0x2002c
874     movcc a1,#0
875     movcs a1,#1
876     movs pc,lr
877    
878    
879     AREA CODE, READONLY
880     align 4
881     export |ReadCatalogueInfo|
882     = "ReadCatalogueInfo"
883     align 4
884    
885     |ReadCatalogueInfo|:
886     stmdb sp!,{v1-v3,lr}
887     mov v3,a2
888     mov a2,a1
889     mov a1,#17
890     swi 0x20008 ;OS_File 17
891     stmia v3,{a3-v2}
892     ldmia sp!,{v1-v3,pc}^
893    
894    
895     AREA CODE, READONLY
896     align 4
897     export |ReadDirName|
898     = "ReadDirName"
899     align 4
900    
901     |ReadDirName|:
902     stmdb sp!,{v1-v4,lr}
903     mov v4,a3 ;preserve dir_env *
904     ldmia a3,{a4-v3}
905     mov a3,a2
906     mov a2,a1
907     mov a1,#9
908     swi 0x2000c ;OS_GBPB 9
909     stmia v4,{a4,v1}
910     movvc a1,#0
911     ldmia sp!,{v1-v4,pc}^
912    
913    
914     AREA CODE, READONLY
915     align 4
916     export |ReadDirNameInfo|
917     = "ReadDirNameInfo"
918     align 4
919    
920     |ReadDirNameInfo|:
921     stmdb sp!,{v1-v4,lr}
922     mov v4,a3
923     ldmia a3,{a4-v3}
924     mov a3,a2
925     mov a2,a1
926     mov a1,#10
927     swi 0x2000c ;OS_GBPB 10
928     stmia v4,{a4,v1}
929     movvc a1,#0
930     ldmia sp!,{v1-v4,pc}^
931    
932    
933     AREA CODE, READONLY
934     align 4
935     export |DeleteFile|
936     = "DeleteFile"
937     align 4
938    
939     |DeleteFile|:
940     stmdb sp!,{v1,v2}
941     mov a2,a1
942     mov a1,#6
943     swi 0x20008 ;OS_File 6
944     movvc a1,#0
945     ldmia sp!,{v1,v2}
946     movs pc,lr
947    
948    
949     AREA CODE, READONLY
950     align 4
951     export |ConvertInteger1|
952     = "ConvertInteger1"
953     align 4
954    
955     |ConvertInteger1|:
956     swi 0x200d9
957     mov a1,a2
958     movs pc,lr
959    
960    
961     AREA CODE, READONLY
962     align 4
963     export |ConvertInteger2|
964     = "ConvertInteger2"
965     align 4
966    
967     |ConvertInteger2|:
968     swi 0x200da
969     mov a1,a2
970     movs pc,lr
971    
972    
973     AREA CODE, READONLY
974     align 4
975     export |ConvertInteger3|
976     = "ConvertInteger3"
977     align 4
978    
979     |ConvertInteger3|:
980     swi 0x200db
981     mov a1,a2
982     movs pc,lr
983    
984    
985     AREA CODE, READONLY
986     align 4
987     export |ConvertInteger4|
988     = "ConvertInteger4"
989     align 4
990    
991     |ConvertInteger4|:
992     swi 0x200dc
993     mov a1,a2
994     movs pc,lr
995    
996    
997     AREA CODE, READONLY
998     align 4
999     export |OS_FlushBuffer|
1000     = "OS_FlushBuffer"
1001     align 4
1002    
1003     |OS_FlushBuffer|:
1004     mov a2,a1
1005     mov a1,#21
1006     swi 0x20006
1007     movvc a1,#0
1008     movs pc,lr
1009    
1010    
1011    
1012    
1013    
1014    
1015     ; ************ MISC STUFF ***************
1016    
1017     AREA CODE, READONLY
1018     align 4
1019     export |Joystick_Read|
1020     = "Joystick_Read"
1021     align 4
1022    
1023     |Joystick_Read|:
1024     swi 0x63f40 ;XJoystick_Read (Acorn)
1025     bvc |JRexit|
1026     ldr a2,[a1] ;get error-number
1027     eor a2,a2,#0xe6
1028     eors a2,a2,#0x100
1029     mvneq a1,#1 ;-2 ==> unknown SWI
1030     mvnne a1,#0 ;-1 ==> error generated from joystick module
1031     |JRexit|:
1032     movs pc,lr
1033    
1034    
1035    
1036    
1037    
1038     ; ************** SOUND SWIS *************
1039    
1040     AREA CODE, READONLY
1041     align 4
1042     export |Sound_Volume|
1043     = "Sound_Volume"
1044     align 4
1045    
1046     |Sound_Volume|:
1047     swi 0x60180
1048     mvnvs a1,#0
1049     movs pc,lr
1050    
1051    
1052     ; *********** DIGITAL RENDERER **********
1053    
1054     DigiRendChunk equ 0x6F700 ;X flag set
1055    
1056    
1057     AREA CODE, READONLY
1058     align 4
1059     export |DigitalRenderer_Activate|
1060     = "DigitalRenderer_Activate"
1061     align 4
1062    
1063     |DigitalRenderer_Activate|:
1064     swi DigiRendChunk
1065     movvc a1,#0
1066     movs pc,lr
1067    
1068    
1069     AREA CODE, READONLY
1070     align 4
1071     export |DigitalRenderer_Deactivate|
1072     = "DigitalRenderer_Deactivate"
1073     align 4
1074    
1075     |DigitalRenderer_Deactivate|:
1076     swi DigiRendChunk+1
1077     movvc a1,#0
1078     movs pc,lr
1079    
1080    
1081     AREA CODE, READONLY
1082     align 4
1083     export |DigitalRenderer_Pause|
1084     = "DigitalRenderer_Pause"
1085     align 4
1086    
1087     |DigitalRenderer_Pause|:
1088     swi DigiRendChunk+2
1089     movvc a1,#0
1090     movs pc,lr
1091    
1092    
1093     AREA CODE, READONLY
1094     align 4
1095     export |DigitalRenderer_Resume|
1096     = "DigitalRenderer_Resume"
1097     align 4
1098    
1099     |DigitalRenderer_Resume|:
1100     swi DigiRendChunk+3
1101     movvc a1,#0
1102     movs pc,lr
1103    
1104    
1105     AREA CODE, READONLY
1106     align 4
1107     export |DigitalRenderer_GetTables|
1108     = "DigitalRenderer_GetTables"
1109     align 4
1110    
1111     |DigitalRenderer_GetTables|:
1112     mov a3,a1
1113     mov a4,a2
1114     swi DigiRendChunk+4
1115     strvc a1,[a3]
1116     strvc a2,[a4]
1117     movvc a1,#0
1118     movs pc,lr
1119    
1120    
1121     AREA CODE, READONLY
1122     align 4
1123     export |DigitalRenderer_ReadState|
1124     = "DigitalRenderer_ReadState"
1125     align 4
1126    
1127     |DigitalRenderer_ReadState|:
1128     swi DigiRendChunk+5
1129     mvnvs a1,#0 ;returns -1 on error
1130     movs pc,lr
1131    
1132    
1133     AREA CODE, READONLY
1134     align 4
1135     export |DigitalRenderer_NewSample|
1136     = "DigitalRenderer_NewSample"
1137     align 4
1138    
1139     |DigitalRenderer_NewSample|:
1140     swi DigiRendChunk+6
1141     movvc a1,#0
1142     movs pc,lr
1143    
1144    
1145     ; *********** PLOTTER **************
1146    
1147     BPlotChunk equ 0x70100 ;X bit set
1148    
1149     AREA CODE, READONLY
1150     align 4
1151     export |PlotZoom1|
1152     = "PlotZoom1"
1153     align 4
1154    
1155     |PlotZoom1|:
1156     swi BPlotChunk
1157     movs pc,lr
1158    
1159    
1160     AREA CODE, READONLY
1161     align 4
1162     export |PlotZoom2|
1163     = "PlotZoom2"
1164     align 4
1165    
1166     |PlotZoom2|:
1167     swi BPlotChunk+1