DataMuseum.dk

Presents historical artifacts from the history of:

Zilog MCZ Floppy Disks

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦c978b8aad⟧ TextFile

    Length: 16020 (0x3e94)
    Types: TextFile
    Names: »WILD.05.L«

Derivation

└─⟦329ff8d5f⟧ Bits:30006811 8" ZilogMCZ floppy NThun_0013 (SYSTEM MCZ 1/05)
    └─ ⟦this⟧ »WILD.05.L« 

TextFile

\f


PLOTTER DRIVER                WILD.05        840113_JK          PAGE   1
 LOC   OBJ CODE M STMT SOURCE STATEMENT                          ASM 5.9

                     1  *H PLOTTER DRIVER
                     2  *P 60
                     3  ;************************************************
                     4  ;*	RIO DRIVER FOR PLOTTER TABLE	*
                     5  ;*	J\RGEN KRISTENSEN		*
                     6  ;*	S/C  METRIC  A/S		*
                     7  ;*	84 01 13  MCZ 1 / 05  TRIBLE FLOPPY	*
                     8  ;*	00	INITIALIZE	03	*
                     9  ;*	02	ASSIGN	03	*
                    10  ;*	04	OPEN	03	*
                    11  ;*	06	CLOSE	03	*
                    12  ;*	0E	WRITE BINARY	04	*
                    13  ;*	10	WRITE LINE	04	*
                    14  ;*	44	DEACTIVATE	04	*
                    15  ;************************************************
                    16  ;
                    17  ;	R E Q U E S T   C O D E S
                    18  ;	-------------------------
                    19  INITRQ	EQU	00	; INITIALISATION REQUEST
                    20  ASSNRQ	EQU	02	; ASSIGN REQUEST
                    21  OPENRQ	EQU	04	; OPEN REQUEST
                    22  CLOSRQ	EQU	06	; CLOSE REQUEST
                    23  RDBIRQ	EQU	0AH	; READ BINARY
                    24  RDASRQ	EQU	0CH	; READ ASCII
                    25  WRTBRQ	EQU	0EH	; WRITE BINARY REQUEST
                    26  WRTLRQ	EQU	10H	; WRITE ASCII REQUEST
                    27  DEACRQ	EQU	44H	; DEACTIVATE REQUEST
                    28  ;
                    29  ;	P O R T   A D R E S S E S
                    30  ;	-------------------------
                    31  S_11AD	EQU	04H	; SIO
                    32  S_11BD	EQU	05H
                    33  S_11AC	EQU	06H
                    34  S_11BC	EQU	07H
                    35  ;
                    36  C_11_0	EQU	0CH	; BAUD RATE SIO
                    37  C_11_1	EQU	0DH
                    38  C_11_2	EQU	0EH
                    39  C_11_3	EQU	0FH
                    40  ;
                    41  ;	A S C I I   C O D E S
                    42  ;	---------------------
                    43  TAB	EQU	09H
                    44  ASCICR	EQU	0DH
                    45  ASCILF	EQU	0AH
                    46  E_O_F	EQU	0FFH	; END OF FILE MARK
                    47  ;
                    48  ;	B I T   D E F I N I T I O N S
                    49  ;	-----------------------------
                    50  RX_RDY	EQU	0	; RECIEVER READY BIT
                    51  TX_RDY	EQU	2	; TRANSMITTER READY BIT
                    52  ALLSENT	EQU	0	; TRANSMITTER EMPTY BIT
                    53  ;
                    54  ;	S Y S T E M   A D R E S S E S
                    55  ;	-----------------------------
                    56  ERCODE	EQU	13BDH	; ERROR CODE ADDRESS
                    57  DATE 	EQU	13ABH	; GLOBAL DATE
\f


DRIVER START                  WILD.05        840113_JK          PAGE   2
 LOC   OBJ CODE M STMT SOURCE STATEMENT                          ASM 5.9

                    58  *H DRIVER START
                    59  ;	R E Q U E S T   C O D E   D E C O D E
                    60  ; 	-------------------------------------
                    61  	GLOBAL    DRAW
                    62  ;
FA80                63  	ORG	0FA80H	; START PLOT DRIVER SIO
                    64  ;
