simh / simh

The Computer History Simulation Project
http://simh.trailing-edge.com
Other
1.66k stars 304 forks source link

1130 - 2250 Character Generation #166

Open mstram opened 9 years ago

mstram commented 9 years ago

Hi Mark, Is the character generation implemented for the 2250 emulator ?

If so, do you have any example code ?

I'm trying to work with the information on pages 20-22 of A27-2723-0 "1130 Component Description IBM 2250 Display Unit Model 4

http://www.textfiles.com/bitsavers/pdf/ibm/1130/intf/A27-2723-0_2250_Display_Unit_Model4_1967.pdf)

but so far am not getting any character output. Mike

Here is my code (adapted from the GDU.asm) example :+1: * GDU.ASM - TEST THE 2250 GRAPHICAL DISPLAY UNIT EMULATOR START EQU * XIO LAMPS * light the lamps XIO CONSW * write CONBF to console * WAIT LD INTAD * get address of interrupt svc routine STO L /B
XIO GO * start regeneration WAIT XIO CHAR1 **** Character generation test XIO CONSW LOOP WAIT MDX LOOP CONBF DC /3C00 BSS E 0 CONSW DC CONBF switches input buffer DC /0900 0000 1001 0000 0000 write to console 0900 INTAD DC INTSV INTSV DC 0 * interrupt service routine XIO SENS3 * read DSW and reset interrupts LD TRING+1 * get revert address S THREE * get address of the Y coordinate preceding the jump STO VECY * save it LD I VECY
A JUMP STO I VECY XIO GO * resume BOSC I INTSV * return from interrupt
SENS3 DC 0 DC /CF01 * read DSW with interrupt reset * -------------------------------------------------------- LDATA DC /0101 * indicator lamp data DC /1010 BSS E 0 LAMPS DC LDATA DC /C980 * write with modifier = set lamps * -------------------------------------------------------- BSS E 0 CHAR1 DC CDATA DC /C900 CDATA EQU SCML GB CH1 GB CDATA * SCMB * DBS 0,0,0,0 CH1 EQU DC /BF68 DC /D29A * GB CLOOP GIC ,D RVT * 1 011 1 111 0 110 1000 * 1011 1111 0110 BF68 * -------------------------------------------------- BSS E 0 GO DC GDATA DC /c900 * write = start regeneration JUMP DC 10 * y increment on pen hit THREE DC 3 * constant 3 VECY DC 0 * vector's Y address * ------------------------------------------------------ GDATA SGMV * set vector mode SPM /9 * set pen mode: detect and defer GLOOP STMR * start timer MBA 0,0 * set position DBA 500,500 * GB TRING * call triangle subroutine * MBA 700,300
* GB TRING
BPOS MBA 453,872 * GB TRING GB GLOOP * repeat TRING SRVT * store revert register DBI 30,0 DBI -15,30 DBI -15,-30 GIC ,D * interrupt if pen detect occurred RVT END START

markpizz commented 9 years ago

Hi Mike, The internals of the IBM1130 environment are completely out of my expertise.

I've passed a request to Brian Knittel (the developer) to hopefully respond to your question.

mstram commented 9 years ago

Hi Mark,

Ok, thx, in the meantime, I guess I can take a look at the source and see what I can figure out.

Mike

pekka-28 commented 7 years ago

The issue https://github.com/simh/simh/issues/464 contains a sample that displays text. The rendering is incorrect, but the sequencing of the orders can be used as a reference.

As a start, you will need to:

The instructions and their assembler mnemonics are identified in the following link. There is also information in the more recent 1130 assembler references. http://chiclassiccomp.org/docs/content/computing/IBM/Other/1130/A27-2723-1_2250DisplayUnitModel4_8Sep69.pdf