DataMuseum.dk

Presents historical artifacts from the history of:

Jet Computer Jet80

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

See our Wiki for more about Jet Computer Jet80

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦5928456cd⟧ TextFile

    Length: 6016 (0x1780)
    Types: TextFile
    Names: »AY4LAS0.MAC«, »AY4LAS3.BAK«

Derivation

└─⟦09ad82a35⟧ Bits:30002863 PolyPascal-80 V3.10 for JET80 CP/M
    └─ ⟦this⟧ »AY4LAS0.MAC« 
    └─ ⟦this⟧ »AY4LAS3.BAK« 

TextFile

.Z80
DPORT	EQU	00H	;MODEMPORT-DATA
SPORT	EQU	01H	;MODEMPORT-STATUS

;STATUS BYTE DEF. (REGISTER "L")
BCDBIT	EQU	0	;0=> EJ BCD
			;1=> BCD KODNING
SLUTB	EQU	1	;0=> IKKE RAPP.AFSL.-FLERE KONTR.CHAR FLG.
			;1=> RAPP.AFSL.     -SIDSTE KONTR.CHAR.
KONT1B	EQU	2	;0=> DET ER FORSTE KONTR.CHAR. DER BEHANDLES
			;1=> DET ER IKKE FORSTE KONTR.CHAR

DVAR	EQU	400H

ASEG

	ORG	100H

	LD	SP,500H




INIT:	XOR	A
	LD	B,A
	LD	C,A
	LD	D,A
	LD	E,A
	LD	H,A
	LD	L,A
	LD	IY,DVAR
	LD	IX,DVAR
	INC	IY		;DVAR, 2.BYTE

START:	LD	B,0		;RESET BYTE TALLER
LOOP1:	IN	A,(SPORT)	;HENT SIOSTATUS
	AND	01H		;DATA READY
	JR	Z,LOOP1		;NEJ=>VANT
	IN	A,(DPORT)	;HENT DATABYTE
	LD	D,A		;GEM DATA
	INC	B		;INCR BYTETALLER
	ADD	A,E		;BEREGN CH.SUM
	LD	E,A		;GEM VARDI
	LD	A,D		;RESTORE DATA
	AND	0C0H		;
	CP	0C0H		;ER DET KONTROL
	JR	NZ,ERROR	;NEJ=>HOP, FEJL
	LD	A,D		;RESTORE DATA
	AND	3FH		;MASK BYTEANTAL
	LD	C,A		;GEM ANTAL BYTES DER SKAL MODT.

LOOP2:	IN	A,(SPORT)	;HENT SIOSTATUS
	AND	01H		;DATA READY
	JR	Z,LOOP2		;NEJ=>VANT
	IN	A,(DPORT)	;HENT DATABYTE
	LD	D,A		;GEM DATA
	INC	B		;INCR BYTETALLER
	ADD	A,E		;BEREGN CH.SUM
	LD	E,A		;GEM VARDI
	LD	A,D		;RESTORE DATA
	AND	0C0H		;
	CP	0C0H		;ER DET KONTROL
	JR	NZ,ERROR	;NEJ=>HOP, FEJL

	LD	A,D		;RESTORE DATA
	AND 	30H		;MASK BCD/BIN
	CP	20H		;ER DET BCD?
	JR	NZ,EJBCD	;NEJ=>HOP
	SET	BCDBIT,L	;FLG.BYTES ER BCD
	JR	FORTS

EJBCD:	CP	10H		;ER DET BIN?
	JR	NZ,ERROR	;NEJ=>HOP, FEJL
	RES	BCDBIT,L	;FLG.BYTES ER BIN

FORTS:	BIT	KONT1B,L	;ER DET 1.KONTR.CHAR?
	JR	Z,KONCH1	;JA=>HOP
	LD	A,D		;RESTORE DATA
	AND	0FH		;MASK NEDRE NIPPLE
	CP	0FH		;ER DET RAPP.AFSL?
	JR	NZ,FORTS2	;NEJ=>HOP
	SET	SLUTB,L		;SET STATUS FOR RAPP.AFSL.
	JR	FORTS2