FA80   CD16FB       65  DRAW	CALL	DEC_REQ	; DECODE REQUEST CODE
FA83   07           66  	DEFB	7	; NUMBER OF VALID REQUEST CODES
                    67  ;
FA84   00           68  	DEFB	INITRQ
FA85   99FA         69  	DEFW	S_INITRQ	; INITIALIZE 
                    70  ;
FA87   02           71  	DEFB	ASSNRQ	; ASSIGN REQUEST ?
FA88   99FA         72  	DEFW	S_INITRQ	; INITIALIZE 
                    73  ;
FA8A   04           74  	DEFB	OPENRQ	; OPEN REQUEST ?
FA8B   A2FA         75  	DEFW	S_OPENRQ
                    76  ;
FA8D   06           77  	DEFB	CLOSRQ	; CLOSE - JUST RETURN
FA8E   B8FA         78  	DEFW	OKEXIT
                    79  ;
FA90   0E           80  	DEFB	WRTBRQ	; WRITE BINARY REQUEST ?
FA91   A4FA         81  	DEFW	S_WRTBRQ
                    82  ;
FA93   10           83  	DEFB	WRTLRQ	; WRITE LINE REQUEST ?
FA94   B9FA         84  	DEFW	S_WRTLRQ
                    85  ;
FA96   44           86  	DEFB	DEACRQ	; DEACTIVATE - JUST RETURN
FA97   E4FA         87  	DEFW	S_DEACRQ
\f


INITIALIZE                    WILD.05        840113_JK          PAGE   3
 LOC   OBJ CODE M STMT SOURCE STATEMENT                          ASM 5.9

                    88  *H INITIALIZE
                    89  ;	0 0	I N I T I A L I Z E
                    90  ;	-------------------------
                    91  ;
                    92  S_INITRQ
FA99   21FBFA       93  	LD	HL,I_SIO	; INITIALIZE SIO
FA9C   CD0BFB       94  	CALL	INIT
FA9F   DB04         95  	IN	A,(S_11AD)
                    96  ;
FAA1   C9           97  	RET
                    98  ;
                    99  ;
                   100  ;	0 4	O P E N   R E Q U E S T
                   101  ;	-----------------------------
                   102  ;
                   103  S_OPENRQ
FAA2   C9          104  	RET
                   105  ;
                   106  ;
                   107  ; 	0 6	C L O S E   R E Q U E S T
                   108  ;	-------------------------------
                   109  ;
                   110  S_CLOSRQ
FAA3   C9          111  	RET
\f


WRITE BINARY                  WILD.05        840113_JK          PAGE   4
 LOC   OBJ CODE M STMT SOURCE STATEMENT                          ASM 5.9

                   112  *H WRITE BINARY
                   113  ;	0 E   W R I T E   B I N A R Y
                   114  ;	-----------------------------
                   115  ;
                   116  S_WRTBRQ
FAA4   C8          117  	RET	Z	; IF BC = 0 RETURN
                   118  ;
FAA5   7E          119  LOOP_B	LD	A,(HL)	; GET BYTE FOR OUTPUT
                   120  ;
FAA6   FEFF        121  	CP	E_O_F	; END OF FILE MARK ?
FAA8   CAD4FA      122  	JP	Z,ENDFIL
                   123  ;
FAAB   CDE7FA      124  	CALL	SEND	; SEND 1 CHARACTER TO PLOTTER
FAAE   FE0D        125  	CP	ASCICR	; IF ASCICR SEND LF
FAB0   CCE5FA      126  	CALL	Z,SEND_LF	; SEND LF AFTER CR
FAB3   EDA1        127  	CPI		; INC HL   DEC BC
FAB5   EAA5FA      128  	JP	PE,LOOP_B
FAB8   C9          129  OKEXIT	RET
                   130  ;
                   131  ;
                   132  ;	1 0   W R I T E   L I N E
                   133  ;	-------------------------
                   134  S_WRTLRQ
FAB9   C8          135  	RET	Z	; IF BC = 0 RETURN
                   136  ;
FABA   7E          137  LOOP_L	LD	A,(HL)	; GET BYTE FOR OUTPUT
                   138  ;
