15 00001'006201$INPUT: JSR @.CPYL PUSH THE STACK 16 00002'054432 STA 3.SP SAVE THE STACK POINTER 17 00003'006017 .SYSTM 18 00004'007400 .GCHAR 19 00005'000401 JMP .+1 EAT THE ERROR RETURN 20 00006'024424 LDA 1.MAX GET VALUE FOR FIRST NON-NUNTRAL RETURN 21 00007'030426 LDA 2.TBLP GET POINTER TO THE TADLE 22 00010'125400 LP: INC 1,1 BUMP LHAT TO RETBRN 23 00011'035000 LDA 3,0,2 GET THE ENTRY 24 00012'175015 MDV* 3,3SNR CHECK FOR B--END OF TABLE 25 00013'000405 JMP NUM MUST BE A NUMSER 26 00014'116415 SUB* 0,3,SNR IS THIS THE INPUT? 27 00015'000413 JMP RET YES, SO PREPARE TO RETURN 28 00016'151400 INC 2.2 BUMP TO NEXT ENTRY 29 00017'000771 JMP LP CONTINUE 30 00020'024413 NUM:LDA 1.057 ASCII 0-1 31 00021'122400 SUB 1.0 32 00022'024410 LDA 1,MAX GET MAXIMUM ALLDWED 33 00023'122032 ADCZ* 1,0,SZC IS THIS 0002 INPUT 057 000033' 1/30 1/41 FS. 000001 1/12 1/14 I 177611 1/11 1/36 INPUT 000001' 1/15 LP 000010' 1/22 1/29 MAX 000032' 1/20 1/32 1/40 NUM 000020' 1/25 1/30 RET 000030' 1/27 1/38 SP 000034' 1/16 1/35 1/42 STUFF 000025' 1/35 1/39 TBLP 000035' 1/21 1/43 .CPYL 000001SX 1/15 .FRET 000002SX 1/37 0001 D64 01 D64B.SR -- SUBROUTINE TO DISPLAY 64 X 64 ELEMENT SUEPICHURES 02 ON THE RAMTEK GX1000 03 04 CALLING PARAMETERS--IN A BUFFER POINTED TO BY ACI 05 06 D(1,1) = 64 x 64 ELEMENT ARRAY 07 T(1) =WINDDLJ TRANSFORM ARRAY 08 DMIN = MIMIMUM DENSITY VALUE 09 DMAX = MAXIMUM DENSITY VALUE 10 IX = DISPLAY X START 11 IY = DISPLAY Y START 12 13 .TITL D64 14 .ENT D64 15 .EXTH RMTKL.RMTKW 16 .NREL 17 18 RAMTEK DISPLAY COMMANDS 19 20 002000 BLK = 2000 21 000003 CD = 3 22 000001 CH0 = 1 23 000002 CH1 = 2 24 016000 LOM = 16000 25 022000 LE1 = 22000 26 032000 LLI = 32000 27 004000 SDC = 04000 28 006000 SSC = 06000 29 046000 SSM = 46000 30 @ 0002 D64 01 00000'054506 D64:STA 3,RET SAVE RETURN 02 00001'131000 MOY 1.2 POINTER TO AC2 03 00002'021000 LDA 0,0,2 GET DATA ADDRESS 04 00003'040505 STA 0,DA 05 00004'021002 LDA 0,2,2 GET MINIMUM VALUE 06 00005'040504 STA 0,DMN 07 00006'021003 LDA 0,3,2 GET MAXIMUM VALUE 08 00007'040503 STA 0,DMX 09 00010'021001 LDA 0,1.2 GET TRANSFORM ARRAY ADDRESS 10 00011'040476 STA 0,TRNS SAVE 11 00012'024501 LDA 1.RKLE1 GET RAMTEK LE1 INSTRUCTION 12 00013'021004 LDA 0,4,2 GET X START 13 00014'101120 MOVZL 0,0 TIMES 2 14 00015'123000 ADD 1,0 15 00016'040523 STA 0,X0 SAVE IN DISPLAY LIST 16 00017'024475 LDA 1,RKLL1 GET RAMTEK LL1 IMSTRUCTION 17 00020'021005 LDA 0,8,2 GET Y START POSITION 18 00021'101120 MOVZL 0,0 TIMES TWO 19 00022'123000 ADD 1,0 20 00023'040517 STA 0,Y0 SAVE IN DISPLAY LIST 21 00024'040473 LDA 0,K64 22 00025'040473 STA 0,K64CT 23 00026'020457 D64LP:LDA 0,BLK0A SETUP BLOCK ADDRESSES 24 00027'040467 STA 0,BLK0P 25 00030'020471 LDA 0,K16 26 00031'040471 STA 0,K16CT @ 0003 D64 01 00032'020471 D16LP: LDA 0,K4 02 00033'040471 STA 0,K4CT 03 00034'102400 SUB 0,0 ;ZERO NIBBLE WORDS 04 00035'040470 STA 0,WD0 05 00036'022452 D4LP:: LDA@ 0,DA ;GET NEXT JNTENSITY VALUE 06 00037'010451 ISZ DA ;PDINT TO NEXT ARRAY ELEMENT 07 00040'024452 LDA 1.DMX ;CHECK FOR UPBER BOUND 08 00041'106512 SUBL # 0,1,SZC 09 00042'121000 MDV 1,0 ;UXE UPPER BOUND 10 00043'024446 LDA 1,DMN ;CHECK LOWER BOUND 11 00044'122512 SUBL # 1.0,SZC 12 00045'121000 MDV 1,0 ;USE LOWER BOUND 13 00046'122400 SUB 1,0 ;COMPUTE TABLE OFFSET 14 00047'030440 LDA 2,TRNS ;GET ARRAY ADDRESS 15 00050'113000 ADD 0,2 ;COMPUTE FINAL ADDRES 16 00051'021000 LDA 0,0,2 ;GET TRANSFORM VALUE 17 00052'024455 LDA 1,0170 ;GET CHANNEL 0 MASK 18 00053'107620 ANDZR 0,1 ;GET CHANNEL 0 BITS 19 00054'125220 MDVZR 1,1 ;SHIFT RIGHT THREE PLACES 20 00055'125220 MDVZR 1,1 21 00056'020447 LDA 0,WD0 ;GET PARTIALLY FILLED SLK WDS 22 00057'101120 MOVZL 0,0 ; ;MOVE NIBBLES LEFT ONE PLRCE 23 00060'101120 MOVZL 0.0 24 00061'101120 MOVZL 0,0 25 00062'101120 MOVZL 0.0 26 00063'123000 ADD 1,0 ;ADD NEW NIBBLE 27 00064'040441 STA 0,WD0 28 00065'014437 DSZ K4CT ;4 NIBBLES YET? 29 00066'000750 JMP D4LP ;NO 30 00067'020436 LDA 0,WD0 ;STORE NIBBLE BLK WORDS INTO 31 00070'042426 STA@ 0,BLKOP 32 00071'010425 ISZ BLK0P 33 00072'014430 DSZ K16CT ;16 BLK WORDS DONE? 34 00073'000737 JMP D16LP ;NO @ 0004 D64 01 00074'020434 LDA 0,DLSTA GET DISPLAY LIST ADDRESS 02 00075'024434 LDA 1,CKCNT GET LIST LMGTH 03 00076'030434 LDA 2,CMD GET DEVICE SELECT 04 00077'006434 JSR@ ITV FEED IT TO RAMTEK 05 00100'006434 JSR@; ITVW WAIT FOR COMPLETION 06 00101'010441 ISZ Y0 UPDATE Y START POSITIONS 07 00102'010440 ISZ Y0 08 00103'014415 DS2 K64CT 64 MINES DONE? 09 00104'000722 JMP D64LP NO 10 00105'002401 JMP GRET RETURN 11 12 00106'000000 RET: 0 13 00107'000000 TRNS: 0 14 00110'000000 DA: 0 ARRAY ADDRESS 15 00111'000000 DMN: 0 MIN WINDOW DENS.