INMC 80 News


October-December 1981, Issue 5

Page 10 of 71


I was encouraged to read Len Ford’s contribution (INMC80 Issue 3) since it suggested I was not after all the only NASCOMer still relying on the T4 monitor. Financial constraints also guided me towards the Creed 7B teleprinter to obtain that essential hardcopy output. I am writing in case there are other users who had not yet succeeded in directing assembler listings from ZEAP to the printer.

The version of ZEAP I use is an early one, 1.1 in fact, on tape, which loads at OFOQ. My printer driver software is a modified version of CREOUT published in PCW April 79. The printer is connected via a spare bit in port 0 on the Nascom 1. CREOUT takes an ASCII character in register A, translates it to Baudot code and outputs the appropriate bit pattern to Port 0.

ZEAP 1.1 changes the CRT reflection at OC4B from 013B in the T4 monitor to 18El. This piece of coding calls the monitor CRT to print the contents of A after first checking A >= 1D.

Not all writing to the screen is done through calls to this reflection, however, e-ge 1803 CALL Z2,013B. And not all information is written to the screen through 013B e.g. the line numbers, which are stored in hex are printed using a CALL to monitor 0232 in location 1458. My requirement was to direct assembled listings from ZEAP to the CREED teleprinter. To do this TI use a print routine which takes complete lines from the bottom of the screen rather than individual characters. This takes advantage of the fact that all instructions to scroll up the display are handled through 18E5 CALL 013B. We can examine A at this point and if it is 1F (CRLF) the display is about to be scrolled up. In that case the bottom line on the screen is copied to the printer before the scroll is performed.

I enclose the section of my printer driver program which deals with this procedure.

Having loaded ZEAP replace the contents of 18E6 and 18E7 by the address of the new routine ZPRINT. ZPRINT activates the printer by the jump to LPV at line 1400 which prints the character in A. ZPRINT also tests for and ignores trailing blanks and paginates the output.

40CB c3500C 1400 NOECHO JP LPY


40CF FEIF 1420 cp #iF

40D1 CAD940 1430 JP Z PRNTLN 40D4 Fl 1440 NPRINT POP AF

40D5 CD3B01 1450 CALL CRT

40D8 co 1460 RET

40D9 cs 1470 PRNTLN PUSH BC

40DA DS 1480 PUSH DE

40DB E5 1490 PUSH HL

40DC 3A0040 1500 LD A (LCOUNT) 40DF 3c 1510 INC A

40E0 FE40 1520 cP PAGLEN 40E2 200D 1530 JR NZ SAMEPG-# 40E4 210A00 1540 LD HL LINGAP 40E7 46 1550 LD B (HL) 4088 3E1F 1560 BLLINE LD A #1F 40EA CDCB40 1570 CALL NOECHO 40ED 10F9 1580 DINZ BLLINE-# 40EF 3E00 1590 LD AQ

40F1 320040 1600 SAMEPG LD (LCOUNT) A 40F4 11890B 1610 LD DE #BB9 40F7 0630 1620 LD B #30

40F9 1A 1630 TESTBL LD A (DE) 40FA FE20 1640 cP #20

40FC 2004 1650 JR NZ ENDFND-#

This is an OCR’d version of the scanned page and likely contains recognition errors.

Page 10 of 71