broweo@yahoo.com [hercules-390]
2018-04-29 19:12:33 UTC
I had the (I thought) bright idea to attach a hercules device to a raspberry pi GPIO pin with
"attach 30f 1403 /sys/class/gpio/gpio18/value"
I then ran a program to write either a 1 or 0 to that printer (directly, not through JES).
This does actually work in that the LED goes on and off but I get the HHC01105E error message followed by an EQC MVS error and an abend which I imagine are secondary to whatever hercules is unhappy about. I've googled for the message and found one reference to invalid characters in printer output. The manual says the message is not documented. The only place I see HHC1105 in the source is in printer.c and it looks like an unsupported device type in the attach processing rather than at write time.
The console output follows then the C program that's doing the writing. How can I find out what's causing the error or get around it.
19.07.10 JOB 181 $HASP100 GCCMVS2 ON READER1 19.07.10 JOB 181 $HASP373 GCCMVS2 STARTED - INIT 1 - CLASS A - SYS TK4- 19.07.11 JOB 181 IEF403I GCCMVS2 - STARTED - TIME=19.07.11 19.07.27 JOB 181 IEF236I ALLOC. FOR GCCMVS2 GO S1 19.07.27 JOB 181 IEF237I 30F ALLOCATED TO OUTPUT 19.07.27 JOB 181 +OH Hello HHC01105E 0:030F Printer: error in function write(): Invalid argument 19.07.27 JOB 181 IEA000I 30F,EQC,09,0E00,1000,,,GCCMVS2 ,19.07.27 19.07.27 JOB 181 IEC020I 001-1,GCCMVS2,GO,OUTPUT,30F 19.07.27 JOB 181 IEC020I NO ERROR HANDLING, (SYNAD), EXIT SPECIFIED 19.07.28 JOB 181 IEF450I GCCMVS2 GO S1 - ABEND S001 U0000 - TIME=19.07.28 19.07.28 JOB 181 IEF404I GCCMVS2 - ENDED - TIME=19.07.28 19.07.28 JOB 181 $HASP395 GCCMVS2 ENDED 19.07.28 $HASP309 INIT 1 INACTIVE ******** C=A 19.07.28 JOB 181 $HASP150 GCCMVS2 ON PRINTER1 480 LINES 19.07.28 $HASP160 PRINTER1 INACTIVE - CLASS=A 19.07.28 JOB 181 $HASP250 GCCMVS2 IS PURGED
//GCCMVS2 JOB CLASS=A,MSGCLASS=A,REGION=4096K //S1 EXEC GCCCLG,COS1='-S',PARM.ASM='DECK,LIST' //SYSIN DD * #include <stdio.h> int main(int argc, char *argv[]) { FILE *fp; asm(" WTO 'OH Hello' "); fp = fopen("dd:output", "w"); fprintf(fp, "1234567890"); fclose(fp); asm(" WTO 'OK Bye' "); return 0; } //GO.OUTPUT DD UNIT=30F,DISP=OLD,DCB=(LRECL=10,BLKSIZE=4,RECFM=F)
"attach 30f 1403 /sys/class/gpio/gpio18/value"
I then ran a program to write either a 1 or 0 to that printer (directly, not through JES).
This does actually work in that the LED goes on and off but I get the HHC01105E error message followed by an EQC MVS error and an abend which I imagine are secondary to whatever hercules is unhappy about. I've googled for the message and found one reference to invalid characters in printer output. The manual says the message is not documented. The only place I see HHC1105 in the source is in printer.c and it looks like an unsupported device type in the attach processing rather than at write time.
The console output follows then the C program that's doing the writing. How can I find out what's causing the error or get around it.
19.07.10 JOB 181 $HASP100 GCCMVS2 ON READER1 19.07.10 JOB 181 $HASP373 GCCMVS2 STARTED - INIT 1 - CLASS A - SYS TK4- 19.07.11 JOB 181 IEF403I GCCMVS2 - STARTED - TIME=19.07.11 19.07.27 JOB 181 IEF236I ALLOC. FOR GCCMVS2 GO S1 19.07.27 JOB 181 IEF237I 30F ALLOCATED TO OUTPUT 19.07.27 JOB 181 +OH Hello HHC01105E 0:030F Printer: error in function write(): Invalid argument 19.07.27 JOB 181 IEA000I 30F,EQC,09,0E00,1000,,,GCCMVS2 ,19.07.27 19.07.27 JOB 181 IEC020I 001-1,GCCMVS2,GO,OUTPUT,30F 19.07.27 JOB 181 IEC020I NO ERROR HANDLING, (SYNAD), EXIT SPECIFIED 19.07.28 JOB 181 IEF450I GCCMVS2 GO S1 - ABEND S001 U0000 - TIME=19.07.28 19.07.28 JOB 181 IEF404I GCCMVS2 - ENDED - TIME=19.07.28 19.07.28 JOB 181 $HASP395 GCCMVS2 ENDED 19.07.28 $HASP309 INIT 1 INACTIVE ******** C=A 19.07.28 JOB 181 $HASP150 GCCMVS2 ON PRINTER1 480 LINES 19.07.28 $HASP160 PRINTER1 INACTIVE - CLASS=A 19.07.28 JOB 181 $HASP250 GCCMVS2 IS PURGED
//GCCMVS2 JOB CLASS=A,MSGCLASS=A,REGION=4096K //S1 EXEC GCCCLG,COS1='-S',PARM.ASM='DECK,LIST' //SYSIN DD * #include <stdio.h> int main(int argc, char *argv[]) { FILE *fp; asm(" WTO 'OH Hello' "); fp = fopen("dd:output", "w"); fprintf(fp, "1234567890"); fclose(fp); asm(" WTO 'OK Bye' "); return 0; } //GO.OUTPUT DD UNIT=30F,DISP=OLD,DCB=(LRECL=10,BLKSIZE=4,RECFM=F)