All pastes #913131 Raw Edit

fuck

public text v1 · immutable
·published 2008-02-21 21:14 UTC
rendered paste body
        .TITLE "Asign1"
	.PSIZE 1000,1000

	.NOLIST
	.INCLUDE	"..\\include\\ascii.i"
	.LIST
/*************CONSTANT DATA************/
	.TEXT 1
MsgProgramID:	
	.ASCIZ "WELCOME!"
	.BYTE CR,LF,0
MsgKeyPress:
	.ASCIZ "Please Enter A String"
	.BYTE CR,LF,0
MsgExit:
	.ASCIZ "Thank You Come Again!"
	.BYTE CR,LF,0
MsgStrFull:
	.ASCIZ "Sorry your memory is full!"
	.BYTE CR,LF,0
/*******************VARIABLE******************/
	.DATA
string:	.SPACE 1024,0
.EQU 	CLF,0x0D
.EQU 	EOF,0x04
.EQU	PER,0x2E
.EQU	EXP,0x21
.EQU	QUE,0x3F
.EQU	CAP,0X20
CapFlag: .WORD 1
GrammerCount: .WORD 1
/*****************PROCESS****************/
	.TEXT 0
	.GLOBAL Asign1
Asign1:
	movea.l #CapFlag,A4
	Addq.l #1,(A4)
	|movea.l (A3),#CapFlaag
	move.b #32,D2
	movea.l #MsgProgramID,a0
	jsr PrintMsg
	jsr NewLine
	movea.l #MsgKeyPress,a0
	jsr PrintMsg
	jsr NewLine
	
Get_Cha:
	jsr ConsoleIn |D0
	
	CMP.L #CLF,D0
	BEQ.W New_Line
	CMP.L #EOF,D0
	BEQ.W End_Of_Reading
	move.b D0,(A1)
	ADDQ.l #1,A1
	ADDQ.l #1,D1
	jsr ConsoleOut
	CMP.L #0,D2
	Sub.b #1,D2
	BEQ.W FULL
	move.b D0,D3
	JMP Get_Cha
New_Line:
	jsr NewLine
	|addq.l #1,D1
	move.b #0x00,D0
	move.b D0,(A1)
	movea.l A1,A3
	Suba.l	D1,A3 |point to start of string
	addq.l #1,(A4) |LOAD CAP FLAG
	jsr Grammer_Loop
	|ERORRING

	Suba.l D1,A3
	movea.l A3,A0
	jsr PrintMsg
	jsr NewLine

	move.b #0x00,D1 |Nulls out pointer to start of string
	jmp Get_Cha
Set_Cap_Flag:
	addq.l #1,(A4)
	addq.l #1,A3 |MOVE TO NEXT CHAR
	jmp Grammer_Loop
Upper_Case:
	sub.b #32,(A3)
	|sub.b #1,(A4)
	jmp Grammer_Loop
Is_Lower_Case:
	cmp.b #0x61,(A3) |if ascii value bigger or equal to Hex61 (a) then
	bge.w Upper_Case
	jmp Grammer_Loop
Grammer_Loop:
	|loops from start of string till end of string
	cmp.b #0x00,(A3) |if end of string then exit
	beq.w Exit

	cmp.b #0x20,(A3) |if characert enter is a space
	beq.w Set_Cap_Flag
	
	|bge.w Set_Cap_Flag

	cmp.b #1,(A4) |if cap flag was set then make upper case
	beq.w Is_Lower_Case
	
	addq.l #1,A3 |Move to next character
	jmp Grammer_Loop
Exit:
	rts
End_Of_Reading:
	jsr ConsoleIn
	movea.l #MsgExit,a0
	jsr PrintMsg
	jsr NewLine
	RTS
FULL:
	movea.l #MsgStrFull,A0
	jsr PrintMsg
	JMP End_Of_Reading

	RTS	| exit program
/************end of program************/