KONCH1:	LD	A,D		;RESTORE DATA
	AND	0FH		;MASK VERS. NR
	ADD	A,30H		;KONVERTER TIL ASCII
	INC	(IX)		;INCR. STR.LANG.COUNTER
	LD	(IY),A		;GEM VERS.NR
	INC	IY		;PEG PA NASTE TOMME BYTE
	RES	SLUTB,L		;SET STATUS FOR FLERE KONT.CHAR.
	SET	KONT1B,L	;-"- IKKE FORSTE KONT.CHAR.
;------------------------------------------------
	JR	FORTS2		;JR FUSK
START2:	JR	START
;------------------------------------------------
FORTS2:	IN	A,(SPORT)	;HENT SIOSTATUS
	AND	01H		;DATA READY
	JR	Z,FORTS2	;NEJ=>VANT
	IN	A,(DPORT)	;HENT DATABYTE
	LD	D,A		;GEM DATA
	INC	B		;INCR BYTETALLER
	BIT	SLUTB,L		;ER DET RAPP.AFSL?
	JR	NZ,CHCH		;JA=>HOP,BYTE=CHSUM
	ADD	A,E		;BEREGN CH.SUM
	LD	E,A		;GEM VARDI
	BIT	BCDBIT,L	;ER DET BCD?
	JR	Z,BINAR		;NEJ=>HOP, DET ER BINAR

BCD:	LD	A,D		;RESTORE DATA
	RRA			;FLYT M.S.NIPPLE
	RRA			;TIL L.S.NIPPLE
	RRA
	RRA
	AND	0FH		;MASK 1.BCD CIFFER
	CP	0AH		;ER DET "A"?
	JR	NZ,CIF		;NEJ=>CIFFER
	LD	A,20H		;KONVERTER TIL SPACE
	JR	GEM
;------------------------------------------------
ERROR:	JR	ERROR1

;------------------------------------------------
CIF:	ADD	A,30H		;KONVERTER TIL ASCII
GEM:	LD	(IY),A		;GFEM I DVAR
	INC	IY		;PEG PA NASTE TOMME BYTE
	INC	(IX)		;INCR. STR.LANG.COUNTER
	LD	A,D		;RESTORE DATA
	AND	0FH		;MASK 2.BCD CIFFER
	CP	0AH		;ER DET "A"?
	JR	NZ,CIF2		;NEJ=>CIFFER
	LD	A,20H		;KONVERTER TIL SPACE
	JR	GEM2
CIF2:	ADD	A,30H		;KONVERTER TIL ASCII
GEM2:	LD	(IY),A		;GFEM I DVAR
	INC	IY		;PEG PA NASTE TOMME BYTE
	INC	(IX)		;INCR. STR.LANG.COUNTER

	LD	A,B		;HENT MODT.BYTE COUNTER
	CP	C		;VAR DET SIDSTE BYTE?
	JR	Z,START2	;JA=>HENT NYE KONTROLCHAR.
	JR	FORTS2		;NEJ=>HENT FLERE BCD CIFRE

BINAR:	BIT	7,D		;ER FEJLEN AKTIV?
	JR	NZ,BIT7H	;JA=>HOP
	LD	A,30H		;LOAD "0"
	JR	BIT7L
BIT7H:	LD	A,31H		;LOAD "1"
BIT7L:	LD	(IY),A		;GEM I DVAR
	INC	IY		;PEG PA NASTE TOMME BYTE
	INC	(IX)		;INCR. STR.LANG.COUNTER

	BIT	6,D		;ER FEJLEN AKTIV?
	JR	NZ,BIT6H	;JA=>HOP
	LD	A,30H		;LOAD "0"
	JR	BIT6L
BIT6H:	LD	A,31H		;LOAD "1"
BIT6L:	LD	(IY),A		;GEM I DVAR
	INC	IY		;PEG PA NASTE TOMME BYTE
	INC	(IX)		;INCR. STR.LANG.COUNTER
;------------------------------------------------
	JR	LAB1
START1:	JR	START2
FORTS3:	JR	FORTS2
CHCH:	JR	CHCH1
;------------------------------------------------
LAB1:	BIT	5,D		;ER FEJLEN AKTIV?
	JR	NZ,BIT5H	;JA=>HOP
	LD	A,30H		;LOAD "0"
	JR	BIT5L
BIT5H:	LD	A,31H		;LOAD "1"
BIT5L:	LD	(IY),A		;GEM I DVAR
	INC	IY		;PEG PA NASTE TOMME BYTE
	INC	(IX)		;INCR. STR.LANG.COUNTER

	BIT	4,D		;ER FEJLEN AKTIV?
	JR	NZ,BIT4H	;JA=>HOP
	LD	A,30H		;LOAD "0"
	JR	BIT4L
BIT4H:	LD	A,31H		;LOAD "1"
BIT4L:	LD	(IY),A		;GEM I DVAR
	INC	IY		;PEG PA NASTE TOMME BYTE
	INC	(IX)		;INCR. STR.LANG.COUNTER
;------------------------------------------------
	JR	LAB2
ERROR1:	JR	ERROR2
;------------------------------------------------
LAB2:	BIT	3,D		;ER FEJLEN AKTIV?
	JR	NZ,BIT3H	;JA=>HOP
	LD	A,30H		;LOAD "0"
	JR	BIT3L
BIT3H:	LD	A,31H		;LOAD "1"
BIT3L:	LD	(IY),A		;GEM I DVAR
	INC	IY		;PEG PA NASTE TOMME BYTE
	INC	(IX)		;INCR. STR.LANG.COUNTER

	BIT	2,D		;ER FEJLEN AKTIV?
	JR	NZ,BIT2H	;JA=>HOP
	LD	A,30H		;LOAD "0"
	JR	BIT2L
BIT2H:	LD	A,31H		;LOAD "1"
BIT2L:	LD	(IY),A		;GEM I DVAR
	INC	IY		;PEG PA NASTE TOMME BYTE
	INC	(IX)		;INCR. STR.LANG.COUNTER

	BIT	1,D		;ER FEJLEN AKTIV?
	JR	NZ,BIT1H	;JA=>HOP
	LD	A,30H		;LOAD "0"
	JR	BIT1L
BIT1H:	LD	A,31H		;LOAD "1"
BIT1L:	LD	(IY),A		;GEM I DVAR
	INC	IY		;PEG PA NASTE TOMME BYTE
	INC	(IX)		;INCR. STR.LANG.COUNTER

	BIT	0,D		;ER FEJLEN AKTIV?
	JR	NZ,BIT0H	;JA=>HOP
	LD	A,30H		;LOAD "0"
	JR	BIT0L
BIT0H:	LD	A,31H		;LOAD "1"
BIT0L:	LD	(IY),A		;GEM I DVAR
	INC	IY		;PEG PA NASTE TOMME BYTE
	INC	(IX)		;INCR. STR.LANG.COUNTER

	LD	A,B		;HENT MODT.BYTE COUNTER
	CP	C		;VAR DERT SIDSTE BYTE
	JR	Z,START1	;JA=>HENT FLERE KONTROLCHAR
	JR	FORTS3		;NEJ=>FLERE BIN INFO

CHCH1:	LD	A,D		;RESTORE DATA
	CP	E		;ER CH.SUM OK?
	JR	Z,SLUT		;JA=>OK, FARDIG

ERROR2:	LD	IY,DVAR		;SKRIV "ERROR" I DVAR
	LD	A,05H
	LD	(IY),A
	INC	IY
	LD	A,45H
	LD	(IY),A
	INC	IY
	LD	A,52H
	LD	(IY),A
	INC	IY
	LD	A,52H
	LD	(IY),A
	INC	IY
	LD	A,4FH
	LD	(IY),A
	INC	IY
	LD	A,52H
	LD	(IY),A

SLUT:	NOP

END.«eof»