×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Comments

top

The Case For a Safer Smartphone

Mr Z Re:Thanks, but no. (184 comments)

How about when parents go phone shopping for their kids? It'll at least have a chance of affecting teen drivers, which already are among the worst drivers and heaviest texters.

about two weeks ago
top

Nanodot-Based Smartphone Battery Recharges In 30 Seconds

Mr Z Re:Phones yeah (227 comments)

Yes, imagine a world where the laws of thermodynamics don't apply.

The peak theoretical efficiency of an internal combustion engine is bounded by the efficiency of an equivalent ideal Carnot cycle, which if I remember my ME301 Thermo class, is a bit below 40%. Wikipedia backs me up on this, quoting a limit of 37% for a steel engine block. That jibes with what I remember learning in Thermo.

To get 80% efficiency out of gasoline would require a different method of releasing its energy than an internal combustion engine.

about two weeks ago
top

It's Time To Bring Pseudoscience Into the Science Classroom

Mr Z Re:Pseudo-science in the Survey! (470 comments)

Interesting. It'd be funnier if it weren't so sad.

about two weeks ago
top

It's Time To Bring Pseudoscience Into the Science Classroom

Mr Z Re:Pseudo-science in the Survey! (470 comments)

Does Gene Ray have a teenaged / twenty-something relative somewhere that's "into computers"? If so, I think he could be your troll. :-P

about two weeks ago
top

USB Reversable Cable Images Emerge

Mr Z Re:Voltage != Power (208 comments)

You are correct. I got my wires crossed. I actually have a 7805 replacement here in my "lab" that is an actual switching regulator. And for some reason I had mentally bucketed it with LDOs, which as you noted, are just low-dropout varieties of linear regulators. And yes, switching regulators like these are a little pricier, although I believe with the RECOM R-78xx series you're just paying for the convenience of swapping out a 7805 space heater without touching the rest of your circuit. :-P

about three weeks ago
top

USB Reversable Cable Images Emerge

Mr Z Re:Reversible (208 comments)

500W dissipated in the volume of a soda can is quite a lot. My heat-shrink gun that claims to go up to 500C is rated at 1200W, and that's the air that's leaving it, not the coils inside. Its barrel is about the size of two soda cans.

about three weeks ago
top

NASA Puts Its New Spacesuit Design To a Public Vote

Mr Z Which polish do you want on your turd? (127 comments)

I see three options: Blue waterbear with spaghetti, Grey Tron waterbear, and Frumpy waterbear

about a month ago
top

College Grads Create Fake Tesla Commercial That Elon Musk Loves

Mr Z Re:Lemme posit this... (100 comments)

Because, when it comes to car commercials, ad agencies are bound by so many rules and regulations regarding depictions of reckless driving and such things that it becomes almost impossible tp create a cool car commercial without running the risk of going to court over it (both the ad agency AND car manufacturer).

And yet, this commercial had zero driving at all!

about a month ago
top

Turing Award Goes To Distributed Computing Wrangler Leslie Lamport

Mr Z Re:Welcome to Lamport's Bakery! (40 comments)

Ok, the statement I made in my third sentence above is imprecise to the point of being inaccurate. The exact property, as described by Wikipedia:

The original proof shows that for overlapping reads and writes to the same storage cell only the write must be correct. The read operation can return an arbitrary number. Therefore this algorithm can be used to implement mutual exclusion on memory that lacks synchronisation primitives

So the part about not needing "properly arbitrated memory access" is mostly true—a read that collides with a write to the same location can return garbage. Writes still must update memory properly, and presumably must be sequentially consistent.

about a month ago
top

Turing Award Goes To Distributed Computing Wrangler Leslie Lamport

Mr Z Welcome to Lamport's Bakery! (40 comments)

My first encounter with Leslie's work was Lamport's Bakery. It's a serialization primitive with some surprising properties. For example, it doesn't require properly arbitrated access to memory as the initial value read from memory on entrance to the "bakery" actually doesn't matter!

Dr. Lamport was actually kind enough to reply to an email of mine regarding said primitive. I was optimizing a version of it for a multiprocessor device we were making where I work, and I had come upon what I thought was a clever optimization. (I actually vectorized a portion of the algorithm by way of the "unroll and jam" transformation, so I could test the state of multiple processors in parallel, rather than in serial order as described in the algorithm.) He actually took the time to respond to my email, and was quite gracious. His reply:

