; void screensize (unsigned char* x, unsigned char* y);
;
- .export _screensize
- .export xsize, ysize
-
- .import popax
- .importzp ptr1, ptr2
-
-.proc _screensize
-
- sta ptr1 ; Store the y pointer
- stx ptr1+1
-
- jsr popax ; get the x pointer
- sta ptr2
- stx ptr2+1
-
- ldy #0
- lda xsize
- sta (ptr2),y
- lda ysize
- sta (ptr1),y
- rts
-
-.endproc
-
-
-.bss
-
-xsize: .res 1
-ysize: .res 1
-
-
+ .export _screensize
+
+ .import popsreg
+ .import screensize
+ .importzp ptr1, sreg
+
+.proc _screensize
+
+ sta ptr1 ; Store the y pointer
+ stx ptr1+1
+ jsr popsreg ; Get the x pointer into sreg
+ jsr screensize ; Get screensize into X/Y
+ tya ; Get Y size into A
+
+.IFP02
+ ldy #0
+ sta (ptr1),y
+ txa
+ sta (sreg),y
+.ELSE
+ sta (ptr1)
+ txa
+ sta (sreg)
+.ENDIF
+
+ rts
+
+.endproc