The following warnings occurred:
Warning [2] Undefined array key 0 - Line: 1677 - File: showthread.php PHP 8.2.31 (Linux)
File Line Function
/inc/class_error.php 157 errorHandler->error
/showthread.php 1677 errorHandler->error_callback
/showthread.php 916 buildtree




Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Bit Shifts
#1
C provides bit shift functions >> and << which aren't available in Sinclair or ZX basic. Since I happened to have a need for such a function, I decided to drop them up here. Again, this is something that's easy on the CPU.

They work with Long Unsigned integers - and will work fine with smaller values, or you can use them as a template for 16 or 8 bit versions in assembler.

Code:
FUNCTION bitL(num as uLong) as uLong REM we get DEHL as uLong asm SLA L RL H RL E RL D END asm END FUNCTION

Code:
FUNCTION bitR(num as uLong) as uLong REM we get DEHL as uLong asm SRA D RES 7,D ; makes a zero shift into D instead of what was there originally. If you want this to work with signed numbers, you could always change it to res 6,d. RR E RR H RR L END asm END FUNCTION
Reply


Messages In This Thread

Forum Jump:


Users browsing this thread: 1 Guest(s)