Setup
- Emu71 (controller)
- Video80 [address 1]
Output time
- Original speed: 0.65 seconds (1 frame, the bigger one)
- Emulator speed: 0.03 second (1 frame, the bigger one)
- Original speed: 2.01 seconds (4 frames)
- Emulator speed: 0.25 second (4 frames)
HP-92198 Output:
Code:
+--------------------------------------------------------------------------+
| |
| +------------------------------------------------------------------+ |
| | | |
| | +----------------------------------------------------------+ | |
| | | | | |
| | | +--------------------------------------------------+ | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | +--------------------------------------------------+ | | |
| | | | | |
| | +----------------------------------------------------------+ | |
| | | |
| +------------------------------------------------------------------+ |
| |
+--------------------------------------------------------------------------+
BASIC program:
Code:
10 ! SHOW FRAMES
20 OPTION BASE 0 @ DELAY 0,0
30 DIM B0$[20],B1$[400], B2$[400], B3$[400], B4$[400]
40 DISP "BUFFERING"
50 CALL DRESET(B0$)
60 CALL DFRAME(B1$,1,2,22,77)
70 CALL DFRAME(B2$,3,6,20,73)
80 CALL DFRAME(B3$,5,10,18,69)
90 CALL DFRAME(B4$,7,14,16,65)
100 DISP "OUTPUT"
110 T=TIME @ A=1
120 CALL DSEND(B0$,A)
130 CALL DSEND(B1$,A)
140 CALL DSEND(B2$,A)
150 CALL DSEND(B3$,A)
160 CALL DSEND(B4$,A)
170 T=TIME-T @ DISP T
180 END
200 SUB DRESET(B$) ! dsp.reset (transmit.buffer)
210 E$=CHR$(27) ! escape
220 B$=E$&"E"&E$&"<" ! clear screen & cursor off
230 END SUB
300 SUB DFRAME(B$,R1,C1,R2,C2) ! dsp.frame(t.buffer, r.top, c.left, r.bottom, c.right)
310 E$=CHR$(27) @ V$=CHR$(124) @ H$="-" @ C$="+"
320 B$=E$&"%"&CHR$(C1)&CHR$(R1) ! set cursor to (c.left, r.top)
330 B$=B$&C$ @ FOR I=C1+1 TO C2-1 @ B$=B$&H$ @ NEXT I @ B$=B$&C$
340 FOR I=R1+1 TO R2-1
350 B$=B$&E$&"%"&CHR$(C1)&CHR$(I)&V$&E$&"%"&CHR$(C2)&CHR$(I)&V$
360 NEXT I
370 B$=E$&"%"&CHR$(C1)&CHR$(R2) ! set cursor to (c.left, r.bottom)
380 B$=E$&B$&C$ @ FOR I=C1+1 TO C2-1 @ B$=B$&H$ @ NEXT I @ B$=B$&C$
390 END SUB
400 SUB DSEND(B$,A) ! send to (transmit.buffer, device.address)
410 SEND UNT UNL LISTEN A MTA DATA B$ UNT UNL
420 END SUB
Note: buffers size are not optimized
edit: changed DSEND parameters order to have parameters uniformity between subs