|
|
1.1 ! root 1: | ! 2: | @(#)getidprom.s 1.1 86/02/03 Copyright (c) 1985 by Sun Microsystems, Inc. ! 3: | ! 4: #ifdef SUN2 ! 5: #define FC_MAP 3 ! 6: #define BYTESPERPG 0x800 ! 7: #define IDPROMOFF 8 ! 8: #endif ! 9: #ifdef SUN3 ! 10: #define FC_MAP 3 ! 11: #define BYTESPERPG 0x2000 ! 12: #define IDPROMOFF 0 ! 13: #endif ! 14: ! 15: ! 16: | ! 17: | getidprom(addr, size) ! 18: | ! 19: | Read back <size> bytes of the ID prom and store them at <addr>. ! 20: | Typical use: getidprom(&idprom_struct, sizeof(idprom_struct)); ! 21: | ! 22: .globl _getidprom ! 23: _getidprom: ! 24: movl sp@(4),a0 | address to move ID prom bytes to ! 25: movl sp@(8),d1 | How many bytes to move ! 26: movl d2,sp@- | save a reg ! 27: movc sfc,d0 | save source func code ! 28: movl #FC_MAP,d2 ! 29: movc d2,sfc | set space 3 ! 30: lea IDPROMOFF,a1 | select id prom ! 31: jra 2$ | Enter loop at bottom as usual for dbra ! 32: 1$: movsb a1@+,d2 | get a byte ! 33: movb d2,a0@+ | save it ! 34: #ifdef SUN2 ! 35: addw #BYTESPERPG-1,a1 | address next byte (in next page) ! 36: #endif SUN2 ! 37: 2$: dbra d1,1$ | and loop ! 38: movc d0,sfc | restore sfc ! 39: movl sp@+,d2 | restore d2 ! 40: rts
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.