;================= ; PAS.MOD3 ; VERSION C-128 ; ;REALS,SETS UND ;STRINGS ;================= ; ;11.11.1986 ; IMP PAS.SYST IMP PAS.MOD1 IMP PAS.MOD2 ;(NUR TRUE, FALSE, ; ENDMOD2) ; ;================= ORG ENDMOD2 ;================= ; OPADR DFD OP1 ; + DFD OP2 ; - DFD OP3 ; * DFD OP4 ; / DFD OP5 ; ^ DFD OP6 ; +/- ; DFD XABS DFD XSQRT DFD XLN DFD XEXP DFD XSIN DFD XCOS DFD XTAN DFD XATN ; ;================= LDFAC ;(A,Y) -> REAL ;(INTEGER ;->(SCND JSR POP3 LDA REAL JSR USETVAR JSR UFLT JMP NEXT0 ;----------------- FLO ;SCND INT->REAL ;TOP VERSCHIEBEN SEC LDA INTEGER JSR POP3 JSR USETVAR JSR LDFAC JSR UINT JMP NEXT0 ;----------------- TRC ;REAL->INTEGER JSR POP3 JSR USETVAR JSR LDFAC LDA ; JSR ULDTOP ;A/Y =>SCND JSR LDARG ; ;FUER ROM-ROUTINE ;VORZ. WIEDER ;PACKEN: ; LDA > ; $00 --> = ; $FF --> < BNE VGL1 LDA #2 BNE VGL3 VGL1 BMI VGL2 LDA #1 DFD $2C VGL2 LDA #4 VGL3 ;-->VON STRCMP ;A=MASKE ERGEBNIS ; LDY #0 STA MASKE ;YR -> INDEX 0..11 TAX LSR LSR LSR TAY CPY #1. OPERAND ;2. OPERAND ;Y:=SETLEN LDA #246 JSR POPA LDA SET LDA ( SET ;**GEAENDERT! LDA ( (A/X) ;YR:=0 ;KEIN POP FUER DIE ;ADRESSE! ; LDY #1 LDA (FERTIG ; CLC LDA 0 ;Y=0 ; CPY3 LDA ( ZU KURZ ; ;VERGLEICHE BIS ;UNTERSCHIED: LDY #1 POS2 LDA (=(S2)? * CMP FERTIG ; ;*LAENGE PRUEFEN ;*UND SCHREIBEN CLC ADC OLDLEN ** ;KEINE VERSCHIE- ;BUNG ERFORDERLICH TAX INX STX FERTIG ; LDA FERTIG CLC ADC ;VERGLEICH S1-S2 ; JSR GETSTR STA STRING; LDA (STRING JSR PASFET TAX JSR UABS DEY TXA INX LDARSTR1 STA (