80-Bus News

  

March-April 1983, Volume 2, Issue 2











Page 9 of 55











ZEAP Z80 Assembler - Source Listing \

BOO BOOO

BOOO BOOO

BOOO BOO] BOO2 BOO3 BOOS BOO6

BOO8 BOOA

BOOC BOOD BOOE BO10 8012 BO1S 8016 BO18 BO1A BOIC BOLE BO20

0004 Q005 0006 0007

E5 DS C5 F5 3EOF D307

3E4F D306

Fi

F5

FEO9 2835 FEOD 282D FESF 2831 FE21 382D FE7B 3029

0010 0020 0030 0040 0050 0060 0070

0090 0100 0110

0130 0140

0160

0180 0190 0200 0210

0230 0240 0250 0260 0270 0280 0290

0310 0320 0330 0340

0360 0370 0380

0400 0410 0420

0440 0450 0460 0470 0480 0490 0500 0510 0520 0530 0540 0550

chek RR RRA RRR KR KKK 3* Golf-ball Print Handler,* 3* Load $UOQUT with start, * 7* 0078/79 for NAS“SYS, or,* 3* OFOS/06 for ZEAP, *

3* Ray, Cutler, the ke RRR RRR RR RK

25/3/82,*

s;Note that no NAS-SYS re“start’s are used sso that the routine will run with other ssoftware,

sThe routine is relocatable except for

line 5

PORTW PORTS PORTY PORTZ

START

90 ORG

EQu £OU EQU EQU

PUSH PUSH PUSH PUSH LD out

Tum

HLySave registers,

DE

BC

AF

A, £0F

(PORTZ) ,A;PIO/B MODE 0,

;Control Port for IBM magnets,

;PORTX = data port for magnet’s, sCK T2 Tl RS R2A R2 RI when 871,

;UC LC SP TAB CRLF

36 S

4

LD OUT

when B7=0,

3. 2 #1 = O respectively,

A, £4F (PORTY), A;PIO/A MODE 1

;Control port for SHIFT and BUSY status,

;PORTW = Data port, ;Rit O = SHIFT (l=LC, O=uC), sBit 1 = BUSY (l*Ready, O=wait),

POP PUSH cp JR cP JR cP JR cP JR cP JR

AF;A=Valid ASCII code,

AF

9;Tabulate? (Cntrl I)

Z, TABULE

£ODsCRLF?

Z, CRLF

£5PsLeft arrow?

2, SPACE

" +1

C, SPACE;It’s less than 21H, Weel]

NC, SPACE;It’s greater than 7AH,

BO22 BO25 3027 B029 BO2A BO2B

BO2C BO2D BO2F BO31

B033 BO35 3037 B039

BO3B BO3D BO3F 5041

BO43 BO45

BO47 BO49

BO4B

BO4D BOSF

BO51 BO53 BOSS

BO57 BO59 BOSB BO5D

BOSF BO61 BO63

BOGS BO66

B068 BO69

218980 D621 600 4F

09

7E

57

CBF DBOS 2008

CB47 2031 3E20 1816

CB47 2829 3E40 180E

3E04 1806

3E08 1802

3E10

D305 181C

D305 FE20 2808

DBO4 CB47 20FA 1806

DBO4 CB47 28FA

D305

F680

0570 0580 0590 0600 0610 0620 0630 0640

0660 0670 0680 0690 0700 0710

0730 0740 0750 0760

0780 0790 0800 0810

0830 0840

0860 0870

0890

0910 0920

0940 0950 0960

0980 0990 1000 1010 1020 1030

1050 1060 1070 1080 1090

1110 1120

1140 1150

3A™E21 to £7A except £5F si.e, All printable codes,

Lb SUB LD Lo ADD LD

HL, TABL £21;A=0 to £59 B, 0

C, A

HL, BC

A, (HL)

zAxValid IBM code. ;Bit 7 = Upper-case,

SHIFT

LOWER

UPPER

CRLF

TABULE

SPACE

OUTIL

OUT2

LD BIT IN JR

BIT JR LD JR

BIT JR LD JR

Lb JR

LD JR

LD

OUT JR

D, AsSave it, 7,4

A, (PORTW)

NZ, UPPER

0,A;1*LC O=UC

NZ,OUT6 ;It’s another lower case, A, £20;Do lower case,

OUT2

O,As1*LC O=UC

Z,OUT6 3It’s another upper case, A, £40;Do upper case,

OuT2

A, 4;CRLF relay, OUTIL

A, 8 OuTI

A, lOH}Space relay,

(5), AsSend non=print code, WAIT

(5), AsSend shift code, 20H Z, OUTS

;An upper case code has been sent so swait for a ‘O’ from port 4 bit 0,

ouT3

IN BIT JR JR

A, (PORTH) 0,A NZ,OUT3 OUTS

3A lower case code has been sent so gwait for a ‘1’ from port 4 bit 0,

OUTS

OUTS

OUTE

IN BIT JR

XOR OUT

LD OR

A, (PORTH) 0,4 Z,OUT4

A ;Power down the SHIFT magnets, (PORTX),A

A, Dj;Recover character to print, 8O0H;Select print magnet drivers,


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











Page 9 of 55