johnw@reed.UUCP (John Windberg) (09/12/86)
Ok Ok after so many requests, I will post the source as the author, Michael S. Leibow sent me. It has it's copyright message in it. Copyable as long as no one makes any money on it basically. None of the keys not present on the model 4 keyboard are implimented. There is no option for printer support or ascii file transfer, but is does emulate a vt52 perfectly in all aspects If all changes made by users out there are resent to me, I will compare, combine, etc. and repost the final version in all it's glory. The only caution I can make about it is when converting it to assembler format, be careful not to delete all the commas as I had done. Good luck. Johnw@reed F1 is the delete key. F2 toggles the wrap, nowrap feature. F3 toggles the arrow keys. -----------------------------Cut Here----------------------------- 00100 ORG 3000H 00110 START PUSH HL 00120 LD A,2 00130 LD C,28 00140 RST 28H 00150 CALL CLS 00160 LD A,82 00170 LD E,'D' 00180 LD D,'O' 00190 RST 28H 00200 LD (DODCB),HL 00210 LD DE,(DODCB) 00220 LD HL,MSG 00230 LD A,13 00240 RST 28H 00250 POP HL 00260 LD DE,DCB 00270 LD A,78 00280 RST 28H 00290 LD A,(DE) 00300 CP 2AH 00310 JP NZ,CLNI 00320 PUSH DE 00330 POP HL 00340 INC HL 00350 LD A,(HL) 00360 LD E,A 00370 INC HL 00380 LD A,(HL) 00390 LD D,A 00400 LD A,82 ;CHECK TO SEE IF DRIVER 00410 ;IS ALIVE? 00420 RST 28H 00430 JP NZ,CLNI 00440 LD A,(HL) 00450 BIT 3,A 00460 JP NZ,CLNI 00470 LD (DCB),HL 00480 LD DE,(DCB) 00490 LD C,2 00500 LD A,5 00510 RST 28H ;INITIALIZE DRIVER 00520 LD A,100 ;GET HIGH$ 00530 LD B,0 00540 LD HL,0 00550 RST 28H 00560 LD (RLAST),HL 00570 LD DE,(DCB) 00580 LD IY,RSIINT 00590 LD C,4 00600 LD A,5 00610 DI 00620 RST 28H 00630 EI 00640 LOOP LD A,(BELCNT) 00650 OR A 00660 JP Z,LOOP1 00670 OUT (90H),A 00680 DEC A 00690 LD (BELCNT),A 00700 LOOP1 LD A,8 00710 RST 28H 00720 JP NZ,LOOP2 00730 CP 128 00740 JP Z,BYEBYE 00750 CP 129 00760 CALL Z,DEL 00770 CP 130 00780 JP Z,AM 00790 CP 131 00800 JP Z,F3 00810 LD C,A 00820 LD A,(AKEYS) 00830 OR A 00840 JP Z,LOOP1A 00850 LD A,C 00860 CP 8 00870 CALL Z,ALEFT 00880 CP 9 00890 CALL Z,ARIGHT 00900 CP 10 00910 CALL Z,ADOWN 00920 CP 11 00930 CALL Z,AUP 00940 LOOP1A LD A,20 00950 LD B,2 00960 LD IX,(DCB) 00970 RST 28H 00980 LOOP2 CALL RSI 00990 JP Z,LOOP 01000 PUSH AF 01010 LD A,(CODE1) 01020 OR A 01030 JP NZ,PART3 01040 LD A,(CODE) 01050 OR A 01060 JP NZ,PART2 01070 POP AF 01080 CP 27 01090 JP Z,GOTESC 01100 CP 8 01110 JP Z,BS 01120 CP 7 01130 JP Z,BELL 01140 CP 13 01150 JP Z,CR 01160 CP 10 01170 JP Z,LF 01180 CP 9 01190 JP Z,TAB 01200 CP 127 01210 JP Z,DELETE 01220 CP 32 01230 JP C,LOOP 01240 DSP PUSH AF 01250 LD A,15 01260 LD B,4 01270 RST 28H 01280 LD A,15 01290 POP BC 01300 LD C,B 01310 LD B,2 01320 RST 28H 01330 LD A,(AMFLG) 01340 OR A 01350 JP NZ,ADVNCE 01360 JP RIGHT 01370 NDSP LD A,2 01380 RST 28H 01390 JP LOOP 01400 ALEFT LD C,'D' 01410 JP AOUT 01420 ARIGHT LD C,'C' 01430 JP AOUT 01440 AUP LD C,'A' 01450 JP AOUT 01460 ADOWN LD C,'B' 01470 JP AOUT 01480 AOUT PUSH BC 01490 LD A,20 01500 LD B,2 01510 LD IX,(DCB) 01520 LD C,27 01530 RST 28H 01540 POP BC 01550 XOR A 01560 RET 01570 BS LD C,18H 01580 JP NDSP 01590 DEL LD A,127 01600 RET 01610 DELETE LD C,8 01620 JP NDSP 01630 CR LD A,15 01640 LD B,4 01650 RST 28H 01660 LD L,0 01670 LD A,15 01680 LD B,3 01690 RST 28H 01700 JP LOOP 01710 F3 LD A,(AKEYS) 01720 XOR 1 01730 LD (AKEYS),A 01740 JP LOOP 01750 AM LD A,(AMFLG) 01760 XOR 1 01770 LD (AMFLG),A 01780 JP LOOP 01790 BELL LD A,255 01800 LD (BELCNT),A 01810 JP LOOP 01820 RVON LD C,16 01830 JP NDSP 01840 RVOFF LD C,17 01850 JP NDSP 01860 RS LD A,15 01870 LD B,4 01880 RST 28H 01890 LD A,H 01900 OR A 01910 JP Z,RSCR 01920 DEC H 01930 LD A,15 01940 LD B,3 01950 RST 28H 01960 JP LOOP 01970 RSCR LD A,15 01980 LD B,6 01990 LD HL,BUFF 02000 RST 28H 02010 LD HL,BUFF+1839 02020 LD DE,BUFF+1919 02030 LD BC,1840 02040 LDDR 02050 LD HL,BUFF 02060 LD (HL),20H 02070 LD DE,BUFF+1 02080 LD BC,79 02090 LDIR 02100 LD A,15 02110 LD B,5 02120 LD HL,BUFF 02130 RST 28H 02140 JP LOOP 02150 LF LD A,15 02160 LD B,4 02170 RST 28H 02180 LF1 LD A,H 02190 CP 23 02200 JP Z,SCROLL 02210 INC H 02220 LD A,15 02230 LD B,3 02240 RST 28H 02250 JP LOOP 02260 SCROLL LD A,15 02270 LD B,6 02280 LD HL,BUFF 02290 RST 28H 02300 LD HL,BUFF+80 02310 LD DE,BUFF 02320 LD BC,1840 02330 LDIR 02340 LD HL,BUFF+1840 02350 LD DE,BUFF+1841 02360 LD (HL),20H 02370 LD BC,79 02380 LDIR 02390 LD A,15 02400 LD B,5 02410 LD HL,BUFF 02420 RST 28H 02430 JP LOOP 02440 TAB LD A,15 02450 LD B,4 02460 RST 28H 02470 LD A,L 02480 ADD A,8 02490 CP 80 02500 JP NC,TAB2 02510 AND 248 02520 TAB1 LD L,A 02530 LD A,15 02540 LD B,3 02550 RST 28H 02560 JP LOOP 02570 TAB2 LD A,79 02580 JP TAB1 02590 CLNI LD HL,ERROR 02600 LD A,13 02610 LD DE,(DODCB) 02620 RST 28H 02630 LD A,22 02640 LD L,8 02650 LD H,0 02660 RST 28H 02670 JP 0000 02680 GOTESC LD A,1 02690 LD (CODE),A 02700 JP LOOP 02710 PART2 XOR A 02720 LD (CODE),A 02730 POP AF 02740 CP 'A' 02750 JP Z,UP 02760 CP 'B' 02770 JP Z,DOWN 02780 CP 'C' 02790 JP Z,RIGHT 02800 CP 'D' 02810 JP Z,LEFT 02820 CP 'J' 02830 JP Z,CLD 02840 CP 'K' 02850 JP Z,CLL 02860 CP 'H' 02870 JP Z,HOME 02880 CP 'I' 02890 JP Z,RS 02900 CP 'L' 02910 JP Z,ADDLNE 02920 CP 'M' 02930 JP Z,DELLNE 02940 CP 'Y' 02950 JP Z,CM 02960 CP 'p' 02970 JP Z,RVON 02980 CP 'q' 02990 JP Z,RVOFF 03000 JP LOOP 03010 UP LD A,15 03020 LD B,4 03030 RST 28H 03040 LD A,H 03050 OR A 03060 JP Z,LOOP 03070 DEC H 03080 LD A,15 03090 LD B,3 03100 RST 28H 03110 JP LOOP 03120 DOWN LD A,15 03130 LD B,4 03140 RST 28H 03150 LD A,H 03160 CP 23 03170 JP Z,LOOP 03180 INC H 03190 LD A,15 03200 LD B,3 03210 RST 28H 03220 JP LOOP 03230 RIGHT LD A,15 03240 LD B,4 03250 RST 28H 03260 LD A,L 03270 CP 79 03280 JP Z,LOOP 03290 RIGHT1 INC L 03300 LD A,15 03310 LD B,3 03320 RST 28H 03330 JP LOOP 03340 ADVNCE LD A,15 03350 LD B,4 03360 RST 28H 03370 LD A,L 03380 CP 79 03390 JP NZ,RIGHT1 03400 LD L,0 03410 LD A,15 03420 LD B,3 03430 RST 28H 03440 JP LF 03450 LEFT LD A,15 03460 LD B,4 03470 RST 28H 03480 LD A,L 03490 OR A 03500 JP Z,LOOP 03510 DEC L 03520 LD A,15 03530 LD B,3 03540 RST 28H 03550 JP LOOP 03560 HOME LD H,0 03570 LD L,0 03580 LD A,15 03590 LD B,3 03600 RST 28H 03610 JP LOOP 03620 CLD LD A,15 03630 LD B,6 03640 LD HL,BUFF 03650 RST 28H 03660 CALL CURPOS 03670 PUSH HL 03680 EX DE,HL 03690 LD HL,2048 03700 OR A 03710 SBC HL,DE 03720 PUSH HL 03730 POP BC 03740 POP HL 03750 LD DE,BUFF 03760 ADD HL,DE 03770 PUSH HL 03780 POP DE 03790 INC DE 03800 LD (HL),20H 03810 LDIR 03820 LD A,15 03830 LD B,5 03840 LD HL,BUFF 03850 RST 28H 03860 JP LOOP 03870 CLL LD A,15 03880 LD B,6 03890 LD HL,BUFF 03900 RST 28H 03910 CALL CURPOS 03920 LD DE,BUFF 03930 ADD HL,DE 03940 PUSH HL 03950 LD A,15 03960 LD B,4 03970 RST 28H 03980 LD A,L 03990 POP HL 04000 CLL1 LD (HL),20H 04010 INC HL 04020 INC A 04030 CP 80 04040 JP NZ,CLL1 04050 LD A,15 04060 LD B,5 04070 LD HL,BUFF 04080 RST 28H 04090 JP LOOP 04100 ADDLNE LD A,15 04110 LD B,4 04120 RST 28H 04130 LD L,0 04140 LD A,15 04150 LD B,3 04160 RST 28H 04170 CALL CURPOS 04180 LD DE,1840 04190 CALL CPHLDE 04200 JP NC,CLL 04210 PUSH HL 04220 LD HL,BUFF 04230 LD A,15 04240 LD B,6 04250 RST 28H 04260 LD DE,BUFF 04270 POP HL 04280 ADD HL,DE 04290 EX DE,HL 04300 PUSH DE 04310 LD HL,BUFF+1840 04320 OR A 04330 SBC HL,DE 04340 PUSH HL 04350 POP BC 04360 LD HL,BUFF+1839 04370 LD DE,BUFF+1919 04380 LDDR 04390 POP HL 04400 XOR A 04410 JP CLL1 04420 DELLNE LD A,15 04430 LD B,4 04440 RST 28H 04450 LD L,0 04460 LD A,15 04470 LD B,3 04480 RST 28H 04490 CALL CURPOS 04500 LD DE,1840 04510 CALL CPHLDE 04520 JP NC,CLL 04530 PUSH HL 04540 LD HL,BUFF 04550 LD A,15 04560 LD B,6 04570 RST 28H 04580 LD DE,BUFF 04590 POP HL 04600 ADD HL,DE 04610 EX DE,HL 04620 PUSH DE 04630 LD HL,BUFF+1840 04640 OR A 04650 SBC HL,DE 04660 PUSH HL 04670 POP BC 04680 POP HL 04690 PUSH HL 04700 LD DE,80 04710 ADD HL,DE 04720 POP DE 04730 LDIR 04740 LD HL,BUFF+1840 04750 XOR A 04760 JP CLL1 04770 CURPOS LD A,15 04780 LD B,4 04790 RST 28H 04800 LD A,H 04810 LD C,L 04820 LD HL,0 04830 LD DE,80 04840 CLLOOP OR A 04850 JP Z,CLLPE 04860 ADD HL,DE 04870 DEC A 04880 JP CLLOOP 04890 CLLPE LD B,0 04900 ADD HL,BC 04910 RET 04920 CM LD A,255 04930 LD (CODE1),A 04940 JP LOOP 04950 PART3 LD A,(CODE1) 04960 CP 255 04970 JP NZ,PART3B 04980 POP AF 04990 LD (CODE1),A 05000 JP LOOP 05010 PART3B LD A,(CODE1) 05020 SUB 32 05030 LD H,A 05040 POP AF 05050 SUB 32 05060 LD L,A 05070 LD A,15 05080 LD B,3 05090 RST 28H 05100 XOR A 05110 LD (CODE1),A 05120 JP LOOP 05130 CLS LD HL,BUFF 05140 LD (HL),20H 05150 LD DE,BUFF+1 05160 LD BC,2048 05170 LDIR 05180 LD A,15 05190 LD B,5 05200 LD HL,BUFF 05210 RST 28H 05220 LD HL,0 05230 LD A,15 05240 LD B,3 05250 RST 28H 05260 RET 05270 BYEBYE LD DE,(DCB) 05280 LD IY,0 05290 LD C,4 05300 LD A,5 05310 DI 05320 RST 28H 05330 EI 05340 LD HL,0 05350 LD A,22 05360 RST 28H 05370 JP 0000 05380 RSIINT DI 05390 PUSH AF 05400 PUSH BC 05410 PUSH DE 05420 PUSH HL 05430 PUSH IX 05440 PUSH IY 05450 LD A,20 05460 LD B,1 05470 LD IX,(DCB) 05480 RST 28H 05490 JP NZ,RSLVE 05500 LD HL,(RPUT) 05510 LD (HL),A 05520 CALL RTEND 05530 LD (RPUT),HL 05540 RSLVE POP IY 05550 POP IX 05560 POP HL 05570 POP DE 05580 POP BC 05590 POP AF 05600 EI 05610 RET 05620 RSI LD HL,(RTAK) 05630 LD DE,(RPUT) 05640 CALL CPHLDE 05650 RET Z 05660 LD A,(HL) 05670 CALL RTEND 05680 LD (RTAK),HL 05690 RET 05700 RTEND PUSH AF 05710 INC HL 05720 LD DE,(RLAST) 05730 CALL CPHLDE 05740 JP C,RTE1 05750 LD HL,RFIRST 05760 RTE1 POP AF 05770 RET 05780 CPHLDE LD A,H 05790 SUB D 05800 RET NZ 05810 LD A,L 05820 SUB E 05830 RET 05840 BUFF DEFS 2049 05850 DCB DEFS 100 05860 DODCB DEFW 0000 05870 MSG DEFM 'Small Term Version 1.0 - VT52 Terminal Emulator for TRS-80 Model IV' 05880 DEFB 0AH 05890 DEFM 'Copyright (C) - 02/21/1986 Written By Michael S. Leibow' 05900 DEFB 0AH 05910 DEFB 0AH 05920 DEFM 'Permission to copy this program is granted provided that the copyright' 05930 DEFB 0AH 05940 DEFM 'is not made or distributed for commercial advantage. Permission to copy' 05950 DEFB 0AH 05960 DEFM 'is given by the author, Michael Leibow, for personal use only.' 05970 DEFB 0AH 05980 DEFB 0AH 05990 DEFM 'VT52 is a trademark of Digital Equipment Corporation.' 06000 DEFB 0AH 06010 DEFM 'TRS-80 is a trademark of Tandy Corporation.' 06020 DEFB 0AH 06030 DEFB 0DH 06040 ERROR DEFM 'Device Not Available' 06050 DEFB 0DH 06060 CODE1 DEFB 0 06070 CODE DEFB 0 06080 BELCNT DEFB 0 06090 AMFLG DEFB 0 06100 AKEYS DEFB 0 06110 RPUT DEFW RFIRST 06120 RTAK DEFW RFIRST 06130 RLAST DEFW 0000 06140 RFIRST EQU $ 06150 END START -- Michael S. Leibow UUCP: {allegra,seismo}!rochester!ritcv!msl5864 CSNET: msl5864%rit@csnet-relay.ARPA
harris@dg_rtp.UUCP (Mark Harris) (09/17/86)
For anyone who does not know, kermit for the trs-80 model 4 has a vt52 emulator that seems to work fine. The vt52 emulator in the model 1&3 kermits don't seem to work too well, at least in MY copy. Kermit can be obtained from okstate or just about any bulletin board that supports the trs-80 1,3,&4.