;********************************* ;Tabellenorientierte Berechnung ;von Quadratzahlen ;********************************* ;********************************* ;Tabelle erzeugen initsq: ld de,1 ;1. ungerade Zahl ld hl,0 ;HL = 1. Quadratzahl ld b,h ;Zaehler = 0 = 256 ld ix,sqtab ;IX = Startadr. Tabelle sqloop: ld (ix),l ;Lowbyte in Tab. inc ix ld (ix),h ;Highbyte in Tabelle inc ix add hl,de ;ungerade Zahl addieren inc de ;naechste ungerade Zahl inc de djnz sqloop ;-> 256 mal ret ;********************************* ;Quadrat berechnen ;IN: A = Faktor ;OUT: DE = A * A getsq: ld l,a ld h,0 ;HL = Faktor add hl,hl ;* 2 ld de,sqtab ;+ Startadr. Tabelle add hl,de ;= Tabellenadr. ld e,(hl) ;E = Lowbyte Ergebnis inc hl ld d,(hl) ;D = Highbyte Ergebnis ret ;********************************* sqtab: ds 512 ;Platz fuer Tabelle end