FABB   FEFF        139  	CP	E_O_F	; END OF FILE MARK ?
FABD   CAD4FA      140  	JP	Z,ENDFIL
                   141  ;
FAC0   CDE7FA      142  	CALL	SEND	; SEND 1 CHARACTER TO PLOTTER
FAC3   FE0D        143  	CP	ASCICR	; IF ASCICR SEND LF
FAC5   CCE5FA      144  	CALL	Z,SEND_LF	; SEND LF AFTER CR
FAC8   3E0D        145  	LD	A,ASCICR	; IS IT A C.RETURN
FACA   EDA1        146  	CPI		; INC HL   DEC BC
FACC   2806        147  	JR	Z,ENDLIN
                   148  ;
FACE   EABAFA      149  	JP	PE,LOOP_L
FAD1   C9          150  	RET
                   151  ;
                   152  ;	-------------------------
                   153  ;
FAD2   EDA1        154  FILEND	CPI
                   155  ENDFIL
FAD4   FD6E04      156  ENDLIN	LD	L,(IY+4)	; CALCULATE HOW MANY
FAD7   FD6605      157  	LD	H,(IY+5)	; BYTES HAVE BEEN OUTPUT
FADA   A7          158  	AND	A	; FROM BUFFER
FADB   ED42        159  	SBC	HL,BC
FADD   FD7504      160  	LD	(IY+4),L	; LOAD INTO VECTOR
FAE0   FD7405      161  	LD	(IY+5),H
FAE3   C9          162  	RET
                   163  ;
                   164  ;	4 4	D E A C T I V A T E   R E Q U E S T
                   165  ;	-----------------------------------------
                   166  ;
                   167  S_DEACRQ
FAE4   C9          168  	RET
\f


                              WILD.05        840113_JK          PAGE   5
 LOC   OBJ CODE M STMT SOURCE STATEMENT                          ASM 5.9

                   169  *H
                   170  ;	S E N D   1   C H A R A C T E R   T O   P L O T T E R
                   171  ;	-----------------------------------------------------
                   172  ;
FAE5   3E0A        173  SEND_LF	LD	A,ASCILF
                   174  ;
FAE7   F5          175  SEND	PUSH	AF	; SAVE CHARACTER
                   176  ;
FAE8   3E01        177  WAITB	LD	A,1	; REG 1
FAEA   D306        178  	OUT	(S_11AC),A
FAEC   DB06        179  	IN	A,(S_11AC)	; READ STATUS SIO
FAEE   CB47        180  	BIT	ALLSENT,A	; TEST SIO EMPTY
FAF0   28F6        181  	JR	Z,WAITB	; TEST AGAIN
                   182  ;
FAF2   AF          183  	XOR	A	; A = 0
FAF3   00          184  DELAY	NOP
FAF4   3D          185  	DEC	A
FAF5   20FC        186  	JR	NZ,DELAY
                   187  ;
FAF7   F1          188  	POP	AF	; RESTORE
FAF8   D304        189  	OUT	(S_11AD),A
FAFA   C9          190  	RET
                   191  ;
\f


INITIALIZE DATA               WILD.05        840113_JK          PAGE   6
 LOC   OBJ CODE M STMT SOURCE STATEMENT                          ASM 5.9

                   192  *H INITIALIZE DATA
                   193  ;	I N I T I A L I Z E   D A T A
                   194  ;	-----------------------------
                   195  ;
                   196  I_SIO
FAFB   09          197  SI_11A	DEFB	9	; LENGTH INIT SIO 1.1 A
FAFC   06          198  	DEFB	S_11AC	; PORT NUMBER SIO 1.1 A
                   199  ;
FAFD   18          200  	DEFB	00011000B	; NEXT REG. = 0  RESET
FAFE   03          201  	DEFB	3	; NEXT REG. = 3
FAFF   E0          202  	DEFB	11100000B	; 8 BIT  AUTO ENABLE
FB00   04          203  	DEFB	4	; NEXT REG. = 4
FB01   4C          204  	DEFB	01001100B	; X16 CLOCK 1 STOPBIT NO PARITY
FB02   05          205  	DEFB	5	; NEXT REG. = 5
FB03   EA          206  	DEFB	11101010B	; DTR, 8 BIT, RTS
FB04   01          207  	DEFB	1	; NEXT REG. = 1
FB05   00          208  	DEFB	00000000B	; NO INTERRUPT
                   209  ;
