Download Print this page

IMS IMSAI 8080 User Manual page 391

Advertisement

0590
MOV
0600
AN I
0610
MOV
0620
MOV
0630
SUB
0640
JZ
0650
0660
0670
0680
RLC
0690
RLC
0700
0710
MOV
MV I
0720
0730
MOV
0740
0750
0760
0770
0780
0790
LOOPS TO
0800
0810
1) DUMP/LOAD 4K INC'S UNTIL COUNT EXHAUSTED, AND
0820
2 ) WRITE/READ 32 RECORDS.
0830
0840 LOOP1:
0850 LOOP2:
0860
0870
0880
0890
0900
0910
0920
0930
0940
0950
0960
EXIT ROUTINE. FLASH COMPLETION CODE IN A.
0970
0930 EXIT:
0990
1000
1010 OUT:
1020
1030
1040
1050 DELAY:
1060
1070
1080
1090
1100
1110
IN ORDER TO LET THE AUTOMATIC VOLUME CONTROL
1120
STABILIZE, WRITE A NUMBER OF DUMMY INIT CHARS.
1130
1140 INIT:
1150
1160
1170
1180 INITO:
11
30
D, A
0F0H
E , A
A, D
E
EXIT
MOV
D A
RLC
RLC
ADD
E
H, A
L, 80
SPHL
H, E
MVI
L 0
MOV
A, B
RAR
CNC
INIT
MVI
E. 32
MOV
A, H
CM A
FRONP
OUT
CRIOD
CALL
JC
EXIT
DCR
E
JNZ
LOOP 2
DCR
D
JNZ
LOOPl
XRA
A
CM A
MOV
D A
MVI
H 0FFH
MOV
A , H
FRONP
OUT
XCHG
LX I
B ■ 4000H •GET DELAY COUNTER
DCX
B
MOV
A. B
ORA
C
JNZ
DE LAY
JMP
OUT
PUSH
PSW
PUSH
3
MVI
C,INCNT
MVI
A,INCUR
CALL
WRITB
SAVE TEMPORARILY
ZERO LOW NIBBLE
SAVE HIGH BYTE OF 1ST ADDR
GET SWITCHES BACK
ZERO HIGH NIBBLE
EXIT IF COUNT IS ZERO
SAVE COUNT OF 4K INC'S
SWAP NIBBLES...
COMPUTE AND SAVE HIGH BYTE
OF RAM ADDRESS
SET SP HIGH ENOUGH TO LEAVE
ROOM FOR DESCENDING STACK
POINT HL AT 1ST MEMORY ADDR
- TO BE DUMPED/LOADED
PUT STATUS BYTE IN A
PUT WRITE/READ BIT IN CARRY
IF WRITING, INIT AUTO VOL CTRL
# OF 128-BYTE BLOCKS IN 4X
PUT HIGH ADDRESS BYTE IN A
COMPLEMENT FOR OUTPUT
SET LIGHTS
WRITE/READ A 123-BYTE RECORD
EXIT IF ERROR
COUNT RECORDS DOWN
LOOP UNTIL ALL RECORDS DONE
COUNT 4K INC'S DOWN
LOOP UNTIL DONE
DONE, SET LIGHTS OFF
^COMPLEMENT FOR OUTPUT
;SAVE OUTPUT CODE IN D
PUT 00 OUT CODE IN H
;GET CODE TO OUTPUT
SET LIGHTS
^EXCHANGE CODES IN D & H
START OF DELAY LOOP
IS COUNT ZERO?...
;LOOP UNTIL IT IS
; OUTPUT OTHER CODE
;SAVS REGISTERS TO RE USED...
GET INIT CHAR COUNT
GET INIT CHAR
; WRITS IT
'

Advertisement

loading