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 ;--------------- |