Search
187 results for “StacyKess”
-
#Transportation #MBTA #Update #MedfordTuftsExtension #TAlert #Somerville #Medford — From @MassDOT: “Sunday Shuttles for Medford/Tufts Station Work — Due to water line work taking place at Medford/Tufts station, shuttle buses will replace #EBranch service between Medford/Tufts and #EastSomerville Stations this Sunday, January 8, from start to end of service. For the latest information about service changes, please visit the E Branch Alerts page, and sign up for T-Alerts.”
-
Harris Yulin, Actor in ‘Scarface,’ ‘Training Day’ and ‘Ozark,’ Dies at 88
#MovieNews #Movies #Broadway #Obituaries #Ozark #Scarface #StacyKeach #Theater #TrainingDay #UnbreakableKimmySchmidt -
Richard Franklin – „Truck Driver – Gejagt von einem Serienkiller“ (1981)Was immer der deutsche Filmverleih sich gedacht haben mag, den ursprünglich genialen Filmtitel „Road Games“ zu übersetzen und „Truck Driver – Gejagt von einem Serienkiller“ daraus zu machen, ist mir ein Rätsel. Doch der miese Titel sollte Sie wirklich nicht davon abhalten, diesen australischen Thriller aus den ganz frühen 80ern zu feiern. Mit Stacy Keach und Jamie Lee Curtis. (ARD, Wh.)
Zum Blog: https://nexxtpress.de/mediathekperlen/richard-franklin-truck-driver-gejagt-von-einem-serienkiller-1981/ -
Richard Franklin – „Truck Driver · Gejagt von einem Serienkiller“ (1981)Was immer der deutsche Filmverleih sich gedacht haben mag, den ursprünglich genialen Filmtitel „Road Games“ zu übersetzen und „Truck Driver – Gejagt von einem Serienkiller“ daraus zu machen, ist mir ein Rätsel. Doch der miese Titel sollte Sie wirklich nicht davon abhalten, diesen australischen Thriller aus den ganz frühen 80ern zu feiern. Mit Stacy Keach und Jamie Lee Curtis. (ARD, Wh.)
Zum Blog: https://nexxtpress.de/mediathekperlen/richard-franklin-truck-driver-gejagt-von-einem-serienkiller-1981/ -
Richard Franklin – „Truck Driver · Gejagt von einem Serienkiller“ (1981)Was immer der deutsche Filmverleih sich gedacht haben mag, den ursprünglich genialen Filmtitel zu übersetzen und „Truck Driver – Gejagt von einem Serienkiller“ daraus zu machen, ist mir ein Rätsel. Doch der miese Titel sollte Sie wirklich nicht davon abhalten, diesen australischen Thriller aus den ganz frühen 80ern zu feiern. Mit Stacy Keach und Jamie Lee Curtis. (ARD, Wh.)
Zum Blog: https://nexxtpress.de/mediathekperlen/richard-franklin-truck-driver-gejagt-von-einem-serienkiller-1981/ -
Richard Franklin – „Truck Driver · Gejagt von einem Serienkiller“ (1981)Was immer der deutsche Filmverleih sich gedacht haben mag, den ursprünglich genialen Filmtitel zu übersetzen und „Truck Driver – Gejagt von einem Serienkiller“ daraus zu machen, ist mir ein Rätsel. Doch der miese Titel sollte Sie wirklich nicht davon abhalten, diesen australischen Thriller aus den ganz frühen 80ern zu feiern. Mit Stacy Keach und Jamie Lee Curtis. (ARD, Wh.)
Zum Blog: https://nexxtpress.de/mediathekperlen/richard-franklin-truck-driver-gejagt-von-einem-serienkiller-1981/ -
Canon EOS C80 Is a Full-Frame 6K Cinema Camera Built for Pro Video https://petapixel.com/2024/09/09/canon-eos-c80-is-a-full-frame-6k-cinema-camera-built-for-pro-video/ #stackedsensor #cinemacamera #canoneosc80 #Equipment #4k120p #cinema #Canon #video #News #6k
-
The Canon EOS R5 II’s Dynamic Range Performance Is Complicated https://petapixel.com/2024/08/19/the-canon-eos-r5-iis-dynamic-range-performance-is-complicated/ #stackedsensor #canoneosr5ii #dynamicrange #canoneosr5 #Equipment #canonr5ii #canonr5 #Canon #News
-
Camera Makers Are Increasingly Happy to Trade Image Quality for Other Benefits https://petapixel.com/2024/08/06/camera-makers-are-increasingly-happy-to-trade-image-quality-for-other-benefits/ #canoneosr5markii #stackedsensor #dynamicrange #imagequality #nikonz6iii #Editorial #Equipment #editorial #sonya9iii #business #strategy #Opinion #opinion #hybrid
-
Sony’s Stacked Sensor Promises Improved Smartphone Image Quality https://petapixel.com/2024/08/05/sonys-stacked-sensor-promises-improved-smartphone-image-quality/ #stackedsensor #dynamicrange #imagesensor #Technology #smartphone #Mobile #News #Sony
-
The Nikon Z6 III’s Peak Dynamic Range Lags Far Behind its Predecessor’s https://petapixel.com/2024/07/03/the-nikon-z6-iiis-peak-dynamic-range-lags-far-behind-its-predecessors/ #partiallystackedsensor #photonstophotos #stackedsensor #dynamicrange #imagesensor #nikonz6iii #Equipment #nikonz6ii #nikon #News
-
Корутины: stackful vs stackless
В этой статье я хочу объяснить разницу между stackless и stackful корутинами: чем они отличаются, какие у них плюсы и минусы, а также в общих чертах рассказать, как в некоторых языках программирования реализована многопоточность. Я стараюсь писать статьи простым и понятным языком, чтобы их мог понять как можно больший круг читателей. Поэтому в тексте будут сделаны упрощения.
https://habr.com/ru/articles/850970/
#корутины #stackles #stackfull #fibres #green_thread #зеленые_треды #многопоточность #async/await #горутины #go
-
Tegu Magnetic Floating Stackers Toys Have Ingestible Magnets that attract each other inside the digestive tract leading to intestinal perforations, twisting, blockages, blood poisoning, or death. #tegu #toys #magnets #ingestion #perforations #blockage #recall
https://www.instagram.com/p/DM8Lobju2c1/ -
#News #CambridgeMA #CambridgeDay #PoliceShooting #MentalHealth — Reporter Sue Reinert is giving you the most local look at the response to the police shooting of 20-year-old Arif #SayedFaisal. A Cambridge office, now on paid leave, shot #Faisal Jan. 4 after a neighbor saw him outside cutting himself with glass and a large knife. #Police say he didn’t to respond to non-lethal methods. #Protesters say Faisal wasn’t a threat and #LeathalForce shouldn’t have been used. Read: https://www.cambridgeday.com/2023/01/16/unarmed-response-to-mental-heath-crises-emerges-as-theme-at-a-protest-after-death/
-
#Transportation #Massachusetts #MBTA — In inauguration speech, Gov. Maura #Healey vows to #FixTheT; hire GM; safety chief in 60 days; get funding to hire 1000 more workers in first year. “Let’s face it: The state of our trains, roads and bridges today is unacceptable,” she said. “Let’s acknowledge that we can’t have a functioning economy without a functioning T.”
-
How to Write Alt Text for News, by @StacyKess (@the-word.news):
-
What I watched before and at Christmas with 5 new reviews with the likes of #GregoryHarrison, #StefaniePowers, #StacyKeach, #DavidDuchovny, #DavidHasselhoff, #HughGrant, #MichaelYork and #BarryBostwick...
-
Cate Blanchett, Robert Redford – Der Moment der Wahrheit (2015)
Etwas, das dem amerikanischen Kino einfach eigen ist, ist seine Fähigkeit den Journalismus zu feiern. Robert Redford hat bereits 1976 einen Prototypen des Genres dargestellt: Den investigativen Journalisten der quasi im Alleingang einen amtierenden Präsidenten zu Fall gebracht hat. Damals war Dustin Hoffman sein Partner. Fast 40 Jahre später hat er für diesem […]
-
Cate Blanchett, Robert Redford – Der Moment der Wahrheit (2015)
Etwas, das dem amerikanischen Kino einfach eigen ist, ist seine Fähigkeit den Journalismus zu feiern. Robert Redford hat bereits 1976 einen Prototypen des Genres dargestellt: Den investigativen Journalisten der quasi im Alleingang einen amtierenden Präsidenten zu Fall gebracht hat. Damals war Dustin Hoffman sein Partner. Fast 40 Jahre später hat er für diesem […]
-
Cate Blanchett, Robert Redford – Der Moment der Wahrheit (2015)
Etwas, das dem amerikanischen Kino einfach eigen ist, ist seine Fähigkeit den Journalismus zu feiern. Robert Redford hat bereits 1976 einen Prototypen des Genres dargestellt: Den investigativen Journalisten der quasi im Alleingang einen amtierenden Präsidenten zu Fall gebracht hat. Damals war Dustin Hoffman sein Partner. Fast 40 Jahre später hat er für diesem […]
-
Cate Blanchett, Robert Redford – Der Moment der Wahrheit (2015)
Etwas, das dem amerikanischen Kino einfach eigen ist, ist seine Fähigkeit den Journalismus zu feiern. Robert Redford hat bereits 1976 einen Prototypen des Genres dargestellt: Den investigativen Journalisten der quasi im Alleingang einen amtierenden Präsidenten zu Fall gebracht hat. Damals war Dustin Hoffman sein Partner. Fast 40 Jahre später hat er für diesem […]
-
Z80 and AY-3-8910 – Part 2
I’ve spent a bit of time looking at the “Tester” part of the AY driver code for Tim Follin’s music archive that I talked about in Z80 and AY-3-8910.
This is documenting what I think I’ve worked out so far for the tester code.
The Sound Tester
As previously mentioned, there are essentially three parts to the code in Follin archive:
- The tune and effect data.
- Ste Ruddy’s Sound Driver.
- A tracker-style (ish) tester UI application.
The first part looked at the sound driver itself, and essentially skipped over the tester part of the code. This post picks up on that tester code.
Reminder, from part one, the main structure is as follows:
Code_Start: EQU 40000
Data_Start: EQU 50000
;-----------------------------
ORG Code_Start
; The UI/tester code
TESTER:
LOOP: Calls the following for each scan:
HALT - Suspends until an interrupt comes in?
CALL UPDATE
CALL REFRESH
CALL CLOCK
CALL KEYSCAN
Repeat as necessary
KEYSCAN: UI scanning
CLOCK: Possibly maintain a 50Hz refresh rate clock?
UPDATE: Loads the internal state of all sound variables from
the driver and displays them in real time via the UI.
; The sound driver
CODE_TOP:
TUNE: Select which tune to play.
TUNE_IN: Init all internal sound state variables for a new tune.
TUNEOFF: Stop a playing tune, eg to change tune or start an FX.
FX: Start playing an FX.
FLOOP: Keep processing FX instructions until complete.
REFRESH: "run" a scan of the sound driver updating and outputting the soundThe Tester Code
Initialisation information and main screen data:
;**************************************
; Z80 AY MUSIC DRIVER
;**************************************
; ORG 40000
; LOAD 0C000H
;======================================
;STACK DEPTHS
SD: EQU 3
;======================================
ASCII: EQU 23560 ; 23560 = $5C08 = System Variable "LAST K"
TESTER: PUSH AF
PUSH BC
PUSH DE
PUSH HL
XOR A ; ASCII = MINS = SECS = 0
LD (ASCII),A
LD (MINS),A
LD (SECS),A
CALL TUNEOFF ; TUNE initialisation
CALL STACKMESS ; Kick off the Tester code!
DB CLS ; The start of the main UI data
DB AT,0,0
DB INK,01010111B
DB "'AY' MUSIC DRIVE"
DB "R V2 BY S.RUDDY"
... Skip ...
DB INK,64+5
DB "VOLUME "
DB " "
DB 255
... Skip ...
AT: EQU 22
INK: EQU 16
CLS: EQU 15
STACKMESS: POP IX
CALL MESS
JP (IX)There is a whole lot of screen data in DB blocks which includes some “op codes” that are defined later: AT, INK, CLS. These are special codes that are used by the ROM-based print routines (more here), as used by Sinclair BASIC, but in this case they are spelt out directly, later in code. The final 255 signifies the end of the screen data.
So how are these definitions handled? That all comes up in the “MESS” routine I’ll get to in a moment, but first that “STACKMESS” routine needs a bit of explanation.
When a CALL instruction happens, such as the CALL STACKMESS at the start, the current program counter gets pushed onto the stack. In this case the current PC will point to the instruction after the CALL, which happens to be the start of the screen data. So the POP IX will grab the address of the screen data and drop it into IX and then call the “MESS” function to actually get on with it!
But before I get to that, there is some more code after the screen data:
LD HL,CALC1
PUSH HL
LD A,H
LD DE,4067H ; Output high byte
CALL HEX
POP HL
LD A,L
LD DE,4069H ; Output low byte
CALL HEX
LD HL,(CALC2)
PUSH HL
LD A,H
LD DE,4071H ; Output number of Tunes
CALL HEX
POP HL
LD A,L
LD DE,4073H ; Output number of effects
CALL HEX
LD HL,CALC1
LD DE,(CALC2)
ADD HL,DE
PUSH HL
LD A,H
LD DE,407CH ; Not entirely sure what this is outputting...
CALL HEX
POP HL
LD A,L
LD DE,407EH
CALL HEXThis is writing some basic data out to the display. CALC1 seems to relate to code section size. I believe CALC2 is the start address of the tune data, which is the following:
ORG Data_Start
TUNES: EQU 5
EFFECTS: EQU 21All three of these sections are outputting a 16-bit value in two single-byte chunks using the “HEX” routine, which takes a screen address (in the range $4000-$57FF) and outputs a hex number at that screen location.
So while I’m at it then, how is that HEX function working?
;--------------------------------------
HEX: INC DE ; DE contains the screen address to use
PUSH AF ; Start with DE+1
CALL ONEnib ; Write out the LOW 4-bits
POP AF
RRA ; A = A>>4
RRA ; to write out HIGH 4-bits
RRA
RRA
DEC DE ; Back to original DE screen address
ONEnib: AND 15 ; A = A & 0xF
ADD A ; BC = A * 2
LD C,A
LD B,0
LD HL,ROM_TAB ; Read from ROM_TAB[BC]
ADD HL,BC
LD A,(HL)
INC HL
LD H,(HL)
LD L,A ; HL = (uint16_t)ROM_TAB[A]
MIKESbug: LD C,D ; So HL now points to character bitmap in ROM
LD B,8 ; Write out 8 bytes to display memory directly
PRloop: LD A,(HL) ; (DE) = (HL)
LD (DE),A
INC HL ; HL++
INC D ; NB: Layout of display mem means D++ is next line of char
; for same value of E.
DJNZ PRloop ; WHILE (B-- > 0)
LD D,C ; (Restore D before returning, so DE still = screen addr)
RET
ROM_TAB: DW 3D80H ; ROM character set: 3D80 = "0"
DW 3D88H ; Each char = 8 x 8 bits
DW 3D90H
DW 3D98H
DW 3DA0H
DW 3DA8H
DW 3DB0H
DW 3DB8H
DW 3DC0H
DW 3DC8H ; = "9"
DW 3E08H ; = "A"
DW 3E10H
DW 3E18H
DW 3E20H
DW 3E28H
DW 3E30H ; = "F"This is making use of the character set stored in the Spectrum ROM (more here) which is indexed via a 16-word jump table mapping the characters onto each of the 16 hex characters: 0..9, A..F.
Then each byte, 8 in total, of the character is written directly out to the Spectrum screen memory taking advantage of the odd formatting of the screen memory to easily skip to the next line of the display for each line of the character (more here).
So before I get into the main update loop, how the screen initialised and set up? That happens in the “MESS” and some ancillary functions.
MESS: LD A,(IX+0) ; At this point, McursorX, McursorY = (0,0)
INC IX ; So read a byte of screen data
OR A
RET M ; Stop IF A=255 (i.e. negative)
CP 32
JR C,Mcontrol ; IF A<32 process control character then RET back to "MESS"
CALL Mgetchar ; ELSE Process character
CALL Mgetaddr ; Get screen address for next output in DE
CALL MIKESbug ; Output the character
CALL PRattr ; Set the colour attributes
CALL INCcursor ; Update the screen position for the next byte of screen data
JR MESS
Mcontrol: LD HL,MESS ; Stick the address of "MESS" on the stack for the RET
PUSH HL
CP 15 ; IF A == CLS
JR Z,Mcls
CP 22 ; IF A == AT
JP Z,Mat
CP 16 ; IF A == INK
JR Z,Mink
RET ; RETurn to "MESS"
Mcolour: DB 0 ; Working variables for cursor position and colour
McursorX: DB 0
McursorY: DB 0 ; Has to be directly after McursorX (see later)
Mink: LD A,(IX+0) ; Process INK to set colour
INC IX
LD (Mcolour),A
RET
Mcls: LD HL,4000H ; Process CLS to clear screen
LD (HL),L
LD DE,4001H
LD BC,1AFFH
LDIR
LD (McursorX),BC
RET
INCcursor: LD HL,McursorX ; Moves the cursor on one position
LD A,(HL)
INC A
AND 31
LD (HL),A ; X++; X = X % 32
RET NZ ; IF X==0; Y++
INC HL ; Assumes McursorY is McursorX++
INC (HL)
RET
Mgetchar: LD L,A ; HL = A*8 + 3C00
LD H,0 ; Note: A > 32; where 32="Space"
ADD HL,HL ; In ROM, space is address 3D00
ADD HL,HL ; 32 * 8 = 0x100
ADD HL,HL
LD BC,3C00H
ADD HL,BC ; HL = Start address of character map for char in A in ROM
RET
.... skip ....
Mgetaddr: LD A,(McursorY) ; Calculate the screen address for (McursorX, McursorY)
AND 18H
OR 40H
LD D,A
LD A,(McursorY)
RRCA
RRCA
RRCA
AND 0E0H
LD E,A
LD A,(McursorX)
ADD E
LD E,A
RET ; DE = required screen address
Mat: LD A,(IX+0) ; Set cursor to provided X, Y in screen data
LD (McursorX),A
INC IX
LD A,(IX+0)
LD (McursorY),A
INC IX
RET
PRattr: LD A,D ; Get address of ATTRibute memory
RRA
RRA
RRA
AND 3
OR 58H
LD D,A
LD A,(Mcolour)
LD (DE),A ; And set the colour
RETBasically this loop keeps working on the provided screen data until the value 255 is found, at which point it returns. There are two paths for handling the data:
- IF the value is < 32 then it is a control value. Only CLS, AT and INK are recognised.
- ELSE the value is assumed to be an ASCII character and is displayed.
Whatever is happening, happens at the coordinates given by (McursorX, McursorY) which start out as (0,0) and get updated automatically when a character is output, or in response to an AT command. INK will set the required colour in Mcolour, which again starts out as 0. This is applied after the character is written to the screen, using the PRattr function.
There is a fun bit of optimisation going on in Mcontrol. At the start it pushes the address of the MESS function on the stack, which means that the RET will jump back to the start of MESS rather than where the jump happened to Mcontrol itself.
There is another shortcut in the Mcls function: LDIR. From http://z80-heaven.wikidot.com/instructions-set:ldir: “Repeats LDI (LD (DE),(HL), then increments DE, HL, and decrements BC) until BC=0.” By setting the contents of HL (the first byte of the display) to zero, this will tile that same value across the display memory until BC, which starts at $1AFF, is zero. This will zero the whole display – both pixels and attributes – from 0x4000 through to 0x5AFF.
Now finally, we get to the main update loop.
LOOP:
HALT
CALL UPDATE ; Update the display from the current Sound parameters
LD A,2
OUT (254),A ; Set border to 2
CALL REFRESH ; Update the sound driver parameters
XOR A
OUT (254),A ; Set border to 0
CALL CLOCK ; Run 50Hz clock
CALL KEYSCAN ; Guess what - scans the keyboard 🙂
LD A,07FH
IN A,(254) ; Reads 0x7FFE which is the bottom row of the keyboard
AND 1
JP NZ,LOOP ; Checks bit 0, which is the SPACE key
LD BC,65533 ; AY OUTPUT PORTS (FFFD, BFFD)
LD A,7
OUT (C),A
LD BC,49149
LD A,63 ; Set AY register 7 to 63 - i.e. all channels OFF
OUT (C),A
POP HL
POP DE
POP BC
POP AF
RETI’m not going through the sub routines of the loop, other than to note the following:
- UPDATE is a whole series of instructions that basically do the following to output the HEX value of a sound parameter:
LD A, (contents of one of the sound variables)
LD DE, (corresponding screen address for the variable to be displayed)
CALL HEX- REFRESH runs the sound driver itself, as described in Z80 and AY-3-8910.
- CLOCK decrements the FIFTY variable and every time it gets to zero updates SECS and MINS and writes them out to the display. As it also uses the HEX routine, I guess it is storing the time using binary-coded decimal (BCD).
- KEYSCAN reads the last key pressed from the system variable location stored in ASCII (23560 / 0x5C08).
At some point I might come back and work out what keys do what…
Closing Thoughts
I’d really like to get some of this code running on some of the alternate Z80 platforms I have. Getting the sound output shouldn’t be too much of an issue, but I’d really like to have some kind of display too.
But as can be seen above, the tester UI is pretty well tied into the oddities of the ZX Spectrum display, so porting it won’t be trivial.
I suspect there are already some existing AY/chiptune players that perhaps would be a better starting point, but from what I’ve seen they tend to stream the register data after having sampled it at regular intervals, which isn’t quite what I was after… there would be something really quite interesting about actually running Ste Ruddy’s Sound Driver with a Tim Follin soundtrack programmed in.
Kevin
#ay38910 #TimFollin #zxSpectrum -
@fletch1 I defended that reporter, since the article was about asking for accommodations, was fantastic and the using the colloquial term was intentional. Now I’m receiving all the hate (#BringIt). It wasn’t a health or medical article, nor was it only about PACS, but hey, being myopic is the way we function these days…
2/
-
#Massachusetts #PublicSafety #Disability — #ICYMI, a new state traffic law that directs vehicles to how to watch out for bikes and other “vulnerable road users” also affects #disabled road users.
How? Let’s take a quick look on how it helps #WheelchairUsers and #pedestrians: The law’s definitions include people using wheelchairs, scooters, etc.
“The ‘vulnerable road user’ definition is crucial as we can now use it in future roadway safety legislation.”
-
Stack stones in your own garden and not on trails to preserve natural ecosystems. Let it be a practice in focus and a meditation...
ART
https://fineartamerica.com/featured/mindful-balance-stacked-stones-art-sharon-cummings.html#stone #stones #rock #rocks #meditation #yoga #tranquility #peace #garden #gardening #stacked #stackedstones #spa #mindfulness #SharonCummingsArt #buyintoart
-
Edgar Lansbury, Tony-Winning Producer and Brother of Angela Lansbury, Dies at 94
#Arts #Lifestyle #AngelaLansbury #DavidMamet #MartinSheen #Obituaries #RobertDuvall #StacyKeach #VictorGarber -
Good morning.
I’m sorry to announce #ReadingComprehension and #NewsLiteracy are dead.
#Journalists, you can go home now.
-
Hey #BeverlyMA and #GloucesterMA! According to Zillow, you’re number 1 and 2, respectively, for most popular #seaside towns in the U.S.!
Go #Massachusetts!
We got ocean. We got seafood. We got small drinking towns with a fishing problem. We got the best city in the world. We got history. We got the number 1 hockey team in the NHL. AND we got the best seaside towns in the country!
https://www.zillow.com/research/most-popular-city-2022-31925/
-
Since no one else wants to say it, I will: #Medicare is broken beyond funding. Ask someone who has to navigate the #DonutHole versus selecting a scam #AdvantagePlan (then navigate denials for meds and procedures).
But lawmakers don’t use Medicare. Not Scott (with proposed #sunsets), nor Sanders (with #MedicareForAll). They use Tricare. What do they know about the complexities #seniors and #disabled people navigate? If lawmakers actually used Medicare, they’d fix it.