MILC logo

IndexVorigeVolgendeLeeg

Mathpack routines
MCCM/WR/JvdM, 00-00-00


    
;Hulpprogramma on te testen of basicrom aangeschakeld moet worden
;Zie label "NEXT"

	LD   HL,MATHP_0 ;Beginadres te kopie‰ren ML-code (bronadres)
	LD   DE,#F55E	;Input-buffer (doeladres)
	LD   BC,#003F	;Aantal bytes
	LDIR		;ML-code kopie‰ren naar inputbuffer #F55E
	JP   NEXT	;(zie assemblerlisting 2)
;--------------------------------------
;NAAR INPUT-BUFFER TE KOPIEEREN ML-CODE
;--------------------------------------
;Input: #FF in 'A' indien basic-rom aan te schakelen, else #00

MATHP_0 INC  A		;Basic-rom aanschakelen ?
	PUSH AF 	;     Save vlaggen
	JR   NZ,MATHP_1 ;Nee
	IN   A,(#A8)	;Lees slotregister
	LD   (#F59B),A	;Opslaan (in inputbuffer)
	LD   A,(#FFFF)	;Lees komplement van subslotregister
	CPL		;Werkelijk inhoud van subslotregister
	LD   (#F59C),A	; opslaan (in input-buffer)
	LD   A,(#FCC1)	;Slotadres basic-ROM
	LD   H,#40	;ID page 1
	CALL #0024	;Basic-rom aanschakelen
	LD   HL,#F59E	;Pointer naar begin ascii-Z string
	LD   A,(HL)	;Eerste karakter van string
MATHP_1 PUSH IX
	PUSH IY
	LD   IX,#3299	;Entry-adres mathpack-routine "FIN"
			;  NOOT: Invuladres voor ander entry-adres = #F580
	LD   IY,(#FCC0) ;Slot ID
	CALL #001C	;Mathpack-routine uitvoeren
	POP  IY
	POP  IX
	POP  AF 	;Herstel vlaggen
	RET  NZ 	;RET indien rom niet aangeschakeld werd
	LD   A,(#F59B)	;Oude instelling slotregister
	OUT  (#A8),A	; herstellen
	LD   A,(#F59C)	;Oude instelling subslotregister
	LD   (#FFFF),A	; herstellen
	RET
	DEFS 1		;Opslag slotregister	(adres = #F59B)
	DEFS 1		;Opslag subslotregister (adres = #F59C)
;---------------------------------------------------------------
;Dit voorbeeld test de mathpack routine "FIN" welke een numerieke ascii-string
;vertaalt naar een mathpack notatie in DAC en het type notatie in VALTYP zet.

NEXT	LD   HL,NUM_$	;Adres te vertalen numerieke ascii-string
	LD   DE,#F59E	;Doeladres
        LD   BC,#0F     ;Aantal bytes incl. eindnul
        LDIR            ;String kopi‰ren (Parameter voor routine "FIN")
        LD   HL,#3299   ;Entry adres voor mathpack routine "FIN"
                        ;HIER HET ADRES VOORVANGEN VOOR EEN ANDERE TE TESTEN
                        ;ROUTINE EN ERVOOR ZORGEN, DAT DE PARAMETERS ZIJN
                        ;INGEVULD IN DAC EN ARG OF IN ANDERE REGISTERS.
                        ;Zie tektfile "MATHPACK.DOC" voor details
	LD   (#F580),HL ;Entry-adres invullen in subroutine in page 3
        LD   A,#FF      ;Markering "basicrom aanschakelen"
                        ;ALS HIER #00 WORDT INGEVULD LOOPT COMPUTER VAST
                        ;OMDAT DE BASICROM DAN NIET AANGESCHAKELD WORDT
        CALL #F55E      ;Mathpackroutine uitvoeren
        RST  0          ;Einde
;---------------
NUM_$   DEFB "123.45678901234",#00
;---------------


    

Index

Vorige

Volgende