FB06   02          210  CTC110	DEFB	2	; LENGTH CTC INITIALIZE
FB07   0C          211  	DEFB	C_11_0	; CTC 1.1 CHANNEL 0
FB08   07          212  	DEFB	00000111B	; TIMER MODE PRESCALER = 16
FB09   01          213  	DEFB	1	; 9600 BAUD
                   214  ;
FB0A   00          215  	DEFB	00	; END OF INITIALIZE
                   216  ;
\f


INIT                          WILD.05        840113_JK          PAGE   7
 LOC   OBJ CODE M STMT SOURCE STATEMENT                          ASM 5.9

                   217  *H INIT
                   218  ;	INITIALIZE SIO'S + CTC'S + PIO'S	
                   219  ;	--------------------------------
                   220  ;
                   221  ;	(HL)   = LENGTH
                   222  ;	(HL+1) = CONTROL PORT
                   223  ;	(HL+2) = INITIALIZE DATA
                   224  ;
                   225  ;  HL >	DEFB	N
                   226  ;	DEFB	PORT
                   227  ;	DEFB	DATA_1
                   228  ;	DEFB	DATA_2
                   229  ;	:
                   230  ;	:
                   231  ;	DEFB	DATA_N
                   232  ;  N+1	DEFB	00	; STOP CONDITION
                   233  ;
FB0B   7E          234  INIT	LD	A,(HL)	; A  = LENGTH
FB0C   A7          235  	AND	A	; A = 0 FINISH
FB0D   C8          236  	RET	Z	; END OF INITIALIZE
FB0E   47          237  	LD	B,A	; B  = LENGTH OF INITIALIZE
FB0F   23          238  	INC	HL
FB10   4E          239  	LD	C,(HL)	; C  = PORT ADDRESS
FB11   23          240  	INC	HL
FB12   EDB3        241  	OTIR		; SEND TO DEVICE
FB14   18F5        242  	JR	INIT	; REPEAT
                   243  ;
                   244  ;
\f


REQUEST CODE DECODE           WILD.05        840113_JK          PAGE   8
 LOC   OBJ CODE M STMT SOURCE STATEMENT                          ASM 5.9

                   245  *H REQUEST CODE DECODE
                   246  ;
                   247  	GLOBAL DEC_REQ OKEXIT
                   248  ;START	CALL	DEC_REQ	; DRIVER EXAMPLE.
                   249  ;	DEFB	N	; NUMBER OF VALID REQ. CODES
                   250  ;	DEFB	OP_CODE_1
                   251  ;	DEFW	START_OP_CODE_1
                   252  ;	DEFB	OP_CODE_2
                   253  ;	DEFW	START_OP_CODE_2
                   254  ;	:
                   255  ;	:
                   256  ;	DEFB	OP_CODE_#N
                   257  ;	DEFW	START_OP_CODE_#N
                   258  ;
FB16   2145FB      259  DEC_REQ	LD	HL,IORTN1	; HL = COMMON RETURN  POINT
FB19   E3          260  	EX	HL,(SP)	; HL = OPCODE TABLE START
FB1A   FD360A80    261  	LD	(IY+10),80H	; GOOD COMPLETION CODE
FB1E   FD7E01      262  	LD	A,(IY+1)	; A  = OPCODE
FB21   46          263  	LD	B,(HL)	; B  = NUMBER OF OPCODES
FB22   23          264  	INC	HL
FB23   BE          265  SEARCH	CP	(HL)	; OPCODE FOUND ?
FB24   280A        266  	JR,Z	FOUND	; YES
FB26   23          267  	INC	HL
FB27   23          268  	INC	HL
FB28   23          269  	INC	HL
FB29   10F8        270  	DJNZ	SEARCH	; MORE VALID OPCODES ?
                   271  ;
FB2B   FD360AC1    272  	LD	(IY+10),0C1H	; INVALID REQUEST CODE
FB2F   C9          273  	RET
                   274  ;
FB30   23          275  FOUND	INC	HL
FB31   7E          276  	LD	A,(HL)
FB32   23          277  	INC	HL
FB33   66          278  	LD	H,(HL)
FB34   6F          279  	LD	L,A
FB35   E5          280  	PUSH	HL	; SAVE REQ. CODE START ON STACK
                   281  ;
FB36   FD6E02      282  	LD	L,(IY+2)
FB39   FD6603      283  	LD	H,(IY+3)	; HL = DATA START ADDRESS
                   284  ;
FB3C   FD4E04      285  	LD	C,(IY+4)
FB3F   FD4605      286  	LD	B,(IY+5)	; BC = DATA LENGTH
                   287  ;
FB42   78          288  	LD	A,B
FB43   B1          289  	OR	C	; Z = 1  IF BC = 0
FB44   C9          290  	RET
                   291  ;
FB45   FDCB0A76    292  IORTN1:	BIT	6,(IY+10)
FB49   280B        293  	JR	Z,IORET
                   294  ERRTN:
FB4B   FD6609      295  	LD	H,(IY+9)
FB4E   FD6E08      296  	LD	L,(IY+8)
FB51   7C          297  	LD	A,H
FB52   B5          298  	OR	L
FB53   2801        299  	JR	Z,IORET
FB55   E9          300  	JP	(HL)
                   301  IORET:
FB56   FDCB0146    302  	BIT	0,(IY+1)	; CHECK WHICH RETURN
FB5A   C8          303  	RET	Z	
FB5B   FD6607      304  	LD	H,(IY+7)	; RETURN TO COMPLETION ADDRESS
\f


REQUEST CODE DECODE           WILD.05        840113_JK          PAGE   9
 LOC   OBJ CODE M STMT SOURCE STATEMENT                          ASM 5.9

FB5E   FD6E06      305  	LD	L,(IY+6)	
FB61   E9          306  	JP	(HL)
                   307  	END
\f


CROSS REFERENCE               WILD.05        840113_JK          PAGE  10
SYMBOL  VAL M DEFN REFS

ALLSEN 0000     52  180 
ASCICR 000D     44  125  143  145 
ASCILF 000A     45  173 
ASSNRQ 0002     20   71 
CLOSRQ 0006     22   77 
CTC110 FB06    210 
C_11_0 000C     36  211 
C_11_1 000D     37 
C_11_2 000E     38 
C_11_3 000F     39 
DATE   13AB     57 
DEACRQ 0044     27   86 
DEC_RE FB16 G  259   65  247 
DELAY  FAF3    184  186 
DRAW   FA80 G   65   61 
ENDFIL FAD4    155  122  140 
ENDLIN FAD4    156  147 
ERCODE 13BD     56 
ERRTN  FB4B    294 
E_O_F  00FF     46  121  139 
FILEND FAD2    154 
FOUND  FB30    275  266 
INIT   FB0B    234   94  242 
INITRQ 0000     19   68 
IORET  FB56    301  293  299 
IORTN1 FB45    292  259 
I_SIO  FAFB    196   93 
LOOP_B FAA5    119  128 
LOOP_L FABA    137  149 
OKEXIT FAB8 G  129   78  247 
OPENRQ 0004     21   74 
RDASRQ 000C     24 
RDBIRQ 000A     23 
RX_RDY 0000     50 
SEARCH FB23    265  270 
SEND   FAE7    175  124  142 
SEND_L FAE5    173  126  144 
SI_11A FAFB    197 
S_11AC 0006     33  178  179  198 
S_11AD 0004     31   95  189 
S_11BC 0007     34 
S_11BD 0005     32 
S_CLOS FAA3    110 
S_DEAC FAE4    167   87 
S_INIT FA99     92   69   72 
S_OPEN FAA2    103   75 
S_WRTB FAA4    116   81 
S_WRTL FAB9    134   84 
TAB    0009     43 
TX_RDY 0002     51 
WAITB  FAE8    177  181 
WRTBRQ 000E     25   80 
WRTLRQ 0010     26   83