TITLE "MP1 by Douglas Jones" USE "hawk.h" USE "monitor.h" ARSIZE = 4 INT MAIN S MAIN MAIN: ; entry point STORES R1,R2 ADDI R2,R2,ARSIZE ; --- begin aplication code --- LEA R3,HEADING ; -- parameter LIL R1,PUTS JSRS R1,R1 ; puts( heading ) LIS R3,0 ; -- parameter x LIS R4,1 ; -- parameter y LIL R1,PUTAT JSRS R1,R1 ; putat( 0, 1 ) LIS R8,0 ; n = 0 LIS R9,0 ; f = 0 -- always n*(n + 1)/2 LOOP: ; do { MOVE R3,R9 ; -- parameter f, the number to output LIS R4,4 ; -- parameter 4, the field width LIL R1,PUTDEC JSRS R1,R1 ; putdec( n ) ADDSI R8,1 ; n = n + 1 ADD R9,R9,R8 ; f = f + n CMPI R8,19 BLE LOOP ; } until (R8 > 19) ; --- end aplication code --- ADDI R2,R2,-ARSIZE LOADS R1,R2 JUMPS R1 ; return ; --- begin aplication constants --- HEADING:ASCII "MP1 by Douglas Jones",0 END