In the Bakery Algorithm, process i must wait until a certain condition holds for each other process. The order in which it checks for the different other processes does not matter. So, the algorithm can be parallelized in the manner you suggest.

The only time I was more thrilled on a topic like this was when Dr. Knuth replied to mail I sent him regarding a particular algorithm in Volume 4 of TAOCP. I actually received a hand written reply. Well, he hand wrote notes on a printed copy of the email I had sent to his TAOCP feedback address. Dr. Knuth also encourages me to let all my friends know how much I like TAOCP. So, consider yourself informed: I think Knuth's The Art of Computer Programming series is worth its weight in gold, and if you consider yourself a computer scientist or computer engineer, you should consider getting yourself a copy, and investing the time to at least skim it. (Let's face it, to truly understand everything in there would require as much time as Don put into writing it.)

about a month ago
top

Crowdsourcing Confirms: Websites Inaccessible on Comcast

Mr Z Re:Quick change needed [Re:Stop] (349 comments)

I just checked it now on my end and it seems to be fine. Maybe it was just a transient failure?

$ host eztv.it
eztv.it has address 162.159.244.249
eztv.it has address 162.159.243.249
eztv.it has IPv6 address 2400:cb00:2048:1::a29f:f3f9
eztv.it has IPv6 address 2400:cb00:2048:1::a29f:f4f9
eztv.it mail is handled by 10 ezmail.es.
$ grep nameserver /etc/resolv.conf
nameserver 8.8.4.4
nameserver 8.8.8.8

about a month ago
top

Vast Surveillance Network Powered By Repo Men

Mr Z Re:BACK IN people BACK IN (352 comments)

Don't try this at in a University of Texas parking lot. They'll fine you for it. When it happened to me, it was something like $35. "Improper Method of Parking," or some such bunkum. Oh, and Texas requires front plates, so you've already lost that aspect anyway.

about a month and a half ago
top

Vast Surveillance Network Powered By Repo Men

Mr Z Re:I've experienced it (352 comments)

I wonder if that was what was up with a truck I saw a few months back, with a huge ol' camera on the side. It was just a boring black pickup truck, and just one camera on the driver's side.

I've seen the Google Car, and it was much smaller, painted rather obviously, and had cameras facing multiple directions.

about a month and a half ago
top

Radar Expert Explains How To Cheaply Add Radar To Your Own Hardware Projects

Mr Z Re:Silly Acronyms (69 comments)

It refers to the C Run Time, aka. the C standard library. Back in the day, only C programmers were able to operate radar. Nowadays, they can monitor radar with jQuery and node.js.

about 2 months ago
top

Why Your Phone Gets OTA Updates But Your Car Doesn't

Mr Z Re:Umm safety? (305 comments)

Did the OTA process itself cause the instability, or would your device been just as unstable had you updated it over a cable? My comments regarding OTA updates are meant to apply to the OTA aspect only, not whether the update itself is good. That is, for a given update X, do you deliver that update via a programming cable plugged into the ECU at the dealership, or do you deliver that exact same update OTA. That was the point in debate.

Or is your (unstated) argument that by lowering the barrier for making updates (ie. OTA is easier and cheaper than calling everyone into the shop), that would tempt auto manufacturers to take shortcuts in their QA process in the name of getting updates out there more quickly?

about 2 months ago
top

Steve Jobs To Appear On US Postage Stamp

Mr Z Re:One of these things is not like the others... (184 comments)

Johnny Carson? Every one of his jokes was original? He mined Vaudeville humor and brought it to TV. He didn't even start the Tonight Show.

Elvis Presley? All of his hits were written by others. Let's face it: He made his money and fame bringing black music to white people.

James Brown? Definitely an original, whose life unfortunately went off the rails at some point.

Ok, that's enough rant. Every one of those folks earned their place on a stamp. I just wanted to point out your double standard. It's easy to dismiss one person or another with cherry picked criteria.

If you walked up to a random 20 or 30 something on the street today and asked them if they knew who Carson, Bergman, Presley, Brown or Jobs was, I imagine Steve would beat out most of them.

I'm no Steve Jobs fanboy. (I've never owned an iPhone or iPod, and I'm posting this from a Linux box.) But even I can recognize the reality of the situation.

about 2 months ago
top

Why Your Phone Gets OTA Updates But Your Car Doesn't

Mr Z Re:Umm safety? (305 comments)

I know you're just trying to be snarky.

Actually, proper OTA updates have a number of safeguards built into them to ensure the process has clean "before" and "after" states for each step of the update process, with no crash-inducing intermediate state. I can think of at least one vendor that has a product in this space. (Note: The link is not meant as an endorsement; it's merely an example.)

The only real thing I imagine you need to worry about is if the car has had damage or after-market "upgrades" that might interfere with the validity of the update, leading to safety issues with the combination. A trip to the dealer would at least give the dealer a chance to notice such things. I find it hard to imagine that in practice, though, that it would uncover many negative interactions at the dealer.

about 2 months ago
top

Why Improbable Things Really Aren't

Mr Z Re:People round down (166 comments)

I usually don't state that explicitly, at least at first. I want to let the idea sink in first. I will state that if someone doesn't get it at first, though.

about 2 months ago

Submissions

top

Under the Smogberry Trees: Kickstarter aims for Dr. Demento Documentary

Mr Z Mr Z writes  |  about a year ago

Mr Z (6791) writes "A favorite of geeks, nerds and quirky folk everywhere, Dr. Demento has been a fixture since 1975, bringing funny, demented music to us all. Dr. Demento both inspired and helped launch many artists, including such diverse talents as Weird Al Yankovic and Richard Cheese.

The group at Meep Morp Studio are working to put together a documentary about both the good Dr. himself as well as his alter ego, the globally respected musicologist and historian Barret Hansen.

The catch? They have a a Kickstarter here that still has 40% to go in the next 5 days. That's a pretty tight deadline. But, if even a small fraction of Slashdotters that have enjoyed Dr. Demento over the years pitch in a nice dinner's worth of dollars each, this documentary will get made."

Link to Original Source

Journals

top

Space Patrol: Almost there

Mr Z Mr Z writes  |  more than 6 years ago

Production continues to move forward. The ROMs are all programmed, and the CPLDs are close behind. PCBs are getting fabbed right now, and when they come it, they'll be stuffed shortly thereafter. If we hurry, we may be able to ship something by year's end.

Manual and overlay are finalized, box layout's finalized, trial box looks good... It's all becoming real!

top

Space Patrol: Teaser Edition now available

Mr Z Mr Z writes  |  more than 6 years ago

Space Patrol: Teaser Edition is now available, with source code! The Teaser is identical to the full release, except:

  • No splash screen
  • No Easter eggs :-)
  • Each course ends at checkpoint J instead of checkpoint Z

The full version will be available when the cartridge gets released. Sign up for the cartridge announcement at David Harley's Space Patrol page.

top

Space Patrol: The Final Stretch!

Mr Z Mr Z writes  |  more than 7 years ago

Space Patrol, as mentioned here is entering the home stretch. I figure I have a week of solid coding left to do on it, meaning I'll probably be finished with it by the end of January. (It is a hobby.) Currently, I'm adding the final few missing pieces:

  • Scoring, including high-score tracking.
  • Game over and continues.
  • Splash screen.
  • General cleanups, including maybe a few cycle-count reductions.

Once I get the game done, I'm going to begin working on an extra secret special feature that, if I can get it to work, will make this one of the most unique Intellivision games of all time. Whoo hoo!

top

Space Patrol!

Mr Z Mr Z writes  |  more than 7 years ago

I'm actually working on Space Patrol again! It pretty much sat on the shelf for 2-3 years. I've dusted it off and really put some work into it.

I made a post about it on my LiveJournal. David Harley, who is helping me with level design, has his own page up on it on his website.

So far we have 2 complete worlds finished. We're adding 6 more. The engine itself is 90-95% complete. Now it's for all the work around the edges--sound effects, level data, transitions, scoring and dying.

top

Good, working code heading for the wastebin *sniff*

Mr Z Mr Z writes  |  more than 11 years ago

Shameless rambling about a personal project...

I'm working on a video game that is similar to Moon Patrol. It's a game for the venerable, underpowered Intellivision video game system. You can find more information and a developer's kit on the Intellivision on my SDK-1600 page.

Well, I spent Thanksgiving up through now working on various aspects of the game. One large piece was working out a method for controlling the 'bad guys.' I figured I'd write a small interpreter that would read a "Bad Guy Motion Program", and move the guys around. I even wrote a very simplistic assembler to assemble the command words for the interpreter. The whole thing actually works pretty reliably.

Turns out, though, that I need something else. My current approach is 'timer based.' That is, the motion programs are essentially of the form "Set velocity to dx,dy", "wait XX tics", "set velocity to dx,dy", "wait XX tics", "fire", "wait XX tics", "leave the screen." The problems are twofold:

  • In Moon Patrol, at least, the bad guys are cued into the level and cued out of the level by location. That is, when I cross a particular marker, the bad guys show up. When I cross a different particular marker, they leave. I'd like similar behavior for my game, but the timer method causes the bad guys to leave too soon if the tank is driving slowly, and too late if the tank is driving quickly.
  • The bad guys always move in EXACTLY the same pattern. In Moon Patrol, at least, the bad guys move consistently only if you move consistently. That is -- their movements seem rule based, not hardcoded.

So, I'm going to have to scrap my current interpreter. I'm torn between writing a new interpreter (or extending this one) to allow me to write rule-based motion programs for the bad guys, or just writing the rule-based programs directly in CP-1600 assembly. The latter is less convenient, I think, but will likely be smaller and is more likely to fit in my cycle budget.

So it appears I will probably scrap the interpreter.

The interpreter wasn't much, but it was something. And it worked. And I was proud of it. It provided some neat concepts, such as a looping construct that combined initialization, decrement, and branching into a single instruction. FWIW, here's how the looping instruction worked:

I offer two loop-counters per program. The LOOPA instruction uses the 'A' loop counter, and LOOPB uses the 'B' loop counter. The counters are initialized to 0 at the start of the program. Upon reaching an instruction of the form "LOOP[AB] label, count", the loop instruction checks the corresponding loop counter. If it's 0, it's initialized to the specified count and a branch is made to the label. If it's non-zero, it's decremented, and if the result is non-zero the branch is taken. That's it.

Here's an example motion program that causes a bad-guy to move in a box-shaped spiral:

####
## sample motion programs
####
MP_BOX PROC

@@box
. . . . GO (3) rg1
. . . . GO (3) dn1
@@boxb GO (3) lf1
. . . . GO (2) up1
. . . . LOOPA @@box, 5 # do the box 5 times

. . . . GO (2) rg2
. . . . GO (2) dn2
. . . . LOOPB @@boxb, 4 # slide over and do this 4 times total.
. . . . GO (9) lf3
. . . . DIE
. . . . ENDP

The names "lf1", "dn2" represent directions and velocities. The number in parentheses is number of ticks to wait after the instruction executes (at a 30Hz tick-rate). Nothing particularly mind-bending.

Now it looks as though I might bin all this code and write up motion programs in straight assembly. *sigh*

Ah well, here's the interpreter (or at least the heart of it) for posterity.

;; ======================================================================= ;;
;;. UPBGM -- Update Bad Guy Motion.. Called on a 30Hz tick.. . . . . . . . ;;
;; ======================================================================= ;;
UPBGM. PROC
. . . . PSHR. . R5

. . . . MVII. . #BGMPTBL, R4
. . . . CLRR. . R1

. . . . ;; --------------------------------------------------------------- ;;
. . . . ;;. Iterate through the motion programs . . . . . . . . . . . . . . ;;
. . . . ;;. R0 -- scratch. . . . . . . . . . . . . . . . . . . . . . . . . ;;
. . . . ;;. R1 -- Slot # for MOB (within group 1). . . . . . . . . . . . . ;;
. . . . ;;. R2 -- Program counter for current record . . . . . . . . . . . ;;
. . . . ;;. R3 -- scratch. . . . . . . . . . . . . . . . . . . . . . . . . ;;
. . . . ;;. R4 -- Pointer to BGMP state tables . . . . . . . . . . . . . . ;;
. . . . ;;. R5 -- scratch. . . . . . . . . . . . . . . . . . . . . . . . . ;;
. . . . ;; --------------------------------------------------------------- ;;
. . . . B . . . @@first_bgmp. . ; skip first INCR R1

@@next_bgmp:
. . . . INCR. . R1. . . . . . . ; next slot #

. . . . CMPI. . #5,. . R1. . . ; Is this the end?
. . . . BGE . . @@done_bgmp . . ; Yes, done.

@@first_bgmp:
. . . . SDBD
. . . . MVI@. . R4,. . R2. . . ; Get program counter
. . . . TSTR. . R2. . . . . . . ; If it's zero, motion program is inactive
. . . . BNEQ. . @@active_bgmp. ; Non-zero, it's active.

. . . . ADDI. . #3,. . R4. . . ; Skip rest of record.
. . . . CMPI. . #BGMPTBL+25, R4 ; Is this the end?
. . . . BLT . . @@next_bgmp . . ; No, do the next one.
. . . . B . . . @@done_bgmp . . ; Yes, done.

@@active_bgmp:
. . . . MOVR. . R4,. . R3
. . . . MVI@. . R4,. . R0. . . ; Get delay counter for this motion program
. . . . ADDI. . #2,. . R4. . . ; point to next record
. . . . DECR. . R0. . . . . . . ; Count down the delay counter.
. . . . MVO@. . R0,. . R3. . . ; Store the updated delay counter

. . . . BPL . . @@next_bgmp. . ; If not expired, go to the next program.

@@expired:
. . . . MVI@. . R2, . . R0. . . ; Get next program word.
. . . . INCR. . R2
. . . . MVO@. . R0, . . R3. . . ; Store out lower byte as delay count.
. . . . XOR@. . R3, . . R0. . . ; Clear delay byte
. . . . SWAP. . R0. . . . . . . ; Extract command byte.

. . . . SUBI. . #64,. . R0. . . ; Less than 64?. It's a motion command.
. . . . BMI . . @@cmd_move. . . ;
. . . . SLL . . R0,. . 1
. . . . ADDR. . R0,. . PC. . . ; Otherwise, vector to the other commands.
. . . . B . . . @@cmd_loopa . . ;. 0 : LOOPA
. . . . B . . . @@cmd_loopb . . ;. 1 : LOOPB
. . . . B . . . @@cmd_jump. . . ;. 2 : JUMP
. . . . B . . . @@cmd_fire. . . ;. 3 : FIREA
. . . . B . . . @@cmd_fire. . . ;. 4 : FIREB
. . . . B . . . @@cmd_fire. . . ;. 5 : FIREC
. . . . B . . . @@cmd_die . . . ;. 6 : DIE
. . . . B . . . @@cmd_attr. . . ;. 7 : ATTR
. . . . B . . . @@cmd_seths . . ;. 8 : SETHS
. . . . B . . . @@cmd_clrhs . . ;. 9 : CLRHS
; . . . B . . . @@cmd_wait. . . ; 10 : WAIT aka. NOP.

. . . . ;; --------------------------------------------------------------- ;;
. . . . ;;. WAIT/NOP:. Just set the delay counter and go to next command.. ;;
. . . . ;; --------------------------------------------------------------- ;;
@@cmd_wait:

@@finish_cmd:
. . . . SUBI. . #5,. . R4. . . ; Rewind to program pointer in record.
. . . . MVO@. . R2,. . R4. . . ; \.
. . . . SWAP. . R2. . . . . . . ;. |-- Store program counter as double-byte
. . . . MVO@. . R2,. . R4. . . ; /. . data
. . . . ADDI. . #3,. . R4. . . ; point to next record.

. . . . B . . . @@next_bgmp. . ; No, do the next one.

. . . . ;; --------------------------------------------------------------- ;;
. . . . ;;. LOOPA/LOOPB:. Count down the loop counter.. If it goes -ve, . . ;;
. . . . ;;. we're just starting the loop so initialize it and branch. . . . ;;
. . . . ;;. If it goes 0, the loop is just finishing, so fall through.. . . ;;
. . . . ;;. Otherwise, store updated counter and branch.. . . . . . . . . . ;;
. . . . ;; --------------------------------------------------------------- ;;
@@cmd_loopb:
. . . . INCR. . R3. . . . . . . ; Point to loop counter B
@@cmd_loopa:
. . . . INCR. . R3. . . . . . . ; Point to loop counter A

. . . . MVI@. . R2,. . R0. . . ; Read argument to loop into R0
. . . . INCR. . R2. . . . . . . ;

. . . . MVI@. . R3,. . R5. . . ; read loop counter
. . . . DECR. . R5. . . . . . . ; count it down
. . . . BMI . . @@init_loop . . ; if it goes negative, we need to init it.
. . . . BEQ . . @@done_loop . . ; if it goes to zero, it's expiring

. . . . ;; --------------------------------------------------------------- ;;
. . . . ;;. +ve case:. Store updated counter and branch.. . . . . . . . . . ;;
. . . . ;; --------------------------------------------------------------- ;;
@@exec_loop:. . . . . . . . . . ; otherwise it was an active loop.
. . . . MVO@. . R5,. . R3. . . ; store updated loop counter

@@loop_jump:
. . . . ANDI. . #$FF,. R0. . . ; execute the jump.
. . . . XORI. . #$80,. R0. . . ;
. . . . SUBI. . #$80,. R0. . . ;
. . . . ADDR. . R0,. . R2. . . ;

. . . . B . . . @@finish_cmd. . ; finish this command.

. . . . ;; --------------------------------------------------------------- ;;
. . . . ;;. -ve case:. Initialize the loop counter and branch.. . . . . . . ;;
. . . . ;; --------------------------------------------------------------- ;;
@@init_loop:
. . . . SWAP. . R0. . . . . . . ;
. . . . MVO@. . R0,. . R3. . . ; initialize the loop counter.
. . . . SWAP. . R0. . . . . . . ;
. . . . B . . . @@loop_jump

. . . . ;; --------------------------------------------------------------- ;;
. . . . ;;. Zero case:. Zero out the counter and don't branch.. . . . . . . ;;
. . . . ;; --------------------------------------------------------------- ;;
@@done_loop:
. . . . MVO@. . R5,. . R3. . . ; store updated loop counter
. . . . B . . . @@finish_cmd. . ; and that's it.

. . . . ;; --------------------------------------------------------------- ;;
. . . . ;;. JUMP:. Just read the argument into the program counter.. . . . ;;
. . . . ;; --------------------------------------------------------------- ;;
@@cmd_jump:
. . . . MVI@. . R2,. . R2
. . . . B . . . @@finish_cmd. . . . . . ; Done.

. . . . ;; --------------------------------------------------------------- ;;
. . . . ;;. MOVE:. Read the X velocity, Y velocity into SPXYV table.. . . . ;;
. . . . ;; --------------------------------------------------------------- ;;
@@cmd_move:

. . . . MOVR. . R1,. . R5. . . . . . . ;\
. . . . ADDR. . R5,. . R5. . . . . . . ; |-- convert slot number to sprite
. . . . ADDI. . #SPXYV, R5. . . . . . . ;/. . X/Y velocity table pointer

. . . . ADDI. . #@@xvel_tbl + 64, R0. . ; Index into X velocity lookup table
. . . . MOVR. . R0,. . R3

. . . . MVI@. . R3,. . R0. . . . . . . ; Get X velocity from lookup
. . . . MVO@. . R0,. . R5. . . . . . . ; Write it to X vel for this sprite

. . . . ADDI. . #@@yvel_tbl - @@xvel_tbl, R3. . ; Index into Y vel lookup tbl
. . . . MVI@. . R3,. . R0. . . . . . . ; Get Y velocity from lookup
. . . . MVO@. . R0,. . R5. . . . . . . ; Write it to Y vel for this sprite.

. . . . B . . . @@finish_cmd. . . . . . ; Done.

. . . . ;; --------------------------------------------------------------- ;;
. . . . ;;. FIREA:. Make this bad guy drop a bomb. . . . . . . . . . . . . ;;
. . . . ;;. FIREB:. Make this bad guy fire a crater-maker. . . . . . . . . ;;
. . . . ;;. FIREC:. Make this bad guy shoot horizontally to the left.. . . ;;
. . . . ;; --------------------------------------------------------------- ;;
@@cmd_fire:.
. . . . MVII. . #@@firetype - 6, R3
. . . . ADDR. . R0,. . R3
. . . . MVI@. . R3,. . R0. . . ; read X/Y velocity
. . . . INCR. . R3
. . . . MVI@. . R3,. . R3. . . ; read sprite attribute index
. . . . CALL. . BGFIRE
. . . . B . . . @@finish_cmd

@@firetype:
. . . . DECLE. ((VBIAS + $40) SHL 8) + (VBIAS + $00) ; drop the bomb
. . . . DECLE. SPATBL.b2

. . . . DECLE. ((VBIAS + $40) SHL 8) + (VBIAS + $40) ; drop the crater maker
. . . . DECLE. SPATBL.b1

. . . . DECLE. ((VBIAS + $00) SHL 8) + (VBIAS - $80) ; fire left.
. . . . DECLE. SPATBL.b4

. . . . ;; --------------------------------------------------------------- ;;
. . . . ;;. DIE:. Time for this guy to die.. . . . . . . . . . . . . . . . ;;
. . . . ;; --------------------------------------------------------------- ;;
@@cmd_die:
. . . . CALL. . BGKILL
. . . . B . . . @@finish_cmd

. . . . ;; --------------------------------------------------------------- ;;
. . . . ;;. ATTR:. Set the Sprite Attribute for this sprite.. . . . . . . . ;;
. . . . ;; --------------------------------------------------------------- ;;
@@cmd_attr:
. . . . MVI@. . R2, . . R0. . . ; Get attribute
. . . . INCR. . R2
. . . . MOVR. . R1, . . R3. . . ; \
. . . . ADDI. . #SPAT,. R3. . . ;. |-- Store attribute number into slot
. . . . MVO@. . R0, . . R3. . . ; /. . in sprite attribute table.

. . . . B. . . @@finish_cmd

. . . .
. . . . ;; --------------------------------------------------------------- ;;
. . . . ;;. CLRHS:. Set the horizontal-scroll bit for this sprite. . . . . ;;
. . . . ;; --------------------------------------------------------------- ;;
@@cmd_clrhs:

. . . . ;; ---------------------------------------------------------------- ;;
. . . . ;;. SETHS:. Set the horizontal-scroll bit for this sprite. . . . . ;;
. . . . ;; ---------------------------------------------------------------- ;;
@@cmd_seths:
@@do_hs:
. . . . MOVR. . R1, . . R3
. . . . ADDI. . #@@shl_tbl, R3
. . . . MVI@. . R3, . . R3
. . . . MOVR. . R3, . . R0
. . . . COMR. . R3
. . . . AND . . SPHSCR, R3
;;. . . ADCR. . PC
. . . . XORR. . R0, . . R3
. . . . MVO . . R3, . . SPHSCR

. . . . B . . . @@finish_cmd

@@shl_tbl:
. . . . DECLE. 1, 2, 4, 8, 16
. . . .

@@done_bgmp:
. . . . PULR. . PC

@@xvel_tbl:
. . . . DECLE. VBIAS - $20, VBIAS - $40, VBIAS - $60, VBIAS - $7F. ; lf0..lf3
. . . . DECLE. VBIAS + $20, VBIAS + $40, VBIAS + $60, VBIAS + $7F. ; rg0..rg3
. . . . DECLE. VBIAS,. . . VBIAS,. . . VBIAS,. . . VBIAS. . . . ; up0..up3
. . . . DECLE. VBIAS,. . . VBIAS,. . . VBIAS,. . . VBIAS. . . . ; dn0..dn3

. . . . DECLE. VBIAS - $20, VBIAS - $40, VBIAS - $60, VBIAS - $7F. ; lu0..lu3
. . . . DECLE. VBIAS + $20, VBIAS + $40, VBIAS + $60, VBIAS + $7F. ; ru0..ru3
. . . . DECLE. VBIAS - $20, VBIAS - $40, VBIAS - $60, VBIAS - $7F. ; ld0..ld3
. . . . DECLE. VBIAS + $20, VBIAS + $40, VBIAS + $60, VBIAS + $7F. ; rd0..rd3

. . . . DECLE. VBIAS,. . . VBIAS - $08
. . . . ;; directions 33 .. 63 not defined yet.. in no hurry....

@@yvel_tbl:
. . . . DECLE. VBIAS,. . . VBIAS,. . . VBIAS,. . . VBIAS. . . . ; lf0..lf3
. . . . DECLE. VBIAS,. . . VBIAS,. . . VBIAS,. . . VBIAS. . . . ; rg0..rg3
. . . . DECLE. VBIAS - $20, VBIAS - $40, VBIAS - $60, VBIAS - $7F. ; up0..up3
. . . . DECLE. VBIAS + $20, VBIAS + $40, VBIAS + $60, VBIAS + $7F. ; dn0..dn3

. . . . DECLE. VBIAS - $20, VBIAS - $40, VBIAS - $60, VBIAS - $7F. ; lu0..lu3
. . . . DECLE. VBIAS - $20, VBIAS - $40, VBIAS - $60, VBIAS - $7F. ; ru0..ru3
. . . . DECLE. VBIAS + $20, VBIAS + $40, VBIAS + $60, VBIAS + $7F. ; ld0..ld3
. . . . DECLE. VBIAS + $20, VBIAS + $40, VBIAS + $60, VBIAS + $7F. ; rd0..rd3

. . . . DECLE. VBIAS,. . . VBIAS
. . . . ;; directions 33 .. 63 not defined yet.. in no hurry....

. . . . ENDP

And there it is. (The dots are added to preserve the original formatting, although it appears I'm not entirely successful. Ah well... it's pretty close.)

--Joe

top

This whole Friend/Foe/Fans/Freaks thing

Mr Z Mr Z writes  |  more than 11 years ago

Heh. My journal -- probably a bit like pissing in the ocean. It feels good, but nobody notices. ;-)

Anyway, I was clicking through my 'user' pages today (clicking aimlessly, noticing how much snappier Moz 1.1 feels relative to 1.0 on this Solaris box), and noticed that whoa, I have fans!

Up until now, I've entirely avoided the whole friend/foe mechanism. For awhile now, I've checkmarked "unwilling to moderate", and "hide scores". I also browse at '0'. (I used to browse at -1, but it really was too noisy.) Moderation just doesn't seem all that reliable or meaningful, and so I largely ignore it. Too much $3 crack going around. (I don't mind being modded up occasionally though -- if my post is really worth "promoting" to those who browse at higher thresholds.)

The friend/foe mechanism just seemed like another bad idea. It seemed to have the potential to turn Slashdot into a popularity contest like highschool. Either that, or it'd lead to even greater segmentation of the posting populace, with everyone auto-modding up their friends and ignoring everyone else. A sort of "show me only what I agree with and want to hear" mechanism that does little to encourage intelligent discourse and does everything to silo individual cliques. So I just ignored it.

I've thought it over more, now. I certainly don't mind if others mark me as friend or foe. (Although I'd certainly wonder why someone might choose to mark me 'foe'.) I don't have any qualms about marking someone 'friend' anymore either. I don't plan to use the moderation adjustment facility though. I ignore comment moderations for the most part anyway, and I see no reason to change that.

So, I've marked a couple people 'friends' today. Some are longtime acquaintences (either in meatspace or on /.). Others were in my list of 'fans'. And if someone posts a helpful response to one of my posts, or posts something I think is particularly insightful, I may just mark 'em 'friend.' Or maybe not. Who knows.

Well, enough rambling. This post is so long, I've received about 9 or 10 spam emails in the meantime:

Mutt 1.0i@caffeine:=spool/incoming*(reverse-threads) [3173/3173(1% of 71M)][b=0|
. 1 . NDL Sep 26 Jacelyn0828c77@h ( . .25) [Spam] High investment potential ret
. 2 . NDL Sep 26 Rockne Renate . .( . 117) [Spam] Why Wait... Rates Below 4.75%
. 3 . NDC Sep 26 cedrickmills0123 ( . .11) [Spam] how would you like to increas
. 4 . NDL Sep 27 Zared Lucio . . .( . .71) [Spam] Stop going bald, time is stil
. 5 . NDL Sep 27 Brittany Bond . .( . 130) [Spam] In Debt? Get Help!---Free Quo
. 6 . NDL Sep 26 Frayne Clio . . .( . 167) [Spam] Coral Calcium Discovery Lette
. 7 . NDL Nov 25 refi_loans_2@yah ( . .70) [Spam] dont loose sales - take credi
. 8 . NDL Sep 27 celularshop@hotm ( . .38) [Spam] Fwd: Faith is all that is req
. 9 . NDL Sep 27 brellis10@hotmai ( . .54) [Spam] Attn: Do it yourself.

As Stimpy would say: Joy!

--Joe

Slashdot Account

Need an Account?

Forgot your password?

Don't worry, we never post anything without your permission.

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>
Sign up for Slashdot Newsletters
Create a Slashdot Account

Loading...