;Entry_ADFClipScreen
;------------------------
;Clips the video output.  Used to scale a game to fill the
;screen
;
;Entry:
; R0 - command line
; R1 - number of parameters
; R12 - pointer to module private word

.Entry_ADFClipScreen
 STMFD   R13!, {R1-R6, R10, R14}
 LDR     R12, [R12]

 MOV     R3, #0				;width
 MOV     R4, #0				;height
 MOV     R5, #0				;clip left
 MOV     R6, #0				;clip right

 MOVS    R10, R1			;do we have any parameters
 BEQ     _done				;NO

 MOV     R1, R0
 MOV     R0, #10			;base 10
 SWI     XOS_ReadUnsigned		;read the value PRM1-460
 BVS     _exit				;exit on error
 MOV     R3, R2

 LDRB    R2, [R1], #1
 TEQ     R2, #ASC(":")
 BNE     _invalid_ratio

 SWI     XOS_ReadUnsigned		;read the value PRM1-460
 BVS     _exit				;exit on error
 MOV     R4, R2

 SUBS    R10, R10, #1
 BEQ     _done
 SWI     XOS_ReadUnsigned		;read the value PRM1-460
 BVS     _exit				;exit on error
 MOV     R5, R2

 SUBS    R10, R10, #1
 BEQ     _done
 SWI     XOS_ReadUnsigned		;read the value PRM1-460
 BVS     _exit				;exit on error
 MOV     R6, R2

 ._done
 SUBS    R0, R0, R0			;clear V

 ._exit
 ADD     R10, R12, #overlay_clip - VARS
 STMIA   R10, {R3-R6}

LDMFD   R13!, {R1-R6, R10, PC}


._invalid_ratio
 MOV     R0, #1<<31
 ADDS    R0, R0, #1
 ADR     R0, Error_invalid_ratio
 B       _exit
