1; GEOS KERNAL by Berkeley Softworks
2; reverse engineered by Maciej Witkowiak, Michael Steil
3;
4; Graphics library: inline syscalls
5
6.include "const.inc"
7.include "geossym.inc"
8.include "geosmac.inc"
9.include "config.inc"
10.include "gkernal.inc"
11.include "c64.inc"
12
13.import __GetInlineDrwParms
14.import DoInlineReturn
15.import _Rectangle
16.import _RecoverRectangle
17.import _ImprintRectangle
18.import _FrameRectangle
19.import _GraphicsString
20.import _BitmapUp
21
22.global _i_Rectangle
23.global _i_RecoverRectangle
24.global _i_ImprintRectangle
25.global _i_FrameRectangle
26.global _i_GraphicsString
27.global _i_BitmapUp
28
29.segment "graph2b"
30
31;---------------------------------------------------------------
32; i_Rectangle                                             $C19F
33;
34; Same as Rectangle with data after the jsr
35;---------------------------------------------------------------
36_i_Rectangle:
37	jsr __GetInlineDrwParms
38	jsr _Rectangle
39.ifdef wheels_size
40.global DoInlineReturn7
41DoInlineReturn7:
42.endif
43	php
44	lda #7
45	jmp DoInlineReturn
46
47.segment "graph2d"
48
49;---------------------------------------------------------------
50; i_RecoverRectangle                                      $C1A5
51;
52; Same as RecoverRectangle with data after the jsr
53;---------------------------------------------------------------
54_i_RecoverRectangle:
55	jsr __GetInlineDrwParms
56	jsr _RecoverRectangle
57.ifdef wheels_size
58	jmp DoInlineReturn7
59.else
60	php
61	lda #7
62	jmp DoInlineReturn
63.endif
64
65.segment "graph2f"
66
67;---------------------------------------------------------------
68; i_ImprintRectangle                                      $C253
69;
70; Same as ImprintRectangle with data after the jsr
71;---------------------------------------------------------------
72_i_ImprintRectangle:
73	jsr __GetInlineDrwParms
74	jsr _ImprintRectangle
75.ifdef wheels_size
76	jmp DoInlineReturn7
77.else
78	php
79	lda #7
80	jmp DoInlineReturn
81.endif
82
83.segment "graph2h"
84
85;---------------------------------------------------------------
86; i_FrameRectangle                                        $C1A2
87;
88; Same as FrameRectangle with data after the jsr
89; with the pattern byte the last
90;---------------------------------------------------------------
91_i_FrameRectangle:
92	jsr __GetInlineDrwParms
93	iny
94	lda (returnAddress),Y
95	jsr _FrameRectangle
96	php
97	lda #8
98	jmp DoInlineReturn
99
100.segment "graph2j"
101
102;---------------------------------------------------------------
103; i_GraphicsString                                        $C1A8
104;
105; Same as GraphicsString with data after the jsr
106;---------------------------------------------------------------
107_i_GraphicsString:
108	PopB r0L
109	pla
110	inc r0L
111	bne @1
112	addv 1
113@1:	sta r0H
114	jsr _GraphicsString
115	jmp (r0)
116
117.segment "graph3b"
118
119;---------------------------------------------------------------
120; i_BitmapUp                                              $C1AB
121;
122; Same as BitmapUp with data after the jsr
123;---------------------------------------------------------------
124_i_BitmapUp:
125	PopW returnAddress
126	ldy #1
127	lda (returnAddress),y
128	sta r0L
129	iny
130	lda (returnAddress),y
131	sta r0H
132	iny
133	lda (returnAddress),y
134	sta r1L
135	iny
136	lda (returnAddress),y
137	sta r1H
138	iny
139	lda (returnAddress),y
140	sta r2L
141	iny
142	lda (returnAddress),y
143	sta r2H
144	jsr _BitmapUp
145	php
146	lda #7
147	jmp DoInlineReturn
